@strapi/admin 5.10.4 → 5.11.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/chunks/{ApplicationInfoPage-DiEcqVEU.mjs → ApplicationInfoPage-BZwUO73O.mjs} +2 -2
- package/dist/admin/chunks/{ApplicationInfoPage-DiEcqVEU.mjs.map → ApplicationInfoPage-BZwUO73O.mjs.map} +1 -1
- package/dist/admin/chunks/{ApplicationInfoPage-CsBvES_c.js → ApplicationInfoPage-DJOazrYK.js} +2 -2
- package/dist/admin/chunks/{ApplicationInfoPage-CsBvES_c.js.map → ApplicationInfoPage-DJOazrYK.js.map} +1 -1
- package/dist/admin/chunks/{AuthenticatedLayout-D_VSoB1l.js → AuthenticatedLayout-Dy75FZrh.js} +7 -6
- package/dist/admin/chunks/AuthenticatedLayout-Dy75FZrh.js.map +1 -0
- package/dist/admin/chunks/{AuthenticatedLayout-C9eZ12Ue.mjs → AuthenticatedLayout-jDyinb04.mjs} +7 -6
- package/dist/admin/chunks/AuthenticatedLayout-jDyinb04.mjs.map +1 -0
- package/dist/admin/chunks/{CreatePage-DQDa78K3.mjs → CreatePage-BO4p8eVo.mjs} +2 -2
- package/dist/admin/chunks/{CreatePage-DQDa78K3.mjs.map → CreatePage-BO4p8eVo.mjs.map} +1 -1
- package/dist/admin/chunks/{CreatePage-DbmpFjHt.js → CreatePage-Bgs19RIr.js} +2 -2
- package/dist/admin/chunks/{CreatePage-DbmpFjHt.js.map → CreatePage-Bgs19RIr.js.map} +1 -1
- package/dist/admin/chunks/{CreatePage-Cb-ETkOn.mjs → CreatePage-CvMkpe3b.mjs} +3 -3
- package/dist/admin/chunks/{CreatePage-Cb-ETkOn.mjs.map → CreatePage-CvMkpe3b.mjs.map} +1 -1
- package/dist/admin/chunks/{CreatePage-DkzHz0zk.js → CreatePage-D0kjwP8s.js} +3 -3
- package/dist/admin/chunks/{CreatePage-DkzHz0zk.js.map → CreatePage-D0kjwP8s.js.map} +1 -1
- package/dist/admin/chunks/{CreateView-CmubtWzn.mjs → CreateView-B5Rq5Uhw.mjs} +4 -4
- package/dist/admin/chunks/{CreateView-CmubtWzn.mjs.map → CreateView-B5Rq5Uhw.mjs.map} +1 -1
- package/dist/admin/chunks/{CreateView-CE4-drK6.js → CreateView-DCsm2KBZ.js} +4 -4
- package/dist/admin/chunks/{CreateView-CE4-drK6.js.map → CreateView-DCsm2KBZ.js.map} +1 -1
- package/dist/admin/chunks/{CreateView-yjsS9KUJ.js → CreateView-DGq7e-Zm.js} +4 -4
- package/dist/admin/chunks/{CreateView-yjsS9KUJ.js.map → CreateView-DGq7e-Zm.js.map} +1 -1
- package/dist/admin/chunks/{CreateView-DZaIevIB.mjs → CreateView-h_bF5XrZ.mjs} +4 -4
- package/dist/admin/chunks/{CreateView-DZaIevIB.mjs.map → CreateView-h_bF5XrZ.mjs.map} +1 -1
- package/dist/admin/chunks/{EditPage-CNaAuT5C.js → EditPage-85v6bKcJ.js} +3 -3
- package/dist/admin/chunks/{EditPage-CNaAuT5C.js.map → EditPage-85v6bKcJ.js.map} +1 -1
- package/dist/admin/chunks/{EditPage-C44OaxjN.mjs → EditPage-CBrPs4kH.mjs} +3 -3
- package/dist/admin/chunks/{EditPage-C44OaxjN.mjs.map → EditPage-CBrPs4kH.mjs.map} +1 -1
- package/dist/admin/chunks/{EditPage-Bjr4f1Bs.mjs → EditPage-CFSx_zaS.mjs} +3 -3
- package/dist/admin/chunks/{EditPage-Bjr4f1Bs.mjs.map → EditPage-CFSx_zaS.mjs.map} +1 -1
- package/dist/admin/chunks/{EditPage-CycQlsFL.js → EditPage-CK8pIRKZ.js} +3 -3
- package/dist/admin/chunks/{EditPage-CycQlsFL.js.map → EditPage-CK8pIRKZ.js.map} +1 -1
- package/dist/admin/chunks/{EditPage-BrMhV8aB.js → EditPage-DHtr1mq1.js} +6 -6
- package/dist/admin/chunks/{EditPage-BrMhV8aB.js.map → EditPage-DHtr1mq1.js.map} +1 -1
- package/dist/admin/chunks/{EditPage-MmQQ4hWc.mjs → EditPage-DrT9bgfE.mjs} +6 -6
- package/dist/admin/chunks/{EditPage-MmQQ4hWc.mjs.map → EditPage-DrT9bgfE.mjs.map} +1 -1
- package/dist/admin/chunks/{EditView-C9cKaoY1.js → EditView-CfJxHMkF.js} +3 -3
- package/dist/admin/chunks/{EditView-C9cKaoY1.js.map → EditView-CfJxHMkF.js.map} +1 -1
- package/dist/admin/chunks/{EditView-CFIkvFrt.mjs → EditView-XfGT5Bj1.mjs} +3 -3
- package/dist/admin/chunks/{EditView-CFIkvFrt.mjs.map → EditView-XfGT5Bj1.mjs.map} +1 -1
- package/dist/admin/chunks/{EditViewPage-CwdhHAuX.mjs → EditViewPage-BLftPAqX.mjs} +3 -3
- package/dist/admin/chunks/{EditViewPage-CwdhHAuX.mjs.map → EditViewPage-BLftPAqX.mjs.map} +1 -1
- package/dist/admin/chunks/{EditViewPage-DBga-70A.js → EditViewPage-Dvm8m28e.js} +3 -3
- package/dist/admin/chunks/{EditViewPage-DBga-70A.js.map → EditViewPage-Dvm8m28e.js.map} +1 -1
- package/dist/admin/chunks/{EventsTable-fkWvAMuL.js → EventsTable-C1FNa1mh.js} +3 -3
- package/dist/admin/chunks/{EventsTable-fkWvAMuL.js.map → EventsTable-C1FNa1mh.js.map} +1 -1
- package/dist/admin/chunks/{EventsTable-CeqMb1jP.mjs → EventsTable-aDYIp-4O.mjs} +3 -3
- package/dist/admin/chunks/{EventsTable-CeqMb1jP.mjs.map → EventsTable-aDYIp-4O.mjs.map} +1 -1
- package/dist/admin/chunks/{HomePage-CVc0RfvD.js → HomePage-8CeDS3qO.js} +3 -3
- package/dist/admin/chunks/{HomePage-CVc0RfvD.js.map → HomePage-8CeDS3qO.js.map} +1 -1
- package/dist/admin/chunks/{HomePage-B2skN1xt.js → HomePage-BKwoMagC.js} +3 -3
- package/dist/admin/chunks/{HomePage-B2skN1xt.js.map → HomePage-BKwoMagC.js.map} +1 -1
- package/dist/admin/chunks/{HomePage-DGTeFboL.mjs → HomePage-BRggBAHf.mjs} +3 -3
- package/dist/admin/chunks/{HomePage-DGTeFboL.mjs.map → HomePage-BRggBAHf.mjs.map} +1 -1
- package/dist/admin/chunks/{HomePage-MfOqcIag.mjs → HomePage-DuRHJoC7.mjs} +3 -3
- package/dist/admin/chunks/{HomePage-MfOqcIag.mjs.map → HomePage-DuRHJoC7.mjs.map} +1 -1
- package/dist/admin/chunks/{InstalledPlugins-5j7xjDqh.mjs → InstalledPlugins-23tOdYYB.mjs} +2 -2
- package/dist/admin/chunks/{InstalledPlugins-5j7xjDqh.mjs.map → InstalledPlugins-23tOdYYB.mjs.map} +1 -1
- package/dist/admin/chunks/{InstalledPlugins-BXM3i3xr.js → InstalledPlugins-z8ODfbJj.js} +2 -2
- package/dist/admin/chunks/{InstalledPlugins-BXM3i3xr.js.map → InstalledPlugins-z8ODfbJj.js.map} +1 -1
- package/dist/admin/chunks/{Layout-DST1PxaO.js → Layout-BZgwh-LZ.js} +3 -3
- package/dist/admin/chunks/{Layout-DST1PxaO.js.map → Layout-BZgwh-LZ.js.map} +1 -1
- package/dist/admin/chunks/{Layout-DYjtK6iP.mjs → Layout-CmzbGRtV.mjs} +3 -3
- package/dist/admin/chunks/{Layout-DYjtK6iP.mjs.map → Layout-CmzbGRtV.mjs.map} +1 -1
- package/dist/admin/chunks/{ListPage-BhGt3EBQ.mjs → ListPage-BE3aimOU.mjs} +2 -2
- package/dist/admin/chunks/{ListPage-BhGt3EBQ.mjs.map → ListPage-BE3aimOU.mjs.map} +1 -1
- package/dist/admin/chunks/{ListPage-CWINpwfS.js → ListPage-BRVhZryp.js} +6 -6
- package/dist/admin/chunks/{ListPage-CWINpwfS.js.map → ListPage-BRVhZryp.js.map} +1 -1
- package/dist/admin/chunks/{ListPage-srJutHdv.mjs → ListPage-BuFQNHRU.mjs} +3 -3
- package/dist/admin/chunks/{ListPage-srJutHdv.mjs.map → ListPage-BuFQNHRU.mjs.map} +1 -1
- package/dist/admin/chunks/{ListPage-CLXy5r60.js → ListPage-C46MNvAQ.js} +3 -3
- package/dist/admin/chunks/{ListPage-CLXy5r60.js.map → ListPage-C46MNvAQ.js.map} +1 -1
- package/dist/admin/chunks/{ListPage-BVI0O8bq.mjs → ListPage-CTxfjKUP.mjs} +2 -2
- package/dist/admin/chunks/{ListPage-BVI0O8bq.mjs.map → ListPage-CTxfjKUP.mjs.map} +1 -1
- package/dist/admin/chunks/{ListPage-B5Hb8BA-.mjs → ListPage-CovdXetq.mjs} +6 -6
- package/dist/admin/chunks/{ListPage-B5Hb8BA-.mjs.map → ListPage-CovdXetq.mjs.map} +1 -1
- package/dist/admin/chunks/{ListPage-BgyypnOM.js → ListPage-D7fIXyTM.js} +5 -5
- package/dist/admin/chunks/{ListPage-BgyypnOM.js.map → ListPage-D7fIXyTM.js.map} +1 -1
- package/dist/admin/chunks/{ListPage-PwzVjSsA.mjs → ListPage-DoR-NV6v.mjs} +5 -5
- package/dist/admin/chunks/{ListPage-PwzVjSsA.mjs.map → ListPage-DoR-NV6v.mjs.map} +1 -1
- package/dist/admin/chunks/{ListPage-D21yUih2.js → ListPage-SVEmrFSg.js} +2 -2
- package/dist/admin/chunks/{ListPage-D21yUih2.js.map → ListPage-SVEmrFSg.js.map} +1 -1
- package/dist/admin/chunks/{ListPage-DbfL2rpi.js → ListPage-fOcHewxm.js} +2 -2
- package/dist/admin/chunks/{ListPage-DbfL2rpi.js.map → ListPage-fOcHewxm.js.map} +1 -1
- package/dist/admin/chunks/{ListView--KzJiQiO.mjs → ListView-BUbdI3-z.mjs} +3 -3
- package/dist/admin/chunks/{ListView--KzJiQiO.mjs.map → ListView-BUbdI3-z.mjs.map} +1 -1
- package/dist/admin/chunks/{ListView-DzwvQ8nW.js → ListView-CGHuleNQ.js} +3 -3
- package/dist/admin/chunks/{ListView-DzwvQ8nW.js.map → ListView-CGHuleNQ.js.map} +1 -1
- package/dist/admin/chunks/{ListView-CoGoDDiF.mjs → ListView-DxPGNDw_.mjs} +3 -3
- package/dist/admin/chunks/{ListView-CoGoDDiF.mjs.map → ListView-DxPGNDw_.mjs.map} +1 -1
- package/dist/admin/chunks/{ListView-DGfxO89i.js → ListView-HZFAPppY.js} +3 -3
- package/dist/admin/chunks/{ListView-DGfxO89i.js.map → ListView-HZFAPppY.js.map} +1 -1
- package/dist/admin/chunks/{Login-Dtkhd0GV.mjs → Login-B_Z4SJVp.mjs} +2 -2
- package/dist/admin/chunks/{Login-Dtkhd0GV.mjs.map → Login-B_Z4SJVp.mjs.map} +1 -1
- package/dist/admin/chunks/{Login-Iw84AH9L.js → Login-CjRacmoJ.js} +2 -2
- package/dist/admin/chunks/{Login-Iw84AH9L.js.map → Login-CjRacmoJ.js.map} +1 -1
- package/dist/admin/chunks/{MagicLinkEE-C5K8p8Rk.js → MagicLinkEE-DZLJwQiC.js} +4 -4
- package/dist/admin/chunks/{MagicLinkEE-C5K8p8Rk.js.map → MagicLinkEE-DZLJwQiC.js.map} +1 -1
- package/dist/admin/chunks/{MagicLinkEE-EcyHC46Y.mjs → MagicLinkEE-Oh6er0ux.mjs} +4 -4
- package/dist/admin/chunks/{MagicLinkEE-EcyHC46Y.mjs.map → MagicLinkEE-Oh6er0ux.mjs.map} +1 -1
- package/dist/admin/chunks/{MarketplacePage-CcAYozK2.mjs → MarketplacePage-BUksRtFV.mjs} +2 -2
- package/dist/admin/chunks/{MarketplacePage-CcAYozK2.mjs.map → MarketplacePage-BUksRtFV.mjs.map} +1 -1
- package/dist/admin/chunks/{MarketplacePage-BmqfuAvB.js → MarketplacePage-D-PvEBXN.js} +2 -2
- package/dist/admin/chunks/{MarketplacePage-BmqfuAvB.js.map → MarketplacePage-D-PvEBXN.js.map} +1 -1
- package/dist/admin/chunks/{ProfilePage-CN8SAQ9w.mjs → ProfilePage-D0cczhuo.mjs} +3 -3
- package/dist/admin/chunks/{ProfilePage-CN8SAQ9w.mjs.map → ProfilePage-D0cczhuo.mjs.map} +1 -1
- package/dist/admin/chunks/{ProfilePage-DiGV7o6c.js → ProfilePage-DghUK7p_.js} +3 -3
- package/dist/admin/chunks/{ProfilePage-DiGV7o6c.js.map → ProfilePage-DghUK7p_.js.map} +1 -1
- package/dist/admin/chunks/{PurchaseAuditLogs-DnWVbru3.js → PurchaseAuditLogs-BIBa5E6F.js} +2 -2
- package/dist/admin/chunks/{PurchaseAuditLogs-DnWVbru3.js.map → PurchaseAuditLogs-BIBa5E6F.js.map} +1 -1
- package/dist/admin/chunks/{PurchaseAuditLogs-BI41XTBD.mjs → PurchaseAuditLogs-BOqpGLyP.mjs} +2 -2
- package/dist/admin/chunks/{PurchaseAuditLogs-BI41XTBD.mjs.map → PurchaseAuditLogs-BOqpGLyP.mjs.map} +1 -1
- package/dist/admin/chunks/{PurchaseContentHistory-BzC2C4Pv.mjs → PurchaseContentHistory-DqyUHK_8.mjs} +2 -2
- package/dist/admin/chunks/{PurchaseContentHistory-BzC2C4Pv.mjs.map → PurchaseContentHistory-DqyUHK_8.mjs.map} +1 -1
- package/dist/admin/chunks/{PurchaseContentHistory-DUk7otrp.js → PurchaseContentHistory-y25nmJsq.js} +2 -2
- package/dist/admin/chunks/{PurchaseContentHistory-DUk7otrp.js.map → PurchaseContentHistory-y25nmJsq.js.map} +1 -1
- package/dist/admin/chunks/{PurchaseSingleSignOn-Bq0YHAHt.js → PurchaseSingleSignOn-DloQ-NfU.js} +2 -2
- package/dist/admin/chunks/{PurchaseSingleSignOn-Bq0YHAHt.js.map → PurchaseSingleSignOn-DloQ-NfU.js.map} +1 -1
- package/dist/admin/chunks/{PurchaseSingleSignOn-G1TKPP15.mjs → PurchaseSingleSignOn-L8wgCpHG.mjs} +2 -2
- package/dist/admin/chunks/{PurchaseSingleSignOn-G1TKPP15.mjs.map → PurchaseSingleSignOn-L8wgCpHG.mjs.map} +1 -1
- package/dist/admin/chunks/{SelectRoles-CKInlnSd.js → SelectRoles-ChZyGpDA.js} +3 -3
- package/dist/admin/chunks/{SelectRoles-CKInlnSd.js.map → SelectRoles-ChZyGpDA.js.map} +1 -1
- package/dist/admin/chunks/{SelectRoles-DR4KBZkw.mjs → SelectRoles-hAMu1PFv.mjs} +3 -3
- package/dist/admin/chunks/{SelectRoles-DR4KBZkw.mjs.map → SelectRoles-hAMu1PFv.mjs.map} +1 -1
- package/dist/admin/chunks/{SingleSignOnPage-CRzrEUGp.mjs → SingleSignOnPage-B-NIM66a.mjs} +3 -3
- package/dist/admin/chunks/{SingleSignOnPage-CRzrEUGp.mjs.map → SingleSignOnPage-B-NIM66a.mjs.map} +1 -1
- package/dist/admin/chunks/{SingleSignOnPage-DtRVlrGP.js → SingleSignOnPage-D-JNyyk2.js} +3 -3
- package/dist/admin/chunks/{SingleSignOnPage-DtRVlrGP.js.map → SingleSignOnPage-D-JNyyk2.js.map} +1 -1
- package/dist/admin/chunks/{Table-CBZnqMuN.js → Table-U6zMuKE5.js} +2 -2
- package/dist/admin/chunks/{Table-CBZnqMuN.js.map → Table-U6zMuKE5.js.map} +1 -1
- package/dist/admin/chunks/{Table-BohVeu0r.mjs → Table-b4wXHsis.mjs} +2 -2
- package/dist/admin/chunks/{Table-BohVeu0r.mjs.map → Table-b4wXHsis.mjs.map} +1 -1
- package/dist/admin/chunks/{TokenTypeSelect-CpEAVZ_b.mjs → TokenTypeSelect-BUFFAUgx.mjs} +2 -2
- package/dist/admin/chunks/{TokenTypeSelect-CpEAVZ_b.mjs.map → TokenTypeSelect-BUFFAUgx.mjs.map} +1 -1
- package/dist/admin/chunks/{TokenTypeSelect-BV_ZNiY_.js → TokenTypeSelect-DCa4dg3r.js} +2 -2
- package/dist/admin/chunks/{TokenTypeSelect-BV_ZNiY_.js.map → TokenTypeSelect-DCa4dg3r.js.map} +1 -1
- package/dist/admin/chunks/{UseCasePage-Bro5fyP3.mjs → UseCasePage-BlHgNz7W.mjs} +2 -2
- package/dist/admin/chunks/{UseCasePage-Bro5fyP3.mjs.map → UseCasePage-BlHgNz7W.mjs.map} +1 -1
- package/dist/admin/chunks/{UseCasePage-CipG2GC4.js → UseCasePage-CYCPZztF.js} +2 -2
- package/dist/admin/chunks/{UseCasePage-CipG2GC4.js.map → UseCasePage-CYCPZztF.js.map} +1 -1
- package/dist/admin/chunks/{constants-BddeukI7.mjs → constants-BY_PZgf3.mjs} +2 -2
- package/dist/admin/chunks/{constants-BddeukI7.mjs.map → constants-BY_PZgf3.mjs.map} +1 -1
- package/dist/admin/chunks/{constants-CaerHoe3.js → constants-D3gM8ElF.js} +2 -2
- package/dist/admin/chunks/{constants-CaerHoe3.js.map → constants-D3gM8ElF.js.map} +1 -1
- package/dist/admin/chunks/{index-HGaughzt.js → index-BdqtLS-k.js} +32 -32
- package/dist/admin/chunks/{index-HGaughzt.js.map → index-BdqtLS-k.js.map} +1 -1
- package/dist/admin/chunks/{index-BM8-DG5K.mjs → index-C3BO0YZa.mjs} +32 -32
- package/dist/admin/chunks/{index-BM8-DG5K.mjs.map → index-C3BO0YZa.mjs.map} +1 -1
- package/dist/admin/chunks/uk-D7QEPfXn.mjs +788 -0
- package/dist/admin/chunks/uk-D7QEPfXn.mjs.map +1 -0
- package/dist/admin/chunks/uk-WdcESeZB.js +807 -0
- package/dist/admin/chunks/uk-WdcESeZB.js.map +1 -0
- package/dist/admin/chunks/{useAdminRoles-C6Es4UUq.mjs → useAdminRoles-D68i2BI_.mjs} +2 -2
- package/dist/admin/chunks/{useAdminRoles-C6Es4UUq.mjs.map → useAdminRoles-D68i2BI_.mjs.map} +1 -1
- package/dist/admin/chunks/{useAdminRoles-_4HKisJz.js → useAdminRoles-Dy5KXk0R.js} +2 -2
- package/dist/admin/chunks/{useAdminRoles-_4HKisJz.js.map → useAdminRoles-Dy5KXk0R.js.map} +1 -1
- package/dist/admin/chunks/{validation-Dmvl0gZQ.mjs → validation-XFv2h8gD.mjs} +2 -2
- package/dist/admin/chunks/{validation-Dmvl0gZQ.mjs.map → validation-XFv2h8gD.mjs.map} +1 -1
- package/dist/admin/chunks/{validation-dPl3P7dv.js → validation-sucpUItn.js} +2 -2
- package/dist/admin/chunks/{validation-dPl3P7dv.js.map → validation-sucpUItn.js.map} +1 -1
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/server/index.js +0 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +0 -1
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/src/controllers/authenticated-user.d.ts.map +1 -1
- package/package.json +11 -11
- package/dist/admin/chunks/AuthenticatedLayout-C9eZ12Ue.mjs.map +0 -1
- package/dist/admin/chunks/AuthenticatedLayout-D_VSoB1l.js.map +0 -1
- package/dist/admin/chunks/uk-Cb6a0PAZ.mjs +0 -201
- package/dist/admin/chunks/uk-Cb6a0PAZ.mjs.map +0 -1
- package/dist/admin/chunks/uk-gz16FlMw.js +0 -212
- package/dist/admin/chunks/uk-gz16FlMw.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditViewPage-DBga-70A.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 { 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>\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 gap={6}\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":["contentApiService","adminApi","injectEndpoints","endpoints","builder","getPermissions","query","transformResponse","response","data","getRoutes","overrideExisting","useGetPermissionsQuery","useGetRoutesQuery","ApiTokenPermissionsContextProvider","useApiTokenPermissionsContext","createContext","ApiTokenPermissionsProvider","children","rest","_jsx","useApiTokenPermissions","FormApiTokenContainer","errors","onChange","canEditInputs","isCreating","values","apiToken","onDispatch","setHasChangedPermissions","formatMessage","useIntl","handleChangeSelectApiTokenType","target","value","type","typeOptions","label","id","defaultMessage","Box","background","hasRadius","shadow","paddingTop","paddingBottom","paddingLeft","paddingRight","_jsxs","Flex","direction","alignItems","gap","Typography","variant","tag","Grid","Root","Item","col","xs","TokenName","error","TokenDescription","LifeSpanInput","token","TokenTypeSelect","name","options","getMethodColor","verb","text","border","MethodBox","styled","theme","spaces","BoundRoute","route","handler","method","path","title","formattedRoute","tail","split","controller","action","colors","span","textColor","borderColor","padding","fontWeight","map","includes","ActionBoundRoutes","selectedAction","routes","actionSection","style","minHeight","config","auth","scope","activeCheckboxWrapperStyles","css","props","primary100","CheckboxWrapper","primary600","$isActive","Border","div","neutral150","CollapsableContentType","controllers","orderNumber","disabled","onChangeSelectAll","selectedActions","setSelectedAction","isActionSelected","actionId","Accordion","Header","Trigger","capitalize","Content","allActionsSelected","actions","every","someActionsSelected","some","justifyContent","Checkbox","checked","onCheckedChange","button","data-testid","onClick","display","Cog","ContentTypesSection","section","size","api","index","apiId","Permissions","permissions","schema","yup","object","shape","string","max","required","translatedErrors","oneOf","description","nullable","lifespan","number","integer","min","defined","transformPermissionsData","layout","allActionsIds","Object","entries","permission","keys","push","flat","initialState","reducer","state","produce","draftState","pull","areAllSelected","item","forEach","onlyReadOnlyActions","filter","EditView","toggleNotification","useNotification","locationState","useLocation","useTypedSelector","admin_app","setApiToken","React","useState","accessKey","trackUsage","useTracking","setCurrentStep","useGuidedTour","allowedActions","canCreate","canUpdate","canRegenerate","useRBAC","settings","dispatch","useReducer","match","useMatch","params","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidtionErrors","useAPIErrorHandler","navigate","useNavigate","contentAPIPermissionsQuery","contentAPIRoutesQuery","useEffect","message","tokenType","API_TOKEN_TYPE","isLoading","useGetAPITokenQuery","skip","createToken","useCreateAPITokenMutation","updateToken","useUpdateAPITokenMutation","handleSubmit","body","formik","res","parseInt","toString","isBaseQueryError","setErrors","replace","hasChangedPermissions","handleChangeCheckbox","handleChangeSelectAllCheckbox","providerValue","Page","Loading","Main","Title","Formik","validationSchema","validateOnChange","initialValues","enableReinitialize","onSubmit","handleChange","isSubmitting","setFieldValue","Form","FormHead","setToken","regenerateUrl","Layouts","Boolean","TokenBox","ProtectedEditView","read","Protect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EditViewPage-Dvm8m28e.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 { 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>\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 gap={6}\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":["contentApiService","adminApi","injectEndpoints","endpoints","builder","getPermissions","query","transformResponse","response","data","getRoutes","overrideExisting","useGetPermissionsQuery","useGetRoutesQuery","ApiTokenPermissionsContextProvider","useApiTokenPermissionsContext","createContext","ApiTokenPermissionsProvider","children","rest","_jsx","useApiTokenPermissions","FormApiTokenContainer","errors","onChange","canEditInputs","isCreating","values","apiToken","onDispatch","setHasChangedPermissions","formatMessage","useIntl","handleChangeSelectApiTokenType","target","value","type","typeOptions","label","id","defaultMessage","Box","background","hasRadius","shadow","paddingTop","paddingBottom","paddingLeft","paddingRight","_jsxs","Flex","direction","alignItems","gap","Typography","variant","tag","Grid","Root","Item","col","xs","TokenName","error","TokenDescription","LifeSpanInput","token","TokenTypeSelect","name","options","getMethodColor","verb","text","border","MethodBox","styled","theme","spaces","BoundRoute","route","handler","method","path","title","formattedRoute","tail","split","controller","action","colors","span","textColor","borderColor","padding","fontWeight","map","includes","ActionBoundRoutes","selectedAction","routes","actionSection","style","minHeight","config","auth","scope","activeCheckboxWrapperStyles","css","props","primary100","CheckboxWrapper","primary600","$isActive","Border","div","neutral150","CollapsableContentType","controllers","orderNumber","disabled","onChangeSelectAll","selectedActions","setSelectedAction","isActionSelected","actionId","Accordion","Header","Trigger","capitalize","Content","allActionsSelected","actions","every","someActionsSelected","some","justifyContent","Checkbox","checked","onCheckedChange","button","data-testid","onClick","display","Cog","ContentTypesSection","section","size","api","index","apiId","Permissions","permissions","schema","yup","object","shape","string","max","required","translatedErrors","oneOf","description","nullable","lifespan","number","integer","min","defined","transformPermissionsData","layout","allActionsIds","Object","entries","permission","keys","push","flat","initialState","reducer","state","produce","draftState","pull","areAllSelected","item","forEach","onlyReadOnlyActions","filter","EditView","toggleNotification","useNotification","locationState","useLocation","useTypedSelector","admin_app","setApiToken","React","useState","accessKey","trackUsage","useTracking","setCurrentStep","useGuidedTour","allowedActions","canCreate","canUpdate","canRegenerate","useRBAC","settings","dispatch","useReducer","match","useMatch","params","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidtionErrors","useAPIErrorHandler","navigate","useNavigate","contentAPIPermissionsQuery","contentAPIRoutesQuery","useEffect","message","tokenType","API_TOKEN_TYPE","isLoading","useGetAPITokenQuery","skip","createToken","useCreateAPITokenMutation","updateToken","useUpdateAPITokenMutation","handleSubmit","body","formik","res","parseInt","toString","isBaseQueryError","setErrors","replace","hasChangedPermissions","handleChangeCheckbox","handleChangeSelectAllCheckbox","providerValue","Page","Loading","Main","Title","Formik","validationSchema","validateOnChange","initialValues","enableReinitialize","onSubmit","handleChange","isSubmitting","setFieldValue","Form","FormHead","setToken","regenerateUrl","Layouts","Boolean","TokenBox","ProtectedEditView","read","Protect"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
-
var EditPage = require('./EditPage-
|
|
4
|
+
var EditPage = require('./EditPage-CK8pIRKZ.js');
|
|
5
5
|
require('react');
|
|
6
6
|
require('@strapi/design-system');
|
|
7
7
|
require('react-intl');
|
|
@@ -29,7 +29,7 @@ require('styled-components');
|
|
|
29
29
|
require('@reduxjs/toolkit');
|
|
30
30
|
require('./selectors-Bf-6Fmez.js');
|
|
31
31
|
require('yup');
|
|
32
|
-
require('./index-
|
|
32
|
+
require('./index-BdqtLS-k.js');
|
|
33
33
|
require('react-dom/client');
|
|
34
34
|
require('invariant');
|
|
35
35
|
require('lodash/isFunction');
|
|
@@ -94,4 +94,4 @@ const EventsTableEE = ()=>{
|
|
|
94
94
|
};
|
|
95
95
|
|
|
96
96
|
exports.EventsTableEE = EventsTableEE;
|
|
97
|
-
//# sourceMappingURL=EventsTable-
|
|
97
|
+
//# sourceMappingURL=EventsTable-C1FNa1mh.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventsTable-
|
|
1
|
+
{"version":3,"file":"EventsTable-C1FNa1mh.js","sources":["../../../ee/admin/src/pages/SettingsPage/pages/Webhooks/components/EventsTable.tsx"],"sourcesContent":["import { Events } from '../../../../../../../../admin/src/pages/Settings/pages/Webhooks/components/Events';\n\nconst eeTables = {\n 'review-workflows': {\n 'review-workflows': ['review-workflows.updateEntryStage'],\n },\n releases: {\n releases: ['releases.publish'],\n },\n};\n\nconst getHeaders = (table: keyof typeof eeTables) => {\n switch (table) {\n case 'review-workflows':\n return () => [{ id: 'review-workflows.updateEntryStage', defaultMessage: 'Stage Change' }];\n case 'releases':\n return () => [{ id: 'releases.publish', defaultMessage: 'Publish' }];\n }\n};\n\nconst EventsTableEE = () => {\n return (\n <Events.Root>\n <Events.Headers />\n <Events.Body />\n {(Object.keys(eeTables) as Array<keyof typeof eeTables>).map((table) => (\n <>\n <Events.Headers getHeaders={getHeaders(table)} />\n <Events.Body providedEvents={eeTables[table]} />\n </>\n ))}\n </Events.Root>\n );\n};\n\nexport { EventsTableEE };\n"],"names":["eeTables","releases","getHeaders","table","id","defaultMessage","EventsTableEE","_jsxs","Events","Root","_jsx","Headers","Body","Object","keys","map","_Fragment","providedEvents"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,MAAMA,QAAW,GAAA;IACf,kBAAoB,EAAA;QAClB,kBAAoB,EAAA;AAAC,YAAA;AAAoC;AAC3D,KAAA;IACAC,QAAU,EAAA;QACRA,QAAU,EAAA;AAAC,YAAA;AAAmB;AAChC;AACF,CAAA;AAEA,MAAMC,aAAa,CAACC,KAAAA,GAAAA;IAClB,OAAQA,KAAAA;QACN,KAAK,kBAAA;AACH,YAAA,OAAO,IAAM;AAAC,oBAAA;wBAAEC,EAAI,EAAA,mCAAA;wBAAqCC,cAAgB,EAAA;AAAe;AAAE,iBAAA;QAC5F,KAAK,UAAA;AACH,YAAA,OAAO,IAAM;AAAC,oBAAA;wBAAED,EAAI,EAAA,kBAAA;wBAAoBC,cAAgB,EAAA;AAAU;AAAE,iBAAA;AACxE;AACF,CAAA;AAEA,MAAMC,aAAgB,GAAA,IAAA;IACpB,qBACEC,eAAA,CAACC,gBAAOC,IAAI,EAAA;;AACV,0BAAAC,cAAA,CAACF,gBAAOG,OAAO,EAAA,EAAA,CAAA;AACf,0BAAAD,cAAA,CAACF,gBAAOI,IAAI,EAAA,EAAA,CAAA;AACVC,YAAAA,MAAAA,CAAOC,IAAI,CAACd,QAAAA,CAAAA,CAA2Ce,GAAG,CAAC,CAACZ,KAC5D,iBAAAI,eAAA,CAAAS,mBAAA,EAAA;;AACE,sCAAAN,cAAA,CAACF,gBAAOG,OAAO,EAAA;AAACT,4BAAAA,UAAAA,EAAYA,UAAWC,CAAAA,KAAAA;;AACvC,sCAAAO,cAAA,CAACF,gBAAOI,IAAI,EAAA;4BAACK,cAAgBjB,EAAAA,QAAQ,CAACG,KAAM;;;;;;AAKtD;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
-
import { a as Events } from './EditPage-
|
|
2
|
+
import { a as Events } from './EditPage-CBrPs4kH.mjs';
|
|
3
3
|
import 'react';
|
|
4
4
|
import '@strapi/design-system';
|
|
5
5
|
import 'react-intl';
|
|
@@ -27,7 +27,7 @@ import 'styled-components';
|
|
|
27
27
|
import '@reduxjs/toolkit';
|
|
28
28
|
import './selectors-Dej_6h4x.mjs';
|
|
29
29
|
import 'yup';
|
|
30
|
-
import './index-
|
|
30
|
+
import './index-C3BO0YZa.mjs';
|
|
31
31
|
import 'react-dom/client';
|
|
32
32
|
import 'invariant';
|
|
33
33
|
import 'lodash/isFunction';
|
|
@@ -92,4 +92,4 @@ const EventsTableEE = ()=>{
|
|
|
92
92
|
};
|
|
93
93
|
|
|
94
94
|
export { EventsTableEE };
|
|
95
|
-
//# sourceMappingURL=EventsTable-
|
|
95
|
+
//# sourceMappingURL=EventsTable-aDYIp-4O.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventsTable-
|
|
1
|
+
{"version":3,"file":"EventsTable-aDYIp-4O.mjs","sources":["../../../ee/admin/src/pages/SettingsPage/pages/Webhooks/components/EventsTable.tsx"],"sourcesContent":["import { Events } from '../../../../../../../../admin/src/pages/Settings/pages/Webhooks/components/Events';\n\nconst eeTables = {\n 'review-workflows': {\n 'review-workflows': ['review-workflows.updateEntryStage'],\n },\n releases: {\n releases: ['releases.publish'],\n },\n};\n\nconst getHeaders = (table: keyof typeof eeTables) => {\n switch (table) {\n case 'review-workflows':\n return () => [{ id: 'review-workflows.updateEntryStage', defaultMessage: 'Stage Change' }];\n case 'releases':\n return () => [{ id: 'releases.publish', defaultMessage: 'Publish' }];\n }\n};\n\nconst EventsTableEE = () => {\n return (\n <Events.Root>\n <Events.Headers />\n <Events.Body />\n {(Object.keys(eeTables) as Array<keyof typeof eeTables>).map((table) => (\n <>\n <Events.Headers getHeaders={getHeaders(table)} />\n <Events.Body providedEvents={eeTables[table]} />\n </>\n ))}\n </Events.Root>\n );\n};\n\nexport { EventsTableEE };\n"],"names":["eeTables","releases","getHeaders","table","id","defaultMessage","EventsTableEE","_jsxs","Events","Root","_jsx","Headers","Body","Object","keys","map","_Fragment","providedEvents"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,MAAMA,QAAW,GAAA;IACf,kBAAoB,EAAA;QAClB,kBAAoB,EAAA;AAAC,YAAA;AAAoC;AAC3D,KAAA;IACAC,QAAU,EAAA;QACRA,QAAU,EAAA;AAAC,YAAA;AAAmB;AAChC;AACF,CAAA;AAEA,MAAMC,aAAa,CAACC,KAAAA,GAAAA;IAClB,OAAQA,KAAAA;QACN,KAAK,kBAAA;AACH,YAAA,OAAO,IAAM;AAAC,oBAAA;wBAAEC,EAAI,EAAA,mCAAA;wBAAqCC,cAAgB,EAAA;AAAe;AAAE,iBAAA;QAC5F,KAAK,UAAA;AACH,YAAA,OAAO,IAAM;AAAC,oBAAA;wBAAED,EAAI,EAAA,kBAAA;wBAAoBC,cAAgB,EAAA;AAAU;AAAE,iBAAA;AACxE;AACF,CAAA;AAEA,MAAMC,aAAgB,GAAA,IAAA;IACpB,qBACEC,IAAA,CAACC,OAAOC,IAAI,EAAA;;AACV,0BAAAC,GAAA,CAACF,OAAOG,OAAO,EAAA,EAAA,CAAA;AACf,0BAAAD,GAAA,CAACF,OAAOI,IAAI,EAAA,EAAA,CAAA;AACVC,YAAAA,MAAAA,CAAOC,IAAI,CAACd,QAAAA,CAAAA,CAA2Ce,GAAG,CAAC,CAACZ,KAC5D,iBAAAI,IAAA,CAAAS,QAAA,EAAA;;AACE,sCAAAN,GAAA,CAACF,OAAOG,OAAO,EAAA;AAACT,4BAAAA,UAAAA,EAAYA,UAAWC,CAAAA,KAAAA;;AACvC,sCAAAO,GAAA,CAACF,OAAOI,IAAI,EAAA;4BAACK,cAAgBjB,EAAAA,QAAQ,CAACG,KAAM;;;;;;AAKtD;;;;"}
|
|
@@ -4,7 +4,7 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var designSystem = require('@strapi/design-system');
|
|
6
6
|
var reactIntl = require('react-intl');
|
|
7
|
-
var index = require('./index-
|
|
7
|
+
var index = require('./index-BdqtLS-k.js');
|
|
8
8
|
var Theme = require('./Theme-DDlJz91O.js');
|
|
9
9
|
var admin = require('./admin-udBiOv2o.js');
|
|
10
10
|
var useEnterprise = require('./useEnterprise-IHd3AKd2.js');
|
|
@@ -576,7 +576,7 @@ const GuidedTour = ()=>{
|
|
|
576
576
|
* HomePage
|
|
577
577
|
* -----------------------------------------------------------------------------------------------*/ const HomePage = ()=>{
|
|
578
578
|
const Page = useEnterprise.useEnterprise(HomePageCE, // eslint-disable-next-line import/no-cycle
|
|
579
|
-
async ()=>(await Promise.resolve().then(function () { return require('./HomePage-
|
|
579
|
+
async ()=>(await Promise.resolve().then(function () { return require('./HomePage-BKwoMagC.js'); })).HomePageEE);
|
|
580
580
|
// block rendering until the EE component is fully loaded
|
|
581
581
|
if (!Page) {
|
|
582
582
|
return null;
|
|
@@ -586,4 +586,4 @@ const GuidedTour = ()=>{
|
|
|
586
586
|
|
|
587
587
|
exports.HomePage = HomePage;
|
|
588
588
|
exports.HomePageCE = HomePageCE;
|
|
589
|
-
//# sourceMappingURL=HomePage-
|
|
589
|
+
//# sourceMappingURL=HomePage-8CeDS3qO.js.map
|