@strapi/plugin-users-permissions 0.0.0-next.e6eaa3d0563c85f80fd88b258df70a55c057096e → 0.0.0-next.e8d8fc824d0f6a695b2a9ebaa4680ed21c3645ca

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 (250) hide show
  1. package/LICENSE +18 -3
  2. package/admin/src/components/BoundRoute/index.jsx +2 -2
  3. package/admin/src/components/FormModal/Input/index.jsx +32 -31
  4. package/admin/src/components/FormModal/index.jsx +57 -68
  5. package/admin/src/components/Permissions/PermissionRow/CheckboxWrapper.jsx +4 -3
  6. package/admin/src/components/Permissions/PermissionRow/SubCategory.jsx +13 -22
  7. package/admin/src/components/Permissions/index.jsx +27 -35
  8. package/admin/src/components/Permissions/reducer.js +1 -1
  9. package/admin/src/components/Policies/index.jsx +7 -5
  10. package/admin/src/components/UsersPermissions/index.jsx +15 -7
  11. package/admin/src/components/UsersPermissions/reducer.js +1 -1
  12. package/admin/src/index.js +15 -32
  13. package/admin/src/pages/AdvancedSettings/index.jsx +83 -128
  14. package/admin/src/pages/AdvancedSettings/utils/layout.js +20 -35
  15. package/admin/src/pages/AdvancedSettings/utils/schema.js +5 -2
  16. package/admin/src/pages/EmailTemplates/components/EmailForm.jsx +119 -139
  17. package/admin/src/pages/EmailTemplates/components/EmailTable.jsx +20 -17
  18. package/admin/src/pages/EmailTemplates/index.jsx +36 -62
  19. package/admin/src/pages/EmailTemplates/utils/schema.js +18 -6
  20. package/admin/src/pages/Providers/index.jsx +98 -113
  21. package/admin/src/pages/Providers/utils/forms.js +23 -11
  22. package/admin/src/pages/Roles/constants.js +3 -3
  23. package/admin/src/pages/Roles/hooks/usePlugins.js +4 -4
  24. package/admin/src/pages/Roles/index.jsx +9 -18
  25. package/admin/src/pages/Roles/pages/CreatePage.jsx +53 -58
  26. package/admin/src/pages/Roles/pages/EditPage.jsx +63 -68
  27. package/admin/src/pages/Roles/pages/ListPage/components/TableBody.jsx +27 -31
  28. package/admin/src/pages/Roles/pages/ListPage/index.jsx +79 -55
  29. package/admin/src/translations/en.json +1 -1
  30. package/admin/src/utils/prefixPluginTranslations.js +13 -0
  31. package/dist/_chunks/{ar-t5qTFaAD.js → ar-BguGUqwK.js} +1 -1
  32. package/dist/_chunks/ar-BguGUqwK.js.map +1 -0
  33. package/dist/_chunks/{ar-MvD8Ghac.mjs → ar-CK8BRRXB.mjs} +1 -1
  34. package/dist/_chunks/ar-CK8BRRXB.mjs.map +1 -0
  35. package/dist/_chunks/{cs-BMuXwxA1.mjs → cs-BVigMk0l.mjs} +1 -1
  36. package/dist/_chunks/cs-BVigMk0l.mjs.map +1 -0
  37. package/dist/_chunks/{cs-I8N4u-Sd.js → cs-BW8-K_GY.js} +1 -1
  38. package/dist/_chunks/cs-BW8-K_GY.js.map +1 -0
  39. package/dist/_chunks/{de-zs2qqc0W.mjs → de-BKUdRFI4.mjs} +1 -1
  40. package/dist/_chunks/de-BKUdRFI4.mjs.map +1 -0
  41. package/dist/_chunks/{de-YTjtq89K.js → de-owXpVluI.js} +1 -1
  42. package/dist/_chunks/de-owXpVluI.js.map +1 -0
  43. package/dist/_chunks/{dk-HctVBMsG.mjs → dk-BQiTK50l.mjs} +1 -1
  44. package/dist/_chunks/dk-BQiTK50l.mjs.map +1 -0
  45. package/dist/_chunks/{dk-TF-dWjzl.js → dk-LXAnbuBk.js} +1 -1
  46. package/dist/_chunks/dk-LXAnbuBk.js.map +1 -0
  47. package/dist/_chunks/{en-CE3wEy_c.mjs → en-DOHtPf-2.mjs} +2 -2
  48. package/dist/_chunks/en-DOHtPf-2.mjs.map +1 -0
  49. package/dist/_chunks/{en-m608rMZx.js → en-MHo5mcsU.js} +2 -2
  50. package/dist/_chunks/en-MHo5mcsU.js.map +1 -0
  51. package/dist/_chunks/{es-XBQsB8_9.js → es-BwLCLXAQ.js} +1 -1
  52. package/dist/_chunks/es-BwLCLXAQ.js.map +1 -0
  53. package/dist/_chunks/{es-9381tih_.mjs → es-DNgOVMjD.mjs} +1 -1
  54. package/dist/_chunks/es-DNgOVMjD.mjs.map +1 -0
  55. package/dist/_chunks/{fr-CMSc77If.mjs → fr-DkgRugiU.mjs} +1 -1
  56. package/dist/_chunks/fr-DkgRugiU.mjs.map +1 -0
  57. package/dist/_chunks/{fr-6cz3U-IF.js → fr-DkhpSjjm.js} +1 -1
  58. package/dist/_chunks/fr-DkhpSjjm.js.map +1 -0
  59. package/dist/_chunks/{id-RJ934rq-.js → id-BTemOeTZ.js} +1 -1
  60. package/dist/_chunks/id-BTemOeTZ.js.map +1 -0
  61. package/dist/_chunks/{id-SDuyIkZa.mjs → id-BdEsvnaF.mjs} +1 -1
  62. package/dist/_chunks/id-BdEsvnaF.mjs.map +1 -0
  63. package/dist/_chunks/index-BP1KkpZq.js +280 -0
  64. package/dist/_chunks/index-BP1KkpZq.js.map +1 -0
  65. package/dist/_chunks/index-BnvtBuUS.js +365 -0
  66. package/dist/_chunks/index-BnvtBuUS.js.map +1 -0
  67. package/dist/_chunks/{index-YkMqn-9t.js → index-BphRo4l2.js} +56 -53
  68. package/dist/_chunks/index-BphRo4l2.js.map +1 -0
  69. package/dist/_chunks/index-C_5QiATG.mjs +344 -0
  70. package/dist/_chunks/index-C_5QiATG.mjs.map +1 -0
  71. package/dist/_chunks/index-Cn5HftCc-CvJvlZwK.js +11113 -0
  72. package/dist/_chunks/index-Cn5HftCc-CvJvlZwK.js.map +1 -0
  73. package/dist/_chunks/index-Cn5HftCc-Dku5eOkP.mjs +11090 -0
  74. package/dist/_chunks/index-Cn5HftCc-Dku5eOkP.mjs.map +1 -0
  75. package/dist/_chunks/{index-l_QWM0NZ.mjs → index-Cxhs260c.mjs} +239 -256
  76. package/dist/_chunks/index-Cxhs260c.mjs.map +1 -0
  77. package/dist/_chunks/index-D4Ge_-Bp.mjs +262 -0
  78. package/dist/_chunks/index-D4Ge_-Bp.mjs.map +1 -0
  79. package/dist/_chunks/{index-5-krOCaE.mjs → index-D5yExFYc.mjs} +55 -52
  80. package/dist/_chunks/index-D5yExFYc.mjs.map +1 -0
  81. package/dist/_chunks/{index-wiA9qAAp.mjs → index-D_J3MMcj.mjs} +105 -103
  82. package/dist/_chunks/index-D_J3MMcj.mjs.map +1 -0
  83. package/dist/_chunks/{index-dnfs8wOQ.js → index-DoogNdMf.js} +109 -108
  84. package/dist/_chunks/index-DoogNdMf.js.map +1 -0
  85. package/dist/_chunks/{index-Aq7T7skI.js → index-iJPHXbGD.js} +256 -276
  86. package/dist/_chunks/index-iJPHXbGD.js.map +1 -0
  87. package/dist/_chunks/{it-bvH7DgQo.mjs → it-B-rv0E24.mjs} +1 -1
  88. package/dist/_chunks/it-B-rv0E24.mjs.map +1 -0
  89. package/dist/_chunks/{it-YhZOlM2X.js → it-D1rH6V6_.js} +1 -1
  90. package/dist/_chunks/it-D1rH6V6_.js.map +1 -0
  91. package/dist/_chunks/{ja-o_-JPvQv.mjs → ja-C8K-VBPD.mjs} +1 -1
  92. package/dist/_chunks/ja-C8K-VBPD.mjs.map +1 -0
  93. package/dist/_chunks/{ja-xssHUXFv.js → ja-DqShgTMf.js} +1 -1
  94. package/dist/_chunks/ja-DqShgTMf.js.map +1 -0
  95. package/dist/_chunks/{ko-C3mHUSJa.js → ko-B9DGEPWH.js} +1 -1
  96. package/dist/_chunks/ko-B9DGEPWH.js.map +1 -0
  97. package/dist/_chunks/{ko-XJbPSez_.mjs → ko-Busb0wIY.mjs} +1 -1
  98. package/dist/_chunks/ko-Busb0wIY.mjs.map +1 -0
  99. package/dist/_chunks/{ms-II5Ea73J.mjs → ms-ByvsQjRt.mjs} +1 -1
  100. package/dist/_chunks/ms-ByvsQjRt.mjs.map +1 -0
  101. package/dist/_chunks/{ms-d0hfg65Z.js → ms-CPBU3LWf.js} +1 -1
  102. package/dist/_chunks/ms-CPBU3LWf.js.map +1 -0
  103. package/dist/_chunks/{nl-vEy6TN0K.mjs → nl-5qO8Rpcy.mjs} +1 -1
  104. package/dist/_chunks/nl-5qO8Rpcy.mjs.map +1 -0
  105. package/dist/_chunks/{nl-TA7TfK_5.js → nl-CwNB6YoO.js} +1 -1
  106. package/dist/_chunks/nl-CwNB6YoO.js.map +1 -0
  107. package/dist/_chunks/{pl-2VowaFGt.mjs → pl-BdIzifBE.mjs} +1 -1
  108. package/dist/_chunks/pl-BdIzifBE.mjs.map +1 -0
  109. package/dist/_chunks/{pl-0pUL9hdA.js → pl-Do9UD69f.js} +1 -1
  110. package/dist/_chunks/pl-Do9UD69f.js.map +1 -0
  111. package/dist/_chunks/{pt-Rf9W51IO.mjs → pt-BIO24ioG.mjs} +1 -1
  112. package/dist/_chunks/pt-BIO24ioG.mjs.map +1 -0
  113. package/dist/_chunks/{pt-BR-WNOhafR4.js → pt-BR-D7dZhxuP.js} +1 -1
  114. package/dist/_chunks/pt-BR-D7dZhxuP.js.map +1 -0
  115. package/dist/_chunks/{pt-BR-sS1Xp3Jt.mjs → pt-BR-f0p23AQZ.mjs} +1 -1
  116. package/dist/_chunks/pt-BR-f0p23AQZ.mjs.map +1 -0
  117. package/dist/_chunks/{pt-guNR9Gax.js → pt-fdvyOnUp.js} +1 -1
  118. package/dist/_chunks/pt-fdvyOnUp.js.map +1 -0
  119. package/dist/_chunks/{ru-X3BMXDds.js → ru-C94rjPGA.js} +1 -1
  120. package/dist/_chunks/ru-C94rjPGA.js.map +1 -0
  121. package/dist/_chunks/{ru-qKHnd5or.mjs → ru-VWy-IB7K.mjs} +1 -1
  122. package/dist/_chunks/ru-VWy-IB7K.mjs.map +1 -0
  123. package/dist/_chunks/{sk-NWPw1oTN.js → sk-BABEhykl.js} +1 -1
  124. package/dist/_chunks/sk-BABEhykl.js.map +1 -0
  125. package/dist/_chunks/{sk-_Ryr-eTT.mjs → sk-B_LIcepm.mjs} +1 -1
  126. package/dist/_chunks/sk-B_LIcepm.mjs.map +1 -0
  127. package/dist/_chunks/{sv-BqzScFXS.mjs → sv-ABLKOokl.mjs} +1 -1
  128. package/dist/_chunks/sv-ABLKOokl.mjs.map +1 -0
  129. package/dist/_chunks/{sv-76NnbB__.js → sv-Be43LhA9.js} +1 -1
  130. package/dist/_chunks/sv-Be43LhA9.js.map +1 -0
  131. package/dist/_chunks/{th-WsknMEpq.mjs → th-DKyP7ueR.mjs} +1 -1
  132. package/dist/_chunks/th-DKyP7ueR.mjs.map +1 -0
  133. package/dist/_chunks/{th-cbppX21D.js → th-DgVhVLhL.js} +1 -1
  134. package/dist/_chunks/th-DgVhVLhL.js.map +1 -0
  135. package/dist/_chunks/{tr-6mm_Fmz7.js → tr-B_idhkEs.js} +1 -1
  136. package/dist/_chunks/tr-B_idhkEs.js.map +1 -0
  137. package/dist/_chunks/{tr-_DB1F1GW.mjs → tr-qa1Q5UjC.mjs} +1 -1
  138. package/dist/_chunks/tr-qa1Q5UjC.mjs.map +1 -0
  139. package/dist/_chunks/{uk-yxMSQAwI.mjs → uk-BmRqbeQc.mjs} +1 -1
  140. package/dist/_chunks/uk-BmRqbeQc.mjs.map +1 -0
  141. package/dist/_chunks/{uk-sI2I1ogF.js → uk-LHOivnhP.js} +1 -1
  142. package/dist/_chunks/uk-LHOivnhP.js.map +1 -0
  143. package/dist/_chunks/{vi-A3zJxaiI.js → vi-CdVRdKDw.js} +1 -1
  144. package/dist/_chunks/vi-CdVRdKDw.js.map +1 -0
  145. package/dist/_chunks/{vi-xY0zCW3d.mjs → vi-HW-EdMea.mjs} +1 -1
  146. package/dist/_chunks/vi-HW-EdMea.mjs.map +1 -0
  147. package/dist/_chunks/{zh-OFeldzbX.mjs → zh-5hKkVPA4.mjs} +1 -1
  148. package/dist/_chunks/zh-5hKkVPA4.mjs.map +1 -0
  149. package/dist/_chunks/{zh-72SpmFXa.js → zh-Cuq8gMnF.js} +1 -1
  150. package/dist/_chunks/zh-Cuq8gMnF.js.map +1 -0
  151. package/dist/_chunks/{zh-Hans-E84cu4kP.mjs → zh-Hans-BHilK-yc.mjs} +1 -1
  152. package/dist/_chunks/zh-Hans-BHilK-yc.mjs.map +1 -0
  153. package/dist/_chunks/{zh-Hans-ArWWtyP4.js → zh-Hans-GQDMKtY4.js} +1 -1
  154. package/dist/_chunks/zh-Hans-GQDMKtY4.js.map +1 -0
  155. package/dist/admin/index.js +1 -2
  156. package/dist/admin/index.js.map +1 -1
  157. package/dist/admin/index.mjs +1 -2
  158. package/dist/admin/index.mjs.map +1 -1
  159. package/package.json +27 -28
  160. package/server/bootstrap/index.js +18 -51
  161. package/server/bootstrap/users-permissions-actions.js +6 -0
  162. package/server/config.js +29 -0
  163. package/server/content-types/user/index.js +0 -1
  164. package/server/controllers/auth.js +62 -63
  165. package/server/controllers/content-manager-user.js +28 -30
  166. package/server/controllers/role.js +17 -4
  167. package/server/controllers/user.js +8 -9
  168. package/server/controllers/validation/auth.js +81 -25
  169. package/server/graphql/types/index.js +1 -0
  170. package/server/graphql/types/me.js +1 -0
  171. package/server/graphql/types/user-input.js +20 -0
  172. package/server/middlewares/rateLimit.js +1 -1
  173. package/server/register.js +1 -1
  174. package/server/services/jwt.js +3 -3
  175. package/server/services/permission.js +3 -7
  176. package/server/services/providers-registry.js +469 -261
  177. package/server/services/providers.js +10 -5
  178. package/server/services/role.js +15 -13
  179. package/server/services/user.js +56 -19
  180. package/server/services/users-permissions.js +15 -13
  181. package/server/utils/index.d.ts +2 -1
  182. package/server/utils/sanitize/sanitizers.js +7 -3
  183. package/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.js +2 -2
  184. package/admin/src/pages/Roles/pages/ListPage/utils/api.js +0 -30
  185. package/dist/_chunks/ar-MvD8Ghac.mjs.map +0 -1
  186. package/dist/_chunks/ar-t5qTFaAD.js.map +0 -1
  187. package/dist/_chunks/cs-BMuXwxA1.mjs.map +0 -1
  188. package/dist/_chunks/cs-I8N4u-Sd.js.map +0 -1
  189. package/dist/_chunks/de-YTjtq89K.js.map +0 -1
  190. package/dist/_chunks/de-zs2qqc0W.mjs.map +0 -1
  191. package/dist/_chunks/dk-HctVBMsG.mjs.map +0 -1
  192. package/dist/_chunks/dk-TF-dWjzl.js.map +0 -1
  193. package/dist/_chunks/en-CE3wEy_c.mjs.map +0 -1
  194. package/dist/_chunks/en-m608rMZx.js.map +0 -1
  195. package/dist/_chunks/es-9381tih_.mjs.map +0 -1
  196. package/dist/_chunks/es-XBQsB8_9.js.map +0 -1
  197. package/dist/_chunks/fr-6cz3U-IF.js.map +0 -1
  198. package/dist/_chunks/fr-CMSc77If.mjs.map +0 -1
  199. package/dist/_chunks/id-RJ934rq-.js.map +0 -1
  200. package/dist/_chunks/id-SDuyIkZa.mjs.map +0 -1
  201. package/dist/_chunks/index-5-krOCaE.mjs.map +0 -1
  202. package/dist/_chunks/index-Aq7T7skI.js.map +0 -1
  203. package/dist/_chunks/index-LN8gSFZ3.mjs +0 -385
  204. package/dist/_chunks/index-LN8gSFZ3.mjs.map +0 -1
  205. package/dist/_chunks/index-RWAJu_-T.js +0 -407
  206. package/dist/_chunks/index-RWAJu_-T.js.map +0 -1
  207. package/dist/_chunks/index-SICvbeQf.mjs +0 -301
  208. package/dist/_chunks/index-SICvbeQf.mjs.map +0 -1
  209. package/dist/_chunks/index-YkMqn-9t.js.map +0 -1
  210. package/dist/_chunks/index-_wwOOuf_.js +0 -320
  211. package/dist/_chunks/index-_wwOOuf_.js.map +0 -1
  212. package/dist/_chunks/index-dnfs8wOQ.js.map +0 -1
  213. package/dist/_chunks/index-l_QWM0NZ.mjs.map +0 -1
  214. package/dist/_chunks/index-wiA9qAAp.mjs.map +0 -1
  215. package/dist/_chunks/it-YhZOlM2X.js.map +0 -1
  216. package/dist/_chunks/it-bvH7DgQo.mjs.map +0 -1
  217. package/dist/_chunks/ja-o_-JPvQv.mjs.map +0 -1
  218. package/dist/_chunks/ja-xssHUXFv.js.map +0 -1
  219. package/dist/_chunks/ko-C3mHUSJa.js.map +0 -1
  220. package/dist/_chunks/ko-XJbPSez_.mjs.map +0 -1
  221. package/dist/_chunks/ms-II5Ea73J.mjs.map +0 -1
  222. package/dist/_chunks/ms-d0hfg65Z.js.map +0 -1
  223. package/dist/_chunks/nl-TA7TfK_5.js.map +0 -1
  224. package/dist/_chunks/nl-vEy6TN0K.mjs.map +0 -1
  225. package/dist/_chunks/pl-0pUL9hdA.js.map +0 -1
  226. package/dist/_chunks/pl-2VowaFGt.mjs.map +0 -1
  227. package/dist/_chunks/pt-BR-WNOhafR4.js.map +0 -1
  228. package/dist/_chunks/pt-BR-sS1Xp3Jt.mjs.map +0 -1
  229. package/dist/_chunks/pt-Rf9W51IO.mjs.map +0 -1
  230. package/dist/_chunks/pt-guNR9Gax.js.map +0 -1
  231. package/dist/_chunks/ru-X3BMXDds.js.map +0 -1
  232. package/dist/_chunks/ru-qKHnd5or.mjs.map +0 -1
  233. package/dist/_chunks/sk-NWPw1oTN.js.map +0 -1
  234. package/dist/_chunks/sk-_Ryr-eTT.mjs.map +0 -1
  235. package/dist/_chunks/sv-76NnbB__.js.map +0 -1
  236. package/dist/_chunks/sv-BqzScFXS.mjs.map +0 -1
  237. package/dist/_chunks/th-WsknMEpq.mjs.map +0 -1
  238. package/dist/_chunks/th-cbppX21D.js.map +0 -1
  239. package/dist/_chunks/tr-6mm_Fmz7.js.map +0 -1
  240. package/dist/_chunks/tr-_DB1F1GW.mjs.map +0 -1
  241. package/dist/_chunks/uk-sI2I1ogF.js.map +0 -1
  242. package/dist/_chunks/uk-yxMSQAwI.mjs.map +0 -1
  243. package/dist/_chunks/vi-A3zJxaiI.js.map +0 -1
  244. package/dist/_chunks/vi-xY0zCW3d.mjs.map +0 -1
  245. package/dist/_chunks/zh-72SpmFXa.js.map +0 -1
  246. package/dist/_chunks/zh-Hans-ArWWtyP4.js.map +0 -1
  247. package/dist/_chunks/zh-Hans-E84cu4kP.mjs.map +0 -1
  248. package/dist/_chunks/zh-OFeldzbX.mjs.map +0 -1
  249. package/server/bootstrap/grant-config.js +0 -131
  250. package/strapi-server.js +0 -3
@@ -1,15 +1,21 @@
1
- import { prefixPluginTranslations } from "@strapi/helper-plugin";
2
- const __variableDynamicImportRuntimeHelper = (glob, path) => {
1
+ const __variableDynamicImportRuntimeHelper = (glob, path, segs) => {
3
2
  const v = glob[path];
4
3
  if (v) {
5
4
  return typeof v === "function" ? v() : Promise.resolve(v);
6
5
  }
7
6
  return new Promise((_, reject) => {
8
- (typeof queueMicrotask === "function" ? queueMicrotask : setTimeout)(reject.bind(null, new Error("Unknown variable dynamic import: " + path)));
7
+ (typeof queueMicrotask === "function" ? queueMicrotask : setTimeout)(
8
+ reject.bind(
9
+ null,
10
+ new Error(
11
+ "Unknown variable dynamic import: " + path + (path.split("/").length !== segs ? ". Note that variables only represent file names one level deep." : "")
12
+ )
13
+ )
14
+ );
9
15
  });
10
16
  };
11
17
  const name$1 = "@strapi/plugin-users-permissions";
12
- const version = "4.20.5";
18
+ const version = "5.5.2";
13
19
  const description = "Protect your API with a full-authentication process based on JWT";
14
20
  const repository = {
15
21
  type: "git",
@@ -36,9 +42,9 @@ const exports = {
36
42
  "default": "./dist/admin/index.js"
37
43
  },
38
44
  "./strapi-server": {
39
- source: "./strapi-server.js",
40
- require: "./strapi-server.js",
41
- "default": "./strapi-server.js"
45
+ source: "./server/index.js",
46
+ require: "./server/index.js",
47
+ "default": "./server/index.js"
42
48
  },
43
49
  "./package.json": "./package.json"
44
50
  };
@@ -55,48 +61,47 @@ const scripts = {
55
61
  watch: "pack-up watch"
56
62
  };
57
63
  const dependencies = {
58
- "@strapi/design-system": "1.16.0",
59
- "@strapi/helper-plugin": "4.20.5",
60
- "@strapi/icons": "1.16.0",
61
- "@strapi/utils": "4.20.5",
64
+ "@strapi/design-system": "2.0.0-rc.14",
65
+ "@strapi/icons": "2.0.0-rc.14",
66
+ "@strapi/utils": "5.5.2",
62
67
  bcryptjs: "2.4.3",
63
- formik: "2.4.0",
68
+ formik: "2.4.5",
64
69
  "grant-koa": "5.4.8",
65
- immer: "9.0.19",
70
+ immer: "9.0.21",
66
71
  jsonwebtoken: "9.0.0",
67
72
  "jwk-to-pem": "2.0.5",
68
- koa: "2.13.4",
69
- "koa2-ratelimit": "^1.1.2",
73
+ koa: "2.15.2",
74
+ "koa2-ratelimit": "^1.1.3",
70
75
  lodash: "4.17.21",
71
76
  "prop-types": "^15.8.1",
72
77
  purest: "4.0.2",
73
- "react-intl": "6.4.1",
78
+ "react-intl": "6.6.2",
74
79
  "react-query": "3.39.3",
75
- "react-redux": "8.1.1",
80
+ "react-redux": "8.1.3",
76
81
  "url-join": "4.0.1",
77
82
  yup: "0.32.9"
78
83
  };
79
84
  const devDependencies = {
80
- "@strapi/pack-up": "4.20.5",
81
- "@strapi/strapi": "4.20.5",
82
- "@testing-library/dom": "9.2.0",
83
- "@testing-library/react": "14.0.0",
84
- "@testing-library/user-event": "14.4.3",
85
+ "@strapi/pack-up": "5.0.2",
86
+ "@strapi/strapi": "5.5.2",
87
+ "@testing-library/dom": "10.1.0",
88
+ "@testing-library/react": "15.0.7",
89
+ "@testing-library/user-event": "14.5.2",
85
90
  msw: "1.3.0",
86
- react: "^18.2.0",
87
- "react-dom": "^18.2.0",
88
- "react-router-dom": "5.3.4",
89
- "styled-components": "5.3.3"
91
+ react: "18.3.1",
92
+ "react-dom": "18.3.1",
93
+ "react-router-dom": "6.22.3",
94
+ "styled-components": "6.1.8"
90
95
  };
91
96
  const peerDependencies = {
92
- "@strapi/strapi": "^4.0.0",
97
+ "@strapi/strapi": "^5.0.0",
93
98
  react: "^17.0.0 || ^18.0.0",
94
99
  "react-dom": "^17.0.0 || ^18.0.0",
95
- "react-router-dom": "^5.2.0",
96
- "styled-components": "^5.2.1"
100
+ "react-router-dom": "^6.0.0",
101
+ "styled-components": "^6.0.0"
97
102
  };
98
103
  const engines = {
99
- node: ">=18.0.0 <=20.x.x",
104
+ node: ">=18.0.0 <=22.x.x",
100
105
  npm: ">=6.0.0"
101
106
  };
102
107
  const strapi = {
@@ -150,6 +155,12 @@ const PERMISSIONS = {
150
155
  };
151
156
  const pluginId = pluginPkg.name.replace(/^@strapi\/plugin-/i, "");
152
157
  const getTrad = (id) => `${pluginId}.${id}`;
158
+ const prefixPluginTranslations = (trad, pluginId2) => {
159
+ return Object.keys(trad).reduce((acc, current) => {
160
+ acc[`${pluginId2}.${current}`] = trad[current];
161
+ return acc;
162
+ }, {});
163
+ };
153
164
  const name = pluginPkg.strapi.name;
154
165
  const index = {
155
166
  register(app) {
@@ -168,11 +179,8 @@ const index = {
168
179
  defaultMessage: "Roles"
169
180
  },
170
181
  id: "roles",
171
- to: `/settings/users-permissions/roles`,
172
- async Component() {
173
- const component = await import("./index-l_QWM0NZ.mjs");
174
- return component;
175
- },
182
+ to: `users-permissions/roles`,
183
+ Component: () => import("./index-Cxhs260c.mjs"),
176
184
  permissions: PERMISSIONS.accessRoles
177
185
  },
178
186
  {
@@ -181,11 +189,8 @@ const index = {
181
189
  defaultMessage: "Providers"
182
190
  },
183
191
  id: "providers",
184
- to: `/settings/users-permissions/providers`,
185
- async Component() {
186
- const component = await import("./index-wiA9qAAp.mjs");
187
- return component;
188
- },
192
+ to: `users-permissions/providers`,
193
+ Component: () => import("./index-D_J3MMcj.mjs"),
189
194
  permissions: PERMISSIONS.readProviders
190
195
  },
191
196
  {
@@ -194,11 +199,10 @@ const index = {
194
199
  defaultMessage: "Email templates"
195
200
  },
196
201
  id: "email-templates",
197
- to: `/settings/users-permissions/email-templates`,
198
- async Component() {
199
- const component = await import("./index-LN8gSFZ3.mjs");
200
- return component;
201
- },
202
+ to: `users-permissions/email-templates`,
203
+ Component: () => import("./index-C_5QiATG.mjs").then((mod) => ({
204
+ default: mod.ProtectedEmailTemplatesPage
205
+ })),
202
206
  permissions: PERMISSIONS.readEmailTemplates
203
207
  },
204
208
  {
@@ -207,11 +211,10 @@ const index = {
207
211
  defaultMessage: "Advanced Settings"
208
212
  },
209
213
  id: "advanced-settings",
210
- to: `/settings/users-permissions/advanced-settings`,
211
- async Component() {
212
- const component = await import("./index-SICvbeQf.mjs");
213
- return component;
214
- },
214
+ to: `users-permissions/advanced-settings`,
215
+ Component: () => import("./index-D4Ge_-Bp.mjs").then((mod) => ({
216
+ default: mod.ProtectedAdvancedSettingsPage
217
+ })),
215
218
  permissions: PERMISSIONS.readAdvancedSettings
216
219
  }
217
220
  ]
@@ -226,7 +229,7 @@ const index = {
226
229
  async registerTrads({ locales }) {
227
230
  const importedTrads = await Promise.all(
228
231
  locales.map((locale) => {
229
- return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/ar.json": () => import("./ar-MvD8Ghac.mjs"), "./translations/cs.json": () => import("./cs-BMuXwxA1.mjs"), "./translations/de.json": () => import("./de-zs2qqc0W.mjs"), "./translations/dk.json": () => import("./dk-HctVBMsG.mjs"), "./translations/en.json": () => import("./en-CE3wEy_c.mjs"), "./translations/es.json": () => import("./es-9381tih_.mjs"), "./translations/fr.json": () => import("./fr-CMSc77If.mjs"), "./translations/id.json": () => import("./id-SDuyIkZa.mjs"), "./translations/it.json": () => import("./it-bvH7DgQo.mjs"), "./translations/ja.json": () => import("./ja-o_-JPvQv.mjs"), "./translations/ko.json": () => import("./ko-XJbPSez_.mjs"), "./translations/ms.json": () => import("./ms-II5Ea73J.mjs"), "./translations/nl.json": () => import("./nl-vEy6TN0K.mjs"), "./translations/pl.json": () => import("./pl-2VowaFGt.mjs"), "./translations/pt-BR.json": () => import("./pt-BR-sS1Xp3Jt.mjs"), "./translations/pt.json": () => import("./pt-Rf9W51IO.mjs"), "./translations/ru.json": () => import("./ru-qKHnd5or.mjs"), "./translations/sk.json": () => import("./sk-_Ryr-eTT.mjs"), "./translations/sv.json": () => import("./sv-BqzScFXS.mjs"), "./translations/th.json": () => import("./th-WsknMEpq.mjs"), "./translations/tr.json": () => import("./tr-_DB1F1GW.mjs"), "./translations/uk.json": () => import("./uk-yxMSQAwI.mjs"), "./translations/vi.json": () => import("./vi-xY0zCW3d.mjs"), "./translations/zh-Hans.json": () => import("./zh-Hans-E84cu4kP.mjs"), "./translations/zh.json": () => import("./zh-OFeldzbX.mjs") }), `./translations/${locale}.json`).then(({ default: data }) => {
232
+ return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/ar.json": () => import("./ar-CK8BRRXB.mjs"), "./translations/cs.json": () => import("./cs-BVigMk0l.mjs"), "./translations/de.json": () => import("./de-BKUdRFI4.mjs"), "./translations/dk.json": () => import("./dk-BQiTK50l.mjs"), "./translations/en.json": () => import("./en-DOHtPf-2.mjs"), "./translations/es.json": () => import("./es-DNgOVMjD.mjs"), "./translations/fr.json": () => import("./fr-DkgRugiU.mjs"), "./translations/id.json": () => import("./id-BdEsvnaF.mjs"), "./translations/it.json": () => import("./it-B-rv0E24.mjs"), "./translations/ja.json": () => import("./ja-C8K-VBPD.mjs"), "./translations/ko.json": () => import("./ko-Busb0wIY.mjs"), "./translations/ms.json": () => import("./ms-ByvsQjRt.mjs"), "./translations/nl.json": () => import("./nl-5qO8Rpcy.mjs"), "./translations/pl.json": () => import("./pl-BdIzifBE.mjs"), "./translations/pt-BR.json": () => import("./pt-BR-f0p23AQZ.mjs"), "./translations/pt.json": () => import("./pt-BIO24ioG.mjs"), "./translations/ru.json": () => import("./ru-VWy-IB7K.mjs"), "./translations/sk.json": () => import("./sk-B_LIcepm.mjs"), "./translations/sv.json": () => import("./sv-ABLKOokl.mjs"), "./translations/th.json": () => import("./th-DKyP7ueR.mjs"), "./translations/tr.json": () => import("./tr-qa1Q5UjC.mjs"), "./translations/uk.json": () => import("./uk-BmRqbeQc.mjs"), "./translations/vi.json": () => import("./vi-HW-EdMea.mjs"), "./translations/zh-Hans.json": () => import("./zh-Hans-BHilK-yc.mjs"), "./translations/zh.json": () => import("./zh-5hKkVPA4.mjs") }), `./translations/${locale}.json`, 3).then(({ default: data }) => {
230
233
  return {
231
234
  data: prefixPluginTranslations(data, "users-permissions"),
232
235
  locale
@@ -247,4 +250,4 @@ export {
247
250
  getTrad as g,
248
251
  index as i
249
252
  };
250
- //# sourceMappingURL=index-5-krOCaE.mjs.map
253
+ //# sourceMappingURL=index-D5yExFYc.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-D5yExFYc.mjs","sources":["../../admin/src/constants.js","../../admin/src/pluginId.js","../../admin/src/utils/getTrad.js","../../admin/src/utils/prefixPluginTranslations.js","../../admin/src/index.js"],"sourcesContent":["export const PERMISSIONS = {\n // Roles\n accessRoles: [\n { action: 'plugin::users-permissions.roles.create', subject: null },\n { action: 'plugin::users-permissions.roles.read', subject: null },\n ],\n createRole: [{ action: 'plugin::users-permissions.roles.create', subject: null }],\n deleteRole: [{ action: 'plugin::users-permissions.roles.delete', subject: null }],\n readRoles: [{ action: 'plugin::users-permissions.roles.read', subject: null }],\n updateRole: [{ action: 'plugin::users-permissions.roles.update', subject: null }],\n\n // AdvancedSettings\n readAdvancedSettings: [\n { action: 'plugin::users-permissions.advanced-settings.read', subject: null },\n ],\n updateAdvancedSettings: [\n { action: 'plugin::users-permissions.advanced-settings.update', subject: null },\n ],\n\n // Emails\n readEmailTemplates: [{ action: 'plugin::users-permissions.email-templates.read', subject: null }],\n updateEmailTemplates: [\n { action: 'plugin::users-permissions.email-templates.update', subject: null },\n ],\n\n // Providers\n readProviders: [{ action: 'plugin::users-permissions.providers.read', subject: null }],\n updateProviders: [{ action: 'plugin::users-permissions.providers.update', subject: null }],\n};\n","import pluginPkg from '../../package.json';\n\nconst pluginId = pluginPkg.name.replace(/^@strapi\\/plugin-/i, '');\n\nexport default pluginId;\n","import pluginId from '../pluginId';\n\nconst getTrad = (id) => `${pluginId}.${id}`;\n\nexport default getTrad;\n","const prefixPluginTranslations = (trad, pluginId) => {\n if (!pluginId) {\n throw new TypeError(\"pluginId can't be empty\");\n }\n\n return Object.keys(trad).reduce((acc, current) => {\n acc[`${pluginId}.${current}`] = trad[current];\n\n return acc;\n }, {});\n};\n\nexport { prefixPluginTranslations };\n","import pluginPkg from '../../package.json';\n\nimport { PERMISSIONS } from './constants';\nimport getTrad from './utils/getTrad';\nimport { prefixPluginTranslations } from './utils/prefixPluginTranslations';\n\nconst name = pluginPkg.strapi.name;\n\nexport default {\n register(app) {\n // Create the plugin's settings section\n app.createSettingSection(\n {\n id: 'users-permissions',\n intlLabel: {\n id: getTrad('Settings.section-label'),\n defaultMessage: 'Users & Permissions plugin',\n },\n },\n [\n {\n intlLabel: {\n id: 'global.roles',\n defaultMessage: 'Roles',\n },\n id: 'roles',\n to: `users-permissions/roles`,\n Component: () => import('./pages/Roles'),\n permissions: PERMISSIONS.accessRoles,\n },\n {\n intlLabel: {\n id: getTrad('HeaderNav.link.providers'),\n defaultMessage: 'Providers',\n },\n id: 'providers',\n to: `users-permissions/providers`,\n Component: () => import('./pages/Providers'),\n permissions: PERMISSIONS.readProviders,\n },\n {\n intlLabel: {\n id: getTrad('HeaderNav.link.emailTemplates'),\n defaultMessage: 'Email templates',\n },\n id: 'email-templates',\n to: `users-permissions/email-templates`,\n Component: () =>\n import('./pages/EmailTemplates').then((mod) => ({\n default: mod.ProtectedEmailTemplatesPage,\n })),\n permissions: PERMISSIONS.readEmailTemplates,\n },\n {\n intlLabel: {\n id: getTrad('HeaderNav.link.advancedSettings'),\n defaultMessage: 'Advanced Settings',\n },\n id: 'advanced-settings',\n to: `users-permissions/advanced-settings`,\n Component: () =>\n import('./pages/AdvancedSettings').then((mod) => ({\n default: mod.ProtectedAdvancedSettingsPage,\n })),\n permissions: PERMISSIONS.readAdvancedSettings,\n },\n ]\n );\n\n app.registerPlugin({\n id: 'users-permissions',\n name,\n });\n },\n bootstrap() {},\n async registerTrads({ locales }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, 'users-permissions'),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n"],"names":["pluginId"],"mappings":"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"}
@@ -1,15 +1,15 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
- import { ToggleInput, TextInput, ModalLayout, ModalHeader, ModalBody, Flex, Grid, GridItem, ModalFooter, Button, Layout, Main, HeaderLayout, ContentLayout, Table, Thead, Tr, Th, Typography, VisuallyHidden, Tbody, Td, IconButton } from "@strapi/design-system";
4
- import { Form, translatedErrors, useTracking, useNotification, useOverlayBlocker, useFetchClient, useAPIErrorHandler, useCollator, useFocusWhenNavigate, useRBAC, SettingsPageTitle, LoadingIndicatorPage, onRowClick, stopPropagation, CheckPagePermissions } from "@strapi/helper-plugin";
3
+ import { u as useTracking, L as Layouts } from "./index-Cn5HftCc-Dku5eOkP.mjs";
4
+ import { Field, Toggle, TextInput, Modal, Breadcrumbs, Crumb, Flex, Grid, Button, useCollator, Table, Thead, Tr, Th, Typography, VisuallyHidden, Tbody, Td, IconButton } from "@strapi/design-system";
5
5
  import { Pencil } from "@strapi/icons";
6
+ import { translatedErrors, useNotification, useFetchClient, useAPIErrorHandler, useRBAC, Page } from "@strapi/strapi/admin";
6
7
  import upperFirst from "lodash/upperFirst";
7
8
  import { useIntl } from "react-intl";
8
9
  import { useQueryClient, useQuery, useMutation } from "react-query";
9
- import { Breadcrumbs, Crumb } from "@strapi/design-system/v2";
10
- import { Formik } from "formik";
10
+ import { Formik, Form } from "formik";
11
11
  import PropTypes from "prop-types";
12
- import { g as getTrad, P as PERMISSIONS } from "./index-5-krOCaE.mjs";
12
+ import { g as getTrad, P as PERMISSIONS } from "./index-D5yExFYc.mjs";
13
13
  import "lodash/isEmpty";
14
14
  import * as yup from "yup";
15
15
  const Input = ({
@@ -35,48 +35,49 @@ const Input = ({
35
35
  { provider: providerToEditName, ...description.values }
36
36
  ) : "";
37
37
  if (type === "bool") {
38
- return /* @__PURE__ */ jsx(
39
- ToggleInput,
40
- {
41
- "aria-label": name,
42
- checked: value,
43
- disabled,
44
- hint,
45
- label,
46
- name,
47
- offLabel: formatMessage({
48
- id: "app.components.ToggleCheckbox.off-label",
49
- defaultMessage: "Off"
50
- }),
51
- onLabel: formatMessage({
52
- id: "app.components.ToggleCheckbox.on-label",
53
- defaultMessage: "On"
54
- }),
55
- onChange: (e) => {
56
- onChange({ target: { name, value: e.target.checked } });
38
+ return /* @__PURE__ */ jsxs(Field.Root, { hint, name, children: [
39
+ /* @__PURE__ */ jsx(Field.Label, { children: label }),
40
+ /* @__PURE__ */ jsx(
41
+ Toggle,
42
+ {
43
+ "aria-label": name,
44
+ checked: value,
45
+ disabled,
46
+ offLabel: formatMessage({
47
+ id: "app.components.ToggleCheckbox.off-label",
48
+ defaultMessage: "Off"
49
+ }),
50
+ onLabel: formatMessage({
51
+ id: "app.components.ToggleCheckbox.on-label",
52
+ defaultMessage: "On"
53
+ }),
54
+ onChange: (e) => {
55
+ onChange({ target: { name, value: e.target.checked } });
56
+ }
57
57
  }
58
- }
59
- );
58
+ ),
59
+ /* @__PURE__ */ jsx(Field.Hint, {})
60
+ ] });
60
61
  }
61
62
  const formattedPlaceholder = placeholder ? formatMessage(
62
63
  { id: placeholder.id, defaultMessage: placeholder.defaultMessage },
63
64
  { ...placeholder.values }
64
65
  ) : "";
65
66
  const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : "";
66
- return /* @__PURE__ */ jsx(
67
- TextInput,
68
- {
69
- "aria-label": name,
70
- disabled,
71
- error: errorMessage,
72
- label,
73
- name,
74
- onChange,
75
- placeholder: formattedPlaceholder,
76
- type,
77
- value: inputValue
78
- }
79
- );
67
+ return /* @__PURE__ */ jsxs(Field.Root, { error: errorMessage, name, children: [
68
+ /* @__PURE__ */ jsx(Field.Label, { children: label }),
69
+ /* @__PURE__ */ jsx(
70
+ TextInput,
71
+ {
72
+ disabled,
73
+ onChange,
74
+ placeholder: formattedPlaceholder,
75
+ type,
76
+ value: inputValue
77
+ }
78
+ ),
79
+ /* @__PURE__ */ jsx(Field.Error, {})
80
+ ] });
80
81
  };
81
82
  Input.defaultProps = {
82
83
  description: null,
@@ -120,11 +121,8 @@ const FormModal = ({
120
121
  providerToEditName
121
122
  }) => {
122
123
  const { formatMessage } = useIntl();
123
- if (!isOpen) {
124
- return null;
125
- }
126
- return /* @__PURE__ */ jsxs(ModalLayout, { onClose: onToggle, labelledBy: "title", children: [
127
- /* @__PURE__ */ jsx(ModalHeader, { children: /* @__PURE__ */ jsx(Breadcrumbs, { label: headerBreadcrumbs.join(", "), children: headerBreadcrumbs.map((crumb, index, arr) => /* @__PURE__ */ jsx(Crumb, { isCurrent: index === arr.length - 1, children: crumb }, crumb)) }) }),
124
+ return /* @__PURE__ */ jsx(Modal.Root, { open: isOpen, onOpenChange: onToggle, children: /* @__PURE__ */ jsxs(Modal.Content, { children: [
125
+ /* @__PURE__ */ jsx(Modal.Header, { children: /* @__PURE__ */ jsx(Breadcrumbs, { label: headerBreadcrumbs.join(", "), children: headerBreadcrumbs.map((crumb, index, arr) => /* @__PURE__ */ jsx(Crumb, { isCurrent: index === arr.length - 1, children: crumb }, crumb)) }) }),
128
126
  /* @__PURE__ */ jsx(
129
127
  Formik,
130
128
  {
@@ -134,35 +132,42 @@ const FormModal = ({
134
132
  validateOnChange: false,
135
133
  children: ({ errors, handleChange, values }) => {
136
134
  return /* @__PURE__ */ jsxs(Form, { children: [
137
- /* @__PURE__ */ jsx(ModalBody, { children: /* @__PURE__ */ jsx(Flex, { direction: "column", alignItems: "stretch", gap: 1, children: /* @__PURE__ */ jsx(Grid, { gap: 5, children: layout.form.map((row) => {
135
+ /* @__PURE__ */ jsx(Modal.Body, { children: /* @__PURE__ */ jsx(Flex, { direction: "column", alignItems: "stretch", gap: 1, children: /* @__PURE__ */ jsx(Grid.Root, { gap: 5, children: layout.form.map((row) => {
138
136
  return row.map((input) => {
139
- return /* @__PURE__ */ jsx(GridItem, { col: input.size, xs: 12, children: /* @__PURE__ */ jsx(
140
- Input,
137
+ return /* @__PURE__ */ jsx(
138
+ Grid.Item,
141
139
  {
142
- ...input,
143
- error: errors[input.name],
144
- onChange: handleChange,
145
- value: values[input.name],
146
- providerToEditName
147
- }
148
- ) }, input.name);
140
+ col: input.size,
141
+ xs: 12,
142
+ direction: "column",
143
+ alignItems: "stretch",
144
+ children: /* @__PURE__ */ jsx(
145
+ Input,
146
+ {
147
+ ...input,
148
+ error: errors[input.name],
149
+ onChange: handleChange,
150
+ value: values[input.name],
151
+ providerToEditName
152
+ }
153
+ )
154
+ },
155
+ input.name
156
+ );
149
157
  });
150
158
  }) }) }) }),
151
- /* @__PURE__ */ jsx(
152
- ModalFooter,
153
- {
154
- startActions: /* @__PURE__ */ jsx(Button, { variant: "tertiary", onClick: onToggle, type: "button", children: formatMessage({
155
- id: "app.components.Button.cancel",
156
- defaultMessage: "Cancel"
157
- }) }),
158
- endActions: /* @__PURE__ */ jsx(Button, { type: "submit", loading: isSubmiting, children: formatMessage({ id: "global.save", defaultMessage: "Save" }) })
159
- }
160
- )
159
+ /* @__PURE__ */ jsxs(Modal.Footer, { children: [
160
+ /* @__PURE__ */ jsx(Button, { variant: "tertiary", onClick: onToggle, type: "button", children: formatMessage({
161
+ id: "app.components.Button.cancel",
162
+ defaultMessage: "Cancel"
163
+ }) }),
164
+ /* @__PURE__ */ jsx(Button, { type: "submit", loading: isSubmiting, children: formatMessage({ id: "global.save", defaultMessage: "Save" }) })
165
+ ] })
161
166
  ] });
162
167
  }
163
168
  }
164
169
  )
165
- ] });
170
+ ] }) });
166
171
  };
167
172
  FormModal.defaultProps = {
168
173
  initialData: null,
@@ -210,6 +215,8 @@ const secretLabel = {
210
215
  id: getTrad("PopUpForm.Providers.secret.label"),
211
216
  defaultMessage: "Client Secret"
212
217
  };
218
+ const CALLBACK_REGEX = /^$|^[a-z][a-z0-9+.-]*:\/\/[^\s/$.?#](?:[^\s]*[^\s/$.?#])?$/i;
219
+ const SUBDOMAIN_REGEX = /^(([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+)(:\d+)?(\/\S*)?$/i;
213
220
  const forms = {
214
221
  email: {
215
222
  form: [
@@ -228,7 +235,7 @@ const forms = {
228
235
  ]
229
236
  ],
230
237
  schema: yup.object().shape({
231
- enabled: yup.bool().required(translatedErrors.required)
238
+ enabled: yup.bool().required(translatedErrors.required.id)
232
239
  })
233
240
  },
234
241
  providers: {
@@ -293,20 +300,20 @@ const forms = {
293
300
  ]
294
301
  ],
295
302
  schema: yup.object().shape({
296
- enabled: yup.bool().required(translatedErrors.required),
303
+ enabled: yup.bool().required(translatedErrors.required.id),
297
304
  key: yup.string().when("enabled", {
298
305
  is: true,
299
- then: yup.string().required(translatedErrors.required),
306
+ then: yup.string().required(translatedErrors.required.id),
300
307
  otherwise: yup.string()
301
308
  }),
302
309
  secret: yup.string().when("enabled", {
303
310
  is: true,
304
- then: yup.string().required(translatedErrors.required),
311
+ then: yup.string().required(translatedErrors.required.id),
305
312
  otherwise: yup.string()
306
313
  }),
307
314
  callback: yup.string().when("enabled", {
308
315
  is: true,
309
- then: yup.string().required(translatedErrors.required),
316
+ then: yup.string().matches(CALLBACK_REGEX, translatedErrors.regex.id).required(translatedErrors.required.id),
310
317
  otherwise: yup.string()
311
318
  })
312
319
  })
@@ -406,25 +413,25 @@ const forms = {
406
413
  ]
407
414
  ],
408
415
  schema: yup.object().shape({
409
- enabled: yup.bool().required(translatedErrors.required),
416
+ enabled: yup.bool().required(translatedErrors.required.id),
410
417
  key: yup.string().when("enabled", {
411
418
  is: true,
412
- then: yup.string().required(translatedErrors.required),
419
+ then: yup.string().required(translatedErrors.required.id),
413
420
  otherwise: yup.string()
414
421
  }),
415
422
  secret: yup.string().when("enabled", {
416
423
  is: true,
417
- then: yup.string().required(translatedErrors.required),
424
+ then: yup.string().required(translatedErrors.required.id),
418
425
  otherwise: yup.string()
419
426
  }),
420
427
  subdomain: yup.string().when("enabled", {
421
428
  is: true,
422
- then: yup.string().required(translatedErrors.required),
429
+ then: yup.string().matches(SUBDOMAIN_REGEX, translatedErrors.regex.id).required(translatedErrors.required.id),
423
430
  otherwise: yup.string()
424
431
  }),
425
432
  callback: yup.string().when("enabled", {
426
433
  is: true,
427
- then: yup.string().required(translatedErrors.required),
434
+ then: yup.string().matches(CALLBACK_REGEX, translatedErrors.regex.id).required(translatedErrors.required.id),
428
435
  otherwise: yup.string()
429
436
  })
430
437
  })
@@ -436,14 +443,12 @@ const ProvidersPage = () => {
436
443
  const { trackUsage } = useTracking();
437
444
  const [isOpen, setIsOpen] = React.useState(false);
438
445
  const [providerToEditName, setProviderToEditName] = React.useState(null);
439
- const toggleNotification = useNotification();
440
- const { lockApp, unlockApp } = useOverlayBlocker();
446
+ const { toggleNotification } = useNotification();
441
447
  const { get, put } = useFetchClient();
442
448
  const { formatAPIError } = useAPIErrorHandler();
443
449
  const formatter = useCollator(locale, {
444
450
  sensitivity: "base"
445
451
  });
446
- useFocusWhenNavigate();
447
452
  const {
448
453
  isLoading: isLoadingPermissions,
449
454
  allowedActions: { canUpdate }
@@ -460,21 +465,19 @@ const ProvidersPage = () => {
460
465
  );
461
466
  const submitMutation = useMutation((body) => put("/users-permissions/providers", body), {
462
467
  async onSuccess() {
463
- await queryClient.invalidateQueries(["users-permissions", "providers"]);
468
+ await queryClient.invalidateQueries(["users-permissions", "get-providers"]);
464
469
  toggleNotification({
465
470
  type: "success",
466
- message: { id: getTrad("notification.success.submit") }
471
+ message: formatMessage({ id: getTrad("notification.success.submit") })
467
472
  });
468
473
  trackUsage("didEditAuthenticationProvider");
469
474
  handleToggleModal();
470
- unlockApp();
471
475
  },
472
476
  onError(error) {
473
477
  toggleNotification({
474
- type: "warning",
478
+ type: "danger",
475
479
  message: formatAPIError(error)
476
480
  });
477
- unlockApp();
478
481
  },
479
482
  refetchActive: false
480
483
  });
@@ -515,23 +518,25 @@ const ProvidersPage = () => {
515
518
  }
516
519
  };
517
520
  const handleSubmit = async (values) => {
518
- lockApp();
519
521
  trackUsage("willEditAuthenticationProvider");
520
522
  submitMutation.mutate({ providers: { ...data, [providerToEditName]: values } });
521
523
  };
522
- return /* @__PURE__ */ jsxs(Layout, { children: [
523
- /* @__PURE__ */ jsx(
524
- SettingsPageTitle,
524
+ if (isLoading) {
525
+ return /* @__PURE__ */ jsx(Page.Loading, {});
526
+ }
527
+ return /* @__PURE__ */ jsxs(Layouts.Root, { children: [
528
+ /* @__PURE__ */ jsx(Page.Title, { children: formatMessage(
529
+ { id: "Settings.PageTitle", defaultMessage: "Settings - {name}" },
525
530
  {
526
531
  name: formatMessage({
527
532
  id: getTrad("HeaderNav.link.providers"),
528
533
  defaultMessage: "Providers"
529
534
  })
530
535
  }
531
- ),
532
- /* @__PURE__ */ jsxs(Main, { children: [
536
+ ) }),
537
+ /* @__PURE__ */ jsxs(Page.Main, { children: [
533
538
  /* @__PURE__ */ jsx(
534
- HeaderLayout,
539
+ Layouts.Header,
535
540
  {
536
541
  title: formatMessage({
537
542
  id: getTrad("HeaderNav.link.providers"),
@@ -539,7 +544,7 @@ const ProvidersPage = () => {
539
544
  })
540
545
  }
541
546
  ),
542
- isLoading ? /* @__PURE__ */ jsx(LoadingIndicatorPage, {}) : /* @__PURE__ */ jsx(ContentLayout, { children: /* @__PURE__ */ jsxs(Table, { colCount: 3, rowCount: providers.length + 1, children: [
547
+ /* @__PURE__ */ jsx(Layouts.Content, { children: /* @__PURE__ */ jsxs(Table, { colCount: 3, rowCount: providers.length + 1, children: [
543
548
  /* @__PURE__ */ jsx(Thead, { children: /* @__PURE__ */ jsxs(Tr, { children: [
544
549
  /* @__PURE__ */ jsx(Th, { children: /* @__PURE__ */ jsx(Typography, { variant: "sigma", textColor: "neutral600", children: formatMessage({ id: "global.name", defaultMessage: "Name" }) }) }),
545
550
  /* @__PURE__ */ jsx(Th, { children: /* @__PURE__ */ jsx(Typography, { variant: "sigma", textColor: "neutral600", children: formatMessage({ id: getTrad("Providers.status"), defaultMessage: "Status" }) }) }),
@@ -551,10 +556,7 @@ const ProvidersPage = () => {
551
556
  /* @__PURE__ */ jsx(Tbody, { children: providers.map((provider) => /* @__PURE__ */ jsxs(
552
557
  Tr,
553
558
  {
554
- ...onRowClick({
555
- fn: () => handleClickEdit(provider),
556
- condition: canUpdate
557
- }),
559
+ onClick: () => canUpdate ? handleClickEdit(provider) : void 0,
558
560
  children: [
559
561
  /* @__PURE__ */ jsx(Td, { width: "45%", children: /* @__PURE__ */ jsx(Typography, { fontWeight: "semiBold", textColor: "neutral800", children: provider.name }) }),
560
562
  /* @__PURE__ */ jsx(Td, { width: "65%", children: /* @__PURE__ */ jsx(
@@ -571,13 +573,13 @@ const ProvidersPage = () => {
571
573
  })
572
574
  }
573
575
  ) }),
574
- /* @__PURE__ */ jsx(Td, { ...stopPropagation, children: canUpdate && /* @__PURE__ */ jsx(
576
+ /* @__PURE__ */ jsx(Td, { onClick: (e) => e.stopPropagation(), children: canUpdate && /* @__PURE__ */ jsx(
575
577
  IconButton,
576
578
  {
577
579
  onClick: () => handleClickEdit(provider),
578
- noBorder: true,
579
- icon: /* @__PURE__ */ jsx(Pencil, {}),
580
- label: "Edit"
580
+ variant: "ghost",
581
+ label: "Edit",
582
+ children: /* @__PURE__ */ jsx(Pencil, {})
581
583
  }
582
584
  ) })
583
585
  ]
@@ -607,9 +609,9 @@ const ProvidersPage = () => {
607
609
  )
608
610
  ] });
609
611
  };
610
- const ProtectedProvidersPage = () => /* @__PURE__ */ jsx(CheckPagePermissions, { permissions: PERMISSIONS.readProviders, children: /* @__PURE__ */ jsx(ProvidersPage, {}) });
612
+ const ProtectedProvidersPage = () => /* @__PURE__ */ jsx(Page.Protect, { permissions: PERMISSIONS.readProviders, children: /* @__PURE__ */ jsx(ProvidersPage, {}) });
611
613
  export {
612
614
  ProvidersPage,
613
615
  ProtectedProvidersPage as default
614
616
  };
615
- //# sourceMappingURL=index-wiA9qAAp.mjs.map
617
+ //# sourceMappingURL=index-D_J3MMcj.mjs.map