@strapi/admin 5.37.1 → 5.38.1

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 (992) hide show
  1. package/dist/admin/admin/src/App.js +1 -1
  2. package/dist/admin/admin/src/App.js.map +1 -1
  3. package/dist/admin/admin/src/App.mjs +1 -1
  4. package/dist/admin/admin/src/App.mjs.map +1 -1
  5. package/dist/admin/admin/src/StrapiApp.js.map +1 -1
  6. package/dist/admin/admin/src/StrapiApp.mjs +2 -2
  7. package/dist/admin/admin/src/StrapiApp.mjs.map +1 -1
  8. package/dist/admin/admin/src/assets/images/free-trial.png.js.map +1 -1
  9. package/dist/admin/admin/src/assets/images/free-trial.png.mjs.map +1 -1
  10. package/dist/admin/admin/src/assets/images/logo-strapi-2022.svg.js.map +1 -1
  11. package/dist/admin/admin/src/assets/images/logo-strapi-2022.svg.mjs.map +1 -1
  12. package/dist/admin/admin/src/components/ConfirmDialog.js.map +1 -1
  13. package/dist/admin/admin/src/components/ConfirmDialog.mjs.map +1 -1
  14. package/dist/admin/admin/src/components/ContentBox.js.map +1 -1
  15. package/dist/admin/admin/src/components/ContentBox.mjs.map +1 -1
  16. package/dist/admin/admin/src/components/Context.js.map +1 -1
  17. package/dist/admin/admin/src/components/Context.mjs.map +1 -1
  18. package/dist/admin/admin/src/components/DescriptionComponentRenderer.js.map +1 -1
  19. package/dist/admin/admin/src/components/DescriptionComponentRenderer.mjs.map +1 -1
  20. package/dist/admin/admin/src/components/DragLayer.js.map +1 -1
  21. package/dist/admin/admin/src/components/DragLayer.mjs.map +1 -1
  22. package/dist/admin/admin/src/components/ErrorElement.js.map +1 -1
  23. package/dist/admin/admin/src/components/ErrorElement.mjs.map +1 -1
  24. package/dist/admin/admin/src/components/Filters.js.map +1 -1
  25. package/dist/admin/admin/src/components/Filters.mjs +1 -1
  26. package/dist/admin/admin/src/components/Filters.mjs.map +1 -1
  27. package/dist/admin/admin/src/components/Form.js +14 -0
  28. package/dist/admin/admin/src/components/Form.js.map +1 -1
  29. package/dist/admin/admin/src/components/Form.mjs +15 -1
  30. package/dist/admin/admin/src/components/Form.mjs.map +1 -1
  31. package/dist/admin/admin/src/components/FormInputs/Boolean.js.map +1 -1
  32. package/dist/admin/admin/src/components/FormInputs/Boolean.mjs.map +1 -1
  33. package/dist/admin/admin/src/components/FormInputs/Checkbox.js.map +1 -1
  34. package/dist/admin/admin/src/components/FormInputs/Checkbox.mjs.map +1 -1
  35. package/dist/admin/admin/src/components/FormInputs/Date.js.map +1 -1
  36. package/dist/admin/admin/src/components/FormInputs/Date.mjs.map +1 -1
  37. package/dist/admin/admin/src/components/FormInputs/DateTime.js.map +1 -1
  38. package/dist/admin/admin/src/components/FormInputs/DateTime.mjs.map +1 -1
  39. package/dist/admin/admin/src/components/FormInputs/Email.js.map +1 -1
  40. package/dist/admin/admin/src/components/FormInputs/Email.mjs.map +1 -1
  41. package/dist/admin/admin/src/components/FormInputs/Enumeration.js.map +1 -1
  42. package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs.map +1 -1
  43. package/dist/admin/admin/src/components/FormInputs/Json.js.map +1 -1
  44. package/dist/admin/admin/src/components/FormInputs/Json.mjs.map +1 -1
  45. package/dist/admin/admin/src/components/FormInputs/Number.js.map +1 -1
  46. package/dist/admin/admin/src/components/FormInputs/Number.mjs.map +1 -1
  47. package/dist/admin/admin/src/components/FormInputs/Password.js.map +1 -1
  48. package/dist/admin/admin/src/components/FormInputs/Password.mjs.map +1 -1
  49. package/dist/admin/admin/src/components/FormInputs/Renderer.js.map +1 -1
  50. package/dist/admin/admin/src/components/FormInputs/Renderer.mjs.map +1 -1
  51. package/dist/admin/admin/src/components/FormInputs/String.js.map +1 -1
  52. package/dist/admin/admin/src/components/FormInputs/String.mjs.map +1 -1
  53. package/dist/admin/admin/src/components/FormInputs/Textarea.js.map +1 -1
  54. package/dist/admin/admin/src/components/FormInputs/Textarea.mjs.map +1 -1
  55. package/dist/admin/admin/src/components/FormInputs/Time.js.map +1 -1
  56. package/dist/admin/admin/src/components/FormInputs/Time.mjs.map +1 -1
  57. package/dist/admin/admin/src/components/GapDropZone.js.map +1 -1
  58. package/dist/admin/admin/src/components/GapDropZone.mjs.map +1 -1
  59. package/dist/admin/admin/src/components/GradientBadge.js.map +1 -1
  60. package/dist/admin/admin/src/components/GradientBadge.mjs.map +1 -1
  61. package/dist/admin/admin/src/components/GuidedTour/Context.js.map +1 -1
  62. package/dist/admin/admin/src/components/GuidedTour/Context.mjs.map +1 -1
  63. package/dist/admin/admin/src/components/GuidedTour/GuidedTourProvider.js.map +1 -1
  64. package/dist/admin/admin/src/components/GuidedTour/GuidedTourProvider.mjs.map +1 -1
  65. package/dist/admin/admin/src/components/GuidedTour/Overview.js.map +1 -1
  66. package/dist/admin/admin/src/components/GuidedTour/Overview.mjs +1 -1
  67. package/dist/admin/admin/src/components/GuidedTour/Overview.mjs.map +1 -1
  68. package/dist/admin/admin/src/components/GuidedTour/Steps/ApiTokensSteps.js.map +1 -1
  69. package/dist/admin/admin/src/components/GuidedTour/Steps/ApiTokensSteps.mjs +1 -1
  70. package/dist/admin/admin/src/components/GuidedTour/Steps/ApiTokensSteps.mjs.map +1 -1
  71. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentManagerSteps.js.map +1 -1
  72. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentManagerSteps.mjs.map +1 -1
  73. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.js.map +1 -1
  74. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.mjs.map +1 -1
  75. package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js.map +1 -1
  76. package/dist/admin/admin/src/components/GuidedTour/Steps/Step.mjs +2 -2
  77. package/dist/admin/admin/src/components/GuidedTour/Steps/Step.mjs.map +1 -1
  78. package/dist/admin/admin/src/components/GuidedTour/Tours.js +1 -1
  79. package/dist/admin/admin/src/components/GuidedTour/Tours.js.map +1 -1
  80. package/dist/admin/admin/src/components/GuidedTour/Tours.mjs +2 -2
  81. package/dist/admin/admin/src/components/GuidedTour/Tours.mjs.map +1 -1
  82. package/dist/admin/admin/src/components/GuidedTour/utils/constants.js.map +1 -1
  83. package/dist/admin/admin/src/components/GuidedTour/utils/constants.mjs.map +1 -1
  84. package/dist/admin/admin/src/components/GuidedTour/utils/migrations.js.map +1 -1
  85. package/dist/admin/admin/src/components/GuidedTour/utils/migrations.mjs.map +1 -1
  86. package/dist/admin/admin/src/components/LanguageProvider.js.map +1 -1
  87. package/dist/admin/admin/src/components/LanguageProvider.mjs.map +1 -1
  88. package/dist/admin/admin/src/components/Layouts/ActionLayout.js.map +1 -1
  89. package/dist/admin/admin/src/components/Layouts/ActionLayout.mjs.map +1 -1
  90. package/dist/admin/admin/src/components/Layouts/ContentLayout.js.map +1 -1
  91. package/dist/admin/admin/src/components/Layouts/ContentLayout.mjs.map +1 -1
  92. package/dist/admin/admin/src/components/Layouts/GridLayout.js.map +1 -1
  93. package/dist/admin/admin/src/components/Layouts/GridLayout.mjs.map +1 -1
  94. package/dist/admin/admin/src/components/Layouts/HeaderLayout.js.map +1 -1
  95. package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs +1 -1
  96. package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs.map +1 -1
  97. package/dist/admin/admin/src/components/Layouts/Layout.js.map +1 -1
  98. package/dist/admin/admin/src/components/Layouts/Layout.mjs +1 -1
  99. package/dist/admin/admin/src/components/Layouts/Layout.mjs.map +1 -1
  100. package/dist/admin/admin/src/components/LeftMenu.js.map +1 -1
  101. package/dist/admin/admin/src/components/LeftMenu.mjs +1 -1
  102. package/dist/admin/admin/src/components/LeftMenu.mjs.map +1 -1
  103. package/dist/admin/admin/src/components/MainNav/MainNav.js.map +1 -1
  104. package/dist/admin/admin/src/components/MainNav/MainNav.mjs.map +1 -1
  105. package/dist/admin/admin/src/components/MainNav/MainNavLinks.js.map +1 -1
  106. package/dist/admin/admin/src/components/MainNav/MainNavLinks.mjs +1 -1
  107. package/dist/admin/admin/src/components/MainNav/MainNavLinks.mjs.map +1 -1
  108. package/dist/admin/admin/src/components/MainNav/NavBrand.js.map +1 -1
  109. package/dist/admin/admin/src/components/MainNav/NavBrand.mjs.map +1 -1
  110. package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.js.map +1 -1
  111. package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.mjs +2 -2
  112. package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.mjs.map +1 -1
  113. package/dist/admin/admin/src/components/MainNav/NavLink.js.map +1 -1
  114. package/dist/admin/admin/src/components/MainNav/NavLink.mjs +2 -2
  115. package/dist/admin/admin/src/components/MainNav/NavLink.mjs.map +1 -1
  116. package/dist/admin/admin/src/components/MainNav/NavUser.js.map +1 -1
  117. package/dist/admin/admin/src/components/MainNav/NavUser.mjs +2 -2
  118. package/dist/admin/admin/src/components/MainNav/NavUser.mjs.map +1 -1
  119. package/dist/admin/admin/src/components/MainNav/TrialCountdown.js.map +1 -1
  120. package/dist/admin/admin/src/components/MainNav/TrialCountdown.mjs +1 -1
  121. package/dist/admin/admin/src/components/MainNav/TrialCountdown.mjs.map +1 -1
  122. package/dist/admin/admin/src/components/NpsSurvey.js.map +1 -1
  123. package/dist/admin/admin/src/components/NpsSurvey.mjs.map +1 -1
  124. package/dist/admin/admin/src/components/PageHelpers.js.map +1 -1
  125. package/dist/admin/admin/src/components/PageHelpers.mjs +2 -2
  126. package/dist/admin/admin/src/components/PageHelpers.mjs.map +1 -1
  127. package/dist/admin/admin/src/components/Pagination.js.map +1 -1
  128. package/dist/admin/admin/src/components/Pagination.mjs +1 -1
  129. package/dist/admin/admin/src/components/Pagination.mjs.map +1 -1
  130. package/dist/admin/admin/src/components/PluginsInitializer.js.map +1 -1
  131. package/dist/admin/admin/src/components/PluginsInitializer.mjs.map +1 -1
  132. package/dist/admin/admin/src/components/PrivateRoute.js.map +1 -1
  133. package/dist/admin/admin/src/components/PrivateRoute.mjs.map +1 -1
  134. package/dist/admin/admin/src/components/Providers.js.map +1 -1
  135. package/dist/admin/admin/src/components/Providers.mjs.map +1 -1
  136. package/dist/admin/admin/src/components/RelativeTime.js.map +1 -1
  137. package/dist/admin/admin/src/components/RelativeTime.mjs.map +1 -1
  138. package/dist/admin/admin/src/components/ResizeIndicator.js.map +1 -1
  139. package/dist/admin/admin/src/components/ResizeIndicator.mjs.map +1 -1
  140. package/dist/admin/admin/src/components/SearchInput.js.map +1 -1
  141. package/dist/admin/admin/src/components/SearchInput.mjs.map +1 -1
  142. package/dist/admin/admin/src/components/SubNav.js.map +1 -1
  143. package/dist/admin/admin/src/components/SubNav.mjs +3 -3
  144. package/dist/admin/admin/src/components/SubNav.mjs.map +1 -1
  145. package/dist/admin/admin/src/components/Table.js.map +1 -1
  146. package/dist/admin/admin/src/components/Table.mjs +1 -1
  147. package/dist/admin/admin/src/components/Table.mjs.map +1 -1
  148. package/dist/admin/admin/src/components/Theme.js.map +1 -1
  149. package/dist/admin/admin/src/components/Theme.mjs.map +1 -1
  150. package/dist/admin/admin/src/components/UnauthenticatedLogo.js.map +1 -1
  151. package/dist/admin/admin/src/components/UnauthenticatedLogo.mjs.map +1 -1
  152. package/dist/admin/admin/src/components/UpsellBanner.js.map +1 -1
  153. package/dist/admin/admin/src/components/UpsellBanner.mjs.map +1 -1
  154. package/dist/admin/admin/src/components/WidgetHelpers.js.map +1 -1
  155. package/dist/admin/admin/src/components/WidgetHelpers.mjs +3 -3
  156. package/dist/admin/admin/src/components/WidgetHelpers.mjs.map +1 -1
  157. package/dist/admin/admin/src/components/WidgetRoot.js.map +1 -1
  158. package/dist/admin/admin/src/components/WidgetRoot.mjs +2 -2
  159. package/dist/admin/admin/src/components/WidgetRoot.mjs.map +1 -1
  160. package/dist/admin/admin/src/components/Widgets.js.map +1 -1
  161. package/dist/admin/admin/src/components/Widgets.mjs +3 -3
  162. package/dist/admin/admin/src/components/Widgets.mjs.map +1 -1
  163. package/dist/admin/admin/src/constants/filters.js.map +1 -1
  164. package/dist/admin/admin/src/constants/filters.mjs.map +1 -1
  165. package/dist/admin/admin/src/constants/theme.js.map +1 -1
  166. package/dist/admin/admin/src/constants/theme.mjs.map +1 -1
  167. package/dist/admin/admin/src/constants.js.map +1 -1
  168. package/dist/admin/admin/src/constants.mjs.map +1 -1
  169. package/dist/admin/admin/src/core/apis/CustomFields.js.map +1 -1
  170. package/dist/admin/admin/src/core/apis/CustomFields.mjs.map +1 -1
  171. package/dist/admin/admin/src/core/apis/Plugin.js.map +1 -1
  172. package/dist/admin/admin/src/core/apis/Plugin.mjs.map +1 -1
  173. package/dist/admin/admin/src/core/apis/Widgets.js.map +1 -1
  174. package/dist/admin/admin/src/core/apis/Widgets.mjs.map +1 -1
  175. package/dist/admin/admin/src/core/apis/rbac.js.map +1 -1
  176. package/dist/admin/admin/src/core/apis/rbac.mjs.map +1 -1
  177. package/dist/admin/admin/src/core/apis/router.js.map +1 -1
  178. package/dist/admin/admin/src/core/apis/router.mjs.map +1 -1
  179. package/dist/admin/admin/src/core/store/configure.js.map +1 -1
  180. package/dist/admin/admin/src/core/store/configure.mjs.map +1 -1
  181. package/dist/admin/admin/src/core/store/hooks.js.map +1 -1
  182. package/dist/admin/admin/src/core/store/hooks.mjs.map +1 -1
  183. package/dist/admin/admin/src/core/utils/basename.js.map +1 -1
  184. package/dist/admin/admin/src/core/utils/basename.mjs.map +1 -1
  185. package/dist/admin/admin/src/core/utils/createHook.js.map +1 -1
  186. package/dist/admin/admin/src/core/utils/createHook.mjs.map +1 -1
  187. package/dist/admin/admin/src/features/AppInfo.js.map +1 -1
  188. package/dist/admin/admin/src/features/AppInfo.mjs.map +1 -1
  189. package/dist/admin/admin/src/features/Auth.js +0 -1
  190. package/dist/admin/admin/src/features/Auth.js.map +1 -1
  191. package/dist/admin/admin/src/features/Auth.mjs +1 -2
  192. package/dist/admin/admin/src/features/Auth.mjs.map +1 -1
  193. package/dist/admin/admin/src/features/BackButton.js.map +1 -1
  194. package/dist/admin/admin/src/features/BackButton.mjs.map +1 -1
  195. package/dist/admin/admin/src/features/Configuration.js.map +1 -1
  196. package/dist/admin/admin/src/features/Configuration.mjs.map +1 -1
  197. package/dist/admin/admin/src/features/Notifications.js.map +1 -1
  198. package/dist/admin/admin/src/features/Notifications.mjs.map +1 -1
  199. package/dist/admin/admin/src/features/StrapiApp.js.map +1 -1
  200. package/dist/admin/admin/src/features/StrapiApp.mjs.map +1 -1
  201. package/dist/admin/admin/src/features/Tracking.js.map +1 -1
  202. package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
  203. package/dist/admin/admin/src/features/Widgets.js.map +1 -1
  204. package/dist/admin/admin/src/features/Widgets.mjs +1 -1
  205. package/dist/admin/admin/src/features/Widgets.mjs.map +1 -1
  206. package/dist/admin/admin/src/hooks/useAPIErrorHandler.js.map +1 -1
  207. package/dist/admin/admin/src/hooks/useAPIErrorHandler.mjs.map +1 -1
  208. package/dist/admin/admin/src/hooks/useAdminRoles.js.map +1 -1
  209. package/dist/admin/admin/src/hooks/useAdminRoles.mjs.map +1 -1
  210. package/dist/admin/admin/src/hooks/useClipboard.js.map +1 -1
  211. package/dist/admin/admin/src/hooks/useClipboard.mjs.map +1 -1
  212. package/dist/admin/admin/src/hooks/useControllableState.js.map +1 -1
  213. package/dist/admin/admin/src/hooks/useControllableState.mjs.map +1 -1
  214. package/dist/admin/admin/src/hooks/useDebounce.js.map +1 -1
  215. package/dist/admin/admin/src/hooks/useDebounce.mjs.map +1 -1
  216. package/dist/admin/admin/src/hooks/useDeviceType.js.map +1 -1
  217. package/dist/admin/admin/src/hooks/useDeviceType.mjs.map +1 -1
  218. package/dist/admin/admin/src/hooks/useElementOnScreen.js.map +1 -1
  219. package/dist/admin/admin/src/hooks/useElementOnScreen.mjs.map +1 -1
  220. package/dist/admin/admin/src/hooks/useEnterprise.js.map +1 -1
  221. package/dist/admin/admin/src/hooks/useEnterprise.mjs.map +1 -1
  222. package/dist/admin/admin/src/hooks/useFetchClient.js.map +1 -1
  223. package/dist/admin/admin/src/hooks/useFetchClient.mjs.map +1 -1
  224. package/dist/admin/admin/src/hooks/useFocusInputField.js.map +1 -1
  225. package/dist/admin/admin/src/hooks/useFocusInputField.mjs.map +1 -1
  226. package/dist/admin/admin/src/hooks/useForceUpdate.js.map +1 -1
  227. package/dist/admin/admin/src/hooks/useForceUpdate.mjs.map +1 -1
  228. package/dist/admin/admin/src/hooks/useInjectReducer.js.map +1 -1
  229. package/dist/admin/admin/src/hooks/useInjectReducer.mjs.map +1 -1
  230. package/dist/admin/admin/src/hooks/useIsMounted.js.map +1 -1
  231. package/dist/admin/admin/src/hooks/useIsMounted.mjs.map +1 -1
  232. package/dist/admin/admin/src/hooks/useMediaQuery.js.map +1 -1
  233. package/dist/admin/admin/src/hooks/useMediaQuery.mjs.map +1 -1
  234. package/dist/admin/admin/src/hooks/useMenu.js.map +1 -1
  235. package/dist/admin/admin/src/hooks/useMenu.mjs.map +1 -1
  236. package/dist/admin/admin/src/hooks/useOnce.js.map +1 -1
  237. package/dist/admin/admin/src/hooks/useOnce.mjs.map +1 -1
  238. package/dist/admin/admin/src/hooks/usePersistentState.js.map +1 -1
  239. package/dist/admin/admin/src/hooks/usePersistentState.mjs.map +1 -1
  240. package/dist/admin/admin/src/hooks/usePrev.js.map +1 -1
  241. package/dist/admin/admin/src/hooks/usePrev.mjs.map +1 -1
  242. package/dist/admin/admin/src/hooks/useQueryParams.js.map +1 -1
  243. package/dist/admin/admin/src/hooks/useQueryParams.mjs.map +1 -1
  244. package/dist/admin/admin/src/hooks/useRBAC.js.map +1 -1
  245. package/dist/admin/admin/src/hooks/useRBAC.mjs.map +1 -1
  246. package/dist/admin/admin/src/hooks/useSettingsMenu.js.map +1 -1
  247. package/dist/admin/admin/src/hooks/useSettingsMenu.mjs.map +1 -1
  248. package/dist/admin/admin/src/hooks/useThrottledCallback.js.map +1 -1
  249. package/dist/admin/admin/src/hooks/useThrottledCallback.mjs.map +1 -1
  250. package/dist/admin/admin/src/hooks/useWarnIfUnsavedChanges.js.map +1 -1
  251. package/dist/admin/admin/src/hooks/useWarnIfUnsavedChanges.mjs.map +1 -1
  252. package/dist/admin/admin/src/layouts/AuthenticatedLayout.js.map +1 -1
  253. package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs.map +1 -1
  254. package/dist/admin/admin/src/layouts/UnauthenticatedLayout.js.map +1 -1
  255. package/dist/admin/admin/src/layouts/UnauthenticatedLayout.mjs +1 -1
  256. package/dist/admin/admin/src/layouts/UnauthenticatedLayout.mjs.map +1 -1
  257. package/dist/admin/admin/src/pages/Auth/AuthPage.js.map +1 -1
  258. package/dist/admin/admin/src/pages/Auth/AuthPage.mjs.map +1 -1
  259. package/dist/admin/admin/src/pages/Auth/components/ForgotPassword.js.map +1 -1
  260. package/dist/admin/admin/src/pages/Auth/components/ForgotPassword.mjs.map +1 -1
  261. package/dist/admin/admin/src/pages/Auth/components/ForgotPasswordSuccess.js.map +1 -1
  262. package/dist/admin/admin/src/pages/Auth/components/ForgotPasswordSuccess.mjs.map +1 -1
  263. package/dist/admin/admin/src/pages/Auth/components/Login.js.map +1 -1
  264. package/dist/admin/admin/src/pages/Auth/components/Login.mjs.map +1 -1
  265. package/dist/admin/admin/src/pages/Auth/components/Oops.js.map +1 -1
  266. package/dist/admin/admin/src/pages/Auth/components/Oops.mjs.map +1 -1
  267. package/dist/admin/admin/src/pages/Auth/components/Register.js.map +1 -1
  268. package/dist/admin/admin/src/pages/Auth/components/Register.mjs.map +1 -1
  269. package/dist/admin/admin/src/pages/Auth/components/ResetPassword.js.map +1 -1
  270. package/dist/admin/admin/src/pages/Auth/components/ResetPassword.mjs.map +1 -1
  271. package/dist/admin/admin/src/pages/Auth/constants.js.map +1 -1
  272. package/dist/admin/admin/src/pages/Auth/constants.mjs.map +1 -1
  273. package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
  274. package/dist/admin/admin/src/pages/Home/HomePage.mjs +1 -1
  275. package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
  276. package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.js.map +1 -1
  277. package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.mjs +1 -1
  278. package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.mjs.map +1 -1
  279. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.js.map +1 -1
  280. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.mjs +1 -1
  281. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.mjs.map +1 -1
  282. package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.js.map +1 -1
  283. package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.mjs +1 -1
  284. package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.mjs.map +1 -1
  285. package/dist/admin/admin/src/pages/NotFoundPage.js.map +1 -1
  286. package/dist/admin/admin/src/pages/NotFoundPage.mjs.map +1 -1
  287. package/dist/admin/admin/src/pages/ProfilePage.js.map +1 -1
  288. package/dist/admin/admin/src/pages/ProfilePage.mjs.map +1 -1
  289. package/dist/admin/admin/src/pages/Settings/Layout.js.map +1 -1
  290. package/dist/admin/admin/src/pages/Settings/Layout.mjs.map +1 -1
  291. package/dist/admin/admin/src/pages/Settings/assets/purchase-page-audit-logs-illustration-dark.jpg.js.map +1 -1
  292. package/dist/admin/admin/src/pages/Settings/assets/purchase-page-audit-logs-illustration-dark.jpg.mjs.map +1 -1
  293. package/dist/admin/admin/src/pages/Settings/assets/purchase-page-audit-logs-illustration-light.jpg.js.map +1 -1
  294. package/dist/admin/admin/src/pages/Settings/assets/purchase-page-audit-logs-illustration-light.jpg.mjs.map +1 -1
  295. package/dist/admin/admin/src/pages/Settings/assets/purchase-page-content-history-illustration-dark.jpg.js.map +1 -1
  296. package/dist/admin/admin/src/pages/Settings/assets/purchase-page-content-history-illustration-dark.jpg.mjs.map +1 -1
  297. package/dist/admin/admin/src/pages/Settings/assets/purchase-page-content-history-illustration-light.jpg.js.map +1 -1
  298. package/dist/admin/admin/src/pages/Settings/assets/purchase-page-content-history-illustration-light.jpg.mjs.map +1 -1
  299. package/dist/admin/admin/src/pages/Settings/assets/purchase-page-sso-illustration-dark.jpg.js.map +1 -1
  300. package/dist/admin/admin/src/pages/Settings/assets/purchase-page-sso-illustration-dark.jpg.mjs.map +1 -1
  301. package/dist/admin/admin/src/pages/Settings/assets/purchase-page-sso-illustration-light.jpg.js.map +1 -1
  302. package/dist/admin/admin/src/pages/Settings/assets/purchase-page-sso-illustration-light.jpg.mjs.map +1 -1
  303. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js.map +1 -1
  304. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs +1 -1
  305. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs.map +1 -1
  306. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js.map +1 -1
  307. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs +1 -1
  308. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs.map +1 -1
  309. package/dist/admin/admin/src/pages/Settings/components/Tokens/LifeSpanInput.js.map +1 -1
  310. package/dist/admin/admin/src/pages/Settings/components/Tokens/LifeSpanInput.mjs.map +1 -1
  311. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js.map +1 -1
  312. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs +2 -2
  313. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs.map +1 -1
  314. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js.map +1 -1
  315. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.mjs +1 -1
  316. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.mjs.map +1 -1
  317. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenDescription.js.map +1 -1
  318. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenDescription.mjs.map +1 -1
  319. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenName.js.map +1 -1
  320. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenName.mjs.map +1 -1
  321. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenTypeSelect.js.map +1 -1
  322. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenTypeSelect.mjs.map +1 -1
  323. package/dist/admin/admin/src/pages/Settings/constants.js.map +1 -1
  324. package/dist/admin/admin/src/pages/Settings/constants.mjs.map +1 -1
  325. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/CreateView.js.map +1 -1
  326. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/CreateView.mjs.map +1 -1
  327. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js.map +1 -1
  328. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.mjs.map +1 -1
  329. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/apiTokenPermissions.js.map +1 -1
  330. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/apiTokenPermissions.mjs.map +1 -1
  331. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/ActionBoundRoutes.js.map +1 -1
  332. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/ActionBoundRoutes.mjs.map +1 -1
  333. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js.map +1 -1
  334. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.mjs +1 -1
  335. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.mjs.map +1 -1
  336. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js.map +1 -1
  337. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.mjs +2 -2
  338. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.mjs.map +1 -1
  339. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/ContentTypesSection.js.map +1 -1
  340. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/ContentTypesSection.mjs.map +1 -1
  341. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.js.map +1 -1
  342. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.mjs.map +1 -1
  343. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/Permissions.js.map +1 -1
  344. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/Permissions.mjs.map +1 -1
  345. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/constants.js.map +1 -1
  346. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/constants.mjs.map +1 -1
  347. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/reducer.js.map +1 -1
  348. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/reducer.mjs.map +1 -1
  349. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/getDateOfExpiration.js.map +1 -1
  350. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/getDateOfExpiration.mjs.map +1 -1
  351. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.js.map +1 -1
  352. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.mjs.map +1 -1
  353. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js.map +1 -1
  354. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs.map +1 -1
  355. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js +1 -1
  356. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js.map +1 -1
  357. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs +2 -2
  358. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs.map +1 -1
  359. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js.map +1 -1
  360. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.mjs +2 -2
  361. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.mjs.map +1 -1
  362. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/utils/constants.js.map +1 -1
  363. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/utils/constants.mjs.map +1 -1
  364. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/utils/files.js.map +1 -1
  365. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/utils/files.mjs.map +1 -1
  366. package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.js.map +1 -1
  367. package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.mjs.map +1 -1
  368. package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.js.map +1 -1
  369. package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.mjs.map +1 -1
  370. package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.js.map +1 -1
  371. package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.mjs.map +1 -1
  372. package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.js.map +1 -1
  373. package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.mjs.map +1 -1
  374. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js.map +1 -1
  375. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs +1 -1
  376. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs.map +1 -1
  377. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js.map +1 -1
  378. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs +1 -1
  379. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs.map +1 -1
  380. package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.js.map +1 -1
  381. package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.mjs +1 -1
  382. package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.mjs.map +1 -1
  383. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapseLabel.js.map +1 -1
  384. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapseLabel.mjs.map +1 -1
  385. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js.map +1 -1
  386. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.mjs +1 -1
  387. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.mjs.map +1 -1
  388. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.js.map +1 -1
  389. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.mjs +1 -1
  390. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.mjs.map +1 -1
  391. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.js.map +1 -1
  392. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.mjs.map +1 -1
  393. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js.map +1 -1
  394. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs +1 -1
  395. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs.map +1 -1
  396. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypes.js.map +1 -1
  397. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypes.mjs.map +1 -1
  398. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.js.map +1 -1
  399. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.mjs.map +1 -1
  400. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/HiddenAction.js.map +1 -1
  401. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/HiddenAction.mjs.map +1 -1
  402. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js.map +1 -1
  403. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs +1 -1
  404. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs.map +1 -1
  405. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js.map +1 -1
  406. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.mjs.map +1 -1
  407. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RequiredSign.js.map +1 -1
  408. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RequiredSign.mjs.map +1 -1
  409. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.js.map +1 -1
  410. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.mjs.map +1 -1
  411. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleRow.js.map +1 -1
  412. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleRow.mjs.map +1 -1
  413. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RowLabelWithCheckbox.js.map +1 -1
  414. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RowLabelWithCheckbox.mjs.map +1 -1
  415. package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.js.map +1 -1
  416. package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.mjs.map +1 -1
  417. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/constants.js.map +1 -1
  418. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/constants.mjs.map +1 -1
  419. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/createArrayOfValues.js.map +1 -1
  420. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/createArrayOfValues.mjs.map +1 -1
  421. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/difference.js.map +1 -1
  422. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/difference.mjs.map +1 -1
  423. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.js.map +1 -1
  424. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.mjs.map +1 -1
  425. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/getCheckboxState.js.map +1 -1
  426. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/getCheckboxState.mjs.map +1 -1
  427. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/layouts.js.map +1 -1
  428. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/layouts.mjs.map +1 -1
  429. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/permissions.js.map +1 -1
  430. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/permissions.mjs.map +1 -1
  431. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/removeConditionKeyFromData.js.map +1 -1
  432. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/removeConditionKeyFromData.mjs.map +1 -1
  433. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateConditionsToFalse.js.map +1 -1
  434. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateConditionsToFalse.mjs.map +1 -1
  435. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateValues.js.map +1 -1
  436. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateValues.mjs.map +1 -1
  437. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/CreateView.js.map +1 -1
  438. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/CreateView.mjs.map +1 -1
  439. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js.map +1 -1
  440. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.mjs.map +1 -1
  441. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.js.map +1 -1
  442. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.mjs.map +1 -1
  443. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js.map +1 -1
  444. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs +1 -1
  445. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs.map +1 -1
  446. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js.map +1 -1
  447. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs.map +1 -1
  448. package/dist/admin/admin/src/pages/Settings/pages/Users/components/CreateActionCE.js.map +1 -1
  449. package/dist/admin/admin/src/pages/Settings/pages/Users/components/CreateActionCE.mjs.map +1 -1
  450. package/dist/admin/admin/src/pages/Settings/pages/Users/components/MagicLinkCE.js.map +1 -1
  451. package/dist/admin/admin/src/pages/Settings/pages/Users/components/MagicLinkCE.mjs.map +1 -1
  452. package/dist/admin/admin/src/pages/Settings/pages/Users/components/MagicLinkWrapper.js.map +1 -1
  453. package/dist/admin/admin/src/pages/Settings/pages/Users/components/MagicLinkWrapper.mjs.map +1 -1
  454. package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.js.map +1 -1
  455. package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.mjs.map +1 -1
  456. package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.js.map +1 -1
  457. package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.mjs +1 -1
  458. package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.mjs.map +1 -1
  459. package/dist/admin/admin/src/pages/Settings/pages/Users/utils/validation.js.map +1 -1
  460. package/dist/admin/admin/src/pages/Settings/pages/Users/utils/validation.mjs.map +1 -1
  461. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/CreatePage.js.map +1 -1
  462. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/CreatePage.mjs.map +1 -1
  463. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/EditPage.js.map +1 -1
  464. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/EditPage.mjs.map +1 -1
  465. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js.map +1 -1
  466. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.mjs +1 -1
  467. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.mjs.map +1 -1
  468. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.js +1 -3
  469. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.js.map +1 -1
  470. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.mjs +2 -4
  471. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.mjs.map +1 -1
  472. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/EventsTable.js.map +1 -1
  473. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/EventsTable.mjs.map +1 -1
  474. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js.map +1 -1
  475. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs +1 -1
  476. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs.map +1 -1
  477. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/TriggerContainer.js.map +1 -1
  478. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/TriggerContainer.mjs.map +1 -1
  479. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js.map +1 -1
  480. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs +1 -1
  481. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs.map +1 -1
  482. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.js.map +1 -1
  483. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.mjs.map +1 -1
  484. package/dist/admin/admin/src/pages/Settings/utils/forms.js.map +1 -1
  485. package/dist/admin/admin/src/pages/Settings/utils/forms.mjs.map +1 -1
  486. package/dist/admin/admin/src/pages/UseCasePage.js.map +1 -1
  487. package/dist/admin/admin/src/pages/UseCasePage.mjs.map +1 -1
  488. package/dist/admin/admin/src/reducer.js.map +1 -1
  489. package/dist/admin/admin/src/reducer.mjs +1 -1
  490. package/dist/admin/admin/src/reducer.mjs.map +1 -1
  491. package/dist/admin/admin/src/render.js.map +1 -1
  492. package/dist/admin/admin/src/render.mjs.map +1 -1
  493. package/dist/admin/admin/src/router.js +4 -4
  494. package/dist/admin/admin/src/router.js.map +1 -1
  495. package/dist/admin/admin/src/router.mjs.map +1 -1
  496. package/dist/admin/admin/src/selectors.js.map +1 -1
  497. package/dist/admin/admin/src/selectors.mjs.map +1 -1
  498. package/dist/admin/admin/src/services/admin.js.map +1 -1
  499. package/dist/admin/admin/src/services/admin.mjs.map +1 -1
  500. package/dist/admin/admin/src/services/api.js.map +1 -1
  501. package/dist/admin/admin/src/services/api.mjs.map +1 -1
  502. package/dist/admin/admin/src/services/apiTokens.js.map +1 -1
  503. package/dist/admin/admin/src/services/apiTokens.mjs.map +1 -1
  504. package/dist/admin/admin/src/services/auth.js.map +1 -1
  505. package/dist/admin/admin/src/services/auth.mjs.map +1 -1
  506. package/dist/admin/admin/src/services/contentApi.js.map +1 -1
  507. package/dist/admin/admin/src/services/contentApi.mjs.map +1 -1
  508. package/dist/admin/admin/src/services/homepage.js.map +1 -1
  509. package/dist/admin/admin/src/services/homepage.mjs.map +1 -1
  510. package/dist/admin/admin/src/services/transferTokens.js.map +1 -1
  511. package/dist/admin/admin/src/services/transferTokens.mjs.map +1 -1
  512. package/dist/admin/admin/src/services/users.js.map +1 -1
  513. package/dist/admin/admin/src/services/users.mjs.map +1 -1
  514. package/dist/admin/admin/src/services/webhooks.js.map +1 -1
  515. package/dist/admin/admin/src/services/webhooks.mjs.map +1 -1
  516. package/dist/admin/admin/src/translations/es.json.js +356 -120
  517. package/dist/admin/admin/src/translations/es.json.js.map +1 -1
  518. package/dist/admin/admin/src/translations/es.json.mjs +355 -121
  519. package/dist/admin/admin/src/translations/es.json.mjs.map +1 -1
  520. package/dist/admin/admin/src/translations/fr.json.js +126 -1
  521. package/dist/admin/admin/src/translations/fr.json.js.map +1 -1
  522. package/dist/admin/admin/src/translations/fr.json.mjs +126 -1
  523. package/dist/admin/admin/src/translations/fr.json.mjs.map +1 -1
  524. package/dist/admin/admin/src/translations/languageNativeNames.js.map +1 -1
  525. package/dist/admin/admin/src/translations/languageNativeNames.mjs.map +1 -1
  526. package/dist/admin/admin/src/utils/arrays.js.map +1 -1
  527. package/dist/admin/admin/src/utils/arrays.mjs.map +1 -1
  528. package/dist/admin/admin/src/utils/baseQuery.js.map +1 -1
  529. package/dist/admin/admin/src/utils/baseQuery.mjs.map +1 -1
  530. package/dist/admin/admin/src/utils/cookies.js.map +1 -1
  531. package/dist/admin/admin/src/utils/cookies.mjs.map +1 -1
  532. package/dist/admin/admin/src/utils/deviceId.js.map +1 -1
  533. package/dist/admin/admin/src/utils/deviceId.mjs.map +1 -1
  534. package/dist/admin/admin/src/utils/getFetchClient.js +1 -3
  535. package/dist/admin/admin/src/utils/getFetchClient.js.map +1 -1
  536. package/dist/admin/admin/src/utils/getFetchClient.mjs +1 -3
  537. package/dist/admin/admin/src/utils/getFetchClient.mjs.map +1 -1
  538. package/dist/admin/admin/src/utils/getPrefixedId.js.map +1 -1
  539. package/dist/admin/admin/src/utils/getPrefixedId.mjs.map +1 -1
  540. package/dist/admin/admin/src/utils/locales.js.map +1 -1
  541. package/dist/admin/admin/src/utils/locales.mjs.map +1 -1
  542. package/dist/admin/admin/src/utils/normalizeAPIError.js.map +1 -1
  543. package/dist/admin/admin/src/utils/normalizeAPIError.mjs.map +1 -1
  544. package/dist/admin/admin/src/utils/objects.js.map +1 -1
  545. package/dist/admin/admin/src/utils/objects.mjs.map +1 -1
  546. package/dist/admin/admin/src/utils/once.js.map +1 -1
  547. package/dist/admin/admin/src/utils/once.mjs.map +1 -1
  548. package/dist/admin/admin/src/utils/resizeHandlers.js.map +1 -1
  549. package/dist/admin/admin/src/utils/resizeHandlers.mjs.map +1 -1
  550. package/dist/admin/admin/src/utils/rulesEngine.js.map +1 -1
  551. package/dist/admin/admin/src/utils/rulesEngine.mjs.map +1 -1
  552. package/dist/admin/admin/src/utils/shims.js.map +1 -1
  553. package/dist/admin/admin/src/utils/shims.mjs.map +1 -1
  554. package/dist/admin/admin/src/utils/strings.js.map +1 -1
  555. package/dist/admin/admin/src/utils/strings.mjs.map +1 -1
  556. package/dist/admin/admin/src/utils/translatedErrors.js.map +1 -1
  557. package/dist/admin/admin/src/utils/translatedErrors.mjs.map +1 -1
  558. package/dist/admin/admin/src/utils/urls.js.map +1 -1
  559. package/dist/admin/admin/src/utils/urls.mjs.map +1 -1
  560. package/dist/admin/admin/src/utils/users.js.map +1 -1
  561. package/dist/admin/admin/src/utils/users.mjs.map +1 -1
  562. package/dist/admin/admin/src/utils/widgetLayout.js.map +1 -1
  563. package/dist/admin/admin/src/utils/widgetLayout.mjs.map +1 -1
  564. package/dist/admin/admin/tests/mockData.js.map +1 -1
  565. package/dist/admin/admin/tests/mockData.mjs.map +1 -1
  566. package/dist/admin/admin/tests/server.js.map +1 -1
  567. package/dist/admin/admin/tests/server.mjs.map +1 -1
  568. package/dist/admin/admin/tests/store.js.map +1 -1
  569. package/dist/admin/admin/tests/store.mjs.map +1 -1
  570. package/dist/admin/admin/tests/utils.js.map +1 -1
  571. package/dist/admin/admin/tests/utils.mjs +1 -1
  572. package/dist/admin/admin/tests/utils.mjs.map +1 -1
  573. package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.js.map +1 -1
  574. package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.mjs.map +1 -1
  575. package/dist/admin/ee/admin/src/components/GlobalNotifications.js.map +1 -1
  576. package/dist/admin/ee/admin/src/components/GlobalNotifications.mjs.map +1 -1
  577. package/dist/admin/ee/admin/src/constants.js.map +1 -1
  578. package/dist/admin/ee/admin/src/constants.mjs.map +1 -1
  579. package/dist/admin/ee/admin/src/hooks/useAIAvailability.js.map +1 -1
  580. package/dist/admin/ee/admin/src/hooks/useAIAvailability.mjs.map +1 -1
  581. package/dist/admin/ee/admin/src/hooks/useAIUsageWarning.js.map +1 -1
  582. package/dist/admin/ee/admin/src/hooks/useAIUsageWarning.mjs.map +1 -1
  583. package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.js.map +1 -1
  584. package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.mjs.map +1 -1
  585. package/dist/admin/ee/admin/src/hooks/useLicenseLimits.js.map +1 -1
  586. package/dist/admin/ee/admin/src/hooks/useLicenseLimits.mjs.map +1 -1
  587. package/dist/admin/ee/admin/src/pages/AuthPage/components/Login.js.map +1 -1
  588. package/dist/admin/ee/admin/src/pages/AuthPage/components/Login.mjs +1 -1
  589. package/dist/admin/ee/admin/src/pages/AuthPage/components/Login.mjs.map +1 -1
  590. package/dist/admin/ee/admin/src/pages/AuthPage/components/Providers.js.map +1 -1
  591. package/dist/admin/ee/admin/src/pages/AuthPage/components/Providers.mjs +1 -1
  592. package/dist/admin/ee/admin/src/pages/AuthPage/components/Providers.mjs.map +1 -1
  593. package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.js.map +1 -1
  594. package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.mjs +1 -1
  595. package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.mjs.map +1 -1
  596. package/dist/admin/ee/admin/src/pages/AuthPage/constants.js.map +1 -1
  597. package/dist/admin/ee/admin/src/pages/AuthPage/constants.mjs.map +1 -1
  598. package/dist/admin/ee/admin/src/pages/AuthResponse.js.map +1 -1
  599. package/dist/admin/ee/admin/src/pages/AuthResponse.mjs.map +1 -1
  600. package/dist/admin/ee/admin/src/pages/HomePage.js.map +1 -1
  601. package/dist/admin/ee/admin/src/pages/HomePage.mjs.map +1 -1
  602. package/dist/admin/ee/admin/src/pages/SettingsPage/constants.js.map +1 -1
  603. package/dist/admin/ee/admin/src/pages/SettingsPage/constants.mjs.map +1 -1
  604. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js.map +1 -1
  605. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.mjs +1 -1
  606. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.mjs.map +1 -1
  607. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.js.map +1 -1
  608. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.mjs.map +1 -1
  609. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.js.map +1 -1
  610. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.mjs.map +1 -1
  611. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.js.map +1 -1
  612. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.mjs.map +1 -1
  613. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.js.map +1 -1
  614. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.mjs +1 -1
  615. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.mjs.map +1 -1
  616. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.js.map +1 -1
  617. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.mjs.map +1 -1
  618. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.js.map +1 -1
  619. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.mjs.map +1 -1
  620. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.js.map +1 -1
  621. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.mjs.map +1 -1
  622. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.js.map +1 -1
  623. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.mjs.map +1 -1
  624. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js.map +1 -1
  625. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs.map +1 -1
  626. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/ListPage.js.map +1 -1
  627. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/ListPage.mjs.map +1 -1
  628. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.js.map +1 -1
  629. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.mjs.map +1 -1
  630. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE.js.map +1 -1
  631. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE.mjs.map +1 -1
  632. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm.js.map +1 -1
  633. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm.mjs.map +1 -1
  634. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Webhooks/components/EventsTable.js.map +1 -1
  635. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Webhooks/components/EventsTable.mjs.map +1 -1
  636. package/dist/admin/ee/admin/src/services/ai.js.map +1 -1
  637. package/dist/admin/ee/admin/src/services/ai.mjs.map +1 -1
  638. package/dist/admin/ee/admin/src/services/auditLogs.js.map +1 -1
  639. package/dist/admin/ee/admin/src/services/auditLogs.mjs.map +1 -1
  640. package/dist/admin/index.js +10 -6
  641. package/dist/admin/index.js.map +1 -1
  642. package/dist/admin/index.mjs +1 -0
  643. package/dist/admin/index.mjs.map +1 -1
  644. package/dist/admin/src/components/DefaultDocument.js.map +1 -1
  645. package/dist/admin/src/components/DefaultDocument.mjs.map +1 -1
  646. package/dist/admin/src/components/Form.d.ts +1 -0
  647. package/dist/admin/src/components/NoJavascript.js.map +1 -1
  648. package/dist/admin/src/components/NoJavascript.mjs.map +1 -1
  649. package/dist/admin/src/index.d.ts +1 -0
  650. package/dist/server/ee/server/src/ai/containers/ai.js +0 -4
  651. package/dist/server/ee/server/src/ai/containers/ai.js.map +1 -1
  652. package/dist/server/ee/server/src/ai/containers/ai.mjs +0 -4
  653. package/dist/server/ee/server/src/ai/containers/ai.mjs.map +1 -1
  654. package/dist/server/ee/server/src/ai/controllers/ai.js +0 -4
  655. package/dist/server/ee/server/src/ai/controllers/ai.js.map +1 -1
  656. package/dist/server/ee/server/src/ai/controllers/ai.mjs +0 -4
  657. package/dist/server/ee/server/src/ai/controllers/ai.mjs.map +1 -1
  658. package/dist/server/ee/server/src/ai/routes/ai.js.map +1 -1
  659. package/dist/server/ee/server/src/ai/routes/ai.mjs.map +1 -1
  660. package/dist/server/ee/server/src/audit-logs/content-types/audit-log.js.map +1 -1
  661. package/dist/server/ee/server/src/audit-logs/content-types/audit-log.mjs.map +1 -1
  662. package/dist/server/ee/server/src/audit-logs/controllers/audit-logs.js.map +1 -1
  663. package/dist/server/ee/server/src/audit-logs/controllers/audit-logs.mjs.map +1 -1
  664. package/dist/server/ee/server/src/audit-logs/routes/audit-logs.js.map +1 -1
  665. package/dist/server/ee/server/src/audit-logs/routes/audit-logs.mjs.map +1 -1
  666. package/dist/server/ee/server/src/audit-logs/services/audit-logs.js.map +1 -1
  667. package/dist/server/ee/server/src/audit-logs/services/audit-logs.mjs.map +1 -1
  668. package/dist/server/ee/server/src/audit-logs/services/lifecycles.js.map +1 -1
  669. package/dist/server/ee/server/src/audit-logs/services/lifecycles.mjs.map +1 -1
  670. package/dist/server/ee/server/src/audit-logs/validation/audit-logs.js.map +1 -1
  671. package/dist/server/ee/server/src/audit-logs/validation/audit-logs.mjs.map +1 -1
  672. package/dist/server/ee/server/src/bootstrap.js.map +1 -1
  673. package/dist/server/ee/server/src/bootstrap.mjs.map +1 -1
  674. package/dist/server/ee/server/src/config/admin-actions.js.map +1 -1
  675. package/dist/server/ee/server/src/config/admin-actions.mjs.map +1 -1
  676. package/dist/server/ee/server/src/content-types/index.js.map +1 -1
  677. package/dist/server/ee/server/src/content-types/index.mjs.map +1 -1
  678. package/dist/server/ee/server/src/controllers/admin.js.map +1 -1
  679. package/dist/server/ee/server/src/controllers/admin.mjs.map +1 -1
  680. package/dist/server/ee/server/src/controllers/authentication-utils/constants.js.map +1 -1
  681. package/dist/server/ee/server/src/controllers/authentication-utils/constants.mjs.map +1 -1
  682. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.js.map +1 -1
  683. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.mjs.map +1 -1
  684. package/dist/server/ee/server/src/controllers/authentication-utils/utils.js.map +1 -1
  685. package/dist/server/ee/server/src/controllers/authentication-utils/utils.mjs +1 -1
  686. package/dist/server/ee/server/src/controllers/authentication-utils/utils.mjs.map +1 -1
  687. package/dist/server/ee/server/src/controllers/authentication.js +5 -5
  688. package/dist/server/ee/server/src/controllers/authentication.js.map +1 -1
  689. package/dist/server/ee/server/src/controllers/authentication.mjs.map +1 -1
  690. package/dist/server/ee/server/src/controllers/index.js.map +1 -1
  691. package/dist/server/ee/server/src/controllers/index.mjs.map +1 -1
  692. package/dist/server/ee/server/src/controllers/role.js.map +1 -1
  693. package/dist/server/ee/server/src/controllers/role.mjs +1 -1
  694. package/dist/server/ee/server/src/controllers/role.mjs.map +1 -1
  695. package/dist/server/ee/server/src/controllers/user.js +4 -4
  696. package/dist/server/ee/server/src/controllers/user.js.map +1 -1
  697. package/dist/server/ee/server/src/controllers/user.mjs.map +1 -1
  698. package/dist/server/ee/server/src/index.js +16 -16
  699. package/dist/server/ee/server/src/index.js.map +1 -1
  700. package/dist/server/ee/server/src/index.mjs.map +1 -1
  701. package/dist/server/ee/server/src/register.js.map +1 -1
  702. package/dist/server/ee/server/src/register.mjs.map +1 -1
  703. package/dist/server/ee/server/src/routes/index.js.map +1 -1
  704. package/dist/server/ee/server/src/routes/index.mjs.map +1 -1
  705. package/dist/server/ee/server/src/routes/license-limit.js.map +1 -1
  706. package/dist/server/ee/server/src/routes/license-limit.mjs.map +1 -1
  707. package/dist/server/ee/server/src/routes/sso.js.map +1 -1
  708. package/dist/server/ee/server/src/routes/sso.mjs.map +1 -1
  709. package/dist/server/ee/server/src/routes/utils.js.map +1 -1
  710. package/dist/server/ee/server/src/routes/utils.mjs.map +1 -1
  711. package/dist/server/ee/server/src/services/auth.js.map +1 -1
  712. package/dist/server/ee/server/src/services/auth.mjs.map +1 -1
  713. package/dist/server/ee/server/src/services/index.js.map +1 -1
  714. package/dist/server/ee/server/src/services/index.mjs.map +1 -1
  715. package/dist/server/ee/server/src/services/metrics.js.map +1 -1
  716. package/dist/server/ee/server/src/services/metrics.mjs.map +1 -1
  717. package/dist/server/ee/server/src/services/passport/provider-registry.js.map +1 -1
  718. package/dist/server/ee/server/src/services/passport/provider-registry.mjs.map +1 -1
  719. package/dist/server/ee/server/src/services/passport/sso.js.map +1 -1
  720. package/dist/server/ee/server/src/services/passport/sso.mjs.map +1 -1
  721. package/dist/server/ee/server/src/services/passport.js.map +1 -1
  722. package/dist/server/ee/server/src/services/passport.mjs.map +1 -1
  723. package/dist/server/ee/server/src/services/persist-tables.js.map +1 -1
  724. package/dist/server/ee/server/src/services/persist-tables.mjs +4 -4
  725. package/dist/server/ee/server/src/services/persist-tables.mjs.map +1 -1
  726. package/dist/server/ee/server/src/services/role.js.map +1 -1
  727. package/dist/server/ee/server/src/services/role.mjs.map +1 -1
  728. package/dist/server/ee/server/src/services/seat-enforcement.js.map +1 -1
  729. package/dist/server/ee/server/src/services/seat-enforcement.mjs +1 -1
  730. package/dist/server/ee/server/src/services/seat-enforcement.mjs.map +1 -1
  731. package/dist/server/ee/server/src/services/user.js.map +1 -1
  732. package/dist/server/ee/server/src/services/user.mjs +1 -1
  733. package/dist/server/ee/server/src/services/user.mjs.map +1 -1
  734. package/dist/server/ee/server/src/utils/index.js.map +1 -1
  735. package/dist/server/ee/server/src/utils/index.mjs.map +1 -1
  736. package/dist/server/ee/server/src/utils/sso-lock.js.map +1 -1
  737. package/dist/server/ee/server/src/utils/sso-lock.mjs.map +1 -1
  738. package/dist/server/ee/server/src/validation/authentication.js.map +1 -1
  739. package/dist/server/ee/server/src/validation/authentication.mjs.map +1 -1
  740. package/dist/server/ee/server/src/validation/role.js.map +1 -1
  741. package/dist/server/ee/server/src/validation/role.mjs.map +1 -1
  742. package/dist/server/ee/server/src/validation/user.js.map +1 -1
  743. package/dist/server/ee/server/src/validation/user.mjs.map +1 -1
  744. package/dist/server/index.js +18 -18
  745. package/dist/server/index.js.map +1 -1
  746. package/dist/server/index.mjs +2 -2
  747. package/dist/server/index.mjs.map +1 -1
  748. package/dist/server/server/src/bootstrap.js.map +1 -1
  749. package/dist/server/server/src/bootstrap.mjs +1 -1
  750. package/dist/server/server/src/bootstrap.mjs.map +1 -1
  751. package/dist/server/server/src/config/admin-actions.js.map +1 -1
  752. package/dist/server/server/src/config/admin-actions.mjs.map +1 -1
  753. package/dist/server/server/src/config/admin-conditions.js.map +1 -1
  754. package/dist/server/server/src/config/admin-conditions.mjs.map +1 -1
  755. package/dist/server/server/src/config/email-templates/forgot-password.js.map +1 -1
  756. package/dist/server/server/src/config/email-templates/forgot-password.mjs.map +1 -1
  757. package/dist/server/server/src/config/index.js.map +1 -1
  758. package/dist/server/server/src/config/index.mjs.map +1 -1
  759. package/dist/server/server/src/content-types/Permission.js.map +1 -1
  760. package/dist/server/server/src/content-types/Permission.mjs.map +1 -1
  761. package/dist/server/server/src/content-types/Role.js.map +1 -1
  762. package/dist/server/server/src/content-types/Role.mjs.map +1 -1
  763. package/dist/server/server/src/content-types/User.js.map +1 -1
  764. package/dist/server/server/src/content-types/User.mjs.map +1 -1
  765. package/dist/server/server/src/content-types/api-token-permission.js.map +1 -1
  766. package/dist/server/server/src/content-types/api-token-permission.mjs.map +1 -1
  767. package/dist/server/server/src/content-types/api-token.js.map +1 -1
  768. package/dist/server/server/src/content-types/api-token.mjs.map +1 -1
  769. package/dist/server/server/src/content-types/index.js.map +1 -1
  770. package/dist/server/server/src/content-types/index.mjs.map +1 -1
  771. package/dist/server/server/src/content-types/session.js.map +1 -1
  772. package/dist/server/server/src/content-types/session.mjs.map +1 -1
  773. package/dist/server/server/src/content-types/transfer-token-permission.js.map +1 -1
  774. package/dist/server/server/src/content-types/transfer-token-permission.mjs.map +1 -1
  775. package/dist/server/server/src/content-types/transfer-token.js.map +1 -1
  776. package/dist/server/server/src/content-types/transfer-token.mjs.map +1 -1
  777. package/dist/server/server/src/controllers/admin.js.map +1 -1
  778. package/dist/server/server/src/controllers/admin.mjs.map +1 -1
  779. package/dist/server/server/src/controllers/api-token.js.map +1 -1
  780. package/dist/server/server/src/controllers/api-token.mjs +3 -3
  781. package/dist/server/server/src/controllers/api-token.mjs.map +1 -1
  782. package/dist/server/server/src/controllers/authenticated-user.js.map +1 -1
  783. package/dist/server/server/src/controllers/authenticated-user.mjs.map +1 -1
  784. package/dist/server/server/src/controllers/authentication.js.map +1 -1
  785. package/dist/server/server/src/controllers/authentication.mjs +2 -2
  786. package/dist/server/server/src/controllers/authentication.mjs.map +1 -1
  787. package/dist/server/server/src/controllers/content-api.js.map +1 -1
  788. package/dist/server/server/src/controllers/content-api.mjs.map +1 -1
  789. package/dist/server/server/src/controllers/formatters/conditions.js.map +1 -1
  790. package/dist/server/server/src/controllers/formatters/conditions.mjs.map +1 -1
  791. package/dist/server/server/src/controllers/homepage.js.map +1 -1
  792. package/dist/server/server/src/controllers/homepage.mjs.map +1 -1
  793. package/dist/server/server/src/controllers/index.js.map +1 -1
  794. package/dist/server/server/src/controllers/index.mjs.map +1 -1
  795. package/dist/server/server/src/controllers/permission.js.map +1 -1
  796. package/dist/server/server/src/controllers/permission.mjs.map +1 -1
  797. package/dist/server/server/src/controllers/role.js.map +1 -1
  798. package/dist/server/server/src/controllers/role.mjs +1 -1
  799. package/dist/server/server/src/controllers/role.mjs.map +1 -1
  800. package/dist/server/server/src/controllers/transfer/index.js.map +1 -1
  801. package/dist/server/server/src/controllers/transfer/index.mjs.map +1 -1
  802. package/dist/server/server/src/controllers/transfer/runner.js.map +1 -1
  803. package/dist/server/server/src/controllers/transfer/runner.mjs.map +1 -1
  804. package/dist/server/server/src/controllers/transfer/token.js.map +1 -1
  805. package/dist/server/server/src/controllers/transfer/token.mjs +2 -2
  806. package/dist/server/server/src/controllers/transfer/token.mjs.map +1 -1
  807. package/dist/server/server/src/controllers/user.js.map +1 -1
  808. package/dist/server/server/src/controllers/user.mjs +1 -1
  809. package/dist/server/server/src/controllers/user.mjs.map +1 -1
  810. package/dist/server/server/src/controllers/validation/schema.js.map +1 -1
  811. package/dist/server/server/src/controllers/validation/schema.mjs.map +1 -1
  812. package/dist/server/server/src/controllers/webhooks.js.map +1 -1
  813. package/dist/server/server/src/controllers/webhooks.mjs.map +1 -1
  814. package/dist/server/server/src/destroy.js.map +1 -1
  815. package/dist/server/server/src/destroy.mjs.map +1 -1
  816. package/dist/server/server/src/domain/action/index.js.map +1 -1
  817. package/dist/server/server/src/domain/action/index.mjs.map +1 -1
  818. package/dist/server/server/src/domain/action/provider.js.map +1 -1
  819. package/dist/server/server/src/domain/action/provider.mjs +1 -1
  820. package/dist/server/server/src/domain/action/provider.mjs.map +1 -1
  821. package/dist/server/server/src/domain/condition/index.js.map +1 -1
  822. package/dist/server/server/src/domain/condition/index.mjs.map +1 -1
  823. package/dist/server/server/src/domain/condition/provider.js.map +1 -1
  824. package/dist/server/server/src/domain/condition/provider.mjs.map +1 -1
  825. package/dist/server/server/src/domain/permission/index.js.map +1 -1
  826. package/dist/server/server/src/domain/permission/index.mjs +1 -1
  827. package/dist/server/server/src/domain/permission/index.mjs.map +1 -1
  828. package/dist/server/server/src/domain/user.js.map +1 -1
  829. package/dist/server/server/src/domain/user.mjs.map +1 -1
  830. package/dist/server/server/src/middlewares/data-transfer.js.map +1 -1
  831. package/dist/server/server/src/middlewares/data-transfer.mjs.map +1 -1
  832. package/dist/server/server/src/middlewares/index.js.map +1 -1
  833. package/dist/server/server/src/middlewares/index.mjs.map +1 -1
  834. package/dist/server/server/src/middlewares/rateLimit.js.map +1 -1
  835. package/dist/server/server/src/middlewares/rateLimit.mjs.map +1 -1
  836. package/dist/server/server/src/policies/hasPermissions.js.map +1 -1
  837. package/dist/server/server/src/policies/hasPermissions.mjs.map +1 -1
  838. package/dist/server/server/src/policies/index.js.map +1 -1
  839. package/dist/server/server/src/policies/index.mjs.map +1 -1
  840. package/dist/server/server/src/policies/isAuthenticatedAdmin.js.map +1 -1
  841. package/dist/server/server/src/policies/isAuthenticatedAdmin.mjs.map +1 -1
  842. package/dist/server/server/src/policies/isTelemetryEnabled.js.map +1 -1
  843. package/dist/server/server/src/policies/isTelemetryEnabled.mjs.map +1 -1
  844. package/dist/server/server/src/register.js.map +1 -1
  845. package/dist/server/server/src/register.mjs.map +1 -1
  846. package/dist/server/server/src/routes/admin.js.map +1 -1
  847. package/dist/server/server/src/routes/admin.mjs.map +1 -1
  848. package/dist/server/server/src/routes/api-tokens.js.map +1 -1
  849. package/dist/server/server/src/routes/api-tokens.mjs.map +1 -1
  850. package/dist/server/server/src/routes/authentication.js.map +1 -1
  851. package/dist/server/server/src/routes/authentication.mjs.map +1 -1
  852. package/dist/server/server/src/routes/content-api.js.map +1 -1
  853. package/dist/server/server/src/routes/content-api.mjs.map +1 -1
  854. package/dist/server/server/src/routes/homepage.js.map +1 -1
  855. package/dist/server/server/src/routes/homepage.mjs.map +1 -1
  856. package/dist/server/server/src/routes/index.js.map +1 -1
  857. package/dist/server/server/src/routes/index.mjs.map +1 -1
  858. package/dist/server/server/src/routes/permissions.js.map +1 -1
  859. package/dist/server/server/src/routes/permissions.mjs.map +1 -1
  860. package/dist/server/server/src/routes/roles.js.map +1 -1
  861. package/dist/server/server/src/routes/roles.mjs.map +1 -1
  862. package/dist/server/server/src/routes/serve-admin-panel.js.map +1 -1
  863. package/dist/server/server/src/routes/serve-admin-panel.mjs +1 -1
  864. package/dist/server/server/src/routes/serve-admin-panel.mjs.map +1 -1
  865. package/dist/server/server/src/routes/transfer.js.map +1 -1
  866. package/dist/server/server/src/routes/transfer.mjs.map +1 -1
  867. package/dist/server/server/src/routes/users.js.map +1 -1
  868. package/dist/server/server/src/routes/users.mjs.map +1 -1
  869. package/dist/server/server/src/routes/webhooks.js.map +1 -1
  870. package/dist/server/server/src/routes/webhooks.mjs.map +1 -1
  871. package/dist/server/server/src/services/action.js.map +1 -1
  872. package/dist/server/server/src/services/action.mjs.map +1 -1
  873. package/dist/server/server/src/services/api-token.js.map +1 -1
  874. package/dist/server/server/src/services/api-token.mjs.map +1 -1
  875. package/dist/server/server/src/services/auth.js.map +1 -1
  876. package/dist/server/server/src/services/auth.mjs.map +1 -1
  877. package/dist/server/server/src/services/condition.js.map +1 -1
  878. package/dist/server/server/src/services/condition.mjs.map +1 -1
  879. package/dist/server/server/src/services/constants.js.map +1 -1
  880. package/dist/server/server/src/services/constants.mjs.map +1 -1
  881. package/dist/server/server/src/services/content-type.js +9 -9
  882. package/dist/server/server/src/services/content-type.js.map +1 -1
  883. package/dist/server/server/src/services/content-type.mjs +1 -1
  884. package/dist/server/server/src/services/content-type.mjs.map +1 -1
  885. package/dist/server/server/src/services/encryption.js.map +1 -1
  886. package/dist/server/server/src/services/encryption.mjs.map +1 -1
  887. package/dist/server/server/src/services/homepage.js.map +1 -1
  888. package/dist/server/server/src/services/homepage.mjs +1 -1
  889. package/dist/server/server/src/services/homepage.mjs.map +1 -1
  890. package/dist/server/server/src/services/index.js.map +1 -1
  891. package/dist/server/server/src/services/index.mjs.map +1 -1
  892. package/dist/server/server/src/services/metrics.js.map +1 -1
  893. package/dist/server/server/src/services/metrics.mjs.map +1 -1
  894. package/dist/server/server/src/services/passport/local-strategy.js.map +1 -1
  895. package/dist/server/server/src/services/passport/local-strategy.mjs.map +1 -1
  896. package/dist/server/server/src/services/passport.js.map +1 -1
  897. package/dist/server/server/src/services/passport.mjs.map +1 -1
  898. package/dist/server/server/src/services/permission/engine.js.map +1 -1
  899. package/dist/server/server/src/services/permission/engine.mjs.map +1 -1
  900. package/dist/server/server/src/services/permission/permissions-manager/index.js.map +1 -1
  901. package/dist/server/server/src/services/permission/permissions-manager/index.mjs.map +1 -1
  902. package/dist/server/server/src/services/permission/permissions-manager/permission-fields.js.map +1 -1
  903. package/dist/server/server/src/services/permission/permissions-manager/permission-fields.mjs.map +1 -1
  904. package/dist/server/server/src/services/permission/permissions-manager/query-builders.js.map +1 -1
  905. package/dist/server/server/src/services/permission/permissions-manager/query-builders.mjs.map +1 -1
  906. package/dist/server/server/src/services/permission/permissions-manager/sanitize.js.map +1 -1
  907. package/dist/server/server/src/services/permission/permissions-manager/sanitize.mjs +2 -2
  908. package/dist/server/server/src/services/permission/permissions-manager/sanitize.mjs.map +1 -1
  909. package/dist/server/server/src/services/permission/permissions-manager/validate.js.map +1 -1
  910. package/dist/server/server/src/services/permission/permissions-manager/validate.mjs +2 -2
  911. package/dist/server/server/src/services/permission/permissions-manager/validate.mjs.map +1 -1
  912. package/dist/server/server/src/services/permission/queries.js +9 -9
  913. package/dist/server/server/src/services/permission/queries.js.map +1 -1
  914. package/dist/server/server/src/services/permission/queries.mjs +1 -1
  915. package/dist/server/server/src/services/permission/queries.mjs.map +1 -1
  916. package/dist/server/server/src/services/permission/sections-builder/builder.js.map +1 -1
  917. package/dist/server/server/src/services/permission/sections-builder/builder.mjs.map +1 -1
  918. package/dist/server/server/src/services/permission/sections-builder/handlers.js +10 -10
  919. package/dist/server/server/src/services/permission/sections-builder/handlers.js.map +1 -1
  920. package/dist/server/server/src/services/permission/sections-builder/handlers.mjs +1 -1
  921. package/dist/server/server/src/services/permission/sections-builder/handlers.mjs.map +1 -1
  922. package/dist/server/server/src/services/permission/sections-builder/index.js.map +1 -1
  923. package/dist/server/server/src/services/permission/sections-builder/index.mjs +1 -1
  924. package/dist/server/server/src/services/permission/sections-builder/index.mjs.map +1 -1
  925. package/dist/server/server/src/services/permission/sections-builder/section.js.map +1 -1
  926. package/dist/server/server/src/services/permission/sections-builder/section.mjs.map +1 -1
  927. package/dist/server/server/src/services/permission/sections-builder/utils.js.map +1 -1
  928. package/dist/server/server/src/services/permission/sections-builder/utils.mjs.map +1 -1
  929. package/dist/server/server/src/services/permission.js.map +1 -1
  930. package/dist/server/server/src/services/permission.mjs.map +1 -1
  931. package/dist/server/server/src/services/project-settings.js.map +1 -1
  932. package/dist/server/server/src/services/project-settings.mjs.map +1 -1
  933. package/dist/server/server/src/services/role.js.map +1 -1
  934. package/dist/server/server/src/services/role.mjs +2 -2
  935. package/dist/server/server/src/services/role.mjs.map +1 -1
  936. package/dist/server/server/src/services/token.js.map +1 -1
  937. package/dist/server/server/src/services/token.mjs.map +1 -1
  938. package/dist/server/server/src/services/transfer/permission.js.map +1 -1
  939. package/dist/server/server/src/services/transfer/permission.mjs.map +1 -1
  940. package/dist/server/server/src/services/transfer/token.js.map +1 -1
  941. package/dist/server/server/src/services/transfer/token.mjs +1 -1
  942. package/dist/server/server/src/services/transfer/token.mjs.map +1 -1
  943. package/dist/server/server/src/services/transfer/utils.js.map +1 -1
  944. package/dist/server/server/src/services/transfer/utils.mjs.map +1 -1
  945. package/dist/server/server/src/services/user.js.map +1 -1
  946. package/dist/server/server/src/services/user.mjs +2 -2
  947. package/dist/server/server/src/services/user.mjs.map +1 -1
  948. package/dist/server/server/src/strategies/admin.js.map +1 -1
  949. package/dist/server/server/src/strategies/admin.mjs.map +1 -1
  950. package/dist/server/server/src/strategies/api-token.js.map +1 -1
  951. package/dist/server/server/src/strategies/api-token.mjs.map +1 -1
  952. package/dist/server/server/src/strategies/data-transfer.js.map +1 -1
  953. package/dist/server/server/src/strategies/data-transfer.mjs.map +1 -1
  954. package/dist/server/server/src/utils/index.js.map +1 -1
  955. package/dist/server/server/src/utils/index.mjs.map +1 -1
  956. package/dist/server/server/src/validation/action-provider.js.map +1 -1
  957. package/dist/server/server/src/validation/action-provider.mjs.map +1 -1
  958. package/dist/server/server/src/validation/api-tokens.js.map +1 -1
  959. package/dist/server/server/src/validation/api-tokens.mjs.map +1 -1
  960. package/dist/server/server/src/validation/authentication/forgot-password.js.map +1 -1
  961. package/dist/server/server/src/validation/authentication/forgot-password.mjs.map +1 -1
  962. package/dist/server/server/src/validation/authentication/login.js.map +1 -1
  963. package/dist/server/server/src/validation/authentication/login.mjs.map +1 -1
  964. package/dist/server/server/src/validation/authentication/register.js.map +1 -1
  965. package/dist/server/server/src/validation/authentication/register.mjs.map +1 -1
  966. package/dist/server/server/src/validation/authentication/reset-password.js.map +1 -1
  967. package/dist/server/server/src/validation/authentication/reset-password.mjs.map +1 -1
  968. package/dist/server/server/src/validation/common-functions/check-fields-are-correctly-nested.js.map +1 -1
  969. package/dist/server/server/src/validation/common-functions/check-fields-are-correctly-nested.mjs.map +1 -1
  970. package/dist/server/server/src/validation/common-functions/check-fields-dont-have-duplicates.js.map +1 -1
  971. package/dist/server/server/src/validation/common-functions/check-fields-dont-have-duplicates.mjs.map +1 -1
  972. package/dist/server/server/src/validation/common-validators.js +2 -4
  973. package/dist/server/server/src/validation/common-validators.js.map +1 -1
  974. package/dist/server/server/src/validation/common-validators.mjs +4 -5
  975. package/dist/server/server/src/validation/common-validators.mjs.map +1 -1
  976. package/dist/server/server/src/validation/permission.js.map +1 -1
  977. package/dist/server/server/src/validation/permission.mjs.map +1 -1
  978. package/dist/server/server/src/validation/policies/hasPermissions.js.map +1 -1
  979. package/dist/server/server/src/validation/policies/hasPermissions.mjs.map +1 -1
  980. package/dist/server/server/src/validation/project-settings.js.map +1 -1
  981. package/dist/server/server/src/validation/project-settings.mjs.map +1 -1
  982. package/dist/server/server/src/validation/role.js.map +1 -1
  983. package/dist/server/server/src/validation/role.mjs.map +1 -1
  984. package/dist/server/server/src/validation/transfer/token.js.map +1 -1
  985. package/dist/server/server/src/validation/transfer/token.mjs.map +1 -1
  986. package/dist/server/server/src/validation/user.js +1 -4
  987. package/dist/server/server/src/validation/user.js.map +1 -1
  988. package/dist/server/server/src/validation/user.mjs +1 -4
  989. package/dist/server/server/src/validation/user.mjs.map +1 -1
  990. package/dist/server/shared/utils/session-auth.js.map +1 -1
  991. package/dist/server/shared/utils/session-auth.mjs.map +1 -1
  992. package/package.json +17 -12
@@ -1 +1 @@
1
- {"version":3,"file":"role.mjs","sources":["../../../../../server/src/controllers/role.ts"],"sourcesContent":["import type { Context } from 'koa';\nimport { errors } from '@strapi/utils';\nimport {\n validateRoleUpdateInput,\n validateRoleCreateInput,\n validateRoleDeleteInput,\n validateRolesDeleteInput,\n} from '../validation/role';\nimport { validatedUpdatePermissionsInput } from '../validation/permission';\nimport constants from '../services/constants';\nimport { getService } from '../utils';\nimport type {\n Create,\n FindRoles,\n FindRole,\n Update,\n GetPermissions,\n UpdatePermissions,\n Delete,\n BatchDelete,\n} from '../../../shared/contracts/roles';\nimport { AdminRole } from '../../../shared/contracts/shared';\n\nconst { ApplicationError } = errors;\nconst { SUPER_ADMIN_CODE } = constants;\n\nexport default {\n /**\n * Create a new role\n * @param {KoaContext} ctx - koa context\n */\n async create(ctx: Context) {\n const { body } = ctx.request as Create.Request;\n await validateRoleCreateInput(body);\n\n const roleService = getService('role');\n\n const role = await roleService.create(body);\n const sanitizedRole = roleService.sanitizeRole(role) as Omit<AdminRole, 'users' | 'permission'>;\n\n ctx.created({ data: sanitizedRole } satisfies Create.Response);\n },\n\n /**\n * Returns on role by id\n * @param {KoaContext} ctx - koa context\n */\n async findOne(ctx: Context) {\n const { id } = ctx.params as FindRole.Request['params'];\n const role = await getService('role').findOneWithUsersCount({ id });\n\n if (!role) {\n return ctx.notFound('role.notFound');\n }\n\n ctx.body = {\n data: role,\n } satisfies FindRole.Response;\n },\n\n /**\n * Returns every roles\n * @param {KoaContext} ctx - koa context\n */\n async findAll(ctx: Context) {\n const { query } = ctx.request as FindRoles.Request;\n\n const permissionsManager = getService('permission').createPermissionsManager({\n ability: ctx.state.userAbility,\n model: 'admin::role',\n });\n\n await permissionsManager.validateQuery(query);\n const sanitizedQuery = await permissionsManager.sanitizeQuery(query);\n\n const roles = await getService('role').findAllWithUsersCount(sanitizedQuery);\n\n ctx.body = {\n data: roles,\n } satisfies FindRoles.Response;\n },\n\n /**\n * Updates a role by id\n * @param {KoaContext} ctx - koa context\n */\n async update(ctx: Context) {\n const { id } = ctx.params as Update.Request['params'];\n const { body } = ctx.request as Omit<Update.Request, 'params'>;\n\n const roleService = getService('role');\n\n await validateRoleUpdateInput(body);\n\n const role = await roleService.findOne({ id });\n\n if (!role) {\n return ctx.notFound('role.notFound');\n }\n\n if (role.code === SUPER_ADMIN_CODE) {\n throw new ApplicationError(\"Super admin can't be edited.\");\n }\n\n const updatedRole = await roleService.update({ id }, body);\n const sanitizedRole = roleService.sanitizeRole(updatedRole) as Omit<\n AdminRole,\n 'users' | 'permission'\n >;\n\n ctx.body = {\n data: sanitizedRole,\n } satisfies Update.Response;\n },\n\n /**\n * Returns the permissions assigned to a role\n * @param {KoaContext} ctx - koa context\n */\n async getPermissions(ctx: Context) {\n const { id } = ctx.params as GetPermissions.Request['params'];\n\n const roleService = getService('role');\n const permissionService = getService('permission');\n\n const role = await roleService.findOne({ id });\n\n if (!role) {\n return ctx.notFound('role.notFound');\n }\n\n const permissions = await permissionService.findMany({ where: { role: { id: role.id } } });\n\n const sanitizedPermissions = permissions.map(permissionService.sanitizePermission);\n\n ctx.body = {\n // @ts-expect-error - transform response type to sanitized permission\n data: sanitizedPermissions,\n } satisfies GetPermissions.Response;\n },\n\n /**\n * Updates the permissions assigned to a role\n * @param {KoaContext} ctx - koa context\n */\n async updatePermissions(ctx: Context) {\n const { id } = ctx.params as UpdatePermissions.Request['params'];\n const { body: input } = ctx.request as Omit<UpdatePermissions.Request, 'params'>;\n\n const roleService = getService('role');\n const permissionService = getService('permission');\n\n const role = await roleService.findOne({ id });\n\n if (!role) {\n return ctx.notFound('role.notFound');\n }\n\n if (role.code === SUPER_ADMIN_CODE) {\n throw new ApplicationError(\"Super admin permissions can't be edited.\");\n }\n\n await validatedUpdatePermissionsInput(input);\n\n if (!role) {\n return ctx.notFound('role.notFound');\n }\n\n const permissions = await roleService.assignPermissions(role.id, input.permissions);\n\n const sanitizedPermissions = permissions.map(permissionService.sanitizePermission);\n\n ctx.body = {\n data: sanitizedPermissions,\n } satisfies UpdatePermissions.Response;\n },\n\n /**\n * Delete a role\n * @param {KoaContext} ctx - koa context\n */\n async deleteOne(ctx: Context) {\n const { id } = ctx.params as Delete.Request['params'];\n\n await validateRoleDeleteInput(id);\n\n const roleService = getService('role');\n\n const roles = await roleService.deleteByIds([id]);\n\n const sanitizedRole = roles.map((role) => roleService.sanitizeRole(role))[0] || null;\n\n return ctx.deleted({\n data: sanitizedRole,\n } satisfies Delete.Response);\n },\n\n /**\n * delete several roles\n * @param {KoaContext} ctx - koa context\n */\n async deleteMany(ctx: Context) {\n const { body } = ctx.request as BatchDelete.Request;\n\n await validateRolesDeleteInput(body);\n\n const roleService = getService('role');\n\n const roles = await roleService.deleteByIds(body.ids);\n const sanitizedRoles = roles.map(roleService.sanitizeRole);\n\n return ctx.deleted({\n data: sanitizedRoles,\n } satisfies BatchDelete.Response);\n },\n};\n"],"names":["ApplicationError","errors","SUPER_ADMIN_CODE","constants","create","ctx","body","request","validateRoleCreateInput","roleService","getService","role","sanitizedRole","sanitizeRole","created","data","findOne","id","params","findOneWithUsersCount","notFound","findAll","query","permissionsManager","createPermissionsManager","ability","state","userAbility","model","validateQuery","sanitizedQuery","sanitizeQuery","roles","findAllWithUsersCount","update","validateRoleUpdateInput","code","updatedRole","getPermissions","permissionService","permissions","findMany","where","sanitizedPermissions","map","sanitizePermission","updatePermissions","input","validatedUpdatePermissionsInput","assignPermissions","deleteOne","validateRoleDeleteInput","deleteByIds","deleted","deleteMany","validateRolesDeleteInput","ids","sanitizedRoles"],"mappings":"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"}
1
+ {"version":3,"file":"role.mjs","sources":["../../../../../server/src/controllers/role.ts"],"sourcesContent":["import type { Context } from 'koa';\nimport { errors } from '@strapi/utils';\nimport {\n validateRoleUpdateInput,\n validateRoleCreateInput,\n validateRoleDeleteInput,\n validateRolesDeleteInput,\n} from '../validation/role';\nimport { validatedUpdatePermissionsInput } from '../validation/permission';\nimport constants from '../services/constants';\nimport { getService } from '../utils';\nimport type {\n Create,\n FindRoles,\n FindRole,\n Update,\n GetPermissions,\n UpdatePermissions,\n Delete,\n BatchDelete,\n} from '../../../shared/contracts/roles';\nimport { AdminRole } from '../../../shared/contracts/shared';\n\nconst { ApplicationError } = errors;\nconst { SUPER_ADMIN_CODE } = constants;\n\nexport default {\n /**\n * Create a new role\n * @param {KoaContext} ctx - koa context\n */\n async create(ctx: Context) {\n const { body } = ctx.request as Create.Request;\n await validateRoleCreateInput(body);\n\n const roleService = getService('role');\n\n const role = await roleService.create(body);\n const sanitizedRole = roleService.sanitizeRole(role) as Omit<AdminRole, 'users' | 'permission'>;\n\n ctx.created({ data: sanitizedRole } satisfies Create.Response);\n },\n\n /**\n * Returns on role by id\n * @param {KoaContext} ctx - koa context\n */\n async findOne(ctx: Context) {\n const { id } = ctx.params as FindRole.Request['params'];\n const role = await getService('role').findOneWithUsersCount({ id });\n\n if (!role) {\n return ctx.notFound('role.notFound');\n }\n\n ctx.body = {\n data: role,\n } satisfies FindRole.Response;\n },\n\n /**\n * Returns every roles\n * @param {KoaContext} ctx - koa context\n */\n async findAll(ctx: Context) {\n const { query } = ctx.request as FindRoles.Request;\n\n const permissionsManager = getService('permission').createPermissionsManager({\n ability: ctx.state.userAbility,\n model: 'admin::role',\n });\n\n await permissionsManager.validateQuery(query);\n const sanitizedQuery = await permissionsManager.sanitizeQuery(query);\n\n const roles = await getService('role').findAllWithUsersCount(sanitizedQuery);\n\n ctx.body = {\n data: roles,\n } satisfies FindRoles.Response;\n },\n\n /**\n * Updates a role by id\n * @param {KoaContext} ctx - koa context\n */\n async update(ctx: Context) {\n const { id } = ctx.params as Update.Request['params'];\n const { body } = ctx.request as Omit<Update.Request, 'params'>;\n\n const roleService = getService('role');\n\n await validateRoleUpdateInput(body);\n\n const role = await roleService.findOne({ id });\n\n if (!role) {\n return ctx.notFound('role.notFound');\n }\n\n if (role.code === SUPER_ADMIN_CODE) {\n throw new ApplicationError(\"Super admin can't be edited.\");\n }\n\n const updatedRole = await roleService.update({ id }, body);\n const sanitizedRole = roleService.sanitizeRole(updatedRole) as Omit<\n AdminRole,\n 'users' | 'permission'\n >;\n\n ctx.body = {\n data: sanitizedRole,\n } satisfies Update.Response;\n },\n\n /**\n * Returns the permissions assigned to a role\n * @param {KoaContext} ctx - koa context\n */\n async getPermissions(ctx: Context) {\n const { id } = ctx.params as GetPermissions.Request['params'];\n\n const roleService = getService('role');\n const permissionService = getService('permission');\n\n const role = await roleService.findOne({ id });\n\n if (!role) {\n return ctx.notFound('role.notFound');\n }\n\n const permissions = await permissionService.findMany({ where: { role: { id: role.id } } });\n\n const sanitizedPermissions = permissions.map(permissionService.sanitizePermission);\n\n ctx.body = {\n // @ts-expect-error - transform response type to sanitized permission\n data: sanitizedPermissions,\n } satisfies GetPermissions.Response;\n },\n\n /**\n * Updates the permissions assigned to a role\n * @param {KoaContext} ctx - koa context\n */\n async updatePermissions(ctx: Context) {\n const { id } = ctx.params as UpdatePermissions.Request['params'];\n const { body: input } = ctx.request as Omit<UpdatePermissions.Request, 'params'>;\n\n const roleService = getService('role');\n const permissionService = getService('permission');\n\n const role = await roleService.findOne({ id });\n\n if (!role) {\n return ctx.notFound('role.notFound');\n }\n\n if (role.code === SUPER_ADMIN_CODE) {\n throw new ApplicationError(\"Super admin permissions can't be edited.\");\n }\n\n await validatedUpdatePermissionsInput(input);\n\n if (!role) {\n return ctx.notFound('role.notFound');\n }\n\n const permissions = await roleService.assignPermissions(role.id, input.permissions);\n\n const sanitizedPermissions = permissions.map(permissionService.sanitizePermission);\n\n ctx.body = {\n data: sanitizedPermissions,\n } satisfies UpdatePermissions.Response;\n },\n\n /**\n * Delete a role\n * @param {KoaContext} ctx - koa context\n */\n async deleteOne(ctx: Context) {\n const { id } = ctx.params as Delete.Request['params'];\n\n await validateRoleDeleteInput(id);\n\n const roleService = getService('role');\n\n const roles = await roleService.deleteByIds([id]);\n\n const sanitizedRole = roles.map((role) => roleService.sanitizeRole(role))[0] || null;\n\n return ctx.deleted({\n data: sanitizedRole,\n } satisfies Delete.Response);\n },\n\n /**\n * delete several roles\n * @param {KoaContext} ctx - koa context\n */\n async deleteMany(ctx: Context) {\n const { body } = ctx.request as BatchDelete.Request;\n\n await validateRolesDeleteInput(body);\n\n const roleService = getService('role');\n\n const roles = await roleService.deleteByIds(body.ids);\n const sanitizedRoles = roles.map(roleService.sanitizeRole);\n\n return ctx.deleted({\n data: sanitizedRoles,\n } satisfies BatchDelete.Response);\n },\n};\n"],"names":["ApplicationError","errors","SUPER_ADMIN_CODE","constants","create","ctx","body","request","validateRoleCreateInput","roleService","getService","role","sanitizedRole","sanitizeRole","created","data","findOne","id","params","findOneWithUsersCount","notFound","findAll","query","permissionsManager","createPermissionsManager","ability","state","userAbility","model","validateQuery","sanitizedQuery","sanitizeQuery","roles","findAllWithUsersCount","update","validateRoleUpdateInput","code","updatedRole","getPermissions","permissionService","permissions","findMany","where","sanitizedPermissions","map","sanitizePermission","updatePermissions","input","validatedUpdatePermissionsInput","assignPermissions","deleteOne","validateRoleDeleteInput","deleteByIds","deleted","deleteMany","validateRolesDeleteInput","ids","sanitizedRoles"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../server/src/controllers/transfer/index.ts"],"sourcesContent":["import { mapKeys } from 'lodash/fp';\nimport runner from './runner';\nimport token from './token';\n\nconst prefixActionsName = (prefix: string, dict: any) => mapKeys((key) => `${prefix}-${key}`, dict);\n\nexport default {\n ...prefixActionsName('runner', runner),\n ...prefixActionsName('token', token),\n};\n"],"names":["prefixActionsName","prefix","dict","mapKeys","key","runner","token"],"mappings":";;;;;;AAIA,MAAMA,iBAAoB,GAAA,CAACC,MAAgBC,EAAAA,IAAAA,GAAcC,UAAQ,CAAA,CAACC,GAAQ,GAAA,CAAA,EAAGH,MAAO,CAAA,CAAC,EAAEG,GAAAA,CAAAA,CAAK,EAAEF,IAAAA,CAAAA;AAE9F,eAAe;IACb,GAAGF,iBAAAA,CAAkB,UAAUK,cAAO,CAAA;IACtC,GAAGL,iBAAAA,CAAkB,SAASM,KAAM;AACtC,CAAE;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../server/src/controllers/transfer/index.ts"],"sourcesContent":["import { mapKeys } from 'lodash/fp';\nimport runner from './runner';\nimport token from './token';\n\nconst prefixActionsName = (prefix: string, dict: any) => mapKeys((key) => `${prefix}-${key}`, dict);\n\nexport default {\n ...prefixActionsName('runner', runner),\n ...prefixActionsName('token', token),\n};\n"],"names":["prefixActionsName","prefix","dict","mapKeys","key","runner","token"],"mappings":";;;;;;AAIA,MAAMA,iBAAAA,GAAoB,CAACC,MAAAA,EAAgBC,IAAAA,GAAcC,UAAAA,CAAQ,CAACC,GAAAA,GAAQ,CAAA,EAAGH,MAAAA,CAAO,CAAC,EAAEG,GAAAA,CAAAA,CAAK,EAAEF,IAAAA,CAAAA;AAE9F,eAAe;IACb,GAAGF,iBAAAA,CAAkB,UAAUK,cAAAA,CAAO;IACtC,GAAGL,iBAAAA,CAAkB,SAASM,KAAAA;AAChC,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../../server/src/controllers/transfer/index.ts"],"sourcesContent":["import { mapKeys } from 'lodash/fp';\nimport runner from './runner';\nimport token from './token';\n\nconst prefixActionsName = (prefix: string, dict: any) => mapKeys((key) => `${prefix}-${key}`, dict);\n\nexport default {\n ...prefixActionsName('runner', runner),\n ...prefixActionsName('token', token),\n};\n"],"names":["prefixActionsName","prefix","dict","mapKeys","key","runner","token"],"mappings":";;;;AAIA,MAAMA,iBAAoB,GAAA,CAACC,MAAgBC,EAAAA,IAAAA,GAAcC,OAAQ,CAAA,CAACC,GAAQ,GAAA,CAAA,EAAGH,MAAO,CAAA,CAAC,EAAEG,GAAAA,CAAAA,CAAK,EAAEF,IAAAA,CAAAA;AAE9F,eAAe;IACb,GAAGF,iBAAAA,CAAkB,UAAUK,MAAO,CAAA;IACtC,GAAGL,iBAAAA,CAAkB,SAASM,KAAM;AACtC,CAAE;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../../server/src/controllers/transfer/index.ts"],"sourcesContent":["import { mapKeys } from 'lodash/fp';\nimport runner from './runner';\nimport token from './token';\n\nconst prefixActionsName = (prefix: string, dict: any) => mapKeys((key) => `${prefix}-${key}`, dict);\n\nexport default {\n ...prefixActionsName('runner', runner),\n ...prefixActionsName('token', token),\n};\n"],"names":["prefixActionsName","prefix","dict","mapKeys","key","runner","token"],"mappings":";;;;AAIA,MAAMA,iBAAAA,GAAoB,CAACC,MAAAA,EAAgBC,IAAAA,GAAcC,OAAAA,CAAQ,CAACC,GAAAA,GAAQ,CAAA,EAAGH,MAAAA,CAAO,CAAC,EAAEG,GAAAA,CAAAA,CAAK,EAAEF,IAAAA,CAAAA;AAE9F,eAAe;IACb,GAAGF,iBAAAA,CAAkB,UAAUK,MAAAA,CAAO;IACtC,GAAGL,iBAAAA,CAAkB,SAASM,KAAAA;AAChC,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sources":["../../../../../../server/src/controllers/transfer/runner.ts"],"sourcesContent":["import { Context } from 'koa';\n\nimport { strapi as dataTransferStrapi } from '@strapi/data-transfer';\nimport { errors } from '@strapi/utils';\nimport dataTransferAuthStrategy from '../../strategies/data-transfer';\n\nconst {\n remote: {\n handlers: { createPushController, createPullController },\n },\n} = dataTransferStrapi;\n\nconst { UnauthorizedError } = errors;\n\n/**\n * @param ctx the koa context\n * @param scope the scope to verify\n */\nconst verify = async (ctx: Context, scope?: dataTransferStrapi.remote.constants.TransferMethod) => {\n const { auth } = ctx.state;\n\n if (!auth) {\n throw new UnauthorizedError();\n }\n\n await dataTransferAuthStrategy.verify(auth, { scope });\n};\n\nexport const push = createPushController({ verify });\nexport const pull = createPullController({ verify });\n\nexport default {\n push,\n pull,\n};\n"],"names":["remote","handlers","createPushController","createPullController","dataTransferStrapi","UnauthorizedError","errors","verify","ctx","scope","auth","state","dataTransferAuthStrategy","push","pull"],"mappings":";;;;;;;;AAMA,MAAM,EACJA,MAAQ,EAAA,EACNC,QAAU,EAAA,EAAEC,oBAAoB,EAAEC,oBAAoB,EAAE,EACzD,EACF,GAAGC,mBAAAA;AAEJ,MAAM,EAAEC,iBAAiB,EAAE,GAAGC,YAAAA;AAE9B;;;IAIA,MAAMC,MAAS,GAAA,OAAOC,GAAcC,EAAAA,KAAAA,GAAAA;AAClC,IAAA,MAAM,EAAEC,IAAI,EAAE,GAAGF,IAAIG,KAAK;AAE1B,IAAA,IAAI,CAACD,IAAM,EAAA;AACT,QAAA,MAAM,IAAIL,iBAAAA,EAAAA;AACZ;IAEA,MAAMO,sBAAAA,CAAyBL,MAAM,CAACG,IAAM,EAAA;AAAED,QAAAA;AAAM,KAAA,CAAA;AACtD,CAAA;AAEO,MAAMI,OAAOX,oBAAqB,CAAA;AAAEK,IAAAA;AAAO,CAAG;AAC9C,MAAMO,OAAOX,oBAAqB,CAAA;AAAEI,IAAAA;AAAO,CAAG;AAErD,aAAe;AACbM,IAAAA,IAAAA;AACAC,IAAAA;AACF,CAAE;;;;;;"}
1
+ {"version":3,"file":"runner.js","sources":["../../../../../../server/src/controllers/transfer/runner.ts"],"sourcesContent":["import { Context } from 'koa';\n\nimport { strapi as dataTransferStrapi } from '@strapi/data-transfer';\nimport { errors } from '@strapi/utils';\nimport dataTransferAuthStrategy from '../../strategies/data-transfer';\n\nconst {\n remote: {\n handlers: { createPushController, createPullController },\n },\n} = dataTransferStrapi;\n\nconst { UnauthorizedError } = errors;\n\n/**\n * @param ctx the koa context\n * @param scope the scope to verify\n */\nconst verify = async (ctx: Context, scope?: dataTransferStrapi.remote.constants.TransferMethod) => {\n const { auth } = ctx.state;\n\n if (!auth) {\n throw new UnauthorizedError();\n }\n\n await dataTransferAuthStrategy.verify(auth, { scope });\n};\n\nexport const push = createPushController({ verify });\nexport const pull = createPullController({ verify });\n\nexport default {\n push,\n pull,\n};\n"],"names":["remote","handlers","createPushController","createPullController","dataTransferStrapi","UnauthorizedError","errors","verify","ctx","scope","auth","state","dataTransferAuthStrategy","push","pull"],"mappings":";;;;;;;;AAMA,MAAM,EACJA,MAAAA,EAAQ,EACNC,QAAAA,EAAU,EAAEC,oBAAoB,EAAEC,oBAAoB,EAAE,EACzD,EACF,GAAGC,mBAAAA;AAEJ,MAAM,EAAEC,iBAAiB,EAAE,GAAGC,YAAAA;AAE9B;;;IAIA,MAAMC,MAAAA,GAAS,OAAOC,GAAAA,EAAcC,KAAAA,GAAAA;AAClC,IAAA,MAAM,EAAEC,IAAI,EAAE,GAAGF,IAAIG,KAAK;AAE1B,IAAA,IAAI,CAACD,IAAAA,EAAM;AACT,QAAA,MAAM,IAAIL,iBAAAA,EAAAA;AACZ,IAAA;IAEA,MAAMO,sBAAAA,CAAyBL,MAAM,CAACG,IAAAA,EAAM;AAAED,QAAAA;AAAM,KAAA,CAAA;AACtD,CAAA;AAEO,MAAMI,OAAOX,oBAAAA,CAAqB;AAAEK,IAAAA;AAAO,CAAA;AAC3C,MAAMO,OAAOX,oBAAAA,CAAqB;AAAEI,IAAAA;AAAO,CAAA;AAElD,aAAe;AACbM,IAAAA,IAAAA;AACAC,IAAAA;AACF,CAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"runner.mjs","sources":["../../../../../../server/src/controllers/transfer/runner.ts"],"sourcesContent":["import { Context } from 'koa';\n\nimport { strapi as dataTransferStrapi } from '@strapi/data-transfer';\nimport { errors } from '@strapi/utils';\nimport dataTransferAuthStrategy from '../../strategies/data-transfer';\n\nconst {\n remote: {\n handlers: { createPushController, createPullController },\n },\n} = dataTransferStrapi;\n\nconst { UnauthorizedError } = errors;\n\n/**\n * @param ctx the koa context\n * @param scope the scope to verify\n */\nconst verify = async (ctx: Context, scope?: dataTransferStrapi.remote.constants.TransferMethod) => {\n const { auth } = ctx.state;\n\n if (!auth) {\n throw new UnauthorizedError();\n }\n\n await dataTransferAuthStrategy.verify(auth, { scope });\n};\n\nexport const push = createPushController({ verify });\nexport const pull = createPullController({ verify });\n\nexport default {\n push,\n pull,\n};\n"],"names":["remote","handlers","createPushController","createPullController","dataTransferStrapi","UnauthorizedError","errors","verify","ctx","scope","auth","state","dataTransferAuthStrategy","push","pull"],"mappings":";;;;AAMA,MAAM,EACJA,MAAQ,EAAA,EACNC,QAAU,EAAA,EAAEC,oBAAoB,EAAEC,oBAAoB,EAAE,EACzD,EACF,GAAGC,MAAAA;AAEJ,MAAM,EAAEC,iBAAiB,EAAE,GAAGC,MAAAA;AAE9B;;;IAIA,MAAMC,MAAS,GAAA,OAAOC,GAAcC,EAAAA,KAAAA,GAAAA;AAClC,IAAA,MAAM,EAAEC,IAAI,EAAE,GAAGF,IAAIG,KAAK;AAE1B,IAAA,IAAI,CAACD,IAAM,EAAA;AACT,QAAA,MAAM,IAAIL,iBAAAA,EAAAA;AACZ;IAEA,MAAMO,wBAAAA,CAAyBL,MAAM,CAACG,IAAM,EAAA;AAAED,QAAAA;AAAM,KAAA,CAAA;AACtD,CAAA;AAEO,MAAMI,OAAOX,oBAAqB,CAAA;AAAEK,IAAAA;AAAO,CAAG;AAC9C,MAAMO,OAAOX,oBAAqB,CAAA;AAAEI,IAAAA;AAAO,CAAG;AAErD,aAAe;AACbM,IAAAA,IAAAA;AACAC,IAAAA;AACF,CAAE;;;;"}
1
+ {"version":3,"file":"runner.mjs","sources":["../../../../../../server/src/controllers/transfer/runner.ts"],"sourcesContent":["import { Context } from 'koa';\n\nimport { strapi as dataTransferStrapi } from '@strapi/data-transfer';\nimport { errors } from '@strapi/utils';\nimport dataTransferAuthStrategy from '../../strategies/data-transfer';\n\nconst {\n remote: {\n handlers: { createPushController, createPullController },\n },\n} = dataTransferStrapi;\n\nconst { UnauthorizedError } = errors;\n\n/**\n * @param ctx the koa context\n * @param scope the scope to verify\n */\nconst verify = async (ctx: Context, scope?: dataTransferStrapi.remote.constants.TransferMethod) => {\n const { auth } = ctx.state;\n\n if (!auth) {\n throw new UnauthorizedError();\n }\n\n await dataTransferAuthStrategy.verify(auth, { scope });\n};\n\nexport const push = createPushController({ verify });\nexport const pull = createPullController({ verify });\n\nexport default {\n push,\n pull,\n};\n"],"names":["remote","handlers","createPushController","createPullController","dataTransferStrapi","UnauthorizedError","errors","verify","ctx","scope","auth","state","dataTransferAuthStrategy","push","pull"],"mappings":";;;;AAMA,MAAM,EACJA,MAAAA,EAAQ,EACNC,QAAAA,EAAU,EAAEC,oBAAoB,EAAEC,oBAAoB,EAAE,EACzD,EACF,GAAGC,MAAAA;AAEJ,MAAM,EAAEC,iBAAiB,EAAE,GAAGC,MAAAA;AAE9B;;;IAIA,MAAMC,MAAAA,GAAS,OAAOC,GAAAA,EAAcC,KAAAA,GAAAA;AAClC,IAAA,MAAM,EAAEC,IAAI,EAAE,GAAGF,IAAIG,KAAK;AAE1B,IAAA,IAAI,CAACD,IAAAA,EAAM;AACT,QAAA,MAAM,IAAIL,iBAAAA,EAAAA;AACZ,IAAA;IAEA,MAAMO,wBAAAA,CAAyBL,MAAM,CAACG,IAAAA,EAAM;AAAED,QAAAA;AAAM,KAAA,CAAA;AACtD,CAAA;AAEO,MAAMI,OAAOX,oBAAAA,CAAqB;AAAEK,IAAAA;AAAO,CAAA;AAC3C,MAAMO,OAAOX,oBAAAA,CAAqB;AAAEI,IAAAA;AAAO,CAAA;AAElD,aAAe;AACbM,IAAAA,IAAAA;AACAC,IAAAA;AACF,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"token.js","sources":["../../../../../../server/src/controllers/transfer/token.ts"],"sourcesContent":["import { Context } from 'koa';\nimport { trim, has } from 'lodash/fp';\nimport { errors, strings } from '@strapi/utils';\nimport { getService } from '../../utils';\nimport { token } from '../../validation/transfer';\n\nimport type {\n TokenCreate,\n TokenGetById,\n TokenList,\n TokenRegenerate,\n TokenRevoke,\n TokenUpdate,\n} from '../../../../shared/contracts/transfer';\n\nconst { ApplicationError } = errors;\n\nconst { validateTransferTokenCreationInput, validateTransferTokenUpdateInput } = token;\n\nexport default {\n async list(ctx: Context) {\n const transferService = getService('transfer');\n const transferTokens = await transferService.token.list();\n\n ctx.body = { data: transferTokens } satisfies TokenList.Response;\n },\n\n async getById(ctx: Context) {\n const { id } = ctx.params as TokenGetById.Params;\n const tokenService = getService('transfer').token;\n\n const transferToken = await tokenService.getById(id);\n\n if (!transferToken) {\n ctx.notFound('Transfer token not found');\n return;\n }\n\n ctx.body = { data: transferToken } satisfies TokenGetById.Response;\n },\n\n async create(ctx: Context) {\n const { body } = ctx.request as TokenCreate.Request;\n const { token: tokenService } = getService('transfer');\n\n /**\n * We trim fields to avoid having issues with either:\n * - having a space at the end or start of the value\n * - having only spaces as value (so that an empty field can be caught in validation)\n */\n const attributes = {\n name: trim(body.name),\n description: trim(body.description),\n permissions: body.permissions,\n lifespan: body.lifespan,\n };\n\n await validateTransferTokenCreationInput(attributes);\n\n const alreadyExists = await tokenService.exists({ name: attributes.name });\n if (alreadyExists) {\n throw new ApplicationError('Name already taken');\n }\n\n const transferTokens = await tokenService.create(attributes);\n\n ctx.created({ data: transferTokens } satisfies TokenCreate.Response);\n },\n\n async update(ctx: Context) {\n const { body } = ctx.request as TokenUpdate.Request;\n const { id } = ctx.params as TokenUpdate.Params;\n const { token: tokenService } = getService('transfer');\n\n const attributes = body;\n /**\n * We trim fields to avoid having issues with either:\n * - having a space at the end or start of the value\n * - having only spaces as value (so that an empty field can be caught in validation)\n */\n if (has('name', attributes)) {\n attributes.name = trim(body.name);\n }\n\n if (has('description', attributes) || attributes.description === null) {\n attributes.description = trim(body.description);\n }\n\n await validateTransferTokenUpdateInput(attributes);\n\n const apiTokenExists = await tokenService.getById(id);\n if (!apiTokenExists) {\n return ctx.notFound('Transfer token not found');\n }\n\n if (has('name', attributes)) {\n const nameAlreadyTaken = await tokenService.getByName(attributes.name);\n\n /**\n * We cast the ids as string as the one coming from the ctx isn't cast\n * as a Number in case it is supposed to be an integer. It remains\n * as a string. This way we avoid issues with integers in the db.\n */\n if (!!nameAlreadyTaken && !strings.isEqual(nameAlreadyTaken.id, id)) {\n throw new ApplicationError('Name already taken');\n }\n }\n\n const apiToken = await tokenService.update(id, attributes);\n\n ctx.body = { data: apiToken } satisfies TokenUpdate.Response;\n },\n\n async revoke(ctx: Context) {\n const { id } = ctx.params as TokenRevoke.Params;\n const { token: tokenService } = getService('transfer');\n\n const transferToken = await tokenService.revoke(id);\n\n ctx.deleted({ data: transferToken } satisfies TokenRevoke.Response);\n },\n\n async regenerate(ctx: Context) {\n const { id } = ctx.params as TokenRegenerate.Params;\n const { token: tokenService } = getService('transfer');\n\n const exists = await tokenService.getById(id);\n if (!exists) {\n ctx.notFound('Transfer token not found');\n return;\n }\n\n const accessToken = await tokenService.regenerate(id);\n\n ctx.created({ data: accessToken } satisfies TokenRegenerate.Response);\n },\n};\n"],"names":["ApplicationError","errors","validateTransferTokenCreationInput","validateTransferTokenUpdateInput","token","list","ctx","transferService","getService","transferTokens","body","data","getById","id","params","tokenService","transferToken","notFound","create","request","attributes","name","trim","description","permissions","lifespan","alreadyExists","exists","created","update","has","apiTokenExists","nameAlreadyTaken","getByName","strings","isEqual","apiToken","revoke","deleted","regenerate","accessToken"],"mappings":"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"}
1
+ {"version":3,"file":"token.js","sources":["../../../../../../server/src/controllers/transfer/token.ts"],"sourcesContent":["import { Context } from 'koa';\nimport { trim, has } from 'lodash/fp';\nimport { errors, strings } from '@strapi/utils';\nimport { getService } from '../../utils';\nimport { token } from '../../validation/transfer';\n\nimport type {\n TokenCreate,\n TokenGetById,\n TokenList,\n TokenRegenerate,\n TokenRevoke,\n TokenUpdate,\n} from '../../../../shared/contracts/transfer';\n\nconst { ApplicationError } = errors;\n\nconst { validateTransferTokenCreationInput, validateTransferTokenUpdateInput } = token;\n\nexport default {\n async list(ctx: Context) {\n const transferService = getService('transfer');\n const transferTokens = await transferService.token.list();\n\n ctx.body = { data: transferTokens } satisfies TokenList.Response;\n },\n\n async getById(ctx: Context) {\n const { id } = ctx.params as TokenGetById.Params;\n const tokenService = getService('transfer').token;\n\n const transferToken = await tokenService.getById(id);\n\n if (!transferToken) {\n ctx.notFound('Transfer token not found');\n return;\n }\n\n ctx.body = { data: transferToken } satisfies TokenGetById.Response;\n },\n\n async create(ctx: Context) {\n const { body } = ctx.request as TokenCreate.Request;\n const { token: tokenService } = getService('transfer');\n\n /**\n * We trim fields to avoid having issues with either:\n * - having a space at the end or start of the value\n * - having only spaces as value (so that an empty field can be caught in validation)\n */\n const attributes = {\n name: trim(body.name),\n description: trim(body.description),\n permissions: body.permissions,\n lifespan: body.lifespan,\n };\n\n await validateTransferTokenCreationInput(attributes);\n\n const alreadyExists = await tokenService.exists({ name: attributes.name });\n if (alreadyExists) {\n throw new ApplicationError('Name already taken');\n }\n\n const transferTokens = await tokenService.create(attributes);\n\n ctx.created({ data: transferTokens } satisfies TokenCreate.Response);\n },\n\n async update(ctx: Context) {\n const { body } = ctx.request as TokenUpdate.Request;\n const { id } = ctx.params as TokenUpdate.Params;\n const { token: tokenService } = getService('transfer');\n\n const attributes = body;\n /**\n * We trim fields to avoid having issues with either:\n * - having a space at the end or start of the value\n * - having only spaces as value (so that an empty field can be caught in validation)\n */\n if (has('name', attributes)) {\n attributes.name = trim(body.name);\n }\n\n if (has('description', attributes) || attributes.description === null) {\n attributes.description = trim(body.description);\n }\n\n await validateTransferTokenUpdateInput(attributes);\n\n const apiTokenExists = await tokenService.getById(id);\n if (!apiTokenExists) {\n return ctx.notFound('Transfer token not found');\n }\n\n if (has('name', attributes)) {\n const nameAlreadyTaken = await tokenService.getByName(attributes.name);\n\n /**\n * We cast the ids as string as the one coming from the ctx isn't cast\n * as a Number in case it is supposed to be an integer. It remains\n * as a string. This way we avoid issues with integers in the db.\n */\n if (!!nameAlreadyTaken && !strings.isEqual(nameAlreadyTaken.id, id)) {\n throw new ApplicationError('Name already taken');\n }\n }\n\n const apiToken = await tokenService.update(id, attributes);\n\n ctx.body = { data: apiToken } satisfies TokenUpdate.Response;\n },\n\n async revoke(ctx: Context) {\n const { id } = ctx.params as TokenRevoke.Params;\n const { token: tokenService } = getService('transfer');\n\n const transferToken = await tokenService.revoke(id);\n\n ctx.deleted({ data: transferToken } satisfies TokenRevoke.Response);\n },\n\n async regenerate(ctx: Context) {\n const { id } = ctx.params as TokenRegenerate.Params;\n const { token: tokenService } = getService('transfer');\n\n const exists = await tokenService.getById(id);\n if (!exists) {\n ctx.notFound('Transfer token not found');\n return;\n }\n\n const accessToken = await tokenService.regenerate(id);\n\n ctx.created({ data: accessToken } satisfies TokenRegenerate.Response);\n },\n};\n"],"names":["ApplicationError","errors","validateTransferTokenCreationInput","validateTransferTokenUpdateInput","token","list","ctx","transferService","getService","transferTokens","body","data","getById","id","params","tokenService","transferToken","notFound","create","request","attributes","name","trim","description","permissions","lifespan","alreadyExists","exists","created","update","has","apiTokenExists","nameAlreadyTaken","getByName","strings","isEqual","apiToken","revoke","deleted","regenerate","accessToken"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { trim, has } from 'lodash/fp';
2
- import { strings, errors } from '@strapi/utils';
1
+ import { has, trim } from 'lodash/fp';
2
+ import { errors, strings } from '@strapi/utils';
3
3
  import { getService } from '../../utils/index.mjs';
4
4
  import token$1 from '../../validation/transfer/token.mjs';
5
5
 
@@ -1 +1 @@
1
- {"version":3,"file":"token.mjs","sources":["../../../../../../server/src/controllers/transfer/token.ts"],"sourcesContent":["import { Context } from 'koa';\nimport { trim, has } from 'lodash/fp';\nimport { errors, strings } from '@strapi/utils';\nimport { getService } from '../../utils';\nimport { token } from '../../validation/transfer';\n\nimport type {\n TokenCreate,\n TokenGetById,\n TokenList,\n TokenRegenerate,\n TokenRevoke,\n TokenUpdate,\n} from '../../../../shared/contracts/transfer';\n\nconst { ApplicationError } = errors;\n\nconst { validateTransferTokenCreationInput, validateTransferTokenUpdateInput } = token;\n\nexport default {\n async list(ctx: Context) {\n const transferService = getService('transfer');\n const transferTokens = await transferService.token.list();\n\n ctx.body = { data: transferTokens } satisfies TokenList.Response;\n },\n\n async getById(ctx: Context) {\n const { id } = ctx.params as TokenGetById.Params;\n const tokenService = getService('transfer').token;\n\n const transferToken = await tokenService.getById(id);\n\n if (!transferToken) {\n ctx.notFound('Transfer token not found');\n return;\n }\n\n ctx.body = { data: transferToken } satisfies TokenGetById.Response;\n },\n\n async create(ctx: Context) {\n const { body } = ctx.request as TokenCreate.Request;\n const { token: tokenService } = getService('transfer');\n\n /**\n * We trim fields to avoid having issues with either:\n * - having a space at the end or start of the value\n * - having only spaces as value (so that an empty field can be caught in validation)\n */\n const attributes = {\n name: trim(body.name),\n description: trim(body.description),\n permissions: body.permissions,\n lifespan: body.lifespan,\n };\n\n await validateTransferTokenCreationInput(attributes);\n\n const alreadyExists = await tokenService.exists({ name: attributes.name });\n if (alreadyExists) {\n throw new ApplicationError('Name already taken');\n }\n\n const transferTokens = await tokenService.create(attributes);\n\n ctx.created({ data: transferTokens } satisfies TokenCreate.Response);\n },\n\n async update(ctx: Context) {\n const { body } = ctx.request as TokenUpdate.Request;\n const { id } = ctx.params as TokenUpdate.Params;\n const { token: tokenService } = getService('transfer');\n\n const attributes = body;\n /**\n * We trim fields to avoid having issues with either:\n * - having a space at the end or start of the value\n * - having only spaces as value (so that an empty field can be caught in validation)\n */\n if (has('name', attributes)) {\n attributes.name = trim(body.name);\n }\n\n if (has('description', attributes) || attributes.description === null) {\n attributes.description = trim(body.description);\n }\n\n await validateTransferTokenUpdateInput(attributes);\n\n const apiTokenExists = await tokenService.getById(id);\n if (!apiTokenExists) {\n return ctx.notFound('Transfer token not found');\n }\n\n if (has('name', attributes)) {\n const nameAlreadyTaken = await tokenService.getByName(attributes.name);\n\n /**\n * We cast the ids as string as the one coming from the ctx isn't cast\n * as a Number in case it is supposed to be an integer. It remains\n * as a string. This way we avoid issues with integers in the db.\n */\n if (!!nameAlreadyTaken && !strings.isEqual(nameAlreadyTaken.id, id)) {\n throw new ApplicationError('Name already taken');\n }\n }\n\n const apiToken = await tokenService.update(id, attributes);\n\n ctx.body = { data: apiToken } satisfies TokenUpdate.Response;\n },\n\n async revoke(ctx: Context) {\n const { id } = ctx.params as TokenRevoke.Params;\n const { token: tokenService } = getService('transfer');\n\n const transferToken = await tokenService.revoke(id);\n\n ctx.deleted({ data: transferToken } satisfies TokenRevoke.Response);\n },\n\n async regenerate(ctx: Context) {\n const { id } = ctx.params as TokenRegenerate.Params;\n const { token: tokenService } = getService('transfer');\n\n const exists = await tokenService.getById(id);\n if (!exists) {\n ctx.notFound('Transfer token not found');\n return;\n }\n\n const accessToken = await tokenService.regenerate(id);\n\n ctx.created({ data: accessToken } satisfies TokenRegenerate.Response);\n },\n};\n"],"names":["ApplicationError","errors","validateTransferTokenCreationInput","validateTransferTokenUpdateInput","token","list","ctx","transferService","getService","transferTokens","body","data","getById","id","params","tokenService","transferToken","notFound","create","request","attributes","name","trim","description","permissions","lifespan","alreadyExists","exists","created","update","has","apiTokenExists","nameAlreadyTaken","getByName","strings","isEqual","apiToken","revoke","deleted","regenerate","accessToken"],"mappings":"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"}
1
+ {"version":3,"file":"token.mjs","sources":["../../../../../../server/src/controllers/transfer/token.ts"],"sourcesContent":["import { Context } from 'koa';\nimport { trim, has } from 'lodash/fp';\nimport { errors, strings } from '@strapi/utils';\nimport { getService } from '../../utils';\nimport { token } from '../../validation/transfer';\n\nimport type {\n TokenCreate,\n TokenGetById,\n TokenList,\n TokenRegenerate,\n TokenRevoke,\n TokenUpdate,\n} from '../../../../shared/contracts/transfer';\n\nconst { ApplicationError } = errors;\n\nconst { validateTransferTokenCreationInput, validateTransferTokenUpdateInput } = token;\n\nexport default {\n async list(ctx: Context) {\n const transferService = getService('transfer');\n const transferTokens = await transferService.token.list();\n\n ctx.body = { data: transferTokens } satisfies TokenList.Response;\n },\n\n async getById(ctx: Context) {\n const { id } = ctx.params as TokenGetById.Params;\n const tokenService = getService('transfer').token;\n\n const transferToken = await tokenService.getById(id);\n\n if (!transferToken) {\n ctx.notFound('Transfer token not found');\n return;\n }\n\n ctx.body = { data: transferToken } satisfies TokenGetById.Response;\n },\n\n async create(ctx: Context) {\n const { body } = ctx.request as TokenCreate.Request;\n const { token: tokenService } = getService('transfer');\n\n /**\n * We trim fields to avoid having issues with either:\n * - having a space at the end or start of the value\n * - having only spaces as value (so that an empty field can be caught in validation)\n */\n const attributes = {\n name: trim(body.name),\n description: trim(body.description),\n permissions: body.permissions,\n lifespan: body.lifespan,\n };\n\n await validateTransferTokenCreationInput(attributes);\n\n const alreadyExists = await tokenService.exists({ name: attributes.name });\n if (alreadyExists) {\n throw new ApplicationError('Name already taken');\n }\n\n const transferTokens = await tokenService.create(attributes);\n\n ctx.created({ data: transferTokens } satisfies TokenCreate.Response);\n },\n\n async update(ctx: Context) {\n const { body } = ctx.request as TokenUpdate.Request;\n const { id } = ctx.params as TokenUpdate.Params;\n const { token: tokenService } = getService('transfer');\n\n const attributes = body;\n /**\n * We trim fields to avoid having issues with either:\n * - having a space at the end or start of the value\n * - having only spaces as value (so that an empty field can be caught in validation)\n */\n if (has('name', attributes)) {\n attributes.name = trim(body.name);\n }\n\n if (has('description', attributes) || attributes.description === null) {\n attributes.description = trim(body.description);\n }\n\n await validateTransferTokenUpdateInput(attributes);\n\n const apiTokenExists = await tokenService.getById(id);\n if (!apiTokenExists) {\n return ctx.notFound('Transfer token not found');\n }\n\n if (has('name', attributes)) {\n const nameAlreadyTaken = await tokenService.getByName(attributes.name);\n\n /**\n * We cast the ids as string as the one coming from the ctx isn't cast\n * as a Number in case it is supposed to be an integer. It remains\n * as a string. This way we avoid issues with integers in the db.\n */\n if (!!nameAlreadyTaken && !strings.isEqual(nameAlreadyTaken.id, id)) {\n throw new ApplicationError('Name already taken');\n }\n }\n\n const apiToken = await tokenService.update(id, attributes);\n\n ctx.body = { data: apiToken } satisfies TokenUpdate.Response;\n },\n\n async revoke(ctx: Context) {\n const { id } = ctx.params as TokenRevoke.Params;\n const { token: tokenService } = getService('transfer');\n\n const transferToken = await tokenService.revoke(id);\n\n ctx.deleted({ data: transferToken } satisfies TokenRevoke.Response);\n },\n\n async regenerate(ctx: Context) {\n const { id } = ctx.params as TokenRegenerate.Params;\n const { token: tokenService } = getService('transfer');\n\n const exists = await tokenService.getById(id);\n if (!exists) {\n ctx.notFound('Transfer token not found');\n return;\n }\n\n const accessToken = await tokenService.regenerate(id);\n\n ctx.created({ data: accessToken } satisfies TokenRegenerate.Response);\n },\n};\n"],"names":["ApplicationError","errors","validateTransferTokenCreationInput","validateTransferTokenUpdateInput","token","list","ctx","transferService","getService","transferTokens","body","data","getById","id","params","tokenService","transferToken","notFound","create","request","attributes","name","trim","description","permissions","lifespan","alreadyExists","exists","created","update","has","apiTokenExists","nameAlreadyTaken","getByName","strings","isEqual","apiToken","revoke","deleted","regenerate","accessToken"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sources":["../../../../../server/src/controllers/user.ts"],"sourcesContent":["import type { Context } from 'koa';\n\nimport * as _ from 'lodash';\nimport { errors } from '@strapi/utils';\nimport {\n validateUserCreationInput,\n validateUserUpdateInput,\n validateUsersDeleteInput,\n} from '../validation/user';\nimport { getService } from '../utils';\nimport {\n Create,\n DeleteMany,\n DeleteOne,\n FindAll,\n FindOne,\n Update,\n} from '../../../shared/contracts/user';\nimport { AdminUser } from '../../../shared/contracts/shared';\n\nconst { ApplicationError } = errors;\n\nexport default {\n async create(ctx: Context) {\n const { body } = ctx.request as Create.Request;\n const cleanData = { ...body, email: _.get(body, `email`, ``).toLowerCase() };\n\n await validateUserCreationInput(cleanData);\n\n const attributes = _.pick(cleanData, [\n 'firstname',\n 'lastname',\n 'email',\n 'roles',\n 'preferedLanguage',\n ]);\n\n const userAlreadyExists = await getService('user').exists({\n email: attributes.email,\n });\n\n if (userAlreadyExists) {\n throw new ApplicationError('Email already taken');\n }\n\n const createdUser = await getService('user').create(attributes);\n\n const userInfo = getService('user').sanitizeUser(createdUser);\n\n // Note: We need to assign manually the registrationToken to the\n // final user payload so that it's not removed in the sanitation process.\n Object.assign(userInfo, { registrationToken: createdUser.registrationToken });\n\n // Send 201 created\n ctx.created({ data: userInfo } satisfies Create.Response);\n },\n\n async find(ctx: Context) {\n const userService = getService('user');\n\n const permissionsManager = strapi.service('admin::permission').createPermissionsManager({\n ability: ctx.state.userAbility,\n model: 'admin::user',\n });\n\n await permissionsManager.validateQuery(ctx.query);\n const sanitizedQuery = await permissionsManager.sanitizeQuery(ctx.query);\n\n // @ts-expect-error update the service type\n const { results, pagination } = await userService.findPage(sanitizedQuery);\n\n ctx.body = {\n data: {\n results: results.map((user: AdminUser) => userService.sanitizeUser(user)),\n pagination,\n },\n } satisfies FindAll.Response;\n },\n\n async findOne(ctx: Context) {\n const { id } = ctx.params as FindOne.Params;\n\n const user = await getService('user').findOne(id);\n\n if (!user) {\n return ctx.notFound('User does not exist');\n }\n\n ctx.body = {\n data: getService('user').sanitizeUser(user as AdminUser),\n } as FindOne.Response;\n },\n\n async update(ctx: Context) {\n const { id } = ctx.params as Update.Params;\n const { body: input } = ctx.request as Update.Request;\n\n await validateUserUpdateInput(input);\n\n if (_.has(input, 'email')) {\n const uniqueEmailCheck = await getService('user').exists({\n id: { $ne: id },\n email: input.email,\n });\n\n if (uniqueEmailCheck) {\n throw new ApplicationError('A user with this email address already exists');\n }\n }\n\n const updatedUser = await getService('user').updateById(id, input);\n\n if (!updatedUser) {\n return ctx.notFound('User does not exist');\n }\n\n ctx.body = {\n data: getService('user').sanitizeUser(updatedUser),\n } satisfies Update.Response;\n },\n\n async deleteOne(ctx: Context) {\n const { id } = ctx.params as DeleteOne.Params;\n const user = ctx.state.user as AdminUser | undefined;\n\n if (user && user.id === id) {\n throw new ApplicationError('You cannot delete your own user');\n }\n\n const deletedUser = await getService('user').deleteById(id);\n\n if (!deletedUser) {\n return ctx.notFound('User not found');\n }\n\n return ctx.deleted({\n data: getService('user').sanitizeUser(deletedUser),\n } satisfies DeleteOne.Response);\n },\n\n /**\n * Delete several users\n * @param ctx - koa context\n */\n async deleteMany(ctx: Context) {\n const { body } = ctx.request as DeleteMany.Request;\n const user = ctx.state.user as AdminUser | undefined;\n await validateUsersDeleteInput(body);\n const idsSet = new Set(body.ids);\n\n // Prevent self-deletion\n if (user && idsSet.has(user.id)) {\n throw new ApplicationError('You cannot delete your own user');\n }\n const users = await getService('user').deleteByIds(body.ids);\n\n const sanitizedUsers = users.map(getService('user').sanitizeUser);\n\n return ctx.deleted({\n data: sanitizedUsers,\n } satisfies DeleteMany.Response);\n },\n};\n"],"names":["ApplicationError","errors","create","ctx","body","request","cleanData","email","_","get","toLowerCase","validateUserCreationInput","attributes","pick","userAlreadyExists","getService","exists","createdUser","userInfo","sanitizeUser","Object","assign","registrationToken","created","data","find","userService","permissionsManager","strapi","service","createPermissionsManager","ability","state","userAbility","model","validateQuery","query","sanitizedQuery","sanitizeQuery","results","pagination","findPage","map","user","findOne","id","params","notFound","update","input","validateUserUpdateInput","has","uniqueEmailCheck","$ne","updatedUser","updateById","deleteOne","deletedUser","deleteById","deleted","deleteMany","validateUsersDeleteInput","idsSet","Set","ids","users","deleteByIds","sanitizedUsers"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,MAAM,EAAEA,gBAAgB,EAAE,GAAGC,YAAAA;AAE7B,WAAe;AACb,IAAA,MAAMC,QAAOC,GAAY,EAAA;AACvB,QAAA,MAAM,EAAEC,IAAI,EAAE,GAAGD,IAAIE,OAAO;AAC5B,QAAA,MAAMC,SAAY,GAAA;AAAE,YAAA,GAAGF,IAAI;YAAEG,KAAOC,EAAAA,YAAAA,CAAEC,GAAG,CAACL,IAAM,EAAA,CAAC,KAAK,CAAC,EAAE,CAAE,CAAA,CAAA,CAAEM,WAAW;AAAG,SAAA;AAE3E,QAAA,MAAMC,gCAA0BL,CAAAA,SAAAA,CAAAA;AAEhC,QAAA,MAAMM,UAAaJ,GAAAA,YAAAA,CAAEK,IAAI,CAACP,SAAW,EAAA;AACnC,YAAA,WAAA;AACA,YAAA,UAAA;AACA,YAAA,OAAA;AACA,YAAA,OAAA;AACA,YAAA;AACD,SAAA,CAAA;AAED,QAAA,MAAMQ,iBAAoB,GAAA,MAAMC,gBAAW,CAAA,MAAA,CAAA,CAAQC,MAAM,CAAC;AACxDT,YAAAA,KAAAA,EAAOK,WAAWL;AACpB,SAAA,CAAA;AAEA,QAAA,IAAIO,iBAAmB,EAAA;AACrB,YAAA,MAAM,IAAId,gBAAiB,CAAA,qBAAA,CAAA;AAC7B;AAEA,QAAA,MAAMiB,WAAc,GAAA,MAAMF,gBAAW,CAAA,MAAA,CAAA,CAAQb,MAAM,CAACU,UAAAA,CAAAA;AAEpD,QAAA,MAAMM,QAAWH,GAAAA,gBAAAA,CAAW,MAAQI,CAAAA,CAAAA,YAAY,CAACF,WAAAA,CAAAA;;;QAIjDG,MAAOC,CAAAA,MAAM,CAACH,QAAU,EAAA;AAAEI,YAAAA,iBAAAA,EAAmBL,YAAYK;AAAkB,SAAA,CAAA;;AAG3EnB,QAAAA,GAAAA,CAAIoB,OAAO,CAAC;YAAEC,IAAMN,EAAAA;AAAS,SAAA,CAAA;AAC/B,KAAA;AAEA,IAAA,MAAMO,MAAKtB,GAAY,EAAA;AACrB,QAAA,MAAMuB,cAAcX,gBAAW,CAAA,MAAA,CAAA;AAE/B,QAAA,MAAMY,qBAAqBC,MAAOC,CAAAA,OAAO,CAAC,mBAAA,CAAA,CAAqBC,wBAAwB,CAAC;YACtFC,OAAS5B,EAAAA,GAAAA,CAAI6B,KAAK,CAACC,WAAW;YAC9BC,KAAO,EAAA;AACT,SAAA,CAAA;AAEA,QAAA,MAAMP,kBAAmBQ,CAAAA,aAAa,CAAChC,GAAAA,CAAIiC,KAAK,CAAA;AAChD,QAAA,MAAMC,iBAAiB,MAAMV,kBAAAA,CAAmBW,aAAa,CAACnC,IAAIiC,KAAK,CAAA;;QAGvE,MAAM,EAAEG,OAAO,EAAEC,UAAU,EAAE,GAAG,MAAMd,WAAYe,CAAAA,QAAQ,CAACJ,cAAAA,CAAAA;AAE3DlC,QAAAA,GAAAA,CAAIC,IAAI,GAAG;YACToB,IAAM,EAAA;AACJe,gBAAAA,OAAAA,EAASA,QAAQG,GAAG,CAAC,CAACC,IAAoBjB,GAAAA,WAAAA,CAAYP,YAAY,CAACwB,IAAAA,CAAAA,CAAAA;AACnEH,gBAAAA;AACF;AACF,SAAA;AACF,KAAA;AAEA,IAAA,MAAMI,SAAQzC,GAAY,EAAA;AACxB,QAAA,MAAM,EAAE0C,EAAE,EAAE,GAAG1C,IAAI2C,MAAM;AAEzB,QAAA,MAAMH,IAAO,GAAA,MAAM5B,gBAAW,CAAA,MAAA,CAAA,CAAQ6B,OAAO,CAACC,EAAAA,CAAAA;AAE9C,QAAA,IAAI,CAACF,IAAM,EAAA;YACT,OAAOxC,GAAAA,CAAI4C,QAAQ,CAAC,qBAAA,CAAA;AACtB;AAEA5C,QAAAA,GAAAA,CAAIC,IAAI,GAAG;YACToB,IAAMT,EAAAA,gBAAAA,CAAW,MAAQI,CAAAA,CAAAA,YAAY,CAACwB,IAAAA;AACxC,SAAA;AACF,KAAA;AAEA,IAAA,MAAMK,QAAO7C,GAAY,EAAA;AACvB,QAAA,MAAM,EAAE0C,EAAE,EAAE,GAAG1C,IAAI2C,MAAM;AACzB,QAAA,MAAM,EAAE1C,IAAM6C,EAAAA,KAAK,EAAE,GAAG9C,IAAIE,OAAO;AAEnC,QAAA,MAAM6C,8BAAwBD,CAAAA,KAAAA,CAAAA;AAE9B,QAAA,IAAIzC,YAAE2C,CAAAA,GAAG,CAACF,KAAAA,EAAO,OAAU,CAAA,EAAA;AACzB,YAAA,MAAMG,gBAAmB,GAAA,MAAMrC,gBAAW,CAAA,MAAA,CAAA,CAAQC,MAAM,CAAC;gBACvD6B,EAAI,EAAA;oBAAEQ,GAAKR,EAAAA;AAAG,iBAAA;AACdtC,gBAAAA,KAAAA,EAAO0C,MAAM1C;AACf,aAAA,CAAA;AAEA,YAAA,IAAI6C,gBAAkB,EAAA;AACpB,gBAAA,MAAM,IAAIpD,gBAAiB,CAAA,+CAAA,CAAA;AAC7B;AACF;AAEA,QAAA,MAAMsD,cAAc,MAAMvC,gBAAAA,CAAW,MAAQwC,CAAAA,CAAAA,UAAU,CAACV,EAAII,EAAAA,KAAAA,CAAAA;AAE5D,QAAA,IAAI,CAACK,WAAa,EAAA;YAChB,OAAOnD,GAAAA,CAAI4C,QAAQ,CAAC,qBAAA,CAAA;AACtB;AAEA5C,QAAAA,GAAAA,CAAIC,IAAI,GAAG;YACToB,IAAMT,EAAAA,gBAAAA,CAAW,MAAQI,CAAAA,CAAAA,YAAY,CAACmC,WAAAA;AACxC,SAAA;AACF,KAAA;AAEA,IAAA,MAAME,WAAUrD,GAAY,EAAA;AAC1B,QAAA,MAAM,EAAE0C,EAAE,EAAE,GAAG1C,IAAI2C,MAAM;AACzB,QAAA,MAAMH,IAAOxC,GAAAA,GAAAA,CAAI6B,KAAK,CAACW,IAAI;AAE3B,QAAA,IAAIA,IAAQA,IAAAA,IAAAA,CAAKE,EAAE,KAAKA,EAAI,EAAA;AAC1B,YAAA,MAAM,IAAI7C,gBAAiB,CAAA,iCAAA,CAAA;AAC7B;AAEA,QAAA,MAAMyD,WAAc,GAAA,MAAM1C,gBAAW,CAAA,MAAA,CAAA,CAAQ2C,UAAU,CAACb,EAAAA,CAAAA;AAExD,QAAA,IAAI,CAACY,WAAa,EAAA;YAChB,OAAOtD,GAAAA,CAAI4C,QAAQ,CAAC,gBAAA,CAAA;AACtB;QAEA,OAAO5C,GAAAA,CAAIwD,OAAO,CAAC;YACjBnC,IAAMT,EAAAA,gBAAAA,CAAW,MAAQI,CAAAA,CAAAA,YAAY,CAACsC,WAAAA;AACxC,SAAA,CAAA;AACF,KAAA;AAEA;;;MAIA,MAAMG,YAAWzD,GAAY,EAAA;AAC3B,QAAA,MAAM,EAAEC,IAAI,EAAE,GAAGD,IAAIE,OAAO;AAC5B,QAAA,MAAMsC,IAAOxC,GAAAA,GAAAA,CAAI6B,KAAK,CAACW,IAAI;AAC3B,QAAA,MAAMkB,+BAAyBzD,CAAAA,IAAAA,CAAAA;AAC/B,QAAA,MAAM0D,MAAS,GAAA,IAAIC,GAAI3D,CAAAA,IAAAA,CAAK4D,GAAG,CAAA;;AAG/B,QAAA,IAAIrB,QAAQmB,MAAOX,CAAAA,GAAG,CAACR,IAAAA,CAAKE,EAAE,CAAG,EAAA;AAC/B,YAAA,MAAM,IAAI7C,gBAAiB,CAAA,iCAAA,CAAA;AAC7B;AACA,QAAA,MAAMiE,QAAQ,MAAMlD,gBAAAA,CAAW,QAAQmD,WAAW,CAAC9D,KAAK4D,GAAG,CAAA;AAE3D,QAAA,MAAMG,iBAAiBF,KAAMvB,CAAAA,GAAG,CAAC3B,gBAAAA,CAAW,QAAQI,YAAY,CAAA;QAEhE,OAAOhB,GAAAA,CAAIwD,OAAO,CAAC;YACjBnC,IAAM2C,EAAAA;AACR,SAAA,CAAA;AACF;AACF,CAAE;;;;"}
1
+ {"version":3,"file":"user.js","sources":["../../../../../server/src/controllers/user.ts"],"sourcesContent":["import type { Context } from 'koa';\n\nimport * as _ from 'lodash';\nimport { errors } from '@strapi/utils';\nimport {\n validateUserCreationInput,\n validateUserUpdateInput,\n validateUsersDeleteInput,\n} from '../validation/user';\nimport { getService } from '../utils';\nimport {\n Create,\n DeleteMany,\n DeleteOne,\n FindAll,\n FindOne,\n Update,\n} from '../../../shared/contracts/user';\nimport { AdminUser } from '../../../shared/contracts/shared';\n\nconst { ApplicationError } = errors;\n\nexport default {\n async create(ctx: Context) {\n const { body } = ctx.request as Create.Request;\n const cleanData = { ...body, email: _.get(body, `email`, ``).toLowerCase() };\n\n await validateUserCreationInput(cleanData);\n\n const attributes = _.pick(cleanData, [\n 'firstname',\n 'lastname',\n 'email',\n 'roles',\n 'preferedLanguage',\n ]);\n\n const userAlreadyExists = await getService('user').exists({\n email: attributes.email,\n });\n\n if (userAlreadyExists) {\n throw new ApplicationError('Email already taken');\n }\n\n const createdUser = await getService('user').create(attributes);\n\n const userInfo = getService('user').sanitizeUser(createdUser);\n\n // Note: We need to assign manually the registrationToken to the\n // final user payload so that it's not removed in the sanitation process.\n Object.assign(userInfo, { registrationToken: createdUser.registrationToken });\n\n // Send 201 created\n ctx.created({ data: userInfo } satisfies Create.Response);\n },\n\n async find(ctx: Context) {\n const userService = getService('user');\n\n const permissionsManager = strapi.service('admin::permission').createPermissionsManager({\n ability: ctx.state.userAbility,\n model: 'admin::user',\n });\n\n await permissionsManager.validateQuery(ctx.query);\n const sanitizedQuery = await permissionsManager.sanitizeQuery(ctx.query);\n\n // @ts-expect-error update the service type\n const { results, pagination } = await userService.findPage(sanitizedQuery);\n\n ctx.body = {\n data: {\n results: results.map((user: AdminUser) => userService.sanitizeUser(user)),\n pagination,\n },\n } satisfies FindAll.Response;\n },\n\n async findOne(ctx: Context) {\n const { id } = ctx.params as FindOne.Params;\n\n const user = await getService('user').findOne(id);\n\n if (!user) {\n return ctx.notFound('User does not exist');\n }\n\n ctx.body = {\n data: getService('user').sanitizeUser(user as AdminUser),\n } as FindOne.Response;\n },\n\n async update(ctx: Context) {\n const { id } = ctx.params as Update.Params;\n const { body: input } = ctx.request as Update.Request;\n\n await validateUserUpdateInput(input);\n\n if (_.has(input, 'email')) {\n const uniqueEmailCheck = await getService('user').exists({\n id: { $ne: id },\n email: input.email,\n });\n\n if (uniqueEmailCheck) {\n throw new ApplicationError('A user with this email address already exists');\n }\n }\n\n const updatedUser = await getService('user').updateById(id, input);\n\n if (!updatedUser) {\n return ctx.notFound('User does not exist');\n }\n\n ctx.body = {\n data: getService('user').sanitizeUser(updatedUser),\n } satisfies Update.Response;\n },\n\n async deleteOne(ctx: Context) {\n const { id } = ctx.params as DeleteOne.Params;\n const user = ctx.state.user as AdminUser | undefined;\n\n if (user && user.id === id) {\n throw new ApplicationError('You cannot delete your own user');\n }\n\n const deletedUser = await getService('user').deleteById(id);\n\n if (!deletedUser) {\n return ctx.notFound('User not found');\n }\n\n return ctx.deleted({\n data: getService('user').sanitizeUser(deletedUser),\n } satisfies DeleteOne.Response);\n },\n\n /**\n * Delete several users\n * @param ctx - koa context\n */\n async deleteMany(ctx: Context) {\n const { body } = ctx.request as DeleteMany.Request;\n const user = ctx.state.user as AdminUser | undefined;\n await validateUsersDeleteInput(body);\n const idsSet = new Set(body.ids);\n\n // Prevent self-deletion\n if (user && idsSet.has(user.id)) {\n throw new ApplicationError('You cannot delete your own user');\n }\n const users = await getService('user').deleteByIds(body.ids);\n\n const sanitizedUsers = users.map(getService('user').sanitizeUser);\n\n return ctx.deleted({\n data: sanitizedUsers,\n } satisfies DeleteMany.Response);\n },\n};\n"],"names":["ApplicationError","errors","create","ctx","body","request","cleanData","email","_","get","toLowerCase","validateUserCreationInput","attributes","pick","userAlreadyExists","getService","exists","createdUser","userInfo","sanitizeUser","Object","assign","registrationToken","created","data","find","userService","permissionsManager","strapi","service","createPermissionsManager","ability","state","userAbility","model","validateQuery","query","sanitizedQuery","sanitizeQuery","results","pagination","findPage","map","user","findOne","id","params","notFound","update","input","validateUserUpdateInput","has","uniqueEmailCheck","$ne","updatedUser","updateById","deleteOne","deletedUser","deleteById","deleted","deleteMany","validateUsersDeleteInput","idsSet","Set","ids","users","deleteByIds","sanitizedUsers"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import * as _ from 'lodash';
2
2
  import { errors } from '@strapi/utils';
3
- import { validateUserCreationInput, validateUserUpdateInput, validateUsersDeleteInput } from '../validation/user.mjs';
3
+ import { validateUsersDeleteInput, validateUserUpdateInput, validateUserCreationInput } from '../validation/user.mjs';
4
4
  import { getService } from '../utils/index.mjs';
5
5
 
6
6
  const { ApplicationError } = errors;
@@ -1 +1 @@
1
- {"version":3,"file":"user.mjs","sources":["../../../../../server/src/controllers/user.ts"],"sourcesContent":["import type { Context } from 'koa';\n\nimport * as _ from 'lodash';\nimport { errors } from '@strapi/utils';\nimport {\n validateUserCreationInput,\n validateUserUpdateInput,\n validateUsersDeleteInput,\n} from '../validation/user';\nimport { getService } from '../utils';\nimport {\n Create,\n DeleteMany,\n DeleteOne,\n FindAll,\n FindOne,\n Update,\n} from '../../../shared/contracts/user';\nimport { AdminUser } from '../../../shared/contracts/shared';\n\nconst { ApplicationError } = errors;\n\nexport default {\n async create(ctx: Context) {\n const { body } = ctx.request as Create.Request;\n const cleanData = { ...body, email: _.get(body, `email`, ``).toLowerCase() };\n\n await validateUserCreationInput(cleanData);\n\n const attributes = _.pick(cleanData, [\n 'firstname',\n 'lastname',\n 'email',\n 'roles',\n 'preferedLanguage',\n ]);\n\n const userAlreadyExists = await getService('user').exists({\n email: attributes.email,\n });\n\n if (userAlreadyExists) {\n throw new ApplicationError('Email already taken');\n }\n\n const createdUser = await getService('user').create(attributes);\n\n const userInfo = getService('user').sanitizeUser(createdUser);\n\n // Note: We need to assign manually the registrationToken to the\n // final user payload so that it's not removed in the sanitation process.\n Object.assign(userInfo, { registrationToken: createdUser.registrationToken });\n\n // Send 201 created\n ctx.created({ data: userInfo } satisfies Create.Response);\n },\n\n async find(ctx: Context) {\n const userService = getService('user');\n\n const permissionsManager = strapi.service('admin::permission').createPermissionsManager({\n ability: ctx.state.userAbility,\n model: 'admin::user',\n });\n\n await permissionsManager.validateQuery(ctx.query);\n const sanitizedQuery = await permissionsManager.sanitizeQuery(ctx.query);\n\n // @ts-expect-error update the service type\n const { results, pagination } = await userService.findPage(sanitizedQuery);\n\n ctx.body = {\n data: {\n results: results.map((user: AdminUser) => userService.sanitizeUser(user)),\n pagination,\n },\n } satisfies FindAll.Response;\n },\n\n async findOne(ctx: Context) {\n const { id } = ctx.params as FindOne.Params;\n\n const user = await getService('user').findOne(id);\n\n if (!user) {\n return ctx.notFound('User does not exist');\n }\n\n ctx.body = {\n data: getService('user').sanitizeUser(user as AdminUser),\n } as FindOne.Response;\n },\n\n async update(ctx: Context) {\n const { id } = ctx.params as Update.Params;\n const { body: input } = ctx.request as Update.Request;\n\n await validateUserUpdateInput(input);\n\n if (_.has(input, 'email')) {\n const uniqueEmailCheck = await getService('user').exists({\n id: { $ne: id },\n email: input.email,\n });\n\n if (uniqueEmailCheck) {\n throw new ApplicationError('A user with this email address already exists');\n }\n }\n\n const updatedUser = await getService('user').updateById(id, input);\n\n if (!updatedUser) {\n return ctx.notFound('User does not exist');\n }\n\n ctx.body = {\n data: getService('user').sanitizeUser(updatedUser),\n } satisfies Update.Response;\n },\n\n async deleteOne(ctx: Context) {\n const { id } = ctx.params as DeleteOne.Params;\n const user = ctx.state.user as AdminUser | undefined;\n\n if (user && user.id === id) {\n throw new ApplicationError('You cannot delete your own user');\n }\n\n const deletedUser = await getService('user').deleteById(id);\n\n if (!deletedUser) {\n return ctx.notFound('User not found');\n }\n\n return ctx.deleted({\n data: getService('user').sanitizeUser(deletedUser),\n } satisfies DeleteOne.Response);\n },\n\n /**\n * Delete several users\n * @param ctx - koa context\n */\n async deleteMany(ctx: Context) {\n const { body } = ctx.request as DeleteMany.Request;\n const user = ctx.state.user as AdminUser | undefined;\n await validateUsersDeleteInput(body);\n const idsSet = new Set(body.ids);\n\n // Prevent self-deletion\n if (user && idsSet.has(user.id)) {\n throw new ApplicationError('You cannot delete your own user');\n }\n const users = await getService('user').deleteByIds(body.ids);\n\n const sanitizedUsers = users.map(getService('user').sanitizeUser);\n\n return ctx.deleted({\n data: sanitizedUsers,\n } satisfies DeleteMany.Response);\n },\n};\n"],"names":["ApplicationError","errors","create","ctx","body","request","cleanData","email","_","get","toLowerCase","validateUserCreationInput","attributes","pick","userAlreadyExists","getService","exists","createdUser","userInfo","sanitizeUser","Object","assign","registrationToken","created","data","find","userService","permissionsManager","strapi","service","createPermissionsManager","ability","state","userAbility","model","validateQuery","query","sanitizedQuery","sanitizeQuery","results","pagination","findPage","map","user","findOne","id","params","notFound","update","input","validateUserUpdateInput","has","uniqueEmailCheck","$ne","updatedUser","updateById","deleteOne","deletedUser","deleteById","deleted","deleteMany","validateUsersDeleteInput","idsSet","Set","ids","users","deleteByIds","sanitizedUsers"],"mappings":"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"}
1
+ {"version":3,"file":"user.mjs","sources":["../../../../../server/src/controllers/user.ts"],"sourcesContent":["import type { Context } from 'koa';\n\nimport * as _ from 'lodash';\nimport { errors } from '@strapi/utils';\nimport {\n validateUserCreationInput,\n validateUserUpdateInput,\n validateUsersDeleteInput,\n} from '../validation/user';\nimport { getService } from '../utils';\nimport {\n Create,\n DeleteMany,\n DeleteOne,\n FindAll,\n FindOne,\n Update,\n} from '../../../shared/contracts/user';\nimport { AdminUser } from '../../../shared/contracts/shared';\n\nconst { ApplicationError } = errors;\n\nexport default {\n async create(ctx: Context) {\n const { body } = ctx.request as Create.Request;\n const cleanData = { ...body, email: _.get(body, `email`, ``).toLowerCase() };\n\n await validateUserCreationInput(cleanData);\n\n const attributes = _.pick(cleanData, [\n 'firstname',\n 'lastname',\n 'email',\n 'roles',\n 'preferedLanguage',\n ]);\n\n const userAlreadyExists = await getService('user').exists({\n email: attributes.email,\n });\n\n if (userAlreadyExists) {\n throw new ApplicationError('Email already taken');\n }\n\n const createdUser = await getService('user').create(attributes);\n\n const userInfo = getService('user').sanitizeUser(createdUser);\n\n // Note: We need to assign manually the registrationToken to the\n // final user payload so that it's not removed in the sanitation process.\n Object.assign(userInfo, { registrationToken: createdUser.registrationToken });\n\n // Send 201 created\n ctx.created({ data: userInfo } satisfies Create.Response);\n },\n\n async find(ctx: Context) {\n const userService = getService('user');\n\n const permissionsManager = strapi.service('admin::permission').createPermissionsManager({\n ability: ctx.state.userAbility,\n model: 'admin::user',\n });\n\n await permissionsManager.validateQuery(ctx.query);\n const sanitizedQuery = await permissionsManager.sanitizeQuery(ctx.query);\n\n // @ts-expect-error update the service type\n const { results, pagination } = await userService.findPage(sanitizedQuery);\n\n ctx.body = {\n data: {\n results: results.map((user: AdminUser) => userService.sanitizeUser(user)),\n pagination,\n },\n } satisfies FindAll.Response;\n },\n\n async findOne(ctx: Context) {\n const { id } = ctx.params as FindOne.Params;\n\n const user = await getService('user').findOne(id);\n\n if (!user) {\n return ctx.notFound('User does not exist');\n }\n\n ctx.body = {\n data: getService('user').sanitizeUser(user as AdminUser),\n } as FindOne.Response;\n },\n\n async update(ctx: Context) {\n const { id } = ctx.params as Update.Params;\n const { body: input } = ctx.request as Update.Request;\n\n await validateUserUpdateInput(input);\n\n if (_.has(input, 'email')) {\n const uniqueEmailCheck = await getService('user').exists({\n id: { $ne: id },\n email: input.email,\n });\n\n if (uniqueEmailCheck) {\n throw new ApplicationError('A user with this email address already exists');\n }\n }\n\n const updatedUser = await getService('user').updateById(id, input);\n\n if (!updatedUser) {\n return ctx.notFound('User does not exist');\n }\n\n ctx.body = {\n data: getService('user').sanitizeUser(updatedUser),\n } satisfies Update.Response;\n },\n\n async deleteOne(ctx: Context) {\n const { id } = ctx.params as DeleteOne.Params;\n const user = ctx.state.user as AdminUser | undefined;\n\n if (user && user.id === id) {\n throw new ApplicationError('You cannot delete your own user');\n }\n\n const deletedUser = await getService('user').deleteById(id);\n\n if (!deletedUser) {\n return ctx.notFound('User not found');\n }\n\n return ctx.deleted({\n data: getService('user').sanitizeUser(deletedUser),\n } satisfies DeleteOne.Response);\n },\n\n /**\n * Delete several users\n * @param ctx - koa context\n */\n async deleteMany(ctx: Context) {\n const { body } = ctx.request as DeleteMany.Request;\n const user = ctx.state.user as AdminUser | undefined;\n await validateUsersDeleteInput(body);\n const idsSet = new Set(body.ids);\n\n // Prevent self-deletion\n if (user && idsSet.has(user.id)) {\n throw new ApplicationError('You cannot delete your own user');\n }\n const users = await getService('user').deleteByIds(body.ids);\n\n const sanitizedUsers = users.map(getService('user').sanitizeUser);\n\n return ctx.deleted({\n data: sanitizedUsers,\n } satisfies DeleteMany.Response);\n },\n};\n"],"names":["ApplicationError","errors","create","ctx","body","request","cleanData","email","_","get","toLowerCase","validateUserCreationInput","attributes","pick","userAlreadyExists","getService","exists","createdUser","userInfo","sanitizeUser","Object","assign","registrationToken","created","data","find","userService","permissionsManager","strapi","service","createPermissionsManager","ability","state","userAbility","model","validateQuery","query","sanitizedQuery","sanitizeQuery","results","pagination","findPage","map","user","findOne","id","params","notFound","update","input","validateUserUpdateInput","has","uniqueEmailCheck","$ne","updatedUser","updateById","deleteOne","deletedUser","deleteById","deleted","deleteMany","validateUsersDeleteInput","idsSet","Set","ids","users","deleteByIds","sanitizedUsers"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sources":["../../../../../../server/src/controllers/validation/schema.ts"],"sourcesContent":["import { z } from 'zod';\n\n// widths must be one of 4, 6, 8, 12\nexport const WidthSchema = z.union([z.literal(4), z.literal(6), z.literal(8), z.literal(12)]);\n\nconst WidgetEntrySchema = z\n .object({\n uid: z.string().nonempty(),\n width: WidthSchema,\n })\n .strict();\n\nexport const HomepageLayoutSchema = z\n .object({\n version: z.number().int().min(1),\n widgets: z.array(WidgetEntrySchema).max(100),\n updatedAt: z.string().datetime(),\n })\n .strict();\n\nexport type HomepageLayout = z.infer<typeof HomepageLayoutSchema>;\n\nexport const HomepageLayoutWriteSchema = z\n .object({\n version: z.number().int().min(1).optional(),\n widgets: z.array(WidgetEntrySchema).max(100),\n updatedAt: z.string().datetime().optional(),\n })\n .strict();\n\nexport type HomepageLayoutWrite = z.infer<typeof HomepageLayoutWriteSchema>;\n"],"names":["WidthSchema","z","union","literal","WidgetEntrySchema","object","uid","string","nonempty","width","strict","HomepageLayoutSchema","version","number","int","min","widgets","array","max","updatedAt","datetime","HomepageLayoutWriteSchema","optional"],"mappings":";;;;AAEA;AACaA,MAAAA,WAAAA,GAAcC,KAAEC,CAAAA,KAAK,CAAC;AAACD,IAAAA,KAAAA,CAAEE,OAAO,CAAC,CAAA,CAAA;AAAIF,IAAAA,KAAAA,CAAEE,OAAO,CAAC,CAAA,CAAA;AAAIF,IAAAA,KAAAA,CAAEE,OAAO,CAAC,CAAA,CAAA;AAAIF,IAAAA,KAAAA,CAAEE,OAAO,CAAC,EAAA;CAAI;AAE5F,MAAMC,iBAAAA,GAAoBH,KACvBI,CAAAA,MAAM,CAAC;IACNC,GAAKL,EAAAA,KAAAA,CAAEM,MAAM,EAAA,CAAGC,QAAQ,EAAA;IACxBC,KAAOT,EAAAA;AACT,CAAA,CAAA,CACCU,MAAM,EAAA;AAEIC,MAAAA,oBAAAA,GAAuBV,KACjCI,CAAAA,MAAM,CAAC;AACNO,IAAAA,OAAAA,EAASX,MAAEY,MAAM,EAAA,CAAGC,GAAG,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA;AAC9BC,IAAAA,OAAAA,EAASf,KAAEgB,CAAAA,KAAK,CAACb,iBAAAA,CAAAA,CAAmBc,GAAG,CAAC,GAAA,CAAA;IACxCC,SAAWlB,EAAAA,KAAAA,CAAEM,MAAM,EAAA,CAAGa,QAAQ;AAChC,CAAA,CAAA,CACCV,MAAM;AAIIW,MAAAA,yBAAAA,GAA4BpB,KACtCI,CAAAA,MAAM,CAAC;IACNO,OAASX,EAAAA,KAAAA,CAAEY,MAAM,EAAGC,CAAAA,GAAG,GAAGC,GAAG,CAAC,GAAGO,QAAQ,EAAA;AACzCN,IAAAA,OAAAA,EAASf,KAAEgB,CAAAA,KAAK,CAACb,iBAAAA,CAAAA,CAAmBc,GAAG,CAAC,GAAA,CAAA;AACxCC,IAAAA,SAAAA,EAAWlB,KAAEM,CAAAA,MAAM,EAAGa,CAAAA,QAAQ,GAAGE,QAAQ;AAC3C,CAAA,CAAA,CACCZ,MAAM;;;;;;"}
1
+ {"version":3,"file":"schema.js","sources":["../../../../../../server/src/controllers/validation/schema.ts"],"sourcesContent":["import { z } from 'zod';\n\n// widths must be one of 4, 6, 8, 12\nexport const WidthSchema = z.union([z.literal(4), z.literal(6), z.literal(8), z.literal(12)]);\n\nconst WidgetEntrySchema = z\n .object({\n uid: z.string().nonempty(),\n width: WidthSchema,\n })\n .strict();\n\nexport const HomepageLayoutSchema = z\n .object({\n version: z.number().int().min(1),\n widgets: z.array(WidgetEntrySchema).max(100),\n updatedAt: z.string().datetime(),\n })\n .strict();\n\nexport type HomepageLayout = z.infer<typeof HomepageLayoutSchema>;\n\nexport const HomepageLayoutWriteSchema = z\n .object({\n version: z.number().int().min(1).optional(),\n widgets: z.array(WidgetEntrySchema).max(100),\n updatedAt: z.string().datetime().optional(),\n })\n .strict();\n\nexport type HomepageLayoutWrite = z.infer<typeof HomepageLayoutWriteSchema>;\n"],"names":["WidthSchema","z","union","literal","WidgetEntrySchema","object","uid","string","nonempty","width","strict","HomepageLayoutSchema","version","number","int","min","widgets","array","max","updatedAt","datetime","HomepageLayoutWriteSchema","optional"],"mappings":";;;;AAEA;AACO,MAAMA,WAAAA,GAAcC,KAAAA,CAAEC,KAAK,CAAC;AAACD,IAAAA,KAAAA,CAAEE,OAAO,CAAC,CAAA,CAAA;AAAIF,IAAAA,KAAAA,CAAEE,OAAO,CAAC,CAAA,CAAA;AAAIF,IAAAA,KAAAA,CAAEE,OAAO,CAAC,CAAA,CAAA;AAAIF,IAAAA,KAAAA,CAAEE,OAAO,CAAC,EAAA;CAAI;AAE5F,MAAMC,iBAAAA,GAAoBH,KAAAA,CACvBI,MAAM,CAAC;IACNC,GAAAA,EAAKL,KAAAA,CAAEM,MAAM,EAAA,CAAGC,QAAQ,EAAA;IACxBC,KAAAA,EAAOT;AACT,CAAA,CAAA,CACCU,MAAM,EAAA;AAEF,MAAMC,oBAAAA,GAAuBV,KAAAA,CACjCI,MAAM,CAAC;AACNO,IAAAA,OAAAA,EAASX,MAAEY,MAAM,EAAA,CAAGC,GAAG,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA;AAC9BC,IAAAA,OAAAA,EAASf,KAAAA,CAAEgB,KAAK,CAACb,iBAAAA,CAAAA,CAAmBc,GAAG,CAAC,GAAA,CAAA;IACxCC,SAAAA,EAAWlB,KAAAA,CAAEM,MAAM,EAAA,CAAGa,QAAQ;AAChC,CAAA,CAAA,CACCV,MAAM;AAIF,MAAMW,yBAAAA,GAA4BpB,KAAAA,CACtCI,MAAM,CAAC;IACNO,OAAAA,EAASX,KAAAA,CAAEY,MAAM,EAAA,CAAGC,GAAG,GAAGC,GAAG,CAAC,GAAGO,QAAQ,EAAA;AACzCN,IAAAA,OAAAA,EAASf,KAAAA,CAAEgB,KAAK,CAACb,iBAAAA,CAAAA,CAAmBc,GAAG,CAAC,GAAA,CAAA;AACxCC,IAAAA,SAAAA,EAAWlB,KAAAA,CAAEM,MAAM,EAAA,CAAGa,QAAQ,GAAGE,QAAQ;AAC3C,CAAA,CAAA,CACCZ,MAAM;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.mjs","sources":["../../../../../../server/src/controllers/validation/schema.ts"],"sourcesContent":["import { z } from 'zod';\n\n// widths must be one of 4, 6, 8, 12\nexport const WidthSchema = z.union([z.literal(4), z.literal(6), z.literal(8), z.literal(12)]);\n\nconst WidgetEntrySchema = z\n .object({\n uid: z.string().nonempty(),\n width: WidthSchema,\n })\n .strict();\n\nexport const HomepageLayoutSchema = z\n .object({\n version: z.number().int().min(1),\n widgets: z.array(WidgetEntrySchema).max(100),\n updatedAt: z.string().datetime(),\n })\n .strict();\n\nexport type HomepageLayout = z.infer<typeof HomepageLayoutSchema>;\n\nexport const HomepageLayoutWriteSchema = z\n .object({\n version: z.number().int().min(1).optional(),\n widgets: z.array(WidgetEntrySchema).max(100),\n updatedAt: z.string().datetime().optional(),\n })\n .strict();\n\nexport type HomepageLayoutWrite = z.infer<typeof HomepageLayoutWriteSchema>;\n"],"names":["WidthSchema","z","union","literal","WidgetEntrySchema","object","uid","string","nonempty","width","strict","HomepageLayoutSchema","version","number","int","min","widgets","array","max","updatedAt","datetime","HomepageLayoutWriteSchema","optional"],"mappings":";;AAEA;AACaA,MAAAA,WAAAA,GAAcC,CAAEC,CAAAA,KAAK,CAAC;AAACD,IAAAA,CAAAA,CAAEE,OAAO,CAAC,CAAA,CAAA;AAAIF,IAAAA,CAAAA,CAAEE,OAAO,CAAC,CAAA,CAAA;AAAIF,IAAAA,CAAAA,CAAEE,OAAO,CAAC,CAAA,CAAA;AAAIF,IAAAA,CAAAA,CAAEE,OAAO,CAAC,EAAA;CAAI;AAE5F,MAAMC,iBAAAA,GAAoBH,CACvBI,CAAAA,MAAM,CAAC;IACNC,GAAKL,EAAAA,CAAAA,CAAEM,MAAM,EAAA,CAAGC,QAAQ,EAAA;IACxBC,KAAOT,EAAAA;AACT,CAAA,CAAA,CACCU,MAAM,EAAA;AAEIC,MAAAA,oBAAAA,GAAuBV,CACjCI,CAAAA,MAAM,CAAC;AACNO,IAAAA,OAAAA,EAASX,EAAEY,MAAM,EAAA,CAAGC,GAAG,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA;AAC9BC,IAAAA,OAAAA,EAASf,CAAEgB,CAAAA,KAAK,CAACb,iBAAAA,CAAAA,CAAmBc,GAAG,CAAC,GAAA,CAAA;IACxCC,SAAWlB,EAAAA,CAAAA,CAAEM,MAAM,EAAA,CAAGa,QAAQ;AAChC,CAAA,CAAA,CACCV,MAAM;AAIIW,MAAAA,yBAAAA,GAA4BpB,CACtCI,CAAAA,MAAM,CAAC;IACNO,OAASX,EAAAA,CAAAA,CAAEY,MAAM,EAAGC,CAAAA,GAAG,GAAGC,GAAG,CAAC,GAAGO,QAAQ,EAAA;AACzCN,IAAAA,OAAAA,EAASf,CAAEgB,CAAAA,KAAK,CAACb,iBAAAA,CAAAA,CAAmBc,GAAG,CAAC,GAAA,CAAA;AACxCC,IAAAA,SAAAA,EAAWlB,CAAEM,CAAAA,MAAM,EAAGa,CAAAA,QAAQ,GAAGE,QAAQ;AAC3C,CAAA,CAAA,CACCZ,MAAM;;;;"}
1
+ {"version":3,"file":"schema.mjs","sources":["../../../../../../server/src/controllers/validation/schema.ts"],"sourcesContent":["import { z } from 'zod';\n\n// widths must be one of 4, 6, 8, 12\nexport const WidthSchema = z.union([z.literal(4), z.literal(6), z.literal(8), z.literal(12)]);\n\nconst WidgetEntrySchema = z\n .object({\n uid: z.string().nonempty(),\n width: WidthSchema,\n })\n .strict();\n\nexport const HomepageLayoutSchema = z\n .object({\n version: z.number().int().min(1),\n widgets: z.array(WidgetEntrySchema).max(100),\n updatedAt: z.string().datetime(),\n })\n .strict();\n\nexport type HomepageLayout = z.infer<typeof HomepageLayoutSchema>;\n\nexport const HomepageLayoutWriteSchema = z\n .object({\n version: z.number().int().min(1).optional(),\n widgets: z.array(WidgetEntrySchema).max(100),\n updatedAt: z.string().datetime().optional(),\n })\n .strict();\n\nexport type HomepageLayoutWrite = z.infer<typeof HomepageLayoutWriteSchema>;\n"],"names":["WidthSchema","z","union","literal","WidgetEntrySchema","object","uid","string","nonempty","width","strict","HomepageLayoutSchema","version","number","int","min","widgets","array","max","updatedAt","datetime","HomepageLayoutWriteSchema","optional"],"mappings":";;AAEA;AACO,MAAMA,WAAAA,GAAcC,CAAAA,CAAEC,KAAK,CAAC;AAACD,IAAAA,CAAAA,CAAEE,OAAO,CAAC,CAAA,CAAA;AAAIF,IAAAA,CAAAA,CAAEE,OAAO,CAAC,CAAA,CAAA;AAAIF,IAAAA,CAAAA,CAAEE,OAAO,CAAC,CAAA,CAAA;AAAIF,IAAAA,CAAAA,CAAEE,OAAO,CAAC,EAAA;CAAI;AAE5F,MAAMC,iBAAAA,GAAoBH,CAAAA,CACvBI,MAAM,CAAC;IACNC,GAAAA,EAAKL,CAAAA,CAAEM,MAAM,EAAA,CAAGC,QAAQ,EAAA;IACxBC,KAAAA,EAAOT;AACT,CAAA,CAAA,CACCU,MAAM,EAAA;AAEF,MAAMC,oBAAAA,GAAuBV,CAAAA,CACjCI,MAAM,CAAC;AACNO,IAAAA,OAAAA,EAASX,EAAEY,MAAM,EAAA,CAAGC,GAAG,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA;AAC9BC,IAAAA,OAAAA,EAASf,CAAAA,CAAEgB,KAAK,CAACb,iBAAAA,CAAAA,CAAmBc,GAAG,CAAC,GAAA,CAAA;IACxCC,SAAAA,EAAWlB,CAAAA,CAAEM,MAAM,EAAA,CAAGa,QAAQ;AAChC,CAAA,CAAA,CACCV,MAAM;AAIF,MAAMW,yBAAAA,GAA4BpB,CAAAA,CACtCI,MAAM,CAAC;IACNO,OAAAA,EAASX,CAAAA,CAAEY,MAAM,EAAA,CAAGC,GAAG,GAAGC,GAAG,CAAC,GAAGO,QAAQ,EAAA;AACzCN,IAAAA,OAAAA,EAASf,CAAAA,CAAEgB,KAAK,CAACb,iBAAAA,CAAAA,CAAmBc,GAAG,CAAC,GAAA,CAAA;AACxCC,IAAAA,SAAAA,EAAWlB,CAAAA,CAAEM,MAAM,EAAA,CAAGa,QAAQ,GAAGE,QAAQ;AAC3C,CAAA,CAAA,CACCZ,MAAM;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"webhooks.js","sources":["../../../../../server/src/controllers/webhooks.ts"],"sourcesContent":["import isLocalhostIp from 'is-localhost-ip';\n// Regular import references a deprecated node module,\n// See https://www.npmjs.com/package/punycode.js#installation\nimport punycode from 'punycode/';\nimport type { Context } from 'koa';\nimport _ from 'lodash';\n\nimport { yup, validateYupSchema } from '@strapi/utils';\n\nimport type { Modules } from '@strapi/types';\n\nimport {\n CreateWebhook,\n DeleteWebhook,\n DeleteWebhooks,\n GetWebhook,\n UpdateWebhook,\n TriggerWebhook,\n GetWebhooks,\n} from '../../../shared/contracts/webhooks';\n\nconst urlRegex =\n /^(?:([a-z0-9+.-]+):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9_]-*)*[a-z\\u00a1-\\uffff0-9_]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9_]-*)*[a-z\\u00a1-\\uffff0-9_]+)*\\.?)(?::\\d{2,5})?(?:[/?#]\\S*)?$/;\n\nconst webhookValidator = yup\n .object({\n name: yup.string().required(),\n url: yup\n .string()\n .matches(urlRegex, 'url must be a valid URL')\n .required()\n .test(\n 'is-public-url',\n \"Url is not supported because it isn't reachable over the public internet\",\n async (url) => {\n if (process.env.NODE_ENV !== 'production') {\n return true;\n }\n\n try {\n const parsedUrl = new URL(punycode.toASCII(url!));\n const isLocalUrl = await isLocalhostIp(parsedUrl.hostname);\n return !isLocalUrl;\n } catch {\n return false;\n }\n }\n ),\n headers: yup.lazy((data) => {\n if (typeof data !== 'object') {\n return yup.object().required();\n }\n\n return yup\n .object(\n // @ts-expect-error lodash types\n _.mapValues(data, () => {\n yup.string().min(1).required();\n })\n )\n .required();\n }),\n events: yup.array().of(yup.string()).required(),\n })\n .noUnknown();\n\nconst updateWebhookValidator = webhookValidator.shape({\n isEnabled: yup.boolean(),\n});\n\nexport default {\n async listWebhooks(ctx: Context) {\n const webhooks = await strapi.get('webhookStore').findWebhooks();\n ctx.send({ data: webhooks } satisfies GetWebhooks.Response);\n },\n\n async getWebhook(ctx: Context) {\n const { id } = ctx.params;\n const webhook = await strapi.get('webhookStore').findWebhook(id);\n\n if (!webhook) {\n return ctx.notFound('webhook.notFound');\n }\n\n ctx.send({ data: webhook } satisfies GetWebhook.Response);\n },\n\n async createWebhook(ctx: Context) {\n const { body } = ctx.request as CreateWebhook.Request;\n\n await validateYupSchema(webhookValidator)(body);\n\n const webhook = await strapi.get('webhookStore').createWebhook(body);\n\n strapi.get('webhookRunner').add(webhook);\n\n ctx.created({ data: webhook } satisfies CreateWebhook.Response);\n },\n\n async updateWebhook(ctx: Context) {\n const { id } = ctx.params as UpdateWebhook.Params;\n const { body } = ctx.request as UpdateWebhook.Request;\n\n await validateYupSchema(updateWebhookValidator)(body);\n\n const webhook = await strapi.get('webhookStore').findWebhook(id);\n\n if (!webhook) {\n return ctx.notFound('webhook.notFound');\n }\n\n const updatedWebhook = await strapi.get('webhookStore').updateWebhook(id, {\n ...webhook,\n ...body,\n });\n\n if (!updatedWebhook) {\n return ctx.notFound('webhook.notFound');\n }\n\n strapi.get('webhookRunner').update(updatedWebhook);\n\n ctx.send({ data: updatedWebhook } satisfies UpdateWebhook.Response);\n },\n\n async deleteWebhook(ctx: Context) {\n const { id } = ctx.params;\n const webhook = await strapi.get('webhookStore').findWebhook(id);\n\n if (!webhook) {\n return ctx.notFound('webhook.notFound');\n }\n\n await strapi.get('webhookStore').deleteWebhook(id);\n\n strapi.get('webhookRunner').remove(webhook);\n\n ctx.body = { data: webhook } satisfies DeleteWebhook.Response;\n },\n\n async deleteWebhooks(ctx: Context) {\n const { ids } = ctx.request.body as DeleteWebhooks.Request['body'];\n\n if (!Array.isArray(ids) || ids.length === 0) {\n return ctx.badRequest('ids must be an array of id');\n }\n\n for (const id of ids) {\n const webhook = await strapi.get('webhookStore').findWebhook(id);\n\n if (webhook) {\n await strapi.get('webhookStore').deleteWebhook(id);\n strapi.get('webhookRunner').remove(webhook);\n }\n }\n\n ctx.send({ data: ids } satisfies DeleteWebhooks.Response);\n },\n\n async triggerWebhook(ctx: Context) {\n const { id } = ctx.params;\n\n const webhook = await strapi.get('webhookStore').findWebhook(id);\n\n const response = await strapi\n .get('webhookRunner')\n .run(webhook as Modules.WebhookStore.Webhook, 'trigger-test', {});\n\n ctx.body = { data: response } satisfies TriggerWebhook.Response;\n },\n};\n"],"names":["urlRegex","webhookValidator","yup","object","name","string","required","url","matches","test","process","env","NODE_ENV","parsedUrl","URL","punycode","toASCII","isLocalUrl","isLocalhostIp","hostname","headers","lazy","data","_","mapValues","min","events","array","of","noUnknown","updateWebhookValidator","shape","isEnabled","boolean","listWebhooks","ctx","webhooks","strapi","get","findWebhooks","send","getWebhook","id","params","webhook","findWebhook","notFound","createWebhook","body","request","validateYupSchema","add","created","updateWebhook","updatedWebhook","update","deleteWebhook","remove","deleteWebhooks","ids","Array","isArray","length","badRequest","triggerWebhook","response","run"],"mappings":"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"}
1
+ {"version":3,"file":"webhooks.js","sources":["../../../../../server/src/controllers/webhooks.ts"],"sourcesContent":["import isLocalhostIp from 'is-localhost-ip';\n// Regular import references a deprecated node module,\n// See https://www.npmjs.com/package/punycode.js#installation\nimport punycode from 'punycode/';\nimport type { Context } from 'koa';\nimport _ from 'lodash';\n\nimport { yup, validateYupSchema } from '@strapi/utils';\n\nimport type { Modules } from '@strapi/types';\n\nimport {\n CreateWebhook,\n DeleteWebhook,\n DeleteWebhooks,\n GetWebhook,\n UpdateWebhook,\n TriggerWebhook,\n GetWebhooks,\n} from '../../../shared/contracts/webhooks';\n\nconst urlRegex =\n /^(?:([a-z0-9+.-]+):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9_]-*)*[a-z\\u00a1-\\uffff0-9_]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9_]-*)*[a-z\\u00a1-\\uffff0-9_]+)*\\.?)(?::\\d{2,5})?(?:[/?#]\\S*)?$/;\n\nconst webhookValidator = yup\n .object({\n name: yup.string().required(),\n url: yup\n .string()\n .matches(urlRegex, 'url must be a valid URL')\n .required()\n .test(\n 'is-public-url',\n \"Url is not supported because it isn't reachable over the public internet\",\n async (url) => {\n if (process.env.NODE_ENV !== 'production') {\n return true;\n }\n\n try {\n const parsedUrl = new URL(punycode.toASCII(url!));\n const isLocalUrl = await isLocalhostIp(parsedUrl.hostname);\n return !isLocalUrl;\n } catch {\n return false;\n }\n }\n ),\n headers: yup.lazy((data) => {\n if (typeof data !== 'object') {\n return yup.object().required();\n }\n\n return yup\n .object(\n // @ts-expect-error lodash types\n _.mapValues(data, () => {\n yup.string().min(1).required();\n })\n )\n .required();\n }),\n events: yup.array().of(yup.string()).required(),\n })\n .noUnknown();\n\nconst updateWebhookValidator = webhookValidator.shape({\n isEnabled: yup.boolean(),\n});\n\nexport default {\n async listWebhooks(ctx: Context) {\n const webhooks = await strapi.get('webhookStore').findWebhooks();\n ctx.send({ data: webhooks } satisfies GetWebhooks.Response);\n },\n\n async getWebhook(ctx: Context) {\n const { id } = ctx.params;\n const webhook = await strapi.get('webhookStore').findWebhook(id);\n\n if (!webhook) {\n return ctx.notFound('webhook.notFound');\n }\n\n ctx.send({ data: webhook } satisfies GetWebhook.Response);\n },\n\n async createWebhook(ctx: Context) {\n const { body } = ctx.request as CreateWebhook.Request;\n\n await validateYupSchema(webhookValidator)(body);\n\n const webhook = await strapi.get('webhookStore').createWebhook(body);\n\n strapi.get('webhookRunner').add(webhook);\n\n ctx.created({ data: webhook } satisfies CreateWebhook.Response);\n },\n\n async updateWebhook(ctx: Context) {\n const { id } = ctx.params as UpdateWebhook.Params;\n const { body } = ctx.request as UpdateWebhook.Request;\n\n await validateYupSchema(updateWebhookValidator)(body);\n\n const webhook = await strapi.get('webhookStore').findWebhook(id);\n\n if (!webhook) {\n return ctx.notFound('webhook.notFound');\n }\n\n const updatedWebhook = await strapi.get('webhookStore').updateWebhook(id, {\n ...webhook,\n ...body,\n });\n\n if (!updatedWebhook) {\n return ctx.notFound('webhook.notFound');\n }\n\n strapi.get('webhookRunner').update(updatedWebhook);\n\n ctx.send({ data: updatedWebhook } satisfies UpdateWebhook.Response);\n },\n\n async deleteWebhook(ctx: Context) {\n const { id } = ctx.params;\n const webhook = await strapi.get('webhookStore').findWebhook(id);\n\n if (!webhook) {\n return ctx.notFound('webhook.notFound');\n }\n\n await strapi.get('webhookStore').deleteWebhook(id);\n\n strapi.get('webhookRunner').remove(webhook);\n\n ctx.body = { data: webhook } satisfies DeleteWebhook.Response;\n },\n\n async deleteWebhooks(ctx: Context) {\n const { ids } = ctx.request.body as DeleteWebhooks.Request['body'];\n\n if (!Array.isArray(ids) || ids.length === 0) {\n return ctx.badRequest('ids must be an array of id');\n }\n\n for (const id of ids) {\n const webhook = await strapi.get('webhookStore').findWebhook(id);\n\n if (webhook) {\n await strapi.get('webhookStore').deleteWebhook(id);\n strapi.get('webhookRunner').remove(webhook);\n }\n }\n\n ctx.send({ data: ids } satisfies DeleteWebhooks.Response);\n },\n\n async triggerWebhook(ctx: Context) {\n const { id } = ctx.params;\n\n const webhook = await strapi.get('webhookStore').findWebhook(id);\n\n const response = await strapi\n .get('webhookRunner')\n .run(webhook as Modules.WebhookStore.Webhook, 'trigger-test', {});\n\n ctx.body = { data: response } satisfies TriggerWebhook.Response;\n },\n};\n"],"names":["urlRegex","webhookValidator","yup","object","name","string","required","url","matches","test","process","env","NODE_ENV","parsedUrl","URL","punycode","toASCII","isLocalUrl","isLocalhostIp","hostname","headers","lazy","data","_","mapValues","min","events","array","of","noUnknown","updateWebhookValidator","shape","isEnabled","boolean","listWebhooks","ctx","webhooks","strapi","get","findWebhooks","send","getWebhook","id","params","webhook","findWebhook","notFound","createWebhook","body","request","validateYupSchema","add","created","updateWebhook","updatedWebhook","update","deleteWebhook","remove","deleteWebhooks","ids","Array","isArray","length","badRequest","triggerWebhook","response","run"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"webhooks.mjs","sources":["../../../../../server/src/controllers/webhooks.ts"],"sourcesContent":["import isLocalhostIp from 'is-localhost-ip';\n// Regular import references a deprecated node module,\n// See https://www.npmjs.com/package/punycode.js#installation\nimport punycode from 'punycode/';\nimport type { Context } from 'koa';\nimport _ from 'lodash';\n\nimport { yup, validateYupSchema } from '@strapi/utils';\n\nimport type { Modules } from '@strapi/types';\n\nimport {\n CreateWebhook,\n DeleteWebhook,\n DeleteWebhooks,\n GetWebhook,\n UpdateWebhook,\n TriggerWebhook,\n GetWebhooks,\n} from '../../../shared/contracts/webhooks';\n\nconst urlRegex =\n /^(?:([a-z0-9+.-]+):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9_]-*)*[a-z\\u00a1-\\uffff0-9_]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9_]-*)*[a-z\\u00a1-\\uffff0-9_]+)*\\.?)(?::\\d{2,5})?(?:[/?#]\\S*)?$/;\n\nconst webhookValidator = yup\n .object({\n name: yup.string().required(),\n url: yup\n .string()\n .matches(urlRegex, 'url must be a valid URL')\n .required()\n .test(\n 'is-public-url',\n \"Url is not supported because it isn't reachable over the public internet\",\n async (url) => {\n if (process.env.NODE_ENV !== 'production') {\n return true;\n }\n\n try {\n const parsedUrl = new URL(punycode.toASCII(url!));\n const isLocalUrl = await isLocalhostIp(parsedUrl.hostname);\n return !isLocalUrl;\n } catch {\n return false;\n }\n }\n ),\n headers: yup.lazy((data) => {\n if (typeof data !== 'object') {\n return yup.object().required();\n }\n\n return yup\n .object(\n // @ts-expect-error lodash types\n _.mapValues(data, () => {\n yup.string().min(1).required();\n })\n )\n .required();\n }),\n events: yup.array().of(yup.string()).required(),\n })\n .noUnknown();\n\nconst updateWebhookValidator = webhookValidator.shape({\n isEnabled: yup.boolean(),\n});\n\nexport default {\n async listWebhooks(ctx: Context) {\n const webhooks = await strapi.get('webhookStore').findWebhooks();\n ctx.send({ data: webhooks } satisfies GetWebhooks.Response);\n },\n\n async getWebhook(ctx: Context) {\n const { id } = ctx.params;\n const webhook = await strapi.get('webhookStore').findWebhook(id);\n\n if (!webhook) {\n return ctx.notFound('webhook.notFound');\n }\n\n ctx.send({ data: webhook } satisfies GetWebhook.Response);\n },\n\n async createWebhook(ctx: Context) {\n const { body } = ctx.request as CreateWebhook.Request;\n\n await validateYupSchema(webhookValidator)(body);\n\n const webhook = await strapi.get('webhookStore').createWebhook(body);\n\n strapi.get('webhookRunner').add(webhook);\n\n ctx.created({ data: webhook } satisfies CreateWebhook.Response);\n },\n\n async updateWebhook(ctx: Context) {\n const { id } = ctx.params as UpdateWebhook.Params;\n const { body } = ctx.request as UpdateWebhook.Request;\n\n await validateYupSchema(updateWebhookValidator)(body);\n\n const webhook = await strapi.get('webhookStore').findWebhook(id);\n\n if (!webhook) {\n return ctx.notFound('webhook.notFound');\n }\n\n const updatedWebhook = await strapi.get('webhookStore').updateWebhook(id, {\n ...webhook,\n ...body,\n });\n\n if (!updatedWebhook) {\n return ctx.notFound('webhook.notFound');\n }\n\n strapi.get('webhookRunner').update(updatedWebhook);\n\n ctx.send({ data: updatedWebhook } satisfies UpdateWebhook.Response);\n },\n\n async deleteWebhook(ctx: Context) {\n const { id } = ctx.params;\n const webhook = await strapi.get('webhookStore').findWebhook(id);\n\n if (!webhook) {\n return ctx.notFound('webhook.notFound');\n }\n\n await strapi.get('webhookStore').deleteWebhook(id);\n\n strapi.get('webhookRunner').remove(webhook);\n\n ctx.body = { data: webhook } satisfies DeleteWebhook.Response;\n },\n\n async deleteWebhooks(ctx: Context) {\n const { ids } = ctx.request.body as DeleteWebhooks.Request['body'];\n\n if (!Array.isArray(ids) || ids.length === 0) {\n return ctx.badRequest('ids must be an array of id');\n }\n\n for (const id of ids) {\n const webhook = await strapi.get('webhookStore').findWebhook(id);\n\n if (webhook) {\n await strapi.get('webhookStore').deleteWebhook(id);\n strapi.get('webhookRunner').remove(webhook);\n }\n }\n\n ctx.send({ data: ids } satisfies DeleteWebhooks.Response);\n },\n\n async triggerWebhook(ctx: Context) {\n const { id } = ctx.params;\n\n const webhook = await strapi.get('webhookStore').findWebhook(id);\n\n const response = await strapi\n .get('webhookRunner')\n .run(webhook as Modules.WebhookStore.Webhook, 'trigger-test', {});\n\n ctx.body = { data: response } satisfies TriggerWebhook.Response;\n },\n};\n"],"names":["urlRegex","webhookValidator","yup","object","name","string","required","url","matches","test","process","env","NODE_ENV","parsedUrl","URL","punycode","toASCII","isLocalUrl","isLocalhostIp","hostname","headers","lazy","data","_","mapValues","min","events","array","of","noUnknown","updateWebhookValidator","shape","isEnabled","boolean","listWebhooks","ctx","webhooks","strapi","get","findWebhooks","send","getWebhook","id","params","webhook","findWebhook","notFound","createWebhook","body","request","validateYupSchema","add","created","updateWebhook","updatedWebhook","update","deleteWebhook","remove","deleteWebhooks","ids","Array","isArray","length","badRequest","triggerWebhook","response","run"],"mappings":"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"}
1
+ {"version":3,"file":"webhooks.mjs","sources":["../../../../../server/src/controllers/webhooks.ts"],"sourcesContent":["import isLocalhostIp from 'is-localhost-ip';\n// Regular import references a deprecated node module,\n// See https://www.npmjs.com/package/punycode.js#installation\nimport punycode from 'punycode/';\nimport type { Context } from 'koa';\nimport _ from 'lodash';\n\nimport { yup, validateYupSchema } from '@strapi/utils';\n\nimport type { Modules } from '@strapi/types';\n\nimport {\n CreateWebhook,\n DeleteWebhook,\n DeleteWebhooks,\n GetWebhook,\n UpdateWebhook,\n TriggerWebhook,\n GetWebhooks,\n} from '../../../shared/contracts/webhooks';\n\nconst urlRegex =\n /^(?:([a-z0-9+.-]+):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9_]-*)*[a-z\\u00a1-\\uffff0-9_]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9_]-*)*[a-z\\u00a1-\\uffff0-9_]+)*\\.?)(?::\\d{2,5})?(?:[/?#]\\S*)?$/;\n\nconst webhookValidator = yup\n .object({\n name: yup.string().required(),\n url: yup\n .string()\n .matches(urlRegex, 'url must be a valid URL')\n .required()\n .test(\n 'is-public-url',\n \"Url is not supported because it isn't reachable over the public internet\",\n async (url) => {\n if (process.env.NODE_ENV !== 'production') {\n return true;\n }\n\n try {\n const parsedUrl = new URL(punycode.toASCII(url!));\n const isLocalUrl = await isLocalhostIp(parsedUrl.hostname);\n return !isLocalUrl;\n } catch {\n return false;\n }\n }\n ),\n headers: yup.lazy((data) => {\n if (typeof data !== 'object') {\n return yup.object().required();\n }\n\n return yup\n .object(\n // @ts-expect-error lodash types\n _.mapValues(data, () => {\n yup.string().min(1).required();\n })\n )\n .required();\n }),\n events: yup.array().of(yup.string()).required(),\n })\n .noUnknown();\n\nconst updateWebhookValidator = webhookValidator.shape({\n isEnabled: yup.boolean(),\n});\n\nexport default {\n async listWebhooks(ctx: Context) {\n const webhooks = await strapi.get('webhookStore').findWebhooks();\n ctx.send({ data: webhooks } satisfies GetWebhooks.Response);\n },\n\n async getWebhook(ctx: Context) {\n const { id } = ctx.params;\n const webhook = await strapi.get('webhookStore').findWebhook(id);\n\n if (!webhook) {\n return ctx.notFound('webhook.notFound');\n }\n\n ctx.send({ data: webhook } satisfies GetWebhook.Response);\n },\n\n async createWebhook(ctx: Context) {\n const { body } = ctx.request as CreateWebhook.Request;\n\n await validateYupSchema(webhookValidator)(body);\n\n const webhook = await strapi.get('webhookStore').createWebhook(body);\n\n strapi.get('webhookRunner').add(webhook);\n\n ctx.created({ data: webhook } satisfies CreateWebhook.Response);\n },\n\n async updateWebhook(ctx: Context) {\n const { id } = ctx.params as UpdateWebhook.Params;\n const { body } = ctx.request as UpdateWebhook.Request;\n\n await validateYupSchema(updateWebhookValidator)(body);\n\n const webhook = await strapi.get('webhookStore').findWebhook(id);\n\n if (!webhook) {\n return ctx.notFound('webhook.notFound');\n }\n\n const updatedWebhook = await strapi.get('webhookStore').updateWebhook(id, {\n ...webhook,\n ...body,\n });\n\n if (!updatedWebhook) {\n return ctx.notFound('webhook.notFound');\n }\n\n strapi.get('webhookRunner').update(updatedWebhook);\n\n ctx.send({ data: updatedWebhook } satisfies UpdateWebhook.Response);\n },\n\n async deleteWebhook(ctx: Context) {\n const { id } = ctx.params;\n const webhook = await strapi.get('webhookStore').findWebhook(id);\n\n if (!webhook) {\n return ctx.notFound('webhook.notFound');\n }\n\n await strapi.get('webhookStore').deleteWebhook(id);\n\n strapi.get('webhookRunner').remove(webhook);\n\n ctx.body = { data: webhook } satisfies DeleteWebhook.Response;\n },\n\n async deleteWebhooks(ctx: Context) {\n const { ids } = ctx.request.body as DeleteWebhooks.Request['body'];\n\n if (!Array.isArray(ids) || ids.length === 0) {\n return ctx.badRequest('ids must be an array of id');\n }\n\n for (const id of ids) {\n const webhook = await strapi.get('webhookStore').findWebhook(id);\n\n if (webhook) {\n await strapi.get('webhookStore').deleteWebhook(id);\n strapi.get('webhookRunner').remove(webhook);\n }\n }\n\n ctx.send({ data: ids } satisfies DeleteWebhooks.Response);\n },\n\n async triggerWebhook(ctx: Context) {\n const { id } = ctx.params;\n\n const webhook = await strapi.get('webhookStore').findWebhook(id);\n\n const response = await strapi\n .get('webhookRunner')\n .run(webhook as Modules.WebhookStore.Webhook, 'trigger-test', {});\n\n ctx.body = { data: response } satisfies TriggerWebhook.Response;\n },\n};\n"],"names":["urlRegex","webhookValidator","yup","object","name","string","required","url","matches","test","process","env","NODE_ENV","parsedUrl","URL","punycode","toASCII","isLocalUrl","isLocalhostIp","hostname","headers","lazy","data","_","mapValues","min","events","array","of","noUnknown","updateWebhookValidator","shape","isEnabled","boolean","listWebhooks","ctx","webhooks","strapi","get","findWebhooks","send","getWebhook","id","params","webhook","findWebhook","notFound","createWebhook","body","request","validateYupSchema","add","created","updateWebhook","updatedWebhook","update","deleteWebhook","remove","deleteWebhooks","ids","Array","isArray","length","badRequest","triggerWebhook","response","run"],"mappings":";;;;;AAqBA,MAAMA,QAAAA,GACJ,oTAAA;AAEF,MAAMC,gBAAAA,GAAmBC,GAAAA,CACtBC,MAAM,CAAC;IACNC,IAAAA,EAAMF,GAAAA,CAAIG,MAAM,EAAA,CAAGC,QAAQ,EAAA;AAC3BC,IAAAA,GAAAA,EAAKL,GAAAA,CACFG,MAAM,EAAA,CACNG,OAAO,CAACR,QAAAA,EAAU,yBAAA,CAAA,CAClBM,QAAQ,EAAA,CACRG,IAAI,CACH,eAAA,EACA,4EACA,OAAOF,GAAAA,GAAAA;AACL,QAAA,IAAIG,OAAAA,CAAQC,GAAG,CAACC,QAAQ,KAAK,YAAA,EAAc;YACzC,OAAO,IAAA;AACT,QAAA;QAEA,IAAI;AACF,YAAA,MAAMC,SAAAA,GAAY,IAAIC,GAAAA,CAAIC,QAAAA,CAASC,OAAO,CAACT,GAAAA,CAAAA,CAAAA;AAC3C,YAAA,MAAMU,UAAAA,GAAa,MAAMC,aAAAA,CAAcL,SAAAA,CAAUM,QAAQ,CAAA;AACzD,YAAA,OAAO,CAACF,UAAAA;AACV,QAAA,CAAA,CAAE,OAAM;YACN,OAAO,KAAA;AACT,QAAA;AACF,IAAA,CAAA,CAAA;IAEJG,OAAAA,EAASlB,GAAAA,CAAImB,IAAI,CAAC,CAACC,IAAAA,GAAAA;QACjB,IAAI,OAAOA,SAAS,QAAA,EAAU;YAC5B,OAAOpB,GAAAA,CAAIC,MAAM,EAAA,CAAGG,QAAQ,EAAA;AAC9B,QAAA;QAEA,OAAOJ,GAAAA,CACJC,MAAM;QAELoB,UAAAA,CAAEC,SAAS,CAACF,IAAAA,EAAM,IAAA;AAChBpB,YAAAA,GAAAA,CAAIG,MAAM,EAAA,CAAGoB,GAAG,CAAC,GAAGnB,QAAQ,EAAA;AAC9B,QAAA,CAAA,CAAA,CAAA,CAEDA,QAAQ,EAAA;AACb,IAAA,CAAA,CAAA;IACAoB,MAAAA,EAAQxB,GAAAA,CAAIyB,KAAK,EAAA,CAAGC,EAAE,CAAC1B,GAAAA,CAAIG,MAAM,IAAIC,QAAQ;AAC/C,CAAA,CAAA,CACCuB,SAAS,EAAA;AAEZ,MAAMC,sBAAAA,GAAyB7B,gBAAAA,CAAiB8B,KAAK,CAAC;AACpDC,IAAAA,SAAAA,EAAW9B,IAAI+B,OAAO;AACxB,CAAA,CAAA;AAEA,eAAe;AACb,IAAA,MAAMC,cAAaC,GAAY,EAAA;AAC7B,QAAA,MAAMC,WAAW,MAAMC,MAAAA,CAAOC,GAAG,CAAC,gBAAgBC,YAAY,EAAA;AAC9DJ,QAAAA,GAAAA,CAAIK,IAAI,CAAC;YAAElB,IAAAA,EAAMc;AAAS,SAAA,CAAA;AAC5B,IAAA,CAAA;AAEA,IAAA,MAAMK,YAAWN,GAAY,EAAA;AAC3B,QAAA,MAAM,EAAEO,EAAE,EAAE,GAAGP,IAAIQ,MAAM;AACzB,QAAA,MAAMC,UAAU,MAAMP,MAAAA,CAAOC,GAAG,CAAC,cAAA,CAAA,CAAgBO,WAAW,CAACH,EAAAA,CAAAA;AAE7D,QAAA,IAAI,CAACE,OAAAA,EAAS;YACZ,OAAOT,GAAAA,CAAIW,QAAQ,CAAC,kBAAA,CAAA;AACtB,QAAA;AAEAX,QAAAA,GAAAA,CAAIK,IAAI,CAAC;YAAElB,IAAAA,EAAMsB;AAAQ,SAAA,CAAA;AAC3B,IAAA,CAAA;AAEA,IAAA,MAAMG,eAAcZ,GAAY,EAAA;AAC9B,QAAA,MAAM,EAAEa,IAAI,EAAE,GAAGb,IAAIc,OAAO;AAE5B,QAAA,MAAMC,kBAAkBjD,gBAAAA,CAAAA,CAAkB+C,IAAAA,CAAAA;AAE1C,QAAA,MAAMJ,UAAU,MAAMP,MAAAA,CAAOC,GAAG,CAAC,cAAA,CAAA,CAAgBS,aAAa,CAACC,IAAAA,CAAAA;AAE/DX,QAAAA,MAAAA,CAAOC,GAAG,CAAC,eAAA,CAAA,CAAiBa,GAAG,CAACP,OAAAA,CAAAA;AAEhCT,QAAAA,GAAAA,CAAIiB,OAAO,CAAC;YAAE9B,IAAAA,EAAMsB;AAAQ,SAAA,CAAA;AAC9B,IAAA,CAAA;AAEA,IAAA,MAAMS,eAAclB,GAAY,EAAA;AAC9B,QAAA,MAAM,EAAEO,EAAE,EAAE,GAAGP,IAAIQ,MAAM;AACzB,QAAA,MAAM,EAAEK,IAAI,EAAE,GAAGb,IAAIc,OAAO;AAE5B,QAAA,MAAMC,kBAAkBpB,sBAAAA,CAAAA,CAAwBkB,IAAAA,CAAAA;AAEhD,QAAA,MAAMJ,UAAU,MAAMP,MAAAA,CAAOC,GAAG,CAAC,cAAA,CAAA,CAAgBO,WAAW,CAACH,EAAAA,CAAAA;AAE7D,QAAA,IAAI,CAACE,OAAAA,EAAS;YACZ,OAAOT,GAAAA,CAAIW,QAAQ,CAAC,kBAAA,CAAA;AACtB,QAAA;QAEA,MAAMQ,cAAAA,GAAiB,MAAMjB,MAAAA,CAAOC,GAAG,CAAC,cAAA,CAAA,CAAgBe,aAAa,CAACX,EAAAA,EAAI;AACxE,YAAA,GAAGE,OAAO;AACV,YAAA,GAAGI;AACL,SAAA,CAAA;AAEA,QAAA,IAAI,CAACM,cAAAA,EAAgB;YACnB,OAAOnB,GAAAA,CAAIW,QAAQ,CAAC,kBAAA,CAAA;AACtB,QAAA;AAEAT,QAAAA,MAAAA,CAAOC,GAAG,CAAC,eAAA,CAAA,CAAiBiB,MAAM,CAACD,cAAAA,CAAAA;AAEnCnB,QAAAA,GAAAA,CAAIK,IAAI,CAAC;YAAElB,IAAAA,EAAMgC;AAAe,SAAA,CAAA;AAClC,IAAA,CAAA;AAEA,IAAA,MAAME,eAAcrB,GAAY,EAAA;AAC9B,QAAA,MAAM,EAAEO,EAAE,EAAE,GAAGP,IAAIQ,MAAM;AACzB,QAAA,MAAMC,UAAU,MAAMP,MAAAA,CAAOC,GAAG,CAAC,cAAA,CAAA,CAAgBO,WAAW,CAACH,EAAAA,CAAAA;AAE7D,QAAA,IAAI,CAACE,OAAAA,EAAS;YACZ,OAAOT,GAAAA,CAAIW,QAAQ,CAAC,kBAAA,CAAA;AACtB,QAAA;AAEA,QAAA,MAAMT,MAAAA,CAAOC,GAAG,CAAC,cAAA,CAAA,CAAgBkB,aAAa,CAACd,EAAAA,CAAAA;AAE/CL,QAAAA,MAAAA,CAAOC,GAAG,CAAC,eAAA,CAAA,CAAiBmB,MAAM,CAACb,OAAAA,CAAAA;AAEnCT,QAAAA,GAAAA,CAAIa,IAAI,GAAG;YAAE1B,IAAAA,EAAMsB;AAAQ,SAAA;AAC7B,IAAA,CAAA;AAEA,IAAA,MAAMc,gBAAevB,GAAY,EAAA;AAC/B,QAAA,MAAM,EAAEwB,GAAG,EAAE,GAAGxB,GAAAA,CAAIc,OAAO,CAACD,IAAI;QAEhC,IAAI,CAACY,MAAMC,OAAO,CAACF,QAAQA,GAAAA,CAAIG,MAAM,KAAK,CAAA,EAAG;YAC3C,OAAO3B,GAAAA,CAAI4B,UAAU,CAAC,4BAAA,CAAA;AACxB,QAAA;QAEA,KAAK,MAAMrB,MAAMiB,GAAAA,CAAK;AACpB,YAAA,MAAMf,UAAU,MAAMP,MAAAA,CAAOC,GAAG,CAAC,cAAA,CAAA,CAAgBO,WAAW,CAACH,EAAAA,CAAAA;AAE7D,YAAA,IAAIE,OAAAA,EAAS;AACX,gBAAA,MAAMP,MAAAA,CAAOC,GAAG,CAAC,cAAA,CAAA,CAAgBkB,aAAa,CAACd,EAAAA,CAAAA;AAC/CL,gBAAAA,MAAAA,CAAOC,GAAG,CAAC,eAAA,CAAA,CAAiBmB,MAAM,CAACb,OAAAA,CAAAA;AACrC,YAAA;AACF,QAAA;AAEAT,QAAAA,GAAAA,CAAIK,IAAI,CAAC;YAAElB,IAAAA,EAAMqC;AAAI,SAAA,CAAA;AACvB,IAAA,CAAA;AAEA,IAAA,MAAMK,gBAAe7B,GAAY,EAAA;AAC/B,QAAA,MAAM,EAAEO,EAAE,EAAE,GAAGP,IAAIQ,MAAM;AAEzB,QAAA,MAAMC,UAAU,MAAMP,MAAAA,CAAOC,GAAG,CAAC,cAAA,CAAA,CAAgBO,WAAW,CAACH,EAAAA,CAAAA;QAE7D,MAAMuB,QAAAA,GAAW,MAAM5B,MAAAA,CACpBC,GAAG,CAAC,iBACJ4B,GAAG,CAACtB,OAAAA,EAAyC,cAAA,EAAgB,EAAC,CAAA;AAEjET,QAAAA,GAAAA,CAAIa,IAAI,GAAG;YAAE1B,IAAAA,EAAM2C;AAAS,SAAA;AAC9B,IAAA;AACF,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"destroy.js","sources":["../../../../server/src/destroy.ts"],"sourcesContent":["import { getService } from './utils';\n\nexport default async () => {\n const { conditionProvider, actionProvider } = getService('permission');\n\n await conditionProvider.clear();\n await actionProvider.clear();\n};\n"],"names":["conditionProvider","actionProvider","getService","clear"],"mappings":";;;;AAEA,cAAe,CAAA,UAAA;AACb,IAAA,MAAM,EAAEA,iBAAiB,EAAEC,cAAc,EAAE,GAAGC,gBAAW,CAAA,YAAA,CAAA;AAEzD,IAAA,MAAMF,kBAAkBG,KAAK,EAAA;AAC7B,IAAA,MAAMF,eAAeE,KAAK,EAAA;AAC5B,CAAA;;;;"}
1
+ {"version":3,"file":"destroy.js","sources":["../../../../server/src/destroy.ts"],"sourcesContent":["import { getService } from './utils';\n\nexport default async () => {\n const { conditionProvider, actionProvider } = getService('permission');\n\n await conditionProvider.clear();\n await actionProvider.clear();\n};\n"],"names":["conditionProvider","actionProvider","getService","clear"],"mappings":";;;;AAEA,cAAe,CAAA,UAAA;AACb,IAAA,MAAM,EAAEA,iBAAiB,EAAEC,cAAc,EAAE,GAAGC,gBAAAA,CAAW,YAAA,CAAA;AAEzD,IAAA,MAAMF,kBAAkBG,KAAK,EAAA;AAC7B,IAAA,MAAMF,eAAeE,KAAK,EAAA;AAC5B,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"destroy.mjs","sources":["../../../../server/src/destroy.ts"],"sourcesContent":["import { getService } from './utils';\n\nexport default async () => {\n const { conditionProvider, actionProvider } = getService('permission');\n\n await conditionProvider.clear();\n await actionProvider.clear();\n};\n"],"names":["conditionProvider","actionProvider","getService","clear"],"mappings":";;AAEA,cAAe,CAAA,UAAA;AACb,IAAA,MAAM,EAAEA,iBAAiB,EAAEC,cAAc,EAAE,GAAGC,UAAW,CAAA,YAAA,CAAA;AAEzD,IAAA,MAAMF,kBAAkBG,KAAK,EAAA;AAC7B,IAAA,MAAMF,eAAeE,KAAK,EAAA;AAC5B,CAAA;;;;"}
1
+ {"version":3,"file":"destroy.mjs","sources":["../../../../server/src/destroy.ts"],"sourcesContent":["import { getService } from './utils';\n\nexport default async () => {\n const { conditionProvider, actionProvider } = getService('permission');\n\n await conditionProvider.clear();\n await actionProvider.clear();\n};\n"],"names":["conditionProvider","actionProvider","getService","clear"],"mappings":";;AAEA,cAAe,CAAA,UAAA;AACb,IAAA,MAAM,EAAEA,iBAAiB,EAAEC,cAAc,EAAE,GAAGC,UAAAA,CAAW,YAAA,CAAA;AAEzD,IAAA,MAAMF,kBAAkBG,KAAK,EAAA;AAC7B,IAAA,MAAMF,eAAeE,KAAK,EAAA;AAC5B,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../server/src/domain/action/index.ts"],"sourcesContent":["import type { Utils } from '@strapi/types';\n\nimport { curry, pipe, merge, set, pick, omit, includes, isArray, prop } from 'lodash/fp';\n\nexport interface ActionAlias {\n /**\n * The action ID to alias\n */\n actionId: string;\n\n /**\n * An optional array of subject to restrict the alias usage\n */\n subjects?: string[];\n}\n\nexport type Action = {\n /**\n * The unique identifier of the action\n */\n actionId: string;\n\n /**\n * The section linked to the action - These can be 'contentTypes' | 'plugins' | 'settings' | 'internal'\n */\n section: string;\n\n /**\n * The human readable name of an action\n */\n displayName: string;\n\n /**\n * The main category of an action\n */\n category: string;\n\n /**\n * The secondary category of an action (only for settings and plugins section)\n */\n subCategory?: string;\n\n /**\n * The plugin that provides the action\n */\n pluginName?: string;\n\n /**\n * A list of subjects on which the action can be applied\n */\n subjects?: string[];\n\n /**\n * The options of an action\n */\n options: {\n /**\n * The list of properties that can be associated with an action\n */\n applyToProperties: string[] | null;\n };\n\n /**\n * An optional array of @see {@link ActionAlias}.\n *\n * It represents the possible aliases for the current action.\n *\n * Aliases are unidirectional.\n *\n * Note: This is an internal property and probably shouldn't be used outside Strapi core features.\n * Its behavior might change at any time without notice.\n *\n * @internal\n */\n aliases?: ActionAlias[];\n};\n\n/**\n * Set of attributes used to create a new {@link Action} object\n * @typedef {Action, { uid: string }} CreateActionPayload\n */\nexport type CreateActionPayload = Utils.Intersect<\n [\n Utils.Object.PartialBy<\n // Action Id is computed from the uid value\n Omit<Action, 'actionId'>,\n // Options is filled with default values\n 'options'\n >,\n { uid: string },\n ]\n>;\n\n/**\n * Return the default attributes of a new {@link Action}\n * @return Partial<Action>\n */\nconst getDefaultActionAttributes = (): Partial<Action> => ({\n options: {\n applyToProperties: null,\n },\n});\n\n/**\n * Get the list of all the valid attributes of an {@link Action}\n */\nconst actionFields = [\n 'section',\n 'displayName',\n 'category',\n 'subCategory',\n 'pluginName',\n 'subjects',\n 'options',\n 'actionId',\n 'aliases',\n] as const;\n\n/**\n * Remove unwanted attributes from an {@link Action}\n */\nconst sanitizeActionAttributes = pick(actionFields) as (\n action: Action | CreateActionPayload\n) => Action;\n\n/**\n * Create and return an identifier for an {@link CreateActionPayload}.\n * The format is based on the action's source ({@link CreateActionPayload.pluginName} or 'application') and {@link CreateActionPayload.uid}.\n * @param {CreateActionPayload} attributes\n * @return {string}\n */\n// TODO: TS - Use Common.UID\nconst computeActionId = (attributes: CreateActionPayload): string => {\n const { pluginName, uid } = attributes;\n\n if (!pluginName) {\n return `api::${uid}`;\n }\n\n if (pluginName === 'admin') {\n return `admin::${uid}`;\n }\n\n return `plugin::${pluginName}.${uid}`;\n};\n\n/**\n * Assign an actionId attribute to an {@link CreateActionPayload} object\n */\nconst assignActionId = (attrs: CreateActionPayload) =>\n set('actionId', computeActionId(attrs), attrs);\n\n/**\n * Transform an action by adding or removing the {@link Action.subCategory} attribute\n * @param {Action} action - The action to process\n * @return {Action}\n */\nconst assignOrOmitSubCategory = (action: Action): Action => {\n const shouldHaveSubCategory = ['settings', 'plugins'].includes(action.section);\n\n return shouldHaveSubCategory\n ? set('subCategory', action.subCategory || 'general', action)\n : omit('subCategory', action);\n};\n\n/**\n * Check if a property can be applied to an {@link Action}\n */\nconst appliesToProperty = curry((property: string, action: Action): boolean => {\n return pipe(prop('options.applyToProperties'), includes(property))(action);\n});\n\n/**\n * Check if an action applies to a subject\n */\nconst appliesToSubject = curry((subject: string, action: Action): boolean => {\n return isArray(action.subjects) && includes(subject, action.subjects);\n});\n\n/**\n * Transform the given attributes into a domain representation of an Action\n */\nconst create: (payload: CreateActionPayload) => Action = pipe(\n // Create and assign an action identifier to the action\n // (need to be done before the sanitizeActionAttributes since we need the uid here)\n assignActionId,\n // Add or remove the sub category field based on the pluginName attribute\n assignOrOmitSubCategory,\n // Remove unwanted attributes from the payload\n sanitizeActionAttributes,\n // Complete the action creation by adding default values for some attributes\n merge(getDefaultActionAttributes())\n);\n\nexport default {\n actionFields,\n appliesToProperty,\n appliesToSubject,\n assignActionId,\n assignOrOmitSubCategory,\n create,\n computeActionId,\n getDefaultActionAttributes,\n sanitizeActionAttributes,\n};\n"],"names":["getDefaultActionAttributes","options","applyToProperties","actionFields","sanitizeActionAttributes","pick","computeActionId","attributes","pluginName","uid","assignActionId","attrs","set","assignOrOmitSubCategory","action","shouldHaveSubCategory","includes","section","subCategory","omit","appliesToProperty","curry","property","pipe","prop","appliesToSubject","subject","isArray","subjects","create","merge"],"mappings":";;;;AA6FA;;;IAIA,MAAMA,0BAA6B,GAAA,KAAwB;QACzDC,OAAS,EAAA;YACPC,iBAAmB,EAAA;AACrB;KACF,CAAA;AAEA;;AAEC,IACD,MAAMC,YAAe,GAAA;AACnB,IAAA,SAAA;AACA,IAAA,aAAA;AACA,IAAA,UAAA;AACA,IAAA,aAAA;AACA,IAAA,YAAA;AACA,IAAA,UAAA;AACA,IAAA,SAAA;AACA,IAAA,UAAA;AACA,IAAA;AACD,CAAA;AAED;;IAGA,MAAMC,2BAA2BC,OAAKF,CAAAA,YAAAA,CAAAA;AAItC;;;;;AAKC;AAED,MAAMG,kBAAkB,CAACC,UAAAA,GAAAA;AACvB,IAAA,MAAM,EAAEC,UAAU,EAAEC,GAAG,EAAE,GAAGF,UAAAA;AAE5B,IAAA,IAAI,CAACC,UAAY,EAAA;QACf,OAAO,CAAC,KAAK,EAAEC,GAAK,CAAA,CAAA;AACtB;AAEA,IAAA,IAAID,eAAe,OAAS,EAAA;QAC1B,OAAO,CAAC,OAAO,EAAEC,GAAK,CAAA,CAAA;AACxB;AAEA,IAAA,OAAO,CAAC,QAAQ,EAAED,UAAW,CAAA,CAAC,EAAEC,GAAK,CAAA,CAAA;AACvC,CAAA;AAEA;;AAEC,IACD,MAAMC,cAAiB,GAAA,CAACC,QACtBC,MAAI,CAAA,UAAA,EAAYN,gBAAgBK,KAAQA,CAAAA,EAAAA,KAAAA,CAAAA;AAE1C;;;;IAKA,MAAME,0BAA0B,CAACC,MAAAA,GAAAA;AAC/B,IAAA,MAAMC,qBAAwB,GAAA;AAAC,QAAA,UAAA;AAAY,QAAA;KAAU,CAACC,QAAQ,CAACF,MAAAA,CAAOG,OAAO,CAAA;IAE7E,OAAOF,qBAAAA,GACHH,OAAI,aAAeE,EAAAA,MAAAA,CAAOI,WAAW,IAAI,SAAA,EAAWJ,MACpDK,CAAAA,GAAAA,OAAAA,CAAK,aAAeL,EAAAA,MAAAA,CAAAA;AAC1B,CAAA;AAEA;;AAEC,IACD,MAAMM,iBAAAA,GAAoBC,QAAM,CAAA,CAACC,QAAkBR,EAAAA,MAAAA,GAAAA;AACjD,IAAA,OAAOS,OAAKC,CAAAA,OAAAA,CAAK,2BAA8BR,CAAAA,EAAAA,WAAAA,CAASM,QAAWR,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA;AACrE,CAAA,CAAA;AAEA;;AAEC,IACD,MAAMW,gBAAAA,GAAmBJ,QAAM,CAAA,CAACK,OAAiBZ,EAAAA,MAAAA,GAAAA;AAC/C,IAAA,OAAOa,WAAQb,MAAOc,CAAAA,QAAQ,KAAKZ,WAASU,CAAAA,OAAAA,EAASZ,OAAOc,QAAQ,CAAA;AACtE,CAAA,CAAA;AAEA;;IAGA,MAAMC,MAAmDN,GAAAA,OAAAA;AAEvD;AACAb,cAAAA;AAEAG,uBAAAA;AAEAT,wBAAAA;AAEA0B,QAAM9B,CAAAA,0BAAAA,EAAAA,CAAAA,CAAAA;AAGR,mBAAe;AACbG,IAAAA,YAAAA;AACAiB,IAAAA,iBAAAA;AACAK,IAAAA,gBAAAA;AACAf,IAAAA,cAAAA;AACAG,IAAAA,uBAAAA;AACAgB,IAAAA,MAAAA;AACAvB,IAAAA,eAAAA;AACAN,IAAAA,0BAAAA;AACAI,IAAAA;AACF,CAAE;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../server/src/domain/action/index.ts"],"sourcesContent":["import type { Utils } from '@strapi/types';\n\nimport { curry, pipe, merge, set, pick, omit, includes, isArray, prop } from 'lodash/fp';\n\nexport interface ActionAlias {\n /**\n * The action ID to alias\n */\n actionId: string;\n\n /**\n * An optional array of subject to restrict the alias usage\n */\n subjects?: string[];\n}\n\nexport type Action = {\n /**\n * The unique identifier of the action\n */\n actionId: string;\n\n /**\n * The section linked to the action - These can be 'contentTypes' | 'plugins' | 'settings' | 'internal'\n */\n section: string;\n\n /**\n * The human readable name of an action\n */\n displayName: string;\n\n /**\n * The main category of an action\n */\n category: string;\n\n /**\n * The secondary category of an action (only for settings and plugins section)\n */\n subCategory?: string;\n\n /**\n * The plugin that provides the action\n */\n pluginName?: string;\n\n /**\n * A list of subjects on which the action can be applied\n */\n subjects?: string[];\n\n /**\n * The options of an action\n */\n options: {\n /**\n * The list of properties that can be associated with an action\n */\n applyToProperties: string[] | null;\n };\n\n /**\n * An optional array of @see {@link ActionAlias}.\n *\n * It represents the possible aliases for the current action.\n *\n * Aliases are unidirectional.\n *\n * Note: This is an internal property and probably shouldn't be used outside Strapi core features.\n * Its behavior might change at any time without notice.\n *\n * @internal\n */\n aliases?: ActionAlias[];\n};\n\n/**\n * Set of attributes used to create a new {@link Action} object\n * @typedef {Action, { uid: string }} CreateActionPayload\n */\nexport type CreateActionPayload = Utils.Intersect<\n [\n Utils.Object.PartialBy<\n // Action Id is computed from the uid value\n Omit<Action, 'actionId'>,\n // Options is filled with default values\n 'options'\n >,\n { uid: string },\n ]\n>;\n\n/**\n * Return the default attributes of a new {@link Action}\n * @return Partial<Action>\n */\nconst getDefaultActionAttributes = (): Partial<Action> => ({\n options: {\n applyToProperties: null,\n },\n});\n\n/**\n * Get the list of all the valid attributes of an {@link Action}\n */\nconst actionFields = [\n 'section',\n 'displayName',\n 'category',\n 'subCategory',\n 'pluginName',\n 'subjects',\n 'options',\n 'actionId',\n 'aliases',\n] as const;\n\n/**\n * Remove unwanted attributes from an {@link Action}\n */\nconst sanitizeActionAttributes = pick(actionFields) as (\n action: Action | CreateActionPayload\n) => Action;\n\n/**\n * Create and return an identifier for an {@link CreateActionPayload}.\n * The format is based on the action's source ({@link CreateActionPayload.pluginName} or 'application') and {@link CreateActionPayload.uid}.\n * @param {CreateActionPayload} attributes\n * @return {string}\n */\n// TODO: TS - Use Common.UID\nconst computeActionId = (attributes: CreateActionPayload): string => {\n const { pluginName, uid } = attributes;\n\n if (!pluginName) {\n return `api::${uid}`;\n }\n\n if (pluginName === 'admin') {\n return `admin::${uid}`;\n }\n\n return `plugin::${pluginName}.${uid}`;\n};\n\n/**\n * Assign an actionId attribute to an {@link CreateActionPayload} object\n */\nconst assignActionId = (attrs: CreateActionPayload) =>\n set('actionId', computeActionId(attrs), attrs);\n\n/**\n * Transform an action by adding or removing the {@link Action.subCategory} attribute\n * @param {Action} action - The action to process\n * @return {Action}\n */\nconst assignOrOmitSubCategory = (action: Action): Action => {\n const shouldHaveSubCategory = ['settings', 'plugins'].includes(action.section);\n\n return shouldHaveSubCategory\n ? set('subCategory', action.subCategory || 'general', action)\n : omit('subCategory', action);\n};\n\n/**\n * Check if a property can be applied to an {@link Action}\n */\nconst appliesToProperty = curry((property: string, action: Action): boolean => {\n return pipe(prop('options.applyToProperties'), includes(property))(action);\n});\n\n/**\n * Check if an action applies to a subject\n */\nconst appliesToSubject = curry((subject: string, action: Action): boolean => {\n return isArray(action.subjects) && includes(subject, action.subjects);\n});\n\n/**\n * Transform the given attributes into a domain representation of an Action\n */\nconst create: (payload: CreateActionPayload) => Action = pipe(\n // Create and assign an action identifier to the action\n // (need to be done before the sanitizeActionAttributes since we need the uid here)\n assignActionId,\n // Add or remove the sub category field based on the pluginName attribute\n assignOrOmitSubCategory,\n // Remove unwanted attributes from the payload\n sanitizeActionAttributes,\n // Complete the action creation by adding default values for some attributes\n merge(getDefaultActionAttributes())\n);\n\nexport default {\n actionFields,\n appliesToProperty,\n appliesToSubject,\n assignActionId,\n assignOrOmitSubCategory,\n create,\n computeActionId,\n getDefaultActionAttributes,\n sanitizeActionAttributes,\n};\n"],"names":["getDefaultActionAttributes","options","applyToProperties","actionFields","sanitizeActionAttributes","pick","computeActionId","attributes","pluginName","uid","assignActionId","attrs","set","assignOrOmitSubCategory","action","shouldHaveSubCategory","includes","section","subCategory","omit","appliesToProperty","curry","property","pipe","prop","appliesToSubject","subject","isArray","subjects","create","merge"],"mappings":";;;;AA6FA;;;IAIA,MAAMA,0BAAAA,GAA6B,KAAwB;QACzDC,OAAAA,EAAS;YACPC,iBAAAA,EAAmB;AACrB;KACF,CAAA;AAEA;;AAEC,IACD,MAAMC,YAAAA,GAAe;AACnB,IAAA,SAAA;AACA,IAAA,aAAA;AACA,IAAA,UAAA;AACA,IAAA,aAAA;AACA,IAAA,YAAA;AACA,IAAA,UAAA;AACA,IAAA,SAAA;AACA,IAAA,UAAA;AACA,IAAA;AACD,CAAA;AAED;;IAGA,MAAMC,2BAA2BC,OAAAA,CAAKF,YAAAA,CAAAA;AAItC;;;;;AAKC;AAED,MAAMG,kBAAkB,CAACC,UAAAA,GAAAA;AACvB,IAAA,MAAM,EAAEC,UAAU,EAAEC,GAAG,EAAE,GAAGF,UAAAA;AAE5B,IAAA,IAAI,CAACC,UAAAA,EAAY;QACf,OAAO,CAAC,KAAK,EAAEC,GAAAA,CAAAA,CAAK;AACtB,IAAA;AAEA,IAAA,IAAID,eAAe,OAAA,EAAS;QAC1B,OAAO,CAAC,OAAO,EAAEC,GAAAA,CAAAA,CAAK;AACxB,IAAA;AAEA,IAAA,OAAO,CAAC,QAAQ,EAAED,UAAAA,CAAW,CAAC,EAAEC,GAAAA,CAAAA,CAAK;AACvC,CAAA;AAEA;;AAEC,IACD,MAAMC,cAAAA,GAAiB,CAACC,QACtBC,MAAAA,CAAI,UAAA,EAAYN,gBAAgBK,KAAAA,CAAAA,EAAQA,KAAAA,CAAAA;AAE1C;;;;IAKA,MAAME,0BAA0B,CAACC,MAAAA,GAAAA;AAC/B,IAAA,MAAMC,qBAAAA,GAAwB;AAAC,QAAA,UAAA;AAAY,QAAA;KAAU,CAACC,QAAQ,CAACF,MAAAA,CAAOG,OAAO,CAAA;IAE7E,OAAOF,qBAAAA,GACHH,OAAI,aAAA,EAAeE,MAAAA,CAAOI,WAAW,IAAI,SAAA,EAAWJ,MAAAA,CAAAA,GACpDK,OAAAA,CAAK,aAAA,EAAeL,MAAAA,CAAAA;AAC1B,CAAA;AAEA;;AAEC,IACD,MAAMM,iBAAAA,GAAoBC,QAAAA,CAAM,CAACC,QAAAA,EAAkBR,MAAAA,GAAAA;AACjD,IAAA,OAAOS,OAAAA,CAAKC,OAAAA,CAAK,2BAAA,CAAA,EAA8BR,WAAAA,CAASM,QAAAA,CAAAA,CAAAA,CAAWR,MAAAA,CAAAA;AACrE,CAAA,CAAA;AAEA;;AAEC,IACD,MAAMW,gBAAAA,GAAmBJ,QAAAA,CAAM,CAACK,OAAAA,EAAiBZ,MAAAA,GAAAA;AAC/C,IAAA,OAAOa,WAAQb,MAAAA,CAAOc,QAAQ,KAAKZ,WAAAA,CAASU,OAAAA,EAASZ,OAAOc,QAAQ,CAAA;AACtE,CAAA,CAAA;AAEA;;IAGA,MAAMC,MAAAA,GAAmDN,OAAAA;AAEvD;AACAb,cAAAA;AAEAG,uBAAAA;AAEAT,wBAAAA;AAEA0B,QAAAA,CAAM9B,0BAAAA,EAAAA,CAAAA,CAAAA;AAGR,mBAAe;AACbG,IAAAA,YAAAA;AACAiB,IAAAA,iBAAAA;AACAK,IAAAA,gBAAAA;AACAf,IAAAA,cAAAA;AACAG,IAAAA,uBAAAA;AACAgB,IAAAA,MAAAA;AACAvB,IAAAA,eAAAA;AACAN,IAAAA,0BAAAA;AACAI,IAAAA;AACF,CAAA;;;;"}