@strapi/admin 5.8.1 → 5.10.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 (861) hide show
  1. package/dist/_internal.js +86 -30
  2. package/dist/_internal.js.map +1 -1
  3. package/dist/_internal.mjs +85 -31
  4. package/dist/_internal.mjs.map +1 -1
  5. package/dist/admin/chunks/AdminSeatInfo-BfPqdNN0.js +116 -0
  6. package/dist/admin/chunks/AdminSeatInfo-BfPqdNN0.js.map +1 -0
  7. package/dist/admin/chunks/AdminSeatInfo-Cw1ujAsZ.mjs +114 -0
  8. package/dist/admin/chunks/AdminSeatInfo-Cw1ujAsZ.mjs.map +1 -0
  9. package/dist/admin/chunks/ApplicationInfoPage-Ch6hKH4Y.mjs +932 -0
  10. package/dist/admin/chunks/ApplicationInfoPage-Ch6hKH4Y.mjs.map +1 -0
  11. package/dist/admin/chunks/ApplicationInfoPage-DIiAE-tT.js +953 -0
  12. package/dist/admin/chunks/ApplicationInfoPage-DIiAE-tT.js.map +1 -0
  13. package/dist/admin/chunks/AuthResponse-DFS6gVO4.mjs +87 -0
  14. package/dist/admin/chunks/AuthResponse-DFS6gVO4.mjs.map +1 -0
  15. package/dist/admin/chunks/AuthResponse-DI-Q1kQL.js +108 -0
  16. package/dist/admin/chunks/AuthResponse-DI-Q1kQL.js.map +1 -0
  17. package/dist/admin/chunks/AuthenticatedLayout-BNWCtSH2.mjs +1223 -0
  18. package/dist/admin/chunks/AuthenticatedLayout-BNWCtSH2.mjs.map +1 -0
  19. package/dist/admin/chunks/AuthenticatedLayout-D067wUoO.js +1245 -0
  20. package/dist/admin/chunks/AuthenticatedLayout-D067wUoO.js.map +1 -0
  21. package/dist/admin/chunks/CreateActionEE-CSZxFkrZ.js +74 -0
  22. package/dist/admin/chunks/CreateActionEE-CSZxFkrZ.js.map +1 -0
  23. package/dist/admin/chunks/CreateActionEE-DZ6ApqOF.mjs +53 -0
  24. package/dist/admin/chunks/CreateActionEE-DZ6ApqOF.mjs.map +1 -0
  25. package/dist/admin/chunks/CreatePage-0PdN9Fyc.mjs +355 -0
  26. package/dist/admin/chunks/CreatePage-0PdN9Fyc.mjs.map +1 -0
  27. package/dist/admin/chunks/CreatePage-BK_ivKDk.js +378 -0
  28. package/dist/admin/chunks/CreatePage-BK_ivKDk.js.map +1 -0
  29. package/dist/admin/chunks/CreatePage-C8PMNi_P.js +57 -0
  30. package/dist/admin/chunks/CreatePage-C8PMNi_P.js.map +1 -0
  31. package/dist/admin/chunks/CreatePage-DojcQqvH.mjs +54 -0
  32. package/dist/admin/chunks/CreatePage-DojcQqvH.mjs.map +1 -0
  33. package/dist/admin/chunks/CreateView-BuN2a7bo.mjs +57 -0
  34. package/dist/admin/chunks/CreateView-BuN2a7bo.mjs.map +1 -0
  35. package/dist/admin/chunks/CreateView-DB0xD4f5.mjs +62 -0
  36. package/dist/admin/chunks/CreateView-DB0xD4f5.mjs.map +1 -0
  37. package/dist/admin/chunks/CreateView-DtccbWiR.js +59 -0
  38. package/dist/admin/chunks/CreateView-DtccbWiR.js.map +1 -0
  39. package/dist/admin/chunks/CreateView-ITRNGoQ6.js +64 -0
  40. package/dist/admin/chunks/CreateView-ITRNGoQ6.js.map +1 -0
  41. package/dist/admin/chunks/EditPage-BNZ90ISm.mjs +986 -0
  42. package/dist/admin/chunks/EditPage-BNZ90ISm.mjs.map +1 -0
  43. package/dist/admin/chunks/EditPage-BazkPM17.mjs +351 -0
  44. package/dist/admin/chunks/EditPage-BazkPM17.mjs.map +1 -0
  45. package/dist/admin/chunks/EditPage-DiDSR0tz.js +1010 -0
  46. package/dist/admin/chunks/EditPage-DiDSR0tz.js.map +1 -0
  47. package/dist/admin/chunks/EditPage-LRn1-C88.mjs +397 -0
  48. package/dist/admin/chunks/EditPage-LRn1-C88.mjs.map +1 -0
  49. package/dist/admin/chunks/EditPage-ibh8EtSv.js +420 -0
  50. package/dist/admin/chunks/EditPage-ibh8EtSv.js.map +1 -0
  51. package/dist/admin/chunks/EditPage-r043NYgB.js +374 -0
  52. package/dist/admin/chunks/EditPage-r043NYgB.js.map +1 -0
  53. package/dist/admin/chunks/EditView-CgMgqsza.mjs +398 -0
  54. package/dist/admin/chunks/EditView-CgMgqsza.mjs.map +1 -0
  55. package/dist/admin/chunks/EditView-DxmJI6e0.js +421 -0
  56. package/dist/admin/chunks/EditView-DxmJI6e0.js.map +1 -0
  57. package/dist/admin/chunks/EditViewPage-BE_u8pQP.mjs +1039 -0
  58. package/dist/admin/chunks/EditViewPage-BE_u8pQP.mjs.map +1 -0
  59. package/dist/admin/chunks/EditViewPage-Bz4GEIsc.js +1062 -0
  60. package/dist/admin/chunks/EditViewPage-Bz4GEIsc.js.map +1 -0
  61. package/dist/admin/chunks/EventsTable-CZY0aI5G.js +97 -0
  62. package/dist/admin/chunks/EventsTable-CZY0aI5G.js.map +1 -0
  63. package/dist/admin/chunks/EventsTable-CsFf4rOj.mjs +95 -0
  64. package/dist/admin/chunks/EventsTable-CsFf4rOj.mjs.map +1 -0
  65. package/dist/admin/chunks/HomePage-C2Sue0eX.mjs +55 -0
  66. package/dist/admin/chunks/HomePage-C2Sue0eX.mjs.map +1 -0
  67. package/dist/admin/chunks/HomePage-CFTx_SgI.mjs +567 -0
  68. package/dist/admin/chunks/HomePage-CFTx_SgI.mjs.map +1 -0
  69. package/dist/admin/chunks/HomePage-Df0YSqNE.js +589 -0
  70. package/dist/admin/chunks/HomePage-Df0YSqNE.js.map +1 -0
  71. package/dist/admin/chunks/HomePage-ebJLhO6a.js +57 -0
  72. package/dist/admin/chunks/HomePage-ebJLhO6a.js.map +1 -0
  73. package/dist/admin/chunks/InstalledPlugins-B4gyKUHh.mjs +174 -0
  74. package/dist/admin/chunks/InstalledPlugins-B4gyKUHh.mjs.map +1 -0
  75. package/dist/admin/chunks/InstalledPlugins-BtwwVsQ_.js +196 -0
  76. package/dist/admin/chunks/InstalledPlugins-BtwwVsQ_.js.map +1 -0
  77. package/dist/admin/chunks/Layout-BZTqa7oj.js +296 -0
  78. package/dist/admin/chunks/Layout-BZTqa7oj.js.map +1 -0
  79. package/dist/admin/chunks/Layout-B_xkPr1q.mjs +275 -0
  80. package/dist/admin/chunks/Layout-B_xkPr1q.mjs.map +1 -0
  81. package/dist/admin/chunks/ListPage-Beh8uBDE.mjs +610 -0
  82. package/dist/admin/chunks/ListPage-Beh8uBDE.mjs.map +1 -0
  83. package/dist/admin/chunks/ListPage-BtMdu1eQ.mjs +696 -0
  84. package/dist/admin/chunks/ListPage-BtMdu1eQ.mjs.map +1 -0
  85. package/dist/admin/chunks/ListPage-CENQarKY.mjs +452 -0
  86. package/dist/admin/chunks/ListPage-CENQarKY.mjs.map +1 -0
  87. package/dist/admin/chunks/ListPage-Czwak48Z.mjs +373 -0
  88. package/dist/admin/chunks/ListPage-Czwak48Z.mjs.map +1 -0
  89. package/dist/admin/chunks/ListPage-DgmOJv7H.js +632 -0
  90. package/dist/admin/chunks/ListPage-DgmOJv7H.js.map +1 -0
  91. package/dist/admin/chunks/ListPage-Du6Jt5wY.js +721 -0
  92. package/dist/admin/chunks/ListPage-Du6Jt5wY.js.map +1 -0
  93. package/dist/admin/chunks/ListPage-LqcmQd_Q.js +474 -0
  94. package/dist/admin/chunks/ListPage-LqcmQd_Q.js.map +1 -0
  95. package/dist/admin/chunks/ListPage-YW-UVjk3.js +57 -0
  96. package/dist/admin/chunks/ListPage-YW-UVjk3.js.map +1 -0
  97. package/dist/admin/chunks/ListPage-gKsEm3Px.js +395 -0
  98. package/dist/admin/chunks/ListPage-gKsEm3Px.js.map +1 -0
  99. package/dist/admin/chunks/ListPage-r9rW__R8.mjs +55 -0
  100. package/dist/admin/chunks/ListPage-r9rW__R8.mjs.map +1 -0
  101. package/dist/admin/chunks/ListView-BfwBUxHL.js +276 -0
  102. package/dist/admin/chunks/ListView-BfwBUxHL.js.map +1 -0
  103. package/dist/admin/chunks/ListView-Bys8EN-y.js +278 -0
  104. package/dist/admin/chunks/ListView-Bys8EN-y.js.map +1 -0
  105. package/dist/admin/chunks/ListView-CajksON_.mjs +255 -0
  106. package/dist/admin/chunks/ListView-CajksON_.mjs.map +1 -0
  107. package/dist/admin/chunks/ListView-Q2AO0JSX.mjs +253 -0
  108. package/dist/admin/chunks/ListView-Q2AO0JSX.mjs.map +1 -0
  109. package/dist/admin/chunks/Login-5ByBaKI3.mjs +93 -0
  110. package/dist/admin/chunks/Login-5ByBaKI3.mjs.map +1 -0
  111. package/dist/admin/chunks/Login-BpEOnVbU.js +95 -0
  112. package/dist/admin/chunks/Login-BpEOnVbU.js.map +1 -0
  113. package/dist/admin/chunks/MagicLinkEE-CiQG7NL3.mjs +66 -0
  114. package/dist/admin/chunks/MagicLinkEE-CiQG7NL3.mjs.map +1 -0
  115. package/dist/admin/chunks/MagicLinkEE-a-AbOB4s.js +68 -0
  116. package/dist/admin/chunks/MagicLinkEE-a-AbOB4s.js.map +1 -0
  117. package/dist/admin/chunks/MarketplacePage-BrHNQ8SG.mjs +1134 -0
  118. package/dist/admin/chunks/MarketplacePage-BrHNQ8SG.mjs.map +1 -0
  119. package/dist/admin/chunks/MarketplacePage-my1nDaHy.js +1158 -0
  120. package/dist/admin/chunks/MarketplacePage-my1nDaHy.js.map +1 -0
  121. package/dist/admin/chunks/ModalForm-Br-NALJ0.js +26 -0
  122. package/dist/admin/chunks/ModalForm-Br-NALJ0.js.map +1 -0
  123. package/dist/admin/chunks/ModalForm-CZ98aSC9.mjs +23 -0
  124. package/dist/admin/chunks/ModalForm-CZ98aSC9.mjs.map +1 -0
  125. package/dist/admin/chunks/Ornaments-CvdERnok.js +217 -0
  126. package/dist/admin/chunks/Ornaments-CvdERnok.js.map +1 -0
  127. package/dist/admin/chunks/Ornaments-DlP663hn.mjs +212 -0
  128. package/dist/admin/chunks/Ornaments-DlP663hn.mjs.map +1 -0
  129. package/dist/admin/chunks/Permissions-C7FA_7J9.js +2285 -0
  130. package/dist/admin/chunks/Permissions-C7FA_7J9.js.map +1 -0
  131. package/dist/admin/chunks/Permissions-CuLck8vw.mjs +2264 -0
  132. package/dist/admin/chunks/Permissions-CuLck8vw.mjs.map +1 -0
  133. package/dist/admin/chunks/PrivateRoute-BYKd2yE4.mjs +18 -0
  134. package/dist/admin/chunks/PrivateRoute-BYKd2yE4.mjs.map +1 -0
  135. package/dist/admin/chunks/PrivateRoute-BnxIlIDb.js +20 -0
  136. package/dist/admin/chunks/PrivateRoute-BnxIlIDb.js.map +1 -0
  137. package/dist/admin/chunks/ProfilePage-C8zWtYzY.js +520 -0
  138. package/dist/admin/chunks/ProfilePage-C8zWtYzY.js.map +1 -0
  139. package/dist/admin/chunks/ProfilePage-Do6nPMsx.mjs +498 -0
  140. package/dist/admin/chunks/ProfilePage-Do6nPMsx.mjs.map +1 -0
  141. package/dist/admin/chunks/PurchaseAuditLogs-BTAi887h.js +89 -0
  142. package/dist/admin/chunks/PurchaseAuditLogs-BTAi887h.js.map +1 -0
  143. package/dist/admin/chunks/PurchaseAuditLogs-McvZESGI.mjs +87 -0
  144. package/dist/admin/chunks/PurchaseAuditLogs-McvZESGI.mjs.map +1 -0
  145. package/dist/admin/chunks/PurchaseContentHistory-dfepsahq.js +89 -0
  146. package/dist/admin/chunks/PurchaseContentHistory-dfepsahq.js.map +1 -0
  147. package/dist/admin/chunks/PurchaseContentHistory-pb7RDvhZ.mjs +87 -0
  148. package/dist/admin/chunks/PurchaseContentHistory-pb7RDvhZ.mjs.map +1 -0
  149. package/dist/admin/chunks/PurchaseSingleSignOn-BUB9Irlt.mjs +87 -0
  150. package/dist/admin/chunks/PurchaseSingleSignOn-BUB9Irlt.mjs.map +1 -0
  151. package/dist/admin/chunks/PurchaseSingleSignOn-Dgal5RnY.js +89 -0
  152. package/dist/admin/chunks/PurchaseSingleSignOn-Dgal5RnY.js.map +1 -0
  153. package/dist/admin/chunks/RelativeTime-ChFKZs4z.js +76 -0
  154. package/dist/admin/chunks/RelativeTime-ChFKZs4z.js.map +1 -0
  155. package/dist/admin/chunks/RelativeTime-r7oMqUVy.mjs +55 -0
  156. package/dist/admin/chunks/RelativeTime-r7oMqUVy.mjs.map +1 -0
  157. package/dist/admin/chunks/SSOProviders-BC_OI8Id.js +107 -0
  158. package/dist/admin/chunks/SSOProviders-BC_OI8Id.js.map +1 -0
  159. package/dist/admin/chunks/SSOProviders-Dw_eYbX-.mjs +105 -0
  160. package/dist/admin/chunks/SSOProviders-Dw_eYbX-.mjs.map +1 -0
  161. package/dist/admin/chunks/SelectRoles-CG3Czm0u.mjs +124 -0
  162. package/dist/admin/chunks/SelectRoles-CG3Czm0u.mjs.map +1 -0
  163. package/dist/admin/chunks/SelectRoles-Clx1_4zB.js +128 -0
  164. package/dist/admin/chunks/SelectRoles-Clx1_4zB.js.map +1 -0
  165. package/dist/admin/chunks/SingleSignOnPage-Bqn13t3u.mjs +284 -0
  166. package/dist/admin/chunks/SingleSignOnPage-Bqn13t3u.mjs.map +1 -0
  167. package/dist/admin/chunks/SingleSignOnPage-DqHWnXWQ.js +306 -0
  168. package/dist/admin/chunks/SingleSignOnPage-DqHWnXWQ.js.map +1 -0
  169. package/dist/admin/chunks/Table-BHi0q5It.js +197 -0
  170. package/dist/admin/chunks/Table-BHi0q5It.js.map +1 -0
  171. package/dist/admin/chunks/Table-Ra6bYcx7.mjs +195 -0
  172. package/dist/admin/chunks/Table-Ra6bYcx7.mjs.map +1 -0
  173. package/dist/admin/chunks/Theme-CDaBfQ-7.mjs +1762 -0
  174. package/dist/admin/chunks/Theme-CDaBfQ-7.mjs.map +1 -0
  175. package/dist/admin/chunks/Theme-CFGbtvHi.js +1831 -0
  176. package/dist/admin/chunks/Theme-CFGbtvHi.js.map +1 -0
  177. package/dist/admin/chunks/TokenTypeSelect-BIRgChNx.mjs +367 -0
  178. package/dist/admin/chunks/TokenTypeSelect-BIRgChNx.mjs.map +1 -0
  179. package/dist/admin/chunks/TokenTypeSelect-EY1WftKo.js +394 -0
  180. package/dist/admin/chunks/TokenTypeSelect-EY1WftKo.js.map +1 -0
  181. package/dist/admin/chunks/UseCasePage-Dl-WfgYc.js +260 -0
  182. package/dist/admin/chunks/UseCasePage-Dl-WfgYc.js.map +1 -0
  183. package/dist/admin/chunks/UseCasePage-Y_h0Fbiv.mjs +237 -0
  184. package/dist/admin/chunks/UseCasePage-Y_h0Fbiv.mjs.map +1 -0
  185. package/dist/admin/chunks/admin-BBS7sDVu.mjs +407 -0
  186. package/dist/admin/chunks/admin-BBS7sDVu.mjs.map +1 -0
  187. package/dist/admin/chunks/admin-udBiOv2o.js +422 -0
  188. package/dist/admin/chunks/admin-udBiOv2o.js.map +1 -0
  189. package/dist/admin/chunks/apiTokens-Bl4j4xFt.mjs +79 -0
  190. package/dist/admin/chunks/apiTokens-Bl4j4xFt.mjs.map +1 -0
  191. package/dist/admin/chunks/apiTokens-C7CY0RRl.js +85 -0
  192. package/dist/admin/chunks/apiTokens-C7CY0RRl.js.map +1 -0
  193. package/dist/admin/chunks/ar-CKlv64GT.js +851 -0
  194. package/dist/admin/{ar-BX4l-gGG.js.map → chunks/ar-CKlv64GT.js.map} +1 -1
  195. package/dist/admin/chunks/ar-DIoaNhYi.mjs +832 -0
  196. package/dist/admin/{ar-7vbwrPth.mjs.map → chunks/ar-DIoaNhYi.mjs.map} +1 -1
  197. package/dist/admin/chunks/ca-CiTVrP0z.mjs +520 -0
  198. package/dist/admin/{ca-f06Q0InB.mjs.map → chunks/ca-CiTVrP0z.mjs.map} +1 -1
  199. package/dist/admin/chunks/ca-Dro6RjTq.js +536 -0
  200. package/dist/admin/{ml-CzFKbt9H.js.map → chunks/ca-Dro6RjTq.js.map} +1 -1
  201. package/dist/admin/chunks/constants-B8oOcJBB.mjs +5 -0
  202. package/dist/admin/chunks/constants-B8oOcJBB.mjs.map +1 -0
  203. package/dist/admin/chunks/constants-DClZ3JYF.js +163 -0
  204. package/dist/admin/chunks/constants-DClZ3JYF.js.map +1 -0
  205. package/dist/admin/chunks/constants-DoArvzRr.mjs +161 -0
  206. package/dist/admin/chunks/constants-DoArvzRr.mjs.map +1 -0
  207. package/dist/admin/chunks/constants-tbFuOuW4.js +8 -0
  208. package/dist/admin/chunks/constants-tbFuOuW4.js.map +1 -0
  209. package/dist/admin/chunks/cs-CrhAArjW.js +177 -0
  210. package/dist/admin/{cs-DeS9DzIq.js.map → chunks/cs-CrhAArjW.js.map} +1 -1
  211. package/dist/admin/chunks/cs-D7xysdyX.mjs +166 -0
  212. package/dist/admin/{cs-DrRkodPD.mjs.map → chunks/cs-D7xysdyX.mjs.map} +1 -1
  213. package/dist/admin/chunks/de--2g6Hiwv.js +530 -0
  214. package/dist/admin/{de-CxVS71Os.js.map → chunks/de--2g6Hiwv.js.map} +1 -1
  215. package/dist/admin/chunks/de-BWQ7SIyM.mjs +514 -0
  216. package/dist/admin/{de-D0NA2abW.mjs.map → chunks/de-BWQ7SIyM.mjs.map} +1 -1
  217. package/dist/admin/chunks/dk-7AZJZW29.mjs +434 -0
  218. package/dist/admin/{ja-Cc9Dg_QK.mjs.map → chunks/dk-7AZJZW29.mjs.map} +1 -1
  219. package/dist/admin/chunks/dk-DlX9Yc-Z.js +450 -0
  220. package/dist/admin/{ko-CS08pZ0z.js.map → chunks/dk-DlX9Yc-Z.js.map} +1 -1
  221. package/dist/admin/chunks/en-CJjqxA2Q.js +804 -0
  222. package/dist/admin/{en-BR2e5qX-.js.map → chunks/en-CJjqxA2Q.js.map} +1 -1
  223. package/dist/admin/chunks/en-CRu3-kTC.mjs +784 -0
  224. package/dist/admin/{en-CSPHZKTw.mjs.map → chunks/en-CRu3-kTC.mjs.map} +1 -1
  225. package/dist/admin/chunks/en-GB-CMP_CCZs.js +8 -0
  226. package/dist/admin/chunks/en-GB-CMP_CCZs.js.map +1 -0
  227. package/dist/admin/chunks/en-GB-DZyWkup_.mjs +6 -0
  228. package/dist/admin/chunks/en-GB-DZyWkup_.mjs.map +1 -0
  229. package/dist/admin/chunks/es-DlUN520X.mjs +602 -0
  230. package/dist/admin/{es-XEfESBGO.mjs.map → chunks/es-DlUN520X.mjs.map} +1 -1
  231. package/dist/admin/chunks/es-qJwzbuzj.js +620 -0
  232. package/dist/admin/{es-CeFZcM6R.js.map → chunks/es-qJwzbuzj.js.map} +1 -1
  233. package/dist/admin/chunks/eu-BjPzWjP-.mjs +625 -0
  234. package/dist/admin/{hu-DaDd6FHR.mjs.map → chunks/eu-BjPzWjP-.mjs.map} +1 -1
  235. package/dist/admin/chunks/eu-DLuO9QFa.js +643 -0
  236. package/dist/admin/chunks/eu-DLuO9QFa.js.map +1 -0
  237. package/dist/admin/chunks/fr-D-lfObnF.mjs +581 -0
  238. package/dist/admin/{fr-CndUnB7j.mjs.map → chunks/fr-D-lfObnF.mjs.map} +1 -1
  239. package/dist/admin/chunks/fr-l9CvkceZ.js +601 -0
  240. package/dist/admin/{fr-BMaOPAWr.js.map → chunks/fr-l9CvkceZ.js.map} +1 -1
  241. package/dist/admin/chunks/gu-BfN4U3Q0.js +436 -0
  242. package/dist/admin/{gu-Hc5YzUuw.js.map → chunks/gu-BfN4U3Q0.js.map} +1 -1
  243. package/dist/admin/chunks/gu-DMqR9PzV.mjs +429 -0
  244. package/dist/admin/{gu-CSS25C49.mjs.map → chunks/gu-DMqR9PzV.mjs.map} +1 -1
  245. package/dist/admin/chunks/he-DQnlLpI2.js +327 -0
  246. package/dist/admin/chunks/he-DQnlLpI2.js.map +1 -0
  247. package/dist/admin/chunks/he-DfIYPy4g.mjs +315 -0
  248. package/dist/admin/{he-C3w9omDw.mjs.map → chunks/he-DfIYPy4g.mjs.map} +1 -1
  249. package/dist/admin/chunks/hi-C1bRwQm3.mjs +519 -0
  250. package/dist/admin/{hi-DW2CutdA.mjs.map → chunks/hi-C1bRwQm3.mjs.map} +1 -1
  251. package/dist/admin/chunks/hi-CAYgw5fw.js +535 -0
  252. package/dist/admin/{pl-Bf4D5Q8_.js.map → chunks/hi-CAYgw5fw.js.map} +1 -1
  253. package/dist/admin/chunks/hu-CmA0pIab.js +643 -0
  254. package/dist/admin/chunks/hu-CmA0pIab.js.map +1 -0
  255. package/dist/admin/chunks/hu-DTUInqNe.mjs +625 -0
  256. package/dist/admin/{eu-CDMMTSys.mjs.map → chunks/hu-DTUInqNe.mjs.map} +1 -1
  257. package/dist/admin/chunks/id-C69myNeZ.js +301 -0
  258. package/dist/admin/{id-BX77nhRG.js.map → chunks/id-C69myNeZ.js.map} +1 -1
  259. package/dist/admin/chunks/id-CLj6OS01.mjs +290 -0
  260. package/dist/admin/{id-cH3Ovozx.mjs.map → chunks/id-CLj6OS01.mjs.map} +1 -1
  261. package/dist/admin/chunks/index-BUGouNML.mjs +7091 -0
  262. package/dist/admin/chunks/index-BUGouNML.mjs.map +1 -0
  263. package/dist/admin/chunks/index-D7OmC33R.js +7155 -0
  264. package/dist/admin/chunks/index-D7OmC33R.js.map +1 -0
  265. package/dist/admin/chunks/it-Bn9y0UG-.js +310 -0
  266. package/dist/admin/{it-Br3eqqDa.js.map → chunks/it-Bn9y0UG-.js.map} +1 -1
  267. package/dist/admin/chunks/it-CI4iXN-s.mjs +299 -0
  268. package/dist/admin/{it-T1rZP3NX.mjs.map → chunks/it-CI4iXN-s.mjs.map} +1 -1
  269. package/dist/admin/chunks/ja-DDL7fKfX.js +450 -0
  270. package/dist/admin/{dk-Dy9JFy9v.js.map → chunks/ja-DDL7fKfX.js.map} +1 -1
  271. package/dist/admin/chunks/ja-XD0qdvmh.mjs +434 -0
  272. package/dist/admin/{dk-Cv0jDfcZ.mjs.map → chunks/ja-XD0qdvmh.mjs.map} +1 -1
  273. package/dist/admin/chunks/ko-CAChQtgZ.mjs +433 -0
  274. package/dist/admin/{ko-D1e-SMHS.mjs.map → chunks/ko-CAChQtgZ.mjs.map} +1 -1
  275. package/dist/admin/chunks/ko-C_d9Ja0b.js +449 -0
  276. package/dist/admin/{ja-CmifbkZD.js.map → chunks/ko-C_d9Ja0b.js.map} +1 -1
  277. package/dist/admin/chunks/ml-BN6g97vL.js +535 -0
  278. package/dist/admin/chunks/ml-BN6g97vL.js.map +1 -0
  279. package/dist/admin/chunks/ml-OZdE-Rdf.mjs +519 -0
  280. package/dist/admin/{pl-B0hZgHvQ.mjs.map → chunks/ml-OZdE-Rdf.mjs.map} +1 -1
  281. package/dist/admin/chunks/ms-CWDO45lu.mjs +200 -0
  282. package/dist/admin/{pt-8dwKSOn3.mjs.map → chunks/ms-CWDO45lu.mjs.map} +1 -1
  283. package/dist/admin/chunks/ms-DSUp9TXl.js +211 -0
  284. package/dist/admin/{pt-CEcd6cjN.js.map → chunks/ms-DSUp9TXl.js.map} +1 -1
  285. package/dist/admin/chunks/nl-BRq2PB1q.mjs +621 -0
  286. package/dist/admin/{nl-CubaFTJw.mjs.map → chunks/nl-BRq2PB1q.mjs.map} +1 -1
  287. package/dist/admin/chunks/nl-Bc4mZOba.js +639 -0
  288. package/dist/admin/{sv-BqRXfruc.js.map → chunks/nl-Bc4mZOba.js.map} +1 -1
  289. package/dist/admin/chunks/no-BtzfHZUH.mjs +300 -0
  290. package/dist/admin/{no-9TbSG07o.mjs.map → chunks/no-BtzfHZUH.mjs.map} +1 -1
  291. package/dist/admin/chunks/no-D0VN_ZtA.js +311 -0
  292. package/dist/admin/{no-DU4xtEmk.js.map → chunks/no-D0VN_ZtA.js.map} +1 -1
  293. package/dist/admin/chunks/pl-BsvtDLRo.mjs +519 -0
  294. package/dist/admin/{ml-FLft_QIc.mjs.map → chunks/pl-BsvtDLRo.mjs.map} +1 -1
  295. package/dist/admin/chunks/pl-D7HFG_xo.js +535 -0
  296. package/dist/admin/chunks/pl-D7HFG_xo.js.map +1 -0
  297. package/dist/admin/chunks/pt-BR-B3KKuF2p.js +606 -0
  298. package/dist/admin/{pt-BR-BFq-a8-C.js.map → chunks/pt-BR-B3KKuF2p.js.map} +1 -1
  299. package/dist/admin/chunks/pt-BR-DBqHmqA5.mjs +588 -0
  300. package/dist/admin/{pt-BR-BDpWvCrQ.mjs.map → chunks/pt-BR-DBqHmqA5.mjs.map} +1 -1
  301. package/dist/admin/chunks/pt-DCyoSDGa.js +210 -0
  302. package/dist/admin/{ms-C-JB0-h1.js.map → chunks/pt-DCyoSDGa.js.map} +1 -1
  303. package/dist/admin/chunks/pt-wKaSOdHh.mjs +200 -0
  304. package/dist/admin/{ms-eMDSLvhl.mjs.map → chunks/pt-wKaSOdHh.mjs.map} +1 -1
  305. package/dist/admin/chunks/ru-C13N1yaO.mjs +745 -0
  306. package/dist/admin/{ru-C34i9wJx.mjs.map → chunks/ru-C13N1yaO.mjs.map} +1 -1
  307. package/dist/admin/chunks/ru-Dj1oAKC7.js +764 -0
  308. package/dist/admin/{ru-Dwf09uUc.js.map → chunks/ru-Dj1oAKC7.js.map} +1 -1
  309. package/dist/admin/chunks/sa-BS5xpa-V.mjs +519 -0
  310. package/dist/admin/chunks/sa-BS5xpa-V.mjs.map +1 -0
  311. package/dist/admin/chunks/sa-ftcoOyFZ.js +535 -0
  312. package/dist/admin/chunks/sa-ftcoOyFZ.js.map +1 -0
  313. package/dist/admin/chunks/selectors-2ohXQx5g.js +13 -0
  314. package/dist/admin/chunks/selectors-2ohXQx5g.js.map +1 -0
  315. package/dist/admin/chunks/selectors-PQdhPmzv.mjs +11 -0
  316. package/dist/admin/chunks/selectors-PQdhPmzv.mjs.map +1 -0
  317. package/dist/admin/chunks/sk-BkoiGl_d.js +501 -0
  318. package/dist/admin/{sk-CbJVofN-.js.map → chunks/sk-BkoiGl_d.js.map} +1 -1
  319. package/dist/admin/chunks/sk-Yv9s7dUn.mjs +483 -0
  320. package/dist/admin/{sk-DQ2qpsG2.mjs.map → chunks/sk-Yv9s7dUn.mjs.map} +1 -1
  321. package/dist/admin/chunks/sv-CYpSsbq3.js +638 -0
  322. package/dist/admin/{nl-gUEC_dKT.js.map → chunks/sv-CYpSsbq3.js.map} +1 -1
  323. package/dist/admin/chunks/sv-CaQpgtnl.mjs +620 -0
  324. package/dist/admin/{sv-D0vPVUAT.mjs.map → chunks/sv-CaQpgtnl.mjs.map} +1 -1
  325. package/dist/admin/chunks/th-D1Raa9T5.js +295 -0
  326. package/dist/admin/{th-CPx6wf0M.js.map → chunks/th-D1Raa9T5.js.map} +1 -1
  327. package/dist/admin/chunks/th-Mav5tUMF.mjs +284 -0
  328. package/dist/admin/{th-BG3IOCqV.mjs.map → chunks/th-Mav5tUMF.mjs.map} +1 -1
  329. package/dist/admin/chunks/tr-DZnC0Jye.mjs +581 -0
  330. package/dist/admin/{tr-Dq45DRRZ.mjs.map → chunks/tr-DZnC0Jye.mjs.map} +1 -1
  331. package/dist/admin/chunks/tr-KY2E7HZC.js +599 -0
  332. package/dist/admin/{tr-hC_m0V8Q.js.map → chunks/tr-KY2E7HZC.js.map} +1 -1
  333. package/dist/admin/chunks/transferTokens-9pdM-Bum.mjs +90 -0
  334. package/dist/admin/chunks/transferTokens-9pdM-Bum.mjs.map +1 -0
  335. package/dist/admin/chunks/transferTokens-oEFM8kkT.js +97 -0
  336. package/dist/admin/chunks/transferTokens-oEFM8kkT.js.map +1 -0
  337. package/dist/admin/chunks/uk-Cb6a0PAZ.mjs +201 -0
  338. package/dist/admin/{uk-Ud9QNfkB.mjs.map → chunks/uk-Cb6a0PAZ.mjs.map} +1 -1
  339. package/dist/admin/chunks/uk-gz16FlMw.js +212 -0
  340. package/dist/admin/chunks/uk-gz16FlMw.js.map +1 -0
  341. package/dist/admin/chunks/useAdminRoles-BEmkB0uj.mjs +32 -0
  342. package/dist/admin/chunks/useAdminRoles-BEmkB0uj.mjs.map +1 -0
  343. package/dist/admin/chunks/useAdminRoles-DwDqOIvp.js +53 -0
  344. package/dist/admin/chunks/useAdminRoles-DwDqOIvp.js.map +1 -0
  345. package/dist/admin/chunks/useEnterprise-Dy8wMNV5.mjs +38 -0
  346. package/dist/admin/chunks/useEnterprise-Dy8wMNV5.mjs.map +1 -0
  347. package/dist/admin/chunks/useEnterprise-IHd3AKd2.js +59 -0
  348. package/dist/admin/chunks/useEnterprise-IHd3AKd2.js.map +1 -0
  349. package/dist/admin/chunks/useLicenseLimitNotification-BMCQ8obE.js +96 -0
  350. package/dist/admin/chunks/useLicenseLimitNotification-BMCQ8obE.js.map +1 -0
  351. package/dist/admin/chunks/useLicenseLimitNotification-CGkazzao.mjs +75 -0
  352. package/dist/admin/chunks/useLicenseLimitNotification-CGkazzao.mjs.map +1 -0
  353. package/dist/admin/chunks/useLicenseLimits-D4XBewxi.mjs +29 -0
  354. package/dist/admin/chunks/useLicenseLimits-D4XBewxi.mjs.map +1 -0
  355. package/dist/admin/chunks/useLicenseLimits-JOHH8jfL.js +50 -0
  356. package/dist/admin/chunks/useLicenseLimits-JOHH8jfL.js.map +1 -0
  357. package/dist/admin/chunks/useOnce-CCEXokcy.js +28 -0
  358. package/dist/admin/chunks/useOnce-CCEXokcy.js.map +1 -0
  359. package/dist/admin/chunks/useOnce-EHSWW7FY.mjs +7 -0
  360. package/dist/admin/chunks/useOnce-EHSWW7FY.mjs.map +1 -0
  361. package/dist/admin/chunks/useWebhooks-CROc5Uno.js +117 -0
  362. package/dist/admin/chunks/useWebhooks-CROc5Uno.js.map +1 -0
  363. package/dist/admin/chunks/useWebhooks-DzJ3X-hd.mjs +115 -0
  364. package/dist/admin/chunks/useWebhooks-DzJ3X-hd.mjs.map +1 -0
  365. package/dist/admin/chunks/users-B3iOAYG-.mjs +39 -0
  366. package/dist/admin/chunks/users-B3iOAYG-.mjs.map +1 -0
  367. package/dist/admin/chunks/users-D-oKxjK9.js +42 -0
  368. package/dist/admin/chunks/users-D-oKxjK9.js.map +1 -0
  369. package/dist/admin/chunks/validation-DOQs6_Ay.mjs +52 -0
  370. package/dist/admin/chunks/validation-DOQs6_Ay.mjs.map +1 -0
  371. package/dist/admin/chunks/validation-ECrFbJ6K.js +73 -0
  372. package/dist/admin/chunks/validation-ECrFbJ6K.js.map +1 -0
  373. package/dist/admin/chunks/vi-BsRo_l_e.js +198 -0
  374. package/dist/admin/{vi-UeRpPdvI.js.map → chunks/vi-BsRo_l_e.js.map} +1 -1
  375. package/dist/admin/chunks/vi-r6WrFGyI.mjs +187 -0
  376. package/dist/admin/{vi-CGrr4ioy.mjs.map → chunks/vi-r6WrFGyI.mjs.map} +1 -1
  377. package/dist/admin/chunks/zh-B_FImn9T.js +640 -0
  378. package/dist/admin/{zh-Bhpup4vu.js.map → chunks/zh-B_FImn9T.js.map} +1 -1
  379. package/dist/admin/chunks/zh-CIjQrG_x.mjs +622 -0
  380. package/dist/admin/{zh-LqPg8hbL.mjs.map → chunks/zh-CIjQrG_x.mjs.map} +1 -1
  381. package/dist/admin/chunks/zh-Hans-BmHHqjob.mjs +716 -0
  382. package/dist/admin/{zh-Hans-C44LvcXE.mjs.map → chunks/zh-Hans-BmHHqjob.mjs.map} +1 -1
  383. package/dist/admin/chunks/zh-Hans-Bv055w0d.js +735 -0
  384. package/dist/admin/{zh-Hans-BlfT-iYf.js.map → chunks/zh-Hans-Bv055w0d.js.map} +1 -1
  385. package/dist/admin/ee.js +9 -4
  386. package/dist/admin/ee.js.map +1 -1
  387. package/dist/admin/ee.mjs +9 -2
  388. package/dist/admin/ee.mjs.map +1 -1
  389. package/dist/admin/index.js +41 -5
  390. package/dist/admin/index.js.map +1 -1
  391. package/dist/admin/index.mjs +40 -3
  392. package/dist/admin/index.mjs.map +1 -1
  393. package/dist/admin/src/App.d.ts +2 -2
  394. package/dist/admin/src/StrapiApp.d.ts +2 -2
  395. package/dist/admin/src/components/ConfirmDialog.d.ts +1 -1
  396. package/dist/admin/src/components/DragLayer.d.ts +1 -1
  397. package/dist/admin/src/components/Filters.d.ts +2 -2
  398. package/dist/admin/src/components/Form.d.ts +6 -5
  399. package/dist/admin/src/components/FormInputs/Boolean.d.ts +2 -1
  400. package/dist/admin/src/components/FormInputs/Checkbox.d.ts +2 -1
  401. package/dist/admin/src/components/FormInputs/Date.d.ts +1 -1
  402. package/dist/admin/src/components/FormInputs/DateTime.d.ts +2 -1
  403. package/dist/admin/src/components/FormInputs/Email.d.ts +3 -2
  404. package/dist/admin/src/components/FormInputs/Enumeration.d.ts +2 -1
  405. package/dist/admin/src/components/FormInputs/Json.d.ts +1 -1
  406. package/dist/admin/src/components/FormInputs/Number.d.ts +2 -1
  407. package/dist/admin/src/components/FormInputs/Password.d.ts +3 -2
  408. package/dist/admin/src/components/FormInputs/Renderer.d.ts +3 -2
  409. package/dist/admin/src/components/FormInputs/String.d.ts +3 -2
  410. package/dist/admin/src/components/FormInputs/Textarea.d.ts +3 -2
  411. package/dist/admin/src/components/FormInputs/Time.d.ts +2 -1
  412. package/dist/admin/src/components/FormInputs/types.d.ts +2 -2
  413. package/dist/admin/src/components/Layouts/HeaderLayout.d.ts +1 -1
  414. package/dist/admin/src/components/Layouts/Layout.d.ts +5 -5
  415. package/dist/admin/src/components/MainNav/NavLink.d.ts +1 -1
  416. package/dist/admin/src/components/MainNav/NavUser.d.ts +1 -1
  417. package/dist/admin/src/components/PageHelpers.d.ts +2 -2
  418. package/dist/admin/src/components/Pagination.d.ts +1 -1
  419. package/dist/admin/src/components/Providers.d.ts +2 -2
  420. package/dist/admin/src/components/RelativeTime.d.ts +1 -1
  421. package/dist/admin/src/components/Table.d.ts +1 -1
  422. package/dist/admin/src/components/Theme.d.ts +1 -1
  423. package/dist/admin/src/constants/filters.d.ts +2 -2
  424. package/dist/admin/src/constants.d.ts +1 -1
  425. package/dist/admin/src/core/apis/CustomFields.d.ts +2 -2
  426. package/dist/admin/src/core/apis/Plugin.d.ts +2 -0
  427. package/dist/admin/src/core/apis/rbac.d.ts +1 -1
  428. package/dist/admin/src/core/apis/router.d.ts +2 -2
  429. package/dist/admin/src/core/store/configure.d.ts +5 -5
  430. package/dist/admin/src/core/store/hooks.d.ts +7 -10
  431. package/dist/admin/src/core/utils/createHook.d.ts +1 -1
  432. package/dist/admin/src/features/AppInfo.d.ts +1 -1
  433. package/dist/admin/src/features/Auth.d.ts +2 -2
  434. package/dist/admin/src/features/BackButton.d.ts +2 -2
  435. package/dist/admin/src/features/Configuration.d.ts +2 -2
  436. package/dist/admin/src/features/StrapiApp.d.ts +3 -2
  437. package/dist/admin/src/features/Tracking.d.ts +1 -1
  438. package/dist/admin/src/hooks/useAPIErrorHandler.d.ts +1 -3
  439. package/dist/admin/src/hooks/useAdminRoles.d.ts +3 -3
  440. package/dist/admin/src/hooks/useContentTypes.d.ts +1 -1
  441. package/dist/admin/src/hooks/useElementOnScreen.d.ts +7 -0
  442. package/dist/admin/src/hooks/useFetchClient.d.ts +1 -1
  443. package/dist/admin/src/hooks/usePersistentState.d.ts +1 -1
  444. package/dist/admin/src/hooks/useQueryParams.d.ts +1 -1
  445. package/dist/admin/src/hooks/useSettingsMenu.d.ts +1 -1
  446. package/dist/admin/src/hooks/useThrottledCallback.d.ts +2 -1
  447. package/dist/admin/src/index.d.ts +3 -2
  448. package/dist/admin/src/layouts/UnauthenticatedLayout.d.ts +2 -2
  449. package/dist/admin/src/pages/Auth/components/ForgotPassword.d.ts +1 -1
  450. package/dist/admin/src/pages/Auth/components/Login.d.ts +1 -1
  451. package/dist/admin/src/pages/Auth/constants.d.ts +1 -1
  452. package/dist/admin/src/pages/Home/components/Widget.d.ts +1 -1
  453. package/dist/admin/src/pages/Marketplace/components/NpmPackageCard.d.ts +2 -2
  454. package/dist/admin/src/pages/Marketplace/components/NpmPackagesFilters.d.ts +2 -2
  455. package/dist/admin/src/pages/Marketplace/components/NpmPackagesGrid.d.ts +1 -1
  456. package/dist/admin/src/pages/Marketplace/components/PageHeader.d.ts +1 -1
  457. package/dist/admin/src/pages/Marketplace/hooks/useMarketplaceData.d.ts +3 -3
  458. package/dist/admin/src/pages/Settings/components/Tokens/FormHead.d.ts +1 -1
  459. package/dist/admin/src/pages/Settings/components/Tokens/LifeSpanInput.d.ts +2 -2
  460. package/dist/admin/src/pages/Settings/components/Tokens/Table.d.ts +1 -1
  461. package/dist/admin/src/pages/Settings/constants.d.ts +1 -1
  462. package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/apiTokenPermissions.d.ts +1 -1
  463. package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.d.ts +2 -2
  464. package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/constants.d.ts +12 -12
  465. package/dist/admin/src/pages/Settings/pages/ApplicationInfo/utils/files.d.ts +1 -1
  466. package/dist/admin/src/pages/Settings/pages/Roles/components/CollapseLabel.d.ts +4 -3
  467. package/dist/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.d.ts +2 -2
  468. package/dist/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.d.ts +2 -2
  469. package/dist/admin/src/pages/Settings/pages/Roles/components/HiddenAction.d.ts +1 -1
  470. package/dist/admin/src/pages/Settings/pages/Roles/components/Permissions.d.ts +2 -2
  471. package/dist/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.d.ts +1 -1
  472. package/dist/admin/src/pages/Settings/pages/Roles/components/RoleForm.d.ts +2 -2
  473. package/dist/admin/src/pages/Settings/pages/Roles/components/RoleRow.d.ts +1 -1
  474. package/dist/admin/src/pages/Settings/pages/Roles/components/RowLabelWithCheckbox.d.ts +1 -1
  475. package/dist/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.d.ts +3 -2
  476. package/dist/admin/src/pages/Settings/pages/Roles/utils/createArrayOfValues.d.ts +1 -1
  477. package/dist/admin/src/pages/Settings/pages/Roles/utils/forms.d.ts +3 -3
  478. package/dist/admin/src/pages/Settings/pages/Roles/utils/permissions.d.ts +2 -2
  479. package/dist/admin/src/pages/Settings/pages/Roles/utils/removeConditionKeyFromData.d.ts +1 -1
  480. package/dist/admin/src/pages/Settings/pages/Users/components/CreateActionCE.d.ts +1 -1
  481. package/dist/admin/src/pages/Settings/pages/Users/components/NewUserForm.d.ts +1 -1
  482. package/dist/admin/src/pages/Settings/pages/Users/utils/validation.d.ts +3 -3
  483. package/dist/admin/src/pages/Settings/pages/Webhooks/components/Events.d.ts +1 -1
  484. package/dist/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.d.ts +1 -1
  485. package/dist/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.d.ts +6 -6
  486. package/dist/admin/src/reducer.d.ts +2 -2
  487. package/dist/admin/src/render.d.ts +1 -1
  488. package/dist/admin/src/selectors.d.ts +6 -6
  489. package/dist/admin/src/services/admin.d.ts +6 -6
  490. package/dist/admin/src/services/api.d.ts +1 -1
  491. package/dist/admin/src/services/apiTokens.d.ts +1 -1
  492. package/dist/admin/src/services/auth.d.ts +22 -22
  493. package/dist/admin/src/services/contentApi.d.ts +1 -1
  494. package/dist/admin/src/services/contentManager.d.ts +6 -2
  495. package/dist/admin/src/services/homepage.d.ts +2 -2
  496. package/dist/admin/src/services/transferTokens.d.ts +1 -1
  497. package/dist/admin/src/services/users.d.ts +12 -12
  498. package/dist/admin/src/services/webhooks.d.ts +3 -3
  499. package/dist/admin/src/types/adminConfiguration.d.ts +1 -1
  500. package/dist/admin/src/types/forms.d.ts +3 -3
  501. package/dist/admin/src/types/permissions.d.ts +1 -1
  502. package/dist/admin/src/utils/arrays.d.ts +1 -1
  503. package/dist/admin/src/utils/baseQuery.d.ts +1 -2
  504. package/dist/admin/src/utils/getFetchClient.d.ts +2 -1
  505. package/dist/admin/src/utils/normalizeAPIError.d.ts +1 -1
  506. package/dist/admin/src/utils/users.d.ts +1 -1
  507. package/dist/admin/test.js +2288 -35360
  508. package/dist/admin/test.js.map +1 -1
  509. package/dist/admin/test.mjs +2254 -35313
  510. package/dist/admin/test.mjs.map +1 -1
  511. package/dist/admin/tests/server.d.ts +1 -1
  512. package/dist/admin/tests/utils.d.ts +6 -6
  513. package/dist/ee/admin/src/constants.d.ts +2 -2
  514. package/dist/ee/admin/src/hooks/useLicenseLimits.d.ts +2 -2
  515. package/dist/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.d.ts +1 -1
  516. package/dist/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.d.ts +1 -1
  517. package/dist/ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE.d.ts +1 -1
  518. package/dist/ee/admin/src/services/auditLogs.d.ts +1 -1
  519. package/dist/ee/server/src/index.d.ts +1 -1
  520. package/dist/ee/server/src/index.d.ts.map +1 -1
  521. package/dist/server/index.js +8567 -6648
  522. package/dist/server/index.js.map +1 -1
  523. package/dist/server/index.mjs +8747 -6815
  524. package/dist/server/index.mjs.map +1 -1
  525. package/dist/server/src/bootstrap.d.ts.map +1 -1
  526. package/dist/server/src/services/api-token.d.ts +2 -1
  527. package/dist/server/src/services/api-token.d.ts.map +1 -1
  528. package/dist/shared/contracts/admin.d.ts +1 -1
  529. package/dist/shared/contracts/api-token.d.ts +1 -1
  530. package/dist/shared/contracts/authentication.d.ts +2 -2
  531. package/dist/shared/contracts/content-api.d.ts +2 -2
  532. package/dist/shared/contracts/content-types.d.ts +1 -1
  533. package/dist/shared/contracts/homepage.d.ts +2 -2
  534. package/dist/shared/contracts/permissions.d.ts +1 -1
  535. package/dist/shared/contracts/roles.d.ts +2 -2
  536. package/dist/shared/contracts/shared.d.ts +1 -1
  537. package/dist/shared/contracts/user.d.ts +2 -2
  538. package/dist/shared/contracts/users.d.ts +2 -2
  539. package/dist/shared/contracts/webhooks.d.ts +1 -1
  540. package/package.json +18 -15
  541. package/dist/admin/AdminSeatInfo-Bpyschk4.mjs +0 -92
  542. package/dist/admin/AdminSeatInfo-Bpyschk4.mjs.map +0 -1
  543. package/dist/admin/AdminSeatInfo-DJY5XfV1.js +0 -96
  544. package/dist/admin/AdminSeatInfo-DJY5XfV1.js.map +0 -1
  545. package/dist/admin/ApplicationInfoPage-BNFbKMod.mjs +0 -646
  546. package/dist/admin/ApplicationInfoPage-BNFbKMod.mjs.map +0 -1
  547. package/dist/admin/ApplicationInfoPage-CxsCNlz3.js +0 -673
  548. package/dist/admin/ApplicationInfoPage-CxsCNlz3.js.map +0 -1
  549. package/dist/admin/AuthResponse-4S-gAOdq.js +0 -85
  550. package/dist/admin/AuthResponse-4S-gAOdq.js.map +0 -1
  551. package/dist/admin/AuthResponse-BI0D7fJC.mjs +0 -61
  552. package/dist/admin/AuthResponse-BI0D7fJC.mjs.map +0 -1
  553. package/dist/admin/AuthenticatedLayout-BQ6zs92s.mjs +0 -1166
  554. package/dist/admin/AuthenticatedLayout-BQ6zs92s.mjs.map +0 -1
  555. package/dist/admin/AuthenticatedLayout-Bibgqyfz.js +0 -1198
  556. package/dist/admin/AuthenticatedLayout-Bibgqyfz.js.map +0 -1
  557. package/dist/admin/CreateActionEE-CRTFGenF.js +0 -76
  558. package/dist/admin/CreateActionEE-CRTFGenF.js.map +0 -1
  559. package/dist/admin/CreateActionEE-JUvyeAny.mjs +0 -49
  560. package/dist/admin/CreateActionEE-JUvyeAny.mjs.map +0 -1
  561. package/dist/admin/CreatePage-BmRTDEX3.js +0 -268
  562. package/dist/admin/CreatePage-BmRTDEX3.js.map +0 -1
  563. package/dist/admin/CreatePage-C-0H2K5g.mjs +0 -13
  564. package/dist/admin/CreatePage-C-0H2K5g.mjs.map +0 -1
  565. package/dist/admin/CreatePage-CfCPPYGr.mjs +0 -242
  566. package/dist/admin/CreatePage-CfCPPYGr.mjs.map +0 -1
  567. package/dist/admin/CreatePage-DpKhGTvR.js +0 -18
  568. package/dist/admin/CreatePage-DpKhGTvR.js.map +0 -1
  569. package/dist/admin/CreateView-BdFf17_R.js +0 -17
  570. package/dist/admin/CreateView-BdFf17_R.js.map +0 -1
  571. package/dist/admin/CreateView-Bi-6vB0h.mjs +0 -13
  572. package/dist/admin/CreateView-Bi-6vB0h.mjs.map +0 -1
  573. package/dist/admin/CreateView-Dz-lQ9gG.js +0 -17
  574. package/dist/admin/CreateView-Dz-lQ9gG.js.map +0 -1
  575. package/dist/admin/CreateView-w-hcufyx.mjs +0 -13
  576. package/dist/admin/CreateView-w-hcufyx.mjs.map +0 -1
  577. package/dist/admin/EditPage-9xmFGD2A.js +0 -779
  578. package/dist/admin/EditPage-9xmFGD2A.js.map +0 -1
  579. package/dist/admin/EditPage-BBYkM2hO.js +0 -298
  580. package/dist/admin/EditPage-BBYkM2hO.js.map +0 -1
  581. package/dist/admin/EditPage-BRQERWrj.js +0 -359
  582. package/dist/admin/EditPage-BRQERWrj.js.map +0 -1
  583. package/dist/admin/EditPage-CtSQnW_9.mjs +0 -330
  584. package/dist/admin/EditPage-CtSQnW_9.mjs.map +0 -1
  585. package/dist/admin/EditPage-DxEBBqUH.mjs +0 -272
  586. package/dist/admin/EditPage-DxEBBqUH.mjs.map +0 -1
  587. package/dist/admin/EditPage-oamip13J.mjs +0 -754
  588. package/dist/admin/EditPage-oamip13J.mjs.map +0 -1
  589. package/dist/admin/EditView-BFkOmHoK.js +0 -357
  590. package/dist/admin/EditView-BFkOmHoK.js.map +0 -1
  591. package/dist/admin/EditView-Bgq7xkna.mjs +0 -331
  592. package/dist/admin/EditView-Bgq7xkna.mjs.map +0 -1
  593. package/dist/admin/EditViewPage-Ct7_0esK.js +0 -873
  594. package/dist/admin/EditViewPage-Ct7_0esK.js.map +0 -1
  595. package/dist/admin/EditViewPage-DwfsUz5e.mjs +0 -841
  596. package/dist/admin/EditViewPage-DwfsUz5e.mjs.map +0 -1
  597. package/dist/admin/EventsTable-CFc2X7Gu.mjs +0 -32
  598. package/dist/admin/EventsTable-CFc2X7Gu.mjs.map +0 -1
  599. package/dist/admin/EventsTable-Oc3pUQpI.js +0 -36
  600. package/dist/admin/EventsTable-Oc3pUQpI.js.map +0 -1
  601. package/dist/admin/HomePage-BWGS-AVh.mjs +0 -351
  602. package/dist/admin/HomePage-BWGS-AVh.mjs.map +0 -1
  603. package/dist/admin/HomePage-ClG3SLWJ.mjs +0 -11
  604. package/dist/admin/HomePage-ClG3SLWJ.mjs.map +0 -1
  605. package/dist/admin/HomePage-CzT2bcqG.js +0 -15
  606. package/dist/admin/HomePage-CzT2bcqG.js.map +0 -1
  607. package/dist/admin/HomePage-DDJaUkQv.js +0 -376
  608. package/dist/admin/HomePage-DDJaUkQv.js.map +0 -1
  609. package/dist/admin/InstalledPlugins-1a_nfRNU.mjs +0 -95
  610. package/dist/admin/InstalledPlugins-1a_nfRNU.mjs.map +0 -1
  611. package/dist/admin/InstalledPlugins-CEeH8nCT.js +0 -120
  612. package/dist/admin/InstalledPlugins-CEeH8nCT.js.map +0 -1
  613. package/dist/admin/Layout-BkiVSoVM.mjs +0 -215
  614. package/dist/admin/Layout-BkiVSoVM.mjs.map +0 -1
  615. package/dist/admin/Layout-Cz4fM6uC.js +0 -242
  616. package/dist/admin/Layout-Cz4fM6uC.js.map +0 -1
  617. package/dist/admin/ListPage-B4XxPT7g.mjs +0 -355
  618. package/dist/admin/ListPage-B4XxPT7g.mjs.map +0 -1
  619. package/dist/admin/ListPage-B5HILqUc.js +0 -380
  620. package/dist/admin/ListPage-B5HILqUc.js.map +0 -1
  621. package/dist/admin/ListPage-BG9wGseD.mjs +0 -11
  622. package/dist/admin/ListPage-BG9wGseD.mjs.map +0 -1
  623. package/dist/admin/ListPage-BuiNhhwD.js +0 -581
  624. package/dist/admin/ListPage-BuiNhhwD.js.map +0 -1
  625. package/dist/admin/ListPage-CLwCdNQh.mjs +0 -271
  626. package/dist/admin/ListPage-CLwCdNQh.mjs.map +0 -1
  627. package/dist/admin/ListPage-CWZ3JRp0.js +0 -15
  628. package/dist/admin/ListPage-CWZ3JRp0.js.map +0 -1
  629. package/dist/admin/ListPage-DpdV081q.js +0 -296
  630. package/dist/admin/ListPage-DpdV081q.js.map +0 -1
  631. package/dist/admin/ListPage-DwouFFiM.js +0 -505
  632. package/dist/admin/ListPage-DwouFFiM.js.map +0 -1
  633. package/dist/admin/ListPage-jlU2BRvA.mjs +0 -553
  634. package/dist/admin/ListPage-jlU2BRvA.mjs.map +0 -1
  635. package/dist/admin/ListPage-mHBjjWxk.mjs +0 -477
  636. package/dist/admin/ListPage-mHBjjWxk.mjs.map +0 -1
  637. package/dist/admin/ListView-B1Q51h0h.js +0 -237
  638. package/dist/admin/ListView-B1Q51h0h.js.map +0 -1
  639. package/dist/admin/ListView-BDpX6eAQ.mjs +0 -211
  640. package/dist/admin/ListView-BDpX6eAQ.mjs.map +0 -1
  641. package/dist/admin/ListView-BeQRnj-r.mjs +0 -200
  642. package/dist/admin/ListView-BeQRnj-r.mjs.map +0 -1
  643. package/dist/admin/ListView-OzgfbUQV.js +0 -226
  644. package/dist/admin/ListView-OzgfbUQV.js.map +0 -1
  645. package/dist/admin/Login-BCv1wfvK.mjs +0 -31
  646. package/dist/admin/Login-BCv1wfvK.mjs.map +0 -1
  647. package/dist/admin/Login-DhUOi3iK.js +0 -35
  648. package/dist/admin/Login-DhUOi3iK.js.map +0 -1
  649. package/dist/admin/MagicLinkEE-CDJs-_17.mjs +0 -27
  650. package/dist/admin/MagicLinkEE-CDJs-_17.mjs.map +0 -1
  651. package/dist/admin/MagicLinkEE-hIIxgUj5.js +0 -31
  652. package/dist/admin/MagicLinkEE-hIIxgUj5.js.map +0 -1
  653. package/dist/admin/MarketplacePage-Bu43TEkO.mjs +0 -978
  654. package/dist/admin/MarketplacePage-Bu43TEkO.mjs.map +0 -1
  655. package/dist/admin/MarketplacePage-DCOmTT67.js +0 -1008
  656. package/dist/admin/MarketplacePage-DCOmTT67.js.map +0 -1
  657. package/dist/admin/ModalForm-B9SUkQ1l.mjs +0 -23
  658. package/dist/admin/ModalForm-B9SUkQ1l.mjs.map +0 -1
  659. package/dist/admin/ModalForm-DukjfMMw.js +0 -28
  660. package/dist/admin/ModalForm-DukjfMMw.js.map +0 -1
  661. package/dist/admin/Ornaments-BFThxr2U.mjs +0 -209
  662. package/dist/admin/Ornaments-BFThxr2U.mjs.map +0 -1
  663. package/dist/admin/Ornaments-CID1aaLv.js +0 -214
  664. package/dist/admin/Ornaments-CID1aaLv.js.map +0 -1
  665. package/dist/admin/Permissions-Cmimrby0.js +0 -2063
  666. package/dist/admin/Permissions-Cmimrby0.js.map +0 -1
  667. package/dist/admin/Permissions-gB8QZDch.mjs +0 -2027
  668. package/dist/admin/Permissions-gB8QZDch.mjs.map +0 -1
  669. package/dist/admin/PrivateRoute-DIxYvSni.mjs +0 -20
  670. package/dist/admin/PrivateRoute-DIxYvSni.mjs.map +0 -1
  671. package/dist/admin/PrivateRoute-qahg_uiu.js +0 -22
  672. package/dist/admin/PrivateRoute-qahg_uiu.js.map +0 -1
  673. package/dist/admin/ProfilePage-XSJU4odV.js +0 -415
  674. package/dist/admin/ProfilePage-XSJU4odV.js.map +0 -1
  675. package/dist/admin/ProfilePage-YEeSFVCM.mjs +0 -387
  676. package/dist/admin/ProfilePage-YEeSFVCM.mjs.map +0 -1
  677. package/dist/admin/PurchaseAuditLogs-C9ATpq0U.mjs +0 -49
  678. package/dist/admin/PurchaseAuditLogs-C9ATpq0U.mjs.map +0 -1
  679. package/dist/admin/PurchaseAuditLogs-DwJextQY.js +0 -53
  680. package/dist/admin/PurchaseAuditLogs-DwJextQY.js.map +0 -1
  681. package/dist/admin/PurchaseContentHistory-Bo4cNL6e.js +0 -56
  682. package/dist/admin/PurchaseContentHistory-Bo4cNL6e.js.map +0 -1
  683. package/dist/admin/PurchaseContentHistory-CSlvXfkJ.mjs +0 -52
  684. package/dist/admin/PurchaseContentHistory-CSlvXfkJ.mjs.map +0 -1
  685. package/dist/admin/PurchaseSingleSignOn-CGpWKCKR.js +0 -56
  686. package/dist/admin/PurchaseSingleSignOn-CGpWKCKR.js.map +0 -1
  687. package/dist/admin/PurchaseSingleSignOn-ouZ_j9iQ.mjs +0 -52
  688. package/dist/admin/PurchaseSingleSignOn-ouZ_j9iQ.mjs.map +0 -1
  689. package/dist/admin/RelativeTime-BGJ1PWx_.mjs +0 -38
  690. package/dist/admin/RelativeTime-BGJ1PWx_.mjs.map +0 -1
  691. package/dist/admin/RelativeTime-DPLD3wf-.js +0 -60
  692. package/dist/admin/RelativeTime-DPLD3wf-.js.map +0 -1
  693. package/dist/admin/SSOProviders-BD7LHrkI.mjs +0 -58
  694. package/dist/admin/SSOProviders-BD7LHrkI.mjs.map +0 -1
  695. package/dist/admin/SSOProviders-nCeEldEQ.js +0 -60
  696. package/dist/admin/SSOProviders-nCeEldEQ.js.map +0 -1
  697. package/dist/admin/SelectRoles-CZmFcyVa.js +0 -115
  698. package/dist/admin/SelectRoles-CZmFcyVa.js.map +0 -1
  699. package/dist/admin/SelectRoles-CzMLJs9Y.mjs +0 -111
  700. package/dist/admin/SelectRoles-CzMLJs9Y.mjs.map +0 -1
  701. package/dist/admin/SingleSignOnPage-B3uoGuv6.js +0 -264
  702. package/dist/admin/SingleSignOnPage-B3uoGuv6.js.map +0 -1
  703. package/dist/admin/SingleSignOnPage-B9mLzjRi.mjs +0 -239
  704. package/dist/admin/SingleSignOnPage-B9mLzjRi.mjs.map +0 -1
  705. package/dist/admin/Table-BaOtQA2D.mjs +0 -145
  706. package/dist/admin/Table-BaOtQA2D.mjs.map +0 -1
  707. package/dist/admin/Table-DSGT_hBu.js +0 -147
  708. package/dist/admin/Table-DSGT_hBu.js.map +0 -1
  709. package/dist/admin/Theme-CTMU9Z8I.mjs +0 -1434
  710. package/dist/admin/Theme-CTMU9Z8I.mjs.map +0 -1
  711. package/dist/admin/Theme-DWGZX5tv.js +0 -1513
  712. package/dist/admin/Theme-DWGZX5tv.js.map +0 -1
  713. package/dist/admin/TokenTypeSelect-C3tCUMnJ.js +0 -402
  714. package/dist/admin/TokenTypeSelect-C3tCUMnJ.js.map +0 -1
  715. package/dist/admin/TokenTypeSelect-Yo2iuaB4.mjs +0 -374
  716. package/dist/admin/TokenTypeSelect-Yo2iuaB4.mjs.map +0 -1
  717. package/dist/admin/UseCasePage-CLhPiLE6.js +0 -161
  718. package/dist/admin/UseCasePage-CLhPiLE6.js.map +0 -1
  719. package/dist/admin/UseCasePage-eBhY0DSo.mjs +0 -135
  720. package/dist/admin/UseCasePage-eBhY0DSo.mjs.map +0 -1
  721. package/dist/admin/admin-DOzK8yjX.mjs +0 -322
  722. package/dist/admin/admin-DOzK8yjX.mjs.map +0 -1
  723. package/dist/admin/admin-DRnq5SAg.js +0 -343
  724. package/dist/admin/admin-DRnq5SAg.js.map +0 -1
  725. package/dist/admin/apiTokens-ByCd8ZnO.mjs +0 -57
  726. package/dist/admin/apiTokens-ByCd8ZnO.mjs.map +0 -1
  727. package/dist/admin/apiTokens-rbJHW5Y2.js +0 -63
  728. package/dist/admin/apiTokens-rbJHW5Y2.js.map +0 -1
  729. package/dist/admin/ar-7vbwrPth.mjs +0 -832
  730. package/dist/admin/ar-BX4l-gGG.js +0 -853
  731. package/dist/admin/ca-f06Q0InB.mjs +0 -520
  732. package/dist/admin/ca-lypqY0nt.js +0 -538
  733. package/dist/admin/ca-lypqY0nt.js.map +0 -1
  734. package/dist/admin/constants-CRj0ViV1.mjs +0 -5
  735. package/dist/admin/constants-CRj0ViV1.mjs.map +0 -1
  736. package/dist/admin/constants-D--w8C9k.js +0 -55
  737. package/dist/admin/constants-D--w8C9k.js.map +0 -1
  738. package/dist/admin/constants-DF68OPrs.js +0 -8
  739. package/dist/admin/constants-DF68OPrs.js.map +0 -1
  740. package/dist/admin/constants-DU7oNawe.mjs +0 -51
  741. package/dist/admin/constants-DU7oNawe.mjs.map +0 -1
  742. package/dist/admin/cs-DeS9DzIq.js +0 -179
  743. package/dist/admin/cs-DrRkodPD.mjs +0 -166
  744. package/dist/admin/de-CxVS71Os.js +0 -532
  745. package/dist/admin/de-D0NA2abW.mjs +0 -514
  746. package/dist/admin/dk-Cv0jDfcZ.mjs +0 -434
  747. package/dist/admin/dk-Dy9JFy9v.js +0 -452
  748. package/dist/admin/en-BR2e5qX-.js +0 -803
  749. package/dist/admin/en-CSPHZKTw.mjs +0 -781
  750. package/dist/admin/en-GB-Bke-WrFJ.js +0 -10
  751. package/dist/admin/en-GB-Bke-WrFJ.js.map +0 -1
  752. package/dist/admin/en-GB-Gv8lAy1p.mjs +0 -6
  753. package/dist/admin/en-GB-Gv8lAy1p.mjs.map +0 -1
  754. package/dist/admin/es-CeFZcM6R.js +0 -622
  755. package/dist/admin/es-XEfESBGO.mjs +0 -602
  756. package/dist/admin/eu-CDMMTSys.mjs +0 -625
  757. package/dist/admin/eu-CTGdmY94.js +0 -645
  758. package/dist/admin/eu-CTGdmY94.js.map +0 -1
  759. package/dist/admin/fr-BMaOPAWr.js +0 -601
  760. package/dist/admin/fr-CndUnB7j.mjs +0 -579
  761. package/dist/admin/gu-CSS25C49.mjs +0 -429
  762. package/dist/admin/gu-Hc5YzUuw.js +0 -438
  763. package/dist/admin/he-C3w9omDw.mjs +0 -315
  764. package/dist/admin/he-kuscdOPI.js +0 -329
  765. package/dist/admin/he-kuscdOPI.js.map +0 -1
  766. package/dist/admin/hi-ChZ-xy57.js +0 -537
  767. package/dist/admin/hi-ChZ-xy57.js.map +0 -1
  768. package/dist/admin/hi-DW2CutdA.mjs +0 -519
  769. package/dist/admin/hu-DaDd6FHR.mjs +0 -625
  770. package/dist/admin/hu-lwp6bYbA.js +0 -645
  771. package/dist/admin/hu-lwp6bYbA.js.map +0 -1
  772. package/dist/admin/id-BX77nhRG.js +0 -303
  773. package/dist/admin/id-cH3Ovozx.mjs +0 -290
  774. package/dist/admin/index-DLbx6g-v.js +0 -5465
  775. package/dist/admin/index-DLbx6g-v.js.map +0 -1
  776. package/dist/admin/index-DoNaXvrg.mjs +0 -5391
  777. package/dist/admin/index-DoNaXvrg.mjs.map +0 -1
  778. package/dist/admin/it-Br3eqqDa.js +0 -312
  779. package/dist/admin/it-T1rZP3NX.mjs +0 -299
  780. package/dist/admin/ja-Cc9Dg_QK.mjs +0 -434
  781. package/dist/admin/ja-CmifbkZD.js +0 -452
  782. package/dist/admin/ko-CS08pZ0z.js +0 -451
  783. package/dist/admin/ko-D1e-SMHS.mjs +0 -433
  784. package/dist/admin/ml-CzFKbt9H.js +0 -537
  785. package/dist/admin/ml-FLft_QIc.mjs +0 -519
  786. package/dist/admin/ms-C-JB0-h1.js +0 -213
  787. package/dist/admin/ms-eMDSLvhl.mjs +0 -200
  788. package/dist/admin/nl-CubaFTJw.mjs +0 -621
  789. package/dist/admin/nl-gUEC_dKT.js +0 -641
  790. package/dist/admin/no-9TbSG07o.mjs +0 -300
  791. package/dist/admin/no-DU4xtEmk.js +0 -313
  792. package/dist/admin/pl-B0hZgHvQ.mjs +0 -519
  793. package/dist/admin/pl-Bf4D5Q8_.js +0 -537
  794. package/dist/admin/pt-8dwKSOn3.mjs +0 -200
  795. package/dist/admin/pt-BR-BDpWvCrQ.mjs +0 -588
  796. package/dist/admin/pt-BR-BFq-a8-C.js +0 -608
  797. package/dist/admin/pt-CEcd6cjN.js +0 -212
  798. package/dist/admin/ru-C34i9wJx.mjs +0 -745
  799. package/dist/admin/ru-Dwf09uUc.js +0 -766
  800. package/dist/admin/sa--UlKNdfY.js +0 -537
  801. package/dist/admin/sa--UlKNdfY.js.map +0 -1
  802. package/dist/admin/sa-CHD-r_h-.mjs +0 -519
  803. package/dist/admin/sa-CHD-r_h-.mjs.map +0 -1
  804. package/dist/admin/selectors-BZApelK9.mjs +0 -6
  805. package/dist/admin/selectors-BZApelK9.mjs.map +0 -1
  806. package/dist/admin/selectors-BhMLvxvP.js +0 -8
  807. package/dist/admin/selectors-BhMLvxvP.js.map +0 -1
  808. package/dist/admin/sk-CbJVofN-.js +0 -503
  809. package/dist/admin/sk-DQ2qpsG2.mjs +0 -483
  810. package/dist/admin/sv-BqRXfruc.js +0 -640
  811. package/dist/admin/sv-D0vPVUAT.mjs +0 -620
  812. package/dist/admin/th-BG3IOCqV.mjs +0 -284
  813. package/dist/admin/th-CPx6wf0M.js +0 -297
  814. package/dist/admin/tr-Dq45DRRZ.mjs +0 -581
  815. package/dist/admin/tr-hC_m0V8Q.js +0 -601
  816. package/dist/admin/transferTokens-AcbwoJPr.js +0 -76
  817. package/dist/admin/transferTokens-AcbwoJPr.js.map +0 -1
  818. package/dist/admin/transferTokens-CQP13miB.mjs +0 -69
  819. package/dist/admin/transferTokens-CQP13miB.mjs.map +0 -1
  820. package/dist/admin/uk-DHmepDW6.js +0 -214
  821. package/dist/admin/uk-DHmepDW6.js.map +0 -1
  822. package/dist/admin/uk-Ud9QNfkB.mjs +0 -201
  823. package/dist/admin/useAdminRoles-DWhky7Ix.mjs +0 -28
  824. package/dist/admin/useAdminRoles-DWhky7Ix.mjs.map +0 -1
  825. package/dist/admin/useAdminRoles-rz3j-u2R.js +0 -50
  826. package/dist/admin/useAdminRoles-rz3j-u2R.js.map +0 -1
  827. package/dist/admin/useEnterprise-BGzVPL4w.mjs +0 -28
  828. package/dist/admin/useEnterprise-BGzVPL4w.mjs.map +0 -1
  829. package/dist/admin/useEnterprise-ijNnK53J.js +0 -50
  830. package/dist/admin/useEnterprise-ijNnK53J.js.map +0 -1
  831. package/dist/admin/useLicenseLimitNotification-CAQIrlP4.mjs +0 -80
  832. package/dist/admin/useLicenseLimitNotification-CAQIrlP4.mjs.map +0 -1
  833. package/dist/admin/useLicenseLimitNotification-bcc8RZRX.js +0 -105
  834. package/dist/admin/useLicenseLimitNotification-bcc8RZRX.js.map +0 -1
  835. package/dist/admin/useLicenseLimits-73hrs_pV.js +0 -45
  836. package/dist/admin/useLicenseLimits-73hrs_pV.js.map +0 -1
  837. package/dist/admin/useLicenseLimits-CcOoSJ8p.mjs +0 -23
  838. package/dist/admin/useLicenseLimits-CcOoSJ8p.mjs.map +0 -1
  839. package/dist/admin/useOnce-C7EQufL3.js +0 -29
  840. package/dist/admin/useOnce-C7EQufL3.js.map +0 -1
  841. package/dist/admin/useOnce-NHeEacbN.mjs +0 -7
  842. package/dist/admin/useOnce-NHeEacbN.mjs.map +0 -1
  843. package/dist/admin/useWebhooks-PMmtSF2F.mjs +0 -93
  844. package/dist/admin/useWebhooks-PMmtSF2F.mjs.map +0 -1
  845. package/dist/admin/useWebhooks-oYy_qRlY.js +0 -95
  846. package/dist/admin/useWebhooks-oYy_qRlY.js.map +0 -1
  847. package/dist/admin/users-8N93LH7R.mjs +0 -30
  848. package/dist/admin/users-8N93LH7R.mjs.map +0 -1
  849. package/dist/admin/users-DaPfjlwf.js +0 -33
  850. package/dist/admin/users-DaPfjlwf.js.map +0 -1
  851. package/dist/admin/validation-ABNr-9R6.js +0 -65
  852. package/dist/admin/validation-ABNr-9R6.js.map +0 -1
  853. package/dist/admin/validation-Zw14C1gy.mjs +0 -43
  854. package/dist/admin/validation-Zw14C1gy.mjs.map +0 -1
  855. package/dist/admin/vi-CGrr4ioy.mjs +0 -187
  856. package/dist/admin/vi-UeRpPdvI.js +0 -200
  857. package/dist/admin/zh-Bhpup4vu.js +0 -642
  858. package/dist/admin/zh-Hans-BlfT-iYf.js +0 -737
  859. package/dist/admin/zh-Hans-C44LvcXE.mjs +0 -716
  860. package/dist/admin/zh-LqPg8hbL.mjs +0 -622
  861. package/dist/package.json.d.ts +0 -193
@@ -0,0 +1,1831 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var reactContext = require('@radix-ui/react-context');
6
+ var reactIntl = require('react-intl');
7
+ var designSystem = require('@strapi/design-system');
8
+ var icons = require('@strapi/icons');
9
+ var symbols = require('@strapi/icons/symbols');
10
+ var reactRouterDom = require('react-router-dom');
11
+ var qs = require('qs');
12
+ var admin = require('./admin-udBiOv2o.js');
13
+ var clone = require('lodash/clone');
14
+ var toPath = require('lodash/toPath');
15
+ var isEqual = require('lodash/isEqual');
16
+ var axios = require('axios');
17
+ var immer = require('immer');
18
+ var get = require('lodash/get');
19
+ var set = require('lodash/set');
20
+ var ContextSelector = require('use-context-selector');
21
+ var defaultsDeep = require('lodash/defaultsDeep');
22
+ var reactRedux = require('react-redux');
23
+ var styledComponents = require('styled-components');
24
+ var toolkit = require('@reduxjs/toolkit');
25
+
26
+ function _interopNamespaceDefault(e) {
27
+ var n = Object.create(null);
28
+ if (e) {
29
+ Object.keys(e).forEach(function (k) {
30
+ if (k !== 'default') {
31
+ var d = Object.getOwnPropertyDescriptor(e, k);
32
+ Object.defineProperty(n, k, d.get ? d : {
33
+ enumerable: true,
34
+ get: function () { return e[k]; }
35
+ });
36
+ }
37
+ });
38
+ }
39
+ n.default = e;
40
+ return Object.freeze(n);
41
+ }
42
+
43
+ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
44
+ var ContextSelector__namespace = /*#__PURE__*/_interopNamespaceDefault(ContextSelector);
45
+
46
+ class RBAC {
47
+ use(middleware) {
48
+ if (Array.isArray(middleware)) {
49
+ this.middlewares.push(...middleware);
50
+ } else {
51
+ this.middlewares.push(middleware);
52
+ }
53
+ }
54
+ constructor(){
55
+ this.middlewares = [];
56
+ this.run = async (ctx, permissions)=>{
57
+ let index = 0;
58
+ const middlewaresToRun = this.middlewares.map((middleware)=>middleware(ctx));
59
+ const next = async (permissions)=>{
60
+ if (index < this.middlewares.length) {
61
+ return middlewaresToRun[index++](next)(permissions);
62
+ }
63
+ return permissions;
64
+ };
65
+ return next(permissions);
66
+ };
67
+ }
68
+ }
69
+
70
+ /**
71
+ * @experimental
72
+ * @description Create a context provider and a hook to consume the context.
73
+ *
74
+ * @warning this may be removed to the design-system instead of becoming stable.
75
+ */ function createContext(rootComponentName, defaultContext) {
76
+ const Context = ContextSelector__namespace.createContext(defaultContext);
77
+ const Provider = (props)=>{
78
+ const { children, ...context } = props;
79
+ // Only re-memoize when prop values change
80
+ // eslint-disable-next-line react-hooks/exhaustive-deps
81
+ const value = React__namespace.useMemo(()=>context, Object.values(context));
82
+ return /*#__PURE__*/ jsxRuntime.jsx(Context.Provider, {
83
+ value: value,
84
+ children: children
85
+ });
86
+ };
87
+ function useContext(consumerName, selector) {
88
+ return ContextSelector__namespace.useContextSelector(Context, (ctx)=>{
89
+ if (ctx) return selector(ctx);
90
+ // it's a required context.
91
+ throw new Error(`\`${consumerName}\` must be used within \`${rootComponentName}\``);
92
+ });
93
+ }
94
+ Provider.displayName = rootComponentName + 'Provider';
95
+ return [
96
+ Provider,
97
+ useContext
98
+ ];
99
+ }
100
+
101
+ const useTypedDispatch = reactRedux.useDispatch;
102
+ const useTypedStore = reactRedux.useStore;
103
+ const useTypedSelector = reactRedux.useSelector;
104
+ const createTypedSelector = (selector)=>toolkit.createSelector((state)=>state, selector);
105
+
106
+ const [StrapiAppProvider, useStrapiApp] = createContext('StrapiApp');
107
+
108
+ const useQueryParams = (initialParams)=>{
109
+ const { search } = reactRouterDom.useLocation();
110
+ const navigate = reactRouterDom.useNavigate();
111
+ const query = React.useMemo(()=>{
112
+ // TODO: investigate why sometimes we're getting the search with a leading `?` and sometimes not.
113
+ const searchQuery = search.startsWith('?') ? search.slice(1) : search;
114
+ if (!search && initialParams) {
115
+ return initialParams;
116
+ }
117
+ return {
118
+ ...initialParams,
119
+ ...qs.parse(searchQuery)
120
+ };
121
+ }, [
122
+ search,
123
+ initialParams
124
+ ]);
125
+ const setQuery = React.useCallback((nextParams, method = 'push', replace = false)=>{
126
+ let nextQuery = {
127
+ ...query
128
+ };
129
+ if (method === 'remove') {
130
+ Object.keys(nextParams).forEach((key)=>{
131
+ if (Object.prototype.hasOwnProperty.call(nextQuery, key)) {
132
+ // @ts-expect-error – this is fine, if you want to fix it, please do.
133
+ delete nextQuery[key];
134
+ }
135
+ });
136
+ } else {
137
+ nextQuery = {
138
+ ...query,
139
+ ...nextParams
140
+ };
141
+ }
142
+ navigate({
143
+ search: qs.stringify(nextQuery, {
144
+ encode: false
145
+ })
146
+ }, {
147
+ replace
148
+ });
149
+ }, [
150
+ navigate,
151
+ query
152
+ ]);
153
+ return [
154
+ {
155
+ query,
156
+ rawQuery: search
157
+ },
158
+ setQuery
159
+ ];
160
+ };
161
+
162
+ const STORAGE_KEYS$1 = {
163
+ TOKEN: 'jwtToken',
164
+ USER: 'userInfo'
165
+ };
166
+ const THEME_LOCAL_STORAGE_KEY = 'STRAPI_THEME';
167
+ const LANGUAGE_LOCAL_STORAGE_KEY = 'strapi-admin-language';
168
+ const getStoredToken = ()=>{
169
+ const token = localStorage.getItem(STORAGE_KEYS$1.TOKEN) ?? sessionStorage.getItem(STORAGE_KEYS$1.TOKEN);
170
+ if (typeof token === 'string') {
171
+ return JSON.parse(token);
172
+ }
173
+ return null;
174
+ };
175
+ const adminSlice = toolkit.createSlice({
176
+ name: 'admin',
177
+ initialState: ()=>{
178
+ return {
179
+ language: {
180
+ locale: 'en',
181
+ localeNames: {
182
+ en: 'English'
183
+ }
184
+ },
185
+ permissions: {},
186
+ theme: {
187
+ availableThemes: [],
188
+ currentTheme: localStorage.getItem(THEME_LOCAL_STORAGE_KEY) || 'system'
189
+ },
190
+ token: null
191
+ };
192
+ },
193
+ reducers: {
194
+ setAppTheme (state, action) {
195
+ state.theme.currentTheme = action.payload;
196
+ window.localStorage.setItem(THEME_LOCAL_STORAGE_KEY, action.payload);
197
+ },
198
+ setAvailableThemes (state, action) {
199
+ state.theme.availableThemes = action.payload;
200
+ },
201
+ setLocale (state, action) {
202
+ state.language.locale = action.payload;
203
+ window.localStorage.setItem(LANGUAGE_LOCAL_STORAGE_KEY, action.payload);
204
+ document.documentElement.setAttribute('lang', action.payload);
205
+ },
206
+ setToken (state, action) {
207
+ state.token = action.payload;
208
+ },
209
+ login (state, action) {
210
+ const { token, persist } = action.payload;
211
+ if (!persist) {
212
+ window.sessionStorage.setItem(STORAGE_KEYS$1.TOKEN, JSON.stringify(token));
213
+ } else {
214
+ window.localStorage.setItem(STORAGE_KEYS$1.TOKEN, JSON.stringify(token));
215
+ }
216
+ state.token = token;
217
+ },
218
+ logout (state) {
219
+ state.token = null;
220
+ window.localStorage.removeItem(STORAGE_KEYS$1.TOKEN);
221
+ window.localStorage.removeItem(STORAGE_KEYS$1.USER);
222
+ window.sessionStorage.removeItem(STORAGE_KEYS$1.TOKEN);
223
+ window.sessionStorage.removeItem(STORAGE_KEYS$1.USER);
224
+ }
225
+ }
226
+ });
227
+ const reducer$1 = adminSlice.reducer;
228
+ const { setAppTheme, setAvailableThemes, setLocale, setToken, logout, login } = adminSlice.actions;
229
+
230
+ const authService = admin.adminApi.enhanceEndpoints({
231
+ addTagTypes: [
232
+ 'User',
233
+ 'Me',
234
+ 'ProvidersOptions'
235
+ ]
236
+ }).injectEndpoints({
237
+ endpoints: (builder)=>({
238
+ /**
239
+ * ME
240
+ */ getMe: builder.query({
241
+ query: ()=>({
242
+ method: 'GET',
243
+ url: '/admin/users/me'
244
+ }),
245
+ transformResponse (res) {
246
+ return res.data;
247
+ },
248
+ providesTags: (res)=>res ? [
249
+ 'Me',
250
+ {
251
+ type: 'User',
252
+ id: res.id
253
+ }
254
+ ] : [
255
+ 'Me'
256
+ ]
257
+ }),
258
+ getMyPermissions: builder.query({
259
+ query: ()=>({
260
+ method: 'GET',
261
+ url: '/admin/users/me/permissions'
262
+ }),
263
+ transformResponse (res) {
264
+ return res.data;
265
+ }
266
+ }),
267
+ updateMe: builder.mutation({
268
+ query: (body)=>({
269
+ method: 'PUT',
270
+ url: '/admin/users/me',
271
+ data: body
272
+ }),
273
+ transformResponse (res) {
274
+ return res.data;
275
+ },
276
+ invalidatesTags: [
277
+ 'Me'
278
+ ]
279
+ }),
280
+ /**
281
+ * Permissions
282
+ */ checkPermissions: builder.query({
283
+ query: (permissions)=>({
284
+ method: 'POST',
285
+ url: '/admin/permissions/check',
286
+ data: permissions
287
+ })
288
+ }),
289
+ /**
290
+ * Auth methods
291
+ */ login: builder.mutation({
292
+ query: (body)=>({
293
+ method: 'POST',
294
+ url: '/admin/login',
295
+ data: body
296
+ }),
297
+ transformResponse (res) {
298
+ return res.data;
299
+ },
300
+ invalidatesTags: [
301
+ 'Me'
302
+ ]
303
+ }),
304
+ logout: builder.mutation({
305
+ query: ()=>({
306
+ method: 'POST',
307
+ url: '/admin/logout'
308
+ })
309
+ }),
310
+ resetPassword: builder.mutation({
311
+ query: (body)=>({
312
+ method: 'POST',
313
+ url: '/admin/reset-password',
314
+ data: body
315
+ }),
316
+ transformResponse (res) {
317
+ return res.data;
318
+ }
319
+ }),
320
+ renewToken: builder.mutation({
321
+ query: (body)=>({
322
+ method: 'POST',
323
+ url: '/admin/renew-token',
324
+ data: body
325
+ }),
326
+ transformResponse (res) {
327
+ return res.data;
328
+ }
329
+ }),
330
+ getRegistrationInfo: builder.query({
331
+ query: (registrationToken)=>({
332
+ url: '/admin/registration-info',
333
+ method: 'GET',
334
+ config: {
335
+ params: {
336
+ registrationToken
337
+ }
338
+ }
339
+ }),
340
+ transformResponse (res) {
341
+ return res.data;
342
+ }
343
+ }),
344
+ registerAdmin: builder.mutation({
345
+ query: (body)=>({
346
+ method: 'POST',
347
+ url: '/admin/register-admin',
348
+ data: body
349
+ }),
350
+ transformResponse (res) {
351
+ return res.data;
352
+ }
353
+ }),
354
+ registerUser: builder.mutation({
355
+ query: (body)=>({
356
+ method: 'POST',
357
+ url: '/admin/register',
358
+ data: body
359
+ }),
360
+ transformResponse (res) {
361
+ return res.data;
362
+ }
363
+ }),
364
+ forgotPassword: builder.mutation({
365
+ query: (body)=>({
366
+ url: '/admin/forgot-password',
367
+ method: 'POST',
368
+ data: body
369
+ })
370
+ }),
371
+ isSSOLocked: builder.query({
372
+ query: ()=>({
373
+ url: '/admin/providers/isSSOLocked',
374
+ method: 'GET'
375
+ }),
376
+ transformResponse (res) {
377
+ return res.data;
378
+ }
379
+ }),
380
+ getProviders: builder.query({
381
+ query: ()=>({
382
+ url: '/admin/providers',
383
+ method: 'GET'
384
+ })
385
+ }),
386
+ getProviderOptions: builder.query({
387
+ query: ()=>({
388
+ url: '/admin/providers/options',
389
+ method: 'GET'
390
+ }),
391
+ transformResponse (res) {
392
+ return res.data;
393
+ },
394
+ providesTags: [
395
+ 'ProvidersOptions'
396
+ ]
397
+ }),
398
+ updateProviderOptions: builder.mutation({
399
+ query: (body)=>({
400
+ url: '/admin/providers/options',
401
+ method: 'PUT',
402
+ data: body
403
+ }),
404
+ transformResponse (res) {
405
+ return res.data;
406
+ },
407
+ invalidatesTags: [
408
+ 'ProvidersOptions'
409
+ ]
410
+ })
411
+ }),
412
+ overrideExisting: false
413
+ });
414
+ const { useCheckPermissionsQuery, useLazyCheckPermissionsQuery, useGetMeQuery, useLoginMutation, useRenewTokenMutation, useLogoutMutation, useUpdateMeMutation, useResetPasswordMutation, useRegisterAdminMutation, useRegisterUserMutation, useGetRegistrationInfoQuery, useForgotPasswordMutation, useGetMyPermissionsQuery, useIsSSOLockedQuery, useGetProvidersQuery, useGetProviderOptionsQuery, useUpdateProviderOptionsMutation } = authService;
415
+
416
+ const [Provider, useAuth] = createContext('Auth');
417
+ const STORAGE_KEYS = {
418
+ TOKEN: 'jwtToken',
419
+ USER: 'userInfo'
420
+ };
421
+ const AuthProvider = ({ children, _defaultPermissions = [], _disableRenewToken = false })=>{
422
+ const dispatch = useTypedDispatch();
423
+ const runRbacMiddleware = useStrapiApp('AuthProvider', (state)=>state.rbac.run);
424
+ const location = reactRouterDom.useLocation();
425
+ const [{ rawQuery }] = useQueryParams();
426
+ const token = useTypedSelector((state)=>state.admin_app.token ?? null);
427
+ const { data: user, isLoading: isLoadingUser } = useGetMeQuery(undefined, {
428
+ /**
429
+ * If there's no token, we don't try to fetch
430
+ * the user data because it will fail.
431
+ */ skip: !token
432
+ });
433
+ const { data: userPermissions = _defaultPermissions, refetch, isUninitialized, isLoading: isLoadingPermissions } = useGetMyPermissionsQuery(undefined, {
434
+ skip: !token
435
+ });
436
+ const navigate = reactRouterDom.useNavigate();
437
+ const [loginMutation] = useLoginMutation();
438
+ const [renewTokenMutation] = useRenewTokenMutation();
439
+ const [logoutMutation] = useLogoutMutation();
440
+ const clearStateAndLogout = React__namespace.useCallback(()=>{
441
+ dispatch(admin.adminApi.util.resetApiState());
442
+ dispatch(logout());
443
+ navigate('/auth/login');
444
+ }, [
445
+ dispatch,
446
+ navigate
447
+ ]);
448
+ /**
449
+ * Fetch data from storages on mount and store it in our state.
450
+ * It's not normally stored in session storage unless the user
451
+ * does click "remember me" when they login. We also need to renew the token.
452
+ */ React__namespace.useEffect(()=>{
453
+ if (token && !_disableRenewToken) {
454
+ renewTokenMutation({
455
+ token
456
+ }).then((res)=>{
457
+ if ('data' in res) {
458
+ dispatch(login({
459
+ token: res.data.token
460
+ }));
461
+ } else {
462
+ clearStateAndLogout();
463
+ }
464
+ });
465
+ }
466
+ }, [
467
+ token,
468
+ dispatch,
469
+ renewTokenMutation,
470
+ clearStateAndLogout,
471
+ _disableRenewToken
472
+ ]);
473
+ React__namespace.useEffect(()=>{
474
+ if (user) {
475
+ if (user.preferedLanguage) {
476
+ dispatch(setLocale(user.preferedLanguage));
477
+ }
478
+ }
479
+ }, [
480
+ dispatch,
481
+ user
482
+ ]);
483
+ React__namespace.useEffect(()=>{
484
+ /**
485
+ * This will log a user out of all tabs if they log out in one tab.
486
+ */ const handleUserStorageChange = (event)=>{
487
+ if (event.key === STORAGE_KEYS.USER && event.newValue === null) {
488
+ clearStateAndLogout();
489
+ }
490
+ };
491
+ window.addEventListener('storage', handleUserStorageChange);
492
+ return ()=>{
493
+ window.removeEventListener('storage', handleUserStorageChange);
494
+ };
495
+ });
496
+ const login$1 = React__namespace.useCallback(async ({ rememberMe, ...body })=>{
497
+ const res = await loginMutation(body);
498
+ /**
499
+ * There will always be a `data` key in the response
500
+ * because if something fails, it will throw an error.
501
+ */ if ('data' in res) {
502
+ const { token } = res.data;
503
+ dispatch(login({
504
+ token,
505
+ persist: rememberMe
506
+ }));
507
+ }
508
+ return res;
509
+ }, [
510
+ dispatch,
511
+ loginMutation
512
+ ]);
513
+ const logout$1 = React__namespace.useCallback(async ()=>{
514
+ await logoutMutation();
515
+ clearStateAndLogout();
516
+ }, [
517
+ clearStateAndLogout,
518
+ logoutMutation
519
+ ]);
520
+ const refetchPermissions = React__namespace.useCallback(async ()=>{
521
+ if (!isUninitialized) {
522
+ await refetch();
523
+ }
524
+ }, [
525
+ isUninitialized,
526
+ refetch
527
+ ]);
528
+ const [checkPermissions] = useLazyCheckPermissionsQuery();
529
+ const checkUserHasPermissions = React__namespace.useCallback(async (permissions, passedPermissions, // TODO:
530
+ // Here we have parameterised checkUserHasPermissions in order to pass
531
+ // query context from elsewhere in the application.
532
+ // See packages/core/content-manager/admin/src/features/DocumentRBAC.tsx
533
+ // This is in order to calculate permissions on accurate query params.
534
+ // We should be able to rely on the query params in this provider
535
+ // If we need to pass additional context to the RBAC middleware
536
+ // we should define a better context type.
537
+ rawQueryContext)=>{
538
+ /**
539
+ * If there's no permissions to check, then we allow it to
540
+ * pass to preserve existing behaviours.
541
+ *
542
+ * TODO: should we review this? it feels more dangerous than useful.
543
+ */ if (!permissions || permissions.length === 0) {
544
+ return [
545
+ {
546
+ action: '',
547
+ subject: ''
548
+ }
549
+ ];
550
+ }
551
+ /**
552
+ * Given the provided permissions, return the permissions from either passedPermissions
553
+ * or userPermissions as this is expected to be the full permission entity.
554
+ */ const actualUserPermissions = passedPermissions ?? userPermissions;
555
+ const matchingPermissions = actualUserPermissions.filter((permission)=>permissions.findIndex((perm)=>perm.action === permission.action && perm.subject === permission.subject) >= 0);
556
+ const middlewaredPermissions = await runRbacMiddleware({
557
+ user,
558
+ permissions: userPermissions,
559
+ pathname: location.pathname,
560
+ search: (rawQueryContext || rawQuery).split('?')[1] ?? ''
561
+ }, matchingPermissions);
562
+ const shouldCheckConditions = middlewaredPermissions.some((perm)=>Array.isArray(perm.conditions) && perm.conditions.length > 0);
563
+ if (!shouldCheckConditions) {
564
+ return middlewaredPermissions;
565
+ }
566
+ const { data, error } = await checkPermissions({
567
+ permissions: middlewaredPermissions.map((perm)=>({
568
+ action: perm.action,
569
+ subject: perm.subject
570
+ }))
571
+ });
572
+ if (error) {
573
+ throw error;
574
+ } else {
575
+ return middlewaredPermissions.filter((_, index)=>data?.data[index] === true);
576
+ }
577
+ }, [
578
+ checkPermissions,
579
+ location.pathname,
580
+ rawQuery,
581
+ runRbacMiddleware,
582
+ user,
583
+ userPermissions
584
+ ]);
585
+ const isLoading = isLoadingUser || isLoadingPermissions;
586
+ return /*#__PURE__*/ jsxRuntime.jsx(Provider, {
587
+ token: token,
588
+ user: user,
589
+ login: login$1,
590
+ logout: logout$1,
591
+ permissions: userPermissions,
592
+ checkUserHasPermissions: checkUserHasPermissions,
593
+ refetchPermissions: refetchPermissions,
594
+ isLoading: isLoading,
595
+ children: children
596
+ });
597
+ };
598
+
599
+ const NotificationsContext = /*#__PURE__*/ React__namespace.createContext({
600
+ toggleNotification: ()=>{}
601
+ });
602
+ /**
603
+ * @internal
604
+ * @description DO NOT USE. This will be removed before stable release of v5.
605
+ */ const NotificationsProvider = ({ children })=>{
606
+ const notificationIdRef = React__namespace.useRef(0);
607
+ const [notifications, setNotifications] = React__namespace.useState([]);
608
+ const toggleNotification = React__namespace.useCallback(({ type, message, link, timeout, blockTransition, onClose, title })=>{
609
+ setNotifications((s)=>[
610
+ ...s,
611
+ {
612
+ id: notificationIdRef.current++,
613
+ type,
614
+ message,
615
+ link,
616
+ timeout,
617
+ blockTransition,
618
+ onClose,
619
+ title
620
+ }
621
+ ]);
622
+ }, []);
623
+ const clearNotification = React__namespace.useCallback((id)=>{
624
+ setNotifications((s)=>s.filter((n)=>n.id !== id));
625
+ }, []);
626
+ const value = React__namespace.useMemo(()=>({
627
+ toggleNotification
628
+ }), [
629
+ toggleNotification
630
+ ]);
631
+ return /*#__PURE__*/ jsxRuntime.jsxs(NotificationsContext.Provider, {
632
+ value: value,
633
+ children: [
634
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
635
+ left: "50%",
636
+ marginLeft: "-250px",
637
+ position: "fixed",
638
+ direction: "column",
639
+ alignItems: "stretch",
640
+ gap: 2,
641
+ top: `4.6rem`,
642
+ width: `50rem`,
643
+ zIndex: "notification",
644
+ children: notifications.map((notification)=>{
645
+ return /*#__PURE__*/ jsxRuntime.jsx(Notification, {
646
+ ...notification,
647
+ clearNotification: clearNotification
648
+ }, notification.id);
649
+ })
650
+ }),
651
+ children
652
+ ]
653
+ });
654
+ };
655
+ const Notification = ({ clearNotification, blockTransition = false, id, link, message, onClose, timeout = 2500, title, type })=>{
656
+ const { formatMessage } = reactIntl.useIntl();
657
+ /**
658
+ * Chances are `onClose` won't be classed as stabilised,
659
+ * so we use `useCallbackRef` to avoid make it stable.
660
+ */ const onCloseCallback = designSystem.useCallbackRef(onClose);
661
+ const handleClose = React__namespace.useCallback(()=>{
662
+ onCloseCallback();
663
+ clearNotification(id);
664
+ }, [
665
+ clearNotification,
666
+ id,
667
+ onCloseCallback
668
+ ]);
669
+ // eslint-disable-next-line consistent-return
670
+ React__namespace.useEffect(()=>{
671
+ if (!blockTransition) {
672
+ const timeoutReference = setTimeout(()=>{
673
+ handleClose();
674
+ }, timeout);
675
+ return ()=>{
676
+ clearTimeout(timeoutReference);
677
+ };
678
+ }
679
+ }, [
680
+ blockTransition,
681
+ handleClose,
682
+ timeout
683
+ ]);
684
+ let variant;
685
+ let alertTitle;
686
+ if (type === 'info') {
687
+ variant = 'default';
688
+ alertTitle = formatMessage({
689
+ id: 'notification.default.title',
690
+ defaultMessage: 'Information:'
691
+ });
692
+ } else if (type === 'danger') {
693
+ variant = 'danger';
694
+ alertTitle = formatMessage({
695
+ id: 'notification.warning.title',
696
+ defaultMessage: 'Warning:'
697
+ });
698
+ } else if (type === 'warning') {
699
+ variant = 'warning';
700
+ alertTitle = formatMessage({
701
+ id: 'notification.warning.title',
702
+ defaultMessage: 'Warning:'
703
+ });
704
+ } else {
705
+ variant = 'success';
706
+ alertTitle = formatMessage({
707
+ id: 'notification.success.title',
708
+ defaultMessage: 'Success:'
709
+ });
710
+ }
711
+ if (title) {
712
+ alertTitle = title;
713
+ }
714
+ return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Alert, {
715
+ action: link ? /*#__PURE__*/ jsxRuntime.jsx(designSystem.Link, {
716
+ href: link.url,
717
+ isExternal: true,
718
+ children: link.label
719
+ }) : undefined,
720
+ onClose: handleClose,
721
+ closeLabel: formatMessage({
722
+ id: 'global.close',
723
+ defaultMessage: 'Close'
724
+ }),
725
+ title: alertTitle,
726
+ variant: variant,
727
+ children: message
728
+ });
729
+ };
730
+ /* -------------------------------------------------------------------------------------------------
731
+ * Hook
732
+ * -----------------------------------------------------------------------------------------------*/ /**
733
+ * @preserve
734
+ * @description Returns an object to interact with the notification
735
+ * system. The callbacks are wrapped in `useCallback` for a stable
736
+ * identity.
737
+ *
738
+ * @example
739
+ * ```tsx
740
+ * import { useNotification } from '@strapi/strapi/admin';
741
+ *
742
+ * const MyComponent = () => {
743
+ * const { toggleNotification } = useNotification();
744
+ *
745
+ * return <button onClick={() => toggleNotification({ message: 'Hello world!' })}>Click me</button>;
746
+ */ const useNotification = ()=>React__namespace.useContext(NotificationsContext);
747
+
748
+ /**
749
+ * Prefix message with 'apiError.'
750
+ */ function getPrefixedId(message, callback) {
751
+ const prefixedMessage = `apiError.${message}`;
752
+ // if a prefix function has been passed in it is used to
753
+ // prefix the id, e.g. to allow an error message to be
754
+ // set only for a localization namespace
755
+ if (typeof callback === 'function') {
756
+ return callback(prefixedMessage);
757
+ }
758
+ return prefixedMessage;
759
+ }
760
+
761
+ function normalizeError(error, { name, intlMessagePrefixCallback }) {
762
+ const { message } = error;
763
+ const normalizedError = {
764
+ id: getPrefixedId(message, intlMessagePrefixCallback),
765
+ defaultMessage: message,
766
+ name: error.name ?? name,
767
+ values: {}
768
+ };
769
+ if ('path' in error) {
770
+ normalizedError.values = {
771
+ path: error.path.join('.')
772
+ };
773
+ }
774
+ return normalizedError;
775
+ }
776
+ const validateErrorIsYupValidationError = (err)=>typeof err.details === 'object' && err.details !== null && 'errors' in err.details;
777
+ /**
778
+ * Normalize the format of `ResponseError`
779
+ * in places where the hook `useAPIErrorHandler` can not called
780
+ * (e.g. outside of a React component).
781
+ */ function normalizeAPIError(apiError, intlMessagePrefixCallback) {
782
+ const error = apiError.response?.data?.error;
783
+ if (error) {
784
+ // some errors carry multiple errors (such as ValidationError)
785
+ if (validateErrorIsYupValidationError(error)) {
786
+ return {
787
+ name: error.name,
788
+ message: error?.message || null,
789
+ errors: error.details.errors.map((err)=>normalizeError(err, {
790
+ name: error.name,
791
+ intlMessagePrefixCallback
792
+ }))
793
+ };
794
+ }
795
+ return normalizeError(error, {
796
+ intlMessagePrefixCallback
797
+ });
798
+ }
799
+ return null;
800
+ }
801
+
802
+ /**
803
+ * Deeply get a value from an object via its path.
804
+ */ function getIn(obj, key, def, pathStartIndex = 0) {
805
+ const path = toPath(key);
806
+ while(obj && pathStartIndex < path.length){
807
+ obj = obj[path[pathStartIndex++]];
808
+ }
809
+ // check if path is not in the end
810
+ if (pathStartIndex !== path.length && !obj) {
811
+ return def;
812
+ }
813
+ return obj === undefined ? def : obj;
814
+ }
815
+ /** @internal is the given object an Object? */ const isObject = (obj)=>obj !== null && typeof obj === 'object' && !Array.isArray(obj);
816
+ /** @internal is the given object an integer? */ const isInteger = (obj)=>String(Math.floor(Number(obj))) === obj;
817
+ /**
818
+ * Deeply set a value from in object via its path. If the value at `path`
819
+ * has changed, return a shallow copy of obj with `value` set at `path`.
820
+ * If `value` has not changed, return the original `obj`.
821
+ *
822
+ * Existing objects / arrays along `path` are also shallow copied. Sibling
823
+ * objects along path retain the same internal js reference. Since new
824
+ * objects / arrays are only created along `path`, we can test if anything
825
+ * changed in a nested structure by comparing the object's reference in
826
+ * the old and new object, similar to how russian doll cache invalidation
827
+ * works.
828
+ *
829
+ * In earlier versions of this function, which used cloneDeep, there were
830
+ * issues whereby settings a nested value would mutate the parent
831
+ * instead of creating a new object. `clone` avoids that bug making a
832
+ * shallow copy of the objects along the update path
833
+ * so no object is mutated in place.
834
+ *
835
+ * Before changing this function, please read through the following
836
+ * discussions.
837
+ *
838
+ * @see https://github.com/developit/linkstate
839
+ * @see https://github.com/jaredpalmer/formik/pull/123
840
+ */ function setIn(obj, path, value) {
841
+ const res = clone(obj); // this keeps inheritance when obj is a class
842
+ let resVal = res;
843
+ let i = 0;
844
+ const pathArray = toPath(path);
845
+ for(; i < pathArray.length - 1; i++){
846
+ const currentPath = pathArray[i];
847
+ const currentObj = getIn(obj, pathArray.slice(0, i + 1));
848
+ if (currentObj && (isObject(currentObj) || Array.isArray(currentObj))) {
849
+ resVal = resVal[currentPath] = clone(currentObj);
850
+ } else {
851
+ const nextPath = pathArray[i + 1];
852
+ resVal = resVal[currentPath] = isInteger(nextPath) && Number(nextPath) >= 0 ? [] : {};
853
+ }
854
+ }
855
+ // Return original object if new value is the same as current
856
+ if ((i === 0 ? obj : resVal)[pathArray[i]] === value) {
857
+ return obj;
858
+ }
859
+ if (value === undefined) {
860
+ delete resVal[pathArray[i]];
861
+ } else {
862
+ resVal[pathArray[i]] = value;
863
+ }
864
+ // If the path array has a single element, the loop did not run.
865
+ // Deleting on `resVal` had no effect in this scenario, so we delete on the result instead.
866
+ if (i === 0 && value === undefined) {
867
+ delete res[pathArray[i]];
868
+ }
869
+ return res;
870
+ }
871
+
872
+ /**
873
+ * @public
874
+ * @description The purpose of this hook is to offer a unified way to handle errors thrown by API endpoints, regardless of the type of error (`ValidationError`, `ApplicationErrror` ...)
875
+ that has been thrown.
876
+ * @example
877
+ * ```tsx
878
+ * import * as React from 'react';
879
+ * import { useFetchClient, useAPIErrorHandler, useNotification } from '@strapi/admin/admin';
880
+ *
881
+ * const MyComponent = () => {
882
+ * const { get } = useFetchClient();
883
+ * const { formatAPIError } = useAPIErrorHandler(getTrad);
884
+ * const { toggleNotification } = useNotification();
885
+ *
886
+ * const handleDeleteItem = async () => {
887
+ * try {
888
+ * return await get('/admin');
889
+ * } catch (error) {
890
+ * toggleNotification({
891
+ * type: 'danger',
892
+ * message: formatAPIError(error),
893
+ * });
894
+ * }
895
+ * };
896
+ * return <button onClick={handleDeleteItem}>Delete item</button>;
897
+ * };
898
+ * ```
899
+ */ function useAPIErrorHandler(intlMessagePrefixCallback) {
900
+ const { formatMessage } = reactIntl.useIntl();
901
+ /**
902
+ * @description This method try to normalize the passed error
903
+ * and then call formatAPIError to stringify the ResponseObject
904
+ * into a string. If it fails it will call formatFetchError and
905
+ * return the error message.
906
+ */ const formatError = React__namespace.useCallback((error)=>{
907
+ // Try to normalize the passed error first. This will fail for e.g. network
908
+ // errors which are thrown by fetchClient directly.
909
+ try {
910
+ const formattedErr = formatAPIError(error, {
911
+ intlMessagePrefixCallback,
912
+ formatMessage
913
+ });
914
+ if (!formattedErr) {
915
+ return formatFetchError(error, {
916
+ intlMessagePrefixCallback,
917
+ formatMessage
918
+ });
919
+ }
920
+ return formattedErr;
921
+ } catch (_) {
922
+ throw new Error('formatAPIError: Unknown error:', error);
923
+ }
924
+ }, [
925
+ formatMessage,
926
+ intlMessagePrefixCallback
927
+ ]);
928
+ return {
929
+ /**
930
+ * @alpha
931
+ * Convert ValidationErrors from the API into an object that can be used by forms.
932
+ */ _unstableFormatValidationErrors: React__namespace.useCallback((error)=>{
933
+ if (typeof error.details === 'object' && error.details !== null) {
934
+ if ('errors' in error.details && Array.isArray(error.details.errors)) {
935
+ const validationErrors = error.details.errors;
936
+ return validationErrors.reduce((acc, err)=>{
937
+ const { path, message } = err;
938
+ return setIn(acc, path.join('.'), message);
939
+ }, {});
940
+ } else {
941
+ const details = error.details;
942
+ return Object.keys(details).reduce((acc, key)=>{
943
+ const messages = details[key];
944
+ return {
945
+ ...acc,
946
+ [key]: messages.join(', ')
947
+ };
948
+ }, {});
949
+ }
950
+ } else {
951
+ return {};
952
+ }
953
+ }, []),
954
+ /**
955
+ * @alpha
956
+ * This handles the errors given from `redux-toolkit`'s axios based baseQuery function.
957
+ */ _unstableFormatAPIError: React__namespace.useCallback((error)=>{
958
+ const err = {
959
+ response: {
960
+ data: {
961
+ error
962
+ }
963
+ }
964
+ };
965
+ /**
966
+ * There's a chance with SerializedErrors that the message is not set.
967
+ * In that case we return a generic error message.
968
+ */ if (!error.message) {
969
+ return 'Unknown error occured.';
970
+ }
971
+ return formatError(err);
972
+ }, [
973
+ formatError
974
+ ]),
975
+ formatAPIError: formatError
976
+ };
977
+ }
978
+ function formatFetchError(error, { intlMessagePrefixCallback, formatMessage }) {
979
+ const { code, message } = error;
980
+ return formatMessage({
981
+ id: getPrefixedId(message, intlMessagePrefixCallback),
982
+ defaultMessage: message
983
+ }, {
984
+ code
985
+ });
986
+ }
987
+ /**
988
+ * @description This method stringifies the `ResponseObject` into
989
+ * a string. If multiple errors are thrown by the API, which
990
+ * happens e.g.in the case of a `ValidationError`, all errors
991
+ * will bo concatenated into a single string.
992
+ */ function formatAPIError(error, { formatMessage, intlMessagePrefixCallback }) {
993
+ if (!formatMessage) {
994
+ throw new Error('The formatMessage callback is a mandatory argument.');
995
+ }
996
+ const normalizedError = normalizeAPIError(error, intlMessagePrefixCallback);
997
+ if (!normalizedError) {
998
+ return null;
999
+ }
1000
+ if ('message' in normalizedError && normalizedError.message !== null) {
1001
+ return normalizedError.message;
1002
+ }
1003
+ // stringify multiple errors
1004
+ if ('errors' in normalizedError) {
1005
+ return normalizedError.errors.map(({ id, defaultMessage, values })=>formatMessage({
1006
+ id,
1007
+ defaultMessage
1008
+ }, values)).join('\n');
1009
+ }
1010
+ return formatMessage(normalizedError);
1011
+ }
1012
+
1013
+ const PageMain = ({ children, ...restProps })=>{
1014
+ return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Main, {
1015
+ ...restProps,
1016
+ children: children
1017
+ });
1018
+ };
1019
+ /**
1020
+ * @public
1021
+ * @description A loading component that should be rendered as the page
1022
+ * whilst you load the content for the aforementioned page.
1023
+ */ const Loading = ({ children = 'Loading content.' })=>{
1024
+ return /*#__PURE__*/ jsxRuntime.jsx(PageMain, {
1025
+ height: "100vh",
1026
+ "aria-busy": true,
1027
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
1028
+ alignItems: "center",
1029
+ height: "100%",
1030
+ justifyContent: "center",
1031
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Loader, {
1032
+ children: children
1033
+ })
1034
+ })
1035
+ });
1036
+ };
1037
+ /**
1038
+ * TODO: should we start passing our errors here so they're persisted on the screen?
1039
+ * This could follow something similar to how the global app error works...?
1040
+ */ /**
1041
+ * @public
1042
+ * @description An error component that should be rendered as the page
1043
+ * when an error occurs.
1044
+ */ const Error$1 = (props)=>{
1045
+ const { formatMessage } = reactIntl.useIntl();
1046
+ return /*#__PURE__*/ jsxRuntime.jsx(PageMain, {
1047
+ height: "100%",
1048
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
1049
+ alignItems: "center",
1050
+ height: "100%",
1051
+ justifyContent: "center",
1052
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.EmptyStateLayout, {
1053
+ icon: /*#__PURE__*/ jsxRuntime.jsx(icons.WarningCircle, {
1054
+ width: "16rem"
1055
+ }),
1056
+ content: formatMessage({
1057
+ id: 'anErrorOccurred',
1058
+ defaultMessage: 'Whoops! Something went wrong. Please, try again.'
1059
+ }),
1060
+ ...props
1061
+ })
1062
+ })
1063
+ });
1064
+ };
1065
+ /**
1066
+ * @public
1067
+ * @description A component that should be rendered as the page
1068
+ * when the user does not have the permissions to access the content.
1069
+ * This component does not check any permissions, it's up to you to decide
1070
+ * when it should be rendered.
1071
+ */ const NoPermissions = (props)=>{
1072
+ const { formatMessage } = reactIntl.useIntl();
1073
+ return /*#__PURE__*/ jsxRuntime.jsx(PageMain, {
1074
+ height: "100%",
1075
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
1076
+ alignItems: "center",
1077
+ height: "100%",
1078
+ justifyContent: "center",
1079
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
1080
+ minWidth: "50%",
1081
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.EmptyStateLayout, {
1082
+ icon: /*#__PURE__*/ jsxRuntime.jsx(symbols.EmptyPermissions, {
1083
+ width: "16rem"
1084
+ }),
1085
+ content: formatMessage({
1086
+ id: 'app.components.EmptyStateLayout.content-permissions',
1087
+ defaultMessage: "You don't have the permissions to access that content"
1088
+ }),
1089
+ ...props
1090
+ })
1091
+ })
1092
+ })
1093
+ });
1094
+ };
1095
+ /**
1096
+ * @public
1097
+ * @description A component that should be rendered as the page
1098
+ * when there is no data available to display.
1099
+ * This component does not check any permissions, it's up to you to decide
1100
+ * when it should be rendered.
1101
+ */ const NoData = (props)=>{
1102
+ const { formatMessage } = reactIntl.useIntl();
1103
+ return /*#__PURE__*/ jsxRuntime.jsx(PageMain, {
1104
+ height: "100%",
1105
+ background: "neutral100",
1106
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
1107
+ alignItems: "center",
1108
+ height: "100%",
1109
+ width: "100%",
1110
+ justifyContent: "center",
1111
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
1112
+ minWidth: "50%",
1113
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.EmptyStateLayout, {
1114
+ icon: /*#__PURE__*/ jsxRuntime.jsx(symbols.EmptyDocuments, {
1115
+ width: "16rem"
1116
+ }),
1117
+ action: props.action,
1118
+ content: formatMessage({
1119
+ id: 'app.components.EmptyStateLayout.content-document',
1120
+ defaultMessage: 'No content found'
1121
+ }),
1122
+ ...props
1123
+ })
1124
+ })
1125
+ })
1126
+ });
1127
+ };
1128
+ /**
1129
+ * @public
1130
+ * @description A wrapper component that should be used to protect a page. It will check the permissions
1131
+ * you pass to it and render the children if the user has the required permissions. If a user does not have ALL
1132
+ * the required permissions, it will redirect the user to the home page. Whilst these checks happen it will render
1133
+ * the loading component and should the check fail it will render the error component with a notification.
1134
+ */ const Protect = ({ permissions = [], children })=>{
1135
+ const userPermissions = useAuth('Protect', (state)=>state.permissions);
1136
+ const { toggleNotification } = useNotification();
1137
+ const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();
1138
+ const matchingPermissions = userPermissions.filter((permission)=>permissions.findIndex((perm)=>perm.action === permission.action && perm.subject === permission.subject) >= 0);
1139
+ const shouldCheckConditions = matchingPermissions.some((perm)=>Array.isArray(perm.conditions) && perm.conditions.length > 0);
1140
+ const { isLoading, error, data } = useCheckPermissionsQuery({
1141
+ permissions: matchingPermissions.map((perm)=>({
1142
+ action: perm.action,
1143
+ subject: perm.subject
1144
+ }))
1145
+ }, {
1146
+ skip: !shouldCheckConditions
1147
+ });
1148
+ React__namespace.useEffect(()=>{
1149
+ if (error) {
1150
+ toggleNotification({
1151
+ type: 'danger',
1152
+ message: formatAPIError(error)
1153
+ });
1154
+ }
1155
+ }, [
1156
+ error,
1157
+ formatAPIError,
1158
+ toggleNotification
1159
+ ]);
1160
+ if (isLoading) {
1161
+ return /*#__PURE__*/ jsxRuntime.jsx(Loading, {});
1162
+ }
1163
+ if (error) {
1164
+ return /*#__PURE__*/ jsxRuntime.jsx(Error$1, {});
1165
+ }
1166
+ const { data: permissionsData } = data || {};
1167
+ const canAccess = shouldCheckConditions && permissionsData ? !permissionsData.includes(false) : matchingPermissions.length > 0;
1168
+ if (!canAccess) {
1169
+ return /*#__PURE__*/ jsxRuntime.jsx(NoPermissions, {});
1170
+ }
1171
+ return /*#__PURE__*/ jsxRuntime.jsx(jsxRuntime.Fragment, {
1172
+ children: typeof children === 'function' ? children({
1173
+ permissions: matchingPermissions
1174
+ }) : children
1175
+ });
1176
+ };
1177
+ /**
1178
+ * @public
1179
+ * @description This component takes the children (must be a string) and sets
1180
+ * it as the title of the html.
1181
+ */ const Title = ({ children: title })=>{
1182
+ React__namespace.useEffect(()=>{
1183
+ document.title = `${title} | Strapi`;
1184
+ }, [
1185
+ title
1186
+ ]);
1187
+ return null;
1188
+ };
1189
+ const Page = {
1190
+ Error: Error$1,
1191
+ Loading,
1192
+ NoPermissions,
1193
+ Protect,
1194
+ NoData,
1195
+ Main: PageMain,
1196
+ Title
1197
+ };
1198
+
1199
+ const once = (fn)=>{
1200
+ const func = fn;
1201
+ let called = false;
1202
+ if (typeof func !== 'function') {
1203
+ throw new TypeError(`once requires a function parameter`);
1204
+ }
1205
+ return (...args)=>{
1206
+ if (!called && process.env.NODE_ENV === 'development') {
1207
+ func(...args);
1208
+ called = true;
1209
+ }
1210
+ };
1211
+ };
1212
+
1213
+ const capitalise = (str)=>str.charAt(0).toUpperCase() + str.slice(1);
1214
+
1215
+ const usePrev = (value)=>{
1216
+ const ref = React.useRef();
1217
+ React.useEffect(()=>{
1218
+ ref.current = value;
1219
+ }, [
1220
+ value
1221
+ ]);
1222
+ return ref.current;
1223
+ };
1224
+
1225
+ /**
1226
+ * @public
1227
+ * @description This hooks takes an object or array of permissions (the latter preferred) and
1228
+ * runs through them to match against the current user's permissions as well as the RBAC middleware
1229
+ * system checking any conditions that may be present. It returns the filtered permissions as the complete
1230
+ * object from the API and a set of actions that can be performed. An action is derived from the last part
1231
+ * of the permission action e.g. `admin::roles.create` would be `canCreate`. If there's a hyphen in the action
1232
+ * this is removed and capitalised e.g `admin::roles.create-draft` would be `canCreateDraft`.
1233
+ * @example
1234
+ * ```tsx
1235
+ * import { Page, useRBAC } from '@strapi/strapi/admin'
1236
+ *
1237
+ * const MyProtectedPage = () => {
1238
+ * const { allowedActions, isLoading, error, permissions } = useRBAC([{ action: 'admin::roles.create' }])
1239
+ *
1240
+ * if(isLoading) {
1241
+ * return <Page.Loading />
1242
+ * }
1243
+ *
1244
+ * if(error){
1245
+ * return <Page.Error />
1246
+ * }
1247
+ *
1248
+ * if(!allowedActions.canCreate) {
1249
+ * return null
1250
+ * }
1251
+ *
1252
+ * return <MyPage permissions={permissions} />
1253
+ * }
1254
+ * ```
1255
+ */ const useRBAC = (permissionsToCheck = [], passedPermissions, rawQueryContext)=>{
1256
+ const isLoadingAuth = useAuth('useRBAC', (state)=>state.isLoading);
1257
+ const [isLoading, setIsLoading] = React__namespace.useState(true);
1258
+ const [error, setError] = React__namespace.useState();
1259
+ const [data, setData] = React__namespace.useState();
1260
+ const warnOnce = React__namespace.useMemo(()=>once(console.warn), []);
1261
+ const actualPermissionsToCheck = React__namespace.useMemo(()=>{
1262
+ if (Array.isArray(permissionsToCheck)) {
1263
+ return permissionsToCheck;
1264
+ } else {
1265
+ warnOnce('useRBAC: The first argument should be an array of permissions, not an object. This will be deprecated in the future.');
1266
+ return Object.values(permissionsToCheck).flat();
1267
+ }
1268
+ }, [
1269
+ permissionsToCheck,
1270
+ warnOnce
1271
+ ]);
1272
+ /**
1273
+ * This is the default value we return until the queryResults[i].data
1274
+ * are all resolved with data. This preserves the original behaviour.
1275
+ */ const defaultAllowedActions = React__namespace.useMemo(()=>{
1276
+ return actualPermissionsToCheck.reduce((acc, permission)=>{
1277
+ return {
1278
+ ...acc,
1279
+ [getActionName(permission)]: false
1280
+ };
1281
+ }, {});
1282
+ }, [
1283
+ actualPermissionsToCheck
1284
+ ]);
1285
+ const checkUserHasPermissions = useAuth('useRBAC', (state)=>state.checkUserHasPermissions);
1286
+ const permssionsChecked = usePrev(actualPermissionsToCheck);
1287
+ const contextChecked = usePrev(rawQueryContext);
1288
+ React__namespace.useEffect(()=>{
1289
+ if (!isEqual(permssionsChecked, actualPermissionsToCheck) || // TODO: also run this when the query context changes
1290
+ contextChecked !== rawQueryContext) {
1291
+ setIsLoading(true);
1292
+ setData(undefined);
1293
+ setError(undefined);
1294
+ checkUserHasPermissions(actualPermissionsToCheck, passedPermissions, rawQueryContext).then((res)=>{
1295
+ if (res) {
1296
+ setData(res.reduce((acc, permission)=>{
1297
+ return {
1298
+ ...acc,
1299
+ [getActionName(permission)]: true
1300
+ };
1301
+ }, {}));
1302
+ }
1303
+ }).catch((err)=>{
1304
+ setError(err);
1305
+ }).finally(()=>{
1306
+ setIsLoading(false);
1307
+ });
1308
+ }
1309
+ }, [
1310
+ actualPermissionsToCheck,
1311
+ checkUserHasPermissions,
1312
+ passedPermissions,
1313
+ permissionsToCheck,
1314
+ permssionsChecked,
1315
+ contextChecked,
1316
+ rawQueryContext
1317
+ ]);
1318
+ /**
1319
+ * This hook originally would not return allowedActions
1320
+ * until all the checks were complete.
1321
+ */ const allowedActions = Object.entries({
1322
+ ...defaultAllowedActions,
1323
+ ...data
1324
+ }).reduce((acc, [name, allowed])=>{
1325
+ acc[`can${capitalise(name)}`] = allowed;
1326
+ return acc;
1327
+ }, {});
1328
+ return {
1329
+ allowedActions,
1330
+ permissions: actualPermissionsToCheck,
1331
+ isLoading: isLoading || isLoadingAuth,
1332
+ error
1333
+ };
1334
+ };
1335
+ const getActionName = (permission)=>{
1336
+ const [action = ''] = permission.action.split('.').slice(-1);
1337
+ return action.split('-').map(capitalise).join('');
1338
+ };
1339
+
1340
+ const [AppInfoProvider, useAppInfo] = createContext('AppInfo', {});
1341
+
1342
+ /* -------------------------------------------------------------------------------------------------
1343
+ * Context
1344
+ * -----------------------------------------------------------------------------------------------*/ const TrackingContext = /*#__PURE__*/ React__namespace.createContext({
1345
+ uuid: false
1346
+ });
1347
+ const TrackingProvider = ({ children })=>{
1348
+ const token = useAuth('App', (state)=>state.token);
1349
+ const { data: initData } = admin.useInitQuery();
1350
+ const { uuid } = initData ?? {};
1351
+ const { data } = admin.useTelemetryPropertiesQuery(undefined, {
1352
+ skip: !initData?.uuid || !token
1353
+ });
1354
+ React__namespace.useEffect(()=>{
1355
+ if (uuid && data) {
1356
+ const event = 'didInitializeAdministration';
1357
+ try {
1358
+ fetch('https://analytics.strapi.io/api/v2/track', {
1359
+ method: 'POST',
1360
+ body: JSON.stringify({
1361
+ // This event is anonymous
1362
+ event,
1363
+ userId: '',
1364
+ eventPropeties: {},
1365
+ groupProperties: {
1366
+ ...data,
1367
+ projectId: uuid
1368
+ }
1369
+ }),
1370
+ headers: {
1371
+ 'Content-Type': 'application/json',
1372
+ 'X-Strapi-Event': event
1373
+ }
1374
+ });
1375
+ } catch {
1376
+ // silence is golden
1377
+ }
1378
+ }
1379
+ }, [
1380
+ data,
1381
+ uuid
1382
+ ]);
1383
+ const value = React__namespace.useMemo(()=>({
1384
+ uuid,
1385
+ telemetryProperties: data
1386
+ }), [
1387
+ uuid,
1388
+ data
1389
+ ]);
1390
+ return /*#__PURE__*/ jsxRuntime.jsx(TrackingContext.Provider, {
1391
+ value: value,
1392
+ children: children
1393
+ });
1394
+ };
1395
+ /**
1396
+ * @description Used to send amplitude events to the Strapi Tracking hub.
1397
+ *
1398
+ * @example
1399
+ * ```tsx
1400
+ * import { useTracking } from '@strapi/strapi/admin';
1401
+ *
1402
+ * const MyComponent = () => {
1403
+ * const { trackUsage } = useTracking();
1404
+ *
1405
+ * const handleClick = () => {
1406
+ * trackUsage('my-event', { myProperty: 'myValue' });
1407
+ * }
1408
+ *
1409
+ * return <button onClick={handleClick}>Send Event</button>
1410
+ * }
1411
+ * ```
1412
+ */ const useTracking = ()=>{
1413
+ const { uuid, telemetryProperties } = React__namespace.useContext(TrackingContext);
1414
+ const userId = useAppInfo('useTracking', (state)=>state.userId);
1415
+ const trackUsage = React__namespace.useCallback(async (event, properties)=>{
1416
+ try {
1417
+ if (uuid && !window.strapi.telemetryDisabled) {
1418
+ const res = await axios.post('https://analytics.strapi.io/api/v2/track', {
1419
+ event,
1420
+ userId,
1421
+ eventProperties: {
1422
+ ...properties
1423
+ },
1424
+ userProperties: {},
1425
+ groupProperties: {
1426
+ ...telemetryProperties,
1427
+ projectId: uuid,
1428
+ projectType: window.strapi.projectType
1429
+ }
1430
+ }, {
1431
+ headers: {
1432
+ 'Content-Type': 'application/json',
1433
+ 'X-Strapi-Event': event
1434
+ }
1435
+ });
1436
+ return res;
1437
+ }
1438
+ } catch (err) {
1439
+ // Silence is golden
1440
+ }
1441
+ return null;
1442
+ }, [
1443
+ telemetryProperties,
1444
+ userId,
1445
+ uuid
1446
+ ]);
1447
+ return {
1448
+ trackUsage
1449
+ };
1450
+ };
1451
+
1452
+ const [ConfigurationContextProvider, useConfiguration] = reactContext.createContext('ConfigurationContext');
1453
+ const ConfigurationProvider = ({ children, defaultAuthLogo, defaultMenuLogo, showReleaseNotification = false, showTutorials = false })=>{
1454
+ const { trackUsage } = useTracking();
1455
+ const { formatMessage } = reactIntl.useIntl();
1456
+ const { toggleNotification } = useNotification();
1457
+ const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();
1458
+ const permissions = useTypedSelector((state)=>state.admin_app.permissions.settings?.['project-settings']);
1459
+ const token = useAuth('ConfigurationProvider', (state)=>state.token);
1460
+ const { allowedActions: { canRead } } = useRBAC(permissions);
1461
+ const { data: { authLogo: customAuthLogo, menuLogo: customMenuLogo } = {}, error, isLoading } = admin.useInitQuery();
1462
+ React__namespace.useEffect(()=>{
1463
+ if (error) {
1464
+ toggleNotification({
1465
+ type: 'danger',
1466
+ message: formatMessage({
1467
+ id: 'app.containers.App.notification.error.init'
1468
+ })
1469
+ });
1470
+ }
1471
+ }, [
1472
+ error,
1473
+ formatMessage,
1474
+ toggleNotification
1475
+ ]);
1476
+ const { data, isSuccess } = admin.useProjectSettingsQuery(undefined, {
1477
+ skip: !token || !canRead
1478
+ });
1479
+ const [updateProjectSettingsMutation] = admin.useUpdateProjectSettingsMutation();
1480
+ const updateProjectSettings = React__namespace.useCallback(async (body)=>{
1481
+ const formData = new FormData();
1482
+ /**
1483
+ * We either only send files or we send null values.
1484
+ * Null removes the logo. If you don't want to effect
1485
+ * an existing logo, don't send anything.
1486
+ */ Object.entries(body).forEach(([key, value])=>{
1487
+ if (value?.rawFile) {
1488
+ formData.append(key, value.rawFile);
1489
+ } else if (value === null) {
1490
+ formData.append(key, JSON.stringify(value));
1491
+ }
1492
+ });
1493
+ const res = await updateProjectSettingsMutation(formData);
1494
+ if ('data' in res) {
1495
+ const updatedMenuLogo = !!res.data.menuLogo && !!body.menuLogo?.rawFile;
1496
+ const updatedAuthLogo = !!res.data.authLogo && !!body.authLogo?.rawFile;
1497
+ if (updatedMenuLogo) {
1498
+ trackUsage('didChangeLogo', {
1499
+ logo: 'menu'
1500
+ });
1501
+ }
1502
+ if (updatedAuthLogo) {
1503
+ trackUsage('didChangeLogo', {
1504
+ logo: 'auth'
1505
+ });
1506
+ }
1507
+ toggleNotification({
1508
+ type: 'success',
1509
+ message: formatMessage({
1510
+ id: 'app',
1511
+ defaultMessage: 'Saved'
1512
+ })
1513
+ });
1514
+ } else {
1515
+ toggleNotification({
1516
+ type: 'danger',
1517
+ message: formatAPIError(res.error)
1518
+ });
1519
+ }
1520
+ }, [
1521
+ formatAPIError,
1522
+ formatMessage,
1523
+ toggleNotification,
1524
+ trackUsage,
1525
+ updateProjectSettingsMutation
1526
+ ]);
1527
+ if (isLoading) {
1528
+ return /*#__PURE__*/ jsxRuntime.jsx(Page.Loading, {});
1529
+ }
1530
+ return /*#__PURE__*/ jsxRuntime.jsx(ConfigurationContextProvider, {
1531
+ showReleaseNotification: showReleaseNotification,
1532
+ showTutorials: showTutorials,
1533
+ logos: {
1534
+ menu: {
1535
+ custom: isSuccess ? data?.menuLogo : {
1536
+ url: customMenuLogo ?? ''
1537
+ },
1538
+ default: defaultMenuLogo
1539
+ },
1540
+ auth: {
1541
+ custom: isSuccess ? data?.authLogo : {
1542
+ url: customAuthLogo ?? ''
1543
+ },
1544
+ default: defaultAuthLogo
1545
+ }
1546
+ },
1547
+ updateProjectSettings: updateProjectSettings,
1548
+ children: children
1549
+ });
1550
+ };
1551
+
1552
+ const GUIDED_TOUR_COMPLETED_STEPS = 'GUIDED_TOUR_COMPLETED_STEPS';
1553
+ const GUIDED_TOUR_CURRENT_STEP = 'GUIDED_TOUR_CURRENT_STEP';
1554
+ const GUIDED_TOUR_SKIPPED = 'GUIDED_TOUR_SKIPPED';
1555
+ const [GuidedTourProviderImpl, useGuidedTour] = createContext('GuidedTour');
1556
+ const GuidedTourProvider = ({ children })=>{
1557
+ const [{ currentStep, guidedTourState, isGuidedTourVisible, isSkipped }, dispatch] = React__namespace.useReducer(reducer, initialState, initialiseState);
1558
+ const setCurrentStep = (step)=>{
1559
+ // if step is null it is intentional, we need to dispatch it
1560
+ if (step !== null) {
1561
+ const isStepAlreadyDone = get(guidedTourState, step);
1562
+ const [sectionName, stepName] = step.split('.');
1563
+ const sectionArray = Object.entries(guidedTourState[sectionName]);
1564
+ const currentStepIndex = sectionArray.findIndex(([key])=>key === stepName);
1565
+ const previousSteps = sectionArray.slice(0, currentStepIndex);
1566
+ const isStepToShow = previousSteps.every(([, sectionValue])=>sectionValue);
1567
+ if (isStepAlreadyDone || isSkipped || !isStepToShow) {
1568
+ return null;
1569
+ }
1570
+ }
1571
+ window.localStorage.setItem(GUIDED_TOUR_CURRENT_STEP, JSON.stringify(null));
1572
+ return dispatch({
1573
+ type: 'SET_CURRENT_STEP',
1574
+ step
1575
+ });
1576
+ };
1577
+ const setGuidedTourVisibility = (value)=>{
1578
+ dispatch({
1579
+ type: 'SET_GUIDED_TOUR_VISIBILITY',
1580
+ value
1581
+ });
1582
+ };
1583
+ const setStepState = (currentStep, value)=>{
1584
+ addCompletedStep(currentStep);
1585
+ dispatch({
1586
+ type: 'SET_STEP_STATE',
1587
+ currentStep,
1588
+ value
1589
+ });
1590
+ };
1591
+ const startSection = (sectionName)=>{
1592
+ const sectionSteps = guidedTourState[sectionName];
1593
+ if (sectionSteps) {
1594
+ const guidedTourArray = Object.entries(guidedTourState);
1595
+ // Find current section position in the guidedTourArray
1596
+ // Get only previous sections based on current section position
1597
+ const currentSectionIndex = guidedTourArray.findIndex(([key])=>key === sectionName);
1598
+ const previousSections = guidedTourArray.slice(0, currentSectionIndex);
1599
+ // Check if every steps from previous section are done
1600
+ const isSectionToShow = previousSections.every(([, sectionValue])=>Object.values(sectionValue).every(Boolean));
1601
+ const [firstStep] = Object.keys(sectionSteps);
1602
+ const isFirstStepDone = sectionSteps[firstStep];
1603
+ if (isSectionToShow && !currentStep && !isFirstStepDone) {
1604
+ setCurrentStep(`${sectionName}.${firstStep}`);
1605
+ }
1606
+ }
1607
+ };
1608
+ const setSkipped = (value)=>{
1609
+ window.localStorage.setItem(GUIDED_TOUR_SKIPPED, JSON.stringify(value));
1610
+ dispatch({
1611
+ type: 'SET_SKIPPED',
1612
+ value
1613
+ });
1614
+ };
1615
+ return /*#__PURE__*/ jsxRuntime.jsx(GuidedTourProviderImpl, {
1616
+ guidedTourState: guidedTourState,
1617
+ currentStep: currentStep,
1618
+ setCurrentStep: setCurrentStep,
1619
+ setGuidedTourVisibility: setGuidedTourVisibility,
1620
+ setSkipped: setSkipped,
1621
+ setStepState: setStepState,
1622
+ startSection: startSection,
1623
+ isGuidedTourVisible: isGuidedTourVisible,
1624
+ isSkipped: isSkipped,
1625
+ children: children
1626
+ });
1627
+ };
1628
+ const initialState = {
1629
+ currentStep: null,
1630
+ guidedTourState: {
1631
+ contentTypeBuilder: {
1632
+ create: false,
1633
+ success: false
1634
+ },
1635
+ contentManager: {
1636
+ create: false,
1637
+ success: false
1638
+ },
1639
+ apiTokens: {
1640
+ create: false,
1641
+ success: false
1642
+ }
1643
+ },
1644
+ isGuidedTourVisible: false,
1645
+ isSkipped: false
1646
+ };
1647
+ const reducer = (state = initialState, action)=>immer.produce(state, (draftState)=>{
1648
+ switch(action.type){
1649
+ case 'SET_CURRENT_STEP':
1650
+ {
1651
+ draftState.currentStep = action.step;
1652
+ break;
1653
+ }
1654
+ case 'SET_STEP_STATE':
1655
+ {
1656
+ const [section, step] = action.currentStep.split('.');
1657
+ draftState.guidedTourState[section][step] = action.value;
1658
+ break;
1659
+ }
1660
+ case 'SET_SKIPPED':
1661
+ {
1662
+ draftState.isSkipped = action.value;
1663
+ break;
1664
+ }
1665
+ case 'SET_GUIDED_TOUR_VISIBILITY':
1666
+ {
1667
+ draftState.isGuidedTourVisible = action.value;
1668
+ break;
1669
+ }
1670
+ default:
1671
+ {
1672
+ return draftState;
1673
+ }
1674
+ }
1675
+ });
1676
+ const initialiseState = (initialState)=>{
1677
+ const copyInitialState = {
1678
+ ...initialState
1679
+ };
1680
+ const guidedTourLocaleStorage = JSON.parse(window.localStorage.getItem(GUIDED_TOUR_COMPLETED_STEPS) ?? '[]');
1681
+ const currentStepLocaleStorage = JSON.parse(window.localStorage.getItem(GUIDED_TOUR_CURRENT_STEP) ?? 'null');
1682
+ const skippedLocaleStorage = JSON.parse(window.localStorage.getItem(GUIDED_TOUR_SKIPPED) ?? 'null');
1683
+ if (Array.isArray(guidedTourLocaleStorage)) {
1684
+ guidedTourLocaleStorage.forEach((step)=>{
1685
+ const [sectionName, stepName] = step.split('.');
1686
+ set(copyInitialState, [
1687
+ 'guidedTourState',
1688
+ sectionName,
1689
+ stepName
1690
+ ], true);
1691
+ });
1692
+ }
1693
+ // if current step when initializing mark it as done
1694
+ if (currentStepLocaleStorage) {
1695
+ const [sectionName, stepName] = currentStepLocaleStorage.split('.');
1696
+ set(copyInitialState, [
1697
+ 'guidedTourState',
1698
+ sectionName,
1699
+ stepName
1700
+ ], true);
1701
+ addCompletedStep(currentStepLocaleStorage);
1702
+ window.localStorage.setItem(GUIDED_TOUR_CURRENT_STEP, JSON.stringify(null));
1703
+ }
1704
+ if (skippedLocaleStorage !== null) {
1705
+ set(copyInitialState, 'isSkipped', skippedLocaleStorage);
1706
+ }
1707
+ return copyInitialState;
1708
+ };
1709
+ /**
1710
+ * @description Add a completed step to the local storage if it does not already exist.
1711
+ */ const addCompletedStep = (completedStep)=>{
1712
+ const currentSteps = JSON.parse(window.localStorage.getItem(GUIDED_TOUR_COMPLETED_STEPS) ?? '[]');
1713
+ if (!Array.isArray(currentSteps)) {
1714
+ return;
1715
+ }
1716
+ const isAlreadyStored = currentSteps.includes(completedStep);
1717
+ if (isAlreadyStored) {
1718
+ return;
1719
+ }
1720
+ window.localStorage.setItem(GUIDED_TOUR_COMPLETED_STEPS, JSON.stringify([
1721
+ ...currentSteps,
1722
+ completedStep
1723
+ ]));
1724
+ };
1725
+
1726
+ const LanguageProvider = ({ children, messages })=>{
1727
+ const locale = useTypedSelector((state)=>state.admin_app.language.locale);
1728
+ const appMessages = defaultsDeep(messages[locale], messages.en);
1729
+ return /*#__PURE__*/ jsxRuntime.jsx(reactIntl.IntlProvider, {
1730
+ locale: locale,
1731
+ defaultLocale: "en",
1732
+ messages: appMessages,
1733
+ textComponent: "span",
1734
+ children: children
1735
+ });
1736
+ };
1737
+
1738
+ const Theme = ({ children, themes })=>{
1739
+ const { currentTheme } = useTypedSelector((state)=>state.admin_app.theme);
1740
+ const [systemTheme, setSystemTheme] = React__namespace.useState();
1741
+ const { locale } = reactIntl.useIntl();
1742
+ const dispatch = reactRedux.useDispatch();
1743
+ // Listen to changes in the system theme
1744
+ React__namespace.useEffect(()=>{
1745
+ const themeWatcher = window.matchMedia('(prefers-color-scheme: dark)');
1746
+ setSystemTheme(themeWatcher.matches ? 'dark' : 'light');
1747
+ const listener = (event)=>{
1748
+ setSystemTheme(event.matches ? 'dark' : 'light');
1749
+ };
1750
+ themeWatcher.addEventListener('change', listener);
1751
+ // Remove listener on cleanup
1752
+ return ()=>{
1753
+ themeWatcher.removeEventListener('change', listener);
1754
+ };
1755
+ }, []);
1756
+ React__namespace.useEffect(()=>{
1757
+ dispatch(setAvailableThemes(Object.keys(themes)));
1758
+ }, [
1759
+ dispatch,
1760
+ themes
1761
+ ]);
1762
+ const computedThemeName = currentTheme === 'system' ? systemTheme : currentTheme;
1763
+ return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.DesignSystemProvider, {
1764
+ locale: locale,
1765
+ /**
1766
+ * TODO: could we make this neater i.e. by setting up the context to throw
1767
+ * if it can't find it, that way the type is always fully defined and we're
1768
+ * not checking it all the time...
1769
+ */ theme: themes?.[computedThemeName || 'light'],
1770
+ children: [
1771
+ children,
1772
+ /*#__PURE__*/ jsxRuntime.jsx(GlobalStyle, {})
1773
+ ]
1774
+ });
1775
+ };
1776
+ const GlobalStyle = styledComponents.createGlobalStyle`
1777
+ body {
1778
+ background: ${({ theme })=>theme.colors.neutral100};
1779
+ }
1780
+ `;
1781
+
1782
+ exports.AppInfoProvider = AppInfoProvider;
1783
+ exports.AuthProvider = AuthProvider;
1784
+ exports.ConfigurationContextProvider = ConfigurationContextProvider;
1785
+ exports.ConfigurationProvider = ConfigurationProvider;
1786
+ exports.GuidedTourProvider = GuidedTourProvider;
1787
+ exports.LANGUAGE_LOCAL_STORAGE_KEY = LANGUAGE_LOCAL_STORAGE_KEY;
1788
+ exports.LanguageProvider = LanguageProvider;
1789
+ exports.NotificationsProvider = NotificationsProvider;
1790
+ exports.Page = Page;
1791
+ exports.RBAC = RBAC;
1792
+ exports.StrapiAppProvider = StrapiAppProvider;
1793
+ exports.THEME_LOCAL_STORAGE_KEY = THEME_LOCAL_STORAGE_KEY;
1794
+ exports.Theme = Theme;
1795
+ exports.TrackingProvider = TrackingProvider;
1796
+ exports.capitalise = capitalise;
1797
+ exports.createContext = createContext;
1798
+ exports.createTypedSelector = createTypedSelector;
1799
+ exports.getIn = getIn;
1800
+ exports.getStoredToken = getStoredToken;
1801
+ exports.isObject = isObject;
1802
+ exports.login = login;
1803
+ exports.logout = logout;
1804
+ exports.reducer = reducer$1;
1805
+ exports.setAppTheme = setAppTheme;
1806
+ exports.setIn = setIn;
1807
+ exports.setLocale = setLocale;
1808
+ exports.useAPIErrorHandler = useAPIErrorHandler;
1809
+ exports.useAppInfo = useAppInfo;
1810
+ exports.useAuth = useAuth;
1811
+ exports.useConfiguration = useConfiguration;
1812
+ exports.useForgotPasswordMutation = useForgotPasswordMutation;
1813
+ exports.useGetProviderOptionsQuery = useGetProviderOptionsQuery;
1814
+ exports.useGetProvidersQuery = useGetProvidersQuery;
1815
+ exports.useGetRegistrationInfoQuery = useGetRegistrationInfoQuery;
1816
+ exports.useGuidedTour = useGuidedTour;
1817
+ exports.useIsSSOLockedQuery = useIsSSOLockedQuery;
1818
+ exports.useNotification = useNotification;
1819
+ exports.useQueryParams = useQueryParams;
1820
+ exports.useRBAC = useRBAC;
1821
+ exports.useRegisterAdminMutation = useRegisterAdminMutation;
1822
+ exports.useRegisterUserMutation = useRegisterUserMutation;
1823
+ exports.useResetPasswordMutation = useResetPasswordMutation;
1824
+ exports.useStrapiApp = useStrapiApp;
1825
+ exports.useTracking = useTracking;
1826
+ exports.useTypedDispatch = useTypedDispatch;
1827
+ exports.useTypedSelector = useTypedSelector;
1828
+ exports.useTypedStore = useTypedStore;
1829
+ exports.useUpdateMeMutation = useUpdateMeMutation;
1830
+ exports.useUpdateProviderOptionsMutation = useUpdateProviderOptionsMutation;
1831
+ //# sourceMappingURL=Theme-CFGbtvHi.js.map