@strapi/admin 4.14.3 → 4.14.5

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 (657) hide show
  1. package/.eslintrc.js +4 -1
  2. package/admin/.eslintrc.js +28 -0
  3. package/admin/custom.d.ts +28 -0
  4. package/admin/src/StrapiApp.js +14 -16
  5. package/admin/src/components/AuthenticatedApp/index.js +7 -11
  6. package/admin/src/components/AuthenticatedApp/utils/api.js +1 -39
  7. package/admin/src/components/AuthenticatedApp/utils/checkLatestStrapiVersion.ts +13 -0
  8. package/admin/src/{hooks/useReleaseNotification/utils/api.js → components/AuthenticatedApp/utils/fetchStrapiLatestRelease.ts} +2 -3
  9. package/admin/src/components/ConfigurationProvider.tsx +67 -0
  10. package/admin/src/components/{DragLayer/DragLayer.js → DragLayer.tsx} +18 -10
  11. package/admin/src/components/LanguageProvider.tsx +129 -0
  12. package/admin/src/components/{LeftMenu/index.js → LeftMenu.tsx} +23 -18
  13. package/admin/src/components/{NpsSurvey/index.js → NpsSurvey.tsx} +68 -21
  14. package/admin/src/components/PluginsInitializer.tsx +124 -0
  15. package/admin/src/components/PrivateRoute.tsx +42 -0
  16. package/admin/src/components/Providers/index.js +8 -8
  17. package/admin/src/components/Theme.tsx +39 -0
  18. package/admin/src/components/ThemeToggleProvider.tsx +50 -0
  19. package/admin/src/components/{UnauthenticatedLogo/index.js → UnauthenticatedLogo.tsx} +3 -5
  20. package/admin/src/components/{LocalesProvider/__mocks__/useLocalesProvider.js → __mocks__/LanguageProvider.js} +1 -1
  21. package/admin/src/content-manager/components/BlocksEditor/BlocksInput/index.js +68 -9
  22. package/admin/src/content-manager/components/BlocksEditor/Toolbar/index.js +374 -167
  23. package/admin/src/content-manager/components/BlocksEditor/hooks/useBlocksStore.js +405 -135
  24. package/admin/src/content-manager/components/BlocksEditor/hooks/useModifiersStore.js +23 -6
  25. package/admin/src/content-manager/components/BlocksEditor/index.js +97 -20
  26. package/admin/src/content-manager/components/BlocksEditor/plugins/index.js +4 -0
  27. package/admin/src/content-manager/components/BlocksEditor/plugins/withLinks.js +61 -0
  28. package/admin/src/content-manager/components/BlocksEditor/plugins/withStrapiSchema.js +33 -0
  29. package/admin/src/content-manager/components/BlocksEditor/utils/links.js +90 -0
  30. package/admin/src/content-manager/components/InputUID/index.js +1 -1
  31. package/admin/src/content-manager/hooks/useAllowedAttributes.js +9 -1
  32. package/admin/src/content-manager/pages/EditSettingsView/index.js +1 -0
  33. package/admin/src/content-manager/pages/EditSettingsView/utils/createPossibleMainFieldsForModelsAndComponents.js +1 -0
  34. package/admin/src/content-manager/pages/ListSettingsView/constants.js +1 -0
  35. package/admin/src/content-manager/pages/ListView/index.js +2 -1
  36. package/admin/src/content-manager/utils/checkIfAttributeIsDisplayable.js +1 -1
  37. package/admin/src/content-manager/utils/schema.js +2 -2
  38. package/admin/src/contexts/admin.ts +18 -0
  39. package/admin/src/contexts/configuration.ts +25 -0
  40. package/admin/src/contexts/themeToggle.ts +16 -0
  41. package/admin/src/hooks/{useConfigurations/__mocks__/index.js → __mocks__/useConfigurations.ts} +4 -2
  42. package/admin/src/hooks/index.js +0 -7
  43. package/admin/src/hooks/{useAdminRoles/index.js → useAdminRoles.ts} +26 -10
  44. package/admin/src/hooks/useAdminUsers.ts +64 -0
  45. package/admin/src/hooks/useConfiguration.ts +5 -0
  46. package/admin/src/hooks/useDebounce.ts +17 -0
  47. package/admin/src/hooks/{useEnterprise/useEnterprise.js → useEnterprise.ts} +15 -5
  48. package/admin/src/hooks/useLicenseLimitNotification.ts +3 -0
  49. package/admin/src/hooks/useMenu.ts +153 -0
  50. package/admin/src/hooks/useThemeToggle.ts +9 -0
  51. package/admin/src/index.js +5 -2
  52. package/admin/src/layouts/UnauthenticatedLayout/LocaleToggle/index.js +2 -2
  53. package/admin/src/pages/Admin/index.js +4 -3
  54. package/admin/src/pages/App/index.js +6 -4
  55. package/admin/src/pages/AuthPage/components/ForgotPassword/index.js +1 -1
  56. package/admin/src/pages/AuthPage/components/ForgotPasswordSuccess/index.js +1 -1
  57. package/admin/src/pages/AuthPage/components/Login/BaseLogin.js +1 -1
  58. package/admin/src/pages/AuthPage/components/Oops/index.js +1 -1
  59. package/admin/src/pages/AuthPage/components/Register/index.js +29 -34
  60. package/admin/src/pages/AuthPage/components/ResetPassword/index.js +1 -1
  61. package/admin/src/pages/AuthPage/index.js +2 -2
  62. package/admin/src/pages/MarketplacePage/components/NpmPackageCard/index.js +0 -2
  63. package/admin/src/pages/MarketplacePage/hooks/__mocks__/useNavigatorOnline.ts +1 -0
  64. package/admin/src/{hooks/useNavigatorOnLine/index.js → pages/MarketplacePage/hooks/useNavigatorOnline.ts} +4 -6
  65. package/admin/src/pages/MarketplacePage/index.js +3 -3
  66. package/admin/src/pages/ProfilePage/index.js +3 -3
  67. package/admin/src/pages/SettingsPage/components/Tokens/Regenerate/index.js +1 -1
  68. package/admin/src/pages/SettingsPage/components/Tokens/Table/index.js +119 -87
  69. package/admin/src/{hooks/useRegenerate/index.js → pages/SettingsPage/hooks/useRegenerate.ts} +13 -7
  70. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/Regenerate/index.js +1 -1
  71. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/CustomizationInfos/index.js +2 -2
  72. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/index.js +2 -2
  73. package/admin/src/pages/SettingsPage/pages/Roles/CreatePage/index.js +1 -1
  74. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/index.js +1 -1
  75. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/Collapse/index.js +1 -1
  76. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/ActionRow/index.js +1 -1
  77. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/SubActionRow/index.js +1 -1
  78. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/GlobalActions/index.js +1 -1
  79. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PermissionsDataManagerProvider/index.js +1 -1
  80. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/SubCategory/index.js +1 -1
  81. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/hooks/usePermissionsDataManager.ts +28 -0
  82. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/index.js +1 -1
  83. package/admin/src/{hooks/useAdminRolePermissions/index.js → pages/SettingsPage/pages/Roles/hooks/useAdminRolePermissions.ts} +13 -6
  84. package/admin/src/pages/SettingsPage/pages/TransferTokens/ListView/index.js +3 -5
  85. package/admin/src/pages/UseCasePage/index.js +1 -1
  86. package/admin/src/shared/hooks/index.js +0 -1
  87. package/admin/src/shared/hooks/useInjectionZone/index.js +2 -2
  88. package/admin/src/translations/en.json +8 -0
  89. package/admin/src/types/adminAPI.ts +29 -0
  90. package/admin/src/utils/createRoute.js +4 -1
  91. package/admin/tsconfig.build.json +4 -0
  92. package/admin/tsconfig.json +11 -0
  93. package/build/1049.9236e785.chunk.js +1 -0
  94. package/build/1222.fe92c653.chunk.js +35 -0
  95. package/build/{1227.969e24e6.chunk.js → 1227.e0f7447b.chunk.js} +1 -1
  96. package/build/135.ad267b59.chunk.js +1 -0
  97. package/build/{1386.db9a2795.chunk.js → 1386.07f2bbb3.chunk.js} +2 -2
  98. package/build/1835.eaa696ba.chunk.js +1 -0
  99. package/build/2225.a2147b8f.chunk.js +79 -0
  100. package/build/2325.d705b39a.chunk.js +1 -0
  101. package/build/{2379.906334f0.chunk.js → 2379.b0bc4013.chunk.js} +1 -1
  102. package/build/{2395.f6ac2863.chunk.js → 2395.d37b1025.chunk.js} +1 -1
  103. package/build/2421.79e5b3d0.chunk.js +1 -0
  104. package/build/267.073a3bcb.chunk.js +1 -0
  105. package/build/2801.12522720.chunk.js +1 -0
  106. package/build/2878.145ebf7c.chunk.js +1 -0
  107. package/build/2953.284a63c0.chunk.js +1 -0
  108. package/build/{9832.65ed5a44.chunk.js → 3019.0d74d080.chunk.js} +4 -4
  109. package/build/{3483.f6b2439f.chunk.js → 3483.8f1b25f8.chunk.js} +1 -1
  110. package/build/{4174.3e13fb26.chunk.js → 4174.2c4f958e.chunk.js} +1 -1
  111. package/build/4429.7f044dc7.chunk.js +1 -0
  112. package/build/4555.c883d697.chunk.js +1 -0
  113. package/build/4663.b906cc10.chunk.js +1 -0
  114. package/build/4916.480053a6.chunk.js +1 -0
  115. package/build/4996.d285c30b.chunk.js +1 -0
  116. package/build/{502.9918bff7.chunk.js → 502.b845473a.chunk.js} +1 -1
  117. package/build/570.2f3b4c56.chunk.js +1 -0
  118. package/build/5858.493b31ec.chunk.js +1 -0
  119. package/build/6345.334e7678.chunk.js +1 -0
  120. package/build/6373.1a21d665.chunk.js +105 -0
  121. package/build/6453.4160b5b7.chunk.js +1 -0
  122. package/build/7448.6fd14dd3.chunk.js +1 -0
  123. package/build/7464.91341b4f.chunk.js +1 -0
  124. package/build/7735.9e7c9fdd.chunk.js +10 -0
  125. package/build/782.7243b183.chunk.js +1 -0
  126. package/build/7849.2a500ed8.chunk.js +1 -0
  127. package/build/{7897.4a39de37.chunk.js → 7897.dffa5ad5.chunk.js} +2 -2
  128. package/build/8162.7d1100a0.chunk.js +1 -0
  129. package/build/{8276.951e198e.chunk.js → 8276.e9698944.chunk.js} +3 -3
  130. package/build/8894.5ca4852a.chunk.js +26 -0
  131. package/build/8980.f0045cc1.chunk.js +1 -0
  132. package/build/9153.42c1428a.chunk.js +1 -0
  133. package/build/9218.306ad178.chunk.js +1 -0
  134. package/build/9285.5f174057.chunk.js +1 -0
  135. package/build/{6266.e8990811.chunk.js → 9302.550cf5b7.chunk.js} +4 -4
  136. package/build/9547.62987774.chunk.js +1 -0
  137. package/build/9754.b4e73779.chunk.js +1 -0
  138. package/build/Admin-authenticatedApp.e897fccb.chunk.js +79 -0
  139. package/build/{Admin_InternalErrorPage.b3163562.chunk.js → Admin_InternalErrorPage.e2431a95.chunk.js} +1 -1
  140. package/build/{Admin_homePage.6cb51f18.chunk.js → Admin_homePage.71ef8d06.chunk.js} +16 -16
  141. package/build/Admin_marketplace.0db78604.chunk.js +44 -0
  142. package/build/{Admin_pluginsPage.b9fa2947.chunk.js → Admin_pluginsPage.1083f7f0.chunk.js} +1 -1
  143. package/build/{Admin_profilePage.a4d41380.chunk.js → Admin_profilePage.61704b7d.chunk.js} +2 -2
  144. package/build/Admin_settingsPage.39cb9fca.chunk.js +111 -0
  145. package/build/{Upload_ConfigureTheView.cc7ca628.chunk.js → Upload_ConfigureTheView.3cfeb108.chunk.js} +1 -1
  146. package/build/admin-app.06f5e70a.chunk.js +69 -0
  147. package/build/admin-edit-roles-page.556fac52.chunk.js +267 -0
  148. package/build/admin-edit-users.64fd1318.chunk.js +10 -0
  149. package/build/admin-roles-list.15918328.chunk.js +22 -0
  150. package/build/admin-users.74fddc87.chunk.js +11 -0
  151. package/build/{api-tokens-create-page.2f25ddf6.chunk.js → api-tokens-create-page.c08ae118.chunk.js} +1 -1
  152. package/build/{api-tokens-edit-page.45faac16.chunk.js → api-tokens-edit-page.ce18efdc.chunk.js} +1 -1
  153. package/build/api-tokens-list-page.783b7569.chunk.js +16 -0
  154. package/build/audit-logs-settings-page.12aeea8c.chunk.js +1 -0
  155. package/build/content-manager.2e3f660b.chunk.js +1220 -0
  156. package/build/{content-type-builder-list-view.aa8a5d1a.chunk.js → content-type-builder-list-view.38ed3935.chunk.js} +7 -7
  157. package/build/{content-type-builder-translation-en-json.b9e5cacd.chunk.js → content-type-builder-translation-en-json.43f9d7bc.chunk.js} +1 -1
  158. package/build/{content-type-builder.885f2cad.chunk.js → content-type-builder.758a9d23.chunk.js} +14 -14
  159. package/build/email-settings-page.e08a587e.chunk.js +11 -0
  160. package/build/{en-json.a3973ff5.chunk.js → en-json.bd611a8e.chunk.js} +1 -1
  161. package/build/{i18n-settings-page.6c0157e7.chunk.js → i18n-settings-page.3186e3e9.chunk.js} +1 -1
  162. package/build/index.html +1 -1
  163. package/build/main.00ea6f5a.js +2665 -0
  164. package/build/{review-workflows-settings-create-view.ae369a88.chunk.js → review-workflows-settings-create-view.5cdc4d64.chunk.js} +1 -1
  165. package/build/{review-workflows-settings-edit-view.9a61c69f.chunk.js → review-workflows-settings-edit-view.53bf7865.chunk.js} +1 -1
  166. package/build/review-workflows-settings-list-view.b4a8aefb.chunk.js +56 -0
  167. package/build/runtime~main.e3bf3980.js +2 -0
  168. package/build/sso-settings-page.6a35d473.chunk.js +1 -0
  169. package/build/{transfer-tokens-create-page.6e1b8cee.chunk.js → transfer-tokens-create-page.2662d519.chunk.js} +1 -1
  170. package/build/{transfer-tokens-edit-page.10bb22e2.chunk.js → transfer-tokens-edit-page.f64d8d8c.chunk.js} +1 -1
  171. package/build/transfer-tokens-list-page.e6fd5f87.chunk.js +16 -0
  172. package/build/upload-settings.450a1de0.chunk.js +14 -0
  173. package/build/{upload.19e14c8e.chunk.js → upload.0d53e7a3.chunk.js} +1 -1
  174. package/build/{users-advanced-settings-page.ed69812f.chunk.js → users-advanced-settings-page.4a1f1f6d.chunk.js} +1 -1
  175. package/build/{users-email-settings-page.131a00fb.chunk.js → users-email-settings-page.ea81fe82.chunk.js} +1 -1
  176. package/build/{users-providers-settings-page.b3dca41d.chunk.js → users-providers-settings-page.10280cdb.chunk.js} +1 -1
  177. package/build/{users-roles-settings-page.afab5a0d.chunk.js → users-roles-settings-page.4a7158be.chunk.js} +4 -4
  178. package/build/{webhook-edit-page.4c037da4.chunk.js → webhook-edit-page.65ac30ee.chunk.js} +3 -3
  179. package/build/{webhook-list-page.56c82f4a.chunk.js → webhook-list-page.f57285ca.chunk.js} +3 -3
  180. package/ee/admin/hooks/{useLicenseLimitNotification.js → useLicenseLimitNotification.ts} +4 -4
  181. package/ee/admin/pages/AuthPage/components/Providers/index.js +1 -1
  182. package/ee/admin/pages/SettingsPage/pages/Users/ListPage/index.js +1 -3
  183. package/jest.config.front.js +4 -0
  184. package/package.json +25 -18
  185. package/scripts/build.js +6 -2
  186. package/server/controllers/admin.js +3 -2
  187. package/shared/entities.ts +33 -0
  188. package/shared/permissions.ts +52 -0
  189. package/webpack.config.js +1 -0
  190. package/admin/src/components/AuthenticatedApp/utils/checkLatestStrapiVersion.js +0 -11
  191. package/admin/src/components/ConfigurationsProvider/index.js +0 -66
  192. package/admin/src/components/ConfigurationsProvider/reducer.js +0 -29
  193. package/admin/src/components/DragLayer/index.js +0 -1
  194. package/admin/src/components/GlobalStyle/index.js +0 -9
  195. package/admin/src/components/LanguageProvider/index.js +0 -54
  196. package/admin/src/components/LanguageProvider/init.js +0 -13
  197. package/admin/src/components/LanguageProvider/reducer.js +0 -30
  198. package/admin/src/components/LanguageProvider/utils/localStorageKey.js +0 -3
  199. package/admin/src/components/LocalesProvider/context.js +0 -5
  200. package/admin/src/components/LocalesProvider/index.js +0 -21
  201. package/admin/src/components/LocalesProvider/useLocalesProvider.js +0 -11
  202. package/admin/src/components/NpsSurvey/hooks/useNpsSurveySettings.js +0 -17
  203. package/admin/src/components/PluginsInitializer/index.js +0 -68
  204. package/admin/src/components/PluginsInitializer/init.js +0 -11
  205. package/admin/src/components/PluginsInitializer/reducer.js +0 -22
  206. package/admin/src/components/PrivateRoute/index.js +0 -46
  207. package/admin/src/components/Theme/index.js +0 -26
  208. package/admin/src/components/ThemeToggleProvider/index.js +0 -79
  209. package/admin/src/contexts/Admin/index.js +0 -5
  210. package/admin/src/contexts/Configurations/index.js +0 -5
  211. package/admin/src/contexts/MarketPlace/index.js +0 -18
  212. package/admin/src/contexts/PermisssionsDataManagerContext/index.js +0 -5
  213. package/admin/src/contexts/ThemeToggle/index.js +0 -5
  214. package/admin/src/contexts/index.js +0 -4
  215. package/admin/src/hooks/useAdminRoles/__mocks__/index.js +0 -5
  216. package/admin/src/hooks/useAdminUsers/index.js +0 -1
  217. package/admin/src/hooks/useAdminUsers/useAdminUsers.js +0 -47
  218. package/admin/src/hooks/useConfigurations/index.js +0 -11
  219. package/admin/src/hooks/useDebounce/index.js +0 -19
  220. package/admin/src/hooks/useEnterprise/index.js +0 -1
  221. package/admin/src/hooks/useLicenseLimitNotification/index.js +0 -5
  222. package/admin/src/hooks/useMenu/index.js +0 -86
  223. package/admin/src/hooks/useMenu/utils/checkPermissions.js +0 -13
  224. package/admin/src/hooks/useMenu/utils/getGeneralLinks.js +0 -31
  225. package/admin/src/hooks/useMenu/utils/getPluginSectionLinks.js +0 -17
  226. package/admin/src/hooks/usePermissionsDataManager/index.js +0 -7
  227. package/admin/src/hooks/useReleaseNotification/index.js +0 -31
  228. package/admin/src/hooks/useReleaseNotification/utils/checkLatestStrapiVersion.js +0 -11
  229. package/admin/src/hooks/useThemeToggle/index.js +0 -11
  230. package/admin/src/shared/hooks/useAdminProvider/index.js +0 -11
  231. package/admin/src/tsconfig.json +0 -10
  232. package/build/1049.acb0e730.chunk.js +0 -1
  233. package/build/2225.78fb9b89.chunk.js +0 -79
  234. package/build/2614.3e088d3e.chunk.js +0 -35
  235. package/build/2659.cb94f1e7.chunk.js +0 -105
  236. package/build/2801.2afb4757.chunk.js +0 -1
  237. package/build/4546.1203ac95.chunk.js +0 -1
  238. package/build/5158.c85f841a.chunk.js +0 -1
  239. package/build/6715.48e37308.chunk.js +0 -1
  240. package/build/6812.00ef5b0d.chunk.js +0 -26
  241. package/build/7464.0280cf59.chunk.js +0 -1
  242. package/build/Admin-authenticatedApp.a16cdc37.chunk.js +0 -112
  243. package/build/Admin_marketplace.3eb5e132.chunk.js +0 -55
  244. package/build/Admin_settingsPage.6dc2af9f.chunk.js +0 -111
  245. package/build/admin-app.98cdf43a.chunk.js +0 -36
  246. package/build/admin-edit-roles-page.418bb1c5.chunk.js +0 -267
  247. package/build/admin-edit-users.9b42cc9e.chunk.js +0 -10
  248. package/build/admin-roles-list.cf964578.chunk.js +0 -22
  249. package/build/admin-users.8385dd73.chunk.js +0 -11
  250. package/build/api-tokens-list-page.5baabf1a.chunk.js +0 -16
  251. package/build/audit-logs-settings-page.91489670.chunk.js +0 -1
  252. package/build/content-manager.e1e49cc9.chunk.js +0 -1199
  253. package/build/email-settings-page.6bd7b280.chunk.js +0 -11
  254. package/build/email-translation-ar-json.88304564.chunk.js +0 -1
  255. package/build/email-translation-cs-json.6eaeec6a.chunk.js +0 -1
  256. package/build/email-translation-de-json.1b334230.chunk.js +0 -1
  257. package/build/email-translation-dk-json.85402492.chunk.js +0 -1
  258. package/build/email-translation-en-json.4211d4d0.chunk.js +0 -1
  259. package/build/email-translation-es-json.0b6b1006.chunk.js +0 -1
  260. package/build/email-translation-fr-json.78be2787.chunk.js +0 -1
  261. package/build/email-translation-id-json.c97239fe.chunk.js +0 -1
  262. package/build/email-translation-it-json.a2ed8c78.chunk.js +0 -1
  263. package/build/email-translation-ja-json.63eebd02.chunk.js +0 -1
  264. package/build/email-translation-ko-json.4de49b23.chunk.js +0 -1
  265. package/build/email-translation-ms-json.7390477e.chunk.js +0 -1
  266. package/build/email-translation-nl-json.377bdd9f.chunk.js +0 -1
  267. package/build/email-translation-pl-json.97d0db97.chunk.js +0 -1
  268. package/build/email-translation-pt-BR-json.81cca553.chunk.js +0 -1
  269. package/build/email-translation-pt-json.2a2a0643.chunk.js +0 -1
  270. package/build/email-translation-ru-json.6bce37dd.chunk.js +0 -1
  271. package/build/email-translation-sk-json.53da2fcd.chunk.js +0 -1
  272. package/build/email-translation-th-json.660fa9a8.chunk.js +0 -1
  273. package/build/email-translation-tr-json.e6c0f8fc.chunk.js +0 -1
  274. package/build/email-translation-uk-json.bd1fb6bf.chunk.js +0 -1
  275. package/build/email-translation-vi-json.9fb7e6d7.chunk.js +0 -1
  276. package/build/email-translation-zh-Hans-json.c6841563.chunk.js +0 -1
  277. package/build/email-translation-zh-json.7a2232ea.chunk.js +0 -1
  278. package/build/main.105dcf23.js +0 -2665
  279. package/build/review-workflows-settings-list-view.067e0c35.chunk.js +0 -56
  280. package/build/runtime~main.377a22d0.js +0 -2
  281. package/build/sso-settings-page.a29e6c38.chunk.js +0 -1
  282. package/build/transfer-tokens-list-page.0306652c.chunk.js +0 -16
  283. package/build/upload-settings.0af6edc5.chunk.js +0 -14
  284. package/dist/server/admin/server/src/bootstrap.d.ts +0 -2
  285. package/dist/server/admin/server/src/controllers/admin.d.ts +0 -42
  286. package/dist/server/admin/server/src/controllers/api-token.d.ts +0 -10
  287. package/dist/server/admin/server/src/controllers/authenticated-user.d.ts +0 -6
  288. package/dist/server/admin/server/src/controllers/authentication.d.ts +0 -12
  289. package/dist/server/admin/server/src/controllers/permission.d.ts +0 -13
  290. package/dist/server/admin/server/src/controllers/role.d.ts +0 -43
  291. package/dist/server/admin/server/src/controllers/transfer/token.d.ts +0 -9
  292. package/dist/server/admin/server/src/controllers/user.d.ts +0 -13
  293. package/dist/server/admin/server/src/destroy.d.ts +0 -2
  294. package/dist/server/admin/server/src/domain/condition/index.d.ts +0 -56
  295. package/dist/server/admin/server/src/domain/condition/index.js +0 -53
  296. package/dist/server/admin/server/src/domain/condition/index.js.map +0 -1
  297. package/dist/server/admin/server/src/domain/condition/provider.d.ts +0 -30
  298. package/dist/server/admin/server/src/domain/condition/provider.js +0 -37
  299. package/dist/server/admin/server/src/domain/condition/provider.js.map +0 -1
  300. package/dist/server/admin/server/src/index.d.ts +0 -10
  301. package/dist/server/admin/server/src/middlewares/data-transfer.d.ts +0 -2
  302. package/dist/server/admin/server/src/services/action.d.ts +0 -9
  303. package/dist/server/admin/server/src/services/auth.d.ts +0 -42
  304. package/dist/server/admin/server/src/services/condition.d.ts +0 -2
  305. package/dist/server/admin/server/src/services/content-type.d.ts +0 -51
  306. package/dist/server/admin/server/src/services/index.d.ts +0 -61
  307. package/dist/server/admin/server/src/services/metrics.d.ts +0 -7
  308. package/dist/server/admin/server/src/services/permission/engine.d.ts +0 -15
  309. package/dist/server/admin/server/src/services/permission/queries.d.ts +0 -44
  310. package/dist/server/admin/server/src/services/permission.d.ts +0 -67
  311. package/dist/server/admin/server/src/services/role.d.ts +0 -116
  312. package/dist/server/admin/server/src/services/transfer/token.d.ts +0 -103
  313. package/dist/server/admin/server/src/services/transfer/utils.d.ts +0 -19
  314. package/dist/server/admin/server/src/services/user.d.ts +0 -96
  315. package/dist/server/admin/server/src/strategies/admin.d.ts +0 -25
  316. package/dist/server/admin/server/src/strategies/api-token.d.ts +0 -60
  317. package/dist/server/admin/server/src/strategies/data-transfer.d.ts +0 -50
  318. package/dist/server/admin/server/src/validation/common-validators.d.ts +0 -59
  319. package/dist/server/admin/server/src/validation/permission.d.ts +0 -9
  320. package/dist/server/bootstrap.d.ts +0 -2
  321. package/dist/server/bootstrap.js +0 -84
  322. package/dist/server/bootstrap.js.map +0 -1
  323. package/dist/server/config/admin-actions.d.ts +0 -33
  324. package/dist/server/config/admin-actions.js +0 -219
  325. package/dist/server/config/admin-actions.js.map +0 -1
  326. package/dist/server/config/admin-conditions.d.ts +0 -46
  327. package/dist/server/config/admin-conditions.js +0 -29
  328. package/dist/server/config/admin-conditions.js.map +0 -1
  329. package/dist/server/config/email-templates/forgot-password.d.ts +0 -6
  330. package/dist/server/config/email-templates/forgot-password.js +0 -19
  331. package/dist/server/config/email-templates/forgot-password.js.map +0 -1
  332. package/dist/server/config/index.d.ts +0 -17
  333. package/dist/server/config/index.js +0 -14
  334. package/dist/server/config/index.js.map +0 -1
  335. package/dist/server/config/settings.d.ts +0 -7
  336. package/dist/server/config/settings.js +0 -11
  337. package/dist/server/config/settings.js.map +0 -1
  338. package/dist/server/content-types/Permission.d.ts +0 -62
  339. package/dist/server/content-types/Permission.js +0 -64
  340. package/dist/server/content-types/Permission.js.map +0 -1
  341. package/dist/server/content-types/Role.d.ts +0 -57
  342. package/dist/server/content-types/Role.js +0 -59
  343. package/dist/server/content-types/Role.js.map +0 -1
  344. package/dist/server/content-types/User.d.ts +0 -106
  345. package/dist/server/content-types/User.js +0 -109
  346. package/dist/server/content-types/User.js.map +0 -1
  347. package/dist/server/content-types/api-token-permission.d.ts +0 -35
  348. package/dist/server/content-types/api-token-permission.js +0 -37
  349. package/dist/server/content-types/api-token-permission.js.map +0 -1
  350. package/dist/server/content-types/api-token.d.ts +0 -73
  351. package/dist/server/content-types/api-token.js +0 -79
  352. package/dist/server/content-types/api-token.js.map +0 -1
  353. package/dist/server/content-types/index.d.ts +0 -437
  354. package/dist/server/content-types/index.js +0 -22
  355. package/dist/server/content-types/index.js.map +0 -1
  356. package/dist/server/content-types/transfer-token-permission.d.ts +0 -35
  357. package/dist/server/content-types/transfer-token-permission.js +0 -37
  358. package/dist/server/content-types/transfer-token-permission.js.map +0 -1
  359. package/dist/server/content-types/transfer-token.d.ts +0 -65
  360. package/dist/server/content-types/transfer-token.js +0 -67
  361. package/dist/server/content-types/transfer-token.js.map +0 -1
  362. package/dist/server/controllers/admin.d.ts +0 -42
  363. package/dist/server/controllers/admin.js +0 -131
  364. package/dist/server/controllers/admin.js.map +0 -1
  365. package/dist/server/controllers/api-token.d.ts +0 -10
  366. package/dist/server/controllers/api-token.js +0 -106
  367. package/dist/server/controllers/api-token.js.map +0 -1
  368. package/dist/server/controllers/authenticated-user.d.ts +0 -6
  369. package/dist/server/controllers/authenticated-user.js +0 -41
  370. package/dist/server/controllers/authenticated-user.js.map +0 -1
  371. package/dist/server/controllers/authentication.d.ts +0 -12
  372. package/dist/server/controllers/authentication.js +0 -130
  373. package/dist/server/controllers/authentication.js.map +0 -1
  374. package/dist/server/controllers/content-api.d.ts +0 -5
  375. package/dist/server/controllers/content-api.js +0 -13
  376. package/dist/server/controllers/content-api.js.map +0 -1
  377. package/dist/server/controllers/formatters/conditions.d.ts +0 -3
  378. package/dist/server/controllers/formatters/conditions.js +0 -9
  379. package/dist/server/controllers/formatters/conditions.js.map +0 -1
  380. package/dist/server/controllers/formatters/format-actions-by-sections.d.ts +0 -7
  381. package/dist/server/controllers/formatters/format-actions-by-sections.js +0 -36
  382. package/dist/server/controllers/formatters/format-actions-by-sections.js.map +0 -1
  383. package/dist/server/controllers/formatters/index.d.ts +0 -2
  384. package/dist/server/controllers/formatters/index.js +0 -11
  385. package/dist/server/controllers/formatters/index.js.map +0 -1
  386. package/dist/server/controllers/index.d.ts +0 -68
  387. package/dist/server/controllers/index.js +0 -51
  388. package/dist/server/controllers/index.js.map +0 -1
  389. package/dist/server/controllers/permission.d.ts +0 -13
  390. package/dist/server/controllers/permission.js +0 -38
  391. package/dist/server/controllers/permission.js.map +0 -1
  392. package/dist/server/controllers/role.d.ts +0 -43
  393. package/dist/server/controllers/role.js +0 -148
  394. package/dist/server/controllers/role.js.map +0 -1
  395. package/dist/server/controllers/transfer/index.d.ts +0 -4
  396. package/dist/server/controllers/transfer/index.js +0 -14
  397. package/dist/server/controllers/transfer/index.js.map +0 -1
  398. package/dist/server/controllers/transfer/runner.d.ts +0 -6
  399. package/dist/server/controllers/transfer/runner.js +0 -25
  400. package/dist/server/controllers/transfer/runner.js.map +0 -1
  401. package/dist/server/controllers/transfer/token.d.ts +0 -9
  402. package/dist/server/controllers/transfer/token.js +0 -100
  403. package/dist/server/controllers/transfer/token.js.map +0 -1
  404. package/dist/server/controllers/user.d.ts +0 -13
  405. package/dist/server/controllers/user.js +0 -105
  406. package/dist/server/controllers/user.js.map +0 -1
  407. package/dist/server/controllers/webhooks.d.ts +0 -10
  408. package/dist/server/controllers/webhooks.js +0 -100
  409. package/dist/server/controllers/webhooks.js.map +0 -1
  410. package/dist/server/destroy.d.ts +0 -2
  411. package/dist/server/destroy.js +0 -9
  412. package/dist/server/destroy.js.map +0 -1
  413. package/dist/server/domain/action/index.d.ts +0 -33
  414. package/dist/server/domain/action/index.js +0 -98
  415. package/dist/server/domain/action/index.js.map +0 -1
  416. package/dist/server/domain/action/provider.d.ts +0 -38
  417. package/dist/server/domain/action/provider.js +0 -66
  418. package/dist/server/domain/action/provider.js.map +0 -1
  419. package/dist/server/domain/condition/index.d.ts +0 -53
  420. package/dist/server/domain/condition/index.js +0 -56
  421. package/dist/server/domain/condition/index.js.map +0 -1
  422. package/dist/server/domain/condition/provider.d.ts +0 -30
  423. package/dist/server/domain/condition/provider.js +0 -37
  424. package/dist/server/domain/condition/provider.js.map +0 -1
  425. package/dist/server/domain/permission/index.d.ts +0 -77
  426. package/dist/server/domain/permission/index.js +0 -119
  427. package/dist/server/domain/permission/index.js.map +0 -1
  428. package/dist/server/domain/user.d.ts +0 -32
  429. package/dist/server/domain/user.js +0 -28
  430. package/dist/server/domain/user.js.map +0 -1
  431. package/dist/server/index.d.ts +0 -10
  432. package/dist/server/index.js +0 -27
  433. package/dist/server/index.js.map +0 -1
  434. package/dist/server/middlewares/data-transfer.d.ts +0 -2
  435. package/dist/server/middlewares/data-transfer.js +0 -21
  436. package/dist/server/middlewares/data-transfer.js.map +0 -1
  437. package/dist/server/middlewares/index.d.ts +0 -9
  438. package/dist/server/middlewares/index.js +0 -17
  439. package/dist/server/middlewares/index.js.map +0 -1
  440. package/dist/server/middlewares/rateLimit.d.ts +0 -5
  441. package/dist/server/middlewares/rateLimit.js +0 -42
  442. package/dist/server/middlewares/rateLimit.js.map +0 -1
  443. package/dist/server/policies/hasPermissions.d.ts +0 -6
  444. package/dist/server/policies/hasPermissions.js +0 -38
  445. package/dist/server/policies/hasPermissions.js.map +0 -1
  446. package/dist/server/policies/index.d.ts +0 -14
  447. package/dist/server/policies/index.js +0 -10
  448. package/dist/server/policies/index.js.map +0 -1
  449. package/dist/server/policies/isAuthenticatedAdmin.d.ts +0 -2
  450. package/dist/server/policies/isAuthenticatedAdmin.js +0 -6
  451. package/dist/server/policies/isAuthenticatedAdmin.js.map +0 -1
  452. package/dist/server/policies/isTelemetryEnabled.d.ts +0 -10
  453. package/dist/server/policies/isTelemetryEnabled.js +0 -18
  454. package/dist/server/policies/isTelemetryEnabled.js.map +0 -1
  455. package/dist/server/register.d.ts +0 -2
  456. package/dist/server/register.js +0 -18
  457. package/dist/server/register.js.map +0 -1
  458. package/dist/server/routes/admin.d.ts +0 -23
  459. package/dist/server/routes/admin.js +0 -72
  460. package/dist/server/routes/admin.js.map +0 -1
  461. package/dist/server/routes/api-tokens.d.ts +0 -14
  462. package/dist/server/routes/api-tokens.js +0 -71
  463. package/dist/server/routes/api-tokens.js.map +0 -1
  464. package/dist/server/routes/authentication.d.ts +0 -29
  465. package/dist/server/routes/authentication.js +0 -58
  466. package/dist/server/routes/authentication.js.map +0 -1
  467. package/dist/server/routes/content-api.d.ts +0 -9
  468. package/dist/server/routes/content-api.js +0 -21
  469. package/dist/server/routes/content-api.js.map +0 -1
  470. package/dist/server/routes/index.d.ts +0 -66
  471. package/dist/server/routes/index.js +0 -32
  472. package/dist/server/routes/index.js.map +0 -1
  473. package/dist/server/routes/permissions.d.ts +0 -9
  474. package/dist/server/routes/permissions.js +0 -21
  475. package/dist/server/routes/permissions.js.map +0 -1
  476. package/dist/server/routes/roles.d.ts +0 -14
  477. package/dist/server/routes/roles.js +0 -108
  478. package/dist/server/routes/roles.js.map +0 -1
  479. package/dist/server/routes/serve-admin-panel.d.ts +0 -5
  480. package/dist/server/routes/serve-admin-panel.js +0 -65
  481. package/dist/server/routes/serve-admin-panel.js.map +0 -1
  482. package/dist/server/routes/transfer.d.ts +0 -55
  483. package/dist/server/routes/transfer.js +0 -105
  484. package/dist/server/routes/transfer.js.map +0 -1
  485. package/dist/server/routes/users.d.ts +0 -14
  486. package/dist/server/routes/users.js +0 -89
  487. package/dist/server/routes/users.js.map +0 -1
  488. package/dist/server/routes/webhooks.d.ts +0 -14
  489. package/dist/server/routes/webhooks.js +0 -82
  490. package/dist/server/routes/webhooks.js.map +0 -1
  491. package/dist/server/services/action.d.ts +0 -9
  492. package/dist/server/services/action.js +0 -29
  493. package/dist/server/services/action.js.map +0 -1
  494. package/dist/server/services/api-token.d.ts +0 -102
  495. package/dist/server/services/api-token.js +0 -378
  496. package/dist/server/services/api-token.js.map +0 -1
  497. package/dist/server/services/auth.d.ts +0 -42
  498. package/dist/server/services/auth.js +0 -98
  499. package/dist/server/services/auth.js.map +0 -1
  500. package/dist/server/services/condition.d.ts +0 -2
  501. package/dist/server/services/condition.js +0 -11
  502. package/dist/server/services/condition.js.map +0 -1
  503. package/dist/server/services/constants.d.ts +0 -33
  504. package/dist/server/services/constants.js +0 -37
  505. package/dist/server/services/constants.js.map +0 -1
  506. package/dist/server/services/content-type.d.ts +0 -51
  507. package/dist/server/services/content-type.js +0 -158
  508. package/dist/server/services/content-type.js.map +0 -1
  509. package/dist/server/services/index.d.ts +0 -61
  510. package/dist/server/services/index.js +0 -57
  511. package/dist/server/services/index.js.map +0 -1
  512. package/dist/server/services/metrics.d.ts +0 -7
  513. package/dist/server/services/metrics.js +0 -37
  514. package/dist/server/services/metrics.js.map +0 -1
  515. package/dist/server/services/passport/local-strategy.d.ts +0 -3
  516. package/dist/server/services/passport/local-strategy.js +0 -28
  517. package/dist/server/services/passport/local-strategy.js.map +0 -1
  518. package/dist/server/services/passport.d.ts +0 -7
  519. package/dist/server/services/passport.js +0 -40
  520. package/dist/server/services/passport.js.map +0 -1
  521. package/dist/server/services/permission/engine.d.ts +0 -15
  522. package/dist/server/services/permission/engine.js +0 -67
  523. package/dist/server/services/permission/engine.js.map +0 -1
  524. package/dist/server/services/permission/permissions-manager/index.d.ts +0 -16
  525. package/dist/server/services/permission/permissions-manager/index.js +0 -48
  526. package/dist/server/services/permission/permissions-manager/index.js.map +0 -1
  527. package/dist/server/services/permission/permissions-manager/query-builders.d.ts +0 -3
  528. package/dist/server/services/permission/permissions-manager/query-builders.js +0 -66
  529. package/dist/server/services/permission/permissions-manager/query-builders.js.map +0 -1
  530. package/dist/server/services/permission/permissions-manager/sanitize.d.ts +0 -6
  531. package/dist/server/services/permission/permissions-manager/sanitize.js +0 -184
  532. package/dist/server/services/permission/permissions-manager/sanitize.js.map +0 -1
  533. package/dist/server/services/permission/permissions-manager/validate.d.ts +0 -5
  534. package/dist/server/services/permission/permissions-manager/validate.js +0 -134
  535. package/dist/server/services/permission/permissions-manager/validate.js.map +0 -1
  536. package/dist/server/services/permission/queries.d.ts +0 -44
  537. package/dist/server/services/permission/queries.js +0 -159
  538. package/dist/server/services/permission/queries.js.map +0 -1
  539. package/dist/server/services/permission/sections-builder/builder.d.ts +0 -39
  540. package/dist/server/services/permission/sections-builder/builder.js +0 -75
  541. package/dist/server/services/permission/sections-builder/builder.js.map +0 -1
  542. package/dist/server/services/permission/sections-builder/handlers.d.ts +0 -44
  543. package/dist/server/services/permission/sections-builder/handlers.js +0 -124
  544. package/dist/server/services/permission/sections-builder/handlers.js.map +0 -1
  545. package/dist/server/services/permission/sections-builder/index.d.ts +0 -8
  546. package/dist/server/services/permission/sections-builder/index.js +0 -39
  547. package/dist/server/services/permission/sections-builder/index.js.map +0 -1
  548. package/dist/server/services/permission/sections-builder/section.d.ts +0 -38
  549. package/dist/server/services/permission/sections-builder/section.js +0 -56
  550. package/dist/server/services/permission/sections-builder/section.js.map +0 -1
  551. package/dist/server/services/permission/sections-builder/utils.d.ts +0 -12
  552. package/dist/server/services/permission/sections-builder/utils.js +0 -23
  553. package/dist/server/services/permission/sections-builder/utils.js.map +0 -1
  554. package/dist/server/services/permission.d.ts +0 -67
  555. package/dist/server/services/permission.js +0 -33
  556. package/dist/server/services/permission.js.map +0 -1
  557. package/dist/server/services/project-settings.d.ts +0 -5
  558. package/dist/server/services/project-settings.js +0 -139
  559. package/dist/server/services/project-settings.js.map +0 -1
  560. package/dist/server/services/role.d.ts +0 -116
  561. package/dist/server/services/role.js +0 -382
  562. package/dist/server/services/role.js.map +0 -1
  563. package/dist/server/services/token.d.ts +0 -35
  564. package/dist/server/services/token.js +0 -58
  565. package/dist/server/services/token.js.map +0 -1
  566. package/dist/server/services/transfer/index.d.ts +0 -4
  567. package/dist/server/services/transfer/index.js +0 -33
  568. package/dist/server/services/transfer/index.js.map +0 -1
  569. package/dist/server/services/transfer/permission.d.ts +0 -6
  570. package/dist/server/services/transfer/permission.js +0 -20
  571. package/dist/server/services/transfer/permission.js.map +0 -1
  572. package/dist/server/services/transfer/token.d.ts +0 -84
  573. package/dist/server/services/transfer/token.js +0 -273
  574. package/dist/server/services/transfer/token.js.map +0 -1
  575. package/dist/server/services/transfer/utils.d.ts +0 -13
  576. package/dist/server/services/transfer/utils.js +0 -29
  577. package/dist/server/services/transfer/utils.js.map +0 -1
  578. package/dist/server/services/user.d.ts +0 -96
  579. package/dist/server/services/user.js +0 -311
  580. package/dist/server/services/user.js.map +0 -1
  581. package/dist/server/strategies/admin.d.ts +0 -25
  582. package/dist/server/strategies/admin.js +0 -44
  583. package/dist/server/strategies/admin.js.map +0 -1
  584. package/dist/server/strategies/api-token.d.ts +0 -60
  585. package/dist/server/strategies/api-token.js +0 -121
  586. package/dist/server/strategies/api-token.js.map +0 -1
  587. package/dist/server/strategies/data-transfer.d.ts +0 -66
  588. package/dist/server/strategies/data-transfer.js +0 -94
  589. package/dist/server/strategies/data-transfer.js.map +0 -1
  590. package/dist/server/strategies/index.d.ts +0 -17
  591. package/dist/server/strategies/index.js +0 -27
  592. package/dist/server/strategies/index.js.map +0 -1
  593. package/dist/server/types/src/types/utils/object.d.ts +0 -58
  594. package/dist/server/types/src/types/utils/object.js +0 -3
  595. package/dist/server/types/src/types/utils/object.js.map +0 -1
  596. package/dist/server/utils/index.d.ts +0 -1
  597. package/dist/server/utils/index.js +0 -9
  598. package/dist/server/utils/index.js.map +0 -1
  599. package/dist/server/utils/types.d.ts +0 -14
  600. package/dist/server/utils/types.js +0 -3
  601. package/dist/server/utils/types.js.map +0 -1
  602. package/dist/server/validation/action-provider.d.ts +0 -5
  603. package/dist/server/validation/action-provider.js +0 -58
  604. package/dist/server/validation/action-provider.js.map +0 -1
  605. package/dist/server/validation/api-tokens.d.ts +0 -7
  606. package/dist/server/validation/api-tokens.js +0 -36
  607. package/dist/server/validation/api-tokens.js.map +0 -1
  608. package/dist/server/validation/authentication/forgot-password.d.ts +0 -2
  609. package/dist/server/validation/authentication/forgot-password.js +0 -16
  610. package/dist/server/validation/authentication/forgot-password.js.map +0 -1
  611. package/dist/server/validation/authentication/index.d.ts +0 -5
  612. package/dist/server/validation/authentication/index.js +0 -17
  613. package/dist/server/validation/authentication/index.js.map +0 -1
  614. package/dist/server/validation/authentication/register.d.ts +0 -9
  615. package/dist/server/validation/authentication/register.js +0 -49
  616. package/dist/server/validation/authentication/register.js.map +0 -1
  617. package/dist/server/validation/authentication/renew-token.d.ts +0 -2
  618. package/dist/server/validation/authentication/renew-token.js +0 -6
  619. package/dist/server/validation/authentication/renew-token.js.map +0 -1
  620. package/dist/server/validation/authentication/reset-password.d.ts +0 -2
  621. package/dist/server/validation/authentication/reset-password.js +0 -17
  622. package/dist/server/validation/authentication/reset-password.js.map +0 -1
  623. package/dist/server/validation/common-functions/check-fields-are-correctly-nested.d.ts +0 -2
  624. package/dist/server/validation/common-functions/check-fields-are-correctly-nested.js +0 -26
  625. package/dist/server/validation/common-functions/check-fields-are-correctly-nested.js.map +0 -1
  626. package/dist/server/validation/common-functions/check-fields-dont-have-duplicates.d.ts +0 -2
  627. package/dist/server/validation/common-functions/check-fields-dont-have-duplicates.js +0 -18
  628. package/dist/server/validation/common-functions/check-fields-dont-have-duplicates.js.map +0 -1
  629. package/dist/server/validation/common-functions/index.d.ts +0 -3
  630. package/dist/server/validation/common-functions/index.js +0 -11
  631. package/dist/server/validation/common-functions/index.js.map +0 -1
  632. package/dist/server/validation/common-validators.d.ts +0 -59
  633. package/dist/server/validation/common-validators.js +0 -162
  634. package/dist/server/validation/common-validators.js.map +0 -1
  635. package/dist/server/validation/permission.d.ts +0 -9
  636. package/dist/server/validation/permission.js +0 -46
  637. package/dist/server/validation/permission.js.map +0 -1
  638. package/dist/server/validation/policies/hasPermissions.d.ts +0 -5
  639. package/dist/server/validation/policies/hasPermissions.js +0 -29
  640. package/dist/server/validation/policies/hasPermissions.js.map +0 -1
  641. package/dist/server/validation/project-settings.d.ts +0 -9
  642. package/dist/server/validation/project-settings.js +0 -44
  643. package/dist/server/validation/project-settings.js.map +0 -1
  644. package/dist/server/validation/role.d.ts +0 -11
  645. package/dist/server/validation/role.js +0 -62
  646. package/dist/server/validation/role.js.map +0 -1
  647. package/dist/server/validation/transfer/index.d.ts +0 -1
  648. package/dist/server/validation/transfer/index.js +0 -9
  649. package/dist/server/validation/transfer/index.js.map +0 -1
  650. package/dist/server/validation/transfer/token.d.ts +0 -7
  651. package/dist/server/validation/transfer/token.js +0 -46
  652. package/dist/server/validation/transfer/token.js.map +0 -1
  653. package/dist/server/validation/user.d.ts +0 -117
  654. package/dist/server/validation/user.js +0 -69
  655. package/dist/server/validation/user.js.map +0 -1
  656. /package/admin/src/hooks/{useAdminUsers/__mocks__/index.js → __mocks__/useAdminUsers.ts} +0 -0
  657. /package/admin/src/{hooks/useAdminRolePermissions/__mocks__/index.js → pages/SettingsPage/pages/Roles/hooks/__mocks__/useAdminRolePermissions.ts} +0 -0
@@ -1,4 +1,4 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[8853],{34254:function(ve,G,s){s.r(G),s.d(G,{default:function(){return Tt}});var e=s(32735),a=s(43806),T=s(53038),P=s(19108),k=s(95162),x=s(64092),O=s(91779),B=s(56932),E=s(84642),p=s(8365),b=s(10710),S=s(97037),K=s(2846),J=s(15367),w=s(40501),q=s(92802),M=s(67879),I=s(20108),ye=s(60216),y=s.n(ye);const _=(0,e.createContext)({}),ee=({children:t,value:n})=>e.createElement(_.Provider,{value:n},t),Q=()=>(0,e.useContext)(_);ee.propTypes={children:y().node.isRequired,value:y().object.isRequired};var N=s(48395),Re=s(9435),Ce=s(9379),Pe=s(79624),Se=s(23940),Te=s.n(Se);function Me(t){switch(t){case"application":return"Application";case"plugin::content-manager":return"Content manager";case"plugin::content-type-builder":return"Content types builder";case"plugin::documentation":return"Documentation";case"plugin::email":return"Email";case"plugin::i18n":return"i18n";case"plugin::upload":return"Upload";case"plugin::users-permissions":return"Users-permissions";default:return Te()(t.replace("api::","").replace("plugin::",""))}}var be=Me,Ae=(t,n)=>{const r=Object.keys(n).sort().map(o=>({name:o,isOpen:!1}));return{...t,collapses:r}},L=s(77981),Le=s(98978),te=s.n(Le),se=s(31014),ne=s(99320),De=s(19594),Ze=s(33795),F=s.n(Ze),U=s(8471);const ae=(0,U.iv)`
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[8853],{34254:function(ve,G,s){s.r(G),s.d(G,{default:function(){return Tt}});var e=s(32735),a=s(59407),T=s(53038),P=s(19108),k=s(95162),x=s(64092),O=s(91779),B=s(56932),E=s(84642),p=s(8365),b=s(10710),S=s(97037),K=s(2846),J=s(15367),w=s(40501),q=s(92802),M=s(67879),I=s(20108),ye=s(60216),y=s.n(ye);const _=(0,e.createContext)({}),ee=({children:t,value:n})=>e.createElement(_.Provider,{value:n},t),Q=()=>(0,e.useContext)(_);ee.propTypes={children:y().node.isRequired,value:y().object.isRequired};var N=s(48395),Re=s(9435),Ce=s(9379),Pe=s(79624),Se=s(23940),Te=s.n(Se);function Me(t){switch(t){case"application":return"Application";case"plugin::content-manager":return"Content manager";case"plugin::content-type-builder":return"Content types builder";case"plugin::documentation":return"Documentation";case"plugin::email":return"Email";case"plugin::i18n":return"i18n";case"plugin::upload":return"Upload";case"plugin::users-permissions":return"Users-permissions";default:return Te()(t.replace("api::","").replace("plugin::",""))}}var be=Me,Ae=(t,n)=>{const o=Object.keys(n).sort().map(r=>({name:r,isOpen:!1}));return{...t,collapses:o}},L=s(77981),Le=s(98978),te=s.n(Le),se=s(31014),ne=s(99320),De=s(19594),Ze=s(33795),F=s.n(Ze),U=s(8471);const ae=(0,U.iv)`
2
2
  background: ${t=>t.theme.colors.primary100};
3
3
  svg {
4
4
  opacity: 1;
@@ -24,10 +24,10 @@
24
24
  flex: 1;
25
25
  align-self: center;
26
26
  border-top: 1px solid ${({theme:t})=>t.colors.neutral150};
27
- `,re=({subCategory:t})=>{const{formatMessage:n}=(0,M.Z)(),{onChange:r,onChangeSelectAll:o,onSelectedAction:c,selectedAction:l,modifiedData:d}=Q(),u=(0,e.useMemo)(()=>F()(d,t.name,{}),[d,t]),m=(0,e.useMemo)(()=>Object.values(u).every(i=>i.enabled===!0),[u]),g=(0,e.useMemo)(()=>Object.values(u).some(i=>i.enabled===!0)&&!m,[u,m]),h=(0,e.useCallback)(({target:{name:i}})=>{o({target:{name:i,value:!m}})},[m,o]),f=(0,e.useCallback)(i=>l===i,[l]);return e.createElement(L.x,null,e.createElement(E.k,{justifyContent:"space-between",alignItems:"center"},e.createElement(L.x,{paddingRight:4},e.createElement(p.Z,{variant:"sigma",textColor:"neutral600"},t.label)),e.createElement(Oe,null),e.createElement(L.x,{paddingLeft:4},e.createElement(se.X,{name:t.name,value:m,onValueChange:i=>h({target:{name:t.name,value:i}}),indeterminate:g},n({id:"app.utils.select-all",defaultMessage:"Select all"})))),e.createElement(E.k,{paddingTop:6,paddingBottom:6},e.createElement(b.r,{gap:2,style:{flex:1}},t.actions.map(i=>{const v=`${i.name}.enabled`;return e.createElement(S.P,{col:6,key:i.name},e.createElement(xe,{isActive:f(i.name),padding:2,hasRadius:!0},e.createElement(se.X,{value:F()(d,v,!1),name:v,onValueChange:C=>r({target:{name:v,value:C}})},i.label),e.createElement("button",{type:"button",onClick:()=>c(i.name),style:{display:"inline-flex",alignItems:"center"}},e.createElement(ne.T,{as:"span"},n({id:"app.utils.show-bound-route",defaultMessage:"Show bound route for {route}"},{route:i.name})),e.createElement(De.Z,null))))}))))};re.propTypes={subCategory:y().object.isRequired};var Be=re;const oe=({name:t,permissions:n})=>{const r=(0,e.useMemo)(()=>te()(Object.values(n.controllers).reduce((o,c,l)=>{const d=`${t}.controllers.${Object.keys(n.controllers)[l]}`,u=te()(Object.keys(c).reduce((m,g)=>[...m,{...c[g],label:g,name:`${d}.${g}`}],[]),"label");return[...o,{actions:u,label:Object.keys(n.controllers)[l],name:d}]},[]),"label"),[t,n]);return e.createElement(L.x,{padding:6},r.map(o=>e.createElement(Be,{key:o.name,subCategory:o})))};oe.propTypes={name:y().string.isRequired,permissions:y().object.isRequired};var Ie=oe,le=s(97889);const Ne={collapses:[]},$e=(t,n)=>(0,le.ZP)(t,r=>{switch(n.type){case"TOGGLE_COLLAPSE":{r.collapses=t.collapses.map((o,c)=>c===n.index?{...o,isOpen:!o.isOpen}:{...o,isOpen:!1});break}default:return r}});var je=()=>{const{modifiedData:t}=Q(),{formatMessage:n}=(0,M.Z)(),[{collapses:r},o]=(0,e.useReducer)($e,Ne,l=>Ae(l,t)),c=l=>o({type:"TOGGLE_COLLAPSE",index:l});return e.createElement(E.k,{direction:"column",alignItems:"stretch",gap:1},r.map((l,d)=>e.createElement(Re.U,{expanded:l.isOpen,onToggle:()=>c(d),key:l.name,variant:d%2===0?"secondary":void 0},e.createElement(Ce.B,{title:be(l.name),description:n({id:"users-permissions.Plugin.permissions.plugins.description",defaultMessage:"Define all allowed actions for the {name} plugin."},{name:l.name}),variant:d%2?"primary":"secondary"}),e.createElement(Pe.v,null,e.createElement(Ie,{permissions:t[l.name],name:l.name})))))},ke=s(86834),Ue=s.n(ke),We=s(86205),Ge=s.n(We),Fe=s(37213),Ve=s.n(Fe),He=s(15738),Qe=s.n(He),Ye=t=>{switch(t){case"POST":return{text:"success600",border:"success200",background:"success100"};case"GET":return{text:"secondary600",border:"secondary200",background:"secondary100"};case"PUT":return{text:"warning600",border:"warning200",background:"warning100"};case"DELETE":return{text:"danger600",border:"danger200",background:"danger100"};default:return{text:"neutral600",border:"neutral200",background:"neutral100"}}};const Xe=(0,U.ZP)(L.x)`
27
+ `,oe=({subCategory:t})=>{const{formatMessage:n}=(0,M.Z)(),{onChange:o,onChangeSelectAll:r,onSelectedAction:c,selectedAction:l,modifiedData:d}=Q(),u=(0,e.useMemo)(()=>F()(d,t.name,{}),[d,t]),m=(0,e.useMemo)(()=>Object.values(u).every(i=>i.enabled===!0),[u]),g=(0,e.useMemo)(()=>Object.values(u).some(i=>i.enabled===!0)&&!m,[u,m]),h=(0,e.useCallback)(({target:{name:i}})=>{r({target:{name:i,value:!m}})},[m,r]),f=(0,e.useCallback)(i=>l===i,[l]);return e.createElement(L.x,null,e.createElement(E.k,{justifyContent:"space-between",alignItems:"center"},e.createElement(L.x,{paddingRight:4},e.createElement(p.Z,{variant:"sigma",textColor:"neutral600"},t.label)),e.createElement(Oe,null),e.createElement(L.x,{paddingLeft:4},e.createElement(se.X,{name:t.name,value:m,onValueChange:i=>h({target:{name:t.name,value:i}}),indeterminate:g},n({id:"app.utils.select-all",defaultMessage:"Select all"})))),e.createElement(E.k,{paddingTop:6,paddingBottom:6},e.createElement(b.r,{gap:2,style:{flex:1}},t.actions.map(i=>{const v=`${i.name}.enabled`;return e.createElement(S.P,{col:6,key:i.name},e.createElement(xe,{isActive:f(i.name),padding:2,hasRadius:!0},e.createElement(se.X,{value:F()(d,v,!1),name:v,onValueChange:C=>o({target:{name:v,value:C}})},i.label),e.createElement("button",{type:"button",onClick:()=>c(i.name),style:{display:"inline-flex",alignItems:"center"}},e.createElement(ne.T,{as:"span"},n({id:"app.utils.show-bound-route",defaultMessage:"Show bound route for {route}"},{route:i.name})),e.createElement(De.Z,null))))}))))};oe.propTypes={subCategory:y().object.isRequired};var Be=oe;const re=({name:t,permissions:n})=>{const o=(0,e.useMemo)(()=>te()(Object.values(n.controllers).reduce((r,c,l)=>{const d=`${t}.controllers.${Object.keys(n.controllers)[l]}`,u=te()(Object.keys(c).reduce((m,g)=>[...m,{...c[g],label:g,name:`${d}.${g}`}],[]),"label");return[...r,{actions:u,label:Object.keys(n.controllers)[l],name:d}]},[]),"label"),[t,n]);return e.createElement(L.x,{padding:6},o.map(r=>e.createElement(Be,{key:r.name,subCategory:r})))};re.propTypes={name:y().string.isRequired,permissions:y().object.isRequired};var Ie=re,le=s(97889);const Ne={collapses:[]},$e=(t,n)=>(0,le.ZP)(t,o=>{switch(n.type){case"TOGGLE_COLLAPSE":{o.collapses=t.collapses.map((r,c)=>c===n.index?{...r,isOpen:!r.isOpen}:{...r,isOpen:!1});break}default:return o}});var je=()=>{const{modifiedData:t}=Q(),{formatMessage:n}=(0,M.Z)(),[{collapses:o},r]=(0,e.useReducer)($e,Ne,l=>Ae(l,t)),c=l=>r({type:"TOGGLE_COLLAPSE",index:l});return e.createElement(E.k,{direction:"column",alignItems:"stretch",gap:1},o.map((l,d)=>e.createElement(Re.U,{expanded:l.isOpen,onToggle:()=>c(d),key:l.name,variant:d%2===0?"secondary":void 0},e.createElement(Ce.B,{title:be(l.name),description:n({id:"users-permissions.Plugin.permissions.plugins.description",defaultMessage:"Define all allowed actions for the {name} plugin."},{name:l.name}),variant:d%2?"primary":"secondary"}),e.createElement(Pe.v,null,e.createElement(Ie,{permissions:t[l.name],name:l.name})))))},ke=s(86834),Ue=s.n(ke),We=s(86205),Ge=s.n(We),Fe=s(37213),Ve=s.n(Fe),He=s(15738),Qe=s.n(He),Ye=t=>{switch(t){case"POST":return{text:"success600",border:"success200",background:"success100"};case"GET":return{text:"secondary600",border:"secondary200",background:"secondary100"};case"PUT":return{text:"warning600",border:"warning200",background:"warning100"};case"DELETE":return{text:"danger600",border:"danger200",background:"danger100"};default:return{text:"neutral600",border:"neutral200",background:"neutral100"}}};const Xe=(0,U.ZP)(L.x)`
28
28
  margin: -1px;
29
29
  border-radius: ${({theme:t})=>t.spaces[1]} 0 0 ${({theme:t})=>t.spaces[1]};
30
- `;function Y({route:t}){const{formatMessage:n}=(0,M.Z)(),{method:r,handler:o,path:c}=t,l=c?Qe()(c.split("/")):[],[d="",u=""]=o?o.split("."):[],m=Ye(t.method);return e.createElement(E.k,{direction:"column",alignItems:"stretch",gap:2},e.createElement(p.Z,{variant:"delta",as:"h3"},n({id:"users-permissions.BoundRoute.title",defaultMessage:"Bound route to"}),"\xA0",e.createElement("span",null,d),e.createElement(p.Z,{variant:"delta",textColor:"primary600"},".",u)),e.createElement(E.k,{hasRadius:!0,background:"neutral0",borderColor:"neutral200",gap:0},e.createElement(Xe,{background:m.background,borderColor:m.border,padding:2},e.createElement(p.Z,{fontWeight:"bold",textColor:m.text},r)),e.createElement(L.x,{paddingLeft:2,paddingRight:2},Ve()(l,g=>e.createElement(p.Z,{key:g,textColor:g.includes(":")?"neutral600":"neutral900"},"/",g)))))}Y.defaultProps={route:{handler:"Nocontroller.error",method:"GET",path:"/there-is-no-path"}},Y.propTypes={route:y().shape({handler:y().string,method:y().string,path:y().string})};var ze=Y,Ke=()=>{const{formatMessage:t}=(0,M.Z)(),{selectedAction:n,routes:r}=Q(),o=Ge()(n.split("."),"controllers"),c=F()(r,o[0]),l=o.slice(1).join("."),d=Ue()(c)?[]:c.filter(u=>u.handler.endsWith(l));return e.createElement(S.P,{col:5,background:"neutral150",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7,style:{minHeight:"100%"}},n?e.createElement(E.k,{direction:"column",alignItems:"stretch",gap:2},d.map((u,m)=>e.createElement(ze,{key:m,route:u}))):e.createElement(E.k,{direction:"column",alignItems:"stretch",gap:2},e.createElement(p.Z,{variant:"delta",as:"h3"},t({id:"users-permissions.Policies.header.title",defaultMessage:"Advanced settings"})),e.createElement(p.Z,{as:"p",textColor:"neutral600"},t({id:"users-permissions.Policies.header.hint",defaultMessage:"Select the application's actions or the plugin's actions and click on the cog icon to display the bound route"}))))},Je=(t,n,r)=>({...t,initialData:n,modifiedData:n,routes:r}),we=s(3040),ie=s.n(we),qe=s(88708),_e=s.n(qe);const et={initialData:{},modifiedData:{},routes:{},selectedAction:"",policies:[]};var tt=(t,n)=>(0,le.ZP)(t,r=>{switch(n.type){case"ON_CHANGE":{const o=n.keys.length,c=n.keys[o-1]==="enabled";if(n.value&&c){const l=_e()(n.keys,o-1).join(".");r.selectedAction=l}ie()(r,["modifiedData",...n.keys],n.value);break}case"ON_CHANGE_SELECT_ALL":{const o=["modifiedData",...n.keys],c=F()(t,o,{}),l=Object.keys(c).reduce((d,u)=>(d[u]={...c[u],enabled:n.value},d),{});ie()(r,o,l);break}case"ON_RESET":{r.modifiedData=t.initialData;break}case"ON_SUBMIT_SUCCEEDED":{r.initialData=t.modifiedData;break}case"SELECT_ACTION":{const{actionToSelect:o}=n;r.selectedAction=o===t.selectedAction?"":o;break}default:return r}});const ce=(0,e.forwardRef)(({permissions:t,routes:n},r)=>{const{formatMessage:o}=(0,M.Z)(),[c,l]=(0,e.useReducer)(tt,et,h=>Je(h,t,n));(0,e.useImperativeHandle)(r,()=>({getPermissions(){return{permissions:c.modifiedData}},resetForm(){l({type:"ON_RESET"})},setFormAfterSubmit(){l({type:"ON_SUBMIT_SUCCEEDED"})}}));const g={...c,onChange:({target:{name:h,value:f}})=>l({type:"ON_CHANGE",keys:h.split("."),value:f==="empty__string_value"?"":f}),onChangeSelectAll:({target:{name:h,value:f}})=>l({type:"ON_CHANGE_SELECT_ALL",keys:h.split("."),value:f}),onSelectedAction:h=>l({type:"SELECT_ACTION",actionToSelect:h})};return e.createElement(ee,{value:g},e.createElement(b.r,{gap:0,shadow:"filterShadow",hasRadius:!0,background:"neutral0"},e.createElement(S.P,{col:7,paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},e.createElement(E.k,{direction:"column",alignItems:"stretch",gap:6},e.createElement(E.k,{direction:"column",alignItems:"stretch",gap:2},e.createElement(p.Z,{variant:"delta",as:"h2"},o({id:(0,N.Z)("Plugins.header.title"),defaultMessage:"Permissions"})),e.createElement(p.Z,{as:"p",textColor:"neutral600"},o({id:(0,N.Z)("Plugins.header.description"),defaultMessage:"Only actions bound by a route are listed below."}))),e.createElement(je,null))),e.createElement(Ke,null)))});ce.propTypes={permissions:y().object.isRequired,routes:y().object.isRequired};var de=(0,e.memo)(ce),X=s(24346);const me=X.Ry().shape({name:X.Z_().required(a.I0.required),description:X.Z_().required(a.I0.required)});var W=s(55733);const ue=()=>{const t=(0,a.lm)(),{get:n}=(0,a.kY)(),{formatAPIError:r}=(0,a.So)(W.OB),[{data:o,isLoading:c,error:l,refetch:d},{data:u,isLoading:m,error:g,refetch:h}]=(0,I.useQueries)([{queryKey:["users-permissions","permissions"],async queryFn(){const{data:{permissions:v}}=await n("/users-permissions/permissions");return v}},{queryKey:["users-permissions","routes"],async queryFn(){const{data:{routes:v}}=await n("/users-permissions/routes");return v}}]),f=async()=>{await Promise.all([d(),h()])};(0,e.useEffect)(()=>{l&&t({type:"warning",message:r(l)})},[t,l,r]),(0,e.useEffect)(()=>{g&&t({type:"warning",message:r(g)})},[t,g,r]);const i=c||m;return{permissions:o?(0,W.YX)(o):{},routes:u??{},getData:f,isLoading:i}},st=()=>{const{formatMessage:t}=(0,M.Z)(),n=(0,a.lm)(),{goBack:r}=(0,T.k6)(),{lockApp:o,unlockApp:c}=(0,a.o1)(),{isLoading:l,permissions:d,routes:u}=ue(),{trackUsage:m}=(0,a.rS)(),g=e.useRef(),{post:h}=(0,a.kY)(),f=(0,I.useMutation)(v=>h("/users-permissions/roles",v),{onError(){n({type:"warning",message:{id:"notification.error",defaultMessage:"An error occurred"}})},onSuccess(){m("didCreateRole"),n({type:"success",message:{id:(0,N.Z)("Settings.roles.created"),defaultMessage:"Role created"}}),r()}}),i=async v=>{o();const C=g.current.getPermissions();await f.mutate({...v,...C,users:[]}),c()};return e.createElement(k.o,null,e.createElement(a.SL,{name:"Roles"}),e.createElement(q.J9,{enableReinitialize:!0,initialValues:{name:"",description:""},onSubmit:i,validationSchema:me},({handleSubmit:v,values:C,handleChange:$,errors:R})=>e.createElement(a.l0,{noValidate:!0,onSubmit:v},e.createElement(x.T,{primaryAction:!l&&e.createElement(O.z,{type:"submit",loading:f.isLoading,startIcon:e.createElement(w.Z,null)},t({id:"global.save",defaultMessage:"Save"})),title:t({id:"Settings.roles.create.title",defaultMessage:"Create a role"}),subtitle:t({id:"Settings.roles.create.description",defaultMessage:"Define the rights given to the role"})}),e.createElement(B.D,null,e.createElement(E.k,{background:"neutral0",direction:"column",alignItems:"stretch",gap:7,hasRadius:!0,paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7,shadow:"filterShadow"},e.createElement(E.k,{direction:"column",alignItems:"stretch"},e.createElement(p.Z,{variant:"delta",as:"h2"},t({id:(0,N.Z)("EditPage.form.roles"),defaultMessage:"Role details"})),e.createElement(b.r,{gap:4},e.createElement(S.P,{col:6},e.createElement(K.o,{name:"name",value:C.name||"",onChange:$,label:t({id:"global.name",defaultMessage:"Name"}),error:R?.name?t({id:R.name,defaultMessage:"Name is required"}):!1,required:!0})),e.createElement(S.P,{col:6},e.createElement(J.g,{id:"description",value:C.description||"",onChange:$,label:t({id:"global.description",defaultMessage:"Description"}),error:R?.description?t({id:R.description,defaultMessage:"Description is required"}):!1,required:!0})))),!l&&e.createElement(de,{ref:g,permissions:d,routes:u}))))))},nt=()=>e.createElement(a.O4,{permissions:P._.createRole},e.createElement(st,null));var at=s(70788);const rt=()=>{const{formatMessage:t}=(0,M.Z)(),n=(0,a.lm)(),{lockApp:r,unlockApp:o}=(0,a.o1)(),{params:{id:c}}=(0,T.$B)("/settings/users-permissions/roles/:id"),{get:l}=(0,a.kY)(),{isLoading:d,routes:u}=ue(),{data:m,isLoading:g,refetch:h}=(0,I.useQuery)(["users-permissions","role",c],async()=>{const{data:{role:R}}=await l(`/users-permissions/roles/${c}`);return R}),f=e.useRef(),{put:i}=(0,a.kY)(),{formatAPIError:v}=(0,a.So)(),C=(0,I.useMutation)(R=>i(`/users-permissions/roles/${c}`,R),{onError(R){n({type:"warning",message:v(R)})},async onSuccess(){n({type:"success",message:{id:(0,N.Z)("Settings.roles.created"),defaultMessage:"Role edited"}}),await h()}}),$=async R=>{r();const D=f.current.getPermissions();await C.mutate({...R,...D,users:[]}),o()};return g?e.createElement(a.dO,null):e.createElement(k.o,null,e.createElement(a.SL,{name:"Roles"}),e.createElement(q.J9,{enableReinitialize:!0,initialValues:{name:m.name,description:m.description},onSubmit:$,validationSchema:me},({handleSubmit:R,values:D,handleChange:V,errors:j})=>e.createElement(a.l0,{noValidate:!0,onSubmit:R},e.createElement(x.T,{primaryAction:!d&&e.createElement(O.z,{disabled:m.code==="strapi-super-admin",type:"submit",loading:C.isLoading,startIcon:e.createElement(w.Z,null)},t({id:"global.save",defaultMessage:"Save"})),title:m.name,subtitle:m.description,navigationAction:e.createElement(a.rU,{startIcon:e.createElement(at.Z,null),to:"/settings/users-permissions/roles"},t({id:"global.back",defaultMessage:"Back"}))}),e.createElement(B.D,null,e.createElement(E.k,{background:"neutral0",direction:"column",alignItems:"stretch",gap:7,hasRadius:!0,paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7,shadow:"filterShadow"},e.createElement(E.k,{direction:"column",alignItems:"stretch",gap:4},e.createElement(p.Z,{variant:"delta",as:"h2"},t({id:(0,N.Z)("EditPage.form.roles"),defaultMessage:"Role details"})),e.createElement(b.r,{gap:4},e.createElement(S.P,{col:6},e.createElement(K.o,{name:"name",value:D.name||"",onChange:V,label:t({id:"global.name",defaultMessage:"Name"}),error:j?.name?t({id:j.name,defaultMessage:"Name is required"}):!1,required:!0})),e.createElement(S.P,{col:6},e.createElement(J.g,{id:"description",value:D.description||"",onChange:V,label:t({id:"global.description",defaultMessage:"Description"}),error:j?.description?t({id:j.description,defaultMessage:"Description is required"}):!1,required:!0})))),!d&&e.createElement(de,{ref:f,permissions:m.permissions,routes:u}))))))},ot=()=>e.createElement(a.O4,{permissions:P._.updateRole},e.createElement(rt,null));var lt=s(36150),it=s(99226),ct=s(95181),dt=s(23699),mt=s(41013),ge=s(45037),A=s(27947),ut=s(82064),gt=s(84458),pt=s(1690),ht=s(14763),Et=s(63318),ft=s(94997);const vt=(0,U.ZP)(gt.r)`
30
+ `;function Y({route:t}){const{formatMessage:n}=(0,M.Z)(),{method:o,handler:r,path:c}=t,l=c?Qe()(c.split("/")):[],[d="",u=""]=r?r.split("."):[],m=Ye(t.method);return e.createElement(E.k,{direction:"column",alignItems:"stretch",gap:2},e.createElement(p.Z,{variant:"delta",as:"h3"},n({id:"users-permissions.BoundRoute.title",defaultMessage:"Bound route to"}),"\xA0",e.createElement("span",null,d),e.createElement(p.Z,{variant:"delta",textColor:"primary600"},".",u)),e.createElement(E.k,{hasRadius:!0,background:"neutral0",borderColor:"neutral200",gap:0},e.createElement(Xe,{background:m.background,borderColor:m.border,padding:2},e.createElement(p.Z,{fontWeight:"bold",textColor:m.text},o)),e.createElement(L.x,{paddingLeft:2,paddingRight:2},Ve()(l,g=>e.createElement(p.Z,{key:g,textColor:g.includes(":")?"neutral600":"neutral900"},"/",g)))))}Y.defaultProps={route:{handler:"Nocontroller.error",method:"GET",path:"/there-is-no-path"}},Y.propTypes={route:y().shape({handler:y().string,method:y().string,path:y().string})};var ze=Y,Ke=()=>{const{formatMessage:t}=(0,M.Z)(),{selectedAction:n,routes:o}=Q(),r=Ge()(n.split("."),"controllers"),c=F()(o,r[0]),l=r.slice(1).join("."),d=Ue()(c)?[]:c.filter(u=>u.handler.endsWith(l));return e.createElement(S.P,{col:5,background:"neutral150",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7,style:{minHeight:"100%"}},n?e.createElement(E.k,{direction:"column",alignItems:"stretch",gap:2},d.map((u,m)=>e.createElement(ze,{key:m,route:u}))):e.createElement(E.k,{direction:"column",alignItems:"stretch",gap:2},e.createElement(p.Z,{variant:"delta",as:"h3"},t({id:"users-permissions.Policies.header.title",defaultMessage:"Advanced settings"})),e.createElement(p.Z,{as:"p",textColor:"neutral600"},t({id:"users-permissions.Policies.header.hint",defaultMessage:"Select the application's actions or the plugin's actions and click on the cog icon to display the bound route"}))))},Je=(t,n,o)=>({...t,initialData:n,modifiedData:n,routes:o}),we=s(3040),ie=s.n(we),qe=s(88708),_e=s.n(qe);const et={initialData:{},modifiedData:{},routes:{},selectedAction:"",policies:[]};var tt=(t,n)=>(0,le.ZP)(t,o=>{switch(n.type){case"ON_CHANGE":{const r=n.keys.length,c=n.keys[r-1]==="enabled";if(n.value&&c){const l=_e()(n.keys,r-1).join(".");o.selectedAction=l}ie()(o,["modifiedData",...n.keys],n.value);break}case"ON_CHANGE_SELECT_ALL":{const r=["modifiedData",...n.keys],c=F()(t,r,{}),l=Object.keys(c).reduce((d,u)=>(d[u]={...c[u],enabled:n.value},d),{});ie()(o,r,l);break}case"ON_RESET":{o.modifiedData=t.initialData;break}case"ON_SUBMIT_SUCCEEDED":{o.initialData=t.modifiedData;break}case"SELECT_ACTION":{const{actionToSelect:r}=n;o.selectedAction=r===t.selectedAction?"":r;break}default:return o}});const ce=(0,e.forwardRef)(({permissions:t,routes:n},o)=>{const{formatMessage:r}=(0,M.Z)(),[c,l]=(0,e.useReducer)(tt,et,h=>Je(h,t,n));(0,e.useImperativeHandle)(o,()=>({getPermissions(){return{permissions:c.modifiedData}},resetForm(){l({type:"ON_RESET"})},setFormAfterSubmit(){l({type:"ON_SUBMIT_SUCCEEDED"})}}));const g={...c,onChange:({target:{name:h,value:f}})=>l({type:"ON_CHANGE",keys:h.split("."),value:f==="empty__string_value"?"":f}),onChangeSelectAll:({target:{name:h,value:f}})=>l({type:"ON_CHANGE_SELECT_ALL",keys:h.split("."),value:f}),onSelectedAction:h=>l({type:"SELECT_ACTION",actionToSelect:h})};return e.createElement(ee,{value:g},e.createElement(b.r,{gap:0,shadow:"filterShadow",hasRadius:!0,background:"neutral0"},e.createElement(S.P,{col:7,paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},e.createElement(E.k,{direction:"column",alignItems:"stretch",gap:6},e.createElement(E.k,{direction:"column",alignItems:"stretch",gap:2},e.createElement(p.Z,{variant:"delta",as:"h2"},r({id:(0,N.Z)("Plugins.header.title"),defaultMessage:"Permissions"})),e.createElement(p.Z,{as:"p",textColor:"neutral600"},r({id:(0,N.Z)("Plugins.header.description"),defaultMessage:"Only actions bound by a route are listed below."}))),e.createElement(je,null))),e.createElement(Ke,null)))});ce.propTypes={permissions:y().object.isRequired,routes:y().object.isRequired};var de=(0,e.memo)(ce),X=s(24346);const me=X.Ry().shape({name:X.Z_().required(a.I0.required),description:X.Z_().required(a.I0.required)});var W=s(55733);const ue=()=>{const t=(0,a.lm)(),{get:n}=(0,a.kY)(),{formatAPIError:o}=(0,a.So)(W.OB),[{data:r,isLoading:c,error:l,refetch:d},{data:u,isLoading:m,error:g,refetch:h}]=(0,I.useQueries)([{queryKey:["users-permissions","permissions"],async queryFn(){const{data:{permissions:v}}=await n("/users-permissions/permissions");return v}},{queryKey:["users-permissions","routes"],async queryFn(){const{data:{routes:v}}=await n("/users-permissions/routes");return v}}]),f=async()=>{await Promise.all([d(),h()])};(0,e.useEffect)(()=>{l&&t({type:"warning",message:o(l)})},[t,l,o]),(0,e.useEffect)(()=>{g&&t({type:"warning",message:o(g)})},[t,g,o]);const i=c||m;return{permissions:r?(0,W.YX)(r):{},routes:u??{},getData:f,isLoading:i}},st=()=>{const{formatMessage:t}=(0,M.Z)(),n=(0,a.lm)(),{goBack:o}=(0,T.k6)(),{lockApp:r,unlockApp:c}=(0,a.o1)(),{isLoading:l,permissions:d,routes:u}=ue(),{trackUsage:m}=(0,a.rS)(),g=e.useRef(),{post:h}=(0,a.kY)(),f=(0,I.useMutation)(v=>h("/users-permissions/roles",v),{onError(){n({type:"warning",message:{id:"notification.error",defaultMessage:"An error occurred"}})},onSuccess(){m("didCreateRole"),n({type:"success",message:{id:(0,N.Z)("Settings.roles.created"),defaultMessage:"Role created"}}),o()}}),i=async v=>{r();const C=g.current.getPermissions();await f.mutate({...v,...C,users:[]}),c()};return e.createElement(k.o,null,e.createElement(a.SL,{name:"Roles"}),e.createElement(q.J9,{enableReinitialize:!0,initialValues:{name:"",description:""},onSubmit:i,validationSchema:me},({handleSubmit:v,values:C,handleChange:$,errors:R})=>e.createElement(a.l0,{noValidate:!0,onSubmit:v},e.createElement(x.T,{primaryAction:!l&&e.createElement(O.z,{type:"submit",loading:f.isLoading,startIcon:e.createElement(w.Z,null)},t({id:"global.save",defaultMessage:"Save"})),title:t({id:"Settings.roles.create.title",defaultMessage:"Create a role"}),subtitle:t({id:"Settings.roles.create.description",defaultMessage:"Define the rights given to the role"})}),e.createElement(B.D,null,e.createElement(E.k,{background:"neutral0",direction:"column",alignItems:"stretch",gap:7,hasRadius:!0,paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7,shadow:"filterShadow"},e.createElement(E.k,{direction:"column",alignItems:"stretch"},e.createElement(p.Z,{variant:"delta",as:"h2"},t({id:(0,N.Z)("EditPage.form.roles"),defaultMessage:"Role details"})),e.createElement(b.r,{gap:4},e.createElement(S.P,{col:6},e.createElement(K.o,{name:"name",value:C.name||"",onChange:$,label:t({id:"global.name",defaultMessage:"Name"}),error:R?.name?t({id:R.name,defaultMessage:"Name is required"}):!1,required:!0})),e.createElement(S.P,{col:6},e.createElement(J.g,{id:"description",value:C.description||"",onChange:$,label:t({id:"global.description",defaultMessage:"Description"}),error:R?.description?t({id:R.description,defaultMessage:"Description is required"}):!1,required:!0})))),!l&&e.createElement(de,{ref:g,permissions:d,routes:u}))))))},nt=()=>e.createElement(a.O4,{permissions:P._.createRole},e.createElement(st,null));var at=s(70788);const ot=()=>{const{formatMessage:t}=(0,M.Z)(),n=(0,a.lm)(),{lockApp:o,unlockApp:r}=(0,a.o1)(),{params:{id:c}}=(0,T.$B)("/settings/users-permissions/roles/:id"),{get:l}=(0,a.kY)(),{isLoading:d,routes:u}=ue(),{data:m,isLoading:g,refetch:h}=(0,I.useQuery)(["users-permissions","role",c],async()=>{const{data:{role:R}}=await l(`/users-permissions/roles/${c}`);return R}),f=e.useRef(),{put:i}=(0,a.kY)(),{formatAPIError:v}=(0,a.So)(),C=(0,I.useMutation)(R=>i(`/users-permissions/roles/${c}`,R),{onError(R){n({type:"warning",message:v(R)})},async onSuccess(){n({type:"success",message:{id:(0,N.Z)("Settings.roles.created"),defaultMessage:"Role edited"}}),await h()}}),$=async R=>{o();const D=f.current.getPermissions();await C.mutate({...R,...D,users:[]}),r()};return g?e.createElement(a.dO,null):e.createElement(k.o,null,e.createElement(a.SL,{name:"Roles"}),e.createElement(q.J9,{enableReinitialize:!0,initialValues:{name:m.name,description:m.description},onSubmit:$,validationSchema:me},({handleSubmit:R,values:D,handleChange:V,errors:j})=>e.createElement(a.l0,{noValidate:!0,onSubmit:R},e.createElement(x.T,{primaryAction:!d&&e.createElement(O.z,{disabled:m.code==="strapi-super-admin",type:"submit",loading:C.isLoading,startIcon:e.createElement(w.Z,null)},t({id:"global.save",defaultMessage:"Save"})),title:m.name,subtitle:m.description,navigationAction:e.createElement(a.rU,{startIcon:e.createElement(at.Z,null),to:"/settings/users-permissions/roles"},t({id:"global.back",defaultMessage:"Back"}))}),e.createElement(B.D,null,e.createElement(E.k,{background:"neutral0",direction:"column",alignItems:"stretch",gap:7,hasRadius:!0,paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7,shadow:"filterShadow"},e.createElement(E.k,{direction:"column",alignItems:"stretch",gap:4},e.createElement(p.Z,{variant:"delta",as:"h2"},t({id:(0,N.Z)("EditPage.form.roles"),defaultMessage:"Role details"})),e.createElement(b.r,{gap:4},e.createElement(S.P,{col:6},e.createElement(K.o,{name:"name",value:D.name||"",onChange:V,label:t({id:"global.name",defaultMessage:"Name"}),error:j?.name?t({id:j.name,defaultMessage:"Name is required"}):!1,required:!0})),e.createElement(S.P,{col:6},e.createElement(J.g,{id:"description",value:D.description||"",onChange:V,label:t({id:"global.description",defaultMessage:"Description"}),error:j?.description?t({id:j.description,defaultMessage:"Description is required"}):!1,required:!0})))),!d&&e.createElement(de,{ref:f,permissions:m.permissions,routes:u}))))))},rt=()=>e.createElement(a.O4,{permissions:P._.updateRole},e.createElement(ot,null));var lt=s(36150),it=s(99226),ct=s(95181),dt=s(23699),mt=s(41013),ge=s(45037),A=s(27947),ut=s(82064),gt=s(84458),pt=s(1690),ht=s(14763),Et=s(63318),ft=s(94997);const vt=(0,U.ZP)(gt.r)`
31
31
  align-items: center;
32
32
  height: ${(0,a.Q1)(32)};
33
33
  display: flex;
@@ -52,4 +52,4 @@
52
52
  }
53
53
  }
54
54
  }
55
- `,z=({sortedRoles:t,canDelete:n,permissions:r,setRoleToDelete:o,onDelete:c})=>{const{formatMessage:l}=(0,M.Z)(),{push:d}=(0,T.k6)(),[u,m]=c,g=i=>n&&!["public","authenticated"].includes(i.type),h=i=>{o(i),m(!u)},f=i=>{d(`/settings/users-permissions/roles/${i}`)};return e.createElement(pt.p,null,t?.map(i=>e.createElement(ge.Tr,{key:i.name,...(0,a.X7)({fn:()=>f(i.id)})},e.createElement(A.Td,{width:"20%"},e.createElement(p.Z,null,i.name)),e.createElement(A.Td,{width:"50%"},e.createElement(p.Z,null,i.description)),e.createElement(A.Td,{width:"30%"},e.createElement(p.Z,null,l({id:"Roles.RoleRow.user-count",defaultMessage:"{number, plural, =0 {# user} one {# user} other {# users}}"},{number:i.nb_users}))),e.createElement(A.Td,null,e.createElement(E.k,{justifyContent:"end",...a.UW},e.createElement(a.jW,{permissions:r.updateRole},e.createElement(vt,{to:`/settings/users-permissions/roles/${i.id}`,"aria-label":l({id:"app.component.table.edit",defaultMessage:"Edit {target}"},{target:`${i.name}`})},e.createElement(Et.Z,null))),g(i)&&e.createElement(a.jW,{permissions:r.deleteRole},e.createElement(ht.h,{onClick:()=>h(i.id),noBorder:!0,icon:e.createElement(ft.Z,null),label:l({id:"global.delete-target",defaultMessage:"Delete {target}"},{target:`${i.name}`})})))))))};var yt=z;z.defaultProps={canDelete:!1},z.propTypes={onDelete:y().array.isRequired,permissions:y().object.isRequired,setRoleToDelete:y().func.isRequired,sortedRoles:y().array.isRequired,canDelete:y().bool};const Rt=async(t,n)=>{try{const{get:r}=(0,a.tg)(),{data:o}=await r("/users-permissions/roles");return n("The roles have loaded successfully"),o}catch(r){throw t({type:"warning",message:{id:"notification.error"}}),new Error(r)}},Ct=async(t,n)=>{try{const{del:r}=(0,a.tg)();await r(`/users-permissions/roles/${t}`)}catch{n({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}},Pt=()=>{const{trackUsage:t}=(0,a.rS)(),{formatMessage:n,locale:r}=(0,M.Z)(),o=(0,a.lm)(),{notifyStatus:c}=(0,lt.G)(),[{query:l}]=(0,a.Kx)(),d=l?._q||"",[u,m]=(0,e.useState)(!1),[g,h]=(0,e.useState)(!1),[f,i]=(0,e.useState)();(0,a.go)();const{isLoading:v,allowedActions:{canRead:C,canDelete:$}}=(0,a.ss)({create:P._.createRole,read:P._.readRoles,update:P._.updateRole,delete:P._.deleteRole}),{isLoading:R,data:{roles:D},isFetching:V,refetch:j}=(0,I.useQuery)("get-roles",()=>Rt(o,c),{initialData:{},enabled:C}),{includes:pe}=(0,a.L0)(r,{sensitivity:"base"}),he=(0,a.Xe)(r,{sensitivity:"base"}),Ee=R||V,Mt=()=>{m(!u)},bt={roles:{id:(0,W.OB)("Roles.empty"),defaultMessage:"You don't have any roles yet."},search:{id:(0,W.OB)("Roles.empty.search"),defaultMessage:"No roles match the search."}},At=n({id:"global.roles",defaultMessage:"Roles"}),Lt=(0,I.useMutation)(Z=>Ct(Z,o),{async onSuccess(){await j()}}),Dt=async()=>{h(!0),await Lt.mutateAsync(f),m(!u),h(!1)},H=(D||[]).filter(Z=>pe(Z.name,d)||pe(Z.description,d)).sort((Z,fe)=>he.compare(Z.name,fe.name)||he.compare(Z.description,fe.description)),Zt=d&&!H.length?"search":"roles",xt=4,Ot=(D?.length||0)+1;return e.createElement(it.A,null,e.createElement(a.SL,{name:At}),e.createElement(k.o,{"aria-busy":Ee},e.createElement(x.T,{title:n({id:"global.roles",defaultMessage:"Roles"}),subtitle:n({id:"Settings.roles.list.description",defaultMessage:"List of roles"}),primaryAction:e.createElement(a.jW,{permissions:P._.createRole},e.createElement(a.Qj,{to:"/settings/users-permissions/roles/new",onClick:()=>t("willCreateRole"),startIcon:e.createElement(ut.Z,null),size:"S"},n({id:(0,W.OB)("List.button.roles"),defaultMessage:"Add new role"})))}),e.createElement(ct.Z,{startActions:e.createElement(a.m,{label:n({id:"app.component.search.label",defaultMessage:"Search"})})}),e.createElement(B.D,null,!C&&e.createElement(a.ZF,null),(Ee||v)&&e.createElement(a.dO,null),C&&H&&H?.length?e.createElement(dt.i,{colCount:xt,rowCount:Ot},e.createElement(mt.h,null,e.createElement(ge.Tr,null,e.createElement(A.Th,null,e.createElement(p.Z,{variant:"sigma",textColor:"neutral600"},n({id:"global.name",defaultMessage:"Name"}))),e.createElement(A.Th,null,e.createElement(p.Z,{variant:"sigma",textColor:"neutral600"},n({id:"global.description",defaultMessage:"Description"}))),e.createElement(A.Th,null,e.createElement(p.Z,{variant:"sigma",textColor:"neutral600"},n({id:"global.users",defaultMessage:"Users"}))),e.createElement(A.Th,null,e.createElement(ne.T,null,n({id:"global.actions",defaultMessage:"Actions"}))))),e.createElement(yt,{sortedRoles:H,canDelete:$,permissions:P._,setRoleToDelete:i,onDelete:[u,m]})):e.createElement(a.x7,{content:bt[Zt]})),e.createElement(a.QH,{isConfirmButtonLoading:g,onConfirm:Dt,onToggleDialog:Mt,isOpen:u})))},St=()=>e.createElement(a.O4,{permissions:P._.accessRoles},e.createElement(Pt,null));var Tt=()=>e.createElement(a.O4,{permissions:P._.accessRoles},e.createElement(T.rs,null,e.createElement(T.AW,{path:"/settings/users-permissions/roles/new",component:nt,exact:!0}),e.createElement(T.AW,{path:"/settings/users-permissions/roles/:id",component:ot,exact:!0}),e.createElement(T.AW,{path:"/settings/users-permissions/roles",component:St,exact:!0}),e.createElement(T.AW,{path:"",component:a.Hn})))},55733:function(ve,G,s){s.d(G,{YX:function(){return P},OB:function(){return k.Z}});var e=s(86834),a=s.n(e),P=x=>Object.keys(x).reduce((O,B)=>{const E=x[B].controllers,p=Object.keys(E).reduce((b,S)=>(a()(E[S])||(b[S]=E[S]),b),{});return a()(p)||(O[B]={controllers:p}),O},{}),k=s(48395)}}]);
55
+ `,z=({sortedRoles:t,canDelete:n,permissions:o,setRoleToDelete:r,onDelete:c})=>{const{formatMessage:l}=(0,M.Z)(),{push:d}=(0,T.k6)(),[u,m]=c,g=i=>n&&!["public","authenticated"].includes(i.type),h=i=>{r(i),m(!u)},f=i=>{d(`/settings/users-permissions/roles/${i}`)};return e.createElement(pt.p,null,t?.map(i=>e.createElement(ge.Tr,{key:i.name,...(0,a.X7)({fn:()=>f(i.id)})},e.createElement(A.Td,{width:"20%"},e.createElement(p.Z,null,i.name)),e.createElement(A.Td,{width:"50%"},e.createElement(p.Z,null,i.description)),e.createElement(A.Td,{width:"30%"},e.createElement(p.Z,null,l({id:"Roles.RoleRow.user-count",defaultMessage:"{number, plural, =0 {# user} one {# user} other {# users}}"},{number:i.nb_users}))),e.createElement(A.Td,null,e.createElement(E.k,{justifyContent:"end",...a.UW},e.createElement(a.jW,{permissions:o.updateRole},e.createElement(vt,{to:`/settings/users-permissions/roles/${i.id}`,"aria-label":l({id:"app.component.table.edit",defaultMessage:"Edit {target}"},{target:`${i.name}`})},e.createElement(Et.Z,null))),g(i)&&e.createElement(a.jW,{permissions:o.deleteRole},e.createElement(ht.h,{onClick:()=>h(i.id),noBorder:!0,icon:e.createElement(ft.Z,null),label:l({id:"global.delete-target",defaultMessage:"Delete {target}"},{target:`${i.name}`})})))))))};var yt=z;z.defaultProps={canDelete:!1},z.propTypes={onDelete:y().array.isRequired,permissions:y().object.isRequired,setRoleToDelete:y().func.isRequired,sortedRoles:y().array.isRequired,canDelete:y().bool};const Rt=async(t,n)=>{try{const{get:o}=(0,a.tg)(),{data:r}=await o("/users-permissions/roles");return n("The roles have loaded successfully"),r}catch(o){throw t({type:"warning",message:{id:"notification.error"}}),new Error(o)}},Ct=async(t,n)=>{try{const{del:o}=(0,a.tg)();await o(`/users-permissions/roles/${t}`)}catch{n({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}},Pt=()=>{const{trackUsage:t}=(0,a.rS)(),{formatMessage:n,locale:o}=(0,M.Z)(),r=(0,a.lm)(),{notifyStatus:c}=(0,lt.G)(),[{query:l}]=(0,a.Kx)(),d=l?._q||"",[u,m]=(0,e.useState)(!1),[g,h]=(0,e.useState)(!1),[f,i]=(0,e.useState)();(0,a.go)();const{isLoading:v,allowedActions:{canRead:C,canDelete:$}}=(0,a.ss)({create:P._.createRole,read:P._.readRoles,update:P._.updateRole,delete:P._.deleteRole}),{isLoading:R,data:{roles:D},isFetching:V,refetch:j}=(0,I.useQuery)("get-roles",()=>Rt(r,c),{initialData:{},enabled:C}),{includes:pe}=(0,a.L0)(o,{sensitivity:"base"}),he=(0,a.Xe)(o,{sensitivity:"base"}),Ee=R||V,Mt=()=>{m(!u)},bt={roles:{id:(0,W.OB)("Roles.empty"),defaultMessage:"You don't have any roles yet."},search:{id:(0,W.OB)("Roles.empty.search"),defaultMessage:"No roles match the search."}},At=n({id:"global.roles",defaultMessage:"Roles"}),Lt=(0,I.useMutation)(Z=>Ct(Z,r),{async onSuccess(){await j()}}),Dt=async()=>{h(!0),await Lt.mutateAsync(f),m(!u),h(!1)},H=(D||[]).filter(Z=>pe(Z.name,d)||pe(Z.description,d)).sort((Z,fe)=>he.compare(Z.name,fe.name)||he.compare(Z.description,fe.description)),Zt=d&&!H.length?"search":"roles",xt=4,Ot=(D?.length||0)+1;return e.createElement(it.A,null,e.createElement(a.SL,{name:At}),e.createElement(k.o,{"aria-busy":Ee},e.createElement(x.T,{title:n({id:"global.roles",defaultMessage:"Roles"}),subtitle:n({id:"Settings.roles.list.description",defaultMessage:"List of roles"}),primaryAction:e.createElement(a.jW,{permissions:P._.createRole},e.createElement(a.Qj,{to:"/settings/users-permissions/roles/new",onClick:()=>t("willCreateRole"),startIcon:e.createElement(ut.Z,null),size:"S"},n({id:(0,W.OB)("List.button.roles"),defaultMessage:"Add new role"})))}),e.createElement(ct.Z,{startActions:e.createElement(a.m,{label:n({id:"app.component.search.label",defaultMessage:"Search"})})}),e.createElement(B.D,null,!C&&e.createElement(a.ZF,null),(Ee||v)&&e.createElement(a.dO,null),C&&H&&H?.length?e.createElement(dt.i,{colCount:xt,rowCount:Ot},e.createElement(mt.h,null,e.createElement(ge.Tr,null,e.createElement(A.Th,null,e.createElement(p.Z,{variant:"sigma",textColor:"neutral600"},n({id:"global.name",defaultMessage:"Name"}))),e.createElement(A.Th,null,e.createElement(p.Z,{variant:"sigma",textColor:"neutral600"},n({id:"global.description",defaultMessage:"Description"}))),e.createElement(A.Th,null,e.createElement(p.Z,{variant:"sigma",textColor:"neutral600"},n({id:"global.users",defaultMessage:"Users"}))),e.createElement(A.Th,null,e.createElement(ne.T,null,n({id:"global.actions",defaultMessage:"Actions"}))))),e.createElement(yt,{sortedRoles:H,canDelete:$,permissions:P._,setRoleToDelete:i,onDelete:[u,m]})):e.createElement(a.x7,{content:bt[Zt]})),e.createElement(a.QH,{isConfirmButtonLoading:g,onConfirm:Dt,onToggleDialog:Mt,isOpen:u})))},St=()=>e.createElement(a.O4,{permissions:P._.accessRoles},e.createElement(Pt,null));var Tt=()=>e.createElement(a.O4,{permissions:P._.accessRoles},e.createElement(T.rs,null,e.createElement(T.AW,{path:"/settings/users-permissions/roles/new",component:nt,exact:!0}),e.createElement(T.AW,{path:"/settings/users-permissions/roles/:id",component:rt,exact:!0}),e.createElement(T.AW,{path:"/settings/users-permissions/roles",component:St,exact:!0}),e.createElement(T.AW,{path:"",component:a.Hn})))},55733:function(ve,G,s){s.d(G,{YX:function(){return P},OB:function(){return k.Z}});var e=s(86834),a=s.n(e),P=x=>Object.keys(x).reduce((O,B)=>{const E=x[B].controllers,p=Object.keys(E).reduce((b,S)=>(a()(E[S])||(b[S]=E[S]),b),{});return a()(p)||(O[B]={controllers:p}),O},{}),k=s(48395)}}]);
@@ -1,4 +1,4 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5162],{36795:function(G,P,t){var e=t(32735),T=t(45175),g=t(84642),b=t(99391),W=t(35547),K=t(73530),U=t(52070),i=t(52945),se=t(99320),re=t(8365),j=t(8541),X=t(31014),S=t(96669),Q=t(92802),ie=t(60216),f=t.n(ie),_=t(67879),D=t(8471),de=t(90769);const u=s=>s.reduce((r,d)=>{const M=d.split(".")[0];return r[M]||(r[M]=[]),r[M].push(d),r},{}),B=(0,D.ZP)(T.w)`
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5162],{36795:function(G,P,t){var e=t(32735),T=t(45175),g=t(84642),b=t(99391),W=t(35547),K=t(73530),U=t(52070),i=t(52945),se=t(99320),re=t(8365),j=t(8541),X=t(31014),S=t(96669),Q=t(92802),ie=t(60216),f=t.n(ie),Y=t(67879),D=t(8471),de=t(90769);const u=s=>s.reduce((r,d)=>{const M=d.split(".")[0];return r[M]||(r[M]=[]),r[M].push(d),r},{}),B=(0,D.ZP)(T.w)`
2
2
  tbody tr:nth-child(odd) {
3
3
  background: ${({theme:s})=>s.colors.neutral100};
4
4
  }
@@ -23,11 +23,11 @@
23
23
  */
24
24
  padding-inline-start: ${({theme:s})=>s.spaces[2]};
25
25
  }
26
- `,oe=s=>{const r=[{id:"Settings.webhooks.events.create",defaultMessage:"Create"},{id:"Settings.webhooks.events.update",defaultMessage:"Update"},{id:"app.utils.delete",defaultMessage:"Delete"}];return s&&(r.push({id:"app.utils.publish",defaultMessage:"Publish"}),r.push({id:"app.utils.unpublish",defaultMessage:"Unpublish"})),r},Y=s=>{const r=["entry.create","entry.update","entry.delete"];return s&&r.push("entry.publish","entry.unpublish"),{entry:r,media:["media.create","media.update","media.delete"]}},J=e.createContext(),le=({children:s})=>{const{formatMessage:r}=(0,_.Z)(),{collectionTypes:d,isLoading:M}=(0,de.G)(),C=e.useMemo(()=>d.some(L=>L.options.draftAndPublish===!0),[d]),v=r({id:"Settings.webhooks.form.events",defaultMessage:"Events"});return e.createElement(J.Provider,{value:{isDraftAndPublish:C}},e.createElement(g.k,{direction:"column",alignItems:"stretch",gap:1},e.createElement(b.Q,{"aria-hidden":!0},v),M&&e.createElement(W.a,null,r({id:"Settings.webhooks.events.isLoading",defaultMessage:"Events loading"})),e.createElement(B,{"aria-label":v},s)))};le.propTypes={children:f().oneOfType([f().arrayOf(f().node),f().node]).isRequired};const q=({getHeaders:s=oe})=>{const{isDraftAndPublish:r}=e.useContext(J),{formatMessage:d}=(0,_.Z)(),M=s(r);return e.createElement(K.S,null,e.createElement(U.Z,null,e.createElement(i.g,null,e.createElement(se.T,null,d({id:"Settings.webhooks.event.select",defaultMessage:"Select event"}))),M.map(C=>["app.utils.publish","app.utils.unpublish"].includes(C.id)?e.createElement(i.g,{key:C.id,title:d({id:"Settings.webhooks.event.publish-tooltip",defaultMessage:"This event only exists for content with draft & publish enabled"})},e.createElement(re.Z,{variant:"sigma",textColor:"neutral600"},d(C))):e.createElement(i.g,{key:C.id},e.createElement(re.Z,{variant:"sigma",textColor:"neutral600"},d(C))))))};q.defaultProps={getHeaders:oe},q.propTypes={getHeaders:f().func};const ee=({providedEvents:s})=>{const{isDraftAndPublish:r}=e.useContext(J),d=s||Y(r),{values:M,handleChange:C}=(0,Q.u6)(),v="events",L=M.events,w=[],te=u(L),A=({target:{name:E,value:m}})=>{let y=new Set(L);m?y.add(E):y.delete(E),C({target:{name:v,value:Array.from(y)}})},$=({target:{name:E,value:m}})=>{let y=new Set(L);m?d[E].forEach(N=>{w.includes(N)||y.add(N)}):d[E].forEach(N=>y.delete(N)),C({target:{name:v,value:Array.from(y)}})};return e.createElement(j.X,null,Object.entries(d).map(([E,m])=>e.createElement(F,{disabledEvents:w,key:E,name:E,events:m,inputValue:te[E],handleSelect:A,handleSelectAll:$})))};ee.defaultProps={providedEvents:null},ee.propTypes={providedEvents:f().object};const ce=s=>s.replace(/-/g," ").split(" ").map(r=>r.charAt(0).toUpperCase()+r.slice(1).toLowerCase()).join(" "),F=({disabledEvents:s,name:r,events:d,inputValue:M,handleSelect:C,handleSelectAll:v})=>{const{formatMessage:L}=(0,_.Z)(),w=d.filter(m=>!s.includes(m)),te=M.length>0,A=M.length===w.length,$=({target:{name:m}})=>{v({target:{name:m,value:!A}})},E=5;return e.createElement(U.Z,null,e.createElement(i.f,null,e.createElement(X.X,{indeterminate:te&&!A,"aria-label":L({id:"global.select-all-entries",defaultMessage:"Select all entries"}),name:r,onChange:$,value:A},ce(r))),d.map(m=>e.createElement(i.f,{key:m},e.createElement(S.C,{disabled:s.includes(m),"aria-label":m,name:m,value:M.includes(m),onValueChange:y=>C({target:{name:m,value:y}})}))),d.length<E&&e.createElement(i.f,{colSpan:E-d.length}))};F.defaultProps={disabledEvents:[],events:[],inputValue:[],handleSelect(){},handleSelectAll(){}},F.propTypes={disabledEvents:f().array,events:f().array,inputValue:f().array,handleSelect:f().func,handleSelectAll:f().func,name:f().string.isRequired},P.Z={Root:le,Headers:q,Body:ee,EventRow:F}},77476:function(G,P,t){t.d(P,{Z:function(){return fe}});var e=t(32735),T=t(95162),g=t(43806),b=t(20108),W=t(53038),K=t(90769),U=t(64092),i=t(84642),se=t(91779),re=t(56932),j=t(77981),X=t(10710),S=t(97037),Q=t(2846),ie=t(58518),f=t(40501),_=t(70788),D=t(92802),de=t(60216),u=t.n(de),B=t(67879),oe=t(9592),Y=t(36795);function J(){return e.createElement(Y.Z.Root,null,e.createElement(Y.Z.Headers,null),e.createElement(Y.Z.Body,null))}var le=t(99391),q=t(43743),ee=t(82064),ce=t(70843),F=t(8241);const s=["A-IM","Accept","Accept-Charset","Accept-Encoding","Accept-Language","Accept-Datetime","Access-Control-Request-Method","Access-Control-Request-Headers","Authorization","Cache-Control","Connection","Content-Length","Content-Type","Cookie","Date","Expect","Forwarded","From","Host","If-Match","If-Modified-Since","If-None-Match","If-Range","If-Unmodified-Since","Max-Forwards","Origin","Pragma","Proxy-Authorization","Range","Referer","TE","User-Agent","Upgrade","Via","Warning"],r=({name:n,onChange:a,value:o,...c})=>{const{values:{headers:h}}=(0,D.u6)(),[O,l]=(0,e.useState)(s);(0,e.useEffect)(()=>{l(s.filter(p=>!h?.some(x=>x.key!==o&&x.key===p)))},[h,o]);const H=p=>{a({target:{name:n,value:p}})},z=p=>{l(x=>[...x,p]),H(p)};return e.createElement(ce.XU,{...c,onClear:()=>H(""),onChange:H,onCreateOption:z,placeholder:"",value:o},O.map(p=>e.createElement(F.O,{value:p,key:p},p)))};r.defaultProps={value:void 0},r.propTypes={name:u().string.isRequired,onChange:u().func.isRequired,value:u().string};var d=r,C=()=>{const{formatMessage:n}=(0,B.Z)(),{values:a,errors:o}=(0,D.u6)();return e.createElement(i.k,{direction:"column",alignItems:"stretch",gap:1},e.createElement(le.Q,null,n({id:"Settings.webhooks.form.headers",defaultMessage:"Headers"})),e.createElement(j.x,{padding:8,background:"neutral100",hasRadius:!0},e.createElement(D.F2,{validateOnChange:!1,name:"headers",render:({push:c,remove:h})=>e.createElement(X.r,{gap:4},a.headers.map((O,l)=>e.createElement(e.Fragment,{key:`${l}.${O.key}`},e.createElement(S.P,{col:6},e.createElement(D.gN,{as:d,name:`headers.${l}.key`,"aria-label":`row ${l+1} key`,label:n({id:"Settings.webhooks.key",defaultMessage:"Key"}),error:o.headers?.[l]?.key&&o.headers[l].key})),e.createElement(S.P,{col:6},e.createElement(i.k,{alignItems:"flex-end"},e.createElement(j.x,{style:{flex:1}},e.createElement(D.gN,{as:Q.o,name:`headers.${l}.value`,"aria-label":`row ${l+1} value`,label:n({id:"Settings.webhooks.value",defaultMessage:"Value"}),error:o.headers?.[l]?.value&&o.headers[l].value})),e.createElement(i.k,{paddingLeft:2,style:{alignSelf:"center"},paddingTop:o.headers?.[l]?.value?0:5},e.createElement(g.fG,{disabled:a.headers.length===1,onClick:()=>h(l),label:n({id:"Settings.webhooks.headers.remove",defaultMessage:"Remove header row {number}"},{number:l+1})})))))),e.createElement(S.P,{col:12},e.createElement(q.A,{type:"button",onClick:()=>{c({key:"",value:""})},startIcon:e.createElement(ee.Z,null)},n({id:"Settings.webhooks.create.header",defaultMessage:"Create new header"}))))})))},v=t(8365),L=t(75760),w=t(98610),te=t(8471);const A=te.ZP.svg(({theme:n,color:a})=>`
26
+ `,oe=s=>{const r=[{id:"Settings.webhooks.events.create",defaultMessage:"Create"},{id:"Settings.webhooks.events.update",defaultMessage:"Update"},{id:"app.utils.delete",defaultMessage:"Delete"}];return s&&(r.push({id:"app.utils.publish",defaultMessage:"Publish"}),r.push({id:"app.utils.unpublish",defaultMessage:"Unpublish"})),r},_=s=>{const r=["entry.create","entry.update","entry.delete"];return s&&r.push("entry.publish","entry.unpublish"),{entry:r,media:["media.create","media.update","media.delete"]}},J=e.createContext(),le=({children:s})=>{const{formatMessage:r}=(0,Y.Z)(),{collectionTypes:d,isLoading:M}=(0,de.G)(),C=e.useMemo(()=>d.some(L=>L.options.draftAndPublish===!0),[d]),v=r({id:"Settings.webhooks.form.events",defaultMessage:"Events"});return e.createElement(J.Provider,{value:{isDraftAndPublish:C}},e.createElement(g.k,{direction:"column",alignItems:"stretch",gap:1},e.createElement(b.Q,{"aria-hidden":!0},v),M&&e.createElement(W.a,null,r({id:"Settings.webhooks.events.isLoading",defaultMessage:"Events loading"})),e.createElement(B,{"aria-label":v},s)))};le.propTypes={children:f().oneOfType([f().arrayOf(f().node),f().node]).isRequired};const q=({getHeaders:s=oe})=>{const{isDraftAndPublish:r}=e.useContext(J),{formatMessage:d}=(0,Y.Z)(),M=s(r);return e.createElement(K.S,null,e.createElement(U.Z,null,e.createElement(i.g,null,e.createElement(se.T,null,d({id:"Settings.webhooks.event.select",defaultMessage:"Select event"}))),M.map(C=>["app.utils.publish","app.utils.unpublish"].includes(C.id)?e.createElement(i.g,{key:C.id,title:d({id:"Settings.webhooks.event.publish-tooltip",defaultMessage:"This event only exists for content with draft & publish enabled"})},e.createElement(re.Z,{variant:"sigma",textColor:"neutral600"},d(C))):e.createElement(i.g,{key:C.id},e.createElement(re.Z,{variant:"sigma",textColor:"neutral600"},d(C))))))};q.defaultProps={getHeaders:oe},q.propTypes={getHeaders:f().func};const ee=({providedEvents:s})=>{const{isDraftAndPublish:r}=e.useContext(J),d=s||_(r),{values:M,handleChange:C}=(0,Q.u6)(),v="events",L=M.events,w=[],te=u(L),A=({target:{name:E,value:m}})=>{let y=new Set(L);m?y.add(E):y.delete(E),C({target:{name:v,value:Array.from(y)}})},$=({target:{name:E,value:m}})=>{let y=new Set(L);m?d[E].forEach(N=>{w.includes(N)||y.add(N)}):d[E].forEach(N=>y.delete(N)),C({target:{name:v,value:Array.from(y)}})};return e.createElement(j.X,null,Object.entries(d).map(([E,m])=>e.createElement(F,{disabledEvents:w,key:E,name:E,events:m,inputValue:te[E],handleSelect:A,handleSelectAll:$})))};ee.defaultProps={providedEvents:null},ee.propTypes={providedEvents:f().object};const ce=s=>s.replace(/-/g," ").split(" ").map(r=>r.charAt(0).toUpperCase()+r.slice(1).toLowerCase()).join(" "),F=({disabledEvents:s,name:r,events:d,inputValue:M,handleSelect:C,handleSelectAll:v})=>{const{formatMessage:L}=(0,Y.Z)(),w=d.filter(m=>!s.includes(m)),te=M.length>0,A=M.length===w.length,$=({target:{name:m}})=>{v({target:{name:m,value:!A}})},E=5;return e.createElement(U.Z,null,e.createElement(i.f,null,e.createElement(X.X,{indeterminate:te&&!A,"aria-label":L({id:"global.select-all-entries",defaultMessage:"Select all entries"}),name:r,onChange:$,value:A},ce(r))),d.map(m=>e.createElement(i.f,{key:m},e.createElement(S.C,{disabled:s.includes(m),"aria-label":m,name:m,value:M.includes(m),onValueChange:y=>C({target:{name:m,value:y}})}))),d.length<E&&e.createElement(i.f,{colSpan:E-d.length}))};F.defaultProps={disabledEvents:[],events:[],inputValue:[],handleSelect(){},handleSelectAll(){}},F.propTypes={disabledEvents:f().array,events:f().array,inputValue:f().array,handleSelect:f().func,handleSelectAll:f().func,name:f().string.isRequired},P.Z={Root:le,Headers:q,Body:ee,EventRow:F}},77476:function(G,P,t){t.d(P,{Z:function(){return fe}});var e=t(32735),T=t(95162),g=t(59407),b=t(20108),W=t(53038),K=t(90769),U=t(64092),i=t(84642),se=t(91779),re=t(56932),j=t(77981),X=t(10710),S=t(97037),Q=t(2846),ie=t(58518),f=t(40501),Y=t(70788),D=t(92802),de=t(60216),u=t.n(de),B=t(67879),oe=t(40957),_=t(36795);function J(){return e.createElement(_.Z.Root,null,e.createElement(_.Z.Headers,null),e.createElement(_.Z.Body,null))}var le=t(99391),q=t(43743),ee=t(82064),ce=t(70843),F=t(8241);const s=["A-IM","Accept","Accept-Charset","Accept-Encoding","Accept-Language","Accept-Datetime","Access-Control-Request-Method","Access-Control-Request-Headers","Authorization","Cache-Control","Connection","Content-Length","Content-Type","Cookie","Date","Expect","Forwarded","From","Host","If-Match","If-Modified-Since","If-None-Match","If-Range","If-Unmodified-Since","Max-Forwards","Origin","Pragma","Proxy-Authorization","Range","Referer","TE","User-Agent","Upgrade","Via","Warning"],r=({name:n,onChange:a,value:o,...c})=>{const{values:{headers:h}}=(0,D.u6)(),[O,l]=(0,e.useState)(s);(0,e.useEffect)(()=>{l(s.filter(p=>!h?.some(x=>x.key!==o&&x.key===p)))},[h,o]);const H=p=>{a({target:{name:n,value:p}})},z=p=>{l(x=>[...x,p]),H(p)};return e.createElement(ce.XU,{...c,onClear:()=>H(""),onChange:H,onCreateOption:z,placeholder:"",value:o},O.map(p=>e.createElement(F.O,{value:p,key:p},p)))};r.defaultProps={value:void 0},r.propTypes={name:u().string.isRequired,onChange:u().func.isRequired,value:u().string};var d=r,C=()=>{const{formatMessage:n}=(0,B.Z)(),{values:a,errors:o}=(0,D.u6)();return e.createElement(i.k,{direction:"column",alignItems:"stretch",gap:1},e.createElement(le.Q,null,n({id:"Settings.webhooks.form.headers",defaultMessage:"Headers"})),e.createElement(j.x,{padding:8,background:"neutral100",hasRadius:!0},e.createElement(D.F2,{validateOnChange:!1,name:"headers",render:({push:c,remove:h})=>e.createElement(X.r,{gap:4},a.headers.map((O,l)=>e.createElement(e.Fragment,{key:`${l}.${O.key}`},e.createElement(S.P,{col:6},e.createElement(D.gN,{as:d,name:`headers.${l}.key`,"aria-label":`row ${l+1} key`,label:n({id:"Settings.webhooks.key",defaultMessage:"Key"}),error:o.headers?.[l]?.key&&o.headers[l].key})),e.createElement(S.P,{col:6},e.createElement(i.k,{alignItems:"flex-end"},e.createElement(j.x,{style:{flex:1}},e.createElement(D.gN,{as:Q.o,name:`headers.${l}.value`,"aria-label":`row ${l+1} value`,label:n({id:"Settings.webhooks.value",defaultMessage:"Value"}),error:o.headers?.[l]?.value&&o.headers[l].value})),e.createElement(i.k,{paddingLeft:2,style:{alignSelf:"center"},paddingTop:o.headers?.[l]?.value?0:5},e.createElement(g.fG,{disabled:a.headers.length===1,onClick:()=>h(l),label:n({id:"Settings.webhooks.headers.remove",defaultMessage:"Remove header row {number}"},{number:l+1})})))))),e.createElement(S.P,{col:12},e.createElement(q.A,{type:"button",onClick:()=>{c({key:"",value:""})},startIcon:e.createElement(ee.Z,null)},n({id:"Settings.webhooks.create.header",defaultMessage:"Create new header"}))))})))},v=t(8365),L=t(75760),w=t(98610),te=t(8471);const A=te.ZP.svg(({theme:n,color:a})=>`
27
27
  width: ${12/16}rem;
28
28
  height: ${12/16}rem;
29
29
 
30
30
  path {
31
31
  fill: ${n.colors[a]};
32
32
  }
33
- `),$=({isPending:n,statusCode:a})=>{const{formatMessage:o}=(0,B.Z)();return n?e.createElement(i.k,{gap:2,alignItems:"center"},e.createElement(A,{as:L.Z}),e.createElement(v.Z,null,o({id:"Settings.webhooks.trigger.pending",defaultMessage:"pending"}))):a>=200&&a<300?e.createElement(i.k,{gap:2,alignItems:"center"},e.createElement(A,{as:f.Z,color:"success700"}),e.createElement(v.Z,null,o({id:"Settings.webhooks.trigger.success",defaultMessage:"success"}))):a>=300?e.createElement(i.k,{gap:2,alignItems:"center"},e.createElement(A,{as:w.Z,color:"danger700"}),e.createElement(v.Z,null,o({id:"Settings.error",defaultMessage:"error"})," ",a)):null};$.propTypes={isPending:u().bool.isRequired,statusCode:u().number},$.defaultProps={statusCode:void 0};const E=({statusCode:n,message:a})=>{const{formatMessage:o}=(0,B.Z)();return n>=200&&n<300?e.createElement(i.k,{justifyContent:"flex-end"},e.createElement(v.Z,{textColor:"neutral600",ellipsis:!0},o({id:"Settings.webhooks.trigger.success.label",defaultMessage:"Trigger succeeded"}))):n>=300?e.createElement(i.k,{justifyContent:"flex-end"},e.createElement(i.k,{maxWidth:(0,g.Q1)(250),justifyContent:"flex-end",title:a},e.createElement(v.Z,{ellipsis:!0,textColor:"neutral600"},a))):null};E.propTypes={statusCode:u().number,message:u().string},E.defaultProps={statusCode:void 0,message:void 0};const m=({onCancel:n})=>{const{formatMessage:a}=(0,B.Z)();return e.createElement(i.k,{justifyContent:"flex-end"},e.createElement("button",{onClick:n,type:"button"},e.createElement(i.k,{gap:2,alignItems:"center"},e.createElement(v.Z,{textColor:"neutral400"},a({id:"Settings.webhooks.trigger.cancel",defaultMessage:"cancel"})),e.createElement(A,{as:w.Z,color:"neutral400"}))))};m.propTypes={onCancel:u().func.isRequired};const y=({isPending:n,onCancel:a,response:o})=>{const{statusCode:c,message:h}=o,{formatMessage:O}=(0,B.Z)();return e.createElement(j.x,{background:"neutral0",padding:5,shadow:"filterShadow",hasRadius:!0},e.createElement(X.r,{gap:4,style:{alignItems:"center"}},e.createElement(S.P,{col:3},e.createElement(v.Z,null,O({id:"Settings.webhooks.trigger.test",defaultMessage:"Test-trigger"}))),e.createElement(S.P,{col:3},e.createElement($,{isPending:n,statusCode:c})),e.createElement(S.P,{col:6},n?e.createElement(m,{onCancel:a}):e.createElement(E,{statusCode:c,message:h}))))};y.defaultProps={isPending:!1,onCancel(){},response:{}},y.propTypes={isPending:u().bool,onCancel:u().func,response:u().object};var N=y,k=t(24346);const ge=/(^$)|(^[A-Za-z][_0-9A-Za-z ]*$)/,Ee=/(^$)|((https?:\/\/.*)(d*)\/?(.*))/,he=({formatMessage:n})=>k.Ry().shape({name:k.Z_().required(n({id:"Settings.webhooks.validation.name.required",defaultMessage:"Name is required"})).matches(ge,n({id:"Settings.webhooks.validation.name.regex",defaultMessage:"The name must start with a letter and only contain letters, numbers, spaces and underscores"})),url:k.Z_().required(n({id:"Settings.webhooks.validation.url.required",defaultMessage:"Url is required"})).matches(Ee,n({id:"Settings.webhooks.validation.url.regex",defaultMessage:"The value must be a valid Url"})),headers:k.Vo(a=>{let o=k.IX();if(a.length===1){const{key:c,value:h}=a[0];if(!c&&!h)return o}return o.of(k.Ry().shape({key:k.Z_().required(n({id:"Settings.webhooks.validation.key",defaultMessage:"Key is required"})),value:k.Z_().required(n({id:"Settings.webhooks.validation.value",defaultMessage:"Value is required"}))}))}),events:k.IX()}),ue=({handleSubmit:n,triggerWebhook:a,isCreating:o,isTriggering:c,triggerResponse:h,data:O})=>{const{formatMessage:l}=(0,B.Z)(),[H,z]=(0,e.useState)(!1),p=(0,oe.c)(J,async()=>(await t.e(7030).then(t.bind(t,61442))).EventTableEE),x=Z=>Object.keys(Z).length?Object.entries(Z).map(([ne,ae])=>({key:ne,value:ae})):[{key:"",value:""}],R=(0,D.TA)({initialValues:{name:O?.name||"",url:O?.url||"",headers:x(O?.headers||{}),events:O?.events||[]},onSubmit(Z,{resetForm:ne,setSubmitting:ae}){n(Z),ne({values:Z}),ae(!1)},validationSchema:he({formatMessage:l}),validateOnChange:!1,validateOnBlur:!1});return p?e.createElement(D.Hy,{value:R},e.createElement(g.l0,{onSubmit:R.handleSubmit},e.createElement(U.T,{primaryAction:e.createElement(i.k,{gap:2},e.createElement(se.z,{onClick:()=>{a(),z(!0)},variant:"tertiary",startIcon:e.createElement(ie.Z,null),disabled:o||c,size:"L"},l({id:"Settings.webhooks.trigger",defaultMessage:"Trigger"})),e.createElement(se.z,{startIcon:e.createElement(f.Z,null),type:"submit",size:"L",disabled:!R.dirty,loading:R.isSubmitting},l({id:"global.save",defaultMessage:"Save"}))),title:o?l({id:"Settings.webhooks.create",defaultMessage:"Create a webhook"}):O?.name,navigationAction:e.createElement(g.rU,{startIcon:e.createElement(_.Z,null),to:"/settings/webhooks"},l({id:"global.back",defaultMessage:"Back"}))}),e.createElement(re.D,null,e.createElement(i.k,{direction:"column",alignItems:"stretch",gap:4},H&&e.createElement(N,{isPending:c,response:h,onCancel:()=>z(!1)}),e.createElement(j.x,{background:"neutral0",padding:8,shadow:"filterShadow",hasRadius:!0},e.createElement(i.k,{direction:"column",alignItems:"stretch",gap:6},e.createElement(X.r,{gap:6},e.createElement(S.P,{col:6},e.createElement(D.gN,{as:Q.o,name:"name",error:R?.errors?.name&&R.errors.name,label:l({id:"global.name",defaultMessage:"Name"}),required:!0})),e.createElement(S.P,{col:12},e.createElement(D.gN,{as:Q.o,name:"url",error:R?.errors?.url&&R.errors.url,label:l({id:"Settings.roles.form.input.url",defaultMessage:"Url"}),required:!0}))),e.createElement(C,null),e.createElement(p,null))))))):null};ue.propTypes={data:u().object,handleSubmit:u().func.isRequired,triggerWebhook:u().func.isRequired,isCreating:u().bool.isRequired,isTriggering:u().bool.isRequired,triggerResponse:u().object},ue.defaultProps={data:void 0,triggerResponse:void 0};var pe=ue;const me=n=>({...n,headers:n.headers.reduce((a,{key:o,value:c})=>(o!==""&&(a[o]=c),a),{})});var fe=()=>{const{params:{id:n}}=(0,W.$B)("/settings/webhooks/:id"),a=n==="create",{replace:o}=(0,W.k6)(),c=(0,g.lm)(),{formatAPIError:h}=(0,g.So)(),O=(0,b.useQueryClient)(),{isLoading:l}=(0,K.G)(),{put:H,get:z,post:p}=(0,g.kY)(),{isLoading:x,data:R,error:Z}=(0,b.useQuery)(["webhooks",n],async()=>{const{data:{data:I}}=await z(`/admin/webhooks/${n}`);return I},{enabled:!a});e.useEffect(()=>{Z&&c({type:"warning",message:h(Z)})},[Z,c,h]);const{isLoading:ne,data:ae,isIdle:ve,mutate:Me}=(0,b.useMutation)(()=>p(`/admin/webhooks/${n}/trigger`)),Ce=()=>Me(null,{onError(I){c({type:"warning",message:h(I)})}}),ye=(0,b.useMutation)(I=>p("/admin/webhooks",I)),Pe=(0,b.useMutation)(({id:I,body:V})=>H(`/admin/webhooks/${I}`,V)),be=async I=>{if(a){ye.mutate(me(I),{onSuccess({data:V}){c({type:"success",message:{id:"Settings.webhooks.created"}}),o(`/settings/webhooks/${V.data.id}`)},onError(V){c({type:"warning",message:h(V)})}});return}Pe.mutate({id:n,body:me(I)},{onSuccess(){O.invalidateQueries(["webhooks",n]),c({type:"success",message:{id:"notification.form.success.fields"}})},onError(V){c({type:"warning",message:h(V)})}})};return x||l?e.createElement(g.dO,null):e.createElement(T.o,null,e.createElement(g.SL,{name:"Webhooks"}),e.createElement(pe,{data:R,handleSubmit:be,triggerWebhook:Ce,isCreating:a,isTriggering:ne,isTriggerIdle:ve,triggerResponse:ae?.data.data}))}},5722:function(G,P,t){t.r(P);var e=t(32735),T=t(43806),g=t(15062),b=t(30305),W=t(77476);const K=()=>{const U=(0,g.v9)(b._);return e.createElement(T.O4,{permissions:U.settings.webhooks.create},e.createElement(W.Z,null))};P.default=K},63939:function(G,P,t){t.r(P);var e=t(32735),T=t(43806),g=t(15062),b=t(30305),W=t(77476);const K=()=>{const U=(0,g.v9)(b._);return e.createElement(T.O4,{permissions:U.settings.webhooks.update},e.createElement(W.Z,null))};P.default=K},8241:function(G,P,t){t.d(P,{O:function(){return T}});var e=t(70843);const T=e.Wx},70788:function(G,P,t){t.d(P,{Z:function(){return g}});var e=t(74512);const T=b=>(0,e.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1rem",height:"1rem",fill:"none",viewBox:"0 0 24 24",...b,children:(0,e.jsx)("path",{fill:"#212134",d:"M24 13.3a.2.2 0 0 1-.2.2H5.74l8.239 8.239a.2.2 0 0 1 0 .282L12.14 23.86a.2.2 0 0 1-.282 0L.14 12.14a.2.2 0 0 1 0-.282L11.86.14a.2.2 0 0 1 .282 0L13.98 1.98a.2.2 0 0 1 0 .282L5.74 10.5H23.8c.11 0 .2.09.2.2v2.6Z"})}),g=T}}]);
33
+ `),$=({isPending:n,statusCode:a})=>{const{formatMessage:o}=(0,B.Z)();return n?e.createElement(i.k,{gap:2,alignItems:"center"},e.createElement(A,{as:L.Z}),e.createElement(v.Z,null,o({id:"Settings.webhooks.trigger.pending",defaultMessage:"pending"}))):a>=200&&a<300?e.createElement(i.k,{gap:2,alignItems:"center"},e.createElement(A,{as:f.Z,color:"success700"}),e.createElement(v.Z,null,o({id:"Settings.webhooks.trigger.success",defaultMessage:"success"}))):a>=300?e.createElement(i.k,{gap:2,alignItems:"center"},e.createElement(A,{as:w.Z,color:"danger700"}),e.createElement(v.Z,null,o({id:"Settings.error",defaultMessage:"error"})," ",a)):null};$.propTypes={isPending:u().bool.isRequired,statusCode:u().number},$.defaultProps={statusCode:void 0};const E=({statusCode:n,message:a})=>{const{formatMessage:o}=(0,B.Z)();return n>=200&&n<300?e.createElement(i.k,{justifyContent:"flex-end"},e.createElement(v.Z,{textColor:"neutral600",ellipsis:!0},o({id:"Settings.webhooks.trigger.success.label",defaultMessage:"Trigger succeeded"}))):n>=300?e.createElement(i.k,{justifyContent:"flex-end"},e.createElement(i.k,{maxWidth:(0,g.Q1)(250),justifyContent:"flex-end",title:a},e.createElement(v.Z,{ellipsis:!0,textColor:"neutral600"},a))):null};E.propTypes={statusCode:u().number,message:u().string},E.defaultProps={statusCode:void 0,message:void 0};const m=({onCancel:n})=>{const{formatMessage:a}=(0,B.Z)();return e.createElement(i.k,{justifyContent:"flex-end"},e.createElement("button",{onClick:n,type:"button"},e.createElement(i.k,{gap:2,alignItems:"center"},e.createElement(v.Z,{textColor:"neutral400"},a({id:"Settings.webhooks.trigger.cancel",defaultMessage:"cancel"})),e.createElement(A,{as:w.Z,color:"neutral400"}))))};m.propTypes={onCancel:u().func.isRequired};const y=({isPending:n,onCancel:a,response:o})=>{const{statusCode:c,message:h}=o,{formatMessage:O}=(0,B.Z)();return e.createElement(j.x,{background:"neutral0",padding:5,shadow:"filterShadow",hasRadius:!0},e.createElement(X.r,{gap:4,style:{alignItems:"center"}},e.createElement(S.P,{col:3},e.createElement(v.Z,null,O({id:"Settings.webhooks.trigger.test",defaultMessage:"Test-trigger"}))),e.createElement(S.P,{col:3},e.createElement($,{isPending:n,statusCode:c})),e.createElement(S.P,{col:6},n?e.createElement(m,{onCancel:a}):e.createElement(E,{statusCode:c,message:h}))))};y.defaultProps={isPending:!1,onCancel(){},response:{}},y.propTypes={isPending:u().bool,onCancel:u().func,response:u().object};var N=y,k=t(24346);const ge=/(^$)|(^[A-Za-z][_0-9A-Za-z ]*$)/,Ee=/(^$)|((https?:\/\/.*)(d*)\/?(.*))/,he=({formatMessage:n})=>k.Ry().shape({name:k.Z_().required(n({id:"Settings.webhooks.validation.name.required",defaultMessage:"Name is required"})).matches(ge,n({id:"Settings.webhooks.validation.name.regex",defaultMessage:"The name must start with a letter and only contain letters, numbers, spaces and underscores"})),url:k.Z_().required(n({id:"Settings.webhooks.validation.url.required",defaultMessage:"Url is required"})).matches(Ee,n({id:"Settings.webhooks.validation.url.regex",defaultMessage:"The value must be a valid Url"})),headers:k.Vo(a=>{let o=k.IX();if(a.length===1){const{key:c,value:h}=a[0];if(!c&&!h)return o}return o.of(k.Ry().shape({key:k.Z_().required(n({id:"Settings.webhooks.validation.key",defaultMessage:"Key is required"})),value:k.Z_().required(n({id:"Settings.webhooks.validation.value",defaultMessage:"Value is required"}))}))}),events:k.IX()}),ue=({handleSubmit:n,triggerWebhook:a,isCreating:o,isTriggering:c,triggerResponse:h,data:O})=>{const{formatMessage:l}=(0,B.Z)(),[H,z]=(0,e.useState)(!1),p=(0,oe.c)(J,async()=>(await t.e(7030).then(t.bind(t,61442))).EventTableEE),x=Z=>Object.keys(Z).length?Object.entries(Z).map(([ne,ae])=>({key:ne,value:ae})):[{key:"",value:""}],R=(0,D.TA)({initialValues:{name:O?.name||"",url:O?.url||"",headers:x(O?.headers||{}),events:O?.events||[]},onSubmit(Z,{resetForm:ne,setSubmitting:ae}){n(Z),ne({values:Z}),ae(!1)},validationSchema:he({formatMessage:l}),validateOnChange:!1,validateOnBlur:!1});return p?e.createElement(D.Hy,{value:R},e.createElement(g.l0,{onSubmit:R.handleSubmit},e.createElement(U.T,{primaryAction:e.createElement(i.k,{gap:2},e.createElement(se.z,{onClick:()=>{a(),z(!0)},variant:"tertiary",startIcon:e.createElement(ie.Z,null),disabled:o||c,size:"L"},l({id:"Settings.webhooks.trigger",defaultMessage:"Trigger"})),e.createElement(se.z,{startIcon:e.createElement(f.Z,null),type:"submit",size:"L",disabled:!R.dirty,loading:R.isSubmitting},l({id:"global.save",defaultMessage:"Save"}))),title:o?l({id:"Settings.webhooks.create",defaultMessage:"Create a webhook"}):O?.name,navigationAction:e.createElement(g.rU,{startIcon:e.createElement(Y.Z,null),to:"/settings/webhooks"},l({id:"global.back",defaultMessage:"Back"}))}),e.createElement(re.D,null,e.createElement(i.k,{direction:"column",alignItems:"stretch",gap:4},H&&e.createElement(N,{isPending:c,response:h,onCancel:()=>z(!1)}),e.createElement(j.x,{background:"neutral0",padding:8,shadow:"filterShadow",hasRadius:!0},e.createElement(i.k,{direction:"column",alignItems:"stretch",gap:6},e.createElement(X.r,{gap:6},e.createElement(S.P,{col:6},e.createElement(D.gN,{as:Q.o,name:"name",error:R?.errors?.name&&R.errors.name,label:l({id:"global.name",defaultMessage:"Name"}),required:!0})),e.createElement(S.P,{col:12},e.createElement(D.gN,{as:Q.o,name:"url",error:R?.errors?.url&&R.errors.url,label:l({id:"Settings.roles.form.input.url",defaultMessage:"Url"}),required:!0}))),e.createElement(C,null),e.createElement(p,null))))))):null};ue.propTypes={data:u().object,handleSubmit:u().func.isRequired,triggerWebhook:u().func.isRequired,isCreating:u().bool.isRequired,isTriggering:u().bool.isRequired,triggerResponse:u().object},ue.defaultProps={data:void 0,triggerResponse:void 0};var pe=ue;const me=n=>({...n,headers:n.headers.reduce((a,{key:o,value:c})=>(o!==""&&(a[o]=c),a),{})});var fe=()=>{const{params:{id:n}}=(0,W.$B)("/settings/webhooks/:id"),a=n==="create",{replace:o}=(0,W.k6)(),c=(0,g.lm)(),{formatAPIError:h}=(0,g.So)(),O=(0,b.useQueryClient)(),{isLoading:l}=(0,K.G)(),{put:H,get:z,post:p}=(0,g.kY)(),{isLoading:x,data:R,error:Z}=(0,b.useQuery)(["webhooks",n],async()=>{const{data:{data:I}}=await z(`/admin/webhooks/${n}`);return I},{enabled:!a});e.useEffect(()=>{Z&&c({type:"warning",message:h(Z)})},[Z,c,h]);const{isLoading:ne,data:ae,isIdle:ve,mutate:Me}=(0,b.useMutation)(()=>p(`/admin/webhooks/${n}/trigger`)),Ce=()=>Me(null,{onError(I){c({type:"warning",message:h(I)})}}),ye=(0,b.useMutation)(I=>p("/admin/webhooks",I)),Pe=(0,b.useMutation)(({id:I,body:V})=>H(`/admin/webhooks/${I}`,V)),be=async I=>{if(a){ye.mutate(me(I),{onSuccess({data:V}){c({type:"success",message:{id:"Settings.webhooks.created"}}),o(`/settings/webhooks/${V.data.id}`)},onError(V){c({type:"warning",message:h(V)})}});return}Pe.mutate({id:n,body:me(I)},{onSuccess(){O.invalidateQueries(["webhooks",n]),c({type:"success",message:{id:"notification.form.success.fields"}})},onError(V){c({type:"warning",message:h(V)})}})};return x||l?e.createElement(g.dO,null):e.createElement(T.o,null,e.createElement(g.SL,{name:"Webhooks"}),e.createElement(pe,{data:R,handleSubmit:be,triggerWebhook:Ce,isCreating:a,isTriggering:ne,isTriggerIdle:ve,triggerResponse:ae?.data.data}))}},5722:function(G,P,t){t.r(P);var e=t(32735),T=t(59407),g=t(15062),b=t(30305),W=t(77476);const K=()=>{const U=(0,g.v9)(b._);return e.createElement(T.O4,{permissions:U.settings.webhooks.create},e.createElement(W.Z,null))};P.default=K},63939:function(G,P,t){t.r(P);var e=t(32735),T=t(59407),g=t(15062),b=t(30305),W=t(77476);const K=()=>{const U=(0,g.v9)(b._);return e.createElement(T.O4,{permissions:U.settings.webhooks.update},e.createElement(W.Z,null))};P.default=K},8241:function(G,P,t){t.d(P,{O:function(){return T}});var e=t(70843);const T=e.Wx},70788:function(G,P,t){t.d(P,{Z:function(){return g}});var e=t(74512);const T=b=>(0,e.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1rem",height:"1rem",fill:"none",viewBox:"0 0 24 24",...b,children:(0,e.jsx)("path",{fill:"#212134",d:"M24 13.3a.2.2 0 0 1-.2.2H5.74l8.239 8.239a.2.2 0 0 1 0 .282L12.14 23.86a.2.2 0 0 1-.282 0L.14 12.14a.2.2 0 0 1 0-.282L11.86.14a.2.2 0 0 1 .282 0L13.98 1.98a.2.2 0 0 1 0 .282L5.74 10.5H23.8c.11 0 .2.09.2.2v2.6Z"})}),g=T}}]);
@@ -1,4 +1,4 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[4121],{80290:function(R,h,t){t.r(h),t.d(h,{default:function(){return ue}});var e=t(32735),s=t(43806),c=t(15062),u=t(30305),g=t(36150),L=t(99226),S=t(95162),D=t(64092),P=t(95181),l=t(8365),y=t(91779),j=t(56932),U=t(77981),_=t(23699),ee=t(22116),te=t(41013),K=t(45037),i=t(27947),V=t(96669),ne=t(99320),ae=t(1690),k=t(84642),E=t(74512),F=t(8471);const w=F.ZP.div`
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[4121],{80290:function(R,h,t){t.r(h),t.d(h,{default:function(){return ue}});var e=t(32735),s=t(59407),c=t(15062),u=t(30305),g=t(36150),L=t(99226),S=t(95162),D=t(64092),P=t(95181),l=t(8365),C=t(91779),j=t(56932),U=t(77981),_=t(23699),ee=t(22116),te=t(41013),K=t(45037),i=t(27947),V=t(96669),ne=t(99320),ae=t(1690),k=t(84642),E=t(74512),F=t(8471);const w=F.ZP.div`
2
2
  background: ${({theme:o})=>o.colors.danger500};
3
3
  border: none;
4
4
  border-radius: 16px;
@@ -39,7 +39,7 @@
39
39
  &[aria-checked='true'] ${w}:before {
40
40
  transform: translateX(1rem);
41
41
  }
42
- `,oe=e.forwardRef(({label:o,onChange:m,onLabel:f="On",offLabel:d="Off",selected:M,visibleLabels:a=!1,...v},b)=>(0,E.jsx)(se,{ref:b,role:"switch","aria-checked":M,"aria-label":o,onClick:m,visibleLabels:a,type:"button",...v,children:(0,E.jsxs)(k.k,{children:[(0,E.jsxs)(w,{children:[(0,E.jsx)("span",{children:f}),(0,E.jsx)("span",{children:d})]}),a&&(0,E.jsx)(U.x,{as:"span","aria-hidden":!0,paddingLeft:2,color:M?"success600":"danger600",children:M?f:d})]})}));var z=t(14763),le=t(80564),$=t(82064),H=t(94997),re=t(63318),ie=t(23982),de=t(67879),B=t(20108),N=t(53038),ce=()=>{const[o,m]=(0,e.useState)(!1),[f,d]=(0,e.useState)([]),M=(0,c.v9)(u._),{formatMessage:a}=(0,de.Z)(),{formatAPIError:v}=(0,s.So)(),b=(0,s.lm)();(0,s.go)();const{push:me}=(0,N.k6)(),{pathname:Q}=(0,N.TH)(),{isLoading:he,allowedActions:{canCreate:O,canUpdate:Y,canDelete:G}}=(0,s.ss)(M.settings.webhooks),{get:ge,post:Ee,put:fe}=(0,s.kY)(),{notifyStatus:X}=(0,g.G)(),ve="webhooks",{isLoading:be,data:x,error:Z,refetch:J}=(0,B.useQuery)(ve,async()=>{const{data:{data:n}}=await ge("/admin/webhooks");return n});(0,e.useEffect)(()=>{if(Z){b({type:"warning",message:v(Z)});return}x&&X(a({id:"Settings.webhooks.list.loading.success",defaultMessage:"Webhooks have been loaded"}))},[x,Z,b,a,X,v]);const q=(0,B.useMutation)(async()=>{await Ee("/admin/webhooks/batch-delete",{ids:f})},{onError(n){b({type:"warning",message:v(n)}),m(!1)},onSuccess(){d([]),m(!1),J()}}),xe=(0,B.useMutation)(async({isEnabled:n,id:r})=>{const{id:T,...I}=x.find(Te=>Te.id===r)??{},Ce={...I,isEnabled:n};await fe(`/admin/webhooks/${r}`,Ce)},{onError(n){b({type:"warning",message:v(n)})},onSuccess(){J()}}),Me=()=>q.mutate(),pe=n=>d(n?x.map(r=>r.id):[]),ye=(n,r)=>d(n?T=>[...T,r]:T=>T.filter(I=>I!==r)),W=n=>me(`${Q}/${n}`),A=he||be,C=x?.length??0,p=f.length;return e.createElement(L.A,null,e.createElement(s.SL,{name:"Webhooks"}),e.createElement(S.o,{"aria-busy":A},e.createElement(D.T,{title:a({id:"Settings.webhooks.title",defaultMessage:"Webhooks"}),subtitle:a({id:"Settings.webhooks.list.description",defaultMessage:"Get POST changes notifications"}),primaryAction:O&&!A&&e.createElement(s.Qj,{startIcon:e.createElement($.Z,null),variant:"default",to:`${Q}/create`,size:"S"},a({id:"Settings.webhooks.list.button.add",defaultMessage:"Create new webhook"}))}),p>0&&G&&e.createElement(P.Z,{startActions:e.createElement(e.Fragment,null,e.createElement(l.Z,{variant:"epsilon",textColor:"neutral600"},a({id:"Settings.webhooks.to.delete",defaultMessage:"{webhooksToDeleteLength, plural, one {# webhook} other {# webhooks}} selected"},{webhooksToDeleteLength:p})),e.createElement(y.z,{onClick:()=>m(!0),startIcon:e.createElement(H.Z,null),size:"L",variant:"danger-light"},a({id:"global.delete",defaultMessage:"Delete"})))}),e.createElement(j.D,null,A?e.createElement(U.x,{background:"neutral0",padding:6,shadow:"filterShadow",hasRadius:!0},e.createElement(s.dO,null)):C>0?e.createElement(_.i,{colCount:5,rowCount:C+1,footer:e.createElement(ee.c,{onClick:()=>O?W("create"):{},icon:e.createElement($.Z,null)},a({id:"Settings.webhooks.list.button.add",defaultMessage:"Create new webhook"}))},e.createElement(te.h,null,e.createElement(K.Tr,null,e.createElement(i.Th,null,e.createElement(V.C,{"aria-label":a({id:"global.select-all-entries",defaultMessage:"Select all entries"}),indeterminate:p>0&&p<C,value:p===C,onValueChange:pe})),e.createElement(i.Th,{width:"20%"},e.createElement(l.Z,{variant:"sigma",textColor:"neutral600"},a({id:"global.name",defaultMessage:"Name"}))),e.createElement(i.Th,{width:"60%"},e.createElement(l.Z,{variant:"sigma",textColor:"neutral600"},a({id:"Settings.webhooks.form.url",defaultMessage:"URL"}))),e.createElement(i.Th,{width:"20%"},e.createElement(l.Z,{variant:"sigma",textColor:"neutral600"},a({id:"Settings.webhooks.list.th.status",defaultMessage:"Status"}))),e.createElement(i.Th,null,e.createElement(ne.T,null,a({id:"Settings.webhooks.list.th.actions",defaultMessage:"Actions"}))))),e.createElement(ae.p,null,x.map(n=>e.createElement(K.Tr,{key:n.id,...(0,s.X7)({fn:()=>W(n.id),condition:Y})},e.createElement(i.Td,{...s.UW},e.createElement(V.C,{"aria-label":`${a({id:"global.select",defaultMessage:"Select"})} ${n.name}`,value:f?.includes(n.id),onValueChange:r=>ye(r,n.id),name:"select"})),e.createElement(i.Td,null,e.createElement(l.Z,{fontWeight:"semiBold",textColor:"neutral800"},n.name)),e.createElement(i.Td,null,e.createElement(l.Z,{textColor:"neutral800"},n.url)),e.createElement(i.Td,null,e.createElement(k.k,null,e.createElement(oe,{onLabel:a({id:"global.enabled",defaultMessage:"Enabled"}),offLabel:a({id:"global.disabled",defaultMessage:"Disabled"}),label:`${n.name} ${a({id:"Settings.webhooks.list.th.status",defaultMessage:"Status"})}`,selected:n.isEnabled,onChange:r=>{r.stopPropagation(),xe.mutate({isEnabled:!n.isEnabled,id:n.id})},visibleLabels:!0}))),e.createElement(i.Td,null,e.createElement(k.k,{gap:1},Y&&e.createElement(z.h,{label:a({id:"Settings.webhooks.events.update",defaultMessage:"Update"}),icon:e.createElement(re.Z,null),noBorder:!0}),G&&e.createElement(z.h,{onClick:r=>{r.stopPropagation(),d([n.id]),m(!0)},label:a({id:"Settings.webhooks.events.delete",defaultMessage:"Delete webhook"}),icon:e.createElement(H.Z,null),noBorder:!0}))))))):e.createElement(le.x,{icon:e.createElement(ie.Z,{width:"160px"}),content:a({id:"Settings.webhooks.list.empty.description",defaultMessage:"No webhooks found"}),action:e.createElement(y.z,{variant:"secondary",startIcon:e.createElement($.Z,null),onClick:()=>O?W("create"):{}},a({id:"Settings.webhooks.list.button.add",defaultMessage:"Create new webhook"}))}))),e.createElement(s.QH,{isOpen:o,onToggleDialog:()=>m(n=>!n),onConfirm:Me,isConfirmButtonLoading:q.isLoading}))},ue=()=>{const o=(0,c.v9)(u._);return e.createElement(s.O4,{permissions:o.settings.webhooks.main},e.createElement(ce,null))}},95181:function(R,h,t){t.d(h,{Z:function(){return c}});var e=t(74512),s=t(84642);const c=({startActions:u,endActions:g})=>!u&&!g?null:(0,e.jsxs)(s.k,{justifyContent:"space-between",alignItems:"flex-start",paddingBottom:4,paddingLeft:10,paddingRight:10,children:[(0,e.jsx)(s.k,{gap:2,wrap:"wrap",children:u}),(0,e.jsx)(s.k,{gap:2,shrink:0,wrap:"wrap",children:g})]})},22116:function(R,h,t){t.d(h,{c:function(){return P}});var e=t(74512),s=t(8471),c=t(77981),u=t(2775),g=t(84642),L=t(8365);const S=(0,s.ZP)(c.x)`
42
+ `,oe=e.forwardRef(({label:o,onChange:m,onLabel:f="On",offLabel:d="Off",selected:M,visibleLabels:a=!1,...v},b)=>(0,E.jsx)(se,{ref:b,role:"switch","aria-checked":M,"aria-label":o,onClick:m,visibleLabels:a,type:"button",...v,children:(0,E.jsxs)(k.k,{children:[(0,E.jsxs)(w,{children:[(0,E.jsx)("span",{children:f}),(0,E.jsx)("span",{children:d})]}),a&&(0,E.jsx)(U.x,{as:"span","aria-hidden":!0,paddingLeft:2,color:M?"success600":"danger600",children:M?f:d})]})}));var z=t(14763),le=t(80564),$=t(82064),H=t(94997),re=t(63318),ie=t(23982),de=t(67879),B=t(20108),N=t(53038),ce=()=>{const[o,m]=(0,e.useState)(!1),[f,d]=(0,e.useState)([]),M=(0,c.v9)(u._),{formatMessage:a}=(0,de.Z)(),{formatAPIError:v}=(0,s.So)(),b=(0,s.lm)();(0,s.go)();const{push:me}=(0,N.k6)(),{pathname:Q}=(0,N.TH)(),{isLoading:he,allowedActions:{canCreate:O,canUpdate:Y,canDelete:G}}=(0,s.ss)(M.settings.webhooks),{get:ge,post:Ee,put:fe}=(0,s.kY)(),{notifyStatus:X}=(0,g.G)(),ve="webhooks",{isLoading:be,data:x,error:Z,refetch:J}=(0,B.useQuery)(ve,async()=>{const{data:{data:n}}=await ge("/admin/webhooks");return n});(0,e.useEffect)(()=>{if(Z){b({type:"warning",message:v(Z)});return}x&&X(a({id:"Settings.webhooks.list.loading.success",defaultMessage:"Webhooks have been loaded"}))},[x,Z,b,a,X,v]);const q=(0,B.useMutation)(async()=>{await Ee("/admin/webhooks/batch-delete",{ids:f})},{onError(n){b({type:"warning",message:v(n)}),m(!1)},onSuccess(){d([]),m(!1),J()}}),xe=(0,B.useMutation)(async({isEnabled:n,id:r})=>{const{id:T,...I}=x.find(Te=>Te.id===r)??{},pe={...I,isEnabled:n};await fe(`/admin/webhooks/${r}`,pe)},{onError(n){b({type:"warning",message:v(n)})},onSuccess(){J()}}),Me=()=>q.mutate(),ye=n=>d(n?x.map(r=>r.id):[]),Ce=(n,r)=>d(n?T=>[...T,r]:T=>T.filter(I=>I!==r)),W=n=>me(`${Q}/${n}`),A=he||be,p=x?.length??0,y=f.length;return e.createElement(L.A,null,e.createElement(s.SL,{name:"Webhooks"}),e.createElement(S.o,{"aria-busy":A},e.createElement(D.T,{title:a({id:"Settings.webhooks.title",defaultMessage:"Webhooks"}),subtitle:a({id:"Settings.webhooks.list.description",defaultMessage:"Get POST changes notifications"}),primaryAction:O&&!A&&e.createElement(s.Qj,{startIcon:e.createElement($.Z,null),variant:"default",to:`${Q}/create`,size:"S"},a({id:"Settings.webhooks.list.button.add",defaultMessage:"Create new webhook"}))}),y>0&&G&&e.createElement(P.Z,{startActions:e.createElement(e.Fragment,null,e.createElement(l.Z,{variant:"epsilon",textColor:"neutral600"},a({id:"Settings.webhooks.to.delete",defaultMessage:"{webhooksToDeleteLength, plural, one {# webhook} other {# webhooks}} selected"},{webhooksToDeleteLength:y})),e.createElement(C.z,{onClick:()=>m(!0),startIcon:e.createElement(H.Z,null),size:"L",variant:"danger-light"},a({id:"global.delete",defaultMessage:"Delete"})))}),e.createElement(j.D,null,A?e.createElement(U.x,{background:"neutral0",padding:6,shadow:"filterShadow",hasRadius:!0},e.createElement(s.dO,null)):p>0?e.createElement(_.i,{colCount:5,rowCount:p+1,footer:e.createElement(ee.c,{onClick:()=>O?W("create"):{},icon:e.createElement($.Z,null)},a({id:"Settings.webhooks.list.button.add",defaultMessage:"Create new webhook"}))},e.createElement(te.h,null,e.createElement(K.Tr,null,e.createElement(i.Th,null,e.createElement(V.C,{"aria-label":a({id:"global.select-all-entries",defaultMessage:"Select all entries"}),indeterminate:y>0&&y<p,value:y===p,onValueChange:ye})),e.createElement(i.Th,{width:"20%"},e.createElement(l.Z,{variant:"sigma",textColor:"neutral600"},a({id:"global.name",defaultMessage:"Name"}))),e.createElement(i.Th,{width:"60%"},e.createElement(l.Z,{variant:"sigma",textColor:"neutral600"},a({id:"Settings.webhooks.form.url",defaultMessage:"URL"}))),e.createElement(i.Th,{width:"20%"},e.createElement(l.Z,{variant:"sigma",textColor:"neutral600"},a({id:"Settings.webhooks.list.th.status",defaultMessage:"Status"}))),e.createElement(i.Th,null,e.createElement(ne.T,null,a({id:"Settings.webhooks.list.th.actions",defaultMessage:"Actions"}))))),e.createElement(ae.p,null,x.map(n=>e.createElement(K.Tr,{key:n.id,...(0,s.X7)({fn:()=>W(n.id),condition:Y})},e.createElement(i.Td,{...s.UW},e.createElement(V.C,{"aria-label":`${a({id:"global.select",defaultMessage:"Select"})} ${n.name}`,value:f?.includes(n.id),onValueChange:r=>Ce(r,n.id),name:"select"})),e.createElement(i.Td,null,e.createElement(l.Z,{fontWeight:"semiBold",textColor:"neutral800"},n.name)),e.createElement(i.Td,null,e.createElement(l.Z,{textColor:"neutral800"},n.url)),e.createElement(i.Td,null,e.createElement(k.k,null,e.createElement(oe,{onLabel:a({id:"global.enabled",defaultMessage:"Enabled"}),offLabel:a({id:"global.disabled",defaultMessage:"Disabled"}),label:`${n.name} ${a({id:"Settings.webhooks.list.th.status",defaultMessage:"Status"})}`,selected:n.isEnabled,onChange:r=>{r.stopPropagation(),xe.mutate({isEnabled:!n.isEnabled,id:n.id})},visibleLabels:!0}))),e.createElement(i.Td,null,e.createElement(k.k,{gap:1},Y&&e.createElement(z.h,{label:a({id:"Settings.webhooks.events.update",defaultMessage:"Update"}),icon:e.createElement(re.Z,null),noBorder:!0}),G&&e.createElement(z.h,{onClick:r=>{r.stopPropagation(),d([n.id]),m(!0)},label:a({id:"Settings.webhooks.events.delete",defaultMessage:"Delete webhook"}),icon:e.createElement(H.Z,null),noBorder:!0}))))))):e.createElement(le.x,{icon:e.createElement(ie.Z,{width:"160px"}),content:a({id:"Settings.webhooks.list.empty.description",defaultMessage:"No webhooks found"}),action:e.createElement(C.z,{variant:"secondary",startIcon:e.createElement($.Z,null),onClick:()=>O?W("create"):{}},a({id:"Settings.webhooks.list.button.add",defaultMessage:"Create new webhook"}))}))),e.createElement(s.QH,{isOpen:o,onToggleDialog:()=>m(n=>!n),onConfirm:Me,isConfirmButtonLoading:q.isLoading}))},ue=()=>{const o=(0,c.v9)(u._);return e.createElement(s.O4,{permissions:o.settings.webhooks.main},e.createElement(ce,null))}},95181:function(R,h,t){t.d(h,{Z:function(){return c}});var e=t(74512),s=t(84642);const c=({startActions:u,endActions:g})=>!u&&!g?null:(0,e.jsxs)(s.k,{justifyContent:"space-between",alignItems:"flex-start",paddingBottom:4,paddingLeft:10,paddingRight:10,children:[(0,e.jsx)(s.k,{gap:2,wrap:"wrap",children:u}),(0,e.jsx)(s.k,{gap:2,shrink:0,wrap:"wrap",children:g})]})},22116:function(R,h,t){t.d(h,{c:function(){return P}});var e=t(74512),s=t(8471),c=t(77981),u=t(2775),g=t(84642),L=t(8365);const S=(0,s.ZP)(c.x)`
43
43
  height: ${24/16}rem;
44
44
  width: ${24/16}rem;
45
45
  border-radius: 50%;
@@ -60,4 +60,4 @@
60
60
  display: block;
61
61
  width: 100%;
62
62
  border: none;
63
- `,P=({children:l,icon:y,...j})=>(0,e.jsxs)("div",{children:[(0,e.jsx)(u.i,{}),(0,e.jsx)(D,{as:"button",background:"primary100",padding:5,...j,children:(0,e.jsxs)(g.k,{children:[(0,e.jsx)(S,{"aria-hidden":!0,background:"primary200",children:y}),(0,e.jsx)(c.x,{paddingLeft:3,children:(0,e.jsx)(L.Z,{variant:"pi",fontWeight:"bold",textColor:"primary600",children:l})})]})})]})}}]);
63
+ `,P=({children:l,icon:C,...j})=>(0,e.jsxs)("div",{children:[(0,e.jsx)(u.i,{}),(0,e.jsx)(D,{as:"button",background:"primary100",padding:5,...j,children:(0,e.jsxs)(g.k,{children:[(0,e.jsx)(S,{"aria-hidden":!0,background:"primary200",children:C}),(0,e.jsx)(c.x,{paddingLeft:3,children:(0,e.jsx)(L.Z,{variant:"pi",fontWeight:"bold",textColor:"primary600",children:l})})]})})]})}}]);
@@ -3,7 +3,7 @@
3
3
  * useLicenseLimitNotification
4
4
  *
5
5
  */
6
- import { useEffect } from 'react';
6
+ import * as React from 'react';
7
7
 
8
8
  import { useNotification } from '@strapi/helper-plugin';
9
9
  import isNil from 'lodash/isNil';
@@ -19,14 +19,14 @@ const BILLING_SELF_HOSTED_URL = 'https://strapi.io/billing/request-seats';
19
19
 
20
20
  export const useLicenseLimitNotification = () => {
21
21
  const { formatMessage } = useIntl();
22
- let { license, isError, isLoading } = useLicenseLimits();
22
+ const { license, isError, isLoading } = useLicenseLimits();
23
23
  const toggleNotification = useNotification();
24
24
  const { pathname } = useLocation();
25
25
 
26
26
  const { enforcementUserCount, permittedSeats, licenseLimitStatus, isHostedOnStrapiCloud } =
27
27
  license;
28
28
 
29
- useEffect(() => {
29
+ React.useEffect(() => {
30
30
  if (isError || isLoading) {
31
31
  return;
32
32
  }
@@ -80,7 +80,7 @@ export const useLicenseLimitNotification = () => {
80
80
  },
81
81
  blockTransition: true,
82
82
  onClose() {
83
- window.sessionStorage.setItem(`${STORAGE_KEY_PREFIX}-${pathname}`, true);
83
+ window.sessionStorage.setItem(`${STORAGE_KEY_PREFIX}-${pathname}`, 'true');
84
84
  },
85
85
  });
86
86
  }
@@ -6,7 +6,7 @@ import { useIntl } from 'react-intl';
6
6
  import { Redirect, useHistory } from 'react-router-dom';
7
7
  import styled from 'styled-components';
8
8
 
9
- import Logo from '../../../../../../admin/src/components/UnauthenticatedLogo';
9
+ import { Logo } from '../../../../../../admin/src/components/UnauthenticatedLogo';
10
10
  import UnauthenticatedLayout, {
11
11
  Column,
12
12
  LayoutContent,
@@ -4,10 +4,8 @@ import * as React from 'react';
4
4
  import { UserListPageCE } from '../../../../../../../admin/src/pages/SettingsPage/pages/Users/ListPage';
5
5
  import { useLicenseLimitNotification } from '../../../../../hooks/useLicenseLimitNotification';
6
6
 
7
- function UserListPageEE() {
7
+ export function UserListPageEE() {
8
8
  useLicenseLimitNotification();
9
9
 
10
10
  return <UserListPageCE />;
11
11
  }
12
-
13
- export { UserListPageEE };
@@ -4,4 +4,8 @@ module.exports = {
4
4
  preset: '../../../jest-preset.front.js',
5
5
  collectCoverageFrom: ['<rootDir>/packages/core/admin/admin/**/*.js'],
6
6
  displayName: 'Core admin',
7
+ moduleNameMapper: {
8
+ '^@tests/(.*)$': '<rootDir>/admin/tests/$1',
9
+ },
10
+ setupFilesAfterEnv: ['./admin/tests/setup.ts'],
7
11
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strapi/admin",
3
- "version": "4.14.3",
3
+ "version": "4.14.5",
4
4
  "description": "Strapi Admin",
5
5
  "repository": {
6
6
  "type": "git",
@@ -23,34 +23,36 @@
23
23
  "scripts": {
24
24
  "analyze:bundle": "ANALYZE_BUNDLE=true webpack --config webpack.config.dev.js",
25
25
  "analyze:deps": "ANALYZE_DEPS=true webpack serve --config webpack.config.dev.js --progress profile",
26
+ "build": "rimraf build && node ./scripts/build.js",
27
+ "build:measure": "rimraf build && cross-env MEASURE_BUILD_SPEED=true node ./scripts/build.js",
26
28
  "create:plugin-file": "node ./scripts/create-dev-plugins-file.js",
27
29
  "develop": "yarn create:plugin-file && yarn develop:webpack",
28
30
  "develop:webpack": "cross-env NODE_ENV=development webpack serve --config webpack.config.dev.js --progress profile",
31
+ "lint": "run -T eslint .",
29
32
  "prepublishOnly": "yarn build",
30
- "build": "rimraf build && node ./scripts/build.js",
31
- "build:measure": "rimraf build && cross-env MEASURE_BUILD_SPEED=true node ./scripts/build.js",
32
33
  "test": "echo \"no tests yet\"",
33
- "test:unit": "run -T jest",
34
- "test:unit:watch": "run -T jest --watch",
35
34
  "test:front": "run -T cross-env IS_EE=true jest --config ./jest.config.front.js",
36
- "test:front:watch": "run -T cross-env IS_EE=true jest --config ./jest.config.front.js --watchAll",
37
35
  "test:front:ce": "run -T cross-env IS_EE=false jest --config ./jest.config.front.js",
38
- "test:front:watch:ce": "run -T cross-env IS_EE=false jest --config ./jest.config.front.js --watchAll",
39
36
  "test:front:ce:cov": "run -T cross-env IS_EE=false jest --config ./jest.config.front.js --coverage",
40
- "lint": "run -T eslint ."
37
+ "test:front:watch": "run -T cross-env IS_EE=true jest --config ./jest.config.front.js --watchAll",
38
+ "test:front:watch:ce": "run -T cross-env IS_EE=false jest --config ./jest.config.front.js --watchAll",
39
+ "test:ts:front": "run -T tsc -p admin/tsconfig.json",
40
+ "test:unit": "run -T jest",
41
+ "test:unit:watch": "run -T jest --watch"
41
42
  },
42
43
  "dependencies": {
43
44
  "@casl/ability": "6.5.0",
44
45
  "@pmmmwh/react-refresh-webpack-plugin": "0.5.10",
45
46
  "@radix-ui/react-toolbar": "1.0.4",
46
- "@strapi/data-transfer": "4.14.3",
47
- "@strapi/design-system": "1.11.0",
48
- "@strapi/helper-plugin": "4.14.3",
49
- "@strapi/icons": "1.11.0",
50
- "@strapi/permissions": "4.14.3",
51
- "@strapi/provider-audit-logs-local": "4.14.3",
52
- "@strapi/typescript-utils": "4.14.3",
53
- "@strapi/utils": "4.14.3",
47
+ "@strapi/data-transfer": "4.14.5",
48
+ "@strapi/design-system": "1.12.2",
49
+ "@strapi/helper-plugin": "4.14.5",
50
+ "@strapi/icons": "1.12.2",
51
+ "@strapi/permissions": "4.14.5",
52
+ "@strapi/provider-audit-logs-local": "4.14.5",
53
+ "@strapi/types": "4.14.5",
54
+ "@strapi/typescript-utils": "4.14.5",
55
+ "@strapi/utils": "4.14.5",
54
56
  "axios": "1.5.0",
55
57
  "bcryptjs": "2.4.3",
56
58
  "browserslist": "^4.22.1",
@@ -66,7 +68,7 @@
66
68
  "execa": "5.1.1",
67
69
  "fast-deep-equal": "3.1.3",
68
70
  "find-root": "1.1.0",
69
- "fork-ts-checker-webpack-plugin": "7.3.0",
71
+ "fork-ts-checker-webpack-plugin": "8.0.0",
70
72
  "formik": "2.4.0",
71
73
  "fractional-indexing": "3.2.0",
72
74
  "fs-extra": "10.0.0",
@@ -133,6 +135,7 @@
133
135
  "yup": "0.32.9"
134
136
  },
135
137
  "devDependencies": {
138
+ "@strapi/admin-test-utils": "4.14.5",
136
139
  "@testing-library/dom": "9.2.0",
137
140
  "@testing-library/react": "14.0.0",
138
141
  "@testing-library/user-event": "14.4.3",
@@ -158,9 +161,13 @@
158
161
  }
159
162
  },
160
163
  "implicitDependencies": [
164
+ "@strapi/plugin-email",
165
+ "@strapi/plugin-content-manager",
166
+ "@strapi/plugin-content-type-builder",
167
+ "@strapi/plugin-upload",
161
168
  "!@strapi/data-transfer",
162
169
  "!@strapi/strapi"
163
170
  ]
164
171
  },
165
- "gitHead": "f509e0b15d77e2475bdc1ada1b26dd0ba2b1dbca"
172
+ "gitHead": "a0400e4a0f47f8169b7ce31bc9087470c291209c"
166
173
  }
package/scripts/build.js CHANGED
@@ -15,7 +15,7 @@ const smp = new SpeedMeasurePlugin();
15
15
  const buildAdmin = async () => {
16
16
  const entry = path.join(__dirname, '..', 'admin', 'src');
17
17
  const dest = path.join(__dirname, '..', 'build');
18
- const tsConfigFilePath = path.join(__dirname, '..', 'admin', 'src', 'tsconfig.json');
18
+ const tsConfigFilePath = path.join(__dirname, '..', 'admin', 'tsconfig.build.json');
19
19
 
20
20
  /**
21
21
  * We _always_ install these FE plugins, they're considered "core"
@@ -94,7 +94,11 @@ const buildAdmin = async () => {
94
94
  return acc + error.message;
95
95
  }
96
96
 
97
- return acc + error.join('\n\n');
97
+ if (Array.isArray(error)) {
98
+ return acc + error.join('\n\n');
99
+ }
100
+
101
+ return acc + error;
98
102
  }, '')
99
103
  )
100
104
  );
@@ -26,11 +26,12 @@ module.exports = {
26
26
  // When removing this we need to update the /admin/src/index.js file
27
27
  // where we set the strapi.window.isEE value
28
28
  async getProjectType() {
29
+ const flags = strapi.config.get('admin.flags', {});
29
30
  // FIXME
30
31
  try {
31
- return { data: { isEE: strapi.EE, features: ee.features.list() } };
32
+ return { data: { isEE: strapi.EE, features: ee.features.list(), flags } };
32
33
  } catch (err) {
33
- return { data: { isEE: false, features: [] } };
34
+ return { data: { isEE: false, features: [], flags } };
34
35
  }
35
36
  },
36
37
 
@@ -0,0 +1,33 @@
1
+ import type { Entity as TEntity } from '@strapi/types';
2
+
3
+ export interface Entity {
4
+ id: TEntity.ID;
5
+ createdAt: string;
6
+ updatedAt: string;
7
+ }
8
+
9
+ /**
10
+ * TODO: is there a way to infer this from the content-type schema?
11
+ * TODO: define content-type schema for a role.
12
+ */
13
+ export interface RoleEntity extends Entity {
14
+ name: string;
15
+ code: string;
16
+ description?: string;
17
+ usersCount?: number;
18
+ }
19
+
20
+ /**
21
+ * TODO: is there a way to infer this from the content-type schema?
22
+ * TODO: define content-type schema for a user.
23
+ */
24
+ export interface UserEntity extends Entity {
25
+ firstname: string;
26
+ lastname?: string;
27
+ username: null | string;
28
+ email: string;
29
+ isActive: boolean;
30
+ blocked: boolean;
31
+ preferedLanguage: null | string;
32
+ roles: RoleEntity[];
33
+ }
@@ -0,0 +1,52 @@
1
+ type Condition = {
2
+ id: string;
3
+ displayName: string;
4
+ category: string;
5
+ }
6
+
7
+ type Permission = {
8
+ action: string;
9
+ displayName: string;
10
+ plugin: string;
11
+ subCategory: string;
12
+ }
13
+
14
+ type ContentTypePermission = {
15
+ actionId: string;
16
+ applyToProperties: string[];
17
+ label: string;
18
+ subjects: string[];
19
+ }
20
+
21
+ type ContentTypeSubject = {
22
+ uid: string;
23
+ label: string;
24
+ properties: ContentTypeSubjectProperties[];
25
+ };
26
+
27
+ type ContentTypeSubjectPropertyChild = {
28
+ label: string;
29
+ value: string;
30
+ required?: boolean;
31
+ }
32
+
33
+ type ContentTypeSubjectProperties = {
34
+ label: string;
35
+ value: string;
36
+ children: ContentTypeSubjectPropertyChild[];
37
+ }
38
+
39
+ type ContentTypePermissions = {
40
+ actions: ContentTypePermission[];
41
+ subjects: ContentTypeSubject[];
42
+ }
43
+
44
+ export interface RolePermissions {
45
+ conditions: Condition[];
46
+ sections: {
47
+ plugins: Permission[];
48
+ settings: Permission[];
49
+ singleTypes: ContentTypePermissions;
50
+ collectionTypes: ContentTypePermissions;
51
+ }
52
+ }
package/webpack.config.js CHANGED
@@ -91,6 +91,7 @@ module.exports = ({
91
91
  options: {
92
92
  loader: 'tsx',
93
93
  target: buildTarget,
94
+ jsx: 'automatic',
94
95
  },
95
96
  },
96
97
  {
@@ -1,11 +0,0 @@
1
- import semver from 'semver';
2
-
3
- const checkLatestStrapiVersion = (currentPackageVersion, latestPublishedVersion) => {
4
- if (!semver.valid(currentPackageVersion) || !semver.valid(latestPublishedVersion)) {
5
- return false;
6
- }
7
-
8
- return semver.lt(currentPackageVersion, latestPublishedVersion);
9
- };
10
-
11
- export default checkLatestStrapiVersion;