@strapi/admin 5.9.0 → 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.
- package/dist/_internal.js +86 -30
- package/dist/_internal.js.map +1 -1
- package/dist/_internal.mjs +85 -31
- package/dist/_internal.mjs.map +1 -1
- package/dist/admin/chunks/AdminSeatInfo-BfPqdNN0.js +116 -0
- package/dist/admin/chunks/AdminSeatInfo-BfPqdNN0.js.map +1 -0
- package/dist/admin/chunks/AdminSeatInfo-Cw1ujAsZ.mjs +114 -0
- package/dist/admin/chunks/AdminSeatInfo-Cw1ujAsZ.mjs.map +1 -0
- package/dist/admin/chunks/ApplicationInfoPage-Ch6hKH4Y.mjs +932 -0
- package/dist/admin/chunks/ApplicationInfoPage-Ch6hKH4Y.mjs.map +1 -0
- package/dist/admin/chunks/ApplicationInfoPage-DIiAE-tT.js +953 -0
- package/dist/admin/chunks/ApplicationInfoPage-DIiAE-tT.js.map +1 -0
- package/dist/admin/chunks/AuthResponse-DFS6gVO4.mjs +87 -0
- package/dist/admin/chunks/AuthResponse-DFS6gVO4.mjs.map +1 -0
- package/dist/admin/chunks/AuthResponse-DI-Q1kQL.js +108 -0
- package/dist/admin/chunks/AuthResponse-DI-Q1kQL.js.map +1 -0
- package/dist/admin/chunks/AuthenticatedLayout-BNWCtSH2.mjs +1223 -0
- package/dist/admin/chunks/AuthenticatedLayout-BNWCtSH2.mjs.map +1 -0
- package/dist/admin/chunks/AuthenticatedLayout-D067wUoO.js +1245 -0
- package/dist/admin/chunks/AuthenticatedLayout-D067wUoO.js.map +1 -0
- package/dist/admin/chunks/CreateActionEE-CSZxFkrZ.js +74 -0
- package/dist/admin/chunks/CreateActionEE-CSZxFkrZ.js.map +1 -0
- package/dist/admin/chunks/CreateActionEE-DZ6ApqOF.mjs +53 -0
- package/dist/admin/chunks/CreateActionEE-DZ6ApqOF.mjs.map +1 -0
- package/dist/admin/chunks/CreatePage-0PdN9Fyc.mjs +355 -0
- package/dist/admin/chunks/CreatePage-0PdN9Fyc.mjs.map +1 -0
- package/dist/admin/chunks/CreatePage-BK_ivKDk.js +378 -0
- package/dist/admin/chunks/CreatePage-BK_ivKDk.js.map +1 -0
- package/dist/admin/chunks/CreatePage-C8PMNi_P.js +57 -0
- package/dist/admin/chunks/CreatePage-C8PMNi_P.js.map +1 -0
- package/dist/admin/chunks/CreatePage-DojcQqvH.mjs +54 -0
- package/dist/admin/chunks/CreatePage-DojcQqvH.mjs.map +1 -0
- package/dist/admin/chunks/CreateView-BuN2a7bo.mjs +57 -0
- package/dist/admin/chunks/CreateView-BuN2a7bo.mjs.map +1 -0
- package/dist/admin/chunks/CreateView-DB0xD4f5.mjs +62 -0
- package/dist/admin/chunks/CreateView-DB0xD4f5.mjs.map +1 -0
- package/dist/admin/chunks/CreateView-DtccbWiR.js +59 -0
- package/dist/admin/chunks/CreateView-DtccbWiR.js.map +1 -0
- package/dist/admin/chunks/CreateView-ITRNGoQ6.js +64 -0
- package/dist/admin/chunks/CreateView-ITRNGoQ6.js.map +1 -0
- package/dist/admin/chunks/EditPage-BNZ90ISm.mjs +986 -0
- package/dist/admin/chunks/EditPage-BNZ90ISm.mjs.map +1 -0
- package/dist/admin/chunks/EditPage-BazkPM17.mjs +351 -0
- package/dist/admin/chunks/EditPage-BazkPM17.mjs.map +1 -0
- package/dist/admin/chunks/EditPage-DiDSR0tz.js +1010 -0
- package/dist/admin/chunks/EditPage-DiDSR0tz.js.map +1 -0
- package/dist/admin/chunks/EditPage-LRn1-C88.mjs +397 -0
- package/dist/admin/chunks/EditPage-LRn1-C88.mjs.map +1 -0
- package/dist/admin/chunks/EditPage-ibh8EtSv.js +420 -0
- package/dist/admin/chunks/EditPage-ibh8EtSv.js.map +1 -0
- package/dist/admin/chunks/EditPage-r043NYgB.js +374 -0
- package/dist/admin/chunks/EditPage-r043NYgB.js.map +1 -0
- package/dist/admin/chunks/EditView-CgMgqsza.mjs +398 -0
- package/dist/admin/chunks/EditView-CgMgqsza.mjs.map +1 -0
- package/dist/admin/chunks/EditView-DxmJI6e0.js +421 -0
- package/dist/admin/chunks/EditView-DxmJI6e0.js.map +1 -0
- package/dist/admin/chunks/EditViewPage-BE_u8pQP.mjs +1039 -0
- package/dist/admin/chunks/EditViewPage-BE_u8pQP.mjs.map +1 -0
- package/dist/admin/chunks/EditViewPage-Bz4GEIsc.js +1062 -0
- package/dist/admin/chunks/EditViewPage-Bz4GEIsc.js.map +1 -0
- package/dist/admin/chunks/EventsTable-CZY0aI5G.js +97 -0
- package/dist/admin/chunks/EventsTable-CZY0aI5G.js.map +1 -0
- package/dist/admin/chunks/EventsTable-CsFf4rOj.mjs +95 -0
- package/dist/admin/chunks/EventsTable-CsFf4rOj.mjs.map +1 -0
- package/dist/admin/chunks/HomePage-C2Sue0eX.mjs +55 -0
- package/dist/admin/chunks/HomePage-C2Sue0eX.mjs.map +1 -0
- package/dist/admin/chunks/HomePage-CFTx_SgI.mjs +567 -0
- package/dist/admin/chunks/HomePage-CFTx_SgI.mjs.map +1 -0
- package/dist/admin/chunks/HomePage-Df0YSqNE.js +589 -0
- package/dist/admin/chunks/HomePage-Df0YSqNE.js.map +1 -0
- package/dist/admin/chunks/HomePage-ebJLhO6a.js +57 -0
- package/dist/admin/chunks/HomePage-ebJLhO6a.js.map +1 -0
- package/dist/admin/chunks/InstalledPlugins-B4gyKUHh.mjs +174 -0
- package/dist/admin/chunks/InstalledPlugins-B4gyKUHh.mjs.map +1 -0
- package/dist/admin/chunks/InstalledPlugins-BtwwVsQ_.js +196 -0
- package/dist/admin/chunks/InstalledPlugins-BtwwVsQ_.js.map +1 -0
- package/dist/admin/chunks/Layout-BZTqa7oj.js +296 -0
- package/dist/admin/chunks/Layout-BZTqa7oj.js.map +1 -0
- package/dist/admin/chunks/Layout-B_xkPr1q.mjs +275 -0
- package/dist/admin/chunks/Layout-B_xkPr1q.mjs.map +1 -0
- package/dist/admin/chunks/ListPage-Beh8uBDE.mjs +610 -0
- package/dist/admin/chunks/ListPage-Beh8uBDE.mjs.map +1 -0
- package/dist/admin/chunks/ListPage-BtMdu1eQ.mjs +696 -0
- package/dist/admin/chunks/ListPage-BtMdu1eQ.mjs.map +1 -0
- package/dist/admin/chunks/ListPage-CENQarKY.mjs +452 -0
- package/dist/admin/chunks/ListPage-CENQarKY.mjs.map +1 -0
- package/dist/admin/chunks/ListPage-Czwak48Z.mjs +373 -0
- package/dist/admin/chunks/ListPage-Czwak48Z.mjs.map +1 -0
- package/dist/admin/chunks/ListPage-DgmOJv7H.js +632 -0
- package/dist/admin/chunks/ListPage-DgmOJv7H.js.map +1 -0
- package/dist/admin/chunks/ListPage-Du6Jt5wY.js +721 -0
- package/dist/admin/chunks/ListPage-Du6Jt5wY.js.map +1 -0
- package/dist/admin/chunks/ListPage-LqcmQd_Q.js +474 -0
- package/dist/admin/chunks/ListPage-LqcmQd_Q.js.map +1 -0
- package/dist/admin/chunks/ListPage-YW-UVjk3.js +57 -0
- package/dist/admin/chunks/ListPage-YW-UVjk3.js.map +1 -0
- package/dist/admin/chunks/ListPage-gKsEm3Px.js +395 -0
- package/dist/admin/chunks/ListPage-gKsEm3Px.js.map +1 -0
- package/dist/admin/chunks/ListPage-r9rW__R8.mjs +55 -0
- package/dist/admin/chunks/ListPage-r9rW__R8.mjs.map +1 -0
- package/dist/admin/chunks/ListView-BfwBUxHL.js +276 -0
- package/dist/admin/chunks/ListView-BfwBUxHL.js.map +1 -0
- package/dist/admin/chunks/ListView-Bys8EN-y.js +278 -0
- package/dist/admin/chunks/ListView-Bys8EN-y.js.map +1 -0
- package/dist/admin/chunks/ListView-CajksON_.mjs +255 -0
- package/dist/admin/chunks/ListView-CajksON_.mjs.map +1 -0
- package/dist/admin/chunks/ListView-Q2AO0JSX.mjs +253 -0
- package/dist/admin/chunks/ListView-Q2AO0JSX.mjs.map +1 -0
- package/dist/admin/chunks/Login-5ByBaKI3.mjs +93 -0
- package/dist/admin/chunks/Login-5ByBaKI3.mjs.map +1 -0
- package/dist/admin/chunks/Login-BpEOnVbU.js +95 -0
- package/dist/admin/chunks/Login-BpEOnVbU.js.map +1 -0
- package/dist/admin/chunks/MagicLinkEE-CiQG7NL3.mjs +66 -0
- package/dist/admin/chunks/MagicLinkEE-CiQG7NL3.mjs.map +1 -0
- package/dist/admin/chunks/MagicLinkEE-a-AbOB4s.js +68 -0
- package/dist/admin/chunks/MagicLinkEE-a-AbOB4s.js.map +1 -0
- package/dist/admin/chunks/MarketplacePage-BrHNQ8SG.mjs +1134 -0
- package/dist/admin/chunks/MarketplacePage-BrHNQ8SG.mjs.map +1 -0
- package/dist/admin/chunks/MarketplacePage-my1nDaHy.js +1158 -0
- package/dist/admin/chunks/MarketplacePage-my1nDaHy.js.map +1 -0
- package/dist/admin/chunks/ModalForm-Br-NALJ0.js +26 -0
- package/dist/admin/chunks/ModalForm-Br-NALJ0.js.map +1 -0
- package/dist/admin/chunks/ModalForm-CZ98aSC9.mjs +23 -0
- package/dist/admin/chunks/ModalForm-CZ98aSC9.mjs.map +1 -0
- package/dist/admin/chunks/Ornaments-CvdERnok.js +217 -0
- package/dist/admin/chunks/Ornaments-CvdERnok.js.map +1 -0
- package/dist/admin/chunks/Ornaments-DlP663hn.mjs +212 -0
- package/dist/admin/chunks/Ornaments-DlP663hn.mjs.map +1 -0
- package/dist/admin/chunks/Permissions-C7FA_7J9.js +2285 -0
- package/dist/admin/chunks/Permissions-C7FA_7J9.js.map +1 -0
- package/dist/admin/chunks/Permissions-CuLck8vw.mjs +2264 -0
- package/dist/admin/chunks/Permissions-CuLck8vw.mjs.map +1 -0
- package/dist/admin/chunks/PrivateRoute-BYKd2yE4.mjs +18 -0
- package/dist/admin/chunks/PrivateRoute-BYKd2yE4.mjs.map +1 -0
- package/dist/admin/chunks/PrivateRoute-BnxIlIDb.js +20 -0
- package/dist/admin/chunks/PrivateRoute-BnxIlIDb.js.map +1 -0
- package/dist/admin/chunks/ProfilePage-C8zWtYzY.js +520 -0
- package/dist/admin/chunks/ProfilePage-C8zWtYzY.js.map +1 -0
- package/dist/admin/chunks/ProfilePage-Do6nPMsx.mjs +498 -0
- package/dist/admin/chunks/ProfilePage-Do6nPMsx.mjs.map +1 -0
- package/dist/admin/chunks/PurchaseAuditLogs-BTAi887h.js +89 -0
- package/dist/admin/chunks/PurchaseAuditLogs-BTAi887h.js.map +1 -0
- package/dist/admin/chunks/PurchaseAuditLogs-McvZESGI.mjs +87 -0
- package/dist/admin/chunks/PurchaseAuditLogs-McvZESGI.mjs.map +1 -0
- package/dist/admin/chunks/PurchaseContentHistory-dfepsahq.js +89 -0
- package/dist/admin/chunks/PurchaseContentHistory-dfepsahq.js.map +1 -0
- package/dist/admin/chunks/PurchaseContentHistory-pb7RDvhZ.mjs +87 -0
- package/dist/admin/chunks/PurchaseContentHistory-pb7RDvhZ.mjs.map +1 -0
- package/dist/admin/chunks/PurchaseSingleSignOn-BUB9Irlt.mjs +87 -0
- package/dist/admin/chunks/PurchaseSingleSignOn-BUB9Irlt.mjs.map +1 -0
- package/dist/admin/chunks/PurchaseSingleSignOn-Dgal5RnY.js +89 -0
- package/dist/admin/chunks/PurchaseSingleSignOn-Dgal5RnY.js.map +1 -0
- package/dist/admin/chunks/RelativeTime-ChFKZs4z.js +76 -0
- package/dist/admin/chunks/RelativeTime-ChFKZs4z.js.map +1 -0
- package/dist/admin/chunks/RelativeTime-r7oMqUVy.mjs +55 -0
- package/dist/admin/chunks/RelativeTime-r7oMqUVy.mjs.map +1 -0
- package/dist/admin/chunks/SSOProviders-BC_OI8Id.js +107 -0
- package/dist/admin/chunks/SSOProviders-BC_OI8Id.js.map +1 -0
- package/dist/admin/chunks/SSOProviders-Dw_eYbX-.mjs +105 -0
- package/dist/admin/chunks/SSOProviders-Dw_eYbX-.mjs.map +1 -0
- package/dist/admin/chunks/SelectRoles-CG3Czm0u.mjs +124 -0
- package/dist/admin/chunks/SelectRoles-CG3Czm0u.mjs.map +1 -0
- package/dist/admin/chunks/SelectRoles-Clx1_4zB.js +128 -0
- package/dist/admin/chunks/SelectRoles-Clx1_4zB.js.map +1 -0
- package/dist/admin/chunks/SingleSignOnPage-Bqn13t3u.mjs +284 -0
- package/dist/admin/chunks/SingleSignOnPage-Bqn13t3u.mjs.map +1 -0
- package/dist/admin/chunks/SingleSignOnPage-DqHWnXWQ.js +306 -0
- package/dist/admin/chunks/SingleSignOnPage-DqHWnXWQ.js.map +1 -0
- package/dist/admin/chunks/Table-BHi0q5It.js +197 -0
- package/dist/admin/chunks/Table-BHi0q5It.js.map +1 -0
- package/dist/admin/chunks/Table-Ra6bYcx7.mjs +195 -0
- package/dist/admin/chunks/Table-Ra6bYcx7.mjs.map +1 -0
- package/dist/admin/chunks/Theme-CDaBfQ-7.mjs +1762 -0
- package/dist/admin/chunks/Theme-CDaBfQ-7.mjs.map +1 -0
- package/dist/admin/chunks/Theme-CFGbtvHi.js +1831 -0
- package/dist/admin/chunks/Theme-CFGbtvHi.js.map +1 -0
- package/dist/admin/chunks/TokenTypeSelect-BIRgChNx.mjs +367 -0
- package/dist/admin/chunks/TokenTypeSelect-BIRgChNx.mjs.map +1 -0
- package/dist/admin/chunks/TokenTypeSelect-EY1WftKo.js +394 -0
- package/dist/admin/chunks/TokenTypeSelect-EY1WftKo.js.map +1 -0
- package/dist/admin/chunks/UseCasePage-Dl-WfgYc.js +260 -0
- package/dist/admin/chunks/UseCasePage-Dl-WfgYc.js.map +1 -0
- package/dist/admin/chunks/UseCasePage-Y_h0Fbiv.mjs +237 -0
- package/dist/admin/chunks/UseCasePage-Y_h0Fbiv.mjs.map +1 -0
- package/dist/admin/chunks/admin-BBS7sDVu.mjs +407 -0
- package/dist/admin/chunks/admin-BBS7sDVu.mjs.map +1 -0
- package/dist/admin/chunks/admin-udBiOv2o.js +422 -0
- package/dist/admin/chunks/admin-udBiOv2o.js.map +1 -0
- package/dist/admin/chunks/apiTokens-Bl4j4xFt.mjs +79 -0
- package/dist/admin/chunks/apiTokens-Bl4j4xFt.mjs.map +1 -0
- package/dist/admin/chunks/apiTokens-C7CY0RRl.js +85 -0
- package/dist/admin/chunks/apiTokens-C7CY0RRl.js.map +1 -0
- package/dist/admin/chunks/ar-CKlv64GT.js +851 -0
- package/dist/admin/{ar-CzJtN9ZR.js.map → chunks/ar-CKlv64GT.js.map} +1 -1
- package/dist/admin/chunks/ar-DIoaNhYi.mjs +832 -0
- package/dist/admin/{ar-B4qxeRNq.mjs.map → chunks/ar-DIoaNhYi.mjs.map} +1 -1
- package/dist/admin/chunks/ca-CiTVrP0z.mjs +520 -0
- package/dist/admin/{ca-CNWrv4Mk.mjs.map → chunks/ca-CiTVrP0z.mjs.map} +1 -1
- package/dist/admin/chunks/ca-Dro6RjTq.js +536 -0
- package/dist/admin/{pl-CdJxEUSA.js.map → chunks/ca-Dro6RjTq.js.map} +1 -1
- package/dist/admin/chunks/constants-B8oOcJBB.mjs +5 -0
- package/dist/admin/chunks/constants-B8oOcJBB.mjs.map +1 -0
- package/dist/admin/chunks/constants-DClZ3JYF.js +163 -0
- package/dist/admin/chunks/constants-DClZ3JYF.js.map +1 -0
- package/dist/admin/chunks/constants-DoArvzRr.mjs +161 -0
- package/dist/admin/chunks/constants-DoArvzRr.mjs.map +1 -0
- package/dist/admin/chunks/constants-tbFuOuW4.js +8 -0
- package/dist/admin/chunks/constants-tbFuOuW4.js.map +1 -0
- package/dist/admin/chunks/cs-CrhAArjW.js +177 -0
- package/dist/admin/{cs-DeS9DzIq.js.map → chunks/cs-CrhAArjW.js.map} +1 -1
- package/dist/admin/chunks/cs-D7xysdyX.mjs +166 -0
- package/dist/admin/{cs-DrRkodPD.mjs.map → chunks/cs-D7xysdyX.mjs.map} +1 -1
- package/dist/admin/chunks/de--2g6Hiwv.js +530 -0
- package/dist/admin/{de-CxVS71Os.js.map → chunks/de--2g6Hiwv.js.map} +1 -1
- package/dist/admin/chunks/de-BWQ7SIyM.mjs +514 -0
- package/dist/admin/{de-D0NA2abW.mjs.map → chunks/de-BWQ7SIyM.mjs.map} +1 -1
- package/dist/admin/chunks/dk-7AZJZW29.mjs +434 -0
- package/dist/admin/{dk-BhJUQEKK.mjs.map → chunks/dk-7AZJZW29.mjs.map} +1 -1
- package/dist/admin/chunks/dk-DlX9Yc-Z.js +450 -0
- package/dist/admin/{ko-DQ16dRok.js.map → chunks/dk-DlX9Yc-Z.js.map} +1 -1
- package/dist/admin/chunks/en-CJjqxA2Q.js +804 -0
- package/dist/admin/{en-aGYWBxXH.js.map → chunks/en-CJjqxA2Q.js.map} +1 -1
- package/dist/admin/chunks/en-CRu3-kTC.mjs +784 -0
- package/dist/admin/{en-HhkCMXdW.mjs.map → chunks/en-CRu3-kTC.mjs.map} +1 -1
- package/dist/admin/chunks/en-GB-CMP_CCZs.js +8 -0
- package/dist/admin/chunks/en-GB-CMP_CCZs.js.map +1 -0
- package/dist/admin/chunks/en-GB-DZyWkup_.mjs +6 -0
- package/dist/admin/chunks/en-GB-DZyWkup_.mjs.map +1 -0
- package/dist/admin/chunks/es-DlUN520X.mjs +602 -0
- package/dist/admin/{es-YUiY80mn.mjs.map → chunks/es-DlUN520X.mjs.map} +1 -1
- package/dist/admin/chunks/es-qJwzbuzj.js +620 -0
- package/dist/admin/{es-D3FlHFx3.js.map → chunks/es-qJwzbuzj.js.map} +1 -1
- package/dist/admin/chunks/eu-BjPzWjP-.mjs +625 -0
- package/dist/admin/{hu-BqsNBMOK.mjs.map → chunks/eu-BjPzWjP-.mjs.map} +1 -1
- package/dist/admin/chunks/eu-DLuO9QFa.js +643 -0
- package/dist/admin/chunks/eu-DLuO9QFa.js.map +1 -0
- package/dist/admin/chunks/fr-D-lfObnF.mjs +581 -0
- package/dist/admin/{fr-CQtzdQWu.mjs.map → chunks/fr-D-lfObnF.mjs.map} +1 -1
- package/dist/admin/chunks/fr-l9CvkceZ.js +601 -0
- package/dist/admin/{tr-D8gIyQxv.js.map → chunks/fr-l9CvkceZ.js.map} +1 -1
- package/dist/admin/chunks/gu-BfN4U3Q0.js +436 -0
- package/dist/admin/{gu-Hc5YzUuw.js.map → chunks/gu-BfN4U3Q0.js.map} +1 -1
- package/dist/admin/chunks/gu-DMqR9PzV.mjs +429 -0
- package/dist/admin/{gu-CSS25C49.mjs.map → chunks/gu-DMqR9PzV.mjs.map} +1 -1
- package/dist/admin/chunks/he-DQnlLpI2.js +327 -0
- package/dist/admin/chunks/he-DQnlLpI2.js.map +1 -0
- package/dist/admin/chunks/he-DfIYPy4g.mjs +315 -0
- package/dist/admin/{he-CR3FKaSH.mjs.map → chunks/he-DfIYPy4g.mjs.map} +1 -1
- package/dist/admin/chunks/hi-C1bRwQm3.mjs +519 -0
- package/dist/admin/{hi-CRUIUVKR.mjs.map → chunks/hi-C1bRwQm3.mjs.map} +1 -1
- package/dist/admin/chunks/hi-CAYgw5fw.js +535 -0
- package/dist/admin/{ml-D3lcQ9Qh.js.map → chunks/hi-CAYgw5fw.js.map} +1 -1
- package/dist/admin/chunks/hu-CmA0pIab.js +643 -0
- package/dist/admin/chunks/hu-CmA0pIab.js.map +1 -0
- package/dist/admin/chunks/hu-DTUInqNe.mjs +625 -0
- package/dist/admin/{eu-wKHkhamJ.mjs.map → chunks/hu-DTUInqNe.mjs.map} +1 -1
- package/dist/admin/chunks/id-C69myNeZ.js +301 -0
- package/dist/admin/{id-BX77nhRG.js.map → chunks/id-C69myNeZ.js.map} +1 -1
- package/dist/admin/chunks/id-CLj6OS01.mjs +290 -0
- package/dist/admin/{id-cH3Ovozx.mjs.map → chunks/id-CLj6OS01.mjs.map} +1 -1
- package/dist/admin/chunks/index-BUGouNML.mjs +7091 -0
- package/dist/admin/chunks/index-BUGouNML.mjs.map +1 -0
- package/dist/admin/chunks/index-D7OmC33R.js +7155 -0
- package/dist/admin/chunks/index-D7OmC33R.js.map +1 -0
- package/dist/admin/chunks/it-Bn9y0UG-.js +310 -0
- package/dist/admin/{it-BFsCRAiv.js.map → chunks/it-Bn9y0UG-.js.map} +1 -1
- package/dist/admin/chunks/it-CI4iXN-s.mjs +299 -0
- package/dist/admin/{it-D236xPzE.mjs.map → chunks/it-CI4iXN-s.mjs.map} +1 -1
- package/dist/admin/chunks/ja-DDL7fKfX.js +450 -0
- package/dist/admin/{ja-DeeXToB8.js.map → chunks/ja-DDL7fKfX.js.map} +1 -1
- package/dist/admin/chunks/ja-XD0qdvmh.mjs +434 -0
- package/dist/admin/{ja-CD7DxKrd.mjs.map → chunks/ja-XD0qdvmh.mjs.map} +1 -1
- package/dist/admin/chunks/ko-CAChQtgZ.mjs +433 -0
- package/dist/admin/{ko-CgT83B4e.mjs.map → chunks/ko-CAChQtgZ.mjs.map} +1 -1
- package/dist/admin/chunks/ko-C_d9Ja0b.js +449 -0
- package/dist/admin/{dk-B-52bH2A.js.map → chunks/ko-C_d9Ja0b.js.map} +1 -1
- package/dist/admin/chunks/ml-BN6g97vL.js +535 -0
- package/dist/admin/chunks/ml-BN6g97vL.js.map +1 -0
- package/dist/admin/chunks/ml-OZdE-Rdf.mjs +519 -0
- package/dist/admin/{ml-BJMvJbX5.mjs.map → chunks/ml-OZdE-Rdf.mjs.map} +1 -1
- package/dist/admin/chunks/ms-CWDO45lu.mjs +200 -0
- package/dist/admin/{pt-8dwKSOn3.mjs.map → chunks/ms-CWDO45lu.mjs.map} +1 -1
- package/dist/admin/chunks/ms-DSUp9TXl.js +211 -0
- package/dist/admin/{pt-CEcd6cjN.js.map → chunks/ms-DSUp9TXl.js.map} +1 -1
- package/dist/admin/chunks/nl-BRq2PB1q.mjs +621 -0
- package/dist/admin/{nl-CKIw7654.mjs.map → chunks/nl-BRq2PB1q.mjs.map} +1 -1
- package/dist/admin/chunks/nl-Bc4mZOba.js +639 -0
- package/dist/admin/{sv-BqRXfruc.js.map → chunks/nl-Bc4mZOba.js.map} +1 -1
- package/dist/admin/chunks/no-BtzfHZUH.mjs +300 -0
- package/dist/admin/{no-D6CAWjEU.mjs.map → chunks/no-BtzfHZUH.mjs.map} +1 -1
- package/dist/admin/chunks/no-D0VN_ZtA.js +311 -0
- package/dist/admin/{no-B9qB0rWa.js.map → chunks/no-D0VN_ZtA.js.map} +1 -1
- package/dist/admin/chunks/pl-BsvtDLRo.mjs +519 -0
- package/dist/admin/{pl-jPMrmdJq.mjs.map → chunks/pl-BsvtDLRo.mjs.map} +1 -1
- package/dist/admin/chunks/pl-D7HFG_xo.js +535 -0
- package/dist/admin/chunks/pl-D7HFG_xo.js.map +1 -0
- package/dist/admin/chunks/pt-BR-B3KKuF2p.js +606 -0
- package/dist/admin/{pt-BR-DBqyMlGp.js.map → chunks/pt-BR-B3KKuF2p.js.map} +1 -1
- package/dist/admin/chunks/pt-BR-DBqHmqA5.mjs +588 -0
- package/dist/admin/{pt-BR-THVjG5z2.mjs.map → chunks/pt-BR-DBqHmqA5.mjs.map} +1 -1
- package/dist/admin/chunks/pt-DCyoSDGa.js +210 -0
- package/dist/admin/{ms-C-JB0-h1.js.map → chunks/pt-DCyoSDGa.js.map} +1 -1
- package/dist/admin/chunks/pt-wKaSOdHh.mjs +200 -0
- package/dist/admin/{ms-eMDSLvhl.mjs.map → chunks/pt-wKaSOdHh.mjs.map} +1 -1
- package/dist/admin/chunks/ru-C13N1yaO.mjs +745 -0
- package/dist/admin/{ru-C34i9wJx.mjs.map → chunks/ru-C13N1yaO.mjs.map} +1 -1
- package/dist/admin/chunks/ru-Dj1oAKC7.js +764 -0
- package/dist/admin/{ru-Dwf09uUc.js.map → chunks/ru-Dj1oAKC7.js.map} +1 -1
- package/dist/admin/chunks/sa-BS5xpa-V.mjs +519 -0
- package/dist/admin/chunks/sa-BS5xpa-V.mjs.map +1 -0
- package/dist/admin/chunks/sa-ftcoOyFZ.js +535 -0
- package/dist/admin/chunks/sa-ftcoOyFZ.js.map +1 -0
- package/dist/admin/chunks/selectors-2ohXQx5g.js +13 -0
- package/dist/admin/chunks/selectors-2ohXQx5g.js.map +1 -0
- package/dist/admin/chunks/selectors-PQdhPmzv.mjs +11 -0
- package/dist/admin/chunks/selectors-PQdhPmzv.mjs.map +1 -0
- package/dist/admin/chunks/sk-BkoiGl_d.js +501 -0
- package/dist/admin/{sk-CbJVofN-.js.map → chunks/sk-BkoiGl_d.js.map} +1 -1
- package/dist/admin/chunks/sk-Yv9s7dUn.mjs +483 -0
- package/dist/admin/{sk-DQ2qpsG2.mjs.map → chunks/sk-Yv9s7dUn.mjs.map} +1 -1
- package/dist/admin/chunks/sv-CYpSsbq3.js +638 -0
- package/dist/admin/{nl-DN7knmKC.js.map → chunks/sv-CYpSsbq3.js.map} +1 -1
- package/dist/admin/chunks/sv-CaQpgtnl.mjs +620 -0
- package/dist/admin/{sv-D0vPVUAT.mjs.map → chunks/sv-CaQpgtnl.mjs.map} +1 -1
- package/dist/admin/chunks/th-D1Raa9T5.js +295 -0
- package/dist/admin/{th-CPx6wf0M.js.map → chunks/th-D1Raa9T5.js.map} +1 -1
- package/dist/admin/chunks/th-Mav5tUMF.mjs +284 -0
- package/dist/admin/{th-BG3IOCqV.mjs.map → chunks/th-Mav5tUMF.mjs.map} +1 -1
- package/dist/admin/chunks/tr-DZnC0Jye.mjs +581 -0
- package/dist/admin/{tr-BmV7At9f.mjs.map → chunks/tr-DZnC0Jye.mjs.map} +1 -1
- package/dist/admin/chunks/tr-KY2E7HZC.js +599 -0
- package/dist/admin/{fr-DrIHgYTT.js.map → chunks/tr-KY2E7HZC.js.map} +1 -1
- package/dist/admin/chunks/transferTokens-9pdM-Bum.mjs +90 -0
- package/dist/admin/chunks/transferTokens-9pdM-Bum.mjs.map +1 -0
- package/dist/admin/chunks/transferTokens-oEFM8kkT.js +97 -0
- package/dist/admin/chunks/transferTokens-oEFM8kkT.js.map +1 -0
- package/dist/admin/chunks/uk-Cb6a0PAZ.mjs +201 -0
- package/dist/admin/{uk-Ud9QNfkB.mjs.map → chunks/uk-Cb6a0PAZ.mjs.map} +1 -1
- package/dist/admin/chunks/uk-gz16FlMw.js +212 -0
- package/dist/admin/chunks/uk-gz16FlMw.js.map +1 -0
- package/dist/admin/chunks/useAdminRoles-BEmkB0uj.mjs +32 -0
- package/dist/admin/chunks/useAdminRoles-BEmkB0uj.mjs.map +1 -0
- package/dist/admin/chunks/useAdminRoles-DwDqOIvp.js +53 -0
- package/dist/admin/chunks/useAdminRoles-DwDqOIvp.js.map +1 -0
- package/dist/admin/chunks/useEnterprise-Dy8wMNV5.mjs +38 -0
- package/dist/admin/chunks/useEnterprise-Dy8wMNV5.mjs.map +1 -0
- package/dist/admin/chunks/useEnterprise-IHd3AKd2.js +59 -0
- package/dist/admin/chunks/useEnterprise-IHd3AKd2.js.map +1 -0
- package/dist/admin/chunks/useLicenseLimitNotification-BMCQ8obE.js +96 -0
- package/dist/admin/chunks/useLicenseLimitNotification-BMCQ8obE.js.map +1 -0
- package/dist/admin/chunks/useLicenseLimitNotification-CGkazzao.mjs +75 -0
- package/dist/admin/chunks/useLicenseLimitNotification-CGkazzao.mjs.map +1 -0
- package/dist/admin/chunks/useLicenseLimits-D4XBewxi.mjs +29 -0
- package/dist/admin/chunks/useLicenseLimits-D4XBewxi.mjs.map +1 -0
- package/dist/admin/chunks/useLicenseLimits-JOHH8jfL.js +50 -0
- package/dist/admin/chunks/useLicenseLimits-JOHH8jfL.js.map +1 -0
- package/dist/admin/chunks/useOnce-CCEXokcy.js +28 -0
- package/dist/admin/chunks/useOnce-CCEXokcy.js.map +1 -0
- package/dist/admin/chunks/useOnce-EHSWW7FY.mjs +7 -0
- package/dist/admin/chunks/useOnce-EHSWW7FY.mjs.map +1 -0
- package/dist/admin/chunks/useWebhooks-CROc5Uno.js +117 -0
- package/dist/admin/chunks/useWebhooks-CROc5Uno.js.map +1 -0
- package/dist/admin/chunks/useWebhooks-DzJ3X-hd.mjs +115 -0
- package/dist/admin/chunks/useWebhooks-DzJ3X-hd.mjs.map +1 -0
- package/dist/admin/chunks/users-B3iOAYG-.mjs +39 -0
- package/dist/admin/chunks/users-B3iOAYG-.mjs.map +1 -0
- package/dist/admin/chunks/users-D-oKxjK9.js +42 -0
- package/dist/admin/chunks/users-D-oKxjK9.js.map +1 -0
- package/dist/admin/chunks/validation-DOQs6_Ay.mjs +52 -0
- package/dist/admin/chunks/validation-DOQs6_Ay.mjs.map +1 -0
- package/dist/admin/chunks/validation-ECrFbJ6K.js +73 -0
- package/dist/admin/chunks/validation-ECrFbJ6K.js.map +1 -0
- package/dist/admin/chunks/vi-BsRo_l_e.js +198 -0
- package/dist/admin/{vi-UeRpPdvI.js.map → chunks/vi-BsRo_l_e.js.map} +1 -1
- package/dist/admin/chunks/vi-r6WrFGyI.mjs +187 -0
- package/dist/admin/{vi-CGrr4ioy.mjs.map → chunks/vi-r6WrFGyI.mjs.map} +1 -1
- package/dist/admin/chunks/zh-B_FImn9T.js +640 -0
- package/dist/admin/{zh-AMwNTzOa.js.map → chunks/zh-B_FImn9T.js.map} +1 -1
- package/dist/admin/chunks/zh-CIjQrG_x.mjs +622 -0
- package/dist/admin/{zh-DtDdEUIE.mjs.map → chunks/zh-CIjQrG_x.mjs.map} +1 -1
- package/dist/admin/chunks/zh-Hans-BmHHqjob.mjs +716 -0
- package/dist/admin/{zh-Hans-DrZal35c.mjs.map → chunks/zh-Hans-BmHHqjob.mjs.map} +1 -1
- package/dist/admin/chunks/zh-Hans-Bv055w0d.js +735 -0
- package/dist/admin/{zh-Hans-B34a3f93.js.map → chunks/zh-Hans-Bv055w0d.js.map} +1 -1
- package/dist/admin/ee.js +9 -4
- package/dist/admin/ee.js.map +1 -1
- package/dist/admin/ee.mjs +9 -2
- package/dist/admin/ee.mjs.map +1 -1
- package/dist/admin/index.js +41 -5
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +40 -3
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/src/App.d.ts +2 -2
- package/dist/admin/src/StrapiApp.d.ts +2 -2
- package/dist/admin/src/components/ConfirmDialog.d.ts +1 -1
- package/dist/admin/src/components/DragLayer.d.ts +1 -1
- package/dist/admin/src/components/Filters.d.ts +2 -2
- package/dist/admin/src/components/Form.d.ts +6 -5
- package/dist/admin/src/components/FormInputs/Boolean.d.ts +2 -1
- package/dist/admin/src/components/FormInputs/Checkbox.d.ts +2 -1
- package/dist/admin/src/components/FormInputs/Date.d.ts +1 -1
- package/dist/admin/src/components/FormInputs/DateTime.d.ts +2 -1
- package/dist/admin/src/components/FormInputs/Email.d.ts +3 -2
- package/dist/admin/src/components/FormInputs/Enumeration.d.ts +2 -1
- package/dist/admin/src/components/FormInputs/Json.d.ts +1 -1
- package/dist/admin/src/components/FormInputs/Number.d.ts +2 -1
- package/dist/admin/src/components/FormInputs/Password.d.ts +3 -2
- package/dist/admin/src/components/FormInputs/Renderer.d.ts +3 -2
- package/dist/admin/src/components/FormInputs/String.d.ts +3 -2
- package/dist/admin/src/components/FormInputs/Textarea.d.ts +3 -2
- package/dist/admin/src/components/FormInputs/Time.d.ts +2 -1
- package/dist/admin/src/components/FormInputs/types.d.ts +2 -2
- package/dist/admin/src/components/Layouts/HeaderLayout.d.ts +1 -1
- package/dist/admin/src/components/Layouts/Layout.d.ts +5 -5
- package/dist/admin/src/components/MainNav/NavLink.d.ts +1 -1
- package/dist/admin/src/components/MainNav/NavUser.d.ts +1 -1
- package/dist/admin/src/components/PageHelpers.d.ts +2 -2
- package/dist/admin/src/components/Pagination.d.ts +1 -1
- package/dist/admin/src/components/Providers.d.ts +2 -2
- package/dist/admin/src/components/RelativeTime.d.ts +1 -1
- package/dist/admin/src/components/Table.d.ts +1 -1
- package/dist/admin/src/components/Theme.d.ts +1 -1
- package/dist/admin/src/constants/filters.d.ts +2 -2
- package/dist/admin/src/constants.d.ts +1 -1
- package/dist/admin/src/core/apis/CustomFields.d.ts +2 -2
- package/dist/admin/src/core/apis/Plugin.d.ts +2 -0
- package/dist/admin/src/core/apis/rbac.d.ts +1 -1
- package/dist/admin/src/core/apis/router.d.ts +2 -2
- package/dist/admin/src/core/store/configure.d.ts +5 -5
- package/dist/admin/src/core/store/hooks.d.ts +7 -10
- package/dist/admin/src/core/utils/createHook.d.ts +1 -1
- package/dist/admin/src/features/AppInfo.d.ts +1 -1
- package/dist/admin/src/features/Auth.d.ts +2 -2
- package/dist/admin/src/features/BackButton.d.ts +2 -2
- package/dist/admin/src/features/Configuration.d.ts +2 -2
- package/dist/admin/src/features/StrapiApp.d.ts +3 -2
- package/dist/admin/src/features/Tracking.d.ts +1 -1
- package/dist/admin/src/hooks/useAPIErrorHandler.d.ts +1 -3
- package/dist/admin/src/hooks/useAdminRoles.d.ts +3 -3
- package/dist/admin/src/hooks/useContentTypes.d.ts +1 -1
- package/dist/admin/src/hooks/useElementOnScreen.d.ts +7 -0
- package/dist/admin/src/hooks/useFetchClient.d.ts +1 -1
- package/dist/admin/src/hooks/usePersistentState.d.ts +1 -1
- package/dist/admin/src/hooks/useQueryParams.d.ts +1 -1
- package/dist/admin/src/hooks/useSettingsMenu.d.ts +1 -1
- package/dist/admin/src/hooks/useThrottledCallback.d.ts +2 -1
- package/dist/admin/src/index.d.ts +3 -2
- package/dist/admin/src/layouts/UnauthenticatedLayout.d.ts +2 -2
- package/dist/admin/src/pages/Auth/components/ForgotPassword.d.ts +1 -1
- package/dist/admin/src/pages/Auth/components/Login.d.ts +1 -1
- package/dist/admin/src/pages/Auth/constants.d.ts +1 -1
- package/dist/admin/src/pages/Home/components/Widget.d.ts +1 -1
- package/dist/admin/src/pages/Marketplace/components/NpmPackageCard.d.ts +2 -2
- package/dist/admin/src/pages/Marketplace/components/NpmPackagesFilters.d.ts +2 -2
- package/dist/admin/src/pages/Marketplace/components/NpmPackagesGrid.d.ts +1 -1
- package/dist/admin/src/pages/Marketplace/components/PageHeader.d.ts +1 -1
- package/dist/admin/src/pages/Marketplace/hooks/useMarketplaceData.d.ts +3 -3
- package/dist/admin/src/pages/Settings/components/Tokens/FormHead.d.ts +1 -1
- package/dist/admin/src/pages/Settings/components/Tokens/LifeSpanInput.d.ts +2 -2
- package/dist/admin/src/pages/Settings/components/Tokens/Table.d.ts +1 -1
- package/dist/admin/src/pages/Settings/constants.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/apiTokenPermissions.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.d.ts +2 -2
- package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/constants.d.ts +12 -12
- package/dist/admin/src/pages/Settings/pages/ApplicationInfo/utils/files.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/Roles/components/CollapseLabel.d.ts +4 -3
- package/dist/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.d.ts +2 -2
- package/dist/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.d.ts +2 -2
- package/dist/admin/src/pages/Settings/pages/Roles/components/HiddenAction.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/Roles/components/Permissions.d.ts +2 -2
- package/dist/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/Roles/components/RoleForm.d.ts +2 -2
- package/dist/admin/src/pages/Settings/pages/Roles/components/RoleRow.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/Roles/components/RowLabelWithCheckbox.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.d.ts +3 -2
- package/dist/admin/src/pages/Settings/pages/Roles/utils/createArrayOfValues.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/Roles/utils/forms.d.ts +3 -3
- package/dist/admin/src/pages/Settings/pages/Roles/utils/permissions.d.ts +2 -2
- package/dist/admin/src/pages/Settings/pages/Roles/utils/removeConditionKeyFromData.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/Users/components/CreateActionCE.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/Users/components/NewUserForm.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/Users/utils/validation.d.ts +2 -2
- package/dist/admin/src/pages/Settings/pages/Webhooks/components/Events.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.d.ts +6 -6
- package/dist/admin/src/reducer.d.ts +2 -2
- package/dist/admin/src/render.d.ts +1 -1
- package/dist/admin/src/selectors.d.ts +6 -6
- package/dist/admin/src/services/admin.d.ts +6 -6
- package/dist/admin/src/services/api.d.ts +1 -1
- package/dist/admin/src/services/apiTokens.d.ts +1 -1
- package/dist/admin/src/services/auth.d.ts +22 -22
- package/dist/admin/src/services/contentApi.d.ts +1 -1
- package/dist/admin/src/services/contentManager.d.ts +6 -2
- package/dist/admin/src/services/homepage.d.ts +2 -2
- package/dist/admin/src/services/transferTokens.d.ts +1 -1
- package/dist/admin/src/services/users.d.ts +12 -12
- package/dist/admin/src/services/webhooks.d.ts +3 -3
- package/dist/admin/src/types/adminConfiguration.d.ts +1 -1
- package/dist/admin/src/types/forms.d.ts +3 -3
- package/dist/admin/src/types/permissions.d.ts +1 -1
- package/dist/admin/src/utils/arrays.d.ts +1 -1
- package/dist/admin/src/utils/baseQuery.d.ts +1 -2
- package/dist/admin/src/utils/getFetchClient.d.ts +2 -1
- package/dist/admin/src/utils/normalizeAPIError.d.ts +1 -1
- package/dist/admin/src/utils/users.d.ts +1 -1
- package/dist/admin/test.js +2288 -35360
- package/dist/admin/test.js.map +1 -1
- package/dist/admin/test.mjs +2254 -35313
- package/dist/admin/test.mjs.map +1 -1
- package/dist/admin/tests/server.d.ts +1 -1
- package/dist/admin/tests/utils.d.ts +6 -6
- package/dist/ee/admin/src/constants.d.ts +2 -2
- package/dist/ee/admin/src/hooks/useLicenseLimits.d.ts +2 -2
- package/dist/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.d.ts +1 -1
- package/dist/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.d.ts +1 -1
- package/dist/ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE.d.ts +1 -1
- package/dist/ee/admin/src/services/auditLogs.d.ts +1 -1
- package/dist/ee/server/src/index.d.ts +1 -1
- package/dist/ee/server/src/index.d.ts.map +1 -1
- package/dist/server/index.js +8567 -6648
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +8747 -6815
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/src/bootstrap.d.ts.map +1 -1
- package/dist/server/src/services/api-token.d.ts +2 -1
- package/dist/server/src/services/api-token.d.ts.map +1 -1
- package/dist/shared/contracts/admin.d.ts +1 -1
- package/dist/shared/contracts/api-token.d.ts +1 -1
- package/dist/shared/contracts/authentication.d.ts +2 -2
- package/dist/shared/contracts/content-api.d.ts +2 -2
- package/dist/shared/contracts/content-types.d.ts +1 -1
- package/dist/shared/contracts/homepage.d.ts +2 -2
- package/dist/shared/contracts/permissions.d.ts +1 -1
- package/dist/shared/contracts/roles.d.ts +2 -2
- package/dist/shared/contracts/shared.d.ts +1 -1
- package/dist/shared/contracts/user.d.ts +2 -2
- package/dist/shared/contracts/users.d.ts +2 -2
- package/dist/shared/contracts/webhooks.d.ts +1 -1
- package/package.json +18 -15
- package/dist/admin/AdminSeatInfo-Bpyschk4.mjs +0 -92
- package/dist/admin/AdminSeatInfo-Bpyschk4.mjs.map +0 -1
- package/dist/admin/AdminSeatInfo-DJY5XfV1.js +0 -96
- package/dist/admin/AdminSeatInfo-DJY5XfV1.js.map +0 -1
- package/dist/admin/ApplicationInfoPage-C5uFIQZ2.js +0 -673
- package/dist/admin/ApplicationInfoPage-C5uFIQZ2.js.map +0 -1
- package/dist/admin/ApplicationInfoPage-Y3MPY3-0.mjs +0 -646
- package/dist/admin/ApplicationInfoPage-Y3MPY3-0.mjs.map +0 -1
- package/dist/admin/AuthResponse-4S-gAOdq.js +0 -85
- package/dist/admin/AuthResponse-4S-gAOdq.js.map +0 -1
- package/dist/admin/AuthResponse-BI0D7fJC.mjs +0 -61
- package/dist/admin/AuthResponse-BI0D7fJC.mjs.map +0 -1
- package/dist/admin/AuthenticatedLayout-BGC6wyzT.js +0 -1198
- package/dist/admin/AuthenticatedLayout-BGC6wyzT.js.map +0 -1
- package/dist/admin/AuthenticatedLayout-CGVw08Na.mjs +0 -1166
- package/dist/admin/AuthenticatedLayout-CGVw08Na.mjs.map +0 -1
- package/dist/admin/CreateActionEE-CRTFGenF.js +0 -76
- package/dist/admin/CreateActionEE-CRTFGenF.js.map +0 -1
- package/dist/admin/CreateActionEE-JUvyeAny.mjs +0 -49
- package/dist/admin/CreateActionEE-JUvyeAny.mjs.map +0 -1
- package/dist/admin/CreatePage-C6UdEQOs.js +0 -268
- package/dist/admin/CreatePage-C6UdEQOs.js.map +0 -1
- package/dist/admin/CreatePage-CMkC5wC9.mjs +0 -242
- package/dist/admin/CreatePage-CMkC5wC9.mjs.map +0 -1
- package/dist/admin/CreatePage-CbJkyfCM.js +0 -18
- package/dist/admin/CreatePage-CbJkyfCM.js.map +0 -1
- package/dist/admin/CreatePage-Dqo3PXZo.mjs +0 -13
- package/dist/admin/CreatePage-Dqo3PXZo.mjs.map +0 -1
- package/dist/admin/CreateView-B39tI8E1.js +0 -17
- package/dist/admin/CreateView-B39tI8E1.js.map +0 -1
- package/dist/admin/CreateView-B8nJeYSW.mjs +0 -13
- package/dist/admin/CreateView-B8nJeYSW.mjs.map +0 -1
- package/dist/admin/CreateView-COaAIHM0.js +0 -17
- package/dist/admin/CreateView-COaAIHM0.js.map +0 -1
- package/dist/admin/CreateView-wxPZtkV-.mjs +0 -13
- package/dist/admin/CreateView-wxPZtkV-.mjs.map +0 -1
- package/dist/admin/EditPage-BBZ7R3in.js +0 -779
- package/dist/admin/EditPage-BBZ7R3in.js.map +0 -1
- package/dist/admin/EditPage-CJZEJoQP.mjs +0 -754
- package/dist/admin/EditPage-CJZEJoQP.mjs.map +0 -1
- package/dist/admin/EditPage-CSFYt_HC.js +0 -359
- package/dist/admin/EditPage-CSFYt_HC.js.map +0 -1
- package/dist/admin/EditPage-D-DXDPnf.mjs +0 -330
- package/dist/admin/EditPage-D-DXDPnf.mjs.map +0 -1
- package/dist/admin/EditPage-D69Hx_ec.js +0 -298
- package/dist/admin/EditPage-D69Hx_ec.js.map +0 -1
- package/dist/admin/EditPage-UHcIKlhQ.mjs +0 -272
- package/dist/admin/EditPage-UHcIKlhQ.mjs.map +0 -1
- package/dist/admin/EditView-ByMWzlex.mjs +0 -331
- package/dist/admin/EditView-ByMWzlex.mjs.map +0 -1
- package/dist/admin/EditView-DXCpjmO7.js +0 -357
- package/dist/admin/EditView-DXCpjmO7.js.map +0 -1
- package/dist/admin/EditViewPage-CQO7BSJW.mjs +0 -841
- package/dist/admin/EditViewPage-CQO7BSJW.mjs.map +0 -1
- package/dist/admin/EditViewPage-CtBSUjNT.js +0 -873
- package/dist/admin/EditViewPage-CtBSUjNT.js.map +0 -1
- package/dist/admin/EventsTable-DPG53ZH8.mjs +0 -32
- package/dist/admin/EventsTable-DPG53ZH8.mjs.map +0 -1
- package/dist/admin/EventsTable-DSxr3I2m.js +0 -36
- package/dist/admin/EventsTable-DSxr3I2m.js.map +0 -1
- package/dist/admin/HomePage-4Evpy8F1.js +0 -15
- package/dist/admin/HomePage-4Evpy8F1.js.map +0 -1
- package/dist/admin/HomePage-CysC5L5a.mjs +0 -351
- package/dist/admin/HomePage-CysC5L5a.mjs.map +0 -1
- package/dist/admin/HomePage-DPgihdwp.mjs +0 -11
- package/dist/admin/HomePage-DPgihdwp.mjs.map +0 -1
- package/dist/admin/HomePage-kmMq4BVh.js +0 -376
- package/dist/admin/HomePage-kmMq4BVh.js.map +0 -1
- package/dist/admin/InstalledPlugins-BISfAqYE.mjs +0 -95
- package/dist/admin/InstalledPlugins-BISfAqYE.mjs.map +0 -1
- package/dist/admin/InstalledPlugins-CZ0iNNcI.js +0 -120
- package/dist/admin/InstalledPlugins-CZ0iNNcI.js.map +0 -1
- package/dist/admin/Layout-BVOfyAt_.js +0 -242
- package/dist/admin/Layout-BVOfyAt_.js.map +0 -1
- package/dist/admin/Layout-DQ36VXiH.mjs +0 -215
- package/dist/admin/Layout-DQ36VXiH.mjs.map +0 -1
- package/dist/admin/ListPage-BLWQxrOV.js +0 -581
- package/dist/admin/ListPage-BLWQxrOV.js.map +0 -1
- package/dist/admin/ListPage-BOoH_oks.mjs +0 -11
- package/dist/admin/ListPage-BOoH_oks.mjs.map +0 -1
- package/dist/admin/ListPage-BuglugGG.js +0 -296
- package/dist/admin/ListPage-BuglugGG.js.map +0 -1
- package/dist/admin/ListPage-C8ITVaku.mjs +0 -553
- package/dist/admin/ListPage-C8ITVaku.mjs.map +0 -1
- package/dist/admin/ListPage-D5Pr3mIA.js +0 -15
- package/dist/admin/ListPage-D5Pr3mIA.js.map +0 -1
- package/dist/admin/ListPage-D7Qlkk9D.mjs +0 -271
- package/dist/admin/ListPage-D7Qlkk9D.mjs.map +0 -1
- package/dist/admin/ListPage-DDML0hej.mjs +0 -355
- package/dist/admin/ListPage-DDML0hej.mjs.map +0 -1
- package/dist/admin/ListPage-DWol3DVZ.mjs +0 -477
- package/dist/admin/ListPage-DWol3DVZ.mjs.map +0 -1
- package/dist/admin/ListPage-Db_wvfYm.js +0 -380
- package/dist/admin/ListPage-Db_wvfYm.js.map +0 -1
- package/dist/admin/ListPage-DysJaP5_.js +0 -505
- package/dist/admin/ListPage-DysJaP5_.js.map +0 -1
- package/dist/admin/ListView-BNaDzPLr.mjs +0 -211
- package/dist/admin/ListView-BNaDzPLr.mjs.map +0 -1
- package/dist/admin/ListView-BdD6RHIQ.js +0 -226
- package/dist/admin/ListView-BdD6RHIQ.js.map +0 -1
- package/dist/admin/ListView-CBYpU5Jy.js +0 -237
- package/dist/admin/ListView-CBYpU5Jy.js.map +0 -1
- package/dist/admin/ListView-DBC2WBLc.mjs +0 -200
- package/dist/admin/ListView-DBC2WBLc.mjs.map +0 -1
- package/dist/admin/Login-BTE_Cz9k.mjs +0 -31
- package/dist/admin/Login-BTE_Cz9k.mjs.map +0 -1
- package/dist/admin/Login-Dtjgq7f1.js +0 -35
- package/dist/admin/Login-Dtjgq7f1.js.map +0 -1
- package/dist/admin/MagicLinkEE-CtnFDrz0.mjs +0 -27
- package/dist/admin/MagicLinkEE-CtnFDrz0.mjs.map +0 -1
- package/dist/admin/MagicLinkEE-Pn36r5si.js +0 -31
- package/dist/admin/MagicLinkEE-Pn36r5si.js.map +0 -1
- package/dist/admin/MarketplacePage-CJLsg0_U.js +0 -1008
- package/dist/admin/MarketplacePage-CJLsg0_U.js.map +0 -1
- package/dist/admin/MarketplacePage-CU7NpjXy.mjs +0 -978
- package/dist/admin/MarketplacePage-CU7NpjXy.mjs.map +0 -1
- package/dist/admin/ModalForm-B9SUkQ1l.mjs +0 -23
- package/dist/admin/ModalForm-B9SUkQ1l.mjs.map +0 -1
- package/dist/admin/ModalForm-DukjfMMw.js +0 -28
- package/dist/admin/ModalForm-DukjfMMw.js.map +0 -1
- package/dist/admin/Ornaments-BFThxr2U.mjs +0 -209
- package/dist/admin/Ornaments-BFThxr2U.mjs.map +0 -1
- package/dist/admin/Ornaments-CID1aaLv.js +0 -214
- package/dist/admin/Ornaments-CID1aaLv.js.map +0 -1
- package/dist/admin/Permissions-Cmimrby0.js +0 -2063
- package/dist/admin/Permissions-Cmimrby0.js.map +0 -1
- package/dist/admin/Permissions-gB8QZDch.mjs +0 -2027
- package/dist/admin/Permissions-gB8QZDch.mjs.map +0 -1
- package/dist/admin/PrivateRoute-DIxYvSni.mjs +0 -20
- package/dist/admin/PrivateRoute-DIxYvSni.mjs.map +0 -1
- package/dist/admin/PrivateRoute-qahg_uiu.js +0 -22
- package/dist/admin/PrivateRoute-qahg_uiu.js.map +0 -1
- package/dist/admin/ProfilePage-B04OT5Fd.js +0 -415
- package/dist/admin/ProfilePage-B04OT5Fd.js.map +0 -1
- package/dist/admin/ProfilePage-CQG9YVzy.mjs +0 -387
- package/dist/admin/ProfilePage-CQG9YVzy.mjs.map +0 -1
- package/dist/admin/PurchaseAuditLogs-DXQrXdue.js +0 -53
- package/dist/admin/PurchaseAuditLogs-DXQrXdue.js.map +0 -1
- package/dist/admin/PurchaseAuditLogs-DjHXN1Tz.mjs +0 -49
- package/dist/admin/PurchaseAuditLogs-DjHXN1Tz.mjs.map +0 -1
- package/dist/admin/PurchaseContentHistory-DU8CdwGr.mjs +0 -52
- package/dist/admin/PurchaseContentHistory-DU8CdwGr.mjs.map +0 -1
- package/dist/admin/PurchaseContentHistory-jwPqZsuh.js +0 -56
- package/dist/admin/PurchaseContentHistory-jwPqZsuh.js.map +0 -1
- package/dist/admin/PurchaseSingleSignOn-CH-Lyjo5.js +0 -56
- package/dist/admin/PurchaseSingleSignOn-CH-Lyjo5.js.map +0 -1
- package/dist/admin/PurchaseSingleSignOn-DGbdGoUi.mjs +0 -52
- package/dist/admin/PurchaseSingleSignOn-DGbdGoUi.mjs.map +0 -1
- package/dist/admin/RelativeTime-BGJ1PWx_.mjs +0 -38
- package/dist/admin/RelativeTime-BGJ1PWx_.mjs.map +0 -1
- package/dist/admin/RelativeTime-DPLD3wf-.js +0 -60
- package/dist/admin/RelativeTime-DPLD3wf-.js.map +0 -1
- package/dist/admin/SSOProviders-BD7LHrkI.mjs +0 -58
- package/dist/admin/SSOProviders-BD7LHrkI.mjs.map +0 -1
- package/dist/admin/SSOProviders-nCeEldEQ.js +0 -60
- package/dist/admin/SSOProviders-nCeEldEQ.js.map +0 -1
- package/dist/admin/SelectRoles-CntZtdE0.js +0 -115
- package/dist/admin/SelectRoles-CntZtdE0.js.map +0 -1
- package/dist/admin/SelectRoles-pO8L3L4W.mjs +0 -111
- package/dist/admin/SelectRoles-pO8L3L4W.mjs.map +0 -1
- package/dist/admin/SingleSignOnPage-BTbCQg8m.js +0 -264
- package/dist/admin/SingleSignOnPage-BTbCQg8m.js.map +0 -1
- package/dist/admin/SingleSignOnPage-pdSopNwV.mjs +0 -239
- package/dist/admin/SingleSignOnPage-pdSopNwV.mjs.map +0 -1
- package/dist/admin/Table-Bnd3rC9d.mjs +0 -145
- package/dist/admin/Table-Bnd3rC9d.mjs.map +0 -1
- package/dist/admin/Table-DC1N5uDu.js +0 -147
- package/dist/admin/Table-DC1N5uDu.js.map +0 -1
- package/dist/admin/Theme-CTMU9Z8I.mjs +0 -1434
- package/dist/admin/Theme-CTMU9Z8I.mjs.map +0 -1
- package/dist/admin/Theme-DWGZX5tv.js +0 -1513
- package/dist/admin/Theme-DWGZX5tv.js.map +0 -1
- package/dist/admin/TokenTypeSelect-CfyMCrlm.mjs +0 -374
- package/dist/admin/TokenTypeSelect-CfyMCrlm.mjs.map +0 -1
- package/dist/admin/TokenTypeSelect-Db3aYBYl.js +0 -402
- package/dist/admin/TokenTypeSelect-Db3aYBYl.js.map +0 -1
- package/dist/admin/UseCasePage-BZYK5NSZ.js +0 -161
- package/dist/admin/UseCasePage-BZYK5NSZ.js.map +0 -1
- package/dist/admin/UseCasePage-DNAHJWv5.mjs +0 -135
- package/dist/admin/UseCasePage-DNAHJWv5.mjs.map +0 -1
- package/dist/admin/admin-DOzK8yjX.mjs +0 -322
- package/dist/admin/admin-DOzK8yjX.mjs.map +0 -1
- package/dist/admin/admin-DRnq5SAg.js +0 -343
- package/dist/admin/admin-DRnq5SAg.js.map +0 -1
- package/dist/admin/apiTokens-ByCd8ZnO.mjs +0 -57
- package/dist/admin/apiTokens-ByCd8ZnO.mjs.map +0 -1
- package/dist/admin/apiTokens-rbJHW5Y2.js +0 -63
- package/dist/admin/apiTokens-rbJHW5Y2.js.map +0 -1
- package/dist/admin/ar-B4qxeRNq.mjs +0 -832
- package/dist/admin/ar-CzJtN9ZR.js +0 -853
- package/dist/admin/ca-BQmZwkyJ.js +0 -538
- package/dist/admin/ca-BQmZwkyJ.js.map +0 -1
- package/dist/admin/ca-CNWrv4Mk.mjs +0 -520
- package/dist/admin/constants-CRj0ViV1.mjs +0 -5
- package/dist/admin/constants-CRj0ViV1.mjs.map +0 -1
- package/dist/admin/constants-DF68OPrs.js +0 -8
- package/dist/admin/constants-DF68OPrs.js.map +0 -1
- package/dist/admin/constants-DJL6QsIz.js +0 -55
- package/dist/admin/constants-DJL6QsIz.js.map +0 -1
- package/dist/admin/constants-Dxi38yo0.mjs +0 -51
- package/dist/admin/constants-Dxi38yo0.mjs.map +0 -1
- package/dist/admin/cs-DeS9DzIq.js +0 -179
- package/dist/admin/cs-DrRkodPD.mjs +0 -166
- package/dist/admin/de-CxVS71Os.js +0 -532
- package/dist/admin/de-D0NA2abW.mjs +0 -514
- package/dist/admin/dk-B-52bH2A.js +0 -452
- package/dist/admin/dk-BhJUQEKK.mjs +0 -434
- package/dist/admin/en-GB-BHA-Obg7.js +0 -10
- package/dist/admin/en-GB-BHA-Obg7.js.map +0 -1
- package/dist/admin/en-GB-ohKGx5-8.mjs +0 -6
- package/dist/admin/en-GB-ohKGx5-8.mjs.map +0 -1
- package/dist/admin/en-HhkCMXdW.mjs +0 -782
- package/dist/admin/en-aGYWBxXH.js +0 -804
- package/dist/admin/es-D3FlHFx3.js +0 -622
- package/dist/admin/es-YUiY80mn.mjs +0 -602
- package/dist/admin/eu-DIDTb1Xq.js +0 -645
- package/dist/admin/eu-DIDTb1Xq.js.map +0 -1
- package/dist/admin/eu-wKHkhamJ.mjs +0 -625
- package/dist/admin/fr-CQtzdQWu.mjs +0 -581
- package/dist/admin/fr-DrIHgYTT.js +0 -603
- package/dist/admin/gu-CSS25C49.mjs +0 -429
- package/dist/admin/gu-Hc5YzUuw.js +0 -438
- package/dist/admin/he-CR3FKaSH.mjs +0 -315
- package/dist/admin/he-jthbtjhf.js +0 -329
- package/dist/admin/he-jthbtjhf.js.map +0 -1
- package/dist/admin/hi-CRUIUVKR.mjs +0 -519
- package/dist/admin/hi-Dd3AL7Vo.js +0 -537
- package/dist/admin/hi-Dd3AL7Vo.js.map +0 -1
- package/dist/admin/hu-BqsNBMOK.mjs +0 -625
- package/dist/admin/hu-Dy6tJonx.js +0 -645
- package/dist/admin/hu-Dy6tJonx.js.map +0 -1
- package/dist/admin/id-BX77nhRG.js +0 -303
- package/dist/admin/id-cH3Ovozx.mjs +0 -290
- package/dist/admin/index-BSJxpmc1.mjs +0 -5391
- package/dist/admin/index-BSJxpmc1.mjs.map +0 -1
- package/dist/admin/index-CydVsgIb.js +0 -5465
- package/dist/admin/index-CydVsgIb.js.map +0 -1
- package/dist/admin/it-BFsCRAiv.js +0 -312
- package/dist/admin/it-D236xPzE.mjs +0 -299
- package/dist/admin/ja-CD7DxKrd.mjs +0 -434
- package/dist/admin/ja-DeeXToB8.js +0 -452
- package/dist/admin/ko-CgT83B4e.mjs +0 -433
- package/dist/admin/ko-DQ16dRok.js +0 -451
- package/dist/admin/ml-BJMvJbX5.mjs +0 -519
- package/dist/admin/ml-D3lcQ9Qh.js +0 -537
- package/dist/admin/ms-C-JB0-h1.js +0 -213
- package/dist/admin/ms-eMDSLvhl.mjs +0 -200
- package/dist/admin/nl-CKIw7654.mjs +0 -621
- package/dist/admin/nl-DN7knmKC.js +0 -641
- package/dist/admin/no-B9qB0rWa.js +0 -313
- package/dist/admin/no-D6CAWjEU.mjs +0 -300
- package/dist/admin/pl-CdJxEUSA.js +0 -537
- package/dist/admin/pl-jPMrmdJq.mjs +0 -519
- package/dist/admin/pt-8dwKSOn3.mjs +0 -200
- package/dist/admin/pt-BR-DBqyMlGp.js +0 -608
- package/dist/admin/pt-BR-THVjG5z2.mjs +0 -588
- package/dist/admin/pt-CEcd6cjN.js +0 -212
- package/dist/admin/ru-C34i9wJx.mjs +0 -745
- package/dist/admin/ru-Dwf09uUc.js +0 -766
- package/dist/admin/sa-B2zR89DH.mjs +0 -519
- package/dist/admin/sa-B2zR89DH.mjs.map +0 -1
- package/dist/admin/sa-DDD2kxvP.js +0 -537
- package/dist/admin/sa-DDD2kxvP.js.map +0 -1
- package/dist/admin/selectors-BZApelK9.mjs +0 -6
- package/dist/admin/selectors-BZApelK9.mjs.map +0 -1
- package/dist/admin/selectors-BhMLvxvP.js +0 -8
- package/dist/admin/selectors-BhMLvxvP.js.map +0 -1
- package/dist/admin/sk-CbJVofN-.js +0 -503
- package/dist/admin/sk-DQ2qpsG2.mjs +0 -483
- package/dist/admin/sv-BqRXfruc.js +0 -640
- package/dist/admin/sv-D0vPVUAT.mjs +0 -620
- package/dist/admin/th-BG3IOCqV.mjs +0 -284
- package/dist/admin/th-CPx6wf0M.js +0 -297
- package/dist/admin/tr-BmV7At9f.mjs +0 -581
- package/dist/admin/tr-D8gIyQxv.js +0 -601
- package/dist/admin/transferTokens-AcbwoJPr.js +0 -76
- package/dist/admin/transferTokens-AcbwoJPr.js.map +0 -1
- package/dist/admin/transferTokens-CQP13miB.mjs +0 -69
- package/dist/admin/transferTokens-CQP13miB.mjs.map +0 -1
- package/dist/admin/uk-DHmepDW6.js +0 -214
- package/dist/admin/uk-DHmepDW6.js.map +0 -1
- package/dist/admin/uk-Ud9QNfkB.mjs +0 -201
- package/dist/admin/useAdminRoles-BqgYzxQp.js +0 -50
- package/dist/admin/useAdminRoles-BqgYzxQp.js.map +0 -1
- package/dist/admin/useAdminRoles-pTnwwZSZ.mjs +0 -28
- package/dist/admin/useAdminRoles-pTnwwZSZ.mjs.map +0 -1
- package/dist/admin/useEnterprise-BGzVPL4w.mjs +0 -28
- package/dist/admin/useEnterprise-BGzVPL4w.mjs.map +0 -1
- package/dist/admin/useEnterprise-ijNnK53J.js +0 -50
- package/dist/admin/useEnterprise-ijNnK53J.js.map +0 -1
- package/dist/admin/useLicenseLimitNotification-CAQIrlP4.mjs +0 -80
- package/dist/admin/useLicenseLimitNotification-CAQIrlP4.mjs.map +0 -1
- package/dist/admin/useLicenseLimitNotification-bcc8RZRX.js +0 -105
- package/dist/admin/useLicenseLimitNotification-bcc8RZRX.js.map +0 -1
- package/dist/admin/useLicenseLimits-73hrs_pV.js +0 -45
- package/dist/admin/useLicenseLimits-73hrs_pV.js.map +0 -1
- package/dist/admin/useLicenseLimits-CcOoSJ8p.mjs +0 -23
- package/dist/admin/useLicenseLimits-CcOoSJ8p.mjs.map +0 -1
- package/dist/admin/useOnce-C7EQufL3.js +0 -29
- package/dist/admin/useOnce-C7EQufL3.js.map +0 -1
- package/dist/admin/useOnce-NHeEacbN.mjs +0 -7
- package/dist/admin/useOnce-NHeEacbN.mjs.map +0 -1
- package/dist/admin/useWebhooks-PMmtSF2F.mjs +0 -93
- package/dist/admin/useWebhooks-PMmtSF2F.mjs.map +0 -1
- package/dist/admin/useWebhooks-oYy_qRlY.js +0 -95
- package/dist/admin/useWebhooks-oYy_qRlY.js.map +0 -1
- package/dist/admin/users-8N93LH7R.mjs +0 -30
- package/dist/admin/users-8N93LH7R.mjs.map +0 -1
- package/dist/admin/users-DaPfjlwf.js +0 -33
- package/dist/admin/users-DaPfjlwf.js.map +0 -1
- package/dist/admin/validation-BUsrO5hO.mjs +0 -43
- package/dist/admin/validation-BUsrO5hO.mjs.map +0 -1
- package/dist/admin/validation-B_Ec3vES.js +0 -65
- package/dist/admin/validation-B_Ec3vES.js.map +0 -1
- package/dist/admin/vi-CGrr4ioy.mjs +0 -187
- package/dist/admin/vi-UeRpPdvI.js +0 -200
- package/dist/admin/zh-AMwNTzOa.js +0 -642
- package/dist/admin/zh-DtDdEUIE.mjs +0 -622
- package/dist/admin/zh-Hans-B34a3f93.js +0 -737
- package/dist/admin/zh-Hans-DrZal35c.mjs +0 -716
- package/dist/package.json.d.ts +0 -193
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Theme-CDaBfQ-7.mjs","sources":["../../../admin/src/core/apis/rbac.ts","../../../admin/src/components/Context.tsx","../../../admin/src/core/store/hooks.ts","../../../admin/src/features/StrapiApp.tsx","../../../admin/src/hooks/useQueryParams.ts","../../../admin/src/reducer.ts","../../../admin/src/services/auth.ts","../../../admin/src/features/Auth.tsx","../../../admin/src/features/Notifications.tsx","../../../admin/src/utils/getPrefixedId.ts","../../../admin/src/utils/normalizeAPIError.ts","../../../admin/src/utils/objects.ts","../../../admin/src/hooks/useAPIErrorHandler.ts","../../../admin/src/components/PageHelpers.tsx","../../../admin/src/utils/once.ts","../../../admin/src/utils/strings.ts","../../../admin/src/hooks/usePrev.ts","../../../admin/src/hooks/useRBAC.ts","../../../admin/src/features/AppInfo.tsx","../../../admin/src/features/Tracking.tsx","../../../admin/src/features/Configuration.tsx","../../../admin/src/components/GuidedTour/Provider.tsx","../../../admin/src/components/LanguageProvider.tsx","../../../admin/src/components/Theme.tsx"],"sourcesContent":["import { Location } from 'react-router-dom';\n\nimport type { Permission, User } from '../../features/Auth';\n\ninterface RBACContext extends Pick<Location, 'pathname' | 'search'> {\n /**\n * The current user.\n */\n user?: User;\n /**\n * The permissions of the current user.\n */\n permissions: Permission[];\n}\n\ninterface RBACMiddleware {\n (\n ctx: RBACContext\n ): (\n next: (permissions: Permission[]) => Promise<Permission[]> | Permission[]\n ) => (permissions: Permission[]) => Promise<Permission[]> | Permission[];\n}\n\nclass RBAC {\n private middlewares: RBACMiddleware[] = [];\n\n constructor() {}\n\n use(middleware: RBACMiddleware[]): void;\n use(middleware: RBACMiddleware): void;\n use(middleware: RBACMiddleware | RBACMiddleware[]): void {\n if (Array.isArray(middleware)) {\n this.middlewares.push(...middleware);\n } else {\n this.middlewares.push(middleware);\n }\n }\n\n run = async (ctx: RBACContext, permissions: Permission[]): Promise<Permission[]> => {\n let index = 0;\n\n const middlewaresToRun = this.middlewares.map((middleware) => middleware(ctx));\n\n const next = async (permissions: Permission[]) => {\n if (index < this.middlewares.length) {\n return middlewaresToRun[index++](next)(permissions);\n }\n\n return permissions;\n };\n\n return next(permissions);\n };\n}\n\nexport { RBAC };\nexport type { RBACMiddleware, RBACContext };\n","import * as React from 'react';\n\nimport * as ContextSelector from 'use-context-selector';\n\n/**\n * @experimental\n * @description Create a context provider and a hook to consume the context.\n *\n * @warning this may be removed to the design-system instead of becoming stable.\n */\nfunction createContext<ContextValueType extends object | null>(\n rootComponentName: string,\n defaultContext?: ContextValueType\n) {\n const Context = ContextSelector.createContext<ContextValueType | undefined>(defaultContext);\n\n const Provider = (props: ContextValueType & { children: React.ReactNode }) => {\n const { children, ...context } = props;\n // Only re-memoize when prop values change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const value = React.useMemo(() => context, Object.values(context)) as ContextValueType;\n\n return <Context.Provider value={value}>{children}</Context.Provider>;\n };\n\n function useContext<Selected>(\n consumerName: string,\n selector: (value: ContextValueType) => Selected\n ): Selected {\n return ContextSelector.useContextSelector(Context, (ctx) => {\n if (ctx) return selector(ctx);\n // it's a required context.\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n });\n }\n\n Provider.displayName = rootComponentName + 'Provider';\n\n return [Provider, useContext] as const;\n}\n\nexport { createContext };\n","import { createSelector, Selector } from '@reduxjs/toolkit';\nimport { useDispatch, useStore, TypedUseSelectorHook, useSelector } from 'react-redux';\n\nimport type { RootState, Store } from './configure';\n\ntype AppDispatch = Store['dispatch'];\n\nconst useTypedDispatch: () => AppDispatch = useDispatch;\nconst useTypedStore = useStore as () => Store;\nconst useTypedSelector: TypedUseSelectorHook<RootState> = useSelector;\n\nconst createTypedSelector = <TResult>(selector: Selector<RootState, TResult>) =>\n createSelector((state: RootState) => state, selector);\n\nexport { useTypedDispatch, useTypedStore, useTypedSelector, createTypedSelector };\n","import { createContext } from '../components/Context';\nimport { RBAC } from '../core/apis/rbac';\nimport { Router } from '../core/apis/router';\n\nimport type { StrapiApp } from '../StrapiApp';\n\n/* -------------------------------------------------------------------------------------------------\n * StrapiApp\n * -----------------------------------------------------------------------------------------------*/\ninterface StrapiAppContextValue\n extends Pick<\n StrapiApp,\n | 'customFields'\n | 'getPlugin'\n | 'getAdminInjectedComponents'\n | 'plugins'\n | 'runHookParallel'\n | 'runHookSeries'\n >,\n Pick<Router, 'menu' | 'settings'> {\n components: StrapiApp['library']['components'];\n fields: StrapiApp['library']['fields'];\n rbac: RBAC;\n runHookWaterfall: <TData>(\n name: Parameters<StrapiApp['runHookWaterfall']>[0],\n initialValue: TData\n ) => TData;\n}\n\nconst [StrapiAppProvider, useStrapiApp] = createContext<StrapiAppContextValue>('StrapiApp');\n\nexport { StrapiAppProvider, useStrapiApp };\nexport type { StrapiAppContextValue };\n","import { useCallback, useMemo } from 'react';\n\nimport { parse, stringify } from 'qs';\nimport { useNavigate, useLocation } from 'react-router-dom';\n\nconst useQueryParams = <TQuery extends object>(initialParams?: TQuery) => {\n const { search } = useLocation();\n const navigate = useNavigate();\n\n const query = useMemo(() => {\n // TODO: investigate why sometimes we're getting the search with a leading `?` and sometimes not.\n const searchQuery = search.startsWith('?') ? search.slice(1) : search;\n if (!search && initialParams) {\n return initialParams;\n }\n\n return { ...initialParams, ...parse(searchQuery) } as TQuery;\n }, [search, initialParams]);\n\n const setQuery = useCallback(\n (nextParams: TQuery, method: 'push' | 'remove' = 'push', replace = false) => {\n let nextQuery = { ...query };\n\n if (method === 'remove') {\n Object.keys(nextParams).forEach((key) => {\n if (Object.prototype.hasOwnProperty.call(nextQuery, key)) {\n // @ts-expect-error – this is fine, if you want to fix it, please do.\n delete nextQuery[key];\n }\n });\n } else {\n nextQuery = { ...query, ...nextParams };\n }\n\n navigate({ search: stringify(nextQuery, { encode: false }) }, { replace });\n },\n [navigate, query]\n );\n\n return [{ query, rawQuery: search }, setQuery] as const;\n};\n\nexport { useQueryParams };\n","import { createSlice } from '@reduxjs/toolkit';\n\nimport { PermissionMap } from './types/permissions';\n\nimport type { PayloadAction } from '@reduxjs/toolkit';\n\ntype ThemeName = 'light' | 'dark' | 'system';\n\ninterface AppState {\n language: {\n locale: string;\n localeNames: Record<string, string>;\n };\n permissions: Partial<PermissionMap>;\n theme: {\n currentTheme: ThemeName;\n availableThemes: string[];\n };\n token?: string | null;\n}\n\nconst STORAGE_KEYS = {\n TOKEN: 'jwtToken',\n USER: 'userInfo',\n};\n\nconst THEME_LOCAL_STORAGE_KEY = 'STRAPI_THEME';\nconst LANGUAGE_LOCAL_STORAGE_KEY = 'strapi-admin-language';\n\nexport const getStoredToken = (): string | null => {\n const token =\n localStorage.getItem(STORAGE_KEYS.TOKEN) ?? sessionStorage.getItem(STORAGE_KEYS.TOKEN);\n\n if (typeof token === 'string') {\n return JSON.parse(token);\n }\n\n return null;\n};\n\nconst adminSlice = createSlice({\n name: 'admin',\n initialState: () => {\n return {\n language: {\n locale: 'en',\n localeNames: { en: 'English' },\n },\n permissions: {},\n theme: {\n availableThemes: [],\n currentTheme: localStorage.getItem(THEME_LOCAL_STORAGE_KEY) || 'system',\n },\n token: null,\n } as AppState;\n },\n reducers: {\n setAppTheme(state, action: PayloadAction<ThemeName>) {\n state.theme.currentTheme = action.payload;\n window.localStorage.setItem(THEME_LOCAL_STORAGE_KEY, action.payload);\n },\n setAvailableThemes(state, action: PayloadAction<AppState['theme']['availableThemes']>) {\n state.theme.availableThemes = action.payload;\n },\n setLocale(state, action: PayloadAction<string>) {\n state.language.locale = action.payload;\n\n window.localStorage.setItem(LANGUAGE_LOCAL_STORAGE_KEY, action.payload);\n document.documentElement.setAttribute('lang', action.payload);\n },\n setToken(state, action: PayloadAction<string | null>) {\n state.token = action.payload;\n },\n login(state, action: PayloadAction<{ token: string; persist?: boolean }>) {\n const { token, persist } = action.payload;\n\n if (!persist) {\n window.sessionStorage.setItem(STORAGE_KEYS.TOKEN, JSON.stringify(token));\n } else {\n window.localStorage.setItem(STORAGE_KEYS.TOKEN, JSON.stringify(token));\n }\n\n state.token = token;\n },\n logout(state) {\n state.token = null;\n window.localStorage.removeItem(STORAGE_KEYS.TOKEN);\n window.localStorage.removeItem(STORAGE_KEYS.USER);\n window.sessionStorage.removeItem(STORAGE_KEYS.TOKEN);\n window.sessionStorage.removeItem(STORAGE_KEYS.USER);\n },\n },\n});\n\nconst reducer = adminSlice.reducer;\n\nexport const { setAppTheme, setAvailableThemes, setLocale, setToken, logout, login } =\n adminSlice.actions;\n\nexport { reducer, THEME_LOCAL_STORAGE_KEY, LANGUAGE_LOCAL_STORAGE_KEY };\nexport type { AppState, ThemeName };\n","import { ProvidersOptions } from '../../../shared/contracts/admin';\nimport {\n type RenewToken,\n type Login,\n type ResetPassword,\n type RegisterAdmin,\n type Register,\n type RegistrationInfo,\n ForgotPassword,\n} from '../../../shared/contracts/authentication';\nimport { Check } from '../../../shared/contracts/permissions';\nimport { GetProviders, IsSSOLocked } from '../../../shared/contracts/providers';\nimport { type GetOwnPermissions, type GetMe, type UpdateMe } from '../../../shared/contracts/users';\n\nimport { adminApi } from './api';\n\nconst authService = adminApi\n .enhanceEndpoints({\n addTagTypes: ['User', 'Me', 'ProvidersOptions'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n /**\n * ME\n */\n getMe: builder.query<GetMe.Response['data'], void>({\n query: () => ({\n method: 'GET',\n url: '/admin/users/me',\n }),\n transformResponse(res: GetMe.Response) {\n return res.data;\n },\n providesTags: (res) => (res ? ['Me', { type: 'User', id: res.id }] : ['Me']),\n }),\n getMyPermissions: builder.query<GetOwnPermissions.Response['data'], void>({\n query: () => ({\n method: 'GET',\n url: '/admin/users/me/permissions',\n }),\n transformResponse(res: GetOwnPermissions.Response) {\n return res.data;\n },\n }),\n updateMe: builder.mutation<UpdateMe.Response['data'], UpdateMe.Request['body']>({\n query: (body) => ({\n method: 'PUT',\n url: '/admin/users/me',\n data: body,\n }),\n transformResponse(res: UpdateMe.Response) {\n return res.data;\n },\n invalidatesTags: ['Me'],\n }),\n /**\n * Permissions\n */\n checkPermissions: builder.query<Check.Response, Check.Request['body']>({\n query: (permissions) => ({\n method: 'POST',\n url: '/admin/permissions/check',\n data: permissions,\n }),\n }),\n /**\n * Auth methods\n */\n login: builder.mutation<Login.Response['data'], Login.Request['body']>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/login',\n data: body,\n }),\n transformResponse(res: Login.Response) {\n return res.data;\n },\n invalidatesTags: ['Me'],\n }),\n logout: builder.mutation<void, void>({\n query: () => ({\n method: 'POST',\n url: '/admin/logout',\n }),\n }),\n resetPassword: builder.mutation<\n ResetPassword.Response['data'],\n ResetPassword.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/reset-password',\n data: body,\n }),\n transformResponse(res: ResetPassword.Response) {\n return res.data;\n },\n }),\n renewToken: builder.mutation<RenewToken.Response['data'], RenewToken.Request['body']>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/renew-token',\n data: body,\n }),\n transformResponse(res: RenewToken.Response) {\n return res.data;\n },\n }),\n getRegistrationInfo: builder.query<\n RegistrationInfo.Response['data'],\n RegistrationInfo.Request['query']['registrationToken']\n >({\n query: (registrationToken) => ({\n url: '/admin/registration-info',\n method: 'GET',\n config: {\n params: {\n registrationToken,\n },\n },\n }),\n transformResponse(res: RegistrationInfo.Response) {\n return res.data;\n },\n }),\n registerAdmin: builder.mutation<\n RegisterAdmin.Response['data'],\n RegisterAdmin.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/register-admin',\n data: body,\n }),\n transformResponse(res: RegisterAdmin.Response) {\n return res.data;\n },\n }),\n registerUser: builder.mutation<Register.Response['data'], Register.Request['body']>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/register',\n data: body,\n }),\n transformResponse(res: Register.Response) {\n return res.data;\n },\n }),\n forgotPassword: builder.mutation<ForgotPassword.Response, ForgotPassword.Request['body']>({\n query: (body) => ({\n url: '/admin/forgot-password',\n method: 'POST',\n data: body,\n }),\n }),\n isSSOLocked: builder.query<IsSSOLocked.Response['data'], void>({\n query: () => ({\n url: '/admin/providers/isSSOLocked',\n method: 'GET',\n }),\n transformResponse(res: IsSSOLocked.Response) {\n return res.data;\n },\n }),\n getProviders: builder.query<GetProviders.Response, void>({\n query: () => ({\n url: '/admin/providers',\n method: 'GET',\n }),\n }),\n getProviderOptions: builder.query<ProvidersOptions.Response['data'], void>({\n query: () => ({\n url: '/admin/providers/options',\n method: 'GET',\n }),\n transformResponse(res: ProvidersOptions.Response) {\n return res.data;\n },\n providesTags: ['ProvidersOptions'],\n }),\n updateProviderOptions: builder.mutation<\n ProvidersOptions.Response['data'],\n ProvidersOptions.Request['body']\n >({\n query: (body) => ({\n url: '/admin/providers/options',\n method: 'PUT',\n data: body,\n }),\n transformResponse(res: ProvidersOptions.Response) {\n return res.data;\n },\n invalidatesTags: ['ProvidersOptions'],\n }),\n }),\n overrideExisting: false,\n });\n\nconst {\n useCheckPermissionsQuery,\n useLazyCheckPermissionsQuery,\n useGetMeQuery,\n useLoginMutation,\n useRenewTokenMutation,\n useLogoutMutation,\n useUpdateMeMutation,\n useResetPasswordMutation,\n useRegisterAdminMutation,\n useRegisterUserMutation,\n useGetRegistrationInfoQuery,\n useForgotPasswordMutation,\n useGetMyPermissionsQuery,\n useIsSSOLockedQuery,\n useGetProvidersQuery,\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n} = authService;\n\nexport {\n useCheckPermissionsQuery,\n useLazyCheckPermissionsQuery,\n useGetMeQuery,\n useLoginMutation,\n useRenewTokenMutation,\n useLogoutMutation,\n useUpdateMeMutation,\n useResetPasswordMutation,\n useRegisterAdminMutation,\n useRegisterUserMutation,\n useGetRegistrationInfoQuery,\n useForgotPasswordMutation,\n useGetMyPermissionsQuery,\n useIsSSOLockedQuery,\n useGetProvidersQuery,\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n};\n","import * as React from 'react';\n\nimport { useLocation, useNavigate } from 'react-router-dom';\n\nimport { Login } from '../../../shared/contracts/authentication';\nimport { createContext } from '../components/Context';\nimport { useTypedDispatch, useTypedSelector } from '../core/store/hooks';\nimport { useStrapiApp } from '../features/StrapiApp';\nimport { useQueryParams } from '../hooks/useQueryParams';\nimport { login as loginAction, logout as logoutAction, setLocale } from '../reducer';\nimport { adminApi } from '../services/api';\nimport {\n useGetMeQuery,\n useGetMyPermissionsQuery,\n useLazyCheckPermissionsQuery,\n useLoginMutation,\n useLogoutMutation,\n useRenewTokenMutation,\n} from '../services/auth';\n\nimport type {\n Permission as PermissionContract,\n SanitizedAdminUser,\n} from '../../../shared/contracts/shared';\n\ninterface Permission\n extends Pick<PermissionContract, 'action' | 'subject'>,\n Partial<Omit<PermissionContract, 'action' | 'subject'>> {}\n\ninterface User\n extends Pick<SanitizedAdminUser, 'email' | 'firstname' | 'lastname' | 'username' | 'roles'>,\n Partial<Omit<SanitizedAdminUser, 'email' | 'firstname' | 'lastname' | 'username' | 'roles'>> {}\n\ninterface AuthContextValue {\n login: (\n body: Login.Request['body'] & { rememberMe: boolean }\n ) => Promise<Awaited<ReturnType<ReturnType<typeof useLoginMutation>[0]>>>;\n logout: () => Promise<void>;\n /**\n * @alpha\n * @description given a list of permissions, this function checks\n * those against the current user's permissions or those passed as\n * the second argument, if the user has those permissions the complete\n * permission object form the API is returned. Therefore, if the list is\n * empty, the user does not have any of those permissions.\n */\n checkUserHasPermissions: (\n permissions?: Permission[],\n passedPermissions?: Permission[],\n rawQueryContext?: string\n ) => Promise<Permission[]>;\n isLoading: boolean;\n permissions: Permission[];\n refetchPermissions: () => Promise<void>;\n token: string | null;\n user?: User;\n}\n\nconst [Provider, useAuth] = createContext<AuthContextValue>('Auth');\n\ninterface AuthProviderProps {\n children: React.ReactNode;\n /**\n * @internal could be removed at any time.\n */\n _defaultPermissions?: Permission[];\n\n // NOTE: this is used for testing purposed only\n _disableRenewToken?: boolean;\n}\n\nconst STORAGE_KEYS = {\n TOKEN: 'jwtToken',\n USER: 'userInfo',\n};\n\nconst AuthProvider = ({\n children,\n _defaultPermissions = [],\n _disableRenewToken = false,\n}: AuthProviderProps) => {\n const dispatch = useTypedDispatch();\n const runRbacMiddleware = useStrapiApp('AuthProvider', (state) => state.rbac.run);\n const location = useLocation();\n const [{ rawQuery }] = useQueryParams();\n\n const token = useTypedSelector((state) => state.admin_app.token ?? null);\n\n const { data: user, isLoading: isLoadingUser } = useGetMeQuery(undefined, {\n /**\n * If there's no token, we don't try to fetch\n * the user data because it will fail.\n */\n skip: !token,\n });\n\n const {\n data: userPermissions = _defaultPermissions,\n refetch,\n isUninitialized,\n isLoading: isLoadingPermissions,\n } = useGetMyPermissionsQuery(undefined, {\n skip: !token,\n });\n\n const navigate = useNavigate();\n\n const [loginMutation] = useLoginMutation();\n const [renewTokenMutation] = useRenewTokenMutation();\n const [logoutMutation] = useLogoutMutation();\n\n const clearStateAndLogout = React.useCallback(() => {\n dispatch(adminApi.util.resetApiState());\n dispatch(logoutAction());\n navigate('/auth/login');\n }, [dispatch, navigate]);\n\n /**\n * Fetch data from storages on mount and store it in our state.\n * It's not normally stored in session storage unless the user\n * does click \"remember me\" when they login. We also need to renew the token.\n */\n React.useEffect(() => {\n if (token && !_disableRenewToken) {\n renewTokenMutation({ token }).then((res) => {\n if ('data' in res) {\n dispatch(\n loginAction({\n token: res.data.token,\n })\n );\n } else {\n clearStateAndLogout();\n }\n });\n }\n }, [token, dispatch, renewTokenMutation, clearStateAndLogout, _disableRenewToken]);\n\n React.useEffect(() => {\n if (user) {\n if (user.preferedLanguage) {\n dispatch(setLocale(user.preferedLanguage));\n }\n }\n }, [dispatch, user]);\n\n React.useEffect(() => {\n /**\n * This will log a user out of all tabs if they log out in one tab.\n */\n const handleUserStorageChange = (event: StorageEvent) => {\n if (event.key === STORAGE_KEYS.USER && event.newValue === null) {\n clearStateAndLogout();\n }\n };\n\n window.addEventListener('storage', handleUserStorageChange);\n\n return () => {\n window.removeEventListener('storage', handleUserStorageChange);\n };\n });\n\n const login = React.useCallback<AuthContextValue['login']>(\n async ({ rememberMe, ...body }) => {\n const res = await loginMutation(body);\n\n /**\n * There will always be a `data` key in the response\n * because if something fails, it will throw an error.\n */\n if ('data' in res) {\n const { token } = res.data;\n\n dispatch(\n loginAction({\n token,\n persist: rememberMe,\n })\n );\n }\n\n return res;\n },\n [dispatch, loginMutation]\n );\n\n const logout = React.useCallback(async () => {\n await logoutMutation();\n clearStateAndLogout();\n }, [clearStateAndLogout, logoutMutation]);\n\n const refetchPermissions = React.useCallback(async () => {\n if (!isUninitialized) {\n await refetch();\n }\n }, [isUninitialized, refetch]);\n\n const [checkPermissions] = useLazyCheckPermissionsQuery();\n const checkUserHasPermissions: AuthContextValue['checkUserHasPermissions'] = React.useCallback(\n async (\n permissions,\n passedPermissions,\n // TODO:\n // Here we have parameterised checkUserHasPermissions in order to pass\n // query context from elsewhere in the application.\n // See packages/core/content-manager/admin/src/features/DocumentRBAC.tsx\n\n // This is in order to calculate permissions on accurate query params.\n // We should be able to rely on the query params in this provider\n // If we need to pass additional context to the RBAC middleware\n // we should define a better context type.\n rawQueryContext\n ) => {\n /**\n * If there's no permissions to check, then we allow it to\n * pass to preserve existing behaviours.\n *\n * TODO: should we review this? it feels more dangerous than useful.\n */\n if (!permissions || permissions.length === 0) {\n return [{ action: '', subject: '' }];\n }\n\n /**\n * Given the provided permissions, return the permissions from either passedPermissions\n * or userPermissions as this is expected to be the full permission entity.\n */\n const actualUserPermissions = passedPermissions ?? userPermissions;\n\n const matchingPermissions = actualUserPermissions.filter(\n (permission) =>\n permissions.findIndex(\n (perm) => perm.action === permission.action && perm.subject === permission.subject\n ) >= 0\n );\n\n const middlewaredPermissions = await runRbacMiddleware(\n {\n user,\n permissions: userPermissions,\n pathname: location.pathname,\n search: (rawQueryContext || rawQuery).split('?')[1] ?? '',\n },\n matchingPermissions\n );\n\n const shouldCheckConditions = middlewaredPermissions.some(\n (perm) => Array.isArray(perm.conditions) && perm.conditions.length > 0\n );\n\n if (!shouldCheckConditions) {\n return middlewaredPermissions;\n }\n\n const { data, error } = await checkPermissions({\n permissions: middlewaredPermissions.map((perm) => ({\n action: perm.action,\n subject: perm.subject,\n })),\n });\n\n if (error) {\n throw error;\n } else {\n return middlewaredPermissions.filter((_, index) => data?.data[index] === true);\n }\n },\n [checkPermissions, location.pathname, rawQuery, runRbacMiddleware, user, userPermissions]\n );\n\n const isLoading = isLoadingUser || isLoadingPermissions;\n\n return (\n <Provider\n token={token}\n user={user}\n login={login}\n logout={logout}\n permissions={userPermissions}\n checkUserHasPermissions={checkUserHasPermissions}\n refetchPermissions={refetchPermissions}\n isLoading={isLoading}\n >\n {children}\n </Provider>\n );\n};\n\nexport { AuthProvider, useAuth, STORAGE_KEYS };\nexport type { AuthContextValue, Permission, User };\n","import * as React from 'react';\n\nimport { Alert, AlertVariant, Flex, useCallbackRef, Link } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\ninterface NotificationLink {\n label: string;\n target?: string;\n url: string;\n}\n\ninterface NotificationConfig {\n blockTransition?: boolean;\n link?: NotificationLink;\n message?: string;\n onClose?: () => void;\n timeout?: number;\n title?: string;\n type?: 'info' | 'warning' | 'danger' | 'success';\n}\n\n/* -------------------------------------------------------------------------------------------------\n * Context\n * -----------------------------------------------------------------------------------------------*/\n\ninterface NotificationsContextValue {\n /**\n * Toggles a notification, wrapped in `useCallback` for a stable identity.\n */\n toggleNotification: (config: NotificationConfig) => void;\n}\n\nconst NotificationsContext = React.createContext<NotificationsContextValue>({\n toggleNotification: () => {},\n});\n\n/* -------------------------------------------------------------------------------------------------\n * Provider\n * -----------------------------------------------------------------------------------------------*/\n\ninterface NotificationsProviderProps {\n children: React.ReactNode;\n}\ninterface Notification extends NotificationConfig {\n id: number;\n}\n\n/**\n * @internal\n * @description DO NOT USE. This will be removed before stable release of v5.\n */\nconst NotificationsProvider = ({ children }: NotificationsProviderProps) => {\n const notificationIdRef = React.useRef(0);\n\n const [notifications, setNotifications] = React.useState<Notification[]>([]);\n\n const toggleNotification = React.useCallback(\n ({ type, message, link, timeout, blockTransition, onClose, title }: NotificationConfig) => {\n setNotifications((s) => [\n ...s,\n {\n id: notificationIdRef.current++,\n type,\n message,\n link,\n timeout,\n blockTransition,\n onClose,\n title,\n },\n ]);\n },\n []\n );\n\n const clearNotification = React.useCallback((id: number) => {\n setNotifications((s) => s.filter((n) => n.id !== id));\n }, []);\n\n const value = React.useMemo(() => ({ toggleNotification }), [toggleNotification]);\n\n return (\n <NotificationsContext.Provider value={value}>\n <Flex\n left=\"50%\"\n marginLeft=\"-250px\"\n position=\"fixed\"\n direction=\"column\"\n alignItems=\"stretch\"\n gap={2}\n top={`4.6rem`}\n width={`50rem`}\n zIndex=\"notification\"\n >\n {notifications.map((notification) => {\n return (\n <Notification\n key={notification.id}\n {...notification}\n clearNotification={clearNotification}\n />\n );\n })}\n </Flex>\n {children}\n </NotificationsContext.Provider>\n );\n};\n\ninterface NotificationProps extends Notification {\n clearNotification: (id: number) => void;\n}\n\nconst Notification = ({\n clearNotification,\n blockTransition = false,\n id,\n link,\n message,\n onClose,\n timeout = 2500,\n title,\n type,\n}: NotificationProps) => {\n const { formatMessage } = useIntl();\n /**\n * Chances are `onClose` won't be classed as stabilised,\n * so we use `useCallbackRef` to avoid make it stable.\n */\n const onCloseCallback = useCallbackRef(onClose);\n\n const handleClose = React.useCallback(() => {\n onCloseCallback();\n\n clearNotification(id);\n }, [clearNotification, id, onCloseCallback]);\n\n // eslint-disable-next-line consistent-return\n React.useEffect(() => {\n if (!blockTransition) {\n const timeoutReference = setTimeout(() => {\n handleClose();\n }, timeout);\n\n return () => {\n clearTimeout(timeoutReference);\n };\n }\n }, [blockTransition, handleClose, timeout]);\n\n let variant: AlertVariant;\n let alertTitle: string;\n\n if (type === 'info') {\n variant = 'default';\n alertTitle = formatMessage({\n id: 'notification.default.title',\n defaultMessage: 'Information:',\n });\n } else if (type === 'danger') {\n variant = 'danger';\n alertTitle = formatMessage({\n id: 'notification.warning.title',\n defaultMessage: 'Warning:',\n });\n } else if (type === 'warning') {\n variant = 'warning';\n alertTitle = formatMessage({\n id: 'notification.warning.title',\n defaultMessage: 'Warning:',\n });\n } else {\n variant = 'success';\n alertTitle = formatMessage({\n id: 'notification.success.title',\n defaultMessage: 'Success:',\n });\n }\n\n if (title) {\n alertTitle = title;\n }\n\n return (\n <Alert\n action={\n link ? (\n <Link href={link.url} isExternal>\n {link.label}\n </Link>\n ) : undefined\n }\n onClose={handleClose}\n closeLabel={formatMessage({\n id: 'global.close',\n defaultMessage: 'Close',\n })}\n title={alertTitle}\n variant={variant}\n >\n {message}\n </Alert>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Hook\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @preserve\n * @description Returns an object to interact with the notification\n * system. The callbacks are wrapped in `useCallback` for a stable\n * identity.\n *\n * @example\n * ```tsx\n * import { useNotification } from '@strapi/strapi/admin';\n *\n * const MyComponent = () => {\n * const { toggleNotification } = useNotification();\n *\n * return <button onClick={() => toggleNotification({ message: 'Hello world!' })}>Click me</button>;\n */\nconst useNotification = () => React.useContext(NotificationsContext);\n\nexport { NotificationsProvider, useNotification };\nexport type { NotificationConfig, NotificationsContextValue };\n","/**\n * Prefix message with 'apiError.'\n */\nexport function getPrefixedId(message: string, callback?: (prefixedMessage: string) => string) {\n const prefixedMessage = `apiError.${message}`;\n\n // if a prefix function has been passed in it is used to\n // prefix the id, e.g. to allow an error message to be\n // set only for a localization namespace\n if (typeof callback === 'function') {\n return callback(prefixedMessage);\n }\n\n return prefixedMessage;\n}\n","import { getPrefixedId } from './getPrefixedId';\n\nimport type { ApiError } from '../hooks/useAPIErrorHandler';\nimport type { FetchError } from '../utils/getFetchClient';\nimport type { errors } from '@strapi/utils';\n\nexport interface NormalizeErrorOptions {\n name?: string;\n intlMessagePrefixCallback?: (id: string) => string;\n}\n\ninterface NormalizeErrorReturn {\n id: string;\n defaultMessage: string;\n name?: string;\n values: Record<'path', string> | Record<string, never>;\n}\n\ninterface YupFormattedError {\n path: string[];\n message: string;\n name: string;\n value: string;\n}\n\nfunction normalizeError(\n error: ApiError | YupFormattedError,\n { name, intlMessagePrefixCallback }: NormalizeErrorOptions\n): NormalizeErrorReturn {\n const { message } = error;\n\n const normalizedError = {\n id: getPrefixedId(message, intlMessagePrefixCallback),\n defaultMessage: message,\n name: error.name ?? name,\n values: {},\n };\n\n if ('path' in error) {\n normalizedError.values = { path: error.path.join('.') };\n }\n\n return normalizedError;\n}\n\nconst validateErrorIsYupValidationError = (\n err: ApiError\n): err is errors.YupValidationError & { details: { errors: YupFormattedError[] } } =>\n typeof err.details === 'object' && err.details !== null && 'errors' in err.details;\n\n/**\n * Normalize the format of `ResponseError`\n * in places where the hook `useAPIErrorHandler` can not called\n * (e.g. outside of a React component).\n */\nexport function normalizeAPIError(\n apiError: FetchError,\n intlMessagePrefixCallback?: NormalizeErrorOptions['intlMessagePrefixCallback']\n):\n | NormalizeErrorReturn\n | { name: string; message: string | null; errors: NormalizeErrorReturn[] }\n | null {\n const error = apiError.response?.data?.error;\n\n if (error) {\n // some errors carry multiple errors (such as ValidationError)\n if (validateErrorIsYupValidationError(error)) {\n return {\n name: error.name,\n message: error?.message || null,\n errors: error.details.errors.map((err) =>\n normalizeError(err, { name: error.name, intlMessagePrefixCallback })\n ),\n };\n }\n return normalizeError(error, { intlMessagePrefixCallback });\n }\n\n return null;\n}\n","import clone from 'lodash/clone';\nimport toPath from 'lodash/toPath';\n\n/**\n * Deeply get a value from an object via its path.\n */\nexport function getIn(obj: any, key: string | string[], def?: any, pathStartIndex: number = 0) {\n const path = toPath(key);\n while (obj && pathStartIndex < path.length) {\n obj = obj[path[pathStartIndex++]];\n }\n\n // check if path is not in the end\n if (pathStartIndex !== path.length && !obj) {\n return def;\n }\n\n return obj === undefined ? def : obj;\n}\n\n/** @internal is the given object an Object? */\nexport const isObject = (obj: any): obj is object =>\n obj !== null && typeof obj === 'object' && !Array.isArray(obj);\n\n/** @internal is the given object an integer? */\nexport const isInteger = (obj: any): boolean => String(Math.floor(Number(obj))) === obj;\n\n/**\n * Deeply set a value from in object via its path. If the value at `path`\n * has changed, return a shallow copy of obj with `value` set at `path`.\n * If `value` has not changed, return the original `obj`.\n *\n * Existing objects / arrays along `path` are also shallow copied. Sibling\n * objects along path retain the same internal js reference. Since new\n * objects / arrays are only created along `path`, we can test if anything\n * changed in a nested structure by comparing the object's reference in\n * the old and new object, similar to how russian doll cache invalidation\n * works.\n *\n * In earlier versions of this function, which used cloneDeep, there were\n * issues whereby settings a nested value would mutate the parent\n * instead of creating a new object. `clone` avoids that bug making a\n * shallow copy of the objects along the update path\n * so no object is mutated in place.\n *\n * Before changing this function, please read through the following\n * discussions.\n *\n * @see https://github.com/developit/linkstate\n * @see https://github.com/jaredpalmer/formik/pull/123\n */\nexport function setIn(obj: any, path: string, value: any): any {\n const res: any = clone(obj); // this keeps inheritance when obj is a class\n let resVal: any = res;\n let i = 0;\n const pathArray = toPath(path);\n\n for (; i < pathArray.length - 1; i++) {\n const currentPath: string = pathArray[i];\n const currentObj: any = getIn(obj, pathArray.slice(0, i + 1));\n\n if (currentObj && (isObject(currentObj) || Array.isArray(currentObj))) {\n resVal = resVal[currentPath] = clone(currentObj);\n } else {\n const nextPath: string = pathArray[i + 1];\n resVal = resVal[currentPath] = isInteger(nextPath) && Number(nextPath) >= 0 ? [] : {};\n }\n }\n\n // Return original object if new value is the same as current\n if ((i === 0 ? obj : resVal)[pathArray[i]] === value) {\n return obj;\n }\n\n if (value === undefined) {\n delete resVal[pathArray[i]];\n } else {\n resVal[pathArray[i]] = value;\n }\n\n // If the path array has a single element, the loop did not run.\n // Deleting on `resVal` had no effect in this scenario, so we delete on the result instead.\n if (i === 0 && value === undefined) {\n delete res[pathArray[i]];\n }\n\n return res;\n}\n","import * as React from 'react';\n\nimport { IntlFormatters, useIntl } from 'react-intl';\n\nimport { FetchError, ApiError } from '../utils/getFetchClient';\nimport { getPrefixedId } from '../utils/getPrefixedId';\nimport { NormalizeErrorOptions, normalizeAPIError } from '../utils/normalizeAPIError';\nimport { setIn } from '../utils/objects';\n\ninterface UnknownApiError {\n /**\n * The name of the ApiError, is always a static value.\n */\n name: 'UnknownError';\n /**\n * The error message.\n */\n message: string;\n /**\n * The error details.\n */\n details?: unknown;\n /**\n * The HTTP status code of the error.\n */\n status?: number;\n}\n\n/**\n * The last item is the fallback error SerializedError which\n * typically comes from redux-toolkit itself.\n */\ninterface SerializedError {\n /**\n * The name of the error.\n */\n name?: string;\n /**\n * The error message that explains what went wrong.\n */\n message?: string;\n /**\n * The stack trace of the error.\n */\n stack?: string;\n /**\n * A specific error code associated with the error.\n */\n code?: string;\n}\n\n/**\n * These are the types or errors we return\n * from the redux-toolkit data-fetching setup.\n */\ntype BaseQueryError = ApiError | UnknownApiError | SerializedError;\n\ninterface YupFormattedError {\n /**\n * An array representing the path to the field where the validation error occurred.\n */\n path: string[];\n /**\n * The error message describing the validation failure.\n */\n message: string;\n /**\n * The name of the error, typically identifies the type of validation error that occurred.\n */\n name: string;\n\n value: string;\n}\n\n/**\n * @public\n * @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` ...)\nthat has been thrown.\n * @example\n * ```tsx\n * import * as React from 'react';\n * import { useFetchClient, useAPIErrorHandler, useNotification } from '@strapi/admin/admin';\n *\n * const MyComponent = () => {\n * const { get } = useFetchClient();\n * const { formatAPIError } = useAPIErrorHandler(getTrad);\n * const { toggleNotification } = useNotification();\n *\n * const handleDeleteItem = async () => {\n * try {\n * return await get('/admin');\n * } catch (error) {\n * toggleNotification({\n * type: 'danger',\n * message: formatAPIError(error),\n * });\n * }\n * };\n * return <button onClick={handleDeleteItem}>Delete item</button>;\n * };\n * ```\n */\nexport function useAPIErrorHandler(\n intlMessagePrefixCallback?: FormatAPIErrorOptions['intlMessagePrefixCallback']\n) {\n const { formatMessage } = useIntl();\n\n /**\n * @description This method try to normalize the passed error\n * and then call formatAPIError to stringify the ResponseObject\n * into a string. If it fails it will call formatFetchError and\n * return the error message.\n */\n const formatError = React.useCallback(\n (error: FetchError) => {\n // Try to normalize the passed error first. This will fail for e.g. network\n // errors which are thrown by fetchClient directly.\n try {\n const formattedErr = formatAPIError(error, { intlMessagePrefixCallback, formatMessage });\n\n if (!formattedErr) {\n return formatFetchError(error, { intlMessagePrefixCallback, formatMessage });\n }\n\n return formattedErr;\n } catch (_) {\n throw new Error('formatAPIError: Unknown error:', error);\n }\n },\n [formatMessage, intlMessagePrefixCallback]\n );\n\n return {\n /**\n * @alpha\n * Convert ValidationErrors from the API into an object that can be used by forms.\n */\n _unstableFormatValidationErrors: React.useCallback(\n (error: Extract<BaseQueryError, { name: 'ValidationError' }>): Record<string, string> => {\n if (typeof error.details === 'object' && error.details !== null) {\n if ('errors' in error.details && Array.isArray(error.details.errors)) {\n const validationErrors = error.details.errors as YupFormattedError[];\n\n return validationErrors.reduce((acc, err) => {\n const { path, message } = err;\n\n return setIn(acc, path.join('.'), message);\n }, {});\n } else {\n const details = error.details as Record<string, string[]>;\n\n return Object.keys(details).reduce((acc, key) => {\n const messages = details[key];\n\n return {\n ...acc,\n [key]: messages.join(', '),\n };\n }, {});\n }\n } else {\n return {};\n }\n },\n []\n ),\n /**\n * @alpha\n * This handles the errors given from `redux-toolkit`'s axios based baseQuery function.\n */\n _unstableFormatAPIError: React.useCallback(\n (error: BaseQueryError) => {\n const err = {\n response: {\n data: {\n error,\n },\n },\n } as FetchError;\n\n /**\n * There's a chance with SerializedErrors that the message is not set.\n * In that case we return a generic error message.\n */\n if (!error.message) {\n return 'Unknown error occured.';\n }\n\n return formatError(err);\n },\n [formatError]\n ),\n formatAPIError: formatError,\n };\n}\n\nfunction formatFetchError(\n error: FetchError,\n { intlMessagePrefixCallback, formatMessage }: FormatAPIErrorOptions\n) {\n const { code, message } = error;\n\n return formatMessage(\n {\n id: getPrefixedId(message, intlMessagePrefixCallback),\n defaultMessage: message,\n },\n {\n code,\n }\n );\n}\n\ntype FormatAPIErrorOptions = Partial<Pick<NormalizeErrorOptions, 'intlMessagePrefixCallback'>> &\n Pick<IntlFormatters, 'formatMessage'>;\n\n/**\n * @description This method stringifies the `ResponseObject` into\n * a string. If multiple errors are thrown by the API, which\n * happens e.g.in the case of a `ValidationError`, all errors\n * will bo concatenated into a single string.\n */\nfunction formatAPIError(\n error: FetchError,\n { formatMessage, intlMessagePrefixCallback }: FormatAPIErrorOptions\n) {\n if (!formatMessage) {\n throw new Error('The formatMessage callback is a mandatory argument.');\n }\n\n const normalizedError = normalizeAPIError(error, intlMessagePrefixCallback);\n\n if (!normalizedError) {\n return null;\n }\n\n if ('message' in normalizedError && normalizedError.message !== null) {\n return normalizedError.message;\n }\n\n // stringify multiple errors\n if ('errors' in normalizedError) {\n return normalizedError.errors\n .map(({ id, defaultMessage, values }) => formatMessage({ id, defaultMessage }, values))\n .join('\\n');\n }\n\n return formatMessage(normalizedError);\n}\n\nexport type { ApiError };\n","import * as React from 'react';\n\nimport {\n Box,\n EmptyStateLayout,\n type EmptyStateLayoutProps,\n Flex,\n Loader,\n Main,\n MainProps,\n} from '@strapi/design-system';\nimport { WarningCircle } from '@strapi/icons';\nimport { EmptyPermissions, EmptyDocuments } from '@strapi/icons/symbols';\nimport { useIntl } from 'react-intl';\n\nimport { useAuth, Permission } from '../features/Auth';\nimport { useNotification } from '../features/Notifications';\nimport { useAPIErrorHandler } from '../hooks/useAPIErrorHandler';\nimport { useCheckPermissionsQuery } from '../services/auth';\n\n/* -------------------------------------------------------------------------------------------------\n * Main\n * -----------------------------------------------------------------------------------------------*/\ninterface PageMainProps extends MainProps {\n children: React.ReactNode;\n}\n\nconst PageMain = ({ children, ...restProps }: PageMainProps) => {\n return <Main {...restProps}>{children}</Main>;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Loading\n * -----------------------------------------------------------------------------------------------*/\ninterface LoadingProps {\n /**\n * @default 'Loading content.'\n */\n children?: React.ReactNode;\n}\n\n/**\n * @public\n * @description A loading component that should be rendered as the page\n * whilst you load the content for the aforementioned page.\n */\nconst Loading = ({ children = 'Loading content.' }: LoadingProps) => {\n return (\n <PageMain height=\"100vh\" aria-busy={true}>\n <Flex alignItems=\"center\" height=\"100%\" justifyContent=\"center\">\n <Loader>{children}</Loader>\n </Flex>\n </PageMain>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Error\n * -----------------------------------------------------------------------------------------------*/\ninterface ErrorProps extends Partial<EmptyStateLayoutProps> {}\n\n/**\n * TODO: should we start passing our errors here so they're persisted on the screen?\n * This could follow something similar to how the global app error works...?\n */\n\n/**\n * @public\n * @description An error component that should be rendered as the page\n * when an error occurs.\n */\nconst Error = (props: ErrorProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <PageMain height=\"100%\">\n <Flex alignItems=\"center\" height=\"100%\" justifyContent=\"center\">\n <EmptyStateLayout\n icon={<WarningCircle width=\"16rem\" />}\n content={formatMessage({\n id: 'anErrorOccurred',\n defaultMessage: 'Whoops! Something went wrong. Please, try again.',\n })}\n {...props}\n />\n </Flex>\n </PageMain>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * NoPermissions\n * -----------------------------------------------------------------------------------------------*/\ninterface NoPermissionsProps extends Partial<EmptyStateLayoutProps> {}\n\n/**\n * @public\n * @description A component that should be rendered as the page\n * when the user does not have the permissions to access the content.\n * This component does not check any permissions, it's up to you to decide\n * when it should be rendered.\n */\nconst NoPermissions = (props: NoPermissionsProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <PageMain height=\"100%\">\n <Flex alignItems=\"center\" height=\"100%\" justifyContent=\"center\">\n <Box minWidth=\"50%\">\n <EmptyStateLayout\n icon={<EmptyPermissions width=\"16rem\" />}\n content={formatMessage({\n id: 'app.components.EmptyStateLayout.content-permissions',\n defaultMessage: \"You don't have the permissions to access that content\",\n })}\n {...props}\n />\n </Box>\n </Flex>\n </PageMain>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * NoData\n * -----------------------------------------------------------------------------------------------*/\ninterface NoDataProps extends Partial<EmptyStateLayoutProps> {}\n\n/**\n * @public\n * @description A component that should be rendered as the page\n * when there is no data available to display.\n * This component does not check any permissions, it's up to you to decide\n * when it should be rendered.\n */\nconst NoData = (props: NoDataProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <PageMain height=\"100%\" background=\"neutral100\">\n <Flex alignItems=\"center\" height=\"100%\" width=\"100%\" justifyContent=\"center\">\n <Box minWidth=\"50%\">\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"16rem\" />}\n action={props.action}\n content={formatMessage({\n id: 'app.components.EmptyStateLayout.content-document',\n defaultMessage: 'No content found',\n })}\n {...props}\n />\n </Box>\n </Flex>\n </PageMain>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Protect\n * -----------------------------------------------------------------------------------------------*/\nexport interface ProtectProps {\n /**\n * The children to render if the user has the required permissions.\n * If providing a function, it will be called with an object containing\n * the permissions the user has based on the array you passed to the component.\n */\n children: React.ReactNode | ((args: { permissions: Permission[] }) => React.ReactNode);\n /**\n * The permissions the user needs to have to access the content.\n */\n permissions?: Array<Omit<Partial<Permission>, 'action'> & Pick<Permission, 'action'>>;\n}\n\n/**\n * @public\n * @description A wrapper component that should be used to protect a page. It will check the permissions\n * you pass to it and render the children if the user has the required permissions. If a user does not have ALL\n * the required permissions, it will redirect the user to the home page. Whilst these checks happen it will render\n * the loading component and should the check fail it will render the error component with a notification.\n */\nconst Protect = ({ permissions = [], children }: ProtectProps) => {\n const userPermissions = useAuth('Protect', (state) => state.permissions);\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const matchingPermissions = userPermissions.filter(\n (permission) =>\n permissions.findIndex(\n (perm) => perm.action === permission.action && perm.subject === permission.subject\n ) >= 0\n );\n\n const shouldCheckConditions = matchingPermissions.some(\n (perm) => Array.isArray(perm.conditions) && perm.conditions.length > 0\n );\n\n const { isLoading, error, data } = useCheckPermissionsQuery(\n {\n permissions: matchingPermissions.map((perm) => ({\n action: perm.action,\n subject: perm.subject,\n })),\n },\n {\n skip: !shouldCheckConditions,\n }\n );\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n if (isLoading) {\n return <Loading />;\n }\n\n if (error) {\n return <Error />;\n }\n\n const { data: permissionsData } = data || {};\n\n const canAccess =\n shouldCheckConditions && permissionsData\n ? !permissionsData.includes(false)\n : matchingPermissions.length > 0;\n\n if (!canAccess) {\n return <NoPermissions />;\n }\n\n return (\n <>\n {typeof children === 'function' ? children({ permissions: matchingPermissions }) : children}\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Title\n * -----------------------------------------------------------------------------------------------*/\nexport interface TitleProps {\n children: string;\n}\n\n/**\n * @public\n * @description This component takes the children (must be a string) and sets\n * it as the title of the html.\n */\nconst Title = ({ children: title }: TitleProps) => {\n React.useEffect(() => {\n document.title = `${title} | Strapi`;\n }, [title]);\n\n return null;\n};\n\nconst Page = {\n Error,\n Loading,\n NoPermissions,\n Protect,\n NoData,\n Main: PageMain,\n Title,\n};\n\nexport { Page };\nexport type { ErrorProps, LoadingProps, NoPermissionsProps, PageMainProps as MainProps };\n","export const once = <TFunc extends (...args: any) => any>(fn: TFunc) => {\n const func = fn;\n let called = false;\n\n if (typeof func !== 'function') {\n throw new TypeError(`once requires a function parameter`);\n }\n\n return (...args: any) => {\n if (!called && process.env.NODE_ENV === 'development') {\n func(...args);\n called = true;\n }\n };\n};\n","const capitalise = (str: string): string => str.charAt(0).toUpperCase() + str.slice(1);\n\nexport { capitalise };\n","import { useEffect, useRef } from 'react';\n\nexport const usePrev = <T>(value: T): T | undefined => {\n const ref = useRef<T>();\n\n useEffect(() => {\n ref.current = value;\n }, [value]);\n\n return ref.current;\n};\n","import * as React from 'react';\n\nimport isEqual from 'lodash/isEqual';\n\nimport { useAuth, Permission } from '../features/Auth';\nimport { once } from '../utils/once';\nimport { capitalise } from '../utils/strings';\n\nimport { usePrev } from './usePrev';\n\ntype AllowedActions = Record<string, boolean>;\n\n/**\n * @public\n * @description This hooks takes an object or array of permissions (the latter preferred) and\n * runs through them to match against the current user's permissions as well as the RBAC middleware\n * system checking any conditions that may be present. It returns the filtered permissions as the complete\n * object from the API and a set of actions that can be performed. An action is derived from the last part\n * of the permission action e.g. `admin::roles.create` would be `canCreate`. If there's a hyphen in the action\n * this is removed and capitalised e.g `admin::roles.create-draft` would be `canCreateDraft`.\n * @example\n * ```tsx\n * import { Page, useRBAC } from '@strapi/strapi/admin'\n *\n * const MyProtectedPage = () => {\n * const { allowedActions, isLoading, error, permissions } = useRBAC([{ action: 'admin::roles.create' }])\n *\n * if(isLoading) {\n * return <Page.Loading />\n * }\n *\n * if(error){\n * return <Page.Error />\n * }\n *\n * if(!allowedActions.canCreate) {\n * return null\n * }\n *\n * return <MyPage permissions={permissions} />\n * }\n * ```\n */\nconst useRBAC = (\n permissionsToCheck: Record<string, Permission[]> | Permission[] = [],\n passedPermissions?: Permission[],\n rawQueryContext?: string\n): {\n allowedActions: AllowedActions;\n isLoading: boolean;\n error?: unknown;\n permissions: Permission[];\n} => {\n const isLoadingAuth = useAuth('useRBAC', (state) => state.isLoading);\n const [isLoading, setIsLoading] = React.useState(true);\n const [error, setError] = React.useState<unknown>();\n const [data, setData] = React.useState<Record<string, boolean>>();\n\n const warnOnce = React.useMemo(() => once(console.warn), []);\n\n const actualPermissionsToCheck: Permission[] = React.useMemo(() => {\n if (Array.isArray(permissionsToCheck)) {\n return permissionsToCheck;\n } else {\n warnOnce(\n 'useRBAC: The first argument should be an array of permissions, not an object. This will be deprecated in the future.'\n );\n\n return Object.values(permissionsToCheck).flat();\n }\n }, [permissionsToCheck, warnOnce]);\n\n /**\n * This is the default value we return until the queryResults[i].data\n * are all resolved with data. This preserves the original behaviour.\n */\n const defaultAllowedActions = React.useMemo(() => {\n return actualPermissionsToCheck.reduce<Record<string, boolean>>((acc, permission) => {\n return {\n ...acc,\n [getActionName(permission)]: false,\n };\n }, {});\n }, [actualPermissionsToCheck]);\n\n const checkUserHasPermissions = useAuth('useRBAC', (state) => state.checkUserHasPermissions);\n\n const permssionsChecked = usePrev(actualPermissionsToCheck);\n const contextChecked = usePrev(rawQueryContext);\n\n React.useEffect(() => {\n if (\n !isEqual(permssionsChecked, actualPermissionsToCheck) ||\n // TODO: also run this when the query context changes\n contextChecked !== rawQueryContext\n ) {\n setIsLoading(true);\n setData(undefined);\n setError(undefined);\n\n checkUserHasPermissions(actualPermissionsToCheck, passedPermissions, rawQueryContext)\n .then((res) => {\n if (res) {\n setData(\n res.reduce<Record<string, boolean>>((acc, permission) => {\n return {\n ...acc,\n [getActionName(permission)]: true,\n };\n }, {})\n );\n }\n })\n .catch((err) => {\n setError(err);\n })\n .finally(() => {\n setIsLoading(false);\n });\n }\n }, [\n actualPermissionsToCheck,\n checkUserHasPermissions,\n passedPermissions,\n permissionsToCheck,\n permssionsChecked,\n contextChecked,\n rawQueryContext,\n ]);\n\n /**\n * This hook originally would not return allowedActions\n * until all the checks were complete.\n */\n const allowedActions = Object.entries({\n ...defaultAllowedActions,\n ...data,\n }).reduce((acc, [name, allowed]) => {\n acc[`can${capitalise(name)}`] = allowed;\n\n return acc;\n }, {} as AllowedActions);\n\n return {\n allowedActions,\n permissions: actualPermissionsToCheck,\n isLoading: isLoading || isLoadingAuth,\n error,\n };\n};\n\nconst getActionName = (permission: Permission): string => {\n const [action = ''] = permission.action.split('.').slice(-1);\n return action.split('-').map(capitalise).join('');\n};\n\nexport { useRBAC };\nexport type { AllowedActions };\n","import { createContext } from '../components/Context';\n\ninterface AppInfoContextValue {\n autoReload?: boolean;\n communityEdition?: boolean;\n currentEnvironment?: string;\n dependencies?: Record<string, string>;\n latestStrapiReleaseTag?: string;\n nodeVersion?: string;\n projectId?: string | null;\n shouldUpdateStrapi?: boolean;\n strapiVersion?: string | null;\n useYarn?: boolean;\n userId?: string;\n}\n\nconst [AppInfoProvider, useAppInfo] = createContext<AppInfoContextValue>('AppInfo', {});\n\nexport { AppInfoProvider, useAppInfo };\n\nexport type { AppInfoContextValue };\n","import * as React from 'react';\n\nimport axios, { AxiosResponse } from 'axios';\n\nimport { useInitQuery, useTelemetryPropertiesQuery } from '../services/admin';\n\nimport { useAppInfo } from './AppInfo';\nimport { useAuth } from './Auth';\n\nexport interface TelemetryProperties {\n useTypescriptOnServer?: boolean;\n useTypescriptOnAdmin?: boolean;\n isHostedOnStrapiCloud?: boolean;\n numberOfAllContentTypes?: number;\n numberOfComponents?: number;\n numberOfDynamicZones?: number;\n}\n\nexport interface TrackingContextValue {\n uuid?: string | boolean;\n telemetryProperties?: TelemetryProperties;\n}\n\n/* -------------------------------------------------------------------------------------------------\n * Context\n * -----------------------------------------------------------------------------------------------*/\n\nconst TrackingContext = React.createContext<TrackingContextValue>({\n uuid: false,\n});\n\n/* -------------------------------------------------------------------------------------------------\n * Provider\n * -----------------------------------------------------------------------------------------------*/\n\nexport interface TrackingProviderProps {\n children: React.ReactNode;\n}\n\nconst TrackingProvider = ({ children }: TrackingProviderProps) => {\n const token = useAuth('App', (state) => state.token);\n const { data: initData } = useInitQuery();\n const { uuid } = initData ?? {};\n\n const { data } = useTelemetryPropertiesQuery(undefined, {\n skip: !initData?.uuid || !token,\n });\n\n React.useEffect(() => {\n if (uuid && data) {\n const event = 'didInitializeAdministration';\n try {\n fetch('https://analytics.strapi.io/api/v2/track', {\n method: 'POST',\n body: JSON.stringify({\n // This event is anonymous\n event,\n userId: '',\n eventPropeties: {},\n groupProperties: { ...data, projectId: uuid },\n }),\n headers: {\n 'Content-Type': 'application/json',\n 'X-Strapi-Event': event,\n },\n });\n } catch {\n // silence is golden\n }\n }\n }, [data, uuid]);\n\n const value = React.useMemo(\n () => ({\n uuid,\n telemetryProperties: data,\n }),\n [uuid, data]\n );\n\n return <TrackingContext.Provider value={value}>{children}</TrackingContext.Provider>;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Hook\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * We can group these events together because none have properties so there's no benefit\n * to having them as separate types.\n *\n * Meanwhile those with properties have different property shapes corresponding to the specific\n * event so understanding which properties go with which event is very helpful.\n */\ninterface EventWithoutProperties {\n name:\n | 'changeComponentsOrder'\n | 'didAccessAuthenticatedAdministration'\n | 'didAddComponentToDynamicZone'\n | 'didBulkDeleteEntries'\n | 'didNotBulkDeleteEntries'\n | 'didChangeDisplayedFields'\n | 'didCheckDraftRelations'\n | 'didClickGuidedTourHomepageApiTokens'\n | 'didClickGuidedTourHomepageContentManager'\n | 'didClickGuidedTourHomepageContentTypeBuilder'\n | 'didClickGuidedTourStep1CollectionType'\n | 'didClickGuidedTourStep2ContentManager'\n | 'didClickGuidedTourStep3ApiTokens'\n | 'didClickonBlogSection'\n | 'didClickonCodeExampleSection'\n | 'didClickonReadTheDocumentationSection'\n | 'didClickOnTryStrapiCloudSection'\n | 'didClickonTutorialSection'\n | 'didCreateGuidedTourCollectionType'\n | 'didCreateGuidedTourEntry'\n | 'didCreateNewRole'\n | 'didCreateRole'\n | 'didDeleteToken'\n | 'didDuplicateRole'\n | 'didEditEditSettings'\n | 'didEditEmailTemplates'\n | 'didEditFieldNameOnContentType'\n | 'didEditListSettings'\n | 'didEditMediaLibraryConfig'\n | 'didEditNameOfContentType'\n | 'didGenerateGuidedTourApiTokens'\n | 'didGoToMarketplace'\n | 'didLaunchGuidedtour'\n | 'didMissMarketplacePlugin'\n | 'didNotCreateFirstAdmin'\n | 'didNotSaveComponent'\n | 'didPluginLearnMore'\n | 'didPublishEntry'\n | 'didBulkPublishEntries'\n | 'didNotBulkPublishEntries'\n | 'didUnpublishEntry'\n | 'didBulkUnpublishEntries'\n | 'didNotBulkUnpublishEntries'\n | 'didSaveComponent'\n | 'didSaveContentType'\n | 'didSearch'\n | 'didSkipGuidedtour'\n | 'didSubmitPlugin'\n | 'didSubmitProvider'\n | 'didUpdateConditions'\n | 'didSelectAllMediaLibraryElements'\n | 'didSelectContentTypeFieldSettings'\n | 'didSelectContentTypeSettings'\n | 'didEditAuthenticationProvider'\n | 'didRestoreHistoryVersion'\n | 'hasClickedCTBAddFieldBanner'\n | 'removeComponentFromDynamicZone'\n | 'willAddMoreFieldToContentType'\n | 'willBulkDeleteEntries'\n | 'willBulkPublishEntries'\n | 'willBulkUnpublishEntries'\n | 'willChangeNumberOfEntriesPerPage'\n | 'willCheckDraftRelations'\n | 'willCreateComponent'\n | 'willCreateComponentFromAttributesModal'\n | 'willCreateContentType'\n | 'willCreateFirstAdmin'\n | 'willCreateNewRole'\n | 'willCreateRole'\n | 'willCreateSingleType'\n | 'willCreateStage'\n | 'willCreateWorkflow'\n | 'willDeleteEntryFromList'\n | 'willDeleteFieldOfContentType'\n | 'willDuplicateRole'\n | 'willEditEditLayout'\n | 'willEditEmailTemplates'\n | 'willEditEntryFromButton'\n | 'willEditEntryFromHome'\n | 'willEditEntryFromList'\n | 'willEditFieldOfContentType'\n | 'willEditMediaLibraryConfig'\n | 'willEditNameOfContentType'\n | 'willEditNameOfSingleType'\n | 'willEditAuthenticationProvider'\n | 'willEditFieldNameOnContentType'\n | 'willEditStage'\n | 'willFilterEntries'\n | 'willInstallPlugin'\n | 'willPublishEntry'\n | 'willUnpublishEntry'\n | 'willSaveComponent'\n | 'willSaveContentType'\n | 'willSaveContentTypeLayout'\n | 'didEditFieldNameOnContentType'\n | 'didCreateRelease';\n properties?: never;\n}\n\ninterface DidFilterMediaLibraryElementsEvent {\n name: 'didFilterMediaLibraryElements';\n properties: MediaEvents['properties'] & {\n filter: string;\n };\n}\n\ninterface DidSortMediaLibraryElementsEvent {\n name: 'didSortMediaLibraryElements';\n properties: MediaEvents['properties'] & {\n sort: string;\n };\n}\n\ninterface DidCropFileEvent {\n name: 'didCropFile';\n properties: MediaEvents['properties'] & {\n duplicatedFile: null | boolean;\n };\n}\n\ninterface DidSelectFile {\n name: 'didSelectFile';\n properties: MediaEvents['properties'] & {\n source: 'url' | 'computer';\n };\n}\n\ninterface DidEditMediaLibraryElementsEvent {\n name: 'didEditMediaLibraryElements';\n properties: MediaEvents['properties'] & {\n type: string;\n changeLocation: string | boolean;\n };\n}\n\ninterface MediaEvents {\n name:\n | 'didSearchMediaLibraryElements'\n | 'didReplaceMedia'\n | 'didAddMediaLibraryFolders'\n | 'willAddMediaLibraryAssets';\n properties: {\n location: string;\n };\n}\n\ninterface DidSelectContentTypeFieldTypeEvent {\n name: 'didSelectContentTypeFieldType';\n properties: {\n type?: string;\n };\n}\n\ninterface DidChangeModeEvent {\n name: 'didChangeMode';\n properties: {\n newMode: string;\n };\n}\ninterface DidSubmitWithErrorsFirstAdminEvent {\n name: 'didSubmitWithErrorsFirstAdmin';\n properties: {\n count: string;\n };\n}\n\ninterface WillNavigateEvent {\n name: 'willNavigate';\n properties: {\n from: string;\n to: string;\n };\n}\n\ninterface DidAccessTokenListEvent {\n name: 'didAccessTokenList';\n properties: {\n tokenType: TokenEvents['properties']['tokenType'];\n number: number;\n };\n}\ninterface LogoEvent {\n name: 'didChangeLogo' | 'didClickResetLogo';\n properties: {\n logo: 'menu' | 'auth';\n };\n}\n\ninterface TokenEvents {\n name:\n | 'didCopyTokenKey'\n | 'didAddTokenFromList'\n | 'didEditTokenFromList'\n | 'willAccessTokenList'\n | 'willAddTokenFromList'\n | 'willCreateToken'\n | 'willDeleteToken'\n | 'willEditToken'\n | 'willEditTokenFromList';\n properties: {\n tokenType: 'api-token' | 'transfer-token';\n };\n}\n\ninterface WillModifyTokenEvent {\n name: 'didCreateToken' | 'didEditToken';\n properties: {\n tokenType: TokenEvents['properties']['tokenType'];\n type: 'custom' | 'full-access' | 'read-only' | Array<'push' | 'pull' | 'push-pull'>;\n };\n}\n\ninterface DeleteEntryEvents {\n name: 'willDeleteEntry' | 'didDeleteEntry' | 'didNotDeleteEntry';\n properties: {\n status?: string;\n error?: unknown;\n };\n}\n\ninterface CreateEntryEvents {\n name: 'willCreateEntry' | 'didCreateEntry' | 'didNotCreateEntry';\n properties: {\n status?: string;\n error?: unknown;\n };\n}\n\ninterface UpdateEntryEvents {\n name: 'willEditEntry' | 'didEditEntry' | 'didNotEditEntry';\n properties: {\n status?: string;\n error?: unknown;\n };\n}\n\ninterface DidFilterEntriesEvent {\n name: 'didFilterEntries';\n properties: {\n useRelation: boolean;\n };\n}\n\ninterface DidPublishRelease {\n name: 'didPublishRelease';\n properties: {\n totalEntries: number;\n totalPublishedEntries: number;\n totalUnpublishedEntries: number;\n };\n}\n\ntype EventsWithProperties =\n | CreateEntryEvents\n | DidAccessTokenListEvent\n | DidChangeModeEvent\n | DidCropFileEvent\n | DeleteEntryEvents\n | DidEditMediaLibraryElementsEvent\n | DidFilterMediaLibraryElementsEvent\n | DidFilterEntriesEvent\n | DidSelectContentTypeFieldTypeEvent\n | DidSelectFile\n | DidSortMediaLibraryElementsEvent\n | DidSubmitWithErrorsFirstAdminEvent\n | LogoEvent\n | TokenEvents\n | UpdateEntryEvents\n | WillModifyTokenEvent\n | WillNavigateEvent\n | DidPublishRelease\n | MediaEvents;\n\nexport type TrackingEvent = EventWithoutProperties | EventsWithProperties;\nexport interface UseTrackingReturn {\n /**\n * This type helps show all the available event names before you start typing,\n * however autocomplete isn't great.\n */\n trackUsage<TEvent extends TrackingEvent>(\n event: TEvent['name'],\n properties: TEvent['properties']\n ): Promise<null | AxiosResponse<string>>;\n trackUsage<TEvent extends Extract<TrackingEvent, { properties?: never }>>(\n event: TEvent['name'],\n properties?: never\n ): Promise<null | AxiosResponse<string>>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n trackUsage<TEvent extends Extract<TrackingEvent, { properties: object }>>(\n event: TEvent['name'],\n properties: TEvent['properties']\n ): Promise<null | AxiosResponse<string>>;\n}\n\n/**\n * @description Used to send amplitude events to the Strapi Tracking hub.\n *\n * @example\n * ```tsx\n * import { useTracking } from '@strapi/strapi/admin';\n *\n * const MyComponent = () => {\n * const { trackUsage } = useTracking();\n *\n * const handleClick = () => {\n * trackUsage('my-event', { myProperty: 'myValue' });\n * }\n *\n * return <button onClick={handleClick}>Send Event</button>\n * }\n * ```\n */\nconst useTracking = (): UseTrackingReturn => {\n const { uuid, telemetryProperties } = React.useContext(TrackingContext);\n const userId = useAppInfo('useTracking', (state) => state.userId);\n const trackUsage = React.useCallback(\n async <TEvent extends TrackingEvent>(\n event: TEvent['name'],\n properties?: TEvent['properties']\n ) => {\n try {\n if (uuid && !window.strapi.telemetryDisabled) {\n const res = await axios.post<string>(\n 'https://analytics.strapi.io/api/v2/track',\n {\n event,\n userId,\n eventProperties: { ...properties },\n userProperties: {},\n groupProperties: {\n ...telemetryProperties,\n projectId: uuid,\n projectType: window.strapi.projectType,\n },\n },\n {\n headers: {\n 'Content-Type': 'application/json',\n 'X-Strapi-Event': event,\n },\n }\n );\n\n return res;\n }\n } catch (err) {\n // Silence is golden\n }\n\n return null;\n },\n [telemetryProperties, userId, uuid]\n );\n\n return { trackUsage };\n};\n\nexport { TrackingProvider, useTracking };\n","import * as React from 'react';\n\nimport { createContext } from '@radix-ui/react-context';\nimport { useIntl } from 'react-intl';\n\nimport { UpdateProjectSettings } from '../../../shared/contracts/admin';\nimport { Page } from '../components/PageHelpers';\nimport { useTypedSelector } from '../core/store/hooks';\nimport { useAPIErrorHandler } from '../hooks/useAPIErrorHandler';\nimport { useRBAC } from '../hooks/useRBAC';\nimport {\n ConfigurationLogo,\n useInitQuery,\n useProjectSettingsQuery,\n useUpdateProjectSettingsMutation,\n} from '../services/admin';\n\nimport { useAuth } from './Auth';\nimport { useNotification } from './Notifications';\nimport { useTracking } from './Tracking';\n\nimport type { StrapiApp } from '../StrapiApp';\n\n/* -------------------------------------------------------------------------------------------------\n * Configuration Context\n * -----------------------------------------------------------------------------------------------*/\n\ninterface UpdateProjectSettingsBody {\n authLogo:\n | ((UpdateProjectSettings.Request['body']['authLogo'] | ConfigurationLogo['custom']) & {\n rawFile?: File;\n })\n | null;\n menuLogo:\n | ((UpdateProjectSettings.Request['body']['menuLogo'] | ConfigurationLogo['custom']) & {\n rawFile?: File;\n })\n | null;\n}\n\ninterface ConfigurationContextValue {\n logos: {\n auth: ConfigurationLogo;\n menu: ConfigurationLogo;\n };\n showTutorials: boolean;\n showReleaseNotification: boolean;\n updateProjectSettings: (body: UpdateProjectSettingsBody) => Promise<void>;\n}\n\nconst [ConfigurationContextProvider, useConfiguration] =\n createContext<ConfigurationContextValue>('ConfigurationContext');\n\n/* -------------------------------------------------------------------------------------------------\n * ConfigurationProvider\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ConfigurationProviderProps {\n children: React.ReactNode;\n defaultAuthLogo: StrapiApp['configurations']['authLogo'];\n defaultMenuLogo: StrapiApp['configurations']['menuLogo'];\n showReleaseNotification?: boolean;\n showTutorials?: boolean;\n}\n\nconst ConfigurationProvider = ({\n children,\n defaultAuthLogo,\n defaultMenuLogo,\n showReleaseNotification = false,\n showTutorials = false,\n}: ConfigurationProviderProps) => {\n const { trackUsage } = useTracking();\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['project-settings']\n );\n const token = useAuth('ConfigurationProvider', (state) => state.token);\n\n const {\n allowedActions: { canRead },\n } = useRBAC(permissions);\n\n const {\n data: { authLogo: customAuthLogo, menuLogo: customMenuLogo } = {},\n error,\n isLoading,\n } = useInitQuery();\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'app.containers.App.notification.error.init' }),\n });\n }\n }, [error, formatMessage, toggleNotification]);\n\n const { data, isSuccess } = useProjectSettingsQuery(undefined, {\n skip: !token || !canRead,\n });\n\n const [updateProjectSettingsMutation] = useUpdateProjectSettingsMutation();\n\n const updateProjectSettings = React.useCallback(\n async (body: UpdateProjectSettingsBody) => {\n const formData = new FormData();\n\n /**\n * We either only send files or we send null values.\n * Null removes the logo. If you don't want to effect\n * an existing logo, don't send anything.\n */\n Object.entries(body).forEach(([key, value]) => {\n if (value?.rawFile) {\n formData.append(key, value.rawFile);\n } else if (value === null) {\n formData.append(key, JSON.stringify(value));\n }\n });\n\n const res = await updateProjectSettingsMutation(formData);\n\n if ('data' in res) {\n const updatedMenuLogo = !!res.data.menuLogo && !!body.menuLogo?.rawFile;\n const updatedAuthLogo = !!res.data.authLogo && !!body.authLogo?.rawFile;\n\n if (updatedMenuLogo) {\n trackUsage('didChangeLogo', {\n logo: 'menu',\n });\n }\n\n if (updatedAuthLogo) {\n trackUsage('didChangeLogo', {\n logo: 'auth',\n });\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'app', defaultMessage: 'Saved' }),\n });\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n },\n [formatAPIError, formatMessage, toggleNotification, trackUsage, updateProjectSettingsMutation]\n );\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <ConfigurationContextProvider\n showReleaseNotification={showReleaseNotification}\n showTutorials={showTutorials}\n logos={{\n menu: {\n custom: isSuccess\n ? data?.menuLogo\n : {\n url: customMenuLogo ?? '',\n },\n default: defaultMenuLogo,\n },\n auth: {\n custom: isSuccess\n ? data?.authLogo\n : {\n url: customAuthLogo ?? '',\n },\n default: defaultAuthLogo,\n },\n }}\n updateProjectSettings={updateProjectSettings}\n >\n {children}\n </ConfigurationContextProvider>\n );\n};\n\nexport {\n ConfigurationContextProvider as _internalConfigurationContextProvider,\n ConfigurationProvider,\n useConfiguration,\n};\nexport type {\n ConfigurationProviderProps,\n ConfigurationContextValue,\n ConfigurationLogo,\n UpdateProjectSettingsBody,\n};\n","import * as React from 'react';\n\nimport { produce } from 'immer';\nimport get from 'lodash/get';\nimport set from 'lodash/set';\n\nconst GUIDED_TOUR_COMPLETED_STEPS = 'GUIDED_TOUR_COMPLETED_STEPS';\nconst GUIDED_TOUR_CURRENT_STEP = 'GUIDED_TOUR_CURRENT_STEP';\nconst GUIDED_TOUR_SKIPPED = 'GUIDED_TOUR_SKIPPED';\n\nconst GUIDED_TOUR_KEYS = {\n GUIDED_TOUR_COMPLETED_STEPS,\n GUIDED_TOUR_CURRENT_STEP,\n GUIDED_TOUR_SKIPPED,\n} as const;\n\n/* -------------------------------------------------------------------------------------------------\n * GuidedTourProvider\n * -----------------------------------------------------------------------------------------------*/\n\nimport { createContext } from '../Context';\n\ntype SectionKey = keyof GuidedTourContextValue['guidedTourState'];\ntype StepKey = keyof GuidedTourContextValue['guidedTourState'][SectionKey];\ntype Step = `${SectionKey}.${StepKey}`;\ninterface GuidedTourContextValue {\n currentStep: Step | null;\n guidedTourState: {\n contentTypeBuilder: {\n create: boolean;\n success: boolean;\n };\n contentManager: {\n create: boolean;\n success: boolean;\n };\n apiTokens: {\n create: boolean;\n success: boolean;\n };\n };\n isGuidedTourVisible: boolean;\n isSkipped: boolean;\n setCurrentStep: (step: Step | null) => void | null;\n setGuidedTourVisibility: (isVisible: boolean) => void;\n setSkipped: (isSkipped: boolean) => void;\n setStepState: (step: Step, state: boolean) => void;\n startSection: (section: SectionKey) => void;\n}\n\nconst [GuidedTourProviderImpl, useGuidedTour] = createContext<GuidedTourContextValue>('GuidedTour');\n\ninterface GuidedTourProviderProps {\n children: React.ReactNode;\n}\n\nconst GuidedTourProvider = ({ children }: GuidedTourProviderProps) => {\n const [{ currentStep, guidedTourState, isGuidedTourVisible, isSkipped }, dispatch] =\n React.useReducer(reducer, initialState, initialiseState);\n\n const setCurrentStep = (step: SetCurrentStepAction['step']) => {\n // if step is null it is intentional, we need to dispatch it\n if (step !== null) {\n const isStepAlreadyDone = get(guidedTourState, step);\n const [sectionName, stepName] = step.split('.') as [SectionKey, StepKey];\n const sectionArray = Object.entries(guidedTourState[sectionName]);\n\n const currentStepIndex = sectionArray.findIndex(([key]) => key === stepName);\n const previousSteps = sectionArray.slice(0, currentStepIndex);\n\n const isStepToShow = previousSteps.every(([, sectionValue]) => sectionValue);\n\n if (isStepAlreadyDone || isSkipped || !isStepToShow) {\n return null;\n }\n }\n\n window.localStorage.setItem(GUIDED_TOUR_CURRENT_STEP, JSON.stringify(null));\n\n return dispatch({\n type: 'SET_CURRENT_STEP',\n step,\n });\n };\n\n const setGuidedTourVisibility = (value: SetGuidedTourVisibilityAction['value']) => {\n dispatch({\n type: 'SET_GUIDED_TOUR_VISIBILITY',\n value,\n });\n };\n\n const setStepState = (currentStep: Step, value: SetStepStateAction['value']) => {\n addCompletedStep(currentStep);\n\n dispatch({\n type: 'SET_STEP_STATE',\n currentStep,\n value,\n });\n };\n\n const startSection = (sectionName: SectionKey) => {\n const sectionSteps = guidedTourState[sectionName];\n\n if (sectionSteps) {\n const guidedTourArray = Object.entries(guidedTourState);\n\n // Find current section position in the guidedTourArray\n // Get only previous sections based on current section position\n const currentSectionIndex = guidedTourArray.findIndex(([key]) => key === sectionName);\n const previousSections = guidedTourArray.slice(0, currentSectionIndex);\n\n // Check if every steps from previous section are done\n const isSectionToShow = previousSections.every(([, sectionValue]) =>\n Object.values(sectionValue).every(Boolean)\n );\n\n const [firstStep] = Object.keys(sectionSteps) as [StepKey];\n const isFirstStepDone = sectionSteps[firstStep];\n\n if (isSectionToShow && !currentStep && !isFirstStepDone) {\n setCurrentStep(`${sectionName}.${firstStep}`);\n }\n }\n };\n\n const setSkipped = (value: SetSkippedAction['value']) => {\n window.localStorage.setItem(GUIDED_TOUR_SKIPPED, JSON.stringify(value));\n\n dispatch({\n type: 'SET_SKIPPED',\n value,\n });\n };\n\n return (\n <GuidedTourProviderImpl\n guidedTourState={guidedTourState}\n currentStep={currentStep}\n setCurrentStep={setCurrentStep}\n setGuidedTourVisibility={setGuidedTourVisibility}\n setSkipped={setSkipped}\n setStepState={setStepState}\n startSection={startSection}\n isGuidedTourVisible={isGuidedTourVisible}\n isSkipped={isSkipped}\n >\n {children}\n </GuidedTourProviderImpl>\n );\n};\n\ntype State = Pick<\n GuidedTourContextValue,\n 'guidedTourState' | 'currentStep' | 'isGuidedTourVisible' | 'isSkipped'\n>;\n\nconst initialState = {\n currentStep: null,\n guidedTourState: {\n contentTypeBuilder: {\n create: false,\n success: false,\n },\n contentManager: {\n create: false,\n success: false,\n },\n apiTokens: {\n create: false,\n success: false,\n },\n },\n isGuidedTourVisible: false,\n isSkipped: false,\n} satisfies State;\n\ninterface SetCurrentStepAction {\n type: 'SET_CURRENT_STEP';\n step: Step | null;\n}\n\ninterface SetStepStateAction {\n type: 'SET_STEP_STATE';\n currentStep: Step;\n value: boolean;\n}\n\ninterface SetSkippedAction {\n type: 'SET_SKIPPED';\n value: boolean;\n}\n\ninterface SetGuidedTourVisibilityAction {\n type: 'SET_GUIDED_TOUR_VISIBILITY';\n value: boolean;\n}\n\ntype Action =\n | SetCurrentStepAction\n | SetStepStateAction\n | SetSkippedAction\n | SetGuidedTourVisibilityAction;\n\nconst reducer: React.Reducer<State, Action> = (state: State = initialState, action: Action) =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'SET_CURRENT_STEP': {\n draftState.currentStep = action.step;\n break;\n }\n case 'SET_STEP_STATE': {\n const [section, step] = action.currentStep.split('.') as [SectionKey, StepKey];\n draftState.guidedTourState[section][step] = action.value;\n break;\n }\n case 'SET_SKIPPED': {\n draftState.isSkipped = action.value;\n break;\n }\n case 'SET_GUIDED_TOUR_VISIBILITY': {\n draftState.isGuidedTourVisible = action.value;\n break;\n }\n default: {\n return draftState;\n }\n }\n });\n\nconst initialiseState = (initialState: State) => {\n const copyInitialState = { ...initialState };\n const guidedTourLocaleStorage = JSON.parse(\n window.localStorage.getItem(GUIDED_TOUR_COMPLETED_STEPS) ?? '[]'\n );\n const currentStepLocaleStorage = JSON.parse(\n window.localStorage.getItem(GUIDED_TOUR_CURRENT_STEP) ?? 'null'\n );\n const skippedLocaleStorage = JSON.parse(\n window.localStorage.getItem(GUIDED_TOUR_SKIPPED) ?? 'null'\n );\n\n if (Array.isArray(guidedTourLocaleStorage)) {\n guidedTourLocaleStorage.forEach((step) => {\n const [sectionName, stepName] = step.split('.');\n set(copyInitialState, ['guidedTourState', sectionName, stepName], true);\n });\n }\n\n // if current step when initializing mark it as done\n if (currentStepLocaleStorage) {\n const [sectionName, stepName] = currentStepLocaleStorage.split('.') as [SectionKey, StepKey];\n set(copyInitialState, ['guidedTourState', sectionName, stepName], true);\n\n addCompletedStep(currentStepLocaleStorage as Step);\n\n window.localStorage.setItem(GUIDED_TOUR_CURRENT_STEP, JSON.stringify(null));\n }\n\n if (skippedLocaleStorage !== null) {\n set(copyInitialState, 'isSkipped', skippedLocaleStorage);\n }\n\n return copyInitialState;\n};\n\n/**\n * @description Add a completed step to the local storage if it does not already exist.\n */\nconst addCompletedStep = (completedStep: Step) => {\n const currentSteps = JSON.parse(window.localStorage.getItem(GUIDED_TOUR_COMPLETED_STEPS) ?? '[]');\n\n if (!Array.isArray(currentSteps)) {\n return;\n }\n\n const isAlreadyStored = currentSteps.includes(completedStep);\n\n if (isAlreadyStored) {\n return;\n }\n\n window.localStorage.setItem(\n GUIDED_TOUR_COMPLETED_STEPS,\n JSON.stringify([...currentSteps, completedStep])\n );\n};\n\nexport { GuidedTourProvider, useGuidedTour, GuidedTourContextValue, GUIDED_TOUR_KEYS };\n","import * as React from 'react';\n\nimport defaultsDeep from 'lodash/defaultsDeep';\nimport { IntlProvider } from 'react-intl';\n\nimport { useTypedSelector } from '../core/store/hooks';\n\n/* -------------------------------------------------------------------------------------------------\n * LanguageProvider\n * -----------------------------------------------------------------------------------------------*/\n\ninterface LanguageProviderProps {\n children: React.ReactNode;\n messages: Record<string, Record<string, string>>;\n}\n\nconst LanguageProvider = ({ children, messages }: LanguageProviderProps) => {\n const locale = useTypedSelector((state) => state.admin_app.language.locale);\n const appMessages = defaultsDeep(messages[locale], messages.en);\n\n return (\n <IntlProvider locale={locale} defaultLocale=\"en\" messages={appMessages} textComponent=\"span\">\n {children}\n </IntlProvider>\n );\n};\n\nexport { LanguageProvider };\nexport type { LanguageProviderProps };\n","import * as React from 'react';\n\nimport { DesignSystemProvider } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useDispatch } from 'react-redux';\nimport { DefaultTheme, createGlobalStyle } from 'styled-components';\n\nimport { useTypedSelector } from '../core/store/hooks';\nimport { setAvailableThemes } from '../reducer';\n\ninterface ThemeProps {\n children: React.ReactNode;\n themes: {\n dark: DefaultTheme;\n light: DefaultTheme;\n };\n}\n\nconst Theme = ({ children, themes }: ThemeProps) => {\n const { currentTheme } = useTypedSelector((state) => state.admin_app.theme);\n const [systemTheme, setSystemTheme] = React.useState<'light' | 'dark'>();\n const { locale } = useIntl();\n const dispatch = useDispatch();\n\n // Listen to changes in the system theme\n React.useEffect(() => {\n const themeWatcher = window.matchMedia('(prefers-color-scheme: dark)');\n setSystemTheme(themeWatcher.matches ? 'dark' : 'light');\n\n const listener = (event: MediaQueryListEvent) => {\n setSystemTheme(event.matches ? 'dark' : 'light');\n };\n themeWatcher.addEventListener('change', listener);\n\n // Remove listener on cleanup\n return () => {\n themeWatcher.removeEventListener('change', listener);\n };\n }, []);\n\n React.useEffect(() => {\n dispatch(setAvailableThemes(Object.keys(themes)));\n }, [dispatch, themes]);\n\n const computedThemeName = currentTheme === 'system' ? systemTheme : currentTheme;\n\n return (\n <DesignSystemProvider\n locale={locale}\n /**\n * TODO: could we make this neater i.e. by setting up the context to throw\n * if it can't find it, that way the type is always fully defined and we're\n * not checking it all the time...\n */\n theme={themes?.[computedThemeName || 'light']}\n >\n {children}\n <GlobalStyle />\n </DesignSystemProvider>\n );\n};\n\nconst GlobalStyle = createGlobalStyle`\n body {\n background: ${({ theme }) => theme.colors.neutral100};\n }\n`;\n\nexport { Theme };\nexport type { ThemeProps };\n"],"names":["RBAC","use","middleware","Array","isArray","middlewares","push","constructor","run","ctx","permissions","index","middlewaresToRun","map","next","length","createContext","rootComponentName","defaultContext","Context","ContextSelector","Provider","props","children","context","value","React","useMemo","Object","values","_jsx","useContext","consumerName","selector","useContextSelector","Error","displayName","useTypedDispatch","useDispatch","useTypedStore","useStore","useTypedSelector","useSelector","createTypedSelector","createSelector","state","StrapiAppProvider","useStrapiApp","useQueryParams","initialParams","search","useLocation","navigate","useNavigate","query","searchQuery","startsWith","slice","parse","setQuery","useCallback","nextParams","method","replace","nextQuery","keys","forEach","key","prototype","hasOwnProperty","call","stringify","encode","rawQuery","STORAGE_KEYS","TOKEN","USER","THEME_LOCAL_STORAGE_KEY","LANGUAGE_LOCAL_STORAGE_KEY","getStoredToken","token","localStorage","getItem","sessionStorage","JSON","adminSlice","createSlice","name","initialState","language","locale","localeNames","en","theme","availableThemes","currentTheme","reducers","setAppTheme","action","payload","window","setItem","setAvailableThemes","setLocale","document","documentElement","setAttribute","setToken","login","persist","logout","removeItem","reducer","actions","authService","adminApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","getMe","url","transformResponse","res","data","providesTags","type","id","getMyPermissions","updateMe","mutation","body","invalidatesTags","checkPermissions","resetPassword","renewToken","getRegistrationInfo","registrationToken","config","params","registerAdmin","registerUser","forgotPassword","isSSOLocked","getProviders","getProviderOptions","updateProviderOptions","overrideExisting","useCheckPermissionsQuery","useLazyCheckPermissionsQuery","useGetMeQuery","useLoginMutation","useRenewTokenMutation","useLogoutMutation","useUpdateMeMutation","useResetPasswordMutation","useRegisterAdminMutation","useRegisterUserMutation","useGetRegistrationInfoQuery","useForgotPasswordMutation","useGetMyPermissionsQuery","useIsSSOLockedQuery","useGetProvidersQuery","useGetProviderOptionsQuery","useUpdateProviderOptionsMutation","useAuth","AuthProvider","_defaultPermissions","_disableRenewToken","dispatch","runRbacMiddleware","rbac","location","admin_app","user","isLoading","isLoadingUser","undefined","skip","userPermissions","refetch","isUninitialized","isLoadingPermissions","loginMutation","renewTokenMutation","logoutMutation","clearStateAndLogout","util","resetApiState","logoutAction","useEffect","then","loginAction","preferedLanguage","handleUserStorageChange","event","newValue","addEventListener","removeEventListener","rememberMe","refetchPermissions","checkUserHasPermissions","passedPermissions","rawQueryContext","subject","actualUserPermissions","matchingPermissions","filter","permission","findIndex","perm","middlewaredPermissions","pathname","split","shouldCheckConditions","some","conditions","error","_","NotificationsContext","toggleNotification","NotificationsProvider","notificationIdRef","useRef","notifications","setNotifications","useState","message","link","timeout","blockTransition","onClose","title","s","current","clearNotification","n","_jsxs","Flex","left","marginLeft","position","direction","alignItems","gap","top","width","zIndex","notification","Notification","formatMessage","useIntl","onCloseCallback","useCallbackRef","handleClose","timeoutReference","setTimeout","clearTimeout","variant","alertTitle","defaultMessage","Alert","Link","href","isExternal","label","closeLabel","useNotification","getPrefixedId","callback","prefixedMessage","normalizeError","intlMessagePrefixCallback","normalizedError","path","join","validateErrorIsYupValidationError","err","details","normalizeAPIError","apiError","response","errors","getIn","obj","def","pathStartIndex","toPath","isObject","isInteger","String","Math","floor","Number","setIn","clone","resVal","i","pathArray","currentPath","currentObj","nextPath","useAPIErrorHandler","formatError","formattedErr","formatAPIError","formatFetchError","_unstableFormatValidationErrors","validationErrors","reduce","acc","messages","_unstableFormatAPIError","code","PageMain","restProps","Main","Loading","height","aria-busy","justifyContent","Loader","EmptyStateLayout","icon","WarningCircle","content","NoPermissions","Box","minWidth","EmptyPermissions","NoData","background","EmptyDocuments","Protect","permissionsData","canAccess","includes","_Fragment","Title","Page","once","fn","func","called","TypeError","args","process","env","NODE_ENV","capitalise","str","charAt","toUpperCase","usePrev","ref","useRBAC","permissionsToCheck","isLoadingAuth","setIsLoading","setError","setData","warnOnce","console","warn","actualPermissionsToCheck","flat","defaultAllowedActions","getActionName","permssionsChecked","contextChecked","isEqual","catch","finally","allowedActions","entries","allowed","AppInfoProvider","useAppInfo","TrackingContext","uuid","TrackingProvider","initData","useInitQuery","useTelemetryPropertiesQuery","fetch","userId","eventPropeties","groupProperties","projectId","headers","telemetryProperties","useTracking","trackUsage","properties","strapi","telemetryDisabled","axios","post","eventProperties","userProperties","projectType","ConfigurationContextProvider","useConfiguration","ConfigurationProvider","defaultAuthLogo","defaultMenuLogo","showReleaseNotification","showTutorials","settings","canRead","authLogo","customAuthLogo","menuLogo","customMenuLogo","isSuccess","useProjectSettingsQuery","updateProjectSettingsMutation","useUpdateProjectSettingsMutation","updateProjectSettings","formData","FormData","rawFile","append","updatedMenuLogo","updatedAuthLogo","logo","logos","menu","custom","default","auth","GUIDED_TOUR_COMPLETED_STEPS","GUIDED_TOUR_CURRENT_STEP","GUIDED_TOUR_SKIPPED","GuidedTourProviderImpl","useGuidedTour","GuidedTourProvider","currentStep","guidedTourState","isGuidedTourVisible","isSkipped","useReducer","initialiseState","setCurrentStep","step","isStepAlreadyDone","get","sectionName","stepName","sectionArray","currentStepIndex","previousSteps","isStepToShow","every","sectionValue","setGuidedTourVisibility","setStepState","addCompletedStep","startSection","sectionSteps","guidedTourArray","currentSectionIndex","previousSections","isSectionToShow","Boolean","firstStep","isFirstStepDone","setSkipped","contentTypeBuilder","create","success","contentManager","apiTokens","produce","draftState","section","copyInitialState","guidedTourLocaleStorage","currentStepLocaleStorage","skippedLocaleStorage","set","completedStep","currentSteps","isAlreadyStored","LanguageProvider","appMessages","defaultsDeep","IntlProvider","defaultLocale","textComponent","Theme","themes","systemTheme","setSystemTheme","themeWatcher","matchMedia","matches","listener","computedThemeName","DesignSystemProvider","GlobalStyle","createGlobalStyle","colors","neutral100"],"mappings":"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"}
|