@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.
Files changed (174) hide show
  1. package/dist/admin/chunks/{ApplicationInfoPage-DiEcqVEU.mjs → ApplicationInfoPage-BZwUO73O.mjs} +2 -2
  2. package/dist/admin/chunks/{ApplicationInfoPage-DiEcqVEU.mjs.map → ApplicationInfoPage-BZwUO73O.mjs.map} +1 -1
  3. package/dist/admin/chunks/{ApplicationInfoPage-CsBvES_c.js → ApplicationInfoPage-DJOazrYK.js} +2 -2
  4. package/dist/admin/chunks/{ApplicationInfoPage-CsBvES_c.js.map → ApplicationInfoPage-DJOazrYK.js.map} +1 -1
  5. package/dist/admin/chunks/{AuthenticatedLayout-D_VSoB1l.js → AuthenticatedLayout-Dy75FZrh.js} +7 -6
  6. package/dist/admin/chunks/AuthenticatedLayout-Dy75FZrh.js.map +1 -0
  7. package/dist/admin/chunks/{AuthenticatedLayout-C9eZ12Ue.mjs → AuthenticatedLayout-jDyinb04.mjs} +7 -6
  8. package/dist/admin/chunks/AuthenticatedLayout-jDyinb04.mjs.map +1 -0
  9. package/dist/admin/chunks/{CreatePage-DQDa78K3.mjs → CreatePage-BO4p8eVo.mjs} +2 -2
  10. package/dist/admin/chunks/{CreatePage-DQDa78K3.mjs.map → CreatePage-BO4p8eVo.mjs.map} +1 -1
  11. package/dist/admin/chunks/{CreatePage-DbmpFjHt.js → CreatePage-Bgs19RIr.js} +2 -2
  12. package/dist/admin/chunks/{CreatePage-DbmpFjHt.js.map → CreatePage-Bgs19RIr.js.map} +1 -1
  13. package/dist/admin/chunks/{CreatePage-Cb-ETkOn.mjs → CreatePage-CvMkpe3b.mjs} +3 -3
  14. package/dist/admin/chunks/{CreatePage-Cb-ETkOn.mjs.map → CreatePage-CvMkpe3b.mjs.map} +1 -1
  15. package/dist/admin/chunks/{CreatePage-DkzHz0zk.js → CreatePage-D0kjwP8s.js} +3 -3
  16. package/dist/admin/chunks/{CreatePage-DkzHz0zk.js.map → CreatePage-D0kjwP8s.js.map} +1 -1
  17. package/dist/admin/chunks/{CreateView-CmubtWzn.mjs → CreateView-B5Rq5Uhw.mjs} +4 -4
  18. package/dist/admin/chunks/{CreateView-CmubtWzn.mjs.map → CreateView-B5Rq5Uhw.mjs.map} +1 -1
  19. package/dist/admin/chunks/{CreateView-CE4-drK6.js → CreateView-DCsm2KBZ.js} +4 -4
  20. package/dist/admin/chunks/{CreateView-CE4-drK6.js.map → CreateView-DCsm2KBZ.js.map} +1 -1
  21. package/dist/admin/chunks/{CreateView-yjsS9KUJ.js → CreateView-DGq7e-Zm.js} +4 -4
  22. package/dist/admin/chunks/{CreateView-yjsS9KUJ.js.map → CreateView-DGq7e-Zm.js.map} +1 -1
  23. package/dist/admin/chunks/{CreateView-DZaIevIB.mjs → CreateView-h_bF5XrZ.mjs} +4 -4
  24. package/dist/admin/chunks/{CreateView-DZaIevIB.mjs.map → CreateView-h_bF5XrZ.mjs.map} +1 -1
  25. package/dist/admin/chunks/{EditPage-CNaAuT5C.js → EditPage-85v6bKcJ.js} +3 -3
  26. package/dist/admin/chunks/{EditPage-CNaAuT5C.js.map → EditPage-85v6bKcJ.js.map} +1 -1
  27. package/dist/admin/chunks/{EditPage-C44OaxjN.mjs → EditPage-CBrPs4kH.mjs} +3 -3
  28. package/dist/admin/chunks/{EditPage-C44OaxjN.mjs.map → EditPage-CBrPs4kH.mjs.map} +1 -1
  29. package/dist/admin/chunks/{EditPage-Bjr4f1Bs.mjs → EditPage-CFSx_zaS.mjs} +3 -3
  30. package/dist/admin/chunks/{EditPage-Bjr4f1Bs.mjs.map → EditPage-CFSx_zaS.mjs.map} +1 -1
  31. package/dist/admin/chunks/{EditPage-CycQlsFL.js → EditPage-CK8pIRKZ.js} +3 -3
  32. package/dist/admin/chunks/{EditPage-CycQlsFL.js.map → EditPage-CK8pIRKZ.js.map} +1 -1
  33. package/dist/admin/chunks/{EditPage-BrMhV8aB.js → EditPage-DHtr1mq1.js} +6 -6
  34. package/dist/admin/chunks/{EditPage-BrMhV8aB.js.map → EditPage-DHtr1mq1.js.map} +1 -1
  35. package/dist/admin/chunks/{EditPage-MmQQ4hWc.mjs → EditPage-DrT9bgfE.mjs} +6 -6
  36. package/dist/admin/chunks/{EditPage-MmQQ4hWc.mjs.map → EditPage-DrT9bgfE.mjs.map} +1 -1
  37. package/dist/admin/chunks/{EditView-C9cKaoY1.js → EditView-CfJxHMkF.js} +3 -3
  38. package/dist/admin/chunks/{EditView-C9cKaoY1.js.map → EditView-CfJxHMkF.js.map} +1 -1
  39. package/dist/admin/chunks/{EditView-CFIkvFrt.mjs → EditView-XfGT5Bj1.mjs} +3 -3
  40. package/dist/admin/chunks/{EditView-CFIkvFrt.mjs.map → EditView-XfGT5Bj1.mjs.map} +1 -1
  41. package/dist/admin/chunks/{EditViewPage-CwdhHAuX.mjs → EditViewPage-BLftPAqX.mjs} +3 -3
  42. package/dist/admin/chunks/{EditViewPage-CwdhHAuX.mjs.map → EditViewPage-BLftPAqX.mjs.map} +1 -1
  43. package/dist/admin/chunks/{EditViewPage-DBga-70A.js → EditViewPage-Dvm8m28e.js} +3 -3
  44. package/dist/admin/chunks/{EditViewPage-DBga-70A.js.map → EditViewPage-Dvm8m28e.js.map} +1 -1
  45. package/dist/admin/chunks/{EventsTable-fkWvAMuL.js → EventsTable-C1FNa1mh.js} +3 -3
  46. package/dist/admin/chunks/{EventsTable-fkWvAMuL.js.map → EventsTable-C1FNa1mh.js.map} +1 -1
  47. package/dist/admin/chunks/{EventsTable-CeqMb1jP.mjs → EventsTable-aDYIp-4O.mjs} +3 -3
  48. package/dist/admin/chunks/{EventsTable-CeqMb1jP.mjs.map → EventsTable-aDYIp-4O.mjs.map} +1 -1
  49. package/dist/admin/chunks/{HomePage-CVc0RfvD.js → HomePage-8CeDS3qO.js} +3 -3
  50. package/dist/admin/chunks/{HomePage-CVc0RfvD.js.map → HomePage-8CeDS3qO.js.map} +1 -1
  51. package/dist/admin/chunks/{HomePage-B2skN1xt.js → HomePage-BKwoMagC.js} +3 -3
  52. package/dist/admin/chunks/{HomePage-B2skN1xt.js.map → HomePage-BKwoMagC.js.map} +1 -1
  53. package/dist/admin/chunks/{HomePage-DGTeFboL.mjs → HomePage-BRggBAHf.mjs} +3 -3
  54. package/dist/admin/chunks/{HomePage-DGTeFboL.mjs.map → HomePage-BRggBAHf.mjs.map} +1 -1
  55. package/dist/admin/chunks/{HomePage-MfOqcIag.mjs → HomePage-DuRHJoC7.mjs} +3 -3
  56. package/dist/admin/chunks/{HomePage-MfOqcIag.mjs.map → HomePage-DuRHJoC7.mjs.map} +1 -1
  57. package/dist/admin/chunks/{InstalledPlugins-5j7xjDqh.mjs → InstalledPlugins-23tOdYYB.mjs} +2 -2
  58. package/dist/admin/chunks/{InstalledPlugins-5j7xjDqh.mjs.map → InstalledPlugins-23tOdYYB.mjs.map} +1 -1
  59. package/dist/admin/chunks/{InstalledPlugins-BXM3i3xr.js → InstalledPlugins-z8ODfbJj.js} +2 -2
  60. package/dist/admin/chunks/{InstalledPlugins-BXM3i3xr.js.map → InstalledPlugins-z8ODfbJj.js.map} +1 -1
  61. package/dist/admin/chunks/{Layout-DST1PxaO.js → Layout-BZgwh-LZ.js} +3 -3
  62. package/dist/admin/chunks/{Layout-DST1PxaO.js.map → Layout-BZgwh-LZ.js.map} +1 -1
  63. package/dist/admin/chunks/{Layout-DYjtK6iP.mjs → Layout-CmzbGRtV.mjs} +3 -3
  64. package/dist/admin/chunks/{Layout-DYjtK6iP.mjs.map → Layout-CmzbGRtV.mjs.map} +1 -1
  65. package/dist/admin/chunks/{ListPage-BhGt3EBQ.mjs → ListPage-BE3aimOU.mjs} +2 -2
  66. package/dist/admin/chunks/{ListPage-BhGt3EBQ.mjs.map → ListPage-BE3aimOU.mjs.map} +1 -1
  67. package/dist/admin/chunks/{ListPage-CWINpwfS.js → ListPage-BRVhZryp.js} +6 -6
  68. package/dist/admin/chunks/{ListPage-CWINpwfS.js.map → ListPage-BRVhZryp.js.map} +1 -1
  69. package/dist/admin/chunks/{ListPage-srJutHdv.mjs → ListPage-BuFQNHRU.mjs} +3 -3
  70. package/dist/admin/chunks/{ListPage-srJutHdv.mjs.map → ListPage-BuFQNHRU.mjs.map} +1 -1
  71. package/dist/admin/chunks/{ListPage-CLXy5r60.js → ListPage-C46MNvAQ.js} +3 -3
  72. package/dist/admin/chunks/{ListPage-CLXy5r60.js.map → ListPage-C46MNvAQ.js.map} +1 -1
  73. package/dist/admin/chunks/{ListPage-BVI0O8bq.mjs → ListPage-CTxfjKUP.mjs} +2 -2
  74. package/dist/admin/chunks/{ListPage-BVI0O8bq.mjs.map → ListPage-CTxfjKUP.mjs.map} +1 -1
  75. package/dist/admin/chunks/{ListPage-B5Hb8BA-.mjs → ListPage-CovdXetq.mjs} +6 -6
  76. package/dist/admin/chunks/{ListPage-B5Hb8BA-.mjs.map → ListPage-CovdXetq.mjs.map} +1 -1
  77. package/dist/admin/chunks/{ListPage-BgyypnOM.js → ListPage-D7fIXyTM.js} +5 -5
  78. package/dist/admin/chunks/{ListPage-BgyypnOM.js.map → ListPage-D7fIXyTM.js.map} +1 -1
  79. package/dist/admin/chunks/{ListPage-PwzVjSsA.mjs → ListPage-DoR-NV6v.mjs} +5 -5
  80. package/dist/admin/chunks/{ListPage-PwzVjSsA.mjs.map → ListPage-DoR-NV6v.mjs.map} +1 -1
  81. package/dist/admin/chunks/{ListPage-D21yUih2.js → ListPage-SVEmrFSg.js} +2 -2
  82. package/dist/admin/chunks/{ListPage-D21yUih2.js.map → ListPage-SVEmrFSg.js.map} +1 -1
  83. package/dist/admin/chunks/{ListPage-DbfL2rpi.js → ListPage-fOcHewxm.js} +2 -2
  84. package/dist/admin/chunks/{ListPage-DbfL2rpi.js.map → ListPage-fOcHewxm.js.map} +1 -1
  85. package/dist/admin/chunks/{ListView--KzJiQiO.mjs → ListView-BUbdI3-z.mjs} +3 -3
  86. package/dist/admin/chunks/{ListView--KzJiQiO.mjs.map → ListView-BUbdI3-z.mjs.map} +1 -1
  87. package/dist/admin/chunks/{ListView-DzwvQ8nW.js → ListView-CGHuleNQ.js} +3 -3
  88. package/dist/admin/chunks/{ListView-DzwvQ8nW.js.map → ListView-CGHuleNQ.js.map} +1 -1
  89. package/dist/admin/chunks/{ListView-CoGoDDiF.mjs → ListView-DxPGNDw_.mjs} +3 -3
  90. package/dist/admin/chunks/{ListView-CoGoDDiF.mjs.map → ListView-DxPGNDw_.mjs.map} +1 -1
  91. package/dist/admin/chunks/{ListView-DGfxO89i.js → ListView-HZFAPppY.js} +3 -3
  92. package/dist/admin/chunks/{ListView-DGfxO89i.js.map → ListView-HZFAPppY.js.map} +1 -1
  93. package/dist/admin/chunks/{Login-Dtkhd0GV.mjs → Login-B_Z4SJVp.mjs} +2 -2
  94. package/dist/admin/chunks/{Login-Dtkhd0GV.mjs.map → Login-B_Z4SJVp.mjs.map} +1 -1
  95. package/dist/admin/chunks/{Login-Iw84AH9L.js → Login-CjRacmoJ.js} +2 -2
  96. package/dist/admin/chunks/{Login-Iw84AH9L.js.map → Login-CjRacmoJ.js.map} +1 -1
  97. package/dist/admin/chunks/{MagicLinkEE-C5K8p8Rk.js → MagicLinkEE-DZLJwQiC.js} +4 -4
  98. package/dist/admin/chunks/{MagicLinkEE-C5K8p8Rk.js.map → MagicLinkEE-DZLJwQiC.js.map} +1 -1
  99. package/dist/admin/chunks/{MagicLinkEE-EcyHC46Y.mjs → MagicLinkEE-Oh6er0ux.mjs} +4 -4
  100. package/dist/admin/chunks/{MagicLinkEE-EcyHC46Y.mjs.map → MagicLinkEE-Oh6er0ux.mjs.map} +1 -1
  101. package/dist/admin/chunks/{MarketplacePage-CcAYozK2.mjs → MarketplacePage-BUksRtFV.mjs} +2 -2
  102. package/dist/admin/chunks/{MarketplacePage-CcAYozK2.mjs.map → MarketplacePage-BUksRtFV.mjs.map} +1 -1
  103. package/dist/admin/chunks/{MarketplacePage-BmqfuAvB.js → MarketplacePage-D-PvEBXN.js} +2 -2
  104. package/dist/admin/chunks/{MarketplacePage-BmqfuAvB.js.map → MarketplacePage-D-PvEBXN.js.map} +1 -1
  105. package/dist/admin/chunks/{ProfilePage-CN8SAQ9w.mjs → ProfilePage-D0cczhuo.mjs} +3 -3
  106. package/dist/admin/chunks/{ProfilePage-CN8SAQ9w.mjs.map → ProfilePage-D0cczhuo.mjs.map} +1 -1
  107. package/dist/admin/chunks/{ProfilePage-DiGV7o6c.js → ProfilePage-DghUK7p_.js} +3 -3
  108. package/dist/admin/chunks/{ProfilePage-DiGV7o6c.js.map → ProfilePage-DghUK7p_.js.map} +1 -1
  109. package/dist/admin/chunks/{PurchaseAuditLogs-DnWVbru3.js → PurchaseAuditLogs-BIBa5E6F.js} +2 -2
  110. package/dist/admin/chunks/{PurchaseAuditLogs-DnWVbru3.js.map → PurchaseAuditLogs-BIBa5E6F.js.map} +1 -1
  111. package/dist/admin/chunks/{PurchaseAuditLogs-BI41XTBD.mjs → PurchaseAuditLogs-BOqpGLyP.mjs} +2 -2
  112. package/dist/admin/chunks/{PurchaseAuditLogs-BI41XTBD.mjs.map → PurchaseAuditLogs-BOqpGLyP.mjs.map} +1 -1
  113. package/dist/admin/chunks/{PurchaseContentHistory-BzC2C4Pv.mjs → PurchaseContentHistory-DqyUHK_8.mjs} +2 -2
  114. package/dist/admin/chunks/{PurchaseContentHistory-BzC2C4Pv.mjs.map → PurchaseContentHistory-DqyUHK_8.mjs.map} +1 -1
  115. package/dist/admin/chunks/{PurchaseContentHistory-DUk7otrp.js → PurchaseContentHistory-y25nmJsq.js} +2 -2
  116. package/dist/admin/chunks/{PurchaseContentHistory-DUk7otrp.js.map → PurchaseContentHistory-y25nmJsq.js.map} +1 -1
  117. package/dist/admin/chunks/{PurchaseSingleSignOn-Bq0YHAHt.js → PurchaseSingleSignOn-DloQ-NfU.js} +2 -2
  118. package/dist/admin/chunks/{PurchaseSingleSignOn-Bq0YHAHt.js.map → PurchaseSingleSignOn-DloQ-NfU.js.map} +1 -1
  119. package/dist/admin/chunks/{PurchaseSingleSignOn-G1TKPP15.mjs → PurchaseSingleSignOn-L8wgCpHG.mjs} +2 -2
  120. package/dist/admin/chunks/{PurchaseSingleSignOn-G1TKPP15.mjs.map → PurchaseSingleSignOn-L8wgCpHG.mjs.map} +1 -1
  121. package/dist/admin/chunks/{SelectRoles-CKInlnSd.js → SelectRoles-ChZyGpDA.js} +3 -3
  122. package/dist/admin/chunks/{SelectRoles-CKInlnSd.js.map → SelectRoles-ChZyGpDA.js.map} +1 -1
  123. package/dist/admin/chunks/{SelectRoles-DR4KBZkw.mjs → SelectRoles-hAMu1PFv.mjs} +3 -3
  124. package/dist/admin/chunks/{SelectRoles-DR4KBZkw.mjs.map → SelectRoles-hAMu1PFv.mjs.map} +1 -1
  125. package/dist/admin/chunks/{SingleSignOnPage-CRzrEUGp.mjs → SingleSignOnPage-B-NIM66a.mjs} +3 -3
  126. package/dist/admin/chunks/{SingleSignOnPage-CRzrEUGp.mjs.map → SingleSignOnPage-B-NIM66a.mjs.map} +1 -1
  127. package/dist/admin/chunks/{SingleSignOnPage-DtRVlrGP.js → SingleSignOnPage-D-JNyyk2.js} +3 -3
  128. package/dist/admin/chunks/{SingleSignOnPage-DtRVlrGP.js.map → SingleSignOnPage-D-JNyyk2.js.map} +1 -1
  129. package/dist/admin/chunks/{Table-CBZnqMuN.js → Table-U6zMuKE5.js} +2 -2
  130. package/dist/admin/chunks/{Table-CBZnqMuN.js.map → Table-U6zMuKE5.js.map} +1 -1
  131. package/dist/admin/chunks/{Table-BohVeu0r.mjs → Table-b4wXHsis.mjs} +2 -2
  132. package/dist/admin/chunks/{Table-BohVeu0r.mjs.map → Table-b4wXHsis.mjs.map} +1 -1
  133. package/dist/admin/chunks/{TokenTypeSelect-CpEAVZ_b.mjs → TokenTypeSelect-BUFFAUgx.mjs} +2 -2
  134. package/dist/admin/chunks/{TokenTypeSelect-CpEAVZ_b.mjs.map → TokenTypeSelect-BUFFAUgx.mjs.map} +1 -1
  135. package/dist/admin/chunks/{TokenTypeSelect-BV_ZNiY_.js → TokenTypeSelect-DCa4dg3r.js} +2 -2
  136. package/dist/admin/chunks/{TokenTypeSelect-BV_ZNiY_.js.map → TokenTypeSelect-DCa4dg3r.js.map} +1 -1
  137. package/dist/admin/chunks/{UseCasePage-Bro5fyP3.mjs → UseCasePage-BlHgNz7W.mjs} +2 -2
  138. package/dist/admin/chunks/{UseCasePage-Bro5fyP3.mjs.map → UseCasePage-BlHgNz7W.mjs.map} +1 -1
  139. package/dist/admin/chunks/{UseCasePage-CipG2GC4.js → UseCasePage-CYCPZztF.js} +2 -2
  140. package/dist/admin/chunks/{UseCasePage-CipG2GC4.js.map → UseCasePage-CYCPZztF.js.map} +1 -1
  141. package/dist/admin/chunks/{constants-BddeukI7.mjs → constants-BY_PZgf3.mjs} +2 -2
  142. package/dist/admin/chunks/{constants-BddeukI7.mjs.map → constants-BY_PZgf3.mjs.map} +1 -1
  143. package/dist/admin/chunks/{constants-CaerHoe3.js → constants-D3gM8ElF.js} +2 -2
  144. package/dist/admin/chunks/{constants-CaerHoe3.js.map → constants-D3gM8ElF.js.map} +1 -1
  145. package/dist/admin/chunks/{index-HGaughzt.js → index-BdqtLS-k.js} +32 -32
  146. package/dist/admin/chunks/{index-HGaughzt.js.map → index-BdqtLS-k.js.map} +1 -1
  147. package/dist/admin/chunks/{index-BM8-DG5K.mjs → index-C3BO0YZa.mjs} +32 -32
  148. package/dist/admin/chunks/{index-BM8-DG5K.mjs.map → index-C3BO0YZa.mjs.map} +1 -1
  149. package/dist/admin/chunks/uk-D7QEPfXn.mjs +788 -0
  150. package/dist/admin/chunks/uk-D7QEPfXn.mjs.map +1 -0
  151. package/dist/admin/chunks/uk-WdcESeZB.js +807 -0
  152. package/dist/admin/chunks/uk-WdcESeZB.js.map +1 -0
  153. package/dist/admin/chunks/{useAdminRoles-C6Es4UUq.mjs → useAdminRoles-D68i2BI_.mjs} +2 -2
  154. package/dist/admin/chunks/{useAdminRoles-C6Es4UUq.mjs.map → useAdminRoles-D68i2BI_.mjs.map} +1 -1
  155. package/dist/admin/chunks/{useAdminRoles-_4HKisJz.js → useAdminRoles-Dy5KXk0R.js} +2 -2
  156. package/dist/admin/chunks/{useAdminRoles-_4HKisJz.js.map → useAdminRoles-Dy5KXk0R.js.map} +1 -1
  157. package/dist/admin/chunks/{validation-Dmvl0gZQ.mjs → validation-XFv2h8gD.mjs} +2 -2
  158. package/dist/admin/chunks/{validation-Dmvl0gZQ.mjs.map → validation-XFv2h8gD.mjs.map} +1 -1
  159. package/dist/admin/chunks/{validation-dPl3P7dv.js → validation-sucpUItn.js} +2 -2
  160. package/dist/admin/chunks/{validation-dPl3P7dv.js.map → validation-sucpUItn.js.map} +1 -1
  161. package/dist/admin/index.js +1 -1
  162. package/dist/admin/index.mjs +1 -1
  163. package/dist/server/index.js +0 -1
  164. package/dist/server/index.js.map +1 -1
  165. package/dist/server/index.mjs +0 -1
  166. package/dist/server/index.mjs.map +1 -1
  167. package/dist/server/src/controllers/authenticated-user.d.ts.map +1 -1
  168. package/package.json +11 -11
  169. package/dist/admin/chunks/AuthenticatedLayout-C9eZ12Ue.mjs.map +0 -1
  170. package/dist/admin/chunks/AuthenticatedLayout-D_VSoB1l.js.map +0 -1
  171. package/dist/admin/chunks/uk-Cb6a0PAZ.mjs +0 -201
  172. package/dist/admin/chunks/uk-Cb6a0PAZ.mjs.map +0 -1
  173. package/dist/admin/chunks/uk-gz16FlMw.js +0 -212
  174. package/dist/admin/chunks/uk-gz16FlMw.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"EditView-CFIkvFrt.mjs","sources":["../../../admin/src/pages/Settings/pages/TransferTokens/EditView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Flex, Grid, Typography } from '@strapi/design-system';\nimport { Formik, Form, FormikErrors, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useNavigate, useMatch } from 'react-router-dom';\nimport * as yup from 'yup';\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 useCreateTransferTokenMutation,\n useGetTransferTokenQuery,\n useUpdateTransferTokenMutation,\n} from '../../../../services/transferTokens';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\nimport { TRANSFER_TOKEN_TYPE } from '../../components/Tokens/constants';\nimport { FormHead } from '../../components/Tokens/FormHead';\nimport { LifeSpanInput } from '../../components/Tokens/LifeSpanInput';\nimport { TokenBox } from '../../components/Tokens/TokenBox';\nimport { TokenDescription } from '../../components/Tokens/TokenDescription';\nimport { TokenName } from '../../components/Tokens/TokenName';\nimport { TokenTypeSelect } from '../../components/Tokens/TokenTypeSelect';\n\nimport type {\n TransferToken,\n SanitizedTransferToken,\n} from '../../../../../../shared/contracts/transfer';\n\nconst schema = yup.object().shape({\n name: yup.string().max(100).required(translatedErrors.required.id),\n description: yup.string().nullable(),\n lifespan: yup.number().integer().min(0).nullable().defined(translatedErrors.required.id),\n permissions: yup.string().required(translatedErrors.required.id),\n});\n\n/* -------------------------------------------------------------------------------------------------\n * EditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst EditView = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const navigate = useNavigate();\n const { state: locationState } = useLocation();\n const [transferToken, setTransferToken] = React.useState<\n TransferToken | SanitizedTransferToken | null\n >(\n locationState && 'accessKey' in locationState.transferToken\n ? {\n ...locationState.transferToken,\n }\n : null\n );\n const { trackUsage } = useTracking();\n const setCurrentStep = useGuidedTour('EditView', (state) => state.setCurrentStep);\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens']\n );\n const {\n allowedActions: { canCreate, canUpdate, canRegenerate },\n } = useRBAC(permissions);\n const match = useMatch('/settings/transfer-tokens/:id');\n\n const id = match?.params?.id;\n const isCreating = id === 'create';\n\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n React.useEffect(() => {\n trackUsage(isCreating ? 'didAddTokenFromList' : 'didEditTokenFromList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n }, [isCreating, trackUsage]);\n\n const { data, error } = useGetTransferTokenQuery(id!, {\n skip: isCreating || transferToken !== null || !id,\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 setTransferToken(data);\n }\n }, [data]);\n\n const [createToken] = useCreateTransferTokenMutation();\n const [updateToken] = useUpdateTransferTokenMutation();\n\n const handleSubmit = async (body: FormValues, formik: FormikHelpers<FormValues>) => {\n trackUsage(isCreating ? 'willCreateToken' : 'willEditToken', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n\n const permissions = body.permissions.split('-');\n\n const isPermissionsTransferPermission = (\n permission: string[]\n ): permission is Array<'push' | 'pull'> => {\n if (permission.length === 1) {\n return permission[0] === 'push' || permission[0] === 'pull';\n }\n\n return permission[0] === 'push' && permission[1] === 'pull';\n };\n\n // this type-guard is necessary to satisfy the type for `permissions` in the request body,\n // because String.split returns stringp[]\n if (isPermissionsTransferPermission(permissions)) {\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'\n ? parseInt(body.lifespan.toString(), 10)\n : null,\n permissions,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n setTransferToken(res.data);\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'notification.success.transfertokencreated',\n defaultMessage: 'Transfer Token successfully created',\n }),\n });\n\n trackUsage('didCreateToken', {\n type: transferToken?.permissions,\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n\n navigate(`../transfer-tokens/${res.data.id.toString()}`, {\n replace: true,\n state: { transferToken: res.data },\n });\n } else {\n const res = await updateToken({\n id: id!,\n name: body.name,\n description: body.description,\n permissions,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n setTransferToken(res.data);\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'notification.success.transfertokenedited',\n defaultMessage: 'Transfer Token successfully edited',\n }),\n });\n\n trackUsage('didEditToken', {\n type: transferToken?.permissions,\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n }\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n }),\n });\n }\n }\n };\n\n const canEditInputs = (canUpdate && !isCreating) || (canCreate && isCreating);\n const isLoading = !isCreating && !transferToken;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Transfer Tokens',\n }\n )}\n </Page.Title>\n <Formik\n validationSchema={schema}\n validateOnChange={false}\n initialValues={\n {\n name: transferToken?.name || '',\n description: transferToken?.description || '',\n lifespan: transferToken?.lifespan || null,\n /**\n * We need to cast the permissions to satisfy the type for `permissions`\n * in the request body incase we don't have a transferToken and instead\n * use an empty string.\n */\n permissions: (transferToken?.permissions.join('-') ?? '') as FormValues['permissions'],\n } satisfies FormValues\n }\n enableReinitialize\n onSubmit={(body, actions) => handleSubmit(body, actions)}\n >\n {({ errors, handleChange, isSubmitting, values }) => {\n return (\n <Form>\n <FormHead\n title={{\n id: 'Settings.transferTokens.createPage.title',\n defaultMessage: 'TokenCreate Transfer Token',\n }}\n token={transferToken}\n setToken={setTransferToken}\n canEditInputs={canEditInputs}\n canRegenerate={canRegenerate}\n isSubmitting={isSubmitting}\n regenerateUrl=\"/admin/transfer/tokens/\"\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {transferToken &&\n Boolean(transferToken?.name) &&\n 'accessKey' in transferToken && (\n <TokenBox token={transferToken.accessKey} tokenType={TRANSFER_TOKEN_TYPE} />\n )}\n <FormTransferTokenContainer\n errors={errors}\n onChange={handleChange}\n canEditInputs={canEditInputs}\n isCreating={isCreating}\n values={values}\n transferToken={transferToken}\n />\n </Flex>\n </Layouts.Content>\n </Form>\n );\n }}\n </Formik>\n </Page.Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedEditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedEditView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens'].read\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditView />\n </Page.Protect>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * FormTransferTokenContainer\n * -----------------------------------------------------------------------------------------------*/\n\ninterface FormValues extends Pick<TransferToken, 'description' | 'name' | 'lifespan'> {\n permissions: Extract<TransferToken['permissions'][number], string>;\n}\n\ninterface FormTransferTokenContainerProps {\n errors: FormikErrors<FormValues>;\n onChange: ({ target: { name, value } }: { target: { name: string; value: string } }) => void;\n canEditInputs: boolean;\n values: FormValues;\n isCreating: boolean;\n transferToken: Partial<TransferToken> | null;\n}\n\nconst FormTransferTokenContainer = ({\n errors = {},\n onChange,\n canEditInputs,\n isCreating,\n values,\n transferToken = {},\n}: FormTransferTokenContainerProps) => {\n const { formatMessage } = useIntl();\n\n const typeOptions = [\n {\n value: 'push',\n label: {\n id: 'Settings.transferTokens.types.push',\n defaultMessage: 'Push',\n },\n },\n {\n value: 'pull',\n label: {\n id: 'Settings.transferTokens.types.pull',\n defaultMessage: 'Pull',\n },\n },\n {\n value: 'push-pull',\n label: {\n id: 'Settings.transferTokens.types.push-pull',\n defaultMessage: 'Full Access',\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={transferToken}\n />\n </Grid.Item>\n <Grid.Item key=\"permissions\" col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <TokenTypeSelect\n name=\"permissions\"\n value={values['permissions']}\n error={errors['permissions']}\n label={{\n id: 'Settings.tokens.form.type',\n defaultMessage: 'Token type',\n }}\n // @ts-expect-error – DS Select passes number | string, will be fixed in V2\n onChange={(value: string) => {\n onChange({ target: { name: 'permissions', value } });\n }}\n options={typeOptions}\n canEditInputs={canEditInputs}\n />\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n );\n};\n\nexport { EditView, ProtectedEditView };\n"],"names":["schema","yup","object","shape","name","string","max","required","translatedErrors","id","description","nullable","lifespan","number","integer","min","defined","permissions","EditView","formatMessage","useIntl","toggleNotification","useNotification","navigate","useNavigate","state","locationState","useLocation","transferToken","setTransferToken","React","useState","trackUsage","useTracking","useGuidedTour","setCurrentStep","useTypedSelector","admin_app","settings","allowedActions","canCreate","canUpdate","canRegenerate","useRBAC","match","useMatch","params","isCreating","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","useEffect","tokenType","TRANSFER_TOKEN_TYPE","data","error","useGetTransferTokenQuery","skip","type","message","createToken","useCreateTransferTokenMutation","updateToken","useUpdateTransferTokenMutation","handleSubmit","body","formik","split","isPermissionsTransferPermission","permission","length","res","parseInt","toString","isBaseQueryError","setErrors","defaultMessage","replace","err","canEditInputs","isLoading","_jsx","Page","Loading","_jsxs","Main","Title","Formik","validationSchema","validateOnChange","initialValues","join","enableReinitialize","onSubmit","actions","errors","handleChange","isSubmitting","values","Form","FormHead","title","token","setToken","regenerateUrl","Layouts","Content","Flex","direction","alignItems","gap","Boolean","TokenBox","accessKey","FormTransferTokenContainer","onChange","ProtectedEditView","read","Protect","typeOptions","value","label","Box","background","hasRadius","shadow","paddingTop","paddingBottom","paddingLeft","paddingRight","Typography","variant","tag","Grid","Root","Item","col","xs","TokenName","TokenDescription","LifeSpanInput","TokenTypeSelect","target","options"],"mappings":"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"}
1
+ {"version":3,"file":"EditView-XfGT5Bj1.mjs","sources":["../../../admin/src/pages/Settings/pages/TransferTokens/EditView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Flex, Grid, Typography } from '@strapi/design-system';\nimport { Formik, Form, FormikErrors, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useNavigate, useMatch } from 'react-router-dom';\nimport * as yup from 'yup';\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 useCreateTransferTokenMutation,\n useGetTransferTokenQuery,\n useUpdateTransferTokenMutation,\n} from '../../../../services/transferTokens';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\nimport { TRANSFER_TOKEN_TYPE } from '../../components/Tokens/constants';\nimport { FormHead } from '../../components/Tokens/FormHead';\nimport { LifeSpanInput } from '../../components/Tokens/LifeSpanInput';\nimport { TokenBox } from '../../components/Tokens/TokenBox';\nimport { TokenDescription } from '../../components/Tokens/TokenDescription';\nimport { TokenName } from '../../components/Tokens/TokenName';\nimport { TokenTypeSelect } from '../../components/Tokens/TokenTypeSelect';\n\nimport type {\n TransferToken,\n SanitizedTransferToken,\n} from '../../../../../../shared/contracts/transfer';\n\nconst schema = yup.object().shape({\n name: yup.string().max(100).required(translatedErrors.required.id),\n description: yup.string().nullable(),\n lifespan: yup.number().integer().min(0).nullable().defined(translatedErrors.required.id),\n permissions: yup.string().required(translatedErrors.required.id),\n});\n\n/* -------------------------------------------------------------------------------------------------\n * EditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst EditView = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const navigate = useNavigate();\n const { state: locationState } = useLocation();\n const [transferToken, setTransferToken] = React.useState<\n TransferToken | SanitizedTransferToken | null\n >(\n locationState && 'accessKey' in locationState.transferToken\n ? {\n ...locationState.transferToken,\n }\n : null\n );\n const { trackUsage } = useTracking();\n const setCurrentStep = useGuidedTour('EditView', (state) => state.setCurrentStep);\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens']\n );\n const {\n allowedActions: { canCreate, canUpdate, canRegenerate },\n } = useRBAC(permissions);\n const match = useMatch('/settings/transfer-tokens/:id');\n\n const id = match?.params?.id;\n const isCreating = id === 'create';\n\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n React.useEffect(() => {\n trackUsage(isCreating ? 'didAddTokenFromList' : 'didEditTokenFromList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n }, [isCreating, trackUsage]);\n\n const { data, error } = useGetTransferTokenQuery(id!, {\n skip: isCreating || transferToken !== null || !id,\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 setTransferToken(data);\n }\n }, [data]);\n\n const [createToken] = useCreateTransferTokenMutation();\n const [updateToken] = useUpdateTransferTokenMutation();\n\n const handleSubmit = async (body: FormValues, formik: FormikHelpers<FormValues>) => {\n trackUsage(isCreating ? 'willCreateToken' : 'willEditToken', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n\n const permissions = body.permissions.split('-');\n\n const isPermissionsTransferPermission = (\n permission: string[]\n ): permission is Array<'push' | 'pull'> => {\n if (permission.length === 1) {\n return permission[0] === 'push' || permission[0] === 'pull';\n }\n\n return permission[0] === 'push' && permission[1] === 'pull';\n };\n\n // this type-guard is necessary to satisfy the type for `permissions` in the request body,\n // because String.split returns stringp[]\n if (isPermissionsTransferPermission(permissions)) {\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'\n ? parseInt(body.lifespan.toString(), 10)\n : null,\n permissions,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n setTransferToken(res.data);\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'notification.success.transfertokencreated',\n defaultMessage: 'Transfer Token successfully created',\n }),\n });\n\n trackUsage('didCreateToken', {\n type: transferToken?.permissions,\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n\n navigate(`../transfer-tokens/${res.data.id.toString()}`, {\n replace: true,\n state: { transferToken: res.data },\n });\n } else {\n const res = await updateToken({\n id: id!,\n name: body.name,\n description: body.description,\n permissions,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n setTransferToken(res.data);\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'notification.success.transfertokenedited',\n defaultMessage: 'Transfer Token successfully edited',\n }),\n });\n\n trackUsage('didEditToken', {\n type: transferToken?.permissions,\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n }\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n }),\n });\n }\n }\n };\n\n const canEditInputs = (canUpdate && !isCreating) || (canCreate && isCreating);\n const isLoading = !isCreating && !transferToken;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Transfer Tokens',\n }\n )}\n </Page.Title>\n <Formik\n validationSchema={schema}\n validateOnChange={false}\n initialValues={\n {\n name: transferToken?.name || '',\n description: transferToken?.description || '',\n lifespan: transferToken?.lifespan || null,\n /**\n * We need to cast the permissions to satisfy the type for `permissions`\n * in the request body incase we don't have a transferToken and instead\n * use an empty string.\n */\n permissions: (transferToken?.permissions.join('-') ?? '') as FormValues['permissions'],\n } satisfies FormValues\n }\n enableReinitialize\n onSubmit={(body, actions) => handleSubmit(body, actions)}\n >\n {({ errors, handleChange, isSubmitting, values }) => {\n return (\n <Form>\n <FormHead\n title={{\n id: 'Settings.transferTokens.createPage.title',\n defaultMessage: 'TokenCreate Transfer Token',\n }}\n token={transferToken}\n setToken={setTransferToken}\n canEditInputs={canEditInputs}\n canRegenerate={canRegenerate}\n isSubmitting={isSubmitting}\n regenerateUrl=\"/admin/transfer/tokens/\"\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {transferToken &&\n Boolean(transferToken?.name) &&\n 'accessKey' in transferToken && (\n <TokenBox token={transferToken.accessKey} tokenType={TRANSFER_TOKEN_TYPE} />\n )}\n <FormTransferTokenContainer\n errors={errors}\n onChange={handleChange}\n canEditInputs={canEditInputs}\n isCreating={isCreating}\n values={values}\n transferToken={transferToken}\n />\n </Flex>\n </Layouts.Content>\n </Form>\n );\n }}\n </Formik>\n </Page.Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedEditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedEditView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens'].read\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditView />\n </Page.Protect>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * FormTransferTokenContainer\n * -----------------------------------------------------------------------------------------------*/\n\ninterface FormValues extends Pick<TransferToken, 'description' | 'name' | 'lifespan'> {\n permissions: Extract<TransferToken['permissions'][number], string>;\n}\n\ninterface FormTransferTokenContainerProps {\n errors: FormikErrors<FormValues>;\n onChange: ({ target: { name, value } }: { target: { name: string; value: string } }) => void;\n canEditInputs: boolean;\n values: FormValues;\n isCreating: boolean;\n transferToken: Partial<TransferToken> | null;\n}\n\nconst FormTransferTokenContainer = ({\n errors = {},\n onChange,\n canEditInputs,\n isCreating,\n values,\n transferToken = {},\n}: FormTransferTokenContainerProps) => {\n const { formatMessage } = useIntl();\n\n const typeOptions = [\n {\n value: 'push',\n label: {\n id: 'Settings.transferTokens.types.push',\n defaultMessage: 'Push',\n },\n },\n {\n value: 'pull',\n label: {\n id: 'Settings.transferTokens.types.pull',\n defaultMessage: 'Pull',\n },\n },\n {\n value: 'push-pull',\n label: {\n id: 'Settings.transferTokens.types.push-pull',\n defaultMessage: 'Full Access',\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={transferToken}\n />\n </Grid.Item>\n <Grid.Item key=\"permissions\" col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <TokenTypeSelect\n name=\"permissions\"\n value={values['permissions']}\n error={errors['permissions']}\n label={{\n id: 'Settings.tokens.form.type',\n defaultMessage: 'Token type',\n }}\n // @ts-expect-error – DS Select passes number | string, will be fixed in V2\n onChange={(value: string) => {\n onChange({ target: { name: 'permissions', value } });\n }}\n options={typeOptions}\n canEditInputs={canEditInputs}\n />\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n );\n};\n\nexport { EditView, ProtectedEditView };\n"],"names":["schema","yup","object","shape","name","string","max","required","translatedErrors","id","description","nullable","lifespan","number","integer","min","defined","permissions","EditView","formatMessage","useIntl","toggleNotification","useNotification","navigate","useNavigate","state","locationState","useLocation","transferToken","setTransferToken","React","useState","trackUsage","useTracking","useGuidedTour","setCurrentStep","useTypedSelector","admin_app","settings","allowedActions","canCreate","canUpdate","canRegenerate","useRBAC","match","useMatch","params","isCreating","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","useEffect","tokenType","TRANSFER_TOKEN_TYPE","data","error","useGetTransferTokenQuery","skip","type","message","createToken","useCreateTransferTokenMutation","updateToken","useUpdateTransferTokenMutation","handleSubmit","body","formik","split","isPermissionsTransferPermission","permission","length","res","parseInt","toString","isBaseQueryError","setErrors","defaultMessage","replace","err","canEditInputs","isLoading","_jsx","Page","Loading","_jsxs","Main","Title","Formik","validationSchema","validateOnChange","initialValues","join","enableReinitialize","onSubmit","actions","errors","handleChange","isSubmitting","values","Form","FormHead","title","token","setToken","regenerateUrl","Layouts","Content","Flex","direction","alignItems","gap","Boolean","TokenBox","accessKey","FormTransferTokenContainer","onChange","ProtectedEditView","read","Protect","typeOptions","value","label","Box","background","hasRadius","shadow","paddingTop","paddingBottom","paddingLeft","paddingRight","Typography","variant","tag","Grid","Root","Item","col","xs","TokenName","TokenDescription","LifeSpanInput","TokenTypeSelect","target","options"],"mappings":"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"}
@@ -5,11 +5,11 @@ import { Formik, Form } from 'formik';
5
5
  import { useIntl } from 'react-intl';
6
6
  import { useLocation, useMatch, useNavigate } from 'react-router-dom';
7
7
  import { b as useTypedSelector, P as Page, a as useNotification, c as useTracking, m as useGuidedTour, k as useRBAC, e as useAPIErrorHandler } from './Theme-C3oHrQcy.mjs';
8
- import { e as errorsTrads, b as Layouts } from './index-BM8-DG5K.mjs';
8
+ import { e as errorsTrads, b as Layouts } from './index-C3BO0YZa.mjs';
9
9
  import { b as useGetAPITokenQuery, c as useCreateAPITokenMutation, d as useUpdateAPITokenMutation } from './apiTokens-Bl4j4xFt.mjs';
10
10
  import { a as adminApi, i as isBaseQueryError } from './admin-BBS7sDVu.mjs';
11
11
  import { A as API_TOKEN_TYPE } from './constants-B8oOcJBB.mjs';
12
- import { a as TokenName, b as TokenDescription, L as LifeSpanInput, c as TokenTypeSelect, F as FormHead, T as TokenBox } from './TokenTypeSelect-CpEAVZ_b.mjs';
12
+ import { a as TokenName, b as TokenDescription, L as LifeSpanInput, c as TokenTypeSelect, F as FormHead, T as TokenBox } from './TokenTypeSelect-BUFFAUgx.mjs';
13
13
  import { createContext } from '@radix-ui/react-context';
14
14
  import map from 'lodash/map';
15
15
  import tail from 'lodash/tail';
@@ -1036,4 +1036,4 @@ const ProtectedEditView = ()=>{
1036
1036
  };
1037
1037
 
1038
1038
  export { EditView, ProtectedEditView };
1039
- //# sourceMappingURL=EditViewPage-CwdhHAuX.mjs.map
1039
+ //# sourceMappingURL=EditViewPage-BLftPAqX.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditViewPage-CwdhHAuX.mjs","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 &nbsp;\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-BLftPAqX.mjs","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 &nbsp;\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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"}
@@ -7,11 +7,11 @@ var formik = require('formik');
7
7
  var reactIntl = require('react-intl');
8
8
  var reactRouterDom = require('react-router-dom');
9
9
  var Theme = require('./Theme-DDlJz91O.js');
10
- var index = require('./index-HGaughzt.js');
10
+ var index = require('./index-BdqtLS-k.js');
11
11
  var apiTokens = require('./apiTokens-C7CY0RRl.js');
12
12
  var admin = require('./admin-udBiOv2o.js');
13
13
  var constants = require('./constants-tbFuOuW4.js');
14
- var TokenTypeSelect = require('./TokenTypeSelect-BV_ZNiY_.js');
14
+ var TokenTypeSelect = require('./TokenTypeSelect-DCa4dg3r.js');
15
15
  var reactContext = require('@radix-ui/react-context');
16
16
  var map = require('lodash/map');
17
17
  var tail = require('lodash/tail');
@@ -1059,4 +1059,4 @@ const ProtectedEditView = ()=>{
1059
1059
 
1060
1060
  exports.EditView = EditView;
1061
1061
  exports.ProtectedEditView = ProtectedEditView;
1062
- //# sourceMappingURL=EditViewPage-DBga-70A.js.map
1062
+ //# sourceMappingURL=EditViewPage-Dvm8m28e.js.map