@strapi/admin 5.0.0-rc.9 → 5.0.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/admin/{AdminSeatInfo-j58AKYvZ.js → AdminSeatInfo-8vtNB3ck.js} +3 -3
- package/dist/admin/{AdminSeatInfo-j58AKYvZ.js.map → AdminSeatInfo-8vtNB3ck.js.map} +1 -1
- package/dist/admin/{AdminSeatInfo-qGNvhfii.mjs → AdminSeatInfo-qIgh5-QA.mjs} +4 -4
- package/dist/admin/{AdminSeatInfo-qGNvhfii.mjs.map → AdminSeatInfo-qIgh5-QA.mjs.map} +1 -1
- package/dist/admin/{ApplicationInfoPage-ahnTcFV1.mjs → ApplicationInfoPage-AAIv_ZkF.mjs} +5 -5
- package/dist/admin/{ApplicationInfoPage-ahnTcFV1.mjs.map → ApplicationInfoPage-AAIv_ZkF.mjs.map} +1 -1
- package/dist/admin/{ApplicationInfoPage-JfdJ0U4H.js → ApplicationInfoPage-bkWa99An.js} +5 -5
- package/dist/admin/{ApplicationInfoPage-JfdJ0U4H.js.map → ApplicationInfoPage-bkWa99An.js.map} +1 -1
- package/dist/admin/{AuthResponse-J8A48xdo.mjs → AuthResponse-HYXVuTDF.mjs} +2 -2
- package/dist/admin/{AuthResponse-J8A48xdo.mjs.map → AuthResponse-HYXVuTDF.mjs.map} +1 -1
- package/dist/admin/{AuthResponse-KlTDmm2i.js → AuthResponse-R8kR_yqS.js} +2 -2
- package/dist/admin/{AuthResponse-KlTDmm2i.js.map → AuthResponse-R8kR_yqS.js.map} +1 -1
- package/dist/admin/{AuthenticatedLayout-06fn7qrH.mjs → AuthenticatedLayout-J22BBdYe.mjs} +31 -39
- package/dist/admin/AuthenticatedLayout-J22BBdYe.mjs.map +1 -0
- package/dist/admin/{AuthenticatedLayout-eKDwvUFO.js → AuthenticatedLayout-ZAXB7o93.js} +30 -38
- package/dist/admin/AuthenticatedLayout-ZAXB7o93.js.map +1 -0
- package/dist/admin/{CreateActionEE-Yfp4hs7a.mjs → CreateActionEE-X2nnG2dm.mjs} +2 -2
- package/dist/admin/{CreateActionEE-Yfp4hs7a.mjs.map → CreateActionEE-X2nnG2dm.mjs.map} +1 -1
- package/dist/admin/{CreatePage-68skzZjY.js → CreatePage-3V_sa8A4.js} +3 -3
- package/dist/admin/{CreatePage-68skzZjY.js.map → CreatePage-3V_sa8A4.js.map} +1 -1
- package/dist/admin/{CreatePage-bdWb1wg4.mjs → CreatePage-5WzWwepG.mjs} +7 -7
- package/dist/admin/CreatePage-5WzWwepG.mjs.map +1 -0
- package/dist/admin/{CreatePage-Yd5JyWS5.mjs → CreatePage-hEdR3uWK.mjs} +3 -3
- package/dist/admin/{CreatePage-Yd5JyWS5.mjs.map → CreatePage-hEdR3uWK.mjs.map} +1 -1
- package/dist/admin/{CreatePage-t5HQUOqJ.js → CreatePage-zzbF8IhD.js} +6 -6
- package/dist/admin/CreatePage-zzbF8IhD.js.map +1 -0
- package/dist/admin/{CreateView-yv51Pyvw.js → CreateView-5EC5Yv96.js} +3 -3
- package/dist/admin/{CreateView-yv51Pyvw.js.map → CreateView-5EC5Yv96.js.map} +1 -1
- package/dist/admin/{CreateView-ZZaA8hbe.mjs → CreateView-OjaERndy.mjs} +3 -3
- package/dist/admin/{CreateView-ZZaA8hbe.mjs.map → CreateView-OjaERndy.mjs.map} +1 -1
- package/dist/admin/{CreateView-V0v5CK8t.mjs → CreateView-S8gDQUCt.mjs} +3 -3
- package/dist/admin/{CreateView-V0v5CK8t.mjs.map → CreateView-S8gDQUCt.mjs.map} +1 -1
- package/dist/admin/{CreateView-nzILLv0g.js → CreateView-ZQEmP8-n.js} +3 -3
- package/dist/admin/{CreateView-nzILLv0g.js.map → CreateView-ZQEmP8-n.js.map} +1 -1
- package/dist/admin/{EditPage-cWJ8V1BK.mjs → EditPage-493L2-vV.mjs} +27 -23
- package/dist/admin/EditPage-493L2-vV.mjs.map +1 -0
- package/dist/admin/{EditPage-A7-BewPd.mjs → EditPage-7fMqo-c-.mjs} +7 -7
- package/dist/admin/EditPage-7fMqo-c-.mjs.map +1 -0
- package/dist/admin/{EditPage-pTQCDncU.js → EditPage-8T9gBnnc.js} +25 -21
- package/dist/admin/EditPage-8T9gBnnc.js.map +1 -0
- package/dist/admin/{EditPage-Lw36XG9G.js → EditPage-OFlfNGv0.js} +6 -6
- package/dist/admin/EditPage-OFlfNGv0.js.map +1 -0
- package/dist/admin/{EditPage-2cMhX4F_.mjs → EditPage-akxbKeqK.mjs} +8 -8
- package/dist/admin/{EditPage-2cMhX4F_.mjs.map → EditPage-akxbKeqK.mjs.map} +1 -1
- package/dist/admin/{EditPage-LoESB5pq.js → EditPage-gJJgatNc.js} +7 -7
- package/dist/admin/{EditPage-LoESB5pq.js.map → EditPage-gJJgatNc.js.map} +1 -1
- package/dist/admin/{EditView-KzdDTSO-.js → EditView-ZJPPeal2.js} +5 -6
- package/dist/admin/EditView-ZJPPeal2.js.map +1 -0
- package/dist/admin/{EditView-HygMdUSf.mjs → EditView-_QID3gT5.mjs} +7 -8
- package/dist/admin/EditView-_QID3gT5.mjs.map +1 -0
- package/dist/admin/{EditViewPage-FgsrW_wV.js → EditViewPage-_wx5u6QJ.js} +5 -5
- package/dist/admin/{EditViewPage-FgsrW_wV.js.map → EditViewPage-_wx5u6QJ.js.map} +1 -1
- package/dist/admin/{EditViewPage-47F2xHBt.mjs → EditViewPage-zkNmb1zg.mjs} +6 -6
- package/dist/admin/{EditViewPage-47F2xHBt.mjs.map → EditViewPage-zkNmb1zg.mjs.map} +1 -1
- package/dist/admin/{EventsTable--XlOTHxM.js → EventsTable-31485Cwq.js} +2 -2
- package/dist/admin/{EventsTable--XlOTHxM.js.map → EventsTable-31485Cwq.js.map} +1 -1
- package/dist/admin/{EventsTable-mgIyB8DL.mjs → EventsTable-_BT8dIHY.mjs} +2 -2
- package/dist/admin/{EventsTable-mgIyB8DL.mjs.map → EventsTable-_BT8dIHY.mjs.map} +1 -1
- package/dist/admin/{HomePage-dyDldozB.mjs → HomePage-LenrY0bj.mjs} +7 -10
- package/dist/admin/HomePage-LenrY0bj.mjs.map +1 -0
- package/dist/admin/{HomePage-H77dsrr1.mjs → HomePage-NdId9gqT.mjs} +3 -3
- package/dist/admin/{HomePage-H77dsrr1.mjs.map → HomePage-NdId9gqT.mjs.map} +1 -1
- package/dist/admin/{HomePage-ywYHZHMa.js → HomePage-T2yVEfC3.js} +15 -18
- package/dist/admin/HomePage-T2yVEfC3.js.map +1 -0
- package/dist/admin/{HomePage-uVwht52t.js → HomePage-yyizKL39.js} +3 -3
- package/dist/admin/{HomePage-uVwht52t.js.map → HomePage-yyizKL39.js.map} +1 -1
- package/dist/admin/{InstalledPluginsPage-3OSkplVn.mjs → InstalledPlugins-Z_uS95dC.mjs} +9 -11
- package/dist/admin/InstalledPlugins-Z_uS95dC.mjs.map +1 -0
- package/dist/admin/{InstalledPluginsPage-JkruwT2d.js → InstalledPlugins-spdwM8ub.js} +9 -11
- package/dist/admin/InstalledPlugins-spdwM8ub.js.map +1 -0
- package/dist/admin/{Layout-8Ds_z3XN.mjs → Layout-5lg6USuO.mjs} +5 -5
- package/dist/admin/{Layout-8Ds_z3XN.mjs.map → Layout-5lg6USuO.mjs.map} +1 -1
- package/dist/admin/{Layout-pVTNV6PU.js → Layout-B3TQMQxb.js} +5 -5
- package/dist/admin/{Layout-pVTNV6PU.js.map → Layout-B3TQMQxb.js.map} +1 -1
- package/dist/admin/{ListPage-semY3kTl.mjs → ListPage--B6TB-mt.mjs} +4 -4
- package/dist/admin/{ListPage-semY3kTl.mjs.map → ListPage--B6TB-mt.mjs.map} +1 -1
- package/dist/admin/{ListPage-DHUp0PDw.js → ListPage-GRLtmRuy.js} +8 -8
- package/dist/admin/ListPage-GRLtmRuy.js.map +1 -0
- package/dist/admin/{ListPage-NtjeF8R2.mjs → ListPage-Ggd99FLO.mjs} +4 -4
- package/dist/admin/{ListPage-NtjeF8R2.mjs.map → ListPage-Ggd99FLO.mjs.map} +1 -1
- package/dist/admin/{ListPage-OIdhjljI.js → ListPage-Hc3VZ9O3.js} +6 -6
- package/dist/admin/{ListPage-OIdhjljI.js.map → ListPage-Hc3VZ9O3.js.map} +1 -1
- package/dist/admin/{ListPage-LokTy34i.mjs → ListPage-LIn0aEKt.mjs} +3 -3
- package/dist/admin/{ListPage-LokTy34i.mjs.map → ListPage-LIn0aEKt.mjs.map} +1 -1
- package/dist/admin/{ListPage-15KiUCLt.js → ListPage-UEsKYDPH.js} +3 -3
- package/dist/admin/{ListPage-15KiUCLt.js.map → ListPage-UEsKYDPH.js.map} +1 -1
- package/dist/admin/{ListPage-dApwERT6.js → ListPage-Vf4xtn8w.js} +5 -5
- package/dist/admin/{ListPage-dApwERT6.js.map → ListPage-Vf4xtn8w.js.map} +1 -1
- package/dist/admin/{ListPage-8M-bmv0a.mjs → ListPage-rCkaHmeP.mjs} +6 -6
- package/dist/admin/{ListPage-8M-bmv0a.mjs.map → ListPage-rCkaHmeP.mjs.map} +1 -1
- package/dist/admin/{ListPage-hNIbvh17.mjs → ListPage-vJik-wkj.mjs} +10 -10
- package/dist/admin/ListPage-vJik-wkj.mjs.map +1 -0
- package/dist/admin/{ListPage-jTpJnTuQ.js → ListPage-y3rcDJX1.js} +3 -3
- package/dist/admin/{ListPage-jTpJnTuQ.js.map → ListPage-y3rcDJX1.js.map} +1 -1
- package/dist/admin/{ListView-ZSEn2tK5.js → ListView-8pEtfLsu.js} +5 -5
- package/dist/admin/{ListView-ZSEn2tK5.js.map → ListView-8pEtfLsu.js.map} +1 -1
- package/dist/admin/{ListView-tCCo7pVS.mjs → ListView-iCqFRGiO.mjs} +5 -5
- package/dist/admin/{ListView-tCCo7pVS.mjs.map → ListView-iCqFRGiO.mjs.map} +1 -1
- package/dist/admin/{ListView-kEuSmXPm.mjs → ListView-jrsV1wF_.mjs} +5 -5
- package/dist/admin/{ListView-kEuSmXPm.mjs.map → ListView-jrsV1wF_.mjs.map} +1 -1
- package/dist/admin/{ListView-MA83TDJF.js → ListView-noYLY_DM.js} +4 -4
- package/dist/admin/{ListView-MA83TDJF.js.map → ListView-noYLY_DM.js.map} +1 -1
- package/dist/admin/{Login-GLcLgHUd.mjs → Login--GgWQano.mjs} +3 -3
- package/dist/admin/{Login-GLcLgHUd.mjs.map → Login--GgWQano.mjs.map} +1 -1
- package/dist/admin/{Login-RrWZQA_X.js → Login-qr72UXGp.js} +3 -3
- package/dist/admin/{Login-RrWZQA_X.js.map → Login-qr72UXGp.js.map} +1 -1
- package/dist/admin/{MagicLinkEE-u0n-nwtv.js → MagicLinkEE-uTufI4yx.js} +3 -3
- package/dist/admin/{MagicLinkEE-u0n-nwtv.js.map → MagicLinkEE-uTufI4yx.js.map} +1 -1
- package/dist/admin/{MagicLinkEE-_qltdLkk.mjs → MagicLinkEE-vQcgXndx.mjs} +3 -3
- package/dist/admin/{MagicLinkEE-_qltdLkk.mjs.map → MagicLinkEE-vQcgXndx.mjs.map} +1 -1
- package/dist/admin/{MarketplacePage-41CstG0b.mjs → MarketplacePage-LRlL_4ys.mjs} +64 -63
- package/dist/admin/MarketplacePage-LRlL_4ys.mjs.map +1 -0
- package/dist/admin/{MarketplacePage-uyOTT12t.js → MarketplacePage-yRWZ54oN.js} +65 -64
- package/dist/admin/MarketplacePage-yRWZ54oN.js.map +1 -0
- package/dist/admin/{Permissions-J2jRpCh_.mjs → Permissions-aSGK8VGG.mjs} +2 -2
- package/dist/admin/{Permissions-J2jRpCh_.mjs.map → Permissions-aSGK8VGG.mjs.map} +1 -1
- package/dist/admin/{Permissions-LMVH6wf4.js → Permissions-bmMBmcv7.js} +2 -2
- package/dist/admin/{Permissions-LMVH6wf4.js.map → Permissions-bmMBmcv7.js.map} +1 -1
- package/dist/admin/{PrivateRoute-ndqg7K6H.js → PrivateRoute-LO9G_pCJ.js} +2 -2
- package/dist/admin/{PrivateRoute-ndqg7K6H.js.map → PrivateRoute-LO9G_pCJ.js.map} +1 -1
- package/dist/admin/{PrivateRoute-4oRTB_tX.mjs → PrivateRoute-S4Lol0B9.mjs} +2 -2
- package/dist/admin/{PrivateRoute-4oRTB_tX.mjs.map → PrivateRoute-S4Lol0B9.mjs.map} +1 -1
- package/dist/admin/{ProfilePage-wxZFen3W.js → ProfilePage-Mte9RhXw.js} +5 -5
- package/dist/admin/ProfilePage-Mte9RhXw.js.map +1 -0
- package/dist/admin/{ProfilePage-zwG0fq_e.mjs → ProfilePage-voofTYei.mjs} +6 -6
- package/dist/admin/ProfilePage-voofTYei.mjs.map +1 -0
- package/dist/admin/{PurchaseAuditLogs-FDPV-ZqU.mjs → PurchaseAuditLogs-8wmVhLCb.mjs} +2 -2
- package/dist/admin/{PurchaseAuditLogs-FDPV-ZqU.mjs.map → PurchaseAuditLogs-8wmVhLCb.mjs.map} +1 -1
- package/dist/admin/{PurchaseAuditLogs-f6iczpRi.js → PurchaseAuditLogs-qxVh-U_P.js} +2 -2
- package/dist/admin/{PurchaseAuditLogs-f6iczpRi.js.map → PurchaseAuditLogs-qxVh-U_P.js.map} +1 -1
- package/dist/admin/{PurchaseSingleSignOn-S0B2HM4d.mjs → PurchaseSingleSignOn-kgjD8gsd.mjs} +2 -2
- package/dist/admin/{PurchaseSingleSignOn-S0B2HM4d.mjs.map → PurchaseSingleSignOn-kgjD8gsd.mjs.map} +1 -1
- package/dist/admin/{PurchaseSingleSignOn-0wXAjOLm.js → PurchaseSingleSignOn-ovEsG_Ud.js} +2 -2
- package/dist/admin/{PurchaseSingleSignOn-0wXAjOLm.js.map → PurchaseSingleSignOn-ovEsG_Ud.js.map} +1 -1
- package/dist/admin/{SelectRoles-h_1srnVz.mjs → SelectRoles-Kzqv2-TI.mjs} +6 -6
- package/dist/admin/SelectRoles-Kzqv2-TI.mjs.map +1 -0
- package/dist/admin/{SelectRoles-MoDtdDcM.js → SelectRoles-pjJ11lBU.js} +7 -7
- package/dist/admin/SelectRoles-pjJ11lBU.js.map +1 -0
- package/dist/admin/{SingleSignOnPage-5CdOsumW.js → SingleSignOnPage-WjL8NvC5.js} +4 -4
- package/dist/admin/{SingleSignOnPage-5CdOsumW.js.map → SingleSignOnPage-WjL8NvC5.js.map} +1 -1
- package/dist/admin/{SingleSignOnPage-AZVczKwR.mjs → SingleSignOnPage-p1fTOytT.mjs} +5 -5
- package/dist/admin/{SingleSignOnPage-AZVczKwR.mjs.map → SingleSignOnPage-p1fTOytT.mjs.map} +1 -1
- package/dist/admin/{Table-EPKfcF5-.mjs → Table-ARSVxoYe.mjs} +12 -19
- package/dist/admin/Table-ARSVxoYe.mjs.map +1 -0
- package/dist/admin/{Table-CpbvaRQh.js → Table-QAvKSSis.js} +12 -19
- package/dist/admin/Table-QAvKSSis.js.map +1 -0
- package/dist/admin/{Theme-PrUuuGtN.mjs → Theme-frC82ceE.mjs} +221 -20
- package/dist/admin/Theme-frC82ceE.mjs.map +1 -0
- package/dist/admin/{Theme-7W0we6BI.js → Theme-y_rWTknM.js} +225 -19
- package/dist/admin/Theme-y_rWTknM.js.map +1 -0
- package/dist/admin/{TokenTypeSelect-yRV19q7R.js → TokenTypeSelect-biZzRJv2.js} +4 -5
- package/dist/admin/{TokenTypeSelect-yRV19q7R.js.map → TokenTypeSelect-biZzRJv2.js.map} +1 -1
- package/dist/admin/{TokenTypeSelect-7Ki5z_3z.mjs → TokenTypeSelect-j-b_9iB9.mjs} +4 -5
- package/dist/admin/{TokenTypeSelect-7Ki5z_3z.mjs.map → TokenTypeSelect-j-b_9iB9.mjs.map} +1 -1
- package/dist/admin/{UseCasePage-as6-3qKD.mjs → UseCasePage-b2VozaZB.mjs} +4 -4
- package/dist/admin/{UseCasePage-as6-3qKD.mjs.map → UseCasePage-b2VozaZB.mjs.map} +1 -1
- package/dist/admin/{UseCasePage-l9OmQYhK.js → UseCasePage-hJH0orUl.js} +4 -4
- package/dist/admin/{UseCasePage-l9OmQYhK.js.map → UseCasePage-hJH0orUl.js.map} +1 -1
- package/dist/admin/{admin-B6AW0Kov.mjs → admin-GZ-AP2T0.mjs} +2 -2
- package/dist/admin/{admin-B6AW0Kov.mjs.map → admin-GZ-AP2T0.mjs.map} +1 -1
- package/dist/admin/{apiTokens-YMUmHnrH.mjs → apiTokens-GQe-GqwZ.mjs} +2 -2
- package/dist/admin/{apiTokens-YMUmHnrH.mjs.map → apiTokens-GQe-GqwZ.mjs.map} +1 -1
- package/dist/admin/{constants-X2uDAtEA.js → constants-bgMqSKBQ.js} +3 -3
- package/dist/admin/{constants-X2uDAtEA.js.map → constants-bgMqSKBQ.js.map} +1 -1
- package/dist/admin/{constants-AYR471DB.mjs → constants-jKuNcrQj.mjs} +3 -3
- package/dist/admin/{constants-AYR471DB.mjs.map → constants-jKuNcrQj.mjs.map} +1 -1
- package/dist/admin/ee.mjs +1 -1
- package/dist/admin/{en-TbnMBjZf.js → en-_1-Nn7iH.js} +3 -2
- package/dist/admin/{en-TbnMBjZf.js.map → en-_1-Nn7iH.js.map} +1 -1
- package/dist/admin/{en-0Ld-ipyI.mjs → en-lDO5lPD0.mjs} +3 -2
- package/dist/admin/{en-0Ld-ipyI.mjs.map → en-lDO5lPD0.mjs.map} +1 -1
- package/dist/admin/{index-Fu3hPmaj.mjs → index-hoTsgrwy.mjs} +136 -279
- package/dist/admin/index-hoTsgrwy.mjs.map +1 -0
- package/dist/admin/{index-w33_0vI-.js → index-we0DbzVF.js} +140 -286
- package/dist/admin/index-we0DbzVF.js.map +1 -0
- package/dist/admin/index.js +5 -4
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +3 -3
- package/dist/admin/{selectors-ZpHhvPK4.mjs → selectors--muHmKGe.mjs} +2 -2
- package/dist/admin/{selectors-ZpHhvPK4.mjs.map → selectors--muHmKGe.mjs.map} +1 -1
- package/dist/admin/{selectors-zQKcCNuz.js → selectors-1ySxKbos.js} +2 -2
- package/dist/admin/{selectors-zQKcCNuz.js.map → selectors-1ySxKbos.js.map} +1 -1
- package/dist/admin/src/StrapiApp.d.ts +8 -6
- package/dist/admin/src/components/Form.d.ts +3 -1
- package/dist/admin/src/components/GuidedTour/Provider.d.ts +0 -4
- package/dist/admin/src/constants.d.ts +10 -0
- package/dist/admin/src/features/Auth.d.ts +1 -1
- package/dist/admin/src/hooks/useRBAC.d.ts +1 -1
- package/dist/admin/src/index.d.ts +3 -0
- package/dist/admin/src/layouts/UnauthenticatedLayout.d.ts +1 -1
- package/dist/admin/src/pages/Marketplace/hooks/useMarketplaceData.d.ts +2 -1
- package/dist/admin/src/pages/Settings/pages/InstalledPlugins.d.ts +3 -0
- package/dist/admin/src/pages/Settings/pages/Roles/components/CollapseLabel.d.ts +1 -1
- package/dist/admin/src/types/permissions.d.ts +3 -1
- package/dist/admin/test.js +3 -3
- package/dist/admin/test.js.map +1 -1
- package/dist/admin/test.mjs +4 -4
- package/dist/admin/test.mjs.map +1 -1
- package/dist/admin/{transferTokens-CNI0TFdA.mjs → transferTokens-v8tNpI_l.mjs} +2 -2
- package/dist/admin/{transferTokens-CNI0TFdA.mjs.map → transferTokens-v8tNpI_l.mjs.map} +1 -1
- package/dist/admin/{useAdminRoles-w6h8NFK5.js → useAdminRoles-0gM7o3f2.js} +2 -2
- package/dist/admin/{useAdminRoles-w6h8NFK5.js.map → useAdminRoles-0gM7o3f2.js.map} +1 -1
- package/dist/admin/{useAdminRoles-lDesL4gN.mjs → useAdminRoles-uRNvxyDX.mjs} +2 -2
- package/dist/admin/{useAdminRoles-lDesL4gN.mjs.map → useAdminRoles-uRNvxyDX.mjs.map} +1 -1
- package/dist/admin/{useLicenseLimitNotification-PaR7jmqd.mjs → useLicenseLimitNotification-Qx_rSpUQ.mjs} +3 -3
- package/dist/admin/{useLicenseLimitNotification-PaR7jmqd.mjs.map → useLicenseLimitNotification-Qx_rSpUQ.mjs.map} +1 -1
- package/dist/admin/{useLicenseLimitNotification-g1vq6nzk.js → useLicenseLimitNotification-eau4ja6h.js} +2 -2
- package/dist/admin/{useLicenseLimitNotification-g1vq6nzk.js.map → useLicenseLimitNotification-eau4ja6h.js.map} +1 -1
- package/dist/admin/{useLicenseLimits-Jy6E6qc2.mjs → useLicenseLimits-j5znikzW.mjs} +2 -2
- package/dist/admin/{useLicenseLimits-Jy6E6qc2.mjs.map → useLicenseLimits-j5znikzW.mjs.map} +1 -1
- package/dist/admin/{useWebhooks-7thg-d57.mjs → useWebhooks-upF7mgdZ.mjs} +2 -2
- package/dist/admin/{useWebhooks-7thg-d57.mjs.map → useWebhooks-upF7mgdZ.mjs.map} +1 -1
- package/dist/admin/{validation-IcNGA_ef.mjs → validation-OR7t0a-C.mjs} +4 -4
- package/dist/admin/validation-OR7t0a-C.mjs.map +1 -0
- package/dist/admin/{validation-4SWh9S5z.js → validation-VuxEFW4W.js} +4 -4
- package/dist/admin/validation-VuxEFW4W.js.map +1 -0
- package/dist/ee/server/src/audit-logs/content-types/audit-log.d.ts +41 -0
- package/dist/ee/server/src/audit-logs/content-types/audit-log.d.ts.map +1 -0
- package/dist/ee/server/src/audit-logs/controllers/audit-logs.d.ts +7 -0
- package/dist/ee/server/src/audit-logs/controllers/audit-logs.d.ts.map +1 -0
- package/dist/ee/server/src/audit-logs/routes/audit-logs.d.ts +19 -0
- package/dist/ee/server/src/audit-logs/routes/audit-logs.d.ts.map +1 -0
- package/dist/ee/server/src/audit-logs/services/audit-logs.d.ts +27 -0
- package/dist/ee/server/src/audit-logs/services/audit-logs.d.ts.map +1 -0
- package/dist/ee/server/src/audit-logs/services/lifecycles.d.ts +12 -0
- package/dist/ee/server/src/audit-logs/services/lifecycles.d.ts.map +1 -0
- package/dist/ee/server/src/audit-logs/validation/audit-logs.d.ts +6 -0
- package/dist/ee/server/src/audit-logs/validation/audit-logs.d.ts.map +1 -0
- package/dist/ee/server/src/bootstrap.d.ts +3 -0
- package/dist/ee/server/src/bootstrap.d.ts.map +1 -0
- package/dist/ee/server/src/config/admin-actions.d.ts +20 -0
- package/dist/ee/server/src/config/admin-actions.d.ts.map +1 -0
- package/dist/ee/server/src/content-types/index.d.ts +3 -0
- package/dist/ee/server/src/content-types/index.d.ts.map +1 -0
- package/dist/ee/server/src/controllers/admin.d.ts +29 -0
- package/dist/ee/server/src/controllers/admin.d.ts.map +1 -0
- package/dist/ee/server/src/controllers/authentication-utils/constants.d.ts +10 -0
- package/dist/ee/server/src/controllers/authentication-utils/constants.d.ts.map +1 -0
- package/dist/ee/server/src/controllers/authentication-utils/index.d.ts +5 -0
- package/dist/ee/server/src/controllers/authentication-utils/index.d.ts.map +1 -0
- package/dist/ee/server/src/controllers/authentication-utils/middlewares.d.ts +9 -0
- package/dist/ee/server/src/controllers/authentication-utils/middlewares.d.ts.map +1 -0
- package/dist/ee/server/src/controllers/authentication-utils/utils.d.ts +55 -0
- package/dist/ee/server/src/controllers/authentication-utils/utils.d.ts.map +1 -0
- package/dist/ee/server/src/controllers/authentication.d.ts +9 -0
- package/dist/ee/server/src/controllers/authentication.d.ts.map +1 -0
- package/dist/ee/server/src/controllers/index.d.ts +48 -0
- package/dist/ee/server/src/controllers/index.d.ts.map +1 -0
- package/dist/ee/server/src/controllers/role.d.ts +20 -0
- package/dist/ee/server/src/controllers/role.d.ts.map +1 -0
- package/dist/ee/server/src/controllers/user.d.ts +8 -0
- package/dist/ee/server/src/controllers/user.d.ts.map +1 -0
- package/dist/ee/server/src/destroy.d.ts +6 -0
- package/dist/ee/server/src/destroy.d.ts.map +1 -0
- package/dist/ee/server/src/index.d.ts +380 -0
- package/dist/ee/server/src/index.d.ts.map +1 -0
- package/dist/ee/server/src/register.d.ts +6 -0
- package/dist/ee/server/src/register.d.ts.map +1 -0
- package/dist/ee/server/src/routes/index.d.ts +47 -0
- package/dist/ee/server/src/routes/index.d.ts.map +1 -0
- package/dist/ee/server/src/routes/license-limit.d.ts +18 -0
- package/dist/ee/server/src/routes/license-limit.d.ts.map +1 -0
- package/dist/ee/server/src/routes/sso.d.ts +29 -0
- package/dist/ee/server/src/routes/sso.d.ts.map +1 -0
- package/dist/ee/server/src/routes/utils.d.ts +3 -0
- package/dist/ee/server/src/routes/utils.d.ts.map +1 -0
- package/dist/ee/server/src/services/auth.d.ts +6 -0
- package/dist/ee/server/src/services/auth.d.ts.map +1 -0
- package/dist/ee/server/src/services/index.d.ts +39 -0
- package/dist/ee/server/src/services/index.d.ts.map +1 -0
- package/dist/ee/server/src/services/metrics.d.ts +8 -0
- package/dist/ee/server/src/services/metrics.d.ts.map +1 -0
- package/dist/ee/server/src/services/passport/provider-registry.d.ts +4 -0
- package/dist/ee/server/src/services/passport/provider-registry.d.ts.map +1 -0
- package/dist/ee/server/src/services/passport/sso.d.ts +19 -0
- package/dist/ee/server/src/services/passport/sso.d.ts.map +1 -0
- package/dist/ee/server/src/services/passport.d.ts +13 -0
- package/dist/ee/server/src/services/passport.d.ts.map +1 -0
- package/dist/ee/server/src/services/role.d.ts +5 -0
- package/dist/ee/server/src/services/role.d.ts.map +1 -0
- package/dist/ee/server/src/services/seat-enforcement.d.ts +6 -0
- package/dist/ee/server/src/services/seat-enforcement.d.ts.map +1 -0
- package/dist/ee/server/src/services/user.d.ts +10 -0
- package/dist/ee/server/src/services/user.d.ts.map +1 -0
- package/dist/ee/server/src/utils/index.d.ts +11 -0
- package/dist/ee/server/src/utils/index.d.ts.map +1 -0
- package/dist/ee/server/src/utils/persisted-tables.d.ts +42 -0
- package/dist/ee/server/src/utils/persisted-tables.d.ts.map +1 -0
- package/dist/ee/server/src/utils/sso-lock.d.ts +6 -0
- package/dist/ee/server/src/utils/sso-lock.d.ts.map +1 -0
- package/dist/ee/server/src/validation/authentication.d.ts +15 -0
- package/dist/ee/server/src/validation/authentication.d.ts.map +1 -0
- package/dist/ee/server/src/validation/role.d.ts +21 -0
- package/dist/ee/server/src/validation/role.d.ts.map +1 -0
- package/dist/ee/server/src/validation/user.d.ts +19 -0
- package/dist/ee/server/src/validation/user.d.ts.map +1 -0
- package/dist/package.json.d.ts +10 -9
- package/dist/server/index.js +1891 -538
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +1687 -333
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/src/domain/action/provider.d.ts +1 -1
- package/dist/server/src/domain/condition/provider.d.ts +3 -1
- package/dist/server/src/domain/condition/provider.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +738 -10
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/services/permission.d.ts +4 -2
- package/dist/server/src/services/permission.d.ts.map +1 -1
- package/dist/shared/contracts/admin.d.ts +1 -0
- package/dist/shared/contracts/admin.d.ts.map +1 -1
- package/dist/shared/contracts/user.d.ts +1 -1
- package/dist/shared/contracts/user.d.ts.map +1 -1
- package/package.json +17 -16
- package/dist/admin/AuthenticatedLayout-06fn7qrH.mjs.map +0 -1
- package/dist/admin/AuthenticatedLayout-eKDwvUFO.js.map +0 -1
- package/dist/admin/ContentBox-3MRTNw0X.js +0 -43
- package/dist/admin/ContentBox-3MRTNw0X.js.map +0 -1
- package/dist/admin/ContentBox-9LBDzws0.mjs +0 -41
- package/dist/admin/ContentBox-9LBDzws0.mjs.map +0 -1
- package/dist/admin/CreatePage-bdWb1wg4.mjs.map +0 -1
- package/dist/admin/CreatePage-t5HQUOqJ.js.map +0 -1
- package/dist/admin/EditPage-A7-BewPd.mjs.map +0 -1
- package/dist/admin/EditPage-Lw36XG9G.js.map +0 -1
- package/dist/admin/EditPage-cWJ8V1BK.mjs.map +0 -1
- package/dist/admin/EditPage-pTQCDncU.js.map +0 -1
- package/dist/admin/EditView-HygMdUSf.mjs.map +0 -1
- package/dist/admin/EditView-KzdDTSO-.js.map +0 -1
- package/dist/admin/HomePage-dyDldozB.mjs.map +0 -1
- package/dist/admin/HomePage-ywYHZHMa.js.map +0 -1
- package/dist/admin/InstalledPluginsPage-3OSkplVn.mjs.map +0 -1
- package/dist/admin/InstalledPluginsPage-JkruwT2d.js.map +0 -1
- package/dist/admin/ListPage-DHUp0PDw.js.map +0 -1
- package/dist/admin/ListPage-hNIbvh17.mjs.map +0 -1
- package/dist/admin/MarketplacePage-41CstG0b.mjs.map +0 -1
- package/dist/admin/MarketplacePage-uyOTT12t.js.map +0 -1
- package/dist/admin/ProfilePage-wxZFen3W.js.map +0 -1
- package/dist/admin/ProfilePage-zwG0fq_e.mjs.map +0 -1
- package/dist/admin/SelectRoles-MoDtdDcM.js.map +0 -1
- package/dist/admin/SelectRoles-h_1srnVz.mjs.map +0 -1
- package/dist/admin/Table-CpbvaRQh.js.map +0 -1
- package/dist/admin/Table-EPKfcF5-.mjs.map +0 -1
- package/dist/admin/Theme-7W0we6BI.js.map +0 -1
- package/dist/admin/Theme-PrUuuGtN.mjs.map +0 -1
- package/dist/admin/index-Fu3hPmaj.mjs.map +0 -1
- package/dist/admin/index-w33_0vI-.js.map +0 -1
- package/dist/admin/src/pages/InstalledPluginsPage.d.ts +0 -3
- package/dist/admin/validation-4SWh9S5z.js.map +0 -1
- package/dist/admin/validation-IcNGA_ef.mjs.map +0 -1
- package/dist/ee/server/index.js +0 -2193
- package/dist/ee/server/index.js.map +0 -1
- package/dist/ee/server/index.mjs +0 -2188
- package/dist/ee/server/index.mjs.map +0 -1
- package/strapi-server.js +0 -18
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditViewPage-FgsrW_wV.js","sources":["../../admin/src/services/contentApi.ts","../../admin/src/pages/Settings/pages/ApiTokens/EditView/apiTokenPermissions.tsx","../../admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.tsx","../../admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.tsx","../../admin/src/pages/Settings/pages/ApiTokens/EditView/components/ActionBoundRoutes.tsx","../../admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.tsx","../../admin/src/pages/Settings/pages/ApiTokens/EditView/components/ContentTypesSection.tsx","../../admin/src/pages/Settings/pages/ApiTokens/EditView/components/Permissions.tsx","../../admin/src/pages/Settings/pages/ApiTokens/EditView/constants.ts","../../admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.ts","../../admin/src/pages/Settings/pages/ApiTokens/EditView/reducer.ts","../../admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.tsx"],"sourcesContent":["import { adminApi } from './api';\n\nimport type { List as ListContentApiPermissions } from '../../../shared/contracts/content-api/permissions';\nimport type { List as ListContentApiRoutes } from '../../../shared/contracts/content-api/routes';\n\nconst contentApiService = adminApi.injectEndpoints({\n endpoints: (builder) => ({\n getPermissions: builder.query<ListContentApiPermissions.Response['data'], void>({\n query: () => '/admin/content-api/permissions',\n transformResponse: (response: ListContentApiPermissions.Response) => response.data,\n }),\n getRoutes: builder.query<ListContentApiRoutes.Response['data'], void>({\n query: () => '/admin/content-api/routes',\n transformResponse: (response: ListContentApiRoutes.Response) => response.data,\n }),\n }),\n overrideExisting: false,\n});\n\nconst { useGetPermissionsQuery, useGetRoutesQuery } = contentApiService;\n\nexport { useGetPermissionsQuery, useGetRoutesQuery };\n","/* eslint-disable check-file/filename-naming-convention */\n\nimport * as React from 'react';\n\nimport { createContext } from '@radix-ui/react-context';\n\nimport { List as ListContentApiPermissions } from '../../../../../../../shared/contracts/content-api/permissions';\nimport { List as ListContentApiRoutes } from '../../../../../../../shared/contracts/content-api/routes';\n\nexport interface PseudoEvent {\n target: { value: string };\n}\n\ninterface ApiTokenPermissionsContextValue {\n value: {\n selectedAction: string | null;\n routes: ListContentApiRoutes.Response['data'];\n selectedActions: string[];\n data: {\n allActionsIds: string[];\n permissions: ListContentApiPermissions.Response['data'][];\n };\n onChange: ({ target: { value } }: PseudoEvent) => void;\n onChangeSelectAll: ({\n target: { value },\n }: {\n target: { value: { action: string; actionId: string }[] };\n }) => void;\n setSelectedAction: ({ target: { value } }: PseudoEvent) => void;\n };\n}\n\ninterface ApiTokenPermissionsContextProviderProps extends ApiTokenPermissionsContextValue {\n children: React.ReactNode | React.ReactNode[];\n}\n\nconst [ApiTokenPermissionsContextProvider, useApiTokenPermissionsContext] =\n createContext<ApiTokenPermissionsContextValue>('ApiTokenPermissionsContext');\n\nconst ApiTokenPermissionsProvider = ({\n children,\n ...rest\n}: ApiTokenPermissionsContextProviderProps) => {\n return (\n <ApiTokenPermissionsContextProvider {...rest}>{children}</ApiTokenPermissionsContextProvider>\n );\n};\n\nconst useApiTokenPermissions = () => useApiTokenPermissionsContext('useApiTokenPermissions');\n\nexport { ApiTokenPermissionsProvider, useApiTokenPermissions };\nexport type { ApiTokenPermissionsContextValue, ApiTokenPermissionsContextProviderProps };\n","import * as React from 'react';\n\nimport { Box, Flex, Grid, Typography } from '@strapi/design-system';\nimport { FormikErrors } from 'formik';\nimport { useIntl } from 'react-intl';\n\nimport { LifeSpanInput } from '../../../../components/Tokens/LifeSpanInput';\nimport { TokenDescription } from '../../../../components/Tokens/TokenDescription';\nimport { TokenName } from '../../../../components/Tokens/TokenName';\nimport { TokenTypeSelect } from '../../../../components/Tokens/TokenTypeSelect';\n\nimport type { ApiToken } from '../../../../../../../../shared/contracts/api-token';\n\ninterface FormApiTokenContainerProps {\n errors?: FormikErrors<Pick<ApiToken, 'name' | 'description' | 'lifespan' | 'type'>>;\n onChange: ({ target: { name, value } }: { target: { name: string; value: string } }) => void;\n canEditInputs: boolean;\n values?: Partial<Pick<ApiToken, 'name' | 'description' | 'lifespan' | 'type'>>;\n isCreating: boolean;\n apiToken?: null | Partial<ApiToken>;\n onDispatch: React.Dispatch<any>;\n setHasChangedPermissions: (hasChanged: boolean) => void;\n}\n\nexport const FormApiTokenContainer = ({\n errors = {},\n onChange,\n canEditInputs,\n isCreating,\n values = {},\n apiToken = {},\n onDispatch,\n setHasChangedPermissions,\n}: FormApiTokenContainerProps) => {\n const { formatMessage } = useIntl();\n\n const handleChangeSelectApiTokenType = ({ target: { value } }: { target: { value: string } }) => {\n setHasChangedPermissions(false);\n\n if (value === 'full-access') {\n onDispatch({\n type: 'SELECT_ALL_ACTIONS',\n });\n }\n if (value === 'read-only') {\n onDispatch({\n type: 'ON_CHANGE_READ_ONLY',\n });\n }\n };\n\n const typeOptions = [\n {\n value: 'read-only',\n label: {\n id: 'Settings.tokens.types.read-only',\n defaultMessage: 'Read-only',\n },\n },\n {\n value: 'full-access',\n label: {\n id: 'Settings.tokens.types.full-access',\n defaultMessage: 'Full access',\n },\n },\n {\n value: 'custom',\n label: {\n id: 'Settings.tokens.types.custom',\n defaultMessage: 'Custom',\n },\n },\n ];\n\n return (\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n <Grid.Root gap={5}>\n <Grid.Item key=\"name\" col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <TokenName\n error={errors['name']}\n value={values['name']}\n canEditInputs={canEditInputs}\n onChange={onChange}\n />\n </Grid.Item>\n <Grid.Item key=\"description\" col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <TokenDescription\n error={errors['description']}\n value={values['description']}\n canEditInputs={canEditInputs}\n onChange={onChange}\n />\n </Grid.Item>\n <Grid.Item key=\"lifespan\" col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <LifeSpanInput\n isCreating={isCreating}\n error={errors['lifespan']}\n value={values['lifespan']}\n onChange={onChange}\n token={apiToken}\n />\n </Grid.Item>\n\n <Grid.Item key=\"type\" col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <TokenTypeSelect\n value={values['type']}\n error={errors['type']}\n label={{\n id: 'Settings.tokens.form.type',\n defaultMessage: 'Token type',\n }}\n onChange={(value) => {\n // @ts-expect-error – DS Select supports numbers & strings, will be removed in V2\n handleChangeSelectApiTokenType({ target: { value } });\n\n // @ts-expect-error – DS Select supports numbers & strings, will be removed in V2\n onChange({ target: { name: 'type', value } });\n }}\n options={typeOptions}\n canEditInputs={canEditInputs}\n />\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n );\n};\n","import React from 'react';\n\nimport { Box, BoxComponent, Flex, Typography } from '@strapi/design-system';\nimport map from 'lodash/map';\nimport tail from 'lodash/tail';\nimport { useIntl } from 'react-intl';\nimport { styled, DefaultTheme } from 'styled-components';\n\ntype HttpVerb = 'POST' | 'GET' | 'PUT' | 'DELETE';\n\ntype MethodColor = {\n text: keyof DefaultTheme['colors'];\n border: keyof DefaultTheme['colors'];\n background: keyof DefaultTheme['colors'];\n};\n\nconst getMethodColor = (verb: HttpVerb): MethodColor => {\n switch (verb) {\n case 'POST': {\n return {\n text: 'success600',\n border: 'success200',\n background: 'success100',\n };\n }\n case 'GET': {\n return {\n text: 'secondary600',\n border: 'secondary200',\n background: 'secondary100',\n };\n }\n case 'PUT': {\n return {\n text: 'warning600',\n border: 'warning200',\n background: 'warning100',\n };\n }\n case 'DELETE': {\n return {\n text: 'danger600',\n border: 'danger200',\n background: 'danger100',\n };\n }\n default: {\n return {\n text: 'neutral600',\n border: 'neutral200',\n background: 'neutral100',\n };\n }\n }\n};\n\nconst MethodBox = styled<BoxComponent>(Box)`\n margin: -1px;\n border-radius: ${({ theme }) => theme.spaces[1]} 0 0 ${({ theme }) => theme.spaces[1]};\n`;\n\ninterface BoundRouteProps {\n route: {\n handler: string;\n method: HttpVerb;\n path: string;\n };\n}\n\nexport const BoundRoute = ({\n route = {\n handler: 'Nocontroller.error',\n method: 'GET',\n path: '/there-is-no-path',\n },\n}: BoundRouteProps) => {\n const { formatMessage } = useIntl();\n\n const { method, handler: title, path } = route;\n const formattedRoute = path ? tail(path.split('/')) : [];\n const [controller = '', action = ''] = title ? title.split('.') : [];\n const colors = getMethodColor(route.method);\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage({\n id: 'Settings.apiTokens.createPage.BoundRoute.title',\n defaultMessage: 'Bound route to',\n })}\n \n <span>{controller}</span>\n <Typography variant=\"delta\" textColor=\"primary600\">\n .{action}\n </Typography>\n </Typography>\n <Flex hasRadius background=\"neutral0\" borderColor=\"neutral200\" gap={0}>\n <MethodBox background={colors.background} borderColor={colors.border} padding={2}>\n <Typography fontWeight=\"bold\" textColor={colors.text}>\n {method}\n </Typography>\n </MethodBox>\n <Box paddingLeft={2} paddingRight={2}>\n {map(formattedRoute, (value) => (\n <Typography key={value} textColor={value.includes(':') ? 'neutral600' : 'neutral900'}>\n /{value}\n </Typography>\n ))}\n </Box>\n </Flex>\n </Flex>\n );\n};\n","import { Grid, Flex, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useApiTokenPermissions } from '../apiTokenPermissions';\n\nimport { BoundRoute } from './BoundRoute';\n\nexport const ActionBoundRoutes = () => {\n const {\n value: { selectedAction, routes },\n } = useApiTokenPermissions();\n const { formatMessage } = useIntl();\n const actionSection = selectedAction?.split('.')[0];\n\n return (\n <Grid.Item\n col={5}\n background=\"neutral150\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n style={{ minHeight: '100%' }}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n {selectedAction ? (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n {actionSection &&\n actionSection in routes &&\n routes[actionSection].map((route) => {\n return route.config.auth?.scope?.includes(selectedAction) ||\n route.handler === selectedAction ? (\n <BoundRoute key={route.handler} route={route} />\n ) : null;\n })}\n </Flex>\n ) : (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage({\n id: 'Settings.apiTokens.createPage.permissions.header.title',\n defaultMessage: 'Advanced settings',\n })}\n </Typography>\n <Typography tag=\"p\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.apiTokens.createPage.permissions.header.hint',\n defaultMessage:\n \"Select the application's actions or the plugin's actions and click on the cog icon to display the bound route\",\n })}\n </Typography>\n </Flex>\n )}\n </Grid.Item>\n );\n};\n","import * as React from 'react';\n\nimport {\n Accordion,\n Box,\n BoxComponent,\n Checkbox,\n Flex,\n Grid,\n Typography,\n} from '@strapi/design-system';\nimport { Cog } from '@strapi/icons';\nimport capitalize from 'lodash/capitalize';\nimport { useIntl } from 'react-intl';\nimport { styled, css } from 'styled-components';\n\nimport { ContentApiPermission } from '../../../../../../../../shared/contracts/content-api/permissions';\nimport { useApiTokenPermissions } from '../apiTokenPermissions';\n\nconst activeCheckboxWrapperStyles = css`\n background: ${(props) => props.theme.colors.primary100};\n\n #cog {\n opacity: 1;\n }\n`;\n\nconst CheckboxWrapper = styled<BoxComponent>(Box)<{ $isActive: boolean }>`\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n #cog {\n opacity: 0;\n path {\n fill: ${(props) => props.theme.colors.primary600};\n }\n }\n\n /* Show active style both on hover and when the action is selected */\n ${(props) => props.$isActive && activeCheckboxWrapperStyles}\n &:hover {\n ${activeCheckboxWrapperStyles}\n }\n`;\n\nconst Border = styled.div`\n flex: 1;\n align-self: center;\n border-top: 1px solid ${({ theme }) => theme.colors.neutral150};\n`;\n\ninterface CollapsableContentTypeProps {\n controllers?: ContentApiPermission['controllers'];\n label: ContentApiPermission['label'];\n orderNumber?: number;\n disabled?: boolean;\n}\n\nexport const CollapsableContentType = ({\n controllers = [],\n label,\n orderNumber = 0,\n disabled = false,\n}: CollapsableContentTypeProps) => {\n const {\n value: { onChangeSelectAll, onChange, selectedActions, setSelectedAction, selectedAction },\n } = useApiTokenPermissions();\n const { formatMessage } = useIntl();\n\n const isActionSelected = (actionId: string) => actionId === selectedAction;\n\n return (\n <Accordion.Item value={`${label}-${orderNumber}`}>\n <Accordion.Header variant={orderNumber % 2 ? 'primary' : 'secondary'}>\n <Accordion.Trigger>{capitalize(label)}</Accordion.Trigger>\n </Accordion.Header>\n <Accordion.Content>\n {controllers?.map((controller) => {\n const allActionsSelected = controller.actions.every((action) =>\n selectedActions.includes(action.actionId)\n );\n\n const someActionsSelected = controller.actions.some((action) =>\n selectedActions.includes(action.actionId)\n );\n\n return (\n <Box key={`${label}.${controller?.controller}`}>\n <Flex justifyContent=\"space-between\" alignItems=\"center\" padding={4}>\n <Box paddingRight={4}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {controller?.controller}\n </Typography>\n </Box>\n <Border />\n <Box paddingLeft={4}>\n <Checkbox\n checked={\n !allActionsSelected && someActionsSelected\n ? 'indeterminate'\n : allActionsSelected\n }\n onCheckedChange={() => {\n onChangeSelectAll({ target: { value: [...controller.actions] } });\n }}\n disabled={disabled}\n >\n {formatMessage({ id: 'app.utils.select-all', defaultMessage: 'Select all' })}\n </Checkbox>\n </Box>\n </Flex>\n <Grid.Root gap={4} padding={4}>\n {controller?.actions &&\n controller?.actions.map((action) => {\n return (\n <Grid.Item\n col={6}\n key={action.actionId}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <CheckboxWrapper\n $isActive={isActionSelected(action.actionId)}\n padding={2}\n hasRadius\n >\n <Checkbox\n checked={selectedActions.includes(action.actionId)}\n name={action.actionId}\n onCheckedChange={() => {\n onChange({ target: { value: action.actionId } });\n }}\n disabled={disabled}\n >\n {action.action}\n </Checkbox>\n <button\n type=\"button\"\n data-testid=\"action-cog\"\n onClick={() =>\n setSelectedAction({ target: { value: action.actionId } })\n }\n style={{ display: 'inline-flex', alignItems: 'center' }}\n >\n <Cog id=\"cog\" />\n </button>\n </CheckboxWrapper>\n </Grid.Item>\n );\n })}\n </Grid.Root>\n </Box>\n );\n })}\n </Accordion.Content>\n </Accordion.Item>\n );\n};\n","import { Accordion, Box } from '@strapi/design-system';\n\nimport { ContentApiPermission } from '../../../../../../../../shared/contracts/content-api/permissions';\n\nimport { CollapsableContentType } from './CollapsableContentType';\n\ninterface ContentTypesSectionProps {\n section: ContentApiPermission[] | null;\n}\n\nexport const ContentTypesSection = ({ section = null, ...props }: ContentTypesSectionProps) => {\n return (\n <Box padding={4} background=\"neutral0\">\n <Accordion.Root size=\"M\">\n {section &&\n section.map((api, index) => (\n <CollapsableContentType\n key={api.apiId}\n label={api.label}\n controllers={api.controllers}\n orderNumber={index}\n {...props}\n />\n ))}\n </Accordion.Root>\n </Box>\n );\n};\n","import { Flex, Grid, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useApiTokenPermissions } from '../apiTokenPermissions';\n\nimport { ActionBoundRoutes } from './ActionBoundRoutes';\nimport { ContentTypesSection } from './ContentTypesSection';\n\nexport const Permissions = ({ ...props }) => {\n const {\n value: { data },\n } = useApiTokenPermissions();\n const { formatMessage } = useIntl();\n\n return (\n <Grid.Root gap={0} shadow=\"filterShadow\" hasRadius background=\"neutral0\">\n <Grid.Item\n col={7}\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'Settings.apiTokens.createPage.permissions.title',\n defaultMessage: 'Permissions',\n })}\n </Typography>\n <Typography tag=\"p\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.apiTokens.createPage.permissions.description',\n defaultMessage: 'Only actions bound by a route are listed below.',\n })}\n </Typography>\n </Flex>\n {data?.permissions && <ContentTypesSection section={data?.permissions} {...props} />}\n </Grid.Item>\n <ActionBoundRoutes />\n </Grid.Root>\n );\n};\n","import * as yup from 'yup';\n\nimport { translatedErrors } from '../../../../../utils/translatedErrors';\n\nexport const schema = yup.object().shape({\n name: yup.string().max(100).required(translatedErrors.required.id),\n type: yup\n .string()\n .oneOf(['read-only', 'full-access', 'custom'])\n .required(translatedErrors.required.id),\n description: yup.string().nullable(),\n lifespan: yup.number().integer().min(0).nullable().defined(translatedErrors.required.id),\n});\n","import { ContentApiPermission } from '../../../../../../../../shared/contracts/content-api/permissions';\n\ninterface Layout {\n allActionsIds: string[];\n permissions: {\n apiId: string;\n label: string;\n controllers: { controller: string; actions: { action: string; actionId: string }[] }[];\n }[];\n}\n\nexport const transformPermissionsData = (data: ContentApiPermission) => {\n const layout: Layout = {\n allActionsIds: [],\n permissions: [],\n };\n\n layout.permissions = Object.entries(data).map(([apiId, permission]) => ({\n apiId,\n label: apiId.split('::')[1],\n controllers: Object.keys(permission.controllers)\n .map((controller) => ({\n controller,\n actions:\n controller in permission.controllers\n ? permission.controllers[controller]\n .map((action: ContentApiPermission['controllers']) => {\n const actionId = `${apiId}.${controller}.${action}`;\n\n if (apiId.includes('api::')) {\n layout.allActionsIds.push(actionId);\n }\n\n return {\n action,\n actionId,\n };\n })\n .flat()\n : [],\n }))\n .flat(),\n }));\n\n return layout;\n};\n","/* eslint-disable consistent-return */\nimport { produce } from 'immer';\nimport pull from 'lodash/pull';\n\nimport { ContentApiPermission } from '../../../../../../../shared/contracts/content-api/permissions';\n\nimport { ApiTokenPermissionsContextValue } from './apiTokenPermissions';\nimport { transformPermissionsData } from './utils/transformPermissionsData';\n\ntype InitialState = Pick<\n ApiTokenPermissionsContextValue['value'],\n 'data' | 'routes' | 'selectedAction' | 'selectedActions'\n>;\n\ninterface ActionOnChange {\n type: 'ON_CHANGE';\n value: string;\n}\n\ninterface ActionSelectAllInPermission {\n type: 'SELECT_ALL_IN_PERMISSION';\n value: { action: string; actionId: string }[];\n}\n\ninterface ActionSelectAllActions {\n type: 'SELECT_ALL_ACTIONS';\n}\n\ninterface ActionOnChangeReadOnly {\n type: 'ON_CHANGE_READ_ONLY';\n}\n\ninterface ActionUpdatePermissionsLayout {\n type: 'UPDATE_PERMISSIONS_LAYOUT';\n value: ContentApiPermission;\n}\n\ninterface ActionUpdateRoutes {\n type: 'UPDATE_ROUTES';\n value: ApiTokenPermissionsContextValue['value']['routes'] | undefined;\n}\n\ninterface ActionUpdatePermissions {\n type: 'UPDATE_PERMISSIONS';\n value: any[];\n}\n\ninterface ActionSetSelectedAction {\n type: 'SET_SELECTED_ACTION';\n value: string;\n}\n\ntype Action =\n | ActionOnChange\n | ActionSelectAllInPermission\n | ActionSelectAllActions\n | ActionOnChangeReadOnly\n | ActionUpdatePermissionsLayout\n | ActionUpdateRoutes\n | ActionUpdatePermissions\n | ActionSetSelectedAction;\n\nexport const initialState: InitialState = {\n data: {\n allActionsIds: [],\n permissions: [],\n },\n routes: {},\n selectedAction: '',\n selectedActions: [],\n};\n\nexport const reducer = (state: InitialState, action: Action) =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'ON_CHANGE': {\n if (draftState.selectedActions.includes(action.value)) {\n pull(draftState.selectedActions, action.value);\n } else {\n draftState.selectedActions.push(action.value);\n }\n break;\n }\n case 'SELECT_ALL_IN_PERMISSION': {\n const areAllSelected = action.value.every((item) =>\n draftState.selectedActions.includes(item.actionId)\n );\n\n if (areAllSelected) {\n action.value.forEach((item) => {\n pull(draftState.selectedActions, item.actionId);\n });\n } else {\n action.value.forEach((item) => {\n draftState.selectedActions.push(item.actionId);\n });\n }\n break;\n }\n\n case 'SELECT_ALL_ACTIONS': {\n draftState.selectedActions = [...draftState.data.allActionsIds];\n\n break;\n }\n case 'ON_CHANGE_READ_ONLY': {\n const onlyReadOnlyActions = draftState.data.allActionsIds.filter(\n (actionId) => actionId.includes('find') || actionId.includes('findOne')\n );\n draftState.selectedActions = [...onlyReadOnlyActions];\n break;\n }\n case 'UPDATE_PERMISSIONS_LAYOUT': {\n draftState.data = transformPermissionsData(action.value);\n break;\n }\n case 'UPDATE_ROUTES': {\n draftState.routes = { ...action.value };\n break;\n }\n case 'UPDATE_PERMISSIONS': {\n draftState.selectedActions = [...action.value];\n break;\n }\n case 'SET_SELECTED_ACTION': {\n draftState.selectedAction = action.value;\n break;\n }\n default:\n return draftState;\n }\n });\n","import * as React from 'react';\n\nimport { Flex } from '@strapi/design-system';\nimport { Formik, Form, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useMatch, useNavigate } from 'react-router-dom';\n\nimport { useGuidedTour } from '../../../../../components/GuidedTour/Provider';\nimport { Layouts } from '../../../../../components/Layouts/Layout';\nimport { Page } from '../../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../../core/store/hooks';\nimport { useNotification } from '../../../../../features/Notifications';\nimport { useTracking } from '../../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../../hooks/useAPIErrorHandler';\nimport { useRBAC } from '../../../../../hooks/useRBAC';\nimport {\n useCreateAPITokenMutation,\n useGetAPITokenQuery,\n useUpdateAPITokenMutation,\n} from '../../../../../services/apiTokens';\nimport { useGetPermissionsQuery, useGetRoutesQuery } from '../../../../../services/contentApi';\nimport { isBaseQueryError } from '../../../../../utils/baseQuery';\nimport { API_TOKEN_TYPE } from '../../../components/Tokens/constants';\nimport { FormHead } from '../../../components/Tokens/FormHead';\nimport { TokenBox } from '../../../components/Tokens/TokenBox';\n\nimport {\n ApiTokenPermissionsContextValue,\n ApiTokenPermissionsProvider,\n} from './apiTokenPermissions';\nimport { FormApiTokenContainer } from './components/FormApiTokenContainer';\nimport { Permissions } from './components/Permissions';\nimport { schema } from './constants';\nimport { initialState, reducer } from './reducer';\n\nimport type { Get, ApiToken } from '../../../../../../../shared/contracts/api-token';\n\n/**\n * TODO: this could definitely be refactored to avoid using redux and instead just use the\n * server response as the source of the truth for the data.\n */\nexport const EditView = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { state: locationState } = useLocation();\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const [apiToken, setApiToken] = React.useState<ApiToken | null>(\n locationState?.apiToken?.accessKey\n ? {\n ...locationState.apiToken,\n }\n : null\n );\n const { trackUsage } = useTracking();\n const setCurrentStep = useGuidedTour('EditView', (state) => state.setCurrentStep);\n const {\n allowedActions: { canCreate, canUpdate, canRegenerate },\n } = useRBAC(permissions.settings?.['api-tokens']);\n const [state, dispatch] = React.useReducer(reducer, initialState);\n const match = useMatch('/settings/api-tokens/:id');\n const id = match?.params?.id;\n const isCreating = id === 'create';\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidtionErrors,\n } = useAPIErrorHandler();\n\n const navigate = useNavigate();\n\n const contentAPIPermissionsQuery = useGetPermissionsQuery();\n const contentAPIRoutesQuery = useGetRoutesQuery();\n\n /**\n * Separate effects otherwise we could end\n * up duplicating the same notification.\n */\n React.useEffect(() => {\n if (contentAPIPermissionsQuery.error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(contentAPIPermissionsQuery.error),\n });\n }\n }, [contentAPIPermissionsQuery.error, formatAPIError, toggleNotification]);\n\n React.useEffect(() => {\n if (contentAPIRoutesQuery.error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(contentAPIRoutesQuery.error),\n });\n }\n }, [contentAPIRoutesQuery.error, formatAPIError, toggleNotification]);\n\n React.useEffect(() => {\n if (contentAPIPermissionsQuery.data) {\n dispatch({\n type: 'UPDATE_PERMISSIONS_LAYOUT',\n value: contentAPIPermissionsQuery.data,\n });\n }\n }, [contentAPIPermissionsQuery.data]);\n\n React.useEffect(() => {\n if (contentAPIRoutesQuery.data) {\n dispatch({\n type: 'UPDATE_ROUTES',\n value: contentAPIRoutesQuery.data,\n });\n }\n }, [contentAPIRoutesQuery.data]);\n\n React.useEffect(() => {\n if (apiToken) {\n if (apiToken.type === 'read-only') {\n dispatch({\n type: 'ON_CHANGE_READ_ONLY',\n });\n }\n if (apiToken.type === 'full-access') {\n dispatch({\n type: 'SELECT_ALL_ACTIONS',\n });\n }\n if (apiToken.type === 'custom') {\n dispatch({\n type: 'UPDATE_PERMISSIONS',\n value: apiToken?.permissions,\n });\n }\n }\n }, [apiToken]);\n\n React.useEffect(() => {\n trackUsage(isCreating ? 'didAddTokenFromList' : 'didEditTokenFromList', {\n tokenType: API_TOKEN_TYPE,\n });\n }, [isCreating, trackUsage]);\n\n const { data, error, isLoading } = useGetAPITokenQuery(id!, {\n skip: !id || isCreating || !!apiToken,\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 React.useEffect(() => {\n if (data) {\n setApiToken(data);\n\n if (data.type === 'read-only') {\n dispatch({\n type: 'ON_CHANGE_READ_ONLY',\n });\n }\n if (data.type === 'full-access') {\n dispatch({\n type: 'SELECT_ALL_ACTIONS',\n });\n }\n if (data.type === 'custom') {\n dispatch({\n type: 'UPDATE_PERMISSIONS',\n value: data?.permissions,\n });\n }\n }\n }, [data]);\n\n const [createToken] = useCreateAPITokenMutation();\n const [updateToken] = useUpdateAPITokenMutation();\n\n interface FormValues extends Pick<Get.Response['data'], 'name' | 'description'> {\n lifespan: Get.Response['data']['lifespan'] | undefined;\n type: Get.Response['data']['type'] | undefined;\n }\n\n const handleSubmit = async (body: FormValues, formik: FormikHelpers<FormValues>) => {\n trackUsage(isCreating ? 'willCreateToken' : 'willEditToken', {\n tokenType: API_TOKEN_TYPE,\n });\n\n try {\n if (isCreating) {\n const res = await createToken({\n ...body,\n // lifespan must be \"null\" for unlimited (0 would mean instantly expired and isn't accepted)\n lifespan:\n body?.lifespan && body.lifespan !== '0' ? parseInt(body.lifespan.toString(), 10) : null,\n permissions: body.type === 'custom' ? state.selectedActions : null,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidtionErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'notification.success.apitokencreated',\n defaultMessage: 'API Token successfully created',\n }),\n });\n\n trackUsage('didCreateToken', {\n type: res.data.type,\n tokenType: API_TOKEN_TYPE,\n });\n\n navigate(`../api-tokens/${res.data.id.toString()}`, {\n state: { apiToken: res.data },\n replace: true,\n });\n setCurrentStep('apiTokens.success');\n } else {\n const res = await updateToken({\n id: id!,\n name: body.name,\n description: body.description,\n type: body.type,\n permissions: body.type === 'custom' ? state.selectedActions : null,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidtionErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'notification.success.apitokenedited',\n defaultMessage: 'API Token successfully edited',\n }),\n });\n\n trackUsage('didEditToken', {\n type: res.data.type,\n tokenType: API_TOKEN_TYPE,\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n }),\n });\n }\n };\n\n const [hasChangedPermissions, setHasChangedPermissions] = React.useState(false);\n\n const handleChangeCheckbox = ({\n target: { value },\n }: Parameters<ApiTokenPermissionsContextValue['value']['onChange']>[0]) => {\n setHasChangedPermissions(true);\n dispatch({\n type: 'ON_CHANGE',\n value,\n });\n };\n\n const handleChangeSelectAllCheckbox = ({\n target: { value },\n }: Parameters<ApiTokenPermissionsContextValue['value']['onChangeSelectAll']>[0]) => {\n setHasChangedPermissions(true);\n dispatch({\n type: 'SELECT_ALL_IN_PERMISSION',\n value,\n });\n };\n\n const setSelectedAction = ({\n target: { value },\n }: Parameters<ApiTokenPermissionsContextValue['value']['setSelectedAction']>[0]) => {\n dispatch({\n type: 'SET_SELECTED_ACTION',\n value,\n });\n };\n\n const providerValue = {\n ...state,\n onChange: handleChangeCheckbox,\n onChangeSelectAll: handleChangeSelectAllCheckbox,\n setSelectedAction,\n };\n\n const canEditInputs = (canUpdate && !isCreating) || (canCreate && isCreating);\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <ApiTokenPermissionsProvider value={providerValue}>\n <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n { name: 'API Tokens' }\n )}\n </Page.Title>\n <Formik\n validationSchema={schema}\n validateOnChange={false}\n initialValues={{\n name: apiToken?.name || '',\n description: apiToken?.description || '',\n type: apiToken?.type,\n lifespan: apiToken?.lifespan,\n }}\n enableReinitialize\n onSubmit={(body, actions) => handleSubmit(body, actions)}\n >\n {({ errors, handleChange, isSubmitting, values, setFieldValue }) => {\n if (hasChangedPermissions && values?.type !== 'custom') {\n setFieldValue('type', 'custom');\n }\n\n return (\n <Form>\n <FormHead\n title={{\n id: 'Settings.apiTokens.createPage.title',\n defaultMessage: 'Create API Token',\n }}\n token={apiToken}\n setToken={setApiToken}\n canEditInputs={canEditInputs}\n canRegenerate={canRegenerate}\n isSubmitting={isSubmitting}\n regenerateUrl=\"/admin/api-tokens/\"\n />\n\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {Boolean(apiToken?.name) && (\n <TokenBox token={apiToken?.accessKey} tokenType={API_TOKEN_TYPE} />\n )}\n <FormApiTokenContainer\n errors={errors}\n onChange={handleChange}\n canEditInputs={canEditInputs}\n isCreating={isCreating}\n values={values}\n apiToken={apiToken}\n onDispatch={dispatch}\n setHasChangedPermissions={setHasChangedPermissions}\n />\n <Permissions\n disabled={\n !canEditInputs ||\n values?.type === 'read-only' ||\n values?.type === 'full-access'\n }\n />\n </Flex>\n </Layouts.Content>\n </Form>\n );\n }}\n </Formik>\n </Page.Main>\n </ApiTokenPermissionsProvider>\n );\n};\n\nexport const ProtectedEditView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['api-tokens'].read\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditView />\n </Page.Protect>\n );\n};\n"],"names":["adminApi","createContext","jsx","useIntl","Box","Flex","Typography","jsxs","Grid","TokenName","TokenDescription","LifeSpanInput","TokenTypeSelect","styled","tail","css","Accordion","capitalize","Checkbox","Cog","yup","translatedErrors","produce","pull","useNotification","useLocation","useTypedSelector","state","React","useTracking","useGuidedTour","useRBAC","useMatch","useAPIErrorHandler","useNavigate","API_TOKEN_TYPE","useGetAPITokenQuery","useCreateAPITokenMutation","useUpdateAPITokenMutation","isBaseQueryError","Page","Formik","Form","FormHead","Layouts","TokenBox"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EditViewPage-_wx5u6QJ.js","sources":["../../admin/src/services/contentApi.ts","../../admin/src/pages/Settings/pages/ApiTokens/EditView/apiTokenPermissions.tsx","../../admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.tsx","../../admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.tsx","../../admin/src/pages/Settings/pages/ApiTokens/EditView/components/ActionBoundRoutes.tsx","../../admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.tsx","../../admin/src/pages/Settings/pages/ApiTokens/EditView/components/ContentTypesSection.tsx","../../admin/src/pages/Settings/pages/ApiTokens/EditView/components/Permissions.tsx","../../admin/src/pages/Settings/pages/ApiTokens/EditView/constants.ts","../../admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.ts","../../admin/src/pages/Settings/pages/ApiTokens/EditView/reducer.ts","../../admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.tsx"],"sourcesContent":["import { adminApi } from './api';\n\nimport type { List as ListContentApiPermissions } from '../../../shared/contracts/content-api/permissions';\nimport type { List as ListContentApiRoutes } from '../../../shared/contracts/content-api/routes';\n\nconst contentApiService = adminApi.injectEndpoints({\n endpoints: (builder) => ({\n getPermissions: builder.query<ListContentApiPermissions.Response['data'], void>({\n query: () => '/admin/content-api/permissions',\n transformResponse: (response: ListContentApiPermissions.Response) => response.data,\n }),\n getRoutes: builder.query<ListContentApiRoutes.Response['data'], void>({\n query: () => '/admin/content-api/routes',\n transformResponse: (response: ListContentApiRoutes.Response) => response.data,\n }),\n }),\n overrideExisting: false,\n});\n\nconst { useGetPermissionsQuery, useGetRoutesQuery } = contentApiService;\n\nexport { useGetPermissionsQuery, useGetRoutesQuery };\n","/* eslint-disable check-file/filename-naming-convention */\n\nimport * as React from 'react';\n\nimport { createContext } from '@radix-ui/react-context';\n\nimport { List as ListContentApiPermissions } from '../../../../../../../shared/contracts/content-api/permissions';\nimport { List as ListContentApiRoutes } from '../../../../../../../shared/contracts/content-api/routes';\n\nexport interface PseudoEvent {\n target: { value: string };\n}\n\ninterface ApiTokenPermissionsContextValue {\n value: {\n selectedAction: string | null;\n routes: ListContentApiRoutes.Response['data'];\n selectedActions: string[];\n data: {\n allActionsIds: string[];\n permissions: ListContentApiPermissions.Response['data'][];\n };\n onChange: ({ target: { value } }: PseudoEvent) => void;\n onChangeSelectAll: ({\n target: { value },\n }: {\n target: { value: { action: string; actionId: string }[] };\n }) => void;\n setSelectedAction: ({ target: { value } }: PseudoEvent) => void;\n };\n}\n\ninterface ApiTokenPermissionsContextProviderProps extends ApiTokenPermissionsContextValue {\n children: React.ReactNode | React.ReactNode[];\n}\n\nconst [ApiTokenPermissionsContextProvider, useApiTokenPermissionsContext] =\n createContext<ApiTokenPermissionsContextValue>('ApiTokenPermissionsContext');\n\nconst ApiTokenPermissionsProvider = ({\n children,\n ...rest\n}: ApiTokenPermissionsContextProviderProps) => {\n return (\n <ApiTokenPermissionsContextProvider {...rest}>{children}</ApiTokenPermissionsContextProvider>\n );\n};\n\nconst useApiTokenPermissions = () => useApiTokenPermissionsContext('useApiTokenPermissions');\n\nexport { ApiTokenPermissionsProvider, useApiTokenPermissions };\nexport type { ApiTokenPermissionsContextValue, ApiTokenPermissionsContextProviderProps };\n","import * as React from 'react';\n\nimport { Box, Flex, Grid, Typography } from '@strapi/design-system';\nimport { FormikErrors } from 'formik';\nimport { useIntl } from 'react-intl';\n\nimport { LifeSpanInput } from '../../../../components/Tokens/LifeSpanInput';\nimport { TokenDescription } from '../../../../components/Tokens/TokenDescription';\nimport { TokenName } from '../../../../components/Tokens/TokenName';\nimport { TokenTypeSelect } from '../../../../components/Tokens/TokenTypeSelect';\n\nimport type { ApiToken } from '../../../../../../../../shared/contracts/api-token';\n\ninterface FormApiTokenContainerProps {\n errors?: FormikErrors<Pick<ApiToken, 'name' | 'description' | 'lifespan' | 'type'>>;\n onChange: ({ target: { name, value } }: { target: { name: string; value: string } }) => void;\n canEditInputs: boolean;\n values?: Partial<Pick<ApiToken, 'name' | 'description' | 'lifespan' | 'type'>>;\n isCreating: boolean;\n apiToken?: null | Partial<ApiToken>;\n onDispatch: React.Dispatch<any>;\n setHasChangedPermissions: (hasChanged: boolean) => void;\n}\n\nexport const FormApiTokenContainer = ({\n errors = {},\n onChange,\n canEditInputs,\n isCreating,\n values = {},\n apiToken = {},\n onDispatch,\n setHasChangedPermissions,\n}: FormApiTokenContainerProps) => {\n const { formatMessage } = useIntl();\n\n const handleChangeSelectApiTokenType = ({ target: { value } }: { target: { value: string } }) => {\n setHasChangedPermissions(false);\n\n if (value === 'full-access') {\n onDispatch({\n type: 'SELECT_ALL_ACTIONS',\n });\n }\n if (value === 'read-only') {\n onDispatch({\n type: 'ON_CHANGE_READ_ONLY',\n });\n }\n };\n\n const typeOptions = [\n {\n value: 'read-only',\n label: {\n id: 'Settings.tokens.types.read-only',\n defaultMessage: 'Read-only',\n },\n },\n {\n value: 'full-access',\n label: {\n id: 'Settings.tokens.types.full-access',\n defaultMessage: 'Full access',\n },\n },\n {\n value: 'custom',\n label: {\n id: 'Settings.tokens.types.custom',\n defaultMessage: 'Custom',\n },\n },\n ];\n\n return (\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n <Grid.Root gap={5}>\n <Grid.Item key=\"name\" col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <TokenName\n error={errors['name']}\n value={values['name']}\n canEditInputs={canEditInputs}\n onChange={onChange}\n />\n </Grid.Item>\n <Grid.Item key=\"description\" col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <TokenDescription\n error={errors['description']}\n value={values['description']}\n canEditInputs={canEditInputs}\n onChange={onChange}\n />\n </Grid.Item>\n <Grid.Item key=\"lifespan\" col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <LifeSpanInput\n isCreating={isCreating}\n error={errors['lifespan']}\n value={values['lifespan']}\n onChange={onChange}\n token={apiToken}\n />\n </Grid.Item>\n\n <Grid.Item key=\"type\" col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <TokenTypeSelect\n value={values['type']}\n error={errors['type']}\n label={{\n id: 'Settings.tokens.form.type',\n defaultMessage: 'Token type',\n }}\n onChange={(value) => {\n // @ts-expect-error – DS Select supports numbers & strings, will be removed in V2\n handleChangeSelectApiTokenType({ target: { value } });\n\n // @ts-expect-error – DS Select supports numbers & strings, will be removed in V2\n onChange({ target: { name: 'type', value } });\n }}\n options={typeOptions}\n canEditInputs={canEditInputs}\n />\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n );\n};\n","import React from 'react';\n\nimport { Box, BoxComponent, Flex, Typography } from '@strapi/design-system';\nimport map from 'lodash/map';\nimport tail from 'lodash/tail';\nimport { useIntl } from 'react-intl';\nimport { styled, DefaultTheme } from 'styled-components';\n\ntype HttpVerb = 'POST' | 'GET' | 'PUT' | 'DELETE';\n\ntype MethodColor = {\n text: keyof DefaultTheme['colors'];\n border: keyof DefaultTheme['colors'];\n background: keyof DefaultTheme['colors'];\n};\n\nconst getMethodColor = (verb: HttpVerb): MethodColor => {\n switch (verb) {\n case 'POST': {\n return {\n text: 'success600',\n border: 'success200',\n background: 'success100',\n };\n }\n case 'GET': {\n return {\n text: 'secondary600',\n border: 'secondary200',\n background: 'secondary100',\n };\n }\n case 'PUT': {\n return {\n text: 'warning600',\n border: 'warning200',\n background: 'warning100',\n };\n }\n case 'DELETE': {\n return {\n text: 'danger600',\n border: 'danger200',\n background: 'danger100',\n };\n }\n default: {\n return {\n text: 'neutral600',\n border: 'neutral200',\n background: 'neutral100',\n };\n }\n }\n};\n\nconst MethodBox = styled<BoxComponent>(Box)`\n margin: -1px;\n border-radius: ${({ theme }) => theme.spaces[1]} 0 0 ${({ theme }) => theme.spaces[1]};\n`;\n\ninterface BoundRouteProps {\n route: {\n handler: string;\n method: HttpVerb;\n path: string;\n };\n}\n\nexport const BoundRoute = ({\n route = {\n handler: 'Nocontroller.error',\n method: 'GET',\n path: '/there-is-no-path',\n },\n}: BoundRouteProps) => {\n const { formatMessage } = useIntl();\n\n const { method, handler: title, path } = route;\n const formattedRoute = path ? tail(path.split('/')) : [];\n const [controller = '', action = ''] = title ? title.split('.') : [];\n const colors = getMethodColor(route.method);\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage({\n id: 'Settings.apiTokens.createPage.BoundRoute.title',\n defaultMessage: 'Bound route to',\n })}\n \n <span>{controller}</span>\n <Typography variant=\"delta\" textColor=\"primary600\">\n .{action}\n </Typography>\n </Typography>\n <Flex hasRadius background=\"neutral0\" borderColor=\"neutral200\" gap={0}>\n <MethodBox background={colors.background} borderColor={colors.border} padding={2}>\n <Typography fontWeight=\"bold\" textColor={colors.text}>\n {method}\n </Typography>\n </MethodBox>\n <Box paddingLeft={2} paddingRight={2}>\n {map(formattedRoute, (value) => (\n <Typography key={value} textColor={value.includes(':') ? 'neutral600' : 'neutral900'}>\n /{value}\n </Typography>\n ))}\n </Box>\n </Flex>\n </Flex>\n );\n};\n","import { Grid, Flex, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useApiTokenPermissions } from '../apiTokenPermissions';\n\nimport { BoundRoute } from './BoundRoute';\n\nexport const ActionBoundRoutes = () => {\n const {\n value: { selectedAction, routes },\n } = useApiTokenPermissions();\n const { formatMessage } = useIntl();\n const actionSection = selectedAction?.split('.')[0];\n\n return (\n <Grid.Item\n col={5}\n background=\"neutral150\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n style={{ minHeight: '100%' }}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n {selectedAction ? (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n {actionSection &&\n actionSection in routes &&\n routes[actionSection].map((route) => {\n return route.config.auth?.scope?.includes(selectedAction) ||\n route.handler === selectedAction ? (\n <BoundRoute key={route.handler} route={route} />\n ) : null;\n })}\n </Flex>\n ) : (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage({\n id: 'Settings.apiTokens.createPage.permissions.header.title',\n defaultMessage: 'Advanced settings',\n })}\n </Typography>\n <Typography tag=\"p\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.apiTokens.createPage.permissions.header.hint',\n defaultMessage:\n \"Select the application's actions or the plugin's actions and click on the cog icon to display the bound route\",\n })}\n </Typography>\n </Flex>\n )}\n </Grid.Item>\n );\n};\n","import * as React from 'react';\n\nimport {\n Accordion,\n Box,\n BoxComponent,\n Checkbox,\n Flex,\n Grid,\n Typography,\n} from '@strapi/design-system';\nimport { Cog } from '@strapi/icons';\nimport capitalize from 'lodash/capitalize';\nimport { useIntl } from 'react-intl';\nimport { styled, css } from 'styled-components';\n\nimport { ContentApiPermission } from '../../../../../../../../shared/contracts/content-api/permissions';\nimport { useApiTokenPermissions } from '../apiTokenPermissions';\n\nconst activeCheckboxWrapperStyles = css`\n background: ${(props) => props.theme.colors.primary100};\n\n #cog {\n opacity: 1;\n }\n`;\n\nconst CheckboxWrapper = styled<BoxComponent>(Box)<{ $isActive: boolean }>`\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n #cog {\n opacity: 0;\n path {\n fill: ${(props) => props.theme.colors.primary600};\n }\n }\n\n /* Show active style both on hover and when the action is selected */\n ${(props) => props.$isActive && activeCheckboxWrapperStyles}\n &:hover {\n ${activeCheckboxWrapperStyles}\n }\n`;\n\nconst Border = styled.div`\n flex: 1;\n align-self: center;\n border-top: 1px solid ${({ theme }) => theme.colors.neutral150};\n`;\n\ninterface CollapsableContentTypeProps {\n controllers?: ContentApiPermission['controllers'];\n label: ContentApiPermission['label'];\n orderNumber?: number;\n disabled?: boolean;\n}\n\nexport const CollapsableContentType = ({\n controllers = [],\n label,\n orderNumber = 0,\n disabled = false,\n}: CollapsableContentTypeProps) => {\n const {\n value: { onChangeSelectAll, onChange, selectedActions, setSelectedAction, selectedAction },\n } = useApiTokenPermissions();\n const { formatMessage } = useIntl();\n\n const isActionSelected = (actionId: string) => actionId === selectedAction;\n\n return (\n <Accordion.Item value={`${label}-${orderNumber}`}>\n <Accordion.Header variant={orderNumber % 2 ? 'primary' : 'secondary'}>\n <Accordion.Trigger>{capitalize(label)}</Accordion.Trigger>\n </Accordion.Header>\n <Accordion.Content>\n {controllers?.map((controller) => {\n const allActionsSelected = controller.actions.every((action) =>\n selectedActions.includes(action.actionId)\n );\n\n const someActionsSelected = controller.actions.some((action) =>\n selectedActions.includes(action.actionId)\n );\n\n return (\n <Box key={`${label}.${controller?.controller}`}>\n <Flex justifyContent=\"space-between\" alignItems=\"center\" padding={4}>\n <Box paddingRight={4}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {controller?.controller}\n </Typography>\n </Box>\n <Border />\n <Box paddingLeft={4}>\n <Checkbox\n checked={\n !allActionsSelected && someActionsSelected\n ? 'indeterminate'\n : allActionsSelected\n }\n onCheckedChange={() => {\n onChangeSelectAll({ target: { value: [...controller.actions] } });\n }}\n disabled={disabled}\n >\n {formatMessage({ id: 'app.utils.select-all', defaultMessage: 'Select all' })}\n </Checkbox>\n </Box>\n </Flex>\n <Grid.Root gap={4} padding={4}>\n {controller?.actions &&\n controller?.actions.map((action) => {\n return (\n <Grid.Item\n col={6}\n key={action.actionId}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <CheckboxWrapper\n $isActive={isActionSelected(action.actionId)}\n padding={2}\n hasRadius\n >\n <Checkbox\n checked={selectedActions.includes(action.actionId)}\n name={action.actionId}\n onCheckedChange={() => {\n onChange({ target: { value: action.actionId } });\n }}\n disabled={disabled}\n >\n {action.action}\n </Checkbox>\n <button\n type=\"button\"\n data-testid=\"action-cog\"\n onClick={() =>\n setSelectedAction({ target: { value: action.actionId } })\n }\n style={{ display: 'inline-flex', alignItems: 'center' }}\n >\n <Cog id=\"cog\" />\n </button>\n </CheckboxWrapper>\n </Grid.Item>\n );\n })}\n </Grid.Root>\n </Box>\n );\n })}\n </Accordion.Content>\n </Accordion.Item>\n );\n};\n","import { Accordion, Box } from '@strapi/design-system';\n\nimport { ContentApiPermission } from '../../../../../../../../shared/contracts/content-api/permissions';\n\nimport { CollapsableContentType } from './CollapsableContentType';\n\ninterface ContentTypesSectionProps {\n section: ContentApiPermission[] | null;\n}\n\nexport const ContentTypesSection = ({ section = null, ...props }: ContentTypesSectionProps) => {\n return (\n <Box padding={4} background=\"neutral0\">\n <Accordion.Root size=\"M\">\n {section &&\n section.map((api, index) => (\n <CollapsableContentType\n key={api.apiId}\n label={api.label}\n controllers={api.controllers}\n orderNumber={index}\n {...props}\n />\n ))}\n </Accordion.Root>\n </Box>\n );\n};\n","import { Flex, Grid, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useApiTokenPermissions } from '../apiTokenPermissions';\n\nimport { ActionBoundRoutes } from './ActionBoundRoutes';\nimport { ContentTypesSection } from './ContentTypesSection';\n\nexport const Permissions = ({ ...props }) => {\n const {\n value: { data },\n } = useApiTokenPermissions();\n const { formatMessage } = useIntl();\n\n return (\n <Grid.Root gap={0} shadow=\"filterShadow\" hasRadius background=\"neutral0\">\n <Grid.Item\n col={7}\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'Settings.apiTokens.createPage.permissions.title',\n defaultMessage: 'Permissions',\n })}\n </Typography>\n <Typography tag=\"p\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.apiTokens.createPage.permissions.description',\n defaultMessage: 'Only actions bound by a route are listed below.',\n })}\n </Typography>\n </Flex>\n {data?.permissions && <ContentTypesSection section={data?.permissions} {...props} />}\n </Grid.Item>\n <ActionBoundRoutes />\n </Grid.Root>\n );\n};\n","import * as yup from 'yup';\n\nimport { translatedErrors } from '../../../../../utils/translatedErrors';\n\nexport const schema = yup.object().shape({\n name: yup.string().max(100).required(translatedErrors.required.id),\n type: yup\n .string()\n .oneOf(['read-only', 'full-access', 'custom'])\n .required(translatedErrors.required.id),\n description: yup.string().nullable(),\n lifespan: yup.number().integer().min(0).nullable().defined(translatedErrors.required.id),\n});\n","import { ContentApiPermission } from '../../../../../../../../shared/contracts/content-api/permissions';\n\ninterface Layout {\n allActionsIds: string[];\n permissions: {\n apiId: string;\n label: string;\n controllers: { controller: string; actions: { action: string; actionId: string }[] }[];\n }[];\n}\n\nexport const transformPermissionsData = (data: ContentApiPermission) => {\n const layout: Layout = {\n allActionsIds: [],\n permissions: [],\n };\n\n layout.permissions = Object.entries(data).map(([apiId, permission]) => ({\n apiId,\n label: apiId.split('::')[1],\n controllers: Object.keys(permission.controllers)\n .map((controller) => ({\n controller,\n actions:\n controller in permission.controllers\n ? permission.controllers[controller]\n .map((action: ContentApiPermission['controllers']) => {\n const actionId = `${apiId}.${controller}.${action}`;\n\n if (apiId.includes('api::')) {\n layout.allActionsIds.push(actionId);\n }\n\n return {\n action,\n actionId,\n };\n })\n .flat()\n : [],\n }))\n .flat(),\n }));\n\n return layout;\n};\n","/* eslint-disable consistent-return */\nimport { produce } from 'immer';\nimport pull from 'lodash/pull';\n\nimport { ContentApiPermission } from '../../../../../../../shared/contracts/content-api/permissions';\n\nimport { ApiTokenPermissionsContextValue } from './apiTokenPermissions';\nimport { transformPermissionsData } from './utils/transformPermissionsData';\n\ntype InitialState = Pick<\n ApiTokenPermissionsContextValue['value'],\n 'data' | 'routes' | 'selectedAction' | 'selectedActions'\n>;\n\ninterface ActionOnChange {\n type: 'ON_CHANGE';\n value: string;\n}\n\ninterface ActionSelectAllInPermission {\n type: 'SELECT_ALL_IN_PERMISSION';\n value: { action: string; actionId: string }[];\n}\n\ninterface ActionSelectAllActions {\n type: 'SELECT_ALL_ACTIONS';\n}\n\ninterface ActionOnChangeReadOnly {\n type: 'ON_CHANGE_READ_ONLY';\n}\n\ninterface ActionUpdatePermissionsLayout {\n type: 'UPDATE_PERMISSIONS_LAYOUT';\n value: ContentApiPermission;\n}\n\ninterface ActionUpdateRoutes {\n type: 'UPDATE_ROUTES';\n value: ApiTokenPermissionsContextValue['value']['routes'] | undefined;\n}\n\ninterface ActionUpdatePermissions {\n type: 'UPDATE_PERMISSIONS';\n value: any[];\n}\n\ninterface ActionSetSelectedAction {\n type: 'SET_SELECTED_ACTION';\n value: string;\n}\n\ntype Action =\n | ActionOnChange\n | ActionSelectAllInPermission\n | ActionSelectAllActions\n | ActionOnChangeReadOnly\n | ActionUpdatePermissionsLayout\n | ActionUpdateRoutes\n | ActionUpdatePermissions\n | ActionSetSelectedAction;\n\nexport const initialState: InitialState = {\n data: {\n allActionsIds: [],\n permissions: [],\n },\n routes: {},\n selectedAction: '',\n selectedActions: [],\n};\n\nexport const reducer = (state: InitialState, action: Action) =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'ON_CHANGE': {\n if (draftState.selectedActions.includes(action.value)) {\n pull(draftState.selectedActions, action.value);\n } else {\n draftState.selectedActions.push(action.value);\n }\n break;\n }\n case 'SELECT_ALL_IN_PERMISSION': {\n const areAllSelected = action.value.every((item) =>\n draftState.selectedActions.includes(item.actionId)\n );\n\n if (areAllSelected) {\n action.value.forEach((item) => {\n pull(draftState.selectedActions, item.actionId);\n });\n } else {\n action.value.forEach((item) => {\n draftState.selectedActions.push(item.actionId);\n });\n }\n break;\n }\n\n case 'SELECT_ALL_ACTIONS': {\n draftState.selectedActions = [...draftState.data.allActionsIds];\n\n break;\n }\n case 'ON_CHANGE_READ_ONLY': {\n const onlyReadOnlyActions = draftState.data.allActionsIds.filter(\n (actionId) => actionId.includes('find') || actionId.includes('findOne')\n );\n draftState.selectedActions = [...onlyReadOnlyActions];\n break;\n }\n case 'UPDATE_PERMISSIONS_LAYOUT': {\n draftState.data = transformPermissionsData(action.value);\n break;\n }\n case 'UPDATE_ROUTES': {\n draftState.routes = { ...action.value };\n break;\n }\n case 'UPDATE_PERMISSIONS': {\n draftState.selectedActions = [...action.value];\n break;\n }\n case 'SET_SELECTED_ACTION': {\n draftState.selectedAction = action.value;\n break;\n }\n default:\n return draftState;\n }\n });\n","import * as React from 'react';\n\nimport { Flex } from '@strapi/design-system';\nimport { Formik, Form, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useMatch, useNavigate } from 'react-router-dom';\n\nimport { useGuidedTour } from '../../../../../components/GuidedTour/Provider';\nimport { Layouts } from '../../../../../components/Layouts/Layout';\nimport { Page } from '../../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../../core/store/hooks';\nimport { useNotification } from '../../../../../features/Notifications';\nimport { useTracking } from '../../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../../hooks/useAPIErrorHandler';\nimport { useRBAC } from '../../../../../hooks/useRBAC';\nimport {\n useCreateAPITokenMutation,\n useGetAPITokenQuery,\n useUpdateAPITokenMutation,\n} from '../../../../../services/apiTokens';\nimport { useGetPermissionsQuery, useGetRoutesQuery } from '../../../../../services/contentApi';\nimport { isBaseQueryError } from '../../../../../utils/baseQuery';\nimport { API_TOKEN_TYPE } from '../../../components/Tokens/constants';\nimport { FormHead } from '../../../components/Tokens/FormHead';\nimport { TokenBox } from '../../../components/Tokens/TokenBox';\n\nimport {\n ApiTokenPermissionsContextValue,\n ApiTokenPermissionsProvider,\n} from './apiTokenPermissions';\nimport { FormApiTokenContainer } from './components/FormApiTokenContainer';\nimport { Permissions } from './components/Permissions';\nimport { schema } from './constants';\nimport { initialState, reducer } from './reducer';\n\nimport type { Get, ApiToken } from '../../../../../../../shared/contracts/api-token';\n\n/**\n * TODO: this could definitely be refactored to avoid using redux and instead just use the\n * server response as the source of the truth for the data.\n */\nexport const EditView = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { state: locationState } = useLocation();\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const [apiToken, setApiToken] = React.useState<ApiToken | null>(\n locationState?.apiToken?.accessKey\n ? {\n ...locationState.apiToken,\n }\n : null\n );\n const { trackUsage } = useTracking();\n const setCurrentStep = useGuidedTour('EditView', (state) => state.setCurrentStep);\n const {\n allowedActions: { canCreate, canUpdate, canRegenerate },\n } = useRBAC(permissions.settings?.['api-tokens']);\n const [state, dispatch] = React.useReducer(reducer, initialState);\n const match = useMatch('/settings/api-tokens/:id');\n const id = match?.params?.id;\n const isCreating = id === 'create';\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidtionErrors,\n } = useAPIErrorHandler();\n\n const navigate = useNavigate();\n\n const contentAPIPermissionsQuery = useGetPermissionsQuery();\n const contentAPIRoutesQuery = useGetRoutesQuery();\n\n /**\n * Separate effects otherwise we could end\n * up duplicating the same notification.\n */\n React.useEffect(() => {\n if (contentAPIPermissionsQuery.error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(contentAPIPermissionsQuery.error),\n });\n }\n }, [contentAPIPermissionsQuery.error, formatAPIError, toggleNotification]);\n\n React.useEffect(() => {\n if (contentAPIRoutesQuery.error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(contentAPIRoutesQuery.error),\n });\n }\n }, [contentAPIRoutesQuery.error, formatAPIError, toggleNotification]);\n\n React.useEffect(() => {\n if (contentAPIPermissionsQuery.data) {\n dispatch({\n type: 'UPDATE_PERMISSIONS_LAYOUT',\n value: contentAPIPermissionsQuery.data,\n });\n }\n }, [contentAPIPermissionsQuery.data]);\n\n React.useEffect(() => {\n if (contentAPIRoutesQuery.data) {\n dispatch({\n type: 'UPDATE_ROUTES',\n value: contentAPIRoutesQuery.data,\n });\n }\n }, [contentAPIRoutesQuery.data]);\n\n React.useEffect(() => {\n if (apiToken) {\n if (apiToken.type === 'read-only') {\n dispatch({\n type: 'ON_CHANGE_READ_ONLY',\n });\n }\n if (apiToken.type === 'full-access') {\n dispatch({\n type: 'SELECT_ALL_ACTIONS',\n });\n }\n if (apiToken.type === 'custom') {\n dispatch({\n type: 'UPDATE_PERMISSIONS',\n value: apiToken?.permissions,\n });\n }\n }\n }, [apiToken]);\n\n React.useEffect(() => {\n trackUsage(isCreating ? 'didAddTokenFromList' : 'didEditTokenFromList', {\n tokenType: API_TOKEN_TYPE,\n });\n }, [isCreating, trackUsage]);\n\n const { data, error, isLoading } = useGetAPITokenQuery(id!, {\n skip: !id || isCreating || !!apiToken,\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 React.useEffect(() => {\n if (data) {\n setApiToken(data);\n\n if (data.type === 'read-only') {\n dispatch({\n type: 'ON_CHANGE_READ_ONLY',\n });\n }\n if (data.type === 'full-access') {\n dispatch({\n type: 'SELECT_ALL_ACTIONS',\n });\n }\n if (data.type === 'custom') {\n dispatch({\n type: 'UPDATE_PERMISSIONS',\n value: data?.permissions,\n });\n }\n }\n }, [data]);\n\n const [createToken] = useCreateAPITokenMutation();\n const [updateToken] = useUpdateAPITokenMutation();\n\n interface FormValues extends Pick<Get.Response['data'], 'name' | 'description'> {\n lifespan: Get.Response['data']['lifespan'] | undefined;\n type: Get.Response['data']['type'] | undefined;\n }\n\n const handleSubmit = async (body: FormValues, formik: FormikHelpers<FormValues>) => {\n trackUsage(isCreating ? 'willCreateToken' : 'willEditToken', {\n tokenType: API_TOKEN_TYPE,\n });\n\n try {\n if (isCreating) {\n const res = await createToken({\n ...body,\n // lifespan must be \"null\" for unlimited (0 would mean instantly expired and isn't accepted)\n lifespan:\n body?.lifespan && body.lifespan !== '0' ? parseInt(body.lifespan.toString(), 10) : null,\n permissions: body.type === 'custom' ? state.selectedActions : null,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidtionErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'notification.success.apitokencreated',\n defaultMessage: 'API Token successfully created',\n }),\n });\n\n trackUsage('didCreateToken', {\n type: res.data.type,\n tokenType: API_TOKEN_TYPE,\n });\n\n navigate(`../api-tokens/${res.data.id.toString()}`, {\n state: { apiToken: res.data },\n replace: true,\n });\n setCurrentStep('apiTokens.success');\n } else {\n const res = await updateToken({\n id: id!,\n name: body.name,\n description: body.description,\n type: body.type,\n permissions: body.type === 'custom' ? state.selectedActions : null,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidtionErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'notification.success.apitokenedited',\n defaultMessage: 'API Token successfully edited',\n }),\n });\n\n trackUsage('didEditToken', {\n type: res.data.type,\n tokenType: API_TOKEN_TYPE,\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n }),\n });\n }\n };\n\n const [hasChangedPermissions, setHasChangedPermissions] = React.useState(false);\n\n const handleChangeCheckbox = ({\n target: { value },\n }: Parameters<ApiTokenPermissionsContextValue['value']['onChange']>[0]) => {\n setHasChangedPermissions(true);\n dispatch({\n type: 'ON_CHANGE',\n value,\n });\n };\n\n const handleChangeSelectAllCheckbox = ({\n target: { value },\n }: Parameters<ApiTokenPermissionsContextValue['value']['onChangeSelectAll']>[0]) => {\n setHasChangedPermissions(true);\n dispatch({\n type: 'SELECT_ALL_IN_PERMISSION',\n value,\n });\n };\n\n const setSelectedAction = ({\n target: { value },\n }: Parameters<ApiTokenPermissionsContextValue['value']['setSelectedAction']>[0]) => {\n dispatch({\n type: 'SET_SELECTED_ACTION',\n value,\n });\n };\n\n const providerValue = {\n ...state,\n onChange: handleChangeCheckbox,\n onChangeSelectAll: handleChangeSelectAllCheckbox,\n setSelectedAction,\n };\n\n const canEditInputs = (canUpdate && !isCreating) || (canCreate && isCreating);\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <ApiTokenPermissionsProvider value={providerValue}>\n <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n { name: 'API Tokens' }\n )}\n </Page.Title>\n <Formik\n validationSchema={schema}\n validateOnChange={false}\n initialValues={{\n name: apiToken?.name || '',\n description: apiToken?.description || '',\n type: apiToken?.type,\n lifespan: apiToken?.lifespan,\n }}\n enableReinitialize\n onSubmit={(body, actions) => handleSubmit(body, actions)}\n >\n {({ errors, handleChange, isSubmitting, values, setFieldValue }) => {\n if (hasChangedPermissions && values?.type !== 'custom') {\n setFieldValue('type', 'custom');\n }\n\n return (\n <Form>\n <FormHead\n title={{\n id: 'Settings.apiTokens.createPage.title',\n defaultMessage: 'Create API Token',\n }}\n token={apiToken}\n setToken={setApiToken}\n canEditInputs={canEditInputs}\n canRegenerate={canRegenerate}\n isSubmitting={isSubmitting}\n regenerateUrl=\"/admin/api-tokens/\"\n />\n\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {Boolean(apiToken?.name) && (\n <TokenBox token={apiToken?.accessKey} tokenType={API_TOKEN_TYPE} />\n )}\n <FormApiTokenContainer\n errors={errors}\n onChange={handleChange}\n canEditInputs={canEditInputs}\n isCreating={isCreating}\n values={values}\n apiToken={apiToken}\n onDispatch={dispatch}\n setHasChangedPermissions={setHasChangedPermissions}\n />\n <Permissions\n disabled={\n !canEditInputs ||\n values?.type === 'read-only' ||\n values?.type === 'full-access'\n }\n />\n </Flex>\n </Layouts.Content>\n </Form>\n );\n }}\n </Formik>\n </Page.Main>\n </ApiTokenPermissionsProvider>\n );\n};\n\nexport const ProtectedEditView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['api-tokens'].read\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditView />\n </Page.Protect>\n );\n};\n"],"names":["adminApi","createContext","jsx","useIntl","Box","Flex","Typography","jsxs","Grid","TokenName","TokenDescription","LifeSpanInput","TokenTypeSelect","styled","tail","css","Accordion","capitalize","Checkbox","Cog","yup","translatedErrors","produce","pull","useNotification","useLocation","useTypedSelector","state","React","useTracking","useGuidedTour","useRBAC","useMatch","useAPIErrorHandler","useNavigate","API_TOKEN_TYPE","useGetAPITokenQuery","useCreateAPITokenMutation","useUpdateAPITokenMutation","isBaseQueryError","Page","Formik","Form","FormHead","Layouts","TokenBox"],"mappings":"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"}
|
|
@@ -4,12 +4,12 @@ import { Box, Flex, Typography, Grid, Accordion, Checkbox } from '@strapi/design
|
|
|
4
4
|
import { Formik, Form } from 'formik';
|
|
5
5
|
import { useIntl } from 'react-intl';
|
|
6
6
|
import { useLocation, useMatch, useNavigate } from 'react-router-dom';
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { b as useGetAPITokenQuery, c as useCreateAPITokenMutation, d as useUpdateAPITokenMutation } from './apiTokens-
|
|
10
|
-
import {
|
|
7
|
+
import { b as useTypedSelector, P as Page, a as useNotification, c as useTracking, m as useGuidedTour, k as useRBAC, e as useAPIErrorHandler } from './Theme-frC82ceE.mjs';
|
|
8
|
+
import { e as errorsTrads, b as Layouts } from './index-hoTsgrwy.mjs';
|
|
9
|
+
import { b as useGetAPITokenQuery, c as useCreateAPITokenMutation, d as useUpdateAPITokenMutation } from './apiTokens-GQe-GqwZ.mjs';
|
|
10
|
+
import { a as adminApi, i as isBaseQueryError } from './admin-GZ-AP2T0.mjs';
|
|
11
11
|
import { A as API_TOKEN_TYPE } from './constants-EoEtSd4i.mjs';
|
|
12
|
-
import { a as TokenName, b as TokenDescription, L as LifeSpanInput, c as TokenTypeSelect, F as FormHead, T as TokenBox } from './TokenTypeSelect-
|
|
12
|
+
import { a as TokenName, b as TokenDescription, L as LifeSpanInput, c as TokenTypeSelect, F as FormHead, T as TokenBox } from './TokenTypeSelect-j-b_9iB9.mjs';
|
|
13
13
|
import { createContext } from '@radix-ui/react-context';
|
|
14
14
|
import map from 'lodash/map';
|
|
15
15
|
import tail from 'lodash/tail';
|
|
@@ -838,4 +838,4 @@ const ProtectedEditView = () => {
|
|
|
838
838
|
};
|
|
839
839
|
|
|
840
840
|
export { EditView, ProtectedEditView };
|
|
841
|
-
//# sourceMappingURL=EditViewPage-
|
|
841
|
+
//# sourceMappingURL=EditViewPage-zkNmb1zg.mjs.map
|