@strapi/admin 5.48.1 → 5.49.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 (317) hide show
  1. package/dist/admin/admin/src/StrapiApp.js +33 -20
  2. package/dist/admin/admin/src/StrapiApp.js.map +1 -1
  3. package/dist/admin/admin/src/StrapiApp.mjs +6 -1
  4. package/dist/admin/admin/src/StrapiApp.mjs.map +1 -1
  5. package/dist/admin/admin/src/components/ConfirmDialog.js +3 -2
  6. package/dist/admin/admin/src/components/ConfirmDialog.js.map +1 -1
  7. package/dist/admin/admin/src/components/Context.js +4 -3
  8. package/dist/admin/admin/src/components/Context.js.map +1 -1
  9. package/dist/admin/admin/src/components/DescriptionComponentRenderer.js +8 -4
  10. package/dist/admin/admin/src/components/DescriptionComponentRenderer.js.map +1 -1
  11. package/dist/admin/admin/src/components/Filters.js +3 -2
  12. package/dist/admin/admin/src/components/Filters.js.map +1 -1
  13. package/dist/admin/admin/src/components/Form.js +9 -5
  14. package/dist/admin/admin/src/components/Form.js.map +1 -1
  15. package/dist/admin/admin/src/components/FormInputs/Date.js +3 -2
  16. package/dist/admin/admin/src/components/FormInputs/Date.js.map +1 -1
  17. package/dist/admin/admin/src/components/FormInputs/Json.js +3 -2
  18. package/dist/admin/admin/src/components/FormInputs/Json.js.map +1 -1
  19. package/dist/admin/admin/src/components/GapDropZone.js +3 -2
  20. package/dist/admin/admin/src/components/GapDropZone.js.map +1 -1
  21. package/dist/admin/admin/src/components/GuidedTour/Context.js +3 -2
  22. package/dist/admin/admin/src/components/GuidedTour/Context.js.map +1 -1
  23. package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js +3 -2
  24. package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js.map +1 -1
  25. package/dist/admin/admin/src/components/GuidedTour/Tours.js +9 -3
  26. package/dist/admin/admin/src/components/GuidedTour/Tours.js.map +1 -1
  27. package/dist/admin/admin/src/components/GuidedTour/Tours.mjs +6 -1
  28. package/dist/admin/admin/src/components/GuidedTour/Tours.mjs.map +1 -1
  29. package/dist/admin/admin/src/components/LanguageProvider.js +5 -1
  30. package/dist/admin/admin/src/components/LanguageProvider.js.map +1 -1
  31. package/dist/admin/admin/src/components/Layouts/HeaderLayout.js +3 -2
  32. package/dist/admin/admin/src/components/Layouts/HeaderLayout.js.map +1 -1
  33. package/dist/admin/admin/src/components/LeftMenu.js +3 -2
  34. package/dist/admin/admin/src/components/LeftMenu.js.map +1 -1
  35. package/dist/admin/admin/src/components/NpsSurvey.js +4 -3
  36. package/dist/admin/admin/src/components/NpsSurvey.js.map +1 -1
  37. package/dist/admin/admin/src/components/PageHelpers.js +3 -2
  38. package/dist/admin/admin/src/components/PageHelpers.js.map +1 -1
  39. package/dist/admin/admin/src/components/Pagination.js +3 -2
  40. package/dist/admin/admin/src/components/Pagination.js.map +1 -1
  41. package/dist/admin/admin/src/components/PluginsInitializer.js +3 -2
  42. package/dist/admin/admin/src/components/PluginsInitializer.js.map +1 -1
  43. package/dist/admin/admin/src/components/RelativeTime.js +3 -2
  44. package/dist/admin/admin/src/components/RelativeTime.js.map +1 -1
  45. package/dist/admin/admin/src/components/ResizeIndicator.js +3 -2
  46. package/dist/admin/admin/src/components/ResizeIndicator.js.map +1 -1
  47. package/dist/admin/admin/src/components/SearchInput.js +3 -2
  48. package/dist/admin/admin/src/components/SearchInput.js.map +1 -1
  49. package/dist/admin/admin/src/components/Table.js +3 -2
  50. package/dist/admin/admin/src/components/Table.js.map +1 -1
  51. package/dist/admin/admin/src/components/Theme.js +3 -2
  52. package/dist/admin/admin/src/components/Theme.js.map +1 -1
  53. package/dist/admin/admin/src/components/WidgetRoot.js +9 -5
  54. package/dist/admin/admin/src/components/WidgetRoot.js.map +1 -1
  55. package/dist/admin/admin/src/core/apis/CustomFields.js +14 -10
  56. package/dist/admin/admin/src/core/apis/CustomFields.js.map +1 -1
  57. package/dist/admin/admin/src/core/apis/Widgets.js +8 -4
  58. package/dist/admin/admin/src/core/apis/Widgets.js.map +1 -1
  59. package/dist/admin/admin/src/core/apis/router.js +20 -16
  60. package/dist/admin/admin/src/core/apis/router.js.map +1 -1
  61. package/dist/admin/admin/src/core/apis/router.mjs.map +1 -1
  62. package/dist/admin/admin/src/features/Auth.js +78 -6
  63. package/dist/admin/admin/src/features/Auth.js.map +1 -1
  64. package/dist/admin/admin/src/features/Auth.mjs +77 -6
  65. package/dist/admin/admin/src/features/Auth.mjs.map +1 -1
  66. package/dist/admin/admin/src/features/BackButton.js +3 -2
  67. package/dist/admin/admin/src/features/BackButton.js.map +1 -1
  68. package/dist/admin/admin/src/features/Configuration.js +3 -2
  69. package/dist/admin/admin/src/features/Configuration.js.map +1 -1
  70. package/dist/admin/admin/src/features/Notifications.js +3 -2
  71. package/dist/admin/admin/src/features/Notifications.js.map +1 -1
  72. package/dist/admin/admin/src/features/Tracking.js +7 -3
  73. package/dist/admin/admin/src/features/Tracking.js.map +1 -1
  74. package/dist/admin/admin/src/features/Widgets.js +3 -2
  75. package/dist/admin/admin/src/features/Widgets.js.map +1 -1
  76. package/dist/admin/admin/src/hooks/useAPIErrorHandler.js +3 -2
  77. package/dist/admin/admin/src/hooks/useAPIErrorHandler.js.map +1 -1
  78. package/dist/admin/admin/src/hooks/useAdminRoles.js +3 -2
  79. package/dist/admin/admin/src/hooks/useAdminRoles.js.map +1 -1
  80. package/dist/admin/admin/src/hooks/useControllableState.js +3 -2
  81. package/dist/admin/admin/src/hooks/useControllableState.js.map +1 -1
  82. package/dist/admin/admin/src/hooks/useDebounce.js +3 -2
  83. package/dist/admin/admin/src/hooks/useDebounce.js.map +1 -1
  84. package/dist/admin/admin/src/hooks/useDeviceType.js +3 -2
  85. package/dist/admin/admin/src/hooks/useDeviceType.js.map +1 -1
  86. package/dist/admin/admin/src/hooks/useElementOnScreen.js +3 -2
  87. package/dist/admin/admin/src/hooks/useElementOnScreen.js.map +1 -1
  88. package/dist/admin/admin/src/hooks/useEnterprise.js +3 -2
  89. package/dist/admin/admin/src/hooks/useEnterprise.js.map +1 -1
  90. package/dist/admin/admin/src/hooks/useFetchClient.js +3 -2
  91. package/dist/admin/admin/src/hooks/useFetchClient.js.map +1 -1
  92. package/dist/admin/admin/src/hooks/useForceUpdate.js +3 -2
  93. package/dist/admin/admin/src/hooks/useForceUpdate.js.map +1 -1
  94. package/dist/admin/admin/src/hooks/useIdleSessionLogout.js +85 -15
  95. package/dist/admin/admin/src/hooks/useIdleSessionLogout.js.map +1 -1
  96. package/dist/admin/admin/src/hooks/useIdleSessionLogout.mjs +82 -14
  97. package/dist/admin/admin/src/hooks/useIdleSessionLogout.mjs.map +1 -1
  98. package/dist/admin/admin/src/hooks/useIsMounted.js +3 -2
  99. package/dist/admin/admin/src/hooks/useIsMounted.js.map +1 -1
  100. package/dist/admin/admin/src/hooks/useMediaQuery.js +3 -2
  101. package/dist/admin/admin/src/hooks/useMediaQuery.js.map +1 -1
  102. package/dist/admin/admin/src/hooks/useMenu.js +7 -3
  103. package/dist/admin/admin/src/hooks/useMenu.js.map +1 -1
  104. package/dist/admin/admin/src/hooks/useOnce.js +3 -2
  105. package/dist/admin/admin/src/hooks/useOnce.js.map +1 -1
  106. package/dist/admin/admin/src/hooks/useRBAC.js +7 -3
  107. package/dist/admin/admin/src/hooks/useRBAC.js.map +1 -1
  108. package/dist/admin/admin/src/hooks/useSettingsMenu.js +7 -3
  109. package/dist/admin/admin/src/hooks/useSettingsMenu.js.map +1 -1
  110. package/dist/admin/admin/src/hooks/useThrottledCallback.js +5 -1
  111. package/dist/admin/admin/src/hooks/useThrottledCallback.js.map +1 -1
  112. package/dist/admin/admin/src/layouts/AuthenticatedLayout.js +11 -5
  113. package/dist/admin/admin/src/layouts/AuthenticatedLayout.js.map +1 -1
  114. package/dist/admin/admin/src/pages/Auth/components/ForgotPassword.js +3 -2
  115. package/dist/admin/admin/src/pages/Auth/components/ForgotPassword.js.map +1 -1
  116. package/dist/admin/admin/src/pages/Auth/components/Login.js +8 -4
  117. package/dist/admin/admin/src/pages/Auth/components/Login.js.map +1 -1
  118. package/dist/admin/admin/src/pages/Auth/components/Oops.js +3 -2
  119. package/dist/admin/admin/src/pages/Auth/components/Oops.js.map +1 -1
  120. package/dist/admin/admin/src/pages/Auth/components/Register.js +9 -5
  121. package/dist/admin/admin/src/pages/Auth/components/Register.js.map +1 -1
  122. package/dist/admin/admin/src/pages/Auth/components/ResetPassword.js +4 -3
  123. package/dist/admin/admin/src/pages/Auth/components/ResetPassword.js.map +1 -1
  124. package/dist/admin/admin/src/pages/Home/HomePage.js +3 -2
  125. package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
  126. package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.js +8 -4
  127. package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.js.map +1 -1
  128. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.js +7 -3
  129. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.js.map +1 -1
  130. package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.js +7 -3
  131. package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.js.map +1 -1
  132. package/dist/admin/admin/src/pages/ProfilePage.js +8 -4
  133. package/dist/admin/admin/src/pages/ProfilePage.js.map +1 -1
  134. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js +3 -2
  135. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js.map +1 -1
  136. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js +3 -2
  137. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js.map +1 -1
  138. package/dist/admin/admin/src/pages/Settings/components/Tokens/constants.js +3 -2
  139. package/dist/admin/admin/src/pages/Settings/components/Tokens/constants.js.map +1 -1
  140. package/dist/admin/admin/src/pages/Settings/components/Tokens/utils/getDateOfExpiration.js +3 -2
  141. package/dist/admin/admin/src/pages/Settings/components/Tokens/utils/getDateOfExpiration.js.map +1 -1
  142. package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/EditViewPage.js +3 -2
  143. package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/EditViewPage.js.map +1 -1
  144. package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/components/AdminPermissions.js +3 -2
  145. package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/components/AdminPermissions.js.map +1 -1
  146. package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/ListView.js +4 -3
  147. package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/ListView.js.map +1 -1
  148. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js +3 -2
  149. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js.map +1 -1
  150. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js +7 -2
  151. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js.map +1 -1
  152. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js +5 -1
  153. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js.map +1 -1
  154. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/reducer.js +6 -2
  155. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/reducer.js.map +1 -1
  156. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js +4 -3
  157. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js.map +1 -1
  158. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js +3 -2
  159. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js.map +1 -1
  160. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js +7 -3
  161. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js.map +1 -1
  162. package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.js +3 -2
  163. package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.js.map +1 -1
  164. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js +4 -3
  165. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js.map +1 -1
  166. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js +4 -3
  167. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js.map +1 -1
  168. package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.js +3 -2
  169. package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.js.map +1 -1
  170. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js +10 -6
  171. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js.map +1 -1
  172. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.js +3 -2
  173. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.js.map +1 -1
  174. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.js +13 -7
  175. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.js.map +1 -1
  176. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js +15 -9
  177. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js.map +1 -1
  178. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.js +9 -5
  179. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.js.map +1 -1
  180. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js +33 -25
  181. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js.map +1 -1
  182. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js +10 -6
  183. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js.map +1 -1
  184. package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.js +3 -2
  185. package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.js.map +1 -1
  186. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/difference.js +9 -3
  187. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/difference.js.map +1 -1
  188. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.js +8 -3
  189. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.js.map +1 -1
  190. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/layouts.js +6 -2
  191. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/layouts.js.map +1 -1
  192. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateConditionsToFalse.js +8 -3
  193. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateConditionsToFalse.js.map +1 -1
  194. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js +4 -3
  195. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js.map +1 -1
  196. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.js +4 -3
  197. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.js.map +1 -1
  198. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js +9 -5
  199. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js.map +1 -1
  200. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js +4 -3
  201. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js.map +1 -1
  202. package/dist/admin/admin/src/pages/Settings/pages/Users/components/CreateActionCE.js +3 -2
  203. package/dist/admin/admin/src/pages/Settings/pages/Users/components/CreateActionCE.js.map +1 -1
  204. package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.js +4 -3
  205. package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.js.map +1 -1
  206. package/dist/admin/admin/src/pages/Settings/pages/Users/utils/validation.js +3 -2
  207. package/dist/admin/admin/src/pages/Settings/pages/Users/utils/validation.js.map +1 -1
  208. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/EditPage.js +3 -2
  209. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/EditPage.js.map +1 -1
  210. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js +3 -2
  211. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js.map +1 -1
  212. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js +3 -2
  213. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js.map +1 -1
  214. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js +4 -3
  215. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js.map +1 -1
  216. package/dist/admin/admin/src/pages/UseCasePage.js +3 -2
  217. package/dist/admin/admin/src/pages/UseCasePage.js.map +1 -1
  218. package/dist/admin/admin/src/utils/getFetchClient.js +7 -2
  219. package/dist/admin/admin/src/utils/getFetchClient.js.map +1 -1
  220. package/dist/admin/admin/src/utils/locales.js +3 -2
  221. package/dist/admin/admin/src/utils/locales.js.map +1 -1
  222. package/dist/admin/admin/src/utils/objects.js +9 -4
  223. package/dist/admin/admin/src/utils/objects.js.map +1 -1
  224. package/dist/admin/admin/src/utils/rulesEngine.js +5 -1
  225. package/dist/admin/admin/src/utils/rulesEngine.js.map +1 -1
  226. package/dist/admin/admin/src/utils/urls.js +5 -1
  227. package/dist/admin/admin/src/utils/urls.js.map +1 -1
  228. package/dist/admin/admin/tests/utils.js +3 -2
  229. package/dist/admin/admin/tests/utils.js.map +1 -1
  230. package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.js +7 -3
  231. package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.js.map +1 -1
  232. package/dist/admin/ee/admin/src/hooks/useLicenseLimits.js +3 -2
  233. package/dist/admin/ee/admin/src/hooks/useLicenseLimits.js.map +1 -1
  234. package/dist/admin/ee/admin/src/pages/AuthResponse.js +3 -2
  235. package/dist/admin/ee/admin/src/pages/AuthResponse.js.map +1 -1
  236. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.js +3 -2
  237. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.js.map +1 -1
  238. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.js +3 -2
  239. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.js.map +1 -1
  240. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.js +5 -1
  241. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.js.map +1 -1
  242. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js +3 -2
  243. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js.map +1 -1
  244. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.js +7 -3
  245. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.js.map +1 -1
  246. package/dist/admin/src/StrapiApp.d.ts +7 -1
  247. package/dist/admin/src/core/apis/router.d.ts +1 -2
  248. package/dist/admin/src/hooks/useIdleSessionLogout.d.ts +66 -12
  249. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.js +5 -1
  250. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.js.map +1 -1
  251. package/dist/server/ee/server/src/controllers/authentication.js +5 -1
  252. package/dist/server/ee/server/src/controllers/authentication.js.map +1 -1
  253. package/dist/server/ee/server/src/controllers/user.js +6 -2
  254. package/dist/server/ee/server/src/controllers/user.js.map +1 -1
  255. package/dist/server/ee/server/src/services/auth.js +5 -1
  256. package/dist/server/ee/server/src/services/auth.js.map +1 -1
  257. package/dist/server/ee/server/src/services/user.js +8 -4
  258. package/dist/server/ee/server/src/services/user.js.map +1 -1
  259. package/dist/server/index.js +6 -2
  260. package/dist/server/index.js.map +1 -1
  261. package/dist/server/server/src/ai/services/ai.js +10 -4
  262. package/dist/server/server/src/ai/services/ai.js.map +1 -1
  263. package/dist/server/server/src/controllers/admin.js +9 -4
  264. package/dist/server/server/src/controllers/admin.js.map +1 -1
  265. package/dist/server/server/src/controllers/authentication.js +7 -2
  266. package/dist/server/server/src/controllers/authentication.js.map +1 -1
  267. package/dist/server/server/src/controllers/user.js +3 -2
  268. package/dist/server/server/src/controllers/user.js.map +1 -1
  269. package/dist/server/server/src/controllers/webhooks.js +7 -2
  270. package/dist/server/server/src/controllers/webhooks.js.map +1 -1
  271. package/dist/server/server/src/middlewares/rateLimit.js +7 -2
  272. package/dist/server/server/src/middlewares/rateLimit.js.map +1 -1
  273. package/dist/server/server/src/policies/hasPermissions.js +7 -3
  274. package/dist/server/server/src/policies/hasPermissions.js.map +1 -1
  275. package/dist/server/server/src/routes/serve-admin-panel.js +8 -3
  276. package/dist/server/server/src/routes/serve-admin-panel.js.map +1 -1
  277. package/dist/server/server/src/services/api-token.js +7 -3
  278. package/dist/server/server/src/services/api-token.js.map +1 -1
  279. package/dist/server/server/src/services/auth.js +8 -3
  280. package/dist/server/server/src/services/auth.js.map +1 -1
  281. package/dist/server/server/src/services/content-type.js +6 -2
  282. package/dist/server/server/src/services/content-type.js.map +1 -1
  283. package/dist/server/server/src/services/encryption.js +8 -4
  284. package/dist/server/server/src/services/encryption.js.map +1 -1
  285. package/dist/server/server/src/services/passport.js +6 -2
  286. package/dist/server/server/src/services/passport.js.map +1 -1
  287. package/dist/server/server/src/services/permission/engine.js +5 -1
  288. package/dist/server/server/src/services/permission/engine.js.map +1 -1
  289. package/dist/server/server/src/services/permission/permissions-manager/index.js +5 -1
  290. package/dist/server/server/src/services/permission/permissions-manager/index.js.map +1 -1
  291. package/dist/server/server/src/services/permission/permissions-manager/query-builders.js +14 -10
  292. package/dist/server/server/src/services/permission/permissions-manager/query-builders.js.map +1 -1
  293. package/dist/server/server/src/services/permission/queries.js +5 -1
  294. package/dist/server/server/src/services/permission/queries.js.map +1 -1
  295. package/dist/server/server/src/services/project-settings.js +6 -2
  296. package/dist/server/server/src/services/project-settings.js.map +1 -1
  297. package/dist/server/server/src/services/role.js +8 -4
  298. package/dist/server/server/src/services/role.js.map +1 -1
  299. package/dist/server/server/src/services/token.js +7 -2
  300. package/dist/server/server/src/services/token.js.map +1 -1
  301. package/dist/server/server/src/services/transfer/permission.js +5 -1
  302. package/dist/server/server/src/services/transfer/permission.js.map +1 -1
  303. package/dist/server/server/src/services/transfer/token.js +10 -5
  304. package/dist/server/server/src/services/transfer/token.js.map +1 -1
  305. package/dist/server/server/src/services/user.js +10 -6
  306. package/dist/server/server/src/services/user.js.map +1 -1
  307. package/dist/server/server/src/validation/common-functions/check-fields-are-correctly-nested.js +5 -1
  308. package/dist/server/server/src/validation/common-functions/check-fields-are-correctly-nested.js.map +1 -1
  309. package/dist/server/server/src/validation/common-functions/check-fields-dont-have-duplicates.js +6 -2
  310. package/dist/server/server/src/validation/common-functions/check-fields-dont-have-duplicates.js.map +1 -1
  311. package/dist/server/server/src/validation/common-validators.js +6 -2
  312. package/dist/server/server/src/validation/common-validators.js.map +1 -1
  313. package/dist/server/server/src/validation/policies/hasPermissions.js +6 -2
  314. package/dist/server/server/src/validation/policies/hasPermissions.js.map +1 -1
  315. package/dist/server/shared/utils/session-auth.js +5 -1
  316. package/dist/server/shared/utils/session-auth.js.map +1 -1
  317. package/package.json +7 -7
@@ -8,7 +8,8 @@ var apiTokens = require('../../../../../../services/apiTokens.js');
8
8
  var users = require('../../../../../../services/users.js');
9
9
  var Permissions = require('../../../Roles/components/Permissions.js');
10
10
 
11
- function _interopNamespaceDefault(e) {
11
+ function _interopNamespace(e) {
12
+ if (e && e.__esModule) return e;
12
13
  var n = Object.create(null);
13
14
  if (e) {
14
15
  Object.keys(e).forEach(function (k) {
@@ -25,7 +26,7 @@ function _interopNamespaceDefault(e) {
25
26
  return Object.freeze(n);
26
27
  }
27
28
 
28
- var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
29
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
29
30
 
30
31
  const AdminPermissions = /*#__PURE__*/ React__namespace.forwardRef(({ disabled, initialAdminPermissions, tokenId, ownerUserId }, ref)=>{
31
32
  const { permissions: currentUserPermissions, user: currentUser } = Auth.useAuth('AdminPermissions', (auth)=>auth);
@@ -1 +1 @@
1
- {"version":3,"file":"AdminPermissions.js","sources":["../../../../../../../../../../admin/src/pages/Settings/pages/AdminTokens/EditView/components/AdminPermissions.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Page } from '../../../../../../components/PageHelpers';\nimport { useAuth } from '../../../../../../features/Auth';\nimport { useGetAPITokenOwnerPermissionsQuery } from '../../../../../../services/apiTokens';\nimport { useGetRolePermissionLayoutQuery } from '../../../../../../services/users';\nimport { Permissions, PermissionsAPI } from '../../../Roles/components/Permissions';\n\nimport type { Permission } from '../../../../../../../../shared/contracts/shared';\nimport type { Data } from '@strapi/types';\n\nexport interface AdminPermissionsProps {\n disabled?: boolean;\n initialAdminPermissions: Permission[];\n /** Undefined in create mode. */\n tokenId?: string;\n /** The owner's user id. Undefined in create mode, user can only create a token for themselves. */\n ownerUserId?: Data.ID | null;\n}\n\nexport const AdminPermissions = React.forwardRef<PermissionsAPI, AdminPermissionsProps>(\n ({ disabled, initialAdminPermissions, tokenId, ownerUserId }, ref) => {\n const { permissions: currentUserPermissions, user: currentUser } = useAuth(\n 'AdminPermissions',\n (auth) => auth\n );\n\n const isCurrentUserOwner =\n ownerUserId === undefined || ownerUserId === null || ownerUserId === currentUser?.id;\n\n const { data: ownerPermissions } = useGetAPITokenOwnerPermissionsQuery(tokenId!, {\n skip: isCurrentUserOwner || tokenId === undefined,\n refetchOnMountOrArgChange: true,\n });\n\n const { data: layout, isLoading, error } = useGetRolePermissionLayoutQuery({ role: '' });\n\n const permissionsFormKey = React.useMemo(\n () =>\n JSON.stringify({\n tokenId: tokenId ?? 'create',\n ownerUserId: ownerUserId ?? 'current-user',\n initialAdminPermissions,\n }),\n [initialAdminPermissions, ownerUserId, tokenId]\n );\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error !== undefined || layout === undefined) {\n return null;\n }\n\n // If the current user is not the owner, but we failed to fetch the owner's permissions, we can't display the permissions form.\n if (isCurrentUserOwner === false && ownerPermissions === undefined) {\n return null;\n }\n\n const effectivePermissions = isCurrentUserOwner ? currentUserPermissions : ownerPermissions;\n\n return (\n <Permissions\n key={permissionsFormKey}\n ref={ref}\n layout={layout}\n permissions={initialAdminPermissions}\n userPermissions={effectivePermissions}\n isFormDisabled={disabled}\n />\n );\n }\n);\n"],"names":["AdminPermissions","React","forwardRef","disabled","initialAdminPermissions","tokenId","ownerUserId","ref","permissions","currentUserPermissions","user","currentUser","useAuth","auth","isCurrentUserOwner","undefined","id","data","ownerPermissions","useGetAPITokenOwnerPermissionsQuery","skip","refetchOnMountOrArgChange","layout","isLoading","error","useGetRolePermissionLayoutQuery","role","permissionsFormKey","useMemo","JSON","stringify","_jsx","Page","Loading","effectivePermissions","Permissions","userPermissions","isFormDisabled"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBO,MAAMA,gBAAAA,iBAAmBC,gBAAAA,CAAMC,UAAU,CAC9C,CAAC,EAAEC,QAAQ,EAAEC,uBAAuB,EAAEC,OAAO,EAAEC,WAAW,EAAE,EAAEC,GAAAA,GAAAA;IAC5D,MAAM,EAAEC,WAAAA,EAAaC,sBAAsB,EAAEC,IAAAA,EAAMC,WAAW,EAAE,GAAGC,YAAAA,CACjE,kBAAA,EACA,CAACC,IAAAA,GAASA,IAAAA,CAAAA;AAGZ,IAAA,MAAMC,qBACJR,WAAAA,KAAgBS,SAAAA,IAAaT,WAAAA,KAAgB,IAAA,IAAQA,gBAAgBK,WAAAA,EAAaK,EAAAA;AAEpF,IAAA,MAAM,EAAEC,IAAAA,EAAMC,gBAAgB,EAAE,GAAGC,8CAAoCd,OAAAA,EAAU;AAC/Ee,QAAAA,IAAAA,EAAMN,sBAAsBT,OAAAA,KAAYU,SAAAA;QACxCM,yBAAAA,EAA2B;AAC7B,KAAA,CAAA;IAEA,MAAM,EAAEJ,MAAMK,MAAM,EAAEC,SAAS,EAAEC,KAAK,EAAE,GAAGC,qCAAAA,CAAgC;QAAEC,IAAAA,EAAM;AAAG,KAAA,CAAA;AAEtF,IAAA,MAAMC,qBAAqB1B,gBAAAA,CAAM2B,OAAO,CACtC,IACEC,IAAAA,CAAKC,SAAS,CAAC;AACbzB,YAAAA,OAAAA,EAASA,OAAAA,IAAW,QAAA;AACpBC,YAAAA,WAAAA,EAAaA,WAAAA,IAAe,cAAA;AAC5BF,YAAAA;SACF,CAAA,EACF;AAACA,QAAAA,uBAAAA;AAAyBE,QAAAA,WAAAA;AAAaD,QAAAA;AAAQ,KAAA,CAAA;AAGjD,IAAA,IAAIkB,SAAAA,EAAW;QACb,qBAAOQ,cAAA,CAACC,iBAAKC,OAAO,EAAA,EAAA,CAAA;AACtB,IAAA;IAEA,IAAIT,KAAAA,KAAUT,SAAAA,IAAaO,MAAAA,KAAWP,SAAAA,EAAW;QAC/C,OAAO,IAAA;AACT,IAAA;;IAGA,IAAID,kBAAAA,KAAuB,KAAA,IAASI,gBAAAA,KAAqBH,SAAAA,EAAW;QAClE,OAAO,IAAA;AACT,IAAA;IAEA,MAAMmB,oBAAAA,GAAuBpB,qBAAqBL,sBAAAA,GAAyBS,gBAAAA;AAE3E,IAAA,qBACEa,cAAA,CAACI,uBAAAA,EAAAA;QAEC5B,GAAAA,EAAKA,GAAAA;QACLe,MAAAA,EAAQA,MAAAA;QACRd,WAAAA,EAAaJ,uBAAAA;QACbgC,eAAAA,EAAiBF,oBAAAA;QACjBG,cAAAA,EAAgBlC;AALXwB,KAAAA,EAAAA,kBAAAA,CAAAA;AAQX,CAAA;;;;"}
1
+ {"version":3,"file":"AdminPermissions.js","sources":["../../../../../../../../../../admin/src/pages/Settings/pages/AdminTokens/EditView/components/AdminPermissions.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Page } from '../../../../../../components/PageHelpers';\nimport { useAuth } from '../../../../../../features/Auth';\nimport { useGetAPITokenOwnerPermissionsQuery } from '../../../../../../services/apiTokens';\nimport { useGetRolePermissionLayoutQuery } from '../../../../../../services/users';\nimport { Permissions, PermissionsAPI } from '../../../Roles/components/Permissions';\n\nimport type { Permission } from '../../../../../../../../shared/contracts/shared';\nimport type { Data } from '@strapi/types';\n\nexport interface AdminPermissionsProps {\n disabled?: boolean;\n initialAdminPermissions: Permission[];\n /** Undefined in create mode. */\n tokenId?: string;\n /** The owner's user id. Undefined in create mode, user can only create a token for themselves. */\n ownerUserId?: Data.ID | null;\n}\n\nexport const AdminPermissions = React.forwardRef<PermissionsAPI, AdminPermissionsProps>(\n ({ disabled, initialAdminPermissions, tokenId, ownerUserId }, ref) => {\n const { permissions: currentUserPermissions, user: currentUser } = useAuth(\n 'AdminPermissions',\n (auth) => auth\n );\n\n const isCurrentUserOwner =\n ownerUserId === undefined || ownerUserId === null || ownerUserId === currentUser?.id;\n\n const { data: ownerPermissions } = useGetAPITokenOwnerPermissionsQuery(tokenId!, {\n skip: isCurrentUserOwner || tokenId === undefined,\n refetchOnMountOrArgChange: true,\n });\n\n const { data: layout, isLoading, error } = useGetRolePermissionLayoutQuery({ role: '' });\n\n const permissionsFormKey = React.useMemo(\n () =>\n JSON.stringify({\n tokenId: tokenId ?? 'create',\n ownerUserId: ownerUserId ?? 'current-user',\n initialAdminPermissions,\n }),\n [initialAdminPermissions, ownerUserId, tokenId]\n );\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error !== undefined || layout === undefined) {\n return null;\n }\n\n // If the current user is not the owner, but we failed to fetch the owner's permissions, we can't display the permissions form.\n if (isCurrentUserOwner === false && ownerPermissions === undefined) {\n return null;\n }\n\n const effectivePermissions = isCurrentUserOwner ? currentUserPermissions : ownerPermissions;\n\n return (\n <Permissions\n key={permissionsFormKey}\n ref={ref}\n layout={layout}\n permissions={initialAdminPermissions}\n userPermissions={effectivePermissions}\n isFormDisabled={disabled}\n />\n );\n }\n);\n"],"names":["AdminPermissions","React","forwardRef","disabled","initialAdminPermissions","tokenId","ownerUserId","ref","permissions","currentUserPermissions","user","currentUser","useAuth","auth","isCurrentUserOwner","undefined","id","data","ownerPermissions","useGetAPITokenOwnerPermissionsQuery","skip","refetchOnMountOrArgChange","layout","isLoading","error","useGetRolePermissionLayoutQuery","role","permissionsFormKey","useMemo","JSON","stringify","_jsx","Page","Loading","effectivePermissions","Permissions","userPermissions","isFormDisabled"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBO,MAAMA,gBAAAA,iBAAmBC,gBAAAA,CAAMC,UAAU,CAC9C,CAAC,EAAEC,QAAQ,EAAEC,uBAAuB,EAAEC,OAAO,EAAEC,WAAW,EAAE,EAAEC,GAAAA,GAAAA;IAC5D,MAAM,EAAEC,WAAAA,EAAaC,sBAAsB,EAAEC,IAAAA,EAAMC,WAAW,EAAE,GAAGC,YAAAA,CACjE,kBAAA,EACA,CAACC,IAAAA,GAASA,IAAAA,CAAAA;AAGZ,IAAA,MAAMC,qBACJR,WAAAA,KAAgBS,SAAAA,IAAaT,WAAAA,KAAgB,IAAA,IAAQA,gBAAgBK,WAAAA,EAAaK,EAAAA;AAEpF,IAAA,MAAM,EAAEC,IAAAA,EAAMC,gBAAgB,EAAE,GAAGC,8CAAoCd,OAAAA,EAAU;AAC/Ee,QAAAA,IAAAA,EAAMN,sBAAsBT,OAAAA,KAAYU,SAAAA;QACxCM,yBAAAA,EAA2B;AAC7B,KAAA,CAAA;IAEA,MAAM,EAAEJ,MAAMK,MAAM,EAAEC,SAAS,EAAEC,KAAK,EAAE,GAAGC,qCAAAA,CAAgC;QAAEC,IAAAA,EAAM;AAAG,KAAA,CAAA;AAEtF,IAAA,MAAMC,qBAAqB1B,gBAAAA,CAAM2B,OAAO,CACtC,IACEC,IAAAA,CAAKC,SAAS,CAAC;AACbzB,YAAAA,OAAAA,EAASA,OAAAA,IAAW,QAAA;AACpBC,YAAAA,WAAAA,EAAaA,WAAAA,IAAe,cAAA;AAC5BF,YAAAA;SACF,CAAA,EACF;AAACA,QAAAA,uBAAAA;AAAyBE,QAAAA,WAAAA;AAAaD,QAAAA;AAAQ,KAAA,CAAA;AAGjD,IAAA,IAAIkB,SAAAA,EAAW;QACb,qBAAOQ,cAAA,CAACC,iBAAKC,OAAO,EAAA,EAAA,CAAA;AACtB,IAAA;IAEA,IAAIT,KAAAA,KAAUT,SAAAA,IAAaO,MAAAA,KAAWP,SAAAA,EAAW;QAC/C,OAAO,IAAA;AACT,IAAA;;IAGA,IAAID,kBAAAA,KAAuB,KAAA,IAASI,gBAAAA,KAAqBH,SAAAA,EAAW;QAClE,OAAO,IAAA;AACT,IAAA;IAEA,MAAMmB,oBAAAA,GAAuBpB,qBAAqBL,sBAAAA,GAAyBS,gBAAAA;AAE3E,IAAA,qBACEa,cAAA,CAACI,uBAAAA,EAAAA;QAEC5B,GAAAA,EAAKA,GAAAA;QACLe,MAAAA,EAAQA,MAAAA;QACRd,WAAAA,EAAaJ,uBAAAA;QACbgC,eAAAA,EAAiBF,oBAAAA;QACjBG,cAAAA,EAAgBlC;AALXwB,KAAAA,EAAAA,kBAAAA,CAAAA;AAQX,CAAA;;;;"}
@@ -20,7 +20,8 @@ var apiTokens = require('../../../../services/apiTokens.js');
20
20
  var constants = require('../../components/Tokens/constants.js');
21
21
  var Table = require('../../components/Tokens/Table.js');
22
22
 
23
- function _interopNamespaceDefault(e) {
23
+ function _interopNamespace(e) {
24
+ if (e && e.__esModule) return e;
24
25
  var n = Object.create(null);
25
26
  if (e) {
26
27
  Object.keys(e).forEach(function (k) {
@@ -37,8 +38,8 @@ function _interopNamespaceDefault(e) {
37
38
  return Object.freeze(n);
38
39
  }
39
40
 
40
- var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
41
- var qs__namespace = /*#__PURE__*/_interopNamespaceDefault(qs);
41
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
42
+ var qs__namespace = /*#__PURE__*/_interopNamespace(qs);
42
43
 
43
44
  const TABLE_HEADERS = [
44
45
  {
@@ -1 +1 @@
1
- {"version":3,"file":"ListView.js","sources":["../../../../../../../../admin/src/pages/Settings/pages/AdminTokens/ListView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { EmptyStateLayout, LinkButton } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport * as qs from 'qs';\nimport { useIntl } from 'react-intl';\nimport { Link, useNavigate } from 'react-router-dom';\n\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 { useOnce } from '../../../../hooks/useOnce';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport {\n useDeleteAdminTokenMutation,\n useGetAdminTokensQuery,\n} from '../../../../services/apiTokens';\nimport { API_TOKEN_TYPE } from '../../components/Tokens/constants';\nimport { Table } from '../../components/Tokens/Table';\n\nimport type { Data } from '@strapi/types';\n\nconst TABLE_HEADERS = [\n {\n name: 'name',\n label: {\n id: 'Settings.adminTokens.ListView.headers.name',\n defaultMessage: 'Name',\n },\n sortable: true,\n },\n {\n name: 'description',\n label: {\n id: 'Settings.adminTokens.ListView.headers.description',\n defaultMessage: 'Description',\n },\n sortable: false,\n },\n {\n name: 'createdAt',\n label: {\n id: 'Settings.adminTokens.ListView.headers.createdAt',\n defaultMessage: 'Created at',\n },\n sortable: false,\n },\n {\n name: 'lastUsedAt',\n label: {\n id: 'Settings.adminTokens.ListView.headers.lastUsedAt',\n defaultMessage: 'Last used',\n },\n sortable: false,\n },\n {\n name: 'adminUserOwner',\n label: {\n id: 'Settings.adminTokens.ListView.headers.owner',\n defaultMessage: 'Owner',\n },\n sortable: false,\n },\n];\n\nexport const ListView = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['admin-tokens']\n );\n const {\n allowedActions: { canRead, canCreate, canDelete, canUpdate },\n } = useRBAC(permissions);\n const navigate = useNavigate();\n const { trackUsage } = useTracking();\n\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n React.useEffect(() => {\n navigate({ search: qs.stringify({ sort: 'name:ASC' }, { encode: false }) }, { replace: true });\n }, [navigate]);\n\n const headers = TABLE_HEADERS.map((header) => ({\n ...header,\n label: formatMessage(header.label),\n }));\n\n useOnce(() => {\n trackUsage('willAccessTokenList', {\n tokenType: API_TOKEN_TYPE,\n });\n });\n\n const { data: adminTokens = [], isLoading, error } = useGetAdminTokensQuery();\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 trackUsage('didAccessTokenList', { number: adminTokens.length, tokenType: API_TOKEN_TYPE });\n }, [adminTokens, trackUsage]);\n\n const [deleteToken] = useDeleteAdminTokenMutation();\n\n const handleDelete = async (id: Data.ID) => {\n try {\n const res = await deleteToken(id);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n trackUsage('didDeleteToken');\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 return (\n <>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n { name: 'Admin Tokens' }\n )}\n </Page.Title>\n <Layouts.Header\n title={formatMessage({ id: 'Settings.adminTokens.title', defaultMessage: 'Admin Tokens' })}\n subtitle={formatMessage({\n id: 'Settings.adminTokens.description',\n defaultMessage: 'List of generated tokens to programmatically access the admin features',\n })}\n primaryAction={\n canCreate && (\n <LinkButton\n tag={Link}\n data-testid=\"create-admin-token-button\"\n startIcon={<Plus />}\n size=\"S\"\n onClick={() => trackUsage('willAddTokenFromList', { tokenType: API_TOKEN_TYPE })}\n to=\"/settings/admin-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.adminTokens.create',\n defaultMessage: 'Create new Admin Token',\n })}\n </LinkButton>\n )\n }\n />\n {!canRead ? (\n <Page.NoPermissions />\n ) : (\n <Page.Main aria-busy={isLoading}>\n <Layouts.Content>\n {adminTokens.length > 0 && (\n <Table\n permissions={{ canRead, canDelete, canUpdate }}\n headers={headers}\n isLoading={isLoading}\n onConfirmDelete={handleDelete}\n tokens={adminTokens}\n tokenType={API_TOKEN_TYPE}\n showOwner\n />\n )}\n {canCreate && adminTokens.length === 0 ? (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"16rem\" />}\n content={formatMessage({\n id: 'Settings.adminTokens.addFirstToken',\n defaultMessage: 'Create your first Admin Token',\n })}\n action={\n <LinkButton\n tag={Link}\n variant=\"secondary\"\n startIcon={<Plus />}\n to=\"/settings/admin-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.adminTokens.create',\n defaultMessage: 'Create new Admin Token',\n })}\n </LinkButton>\n }\n />\n ) : null}\n {!canCreate && adminTokens.length === 0 ? (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"16rem\" />}\n content={formatMessage({\n id: 'Settings.adminTokens.emptyStateLayout',\n defaultMessage: \"You don't have any content yet...\",\n })}\n />\n ) : null}\n </Layouts.Content>\n </Page.Main>\n )}\n </>\n );\n};\n\nexport const ProtectedListView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['admin-tokens']?.main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListView />\n </Page.Protect>\n );\n};\n"],"names":["TABLE_HEADERS","name","label","id","defaultMessage","sortable","ListView","formatMessage","useIntl","toggleNotification","useNotification","permissions","useTypedSelector","state","admin_app","settings","allowedActions","canRead","canCreate","canDelete","canUpdate","useRBAC","navigate","useNavigate","trackUsage","useTracking","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","React","useEffect","search","qs","stringify","sort","encode","replace","headers","map","header","useOnce","tokenType","API_TOKEN_TYPE","data","adminTokens","isLoading","error","useGetAdminTokensQuery","type","message","number","length","deleteToken","useDeleteAdminTokenMutation","handleDelete","res","_jsxs","_Fragment","_jsx","Page","Title","Layouts","Header","title","subtitle","primaryAction","LinkButton","tag","Link","data-testid","startIcon","Plus","size","onClick","to","NoPermissions","Main","aria-busy","Content","Table","onConfirmDelete","tokens","showOwner","EmptyStateLayout","icon","EmptyDocuments","width","content","action","variant","ProtectedListView","main","Protect"],"mappings":"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"}
1
+ {"version":3,"file":"ListView.js","sources":["../../../../../../../../admin/src/pages/Settings/pages/AdminTokens/ListView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { EmptyStateLayout, LinkButton } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport * as qs from 'qs';\nimport { useIntl } from 'react-intl';\nimport { Link, useNavigate } from 'react-router-dom';\n\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 { useOnce } from '../../../../hooks/useOnce';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport {\n useDeleteAdminTokenMutation,\n useGetAdminTokensQuery,\n} from '../../../../services/apiTokens';\nimport { API_TOKEN_TYPE } from '../../components/Tokens/constants';\nimport { Table } from '../../components/Tokens/Table';\n\nimport type { Data } from '@strapi/types';\n\nconst TABLE_HEADERS = [\n {\n name: 'name',\n label: {\n id: 'Settings.adminTokens.ListView.headers.name',\n defaultMessage: 'Name',\n },\n sortable: true,\n },\n {\n name: 'description',\n label: {\n id: 'Settings.adminTokens.ListView.headers.description',\n defaultMessage: 'Description',\n },\n sortable: false,\n },\n {\n name: 'createdAt',\n label: {\n id: 'Settings.adminTokens.ListView.headers.createdAt',\n defaultMessage: 'Created at',\n },\n sortable: false,\n },\n {\n name: 'lastUsedAt',\n label: {\n id: 'Settings.adminTokens.ListView.headers.lastUsedAt',\n defaultMessage: 'Last used',\n },\n sortable: false,\n },\n {\n name: 'adminUserOwner',\n label: {\n id: 'Settings.adminTokens.ListView.headers.owner',\n defaultMessage: 'Owner',\n },\n sortable: false,\n },\n];\n\nexport const ListView = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['admin-tokens']\n );\n const {\n allowedActions: { canRead, canCreate, canDelete, canUpdate },\n } = useRBAC(permissions);\n const navigate = useNavigate();\n const { trackUsage } = useTracking();\n\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n React.useEffect(() => {\n navigate({ search: qs.stringify({ sort: 'name:ASC' }, { encode: false }) }, { replace: true });\n }, [navigate]);\n\n const headers = TABLE_HEADERS.map((header) => ({\n ...header,\n label: formatMessage(header.label),\n }));\n\n useOnce(() => {\n trackUsage('willAccessTokenList', {\n tokenType: API_TOKEN_TYPE,\n });\n });\n\n const { data: adminTokens = [], isLoading, error } = useGetAdminTokensQuery();\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 trackUsage('didAccessTokenList', { number: adminTokens.length, tokenType: API_TOKEN_TYPE });\n }, [adminTokens, trackUsage]);\n\n const [deleteToken] = useDeleteAdminTokenMutation();\n\n const handleDelete = async (id: Data.ID) => {\n try {\n const res = await deleteToken(id);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n trackUsage('didDeleteToken');\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 return (\n <>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n { name: 'Admin Tokens' }\n )}\n </Page.Title>\n <Layouts.Header\n title={formatMessage({ id: 'Settings.adminTokens.title', defaultMessage: 'Admin Tokens' })}\n subtitle={formatMessage({\n id: 'Settings.adminTokens.description',\n defaultMessage: 'List of generated tokens to programmatically access the admin features',\n })}\n primaryAction={\n canCreate && (\n <LinkButton\n tag={Link}\n data-testid=\"create-admin-token-button\"\n startIcon={<Plus />}\n size=\"S\"\n onClick={() => trackUsage('willAddTokenFromList', { tokenType: API_TOKEN_TYPE })}\n to=\"/settings/admin-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.adminTokens.create',\n defaultMessage: 'Create new Admin Token',\n })}\n </LinkButton>\n )\n }\n />\n {!canRead ? (\n <Page.NoPermissions />\n ) : (\n <Page.Main aria-busy={isLoading}>\n <Layouts.Content>\n {adminTokens.length > 0 && (\n <Table\n permissions={{ canRead, canDelete, canUpdate }}\n headers={headers}\n isLoading={isLoading}\n onConfirmDelete={handleDelete}\n tokens={adminTokens}\n tokenType={API_TOKEN_TYPE}\n showOwner\n />\n )}\n {canCreate && adminTokens.length === 0 ? (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"16rem\" />}\n content={formatMessage({\n id: 'Settings.adminTokens.addFirstToken',\n defaultMessage: 'Create your first Admin Token',\n })}\n action={\n <LinkButton\n tag={Link}\n variant=\"secondary\"\n startIcon={<Plus />}\n to=\"/settings/admin-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.adminTokens.create',\n defaultMessage: 'Create new Admin Token',\n })}\n </LinkButton>\n }\n />\n ) : null}\n {!canCreate && adminTokens.length === 0 ? (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"16rem\" />}\n content={formatMessage({\n id: 'Settings.adminTokens.emptyStateLayout',\n defaultMessage: \"You don't have any content yet...\",\n })}\n />\n ) : null}\n </Layouts.Content>\n </Page.Main>\n )}\n </>\n );\n};\n\nexport const ProtectedListView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['admin-tokens']?.main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListView />\n </Page.Protect>\n );\n};\n"],"names":["TABLE_HEADERS","name","label","id","defaultMessage","sortable","ListView","formatMessage","useIntl","toggleNotification","useNotification","permissions","useTypedSelector","state","admin_app","settings","allowedActions","canRead","canCreate","canDelete","canUpdate","useRBAC","navigate","useNavigate","trackUsage","useTracking","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","React","useEffect","search","qs","stringify","sort","encode","replace","headers","map","header","useOnce","tokenType","API_TOKEN_TYPE","data","adminTokens","isLoading","error","useGetAdminTokensQuery","type","message","number","length","deleteToken","useDeleteAdminTokenMutation","handleDelete","res","_jsxs","_Fragment","_jsx","Page","Title","Layouts","Header","title","subtitle","primaryAction","LinkButton","tag","Link","data-testid","startIcon","Plus","size","onClick","to","NoPermissions","Main","aria-busy","Content","Table","onConfirmDelete","tokens","showOwner","EmptyStateLayout","icon","EmptyDocuments","width","content","action","variant","ProtectedListView","main","Protect"],"mappings":"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"}
@@ -24,7 +24,8 @@ var apiTokenPermissions = require('./apiTokenPermissions.js');
24
24
  var Permissions = require('./components/Permissions.js');
25
25
  var reducer = require('./reducer.js');
26
26
 
27
- function _interopNamespaceDefault(e) {
27
+ function _interopNamespace(e) {
28
+ if (e && e.__esModule) return e;
28
29
  var n = Object.create(null);
29
30
  if (e) {
30
31
  Object.keys(e).forEach(function (k) {
@@ -41,7 +42,7 @@ function _interopNamespaceDefault(e) {
41
42
  return Object.freeze(n);
42
43
  }
43
44
 
44
- var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
45
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
45
46
 
46
47
  /**
47
48
  * TODO: this could definitely be refactored to avoid using redux and instead just use the
@@ -1 +1 @@
1
- {"version":3,"file":"EditViewPage.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.tsx"],"sourcesContent":["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 { 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, apiTokenInformationSchema } from '../../../components/Tokens/constants';\nimport { FormApiTokenContainer } from '../../../components/Tokens/FormApiTokenContainer';\nimport { FormHead } from '../../../components/Tokens/FormHead';\nimport { ApiTokenBox } from '../../../components/Tokens/TokenBox';\n\nimport {\n ApiTokenPermissionsContextValue,\n ApiTokenPermissionsProvider,\n} from './apiTokenPermissions';\nimport { Permissions } from './components/Permissions';\nimport { initialState, reducer } from './reducer';\n\nimport type { ContentApiApiToken, Get } 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<ContentApiApiToken | null>(\n locationState?.apiToken?.accessKey !== undefined && locationState?.apiToken?.accessKey !== ''\n ? {\n ...locationState.apiToken,\n }\n : null\n );\n\n const [showToken, setShowToken] = React.useState(\n locationState?.apiToken?.accessKey !== undefined && locationState?.apiToken?.accessKey !== ''\n );\n const hideTimerRef = React.useRef<ReturnType<typeof setTimeout> | null>(null);\n const { trackUsage } = useTracking();\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: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const navigate = useNavigate();\n\n const contentAPIPermissionsQuery = useGetPermissionsQuery();\n const contentAPIRoutesQuery = useGetRoutesQuery();\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 !== null) {\n if (apiToken.type === 'read-only') {\n dispatch({ type: 'ON_CHANGE_READ_ONLY' });\n }\n if (apiToken.type === 'full-access') {\n dispatch({ type: 'SELECT_ALL_ACTIONS' });\n }\n if (apiToken.type === 'custom') {\n dispatch({ type: 'UPDATE_PERMISSIONS', value: apiToken.permissions });\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.kind === 'content-api') {\n if (data.type === 'read-only') {\n dispatch({ type: 'ON_CHANGE_READ_ONLY' });\n }\n if (data.type === 'full-access') {\n dispatch({ type: 'SELECT_ALL_ACTIONS' });\n }\n if (data.type === 'custom') {\n dispatch({ type: 'UPDATE_PERMISSIONS', value: data.permissions });\n }\n }\n }\n }, [data]);\n\n React.useEffect(() => {\n // Only set up timer when token is shown\n if (showToken) {\n hideTimerRef.current = setTimeout(() => {\n setShowToken(false);\n }, 30000); // 30 seconds\n\n // Cleanup on unmount or when showToken changes\n return () => {\n if (hideTimerRef.current) {\n clearTimeout(hideTimerRef.current);\n hideTimerRef.current = null;\n }\n };\n }\n }, [showToken]);\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: ContentApiApiToken['type'] | undefined;\n }\n\n const buildLifespan = (raw: FormValues['lifespan']): number | null =>\n raw && raw !== '0' ? parseInt(raw.toString(), 10) : null;\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 name: body.name,\n description: body.description,\n type: body.type!,\n lifespan: buildLifespan(body.lifespan),\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(formatValidationErrors(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 kind: 'content-api',\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 } 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(formatValidationErrors(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 kind: res.data.kind,\n type: (res.data as ContentApiApiToken).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 toggleToken = () => {\n setShowToken((prev) => !prev);\n if (hideTimerRef.current) {\n clearTimeout(hideTimerRef.current);\n hideTimerRef.current = null;\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 const canShowToken = apiToken?.accessKey !== undefined && apiToken.accessKey !== '';\n\n const initialType =\n apiToken !== null && apiToken.kind === 'content-api' ? apiToken.type : undefined;\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={apiTokenInformationSchema}\n validateOnChange={false}\n initialValues={{\n name: apiToken?.name || '',\n description: apiToken?.description || '',\n type: initialType,\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 isCreating\n ? {\n id: 'Settings.apiTokens.createPage.title',\n defaultMessage: 'Create API Token',\n }\n : {\n id: 'Settings.apiTokens.createPage.title',\n defaultMessage: 'Edit API Token',\n }\n }\n token={apiToken}\n setToken={setApiToken}\n toggleToken={toggleToken}\n showToken={showToken}\n canEditInputs={canEditInputs}\n canRegenerate={canRegenerate}\n canShowToken={canShowToken}\n isSubmitting={isSubmitting}\n regenerateUrl=\"/admin/api-tokens/\"\n />\n\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {apiToken?.accessKey !== undefined &&\n apiToken.accessKey !== '' &&\n showToken === true && (\n <>\n <ApiTokenBox token={apiToken.accessKey} tokenType={API_TOKEN_TYPE} />\n </>\n )}\n\n <FormApiTokenContainer\n errors={errors}\n onChange={handleChange}\n canEditInputs={canEditInputs}\n isCreating={isCreating}\n values={values}\n apiToken={apiToken}\n kind=\"content-api\"\n onDispatch={dispatch}\n setHasChangedPermissions={setHasChangedPermissions}\n />\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":["EditView","formatMessage","useIntl","toggleNotification","useNotification","state","locationState","useLocation","permissions","useTypedSelector","admin_app","apiToken","setApiToken","React","useState","accessKey","undefined","showToken","setShowToken","hideTimerRef","useRef","trackUsage","useTracking","allowedActions","canCreate","canUpdate","canRegenerate","useRBAC","settings","dispatch","useReducer","reducer","initialState","match","useMatch","id","params","isCreating","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","navigate","useNavigate","contentAPIPermissionsQuery","useGetPermissionsQuery","contentAPIRoutesQuery","useGetRoutesQuery","useEffect","error","type","message","data","value","tokenType","API_TOKEN_TYPE","isLoading","useGetAPITokenQuery","skip","kind","current","setTimeout","clearTimeout","createToken","useCreateAPITokenMutation","updateToken","useUpdateAPITokenMutation","buildLifespan","raw","parseInt","toString","handleSubmit","body","formik","res","name","description","lifespan","selectedActions","isBaseQueryError","setErrors","defaultMessage","replace","hasChangedPermissions","setHasChangedPermissions","handleChangeCheckbox","target","handleChangeSelectAllCheckbox","setSelectedAction","toggleToken","prev","providerValue","onChange","onChangeSelectAll","canEditInputs","canShowToken","initialType","_jsx","Page","Loading","ApiTokenPermissionsProvider","_jsxs","Main","Title","Formik","validationSchema","apiTokenInformationSchema","validateOnChange","initialValues","enableReinitialize","onSubmit","actions","errors","handleChange","isSubmitting","values","setFieldValue","Form","FormHead","title","token","setToken","regenerateUrl","Layouts","Content","Flex","direction","alignItems","gap","_Fragment","ApiTokenBox","FormApiTokenContainer","onDispatch","Permissions","disabled","ProtectedEditView","read","Protect"],"mappings":"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"}
1
+ {"version":3,"file":"EditViewPage.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.tsx"],"sourcesContent":["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 { 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, apiTokenInformationSchema } from '../../../components/Tokens/constants';\nimport { FormApiTokenContainer } from '../../../components/Tokens/FormApiTokenContainer';\nimport { FormHead } from '../../../components/Tokens/FormHead';\nimport { ApiTokenBox } from '../../../components/Tokens/TokenBox';\n\nimport {\n ApiTokenPermissionsContextValue,\n ApiTokenPermissionsProvider,\n} from './apiTokenPermissions';\nimport { Permissions } from './components/Permissions';\nimport { initialState, reducer } from './reducer';\n\nimport type { ContentApiApiToken, Get } 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<ContentApiApiToken | null>(\n locationState?.apiToken?.accessKey !== undefined && locationState?.apiToken?.accessKey !== ''\n ? {\n ...locationState.apiToken,\n }\n : null\n );\n\n const [showToken, setShowToken] = React.useState(\n locationState?.apiToken?.accessKey !== undefined && locationState?.apiToken?.accessKey !== ''\n );\n const hideTimerRef = React.useRef<ReturnType<typeof setTimeout> | null>(null);\n const { trackUsage } = useTracking();\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: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const navigate = useNavigate();\n\n const contentAPIPermissionsQuery = useGetPermissionsQuery();\n const contentAPIRoutesQuery = useGetRoutesQuery();\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 !== null) {\n if (apiToken.type === 'read-only') {\n dispatch({ type: 'ON_CHANGE_READ_ONLY' });\n }\n if (apiToken.type === 'full-access') {\n dispatch({ type: 'SELECT_ALL_ACTIONS' });\n }\n if (apiToken.type === 'custom') {\n dispatch({ type: 'UPDATE_PERMISSIONS', value: apiToken.permissions });\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.kind === 'content-api') {\n if (data.type === 'read-only') {\n dispatch({ type: 'ON_CHANGE_READ_ONLY' });\n }\n if (data.type === 'full-access') {\n dispatch({ type: 'SELECT_ALL_ACTIONS' });\n }\n if (data.type === 'custom') {\n dispatch({ type: 'UPDATE_PERMISSIONS', value: data.permissions });\n }\n }\n }\n }, [data]);\n\n React.useEffect(() => {\n // Only set up timer when token is shown\n if (showToken) {\n hideTimerRef.current = setTimeout(() => {\n setShowToken(false);\n }, 30000); // 30 seconds\n\n // Cleanup on unmount or when showToken changes\n return () => {\n if (hideTimerRef.current) {\n clearTimeout(hideTimerRef.current);\n hideTimerRef.current = null;\n }\n };\n }\n }, [showToken]);\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: ContentApiApiToken['type'] | undefined;\n }\n\n const buildLifespan = (raw: FormValues['lifespan']): number | null =>\n raw && raw !== '0' ? parseInt(raw.toString(), 10) : null;\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 name: body.name,\n description: body.description,\n type: body.type!,\n lifespan: buildLifespan(body.lifespan),\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(formatValidationErrors(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 kind: 'content-api',\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 } 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(formatValidationErrors(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 kind: res.data.kind,\n type: (res.data as ContentApiApiToken).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 toggleToken = () => {\n setShowToken((prev) => !prev);\n if (hideTimerRef.current) {\n clearTimeout(hideTimerRef.current);\n hideTimerRef.current = null;\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 const canShowToken = apiToken?.accessKey !== undefined && apiToken.accessKey !== '';\n\n const initialType =\n apiToken !== null && apiToken.kind === 'content-api' ? apiToken.type : undefined;\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={apiTokenInformationSchema}\n validateOnChange={false}\n initialValues={{\n name: apiToken?.name || '',\n description: apiToken?.description || '',\n type: initialType,\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 isCreating\n ? {\n id: 'Settings.apiTokens.createPage.title',\n defaultMessage: 'Create API Token',\n }\n : {\n id: 'Settings.apiTokens.createPage.title',\n defaultMessage: 'Edit API Token',\n }\n }\n token={apiToken}\n setToken={setApiToken}\n toggleToken={toggleToken}\n showToken={showToken}\n canEditInputs={canEditInputs}\n canRegenerate={canRegenerate}\n canShowToken={canShowToken}\n isSubmitting={isSubmitting}\n regenerateUrl=\"/admin/api-tokens/\"\n />\n\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {apiToken?.accessKey !== undefined &&\n apiToken.accessKey !== '' &&\n showToken === true && (\n <>\n <ApiTokenBox token={apiToken.accessKey} tokenType={API_TOKEN_TYPE} />\n </>\n )}\n\n <FormApiTokenContainer\n errors={errors}\n onChange={handleChange}\n canEditInputs={canEditInputs}\n isCreating={isCreating}\n values={values}\n apiToken={apiToken}\n kind=\"content-api\"\n onDispatch={dispatch}\n setHasChangedPermissions={setHasChangedPermissions}\n />\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":["EditView","formatMessage","useIntl","toggleNotification","useNotification","state","locationState","useLocation","permissions","useTypedSelector","admin_app","apiToken","setApiToken","React","useState","accessKey","undefined","showToken","setShowToken","hideTimerRef","useRef","trackUsage","useTracking","allowedActions","canCreate","canUpdate","canRegenerate","useRBAC","settings","dispatch","useReducer","reducer","initialState","match","useMatch","id","params","isCreating","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","navigate","useNavigate","contentAPIPermissionsQuery","useGetPermissionsQuery","contentAPIRoutesQuery","useGetRoutesQuery","useEffect","error","type","message","data","value","tokenType","API_TOKEN_TYPE","isLoading","useGetAPITokenQuery","skip","kind","current","setTimeout","clearTimeout","createToken","useCreateAPITokenMutation","updateToken","useUpdateAPITokenMutation","buildLifespan","raw","parseInt","toString","handleSubmit","body","formik","res","name","description","lifespan","selectedActions","isBaseQueryError","setErrors","defaultMessage","replace","hasChangedPermissions","setHasChangedPermissions","handleChangeCheckbox","target","handleChangeSelectAllCheckbox","setSelectedAction","toggleToken","prev","providerValue","onChange","onChangeSelectAll","canEditInputs","canShowToken","initialType","_jsx","Page","Loading","ApiTokenPermissionsProvider","_jsxs","Main","Title","Formik","validationSchema","apiTokenInformationSchema","validateOnChange","initialValues","enableReinitialize","onSubmit","actions","errors","handleChange","isSubmitting","values","setFieldValue","Form","FormHead","title","token","setToken","regenerateUrl","Layouts","Content","Flex","direction","alignItems","gap","_Fragment","ApiTokenBox","FormApiTokenContainer","onDispatch","Permissions","disabled","ProtectedEditView","read","Protect"],"mappings":"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"}
@@ -7,6 +7,11 @@ var tail = require('lodash/tail');
7
7
  var reactIntl = require('react-intl');
8
8
  var styled = require('styled-components');
9
9
 
10
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
+
12
+ var map__default = /*#__PURE__*/_interopDefault(map);
13
+ var tail__default = /*#__PURE__*/_interopDefault(tail);
14
+
10
15
  const getMethodColor = (verb)=>{
11
16
  switch(verb){
12
17
  case 'POST':
@@ -62,7 +67,7 @@ const BoundRoute = ({ route = {
62
67
  } })=>{
63
68
  const { formatMessage } = reactIntl.useIntl();
64
69
  const { method, handler: title, path } = route;
65
- const formattedRoute = path ? tail(path.split('/')) : [];
70
+ const formattedRoute = path ? tail__default.default(path.split('/')) : [];
66
71
  const [controller = '', action = ''] = title ? title.split('.') : [];
67
72
  const colors = getMethodColor(route.method);
68
73
  return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
@@ -111,7 +116,7 @@ const BoundRoute = ({ route = {
111
116
  /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
112
117
  paddingLeft: 2,
113
118
  paddingRight: 2,
114
- children: map(formattedRoute, (value)=>/*#__PURE__*/ jsxRuntime.jsxs(designSystem.Typography, {
119
+ children: map__default.default(formattedRoute, (value)=>/*#__PURE__*/ jsxRuntime.jsxs(designSystem.Typography, {
115
120
  textColor: value.includes(':') ? 'neutral600' : 'neutral900',
116
121
  children: [
117
122
  "/",
@@ -1 +1 @@
1
- {"version":3,"file":"BoundRoute.js","sources":["../../../../../../../../../../admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.tsx"],"sourcesContent":["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"],"names":["getMethodColor","verb","text","border","background","MethodBox","styled","Box","theme","spaces","BoundRoute","route","handler","method","path","formatMessage","useIntl","title","formattedRoute","tail","split","controller","action","colors","_jsxs","Flex","direction","alignItems","gap","Typography","variant","tag","id","defaultMessage","_jsx","span","textColor","hasRadius","borderColor","padding","fontWeight","paddingLeft","paddingRight","map","value","includes"],"mappings":"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"}
1
+ {"version":3,"file":"BoundRoute.js","sources":["../../../../../../../../../../admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.tsx"],"sourcesContent":["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"],"names":["getMethodColor","verb","text","border","background","MethodBox","styled","Box","theme","spaces","BoundRoute","route","handler","method","path","formatMessage","useIntl","title","formattedRoute","tail","split","controller","action","colors","_jsxs","Flex","direction","alignItems","gap","Typography","variant","tag","id","defaultMessage","_jsx","span","textColor","hasRadius","borderColor","padding","fontWeight","paddingLeft","paddingRight","map","value","includes"],"mappings":"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"}
@@ -9,6 +9,10 @@ var reactIntl = require('react-intl');
9
9
  var styled = require('styled-components');
10
10
  var apiTokenPermissions = require('../apiTokenPermissions.js');
11
11
 
12
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
13
+
14
+ var capitalize__default = /*#__PURE__*/_interopDefault(capitalize);
15
+
12
16
  const activeCheckboxWrapperStyles = styled.css`
13
17
  background: ${(props)=>props.theme.colors.primary100};
14
18
 
@@ -49,7 +53,7 @@ const CollapsableContentType = ({ controllers = [], label, orderNumber = 0, disa
49
53
  /*#__PURE__*/ jsxRuntime.jsx(designSystem.Accordion.Header, {
50
54
  variant: orderNumber % 2 ? 'primary' : 'secondary',
51
55
  children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Accordion.Trigger, {
52
- children: capitalize(label)
56
+ children: capitalize__default.default(label)
53
57
  })
54
58
  }),
55
59
  /*#__PURE__*/ jsxRuntime.jsx(designSystem.Accordion.Content, {
@@ -1 +1 @@
1
- {"version":3,"file":"CollapsableContentType.js","sources":["../../../../../../../../../../admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.tsx"],"sourcesContent":["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 xs={12}\n s={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 <span style={{ overflowWrap: 'anywhere' }}>{action.action}</span>\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"],"names":["activeCheckboxWrapperStyles","css","props","theme","colors","primary100","CheckboxWrapper","styled","Box","primary600","$isActive","Border","div","neutral150","CollapsableContentType","controllers","label","orderNumber","disabled","value","onChangeSelectAll","onChange","selectedActions","setSelectedAction","selectedAction","useApiTokenPermissions","formatMessage","useIntl","isActionSelected","actionId","_jsxs","Accordion","Item","_jsx","Header","variant","Trigger","capitalize","Content","map","controller","allActionsSelected","actions","every","action","includes","someActionsSelected","some","Flex","justifyContent","alignItems","padding","paddingRight","Typography","textColor","paddingLeft","Checkbox","checked","onCheckedChange","target","id","defaultMessage","Grid","Root","gap","xs","s","direction","hasRadius","name","span","style","overflowWrap","button","type","data-testid","onClick","display","Cog"],"mappings":"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"}
1
+ {"version":3,"file":"CollapsableContentType.js","sources":["../../../../../../../../../../admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.tsx"],"sourcesContent":["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 xs={12}\n s={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 <span style={{ overflowWrap: 'anywhere' }}>{action.action}</span>\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"],"names":["activeCheckboxWrapperStyles","css","props","theme","colors","primary100","CheckboxWrapper","styled","Box","primary600","$isActive","Border","div","neutral150","CollapsableContentType","controllers","label","orderNumber","disabled","value","onChangeSelectAll","onChange","selectedActions","setSelectedAction","selectedAction","useApiTokenPermissions","formatMessage","useIntl","isActionSelected","actionId","_jsxs","Accordion","Item","_jsx","Header","variant","Trigger","capitalize","Content","map","controller","allActionsSelected","actions","every","action","includes","someActionsSelected","some","Flex","justifyContent","alignItems","padding","paddingRight","Typography","textColor","paddingLeft","Checkbox","checked","onCheckedChange","target","id","defaultMessage","Grid","Root","gap","xs","s","direction","hasRadius","name","span","style","overflowWrap","button","type","data-testid","onClick","display","Cog"],"mappings":"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"}
@@ -4,6 +4,10 @@ var immer = require('immer');
4
4
  var pull = require('lodash/pull');
5
5
  var transformPermissionsData = require('./utils/transformPermissionsData.js');
6
6
 
7
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
+
9
+ var pull__default = /*#__PURE__*/_interopDefault(pull);
10
+
7
11
  const initialState = {
8
12
  data: {
9
13
  allActionsIds: [],
@@ -18,7 +22,7 @@ const reducer = (state, action)=>immer.produce(state, (draftState)=>{
18
22
  case 'ON_CHANGE':
19
23
  {
20
24
  if (draftState.selectedActions.includes(action.value)) {
21
- pull(draftState.selectedActions, action.value);
25
+ pull__default.default(draftState.selectedActions, action.value);
22
26
  } else {
23
27
  draftState.selectedActions.push(action.value);
24
28
  }
@@ -29,7 +33,7 @@ const reducer = (state, action)=>immer.produce(state, (draftState)=>{
29
33
  const areAllSelected = action.value.every((item)=>draftState.selectedActions.includes(item.actionId));
30
34
  if (areAllSelected) {
31
35
  action.value.forEach((item)=>{
32
- pull(draftState.selectedActions, item.actionId);
36
+ pull__default.default(draftState.selectedActions, item.actionId);
33
37
  });
34
38
  } else {
35
39
  action.value.forEach((item)=>{
@@ -1 +1 @@
1
- {"version":3,"file":"reducer.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/ApiTokens/EditView/reducer.ts"],"sourcesContent":["/* 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"],"names":["initialState","data","allActionsIds","permissions","routes","selectedAction","selectedActions","reducer","state","action","produce","draftState","type","includes","value","pull","push","areAllSelected","every","item","actionId","forEach","onlyReadOnlyActions","filter","transformPermissionsData"],"mappings":"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"}
1
+ {"version":3,"file":"reducer.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/ApiTokens/EditView/reducer.ts"],"sourcesContent":["/* 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"],"names":["initialState","data","allActionsIds","permissions","routes","selectedAction","selectedActions","reducer","state","action","produce","draftState","type","includes","value","pull","push","areAllSelected","every","item","actionId","forEach","onlyReadOnlyActions","filter","transformPermissionsData"],"mappings":"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"}
@@ -21,7 +21,8 @@ var apiTokens = require('../../../../services/apiTokens.js');
21
21
  var constants = require('../../components/Tokens/constants.js');
22
22
  var Table = require('../../components/Tokens/Table.js');
23
23
 
24
- function _interopNamespaceDefault(e) {
24
+ function _interopNamespace(e) {
25
+ if (e && e.__esModule) return e;
25
26
  var n = Object.create(null);
26
27
  if (e) {
27
28
  Object.keys(e).forEach(function (k) {
@@ -38,8 +39,8 @@ function _interopNamespaceDefault(e) {
38
39
  return Object.freeze(n);
39
40
  }
40
41
 
41
- var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
42
- var qs__namespace = /*#__PURE__*/_interopNamespaceDefault(qs);
42
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
43
+ var qs__namespace = /*#__PURE__*/_interopNamespace(qs);
43
44
 
44
45
  const TABLE_HEADERS = [
45
46
  {