@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":"passport.js","sources":["../../../../../../ee/server/src/services/passport.ts"],"sourcesContent":["import { errors } from '@strapi/utils';\nimport createLocalStrategy from '../../../../server/src/services/passport/local-strategy';\nimport sso from './passport/sso';\nimport { isSsoLocked } from '../utils/sso-lock';\n\nconst { UnauthorizedError } = errors;\n\nconst localStrategyMiddleware = async ([error, user, message]: any, done: any) => {\n // if we got a user, we need to check that it's not sso locked\n if (user && !error && (await isSsoLocked(user))) {\n return done(\n new UnauthorizedError('Login not allowed, please contact your administrator', {\n code: 'LOGIN_NOT_ALLOWED',\n }),\n user,\n message\n );\n }\n\n return done(error, user, message);\n};\n\nconst getPassportStrategies = () => {\n if (!strapi.ee.features.isEnabled('sso')) {\n return [createLocalStrategy(strapi)];\n }\n\n const localStrategy = createLocalStrategy(strapi, localStrategyMiddleware);\n\n if (!strapi.isLoaded) {\n sso.syncProviderRegistryWithConfig();\n }\n\n // TODO\n // @ts-expect-error check map types\n const providers = sso.providerRegistry.getAll();\n const strategies = providers.map((provider: any) => provider.createStrategy(strapi));\n\n return [localStrategy, ...strategies];\n};\n\nexport default {\n getPassportStrategies,\n ...sso,\n};\n"],"names":["UnauthorizedError","errors","localStrategyMiddleware","error","user","message","done","isSsoLocked","code","getPassportStrategies","strapi","ee","features","isEnabled","createLocalStrategy","localStrategy","isLoaded","sso","syncProviderRegistryWithConfig","providers","providerRegistry","getAll","strategies","map","provider","createStrategy"],"mappings":";;;;;;;AAKA,MAAM,EAAEA,iBAAiB,EAAE,GAAGC,YAAAA;AAE9B,MAAMC,0BAA0B,OAAO,CAACC,KAAOC,EAAAA,IAAAA,EAAMC,QAAa,EAAEC,IAAAA,GAAAA;;AAElE,IAAA,IAAIF,IAAQ,IAAA,CAACD,KAAU,IAAA,MAAMI,oBAAYH,IAAQ,CAAA,EAAA;QAC/C,OAAOE,IAAAA,CACL,IAAIN,iBAAAA,CAAkB,sDAAwD,EAAA;YAC5EQ,IAAM,EAAA;AACR,SAAA,CAAA,EACAJ,IACAC,EAAAA,OAAAA,CAAAA;AAEJ;IAEA,OAAOC,IAAAA,CAAKH,OAAOC,IAAMC,EAAAA,OAAAA,CAAAA;AAC3B,CAAA;AAEA,MAAMI,qBAAwB,GAAA,IAAA;IAC5B,IAAI,CAACC,OAAOC,EAAE,CAACC,QAAQ,CAACC,SAAS,CAAC,KAAQ,CAAA,EAAA;QACxC,OAAO;YAACC,aAAoBJ,CAAAA,MAAAA;AAAQ,SAAA;AACtC;IAEA,MAAMK,eAAAA,GAAgBD,cAAoBJ,MAAQR,EAAAA,uBAAAA,CAAAA;IAElD,IAAI,CAACQ,MAAOM,CAAAA,QAAQ,EAAE;AACpBC,QAAAA,WAAAA,CAAIC,8BAA8B,EAAA;AACpC;;;AAIA,IAAA,MAAMC,SAAYF,GAAAA,WAAAA,CAAIG,gBAAgB,CAACC,MAAM,EAAA;IAC7C,MAAMC,UAAAA,GAAaH,UAAUI,GAAG,CAAC,CAACC,QAAkBA,GAAAA,QAAAA,CAASC,cAAc,CAACf,MAAAA,CAAAA,CAAAA;IAE5E,OAAO;AAACK,QAAAA,eAAAA;AAAkBO,QAAAA,GAAAA;AAAW,KAAA;AACvC,CAAA;AAEA,eAAe;AACbb,IAAAA,qBAAAA;AACA,IAAA,GAAGQ;AACL,CAAE;;;;"}
1
+ {"version":3,"file":"passport.js","sources":["../../../../../../ee/server/src/services/passport.ts"],"sourcesContent":["import { errors } from '@strapi/utils';\nimport createLocalStrategy from '../../../../server/src/services/passport/local-strategy';\nimport sso from './passport/sso';\nimport { isSsoLocked } from '../utils/sso-lock';\n\nconst { UnauthorizedError } = errors;\n\nconst localStrategyMiddleware = async ([error, user, message]: any, done: any) => {\n // if we got a user, we need to check that it's not sso locked\n if (user && !error && (await isSsoLocked(user))) {\n return done(\n new UnauthorizedError('Login not allowed, please contact your administrator', {\n code: 'LOGIN_NOT_ALLOWED',\n }),\n user,\n message\n );\n }\n\n return done(error, user, message);\n};\n\nconst getPassportStrategies = () => {\n if (!strapi.ee.features.isEnabled('sso')) {\n return [createLocalStrategy(strapi)];\n }\n\n const localStrategy = createLocalStrategy(strapi, localStrategyMiddleware);\n\n if (!strapi.isLoaded) {\n sso.syncProviderRegistryWithConfig();\n }\n\n // TODO\n // @ts-expect-error check map types\n const providers = sso.providerRegistry.getAll();\n const strategies = providers.map((provider: any) => provider.createStrategy(strapi));\n\n return [localStrategy, ...strategies];\n};\n\nexport default {\n getPassportStrategies,\n ...sso,\n};\n"],"names":["UnauthorizedError","errors","localStrategyMiddleware","error","user","message","done","isSsoLocked","code","getPassportStrategies","strapi","ee","features","isEnabled","createLocalStrategy","localStrategy","isLoaded","sso","syncProviderRegistryWithConfig","providers","providerRegistry","getAll","strategies","map","provider","createStrategy"],"mappings":";;;;;;;AAKA,MAAM,EAAEA,iBAAiB,EAAE,GAAGC,YAAAA;AAE9B,MAAMC,0BAA0B,OAAO,CAACC,KAAAA,EAAOC,IAAAA,EAAMC,QAAa,EAAEC,IAAAA,GAAAA;;AAElE,IAAA,IAAIF,IAAAA,IAAQ,CAACD,KAAAA,IAAU,MAAMI,oBAAYH,IAAAA,CAAAA,EAAQ;QAC/C,OAAOE,IAAAA,CACL,IAAIN,iBAAAA,CAAkB,sDAAA,EAAwD;YAC5EQ,IAAAA,EAAM;AACR,SAAA,CAAA,EACAJ,IAAAA,EACAC,OAAAA,CAAAA;AAEJ,IAAA;IAEA,OAAOC,IAAAA,CAAKH,OAAOC,IAAAA,EAAMC,OAAAA,CAAAA;AAC3B,CAAA;AAEA,MAAMI,qBAAAA,GAAwB,IAAA;IAC5B,IAAI,CAACC,OAAOC,EAAE,CAACC,QAAQ,CAACC,SAAS,CAAC,KAAA,CAAA,EAAQ;QACxC,OAAO;YAACC,aAAAA,CAAoBJ,MAAAA;AAAQ,SAAA;AACtC,IAAA;IAEA,MAAMK,eAAAA,GAAgBD,cAAoBJ,MAAAA,EAAQR,uBAAAA,CAAAA;IAElD,IAAI,CAACQ,MAAAA,CAAOM,QAAQ,EAAE;AACpBC,QAAAA,WAAAA,CAAIC,8BAA8B,EAAA;AACpC,IAAA;;;AAIA,IAAA,MAAMC,SAAAA,GAAYF,WAAAA,CAAIG,gBAAgB,CAACC,MAAM,EAAA;IAC7C,MAAMC,UAAAA,GAAaH,UAAUI,GAAG,CAAC,CAACC,QAAAA,GAAkBA,QAAAA,CAASC,cAAc,CAACf,MAAAA,CAAAA,CAAAA;IAE5E,OAAO;AAACK,QAAAA,eAAAA;AAAkBO,QAAAA,GAAAA;AAAW,KAAA;AACvC,CAAA;AAEA,eAAe;AACbb,IAAAA,qBAAAA;AACA,IAAA,GAAGQ;AACL,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"passport.mjs","sources":["../../../../../../ee/server/src/services/passport.ts"],"sourcesContent":["import { errors } from '@strapi/utils';\nimport createLocalStrategy from '../../../../server/src/services/passport/local-strategy';\nimport sso from './passport/sso';\nimport { isSsoLocked } from '../utils/sso-lock';\n\nconst { UnauthorizedError } = errors;\n\nconst localStrategyMiddleware = async ([error, user, message]: any, done: any) => {\n // if we got a user, we need to check that it's not sso locked\n if (user && !error && (await isSsoLocked(user))) {\n return done(\n new UnauthorizedError('Login not allowed, please contact your administrator', {\n code: 'LOGIN_NOT_ALLOWED',\n }),\n user,\n message\n );\n }\n\n return done(error, user, message);\n};\n\nconst getPassportStrategies = () => {\n if (!strapi.ee.features.isEnabled('sso')) {\n return [createLocalStrategy(strapi)];\n }\n\n const localStrategy = createLocalStrategy(strapi, localStrategyMiddleware);\n\n if (!strapi.isLoaded) {\n sso.syncProviderRegistryWithConfig();\n }\n\n // TODO\n // @ts-expect-error check map types\n const providers = sso.providerRegistry.getAll();\n const strategies = providers.map((provider: any) => provider.createStrategy(strapi));\n\n return [localStrategy, ...strategies];\n};\n\nexport default {\n getPassportStrategies,\n ...sso,\n};\n"],"names":["UnauthorizedError","errors","localStrategyMiddleware","error","user","message","done","isSsoLocked","code","getPassportStrategies","strapi","ee","features","isEnabled","createLocalStrategy","localStrategy","isLoaded","sso","syncProviderRegistryWithConfig","providers","providerRegistry","getAll","strategies","map","provider","createStrategy"],"mappings":";;;;;AAKA,MAAM,EAAEA,iBAAiB,EAAE,GAAGC,MAAAA;AAE9B,MAAMC,0BAA0B,OAAO,CAACC,KAAOC,EAAAA,IAAAA,EAAMC,QAAa,EAAEC,IAAAA,GAAAA;;AAElE,IAAA,IAAIF,IAAQ,IAAA,CAACD,KAAU,IAAA,MAAMI,YAAYH,IAAQ,CAAA,EAAA;QAC/C,OAAOE,IAAAA,CACL,IAAIN,iBAAAA,CAAkB,sDAAwD,EAAA;YAC5EQ,IAAM,EAAA;AACR,SAAA,CAAA,EACAJ,IACAC,EAAAA,OAAAA,CAAAA;AAEJ;IAEA,OAAOC,IAAAA,CAAKH,OAAOC,IAAMC,EAAAA,OAAAA,CAAAA;AAC3B,CAAA;AAEA,MAAMI,qBAAwB,GAAA,IAAA;IAC5B,IAAI,CAACC,OAAOC,EAAE,CAACC,QAAQ,CAACC,SAAS,CAAC,KAAQ,CAAA,EAAA;QACxC,OAAO;YAACC,mBAAoBJ,CAAAA,MAAAA;AAAQ,SAAA;AACtC;IAEA,MAAMK,aAAAA,GAAgBD,oBAAoBJ,MAAQR,EAAAA,uBAAAA,CAAAA;IAElD,IAAI,CAACQ,MAAOM,CAAAA,QAAQ,EAAE;AACpBC,QAAAA,GAAAA,CAAIC,8BAA8B,EAAA;AACpC;;;AAIA,IAAA,MAAMC,SAAYF,GAAAA,GAAAA,CAAIG,gBAAgB,CAACC,MAAM,EAAA;IAC7C,MAAMC,UAAAA,GAAaH,UAAUI,GAAG,CAAC,CAACC,QAAkBA,GAAAA,QAAAA,CAASC,cAAc,CAACf,MAAAA,CAAAA,CAAAA;IAE5E,OAAO;AAACK,QAAAA,aAAAA;AAAkBO,QAAAA,GAAAA;AAAW,KAAA;AACvC,CAAA;AAEA,eAAe;AACbb,IAAAA,qBAAAA;AACA,IAAA,GAAGQ;AACL,CAAE;;;;"}
1
+ {"version":3,"file":"passport.mjs","sources":["../../../../../../ee/server/src/services/passport.ts"],"sourcesContent":["import { errors } from '@strapi/utils';\nimport createLocalStrategy from '../../../../server/src/services/passport/local-strategy';\nimport sso from './passport/sso';\nimport { isSsoLocked } from '../utils/sso-lock';\n\nconst { UnauthorizedError } = errors;\n\nconst localStrategyMiddleware = async ([error, user, message]: any, done: any) => {\n // if we got a user, we need to check that it's not sso locked\n if (user && !error && (await isSsoLocked(user))) {\n return done(\n new UnauthorizedError('Login not allowed, please contact your administrator', {\n code: 'LOGIN_NOT_ALLOWED',\n }),\n user,\n message\n );\n }\n\n return done(error, user, message);\n};\n\nconst getPassportStrategies = () => {\n if (!strapi.ee.features.isEnabled('sso')) {\n return [createLocalStrategy(strapi)];\n }\n\n const localStrategy = createLocalStrategy(strapi, localStrategyMiddleware);\n\n if (!strapi.isLoaded) {\n sso.syncProviderRegistryWithConfig();\n }\n\n // TODO\n // @ts-expect-error check map types\n const providers = sso.providerRegistry.getAll();\n const strategies = providers.map((provider: any) => provider.createStrategy(strapi));\n\n return [localStrategy, ...strategies];\n};\n\nexport default {\n getPassportStrategies,\n ...sso,\n};\n"],"names":["UnauthorizedError","errors","localStrategyMiddleware","error","user","message","done","isSsoLocked","code","getPassportStrategies","strapi","ee","features","isEnabled","createLocalStrategy","localStrategy","isLoaded","sso","syncProviderRegistryWithConfig","providers","providerRegistry","getAll","strategies","map","provider","createStrategy"],"mappings":";;;;;AAKA,MAAM,EAAEA,iBAAiB,EAAE,GAAGC,MAAAA;AAE9B,MAAMC,0BAA0B,OAAO,CAACC,KAAAA,EAAOC,IAAAA,EAAMC,QAAa,EAAEC,IAAAA,GAAAA;;AAElE,IAAA,IAAIF,IAAAA,IAAQ,CAACD,KAAAA,IAAU,MAAMI,YAAYH,IAAAA,CAAAA,EAAQ;QAC/C,OAAOE,IAAAA,CACL,IAAIN,iBAAAA,CAAkB,sDAAA,EAAwD;YAC5EQ,IAAAA,EAAM;AACR,SAAA,CAAA,EACAJ,IAAAA,EACAC,OAAAA,CAAAA;AAEJ,IAAA;IAEA,OAAOC,IAAAA,CAAKH,OAAOC,IAAAA,EAAMC,OAAAA,CAAAA;AAC3B,CAAA;AAEA,MAAMI,qBAAAA,GAAwB,IAAA;IAC5B,IAAI,CAACC,OAAOC,EAAE,CAACC,QAAQ,CAACC,SAAS,CAAC,KAAA,CAAA,EAAQ;QACxC,OAAO;YAACC,mBAAAA,CAAoBJ,MAAAA;AAAQ,SAAA;AACtC,IAAA;IAEA,MAAMK,aAAAA,GAAgBD,oBAAoBJ,MAAAA,EAAQR,uBAAAA,CAAAA;IAElD,IAAI,CAACQ,MAAAA,CAAOM,QAAQ,EAAE;AACpBC,QAAAA,GAAAA,CAAIC,8BAA8B,EAAA;AACpC,IAAA;;;AAIA,IAAA,MAAMC,SAAAA,GAAYF,GAAAA,CAAIG,gBAAgB,CAACC,MAAM,EAAA;IAC7C,MAAMC,UAAAA,GAAaH,UAAUI,GAAG,CAAC,CAACC,QAAAA,GAAkBA,QAAAA,CAASC,cAAc,CAACf,MAAAA,CAAAA,CAAAA;IAE5E,OAAO;AAACK,QAAAA,aAAAA;AAAkBO,QAAAA,GAAAA;AAAW,KAAA;AACvC,CAAA;AAEA,eAAe;AACbb,IAAAA,qBAAAA;AACA,IAAA,GAAGQ;AACL,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"persist-tables.js","sources":["../../../../../../ee/server/src/services/persist-tables.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { differenceWith, isEqual } from 'lodash/fp';\n\nexport interface PersistedTable {\n name: string;\n dependsOn?: Array<{ name: string }>;\n}\n\n/**\n * Transform table name to the object format\n */\nconst transformTableName = (table: string | PersistedTable) => {\n if (typeof table === 'string') {\n return { name: table };\n }\n return table;\n};\n\n/**\n * Finds all tables in the database matching the regular expression\n * @param {Object} ctx\n * @param {Strapi} ctx.strapi\n * @param {RegExp} regex\n * @returns {Promise<string[]>}\n */\nexport async function findTables({ strapi }: { strapi: Core.Strapi }, regex: any) {\n const tables = await strapi.db.dialect.schemaInspector.getTables();\n return tables.filter((tableName: string) => regex.test(tableName));\n}\n\n/**\n * Add tables name to the reserved tables in core store\n */\nasync function addPersistTables(\n { strapi }: { strapi: Core.Strapi },\n tableNames: Array<string | PersistedTable>\n) {\n const persistedTables = await getPersistedTables({ strapi });\n const tables = tableNames.map(transformTableName);\n\n // Get new tables to be persisted, remove tables if they already were persisted\n const notPersistedTableNames = differenceWith(isEqual, tables, persistedTables);\n // Remove tables that are going to be changed\n const tablesToPersist = differenceWith(\n (t1: any, t2: any) => t1.name === t2.name,\n persistedTables,\n notPersistedTableNames\n );\n\n if (!notPersistedTableNames.length) {\n return;\n }\n\n // @ts-expect-error lodash types\n tablesToPersist.push(...notPersistedTableNames);\n await strapi.store.set({\n type: 'core',\n key: 'persisted_tables',\n value: tablesToPersist,\n });\n}\n\n/**\n * Get all reserved table names from the core store\n * @param {Object} ctx\n * @param {Strapi} ctx.strapi\n * @param {RegExp} regex\n * @returns {Promise<string[]>}\n */\n\nasync function getPersistedTables({ strapi }: { strapi: Core.Strapi }) {\n const persistedTables: any = await strapi.store.get({\n type: 'core',\n key: 'persisted_tables',\n });\n\n return (persistedTables || []).map(transformTableName);\n}\n\n/**\n * Set all reserved table names in the core store\n * @param {Object} ctx\n * @param {Strapi} ctx.strapi\n * @param {Array<string|{ table: string; dependsOn?: Array<{ table: string;}> }>} tableNames\n * @returns {Promise<void>}\n */\nasync function setPersistedTables(\n { strapi }: { strapi: Core.Strapi },\n tableNames: Array<string | PersistedTable>\n) {\n await strapi.store.set({\n type: 'core',\n key: 'persisted_tables',\n value: tableNames,\n });\n}\n/**\n * Add all table names that start with a prefix to the reserved tables in\n * core store\n * @param {string} tableNamePrefix\n * @return {Promise<void>}\n */\n\nexport const persistTablesWithPrefix = async (tableNamePrefix: string) => {\n const tableNameRegex = new RegExp(`^${tableNamePrefix}.*`);\n const tableNames = await findTables({ strapi }, tableNameRegex);\n\n await addPersistTables({ strapi }, tableNames);\n};\n\n/**\n * Remove all table names that end with a suffix from the reserved tables in core store\n * @param {string} tableNameSuffix\n * @return {Promise<void>}\n */\nexport const removePersistedTablesWithSuffix = async (tableNameSuffix: string) => {\n const tableNameRegex = new RegExp(`.*${tableNameSuffix}$`);\n const persistedTables = await getPersistedTables({ strapi });\n\n const filteredPersistedTables = persistedTables.filter((table: any) => {\n return !tableNameRegex.test(table.name);\n });\n\n if (filteredPersistedTables.length === persistedTables.length) {\n return;\n }\n\n await setPersistedTables({ strapi }, filteredPersistedTables);\n};\n\n/**\n * Add tables to the reserved tables in core store\n */\nexport const persistTables = async (tables: Array<string | PersistedTable>) => {\n await addPersistTables({ strapi }, tables);\n};\n\nexport default {\n persistTablesWithPrefix,\n removePersistedTablesWithSuffix,\n persistTables,\n findTables,\n};\n"],"names":["transformTableName","table","name","findTables","strapi","regex","tables","db","dialect","schemaInspector","getTables","filter","tableName","test","addPersistTables","tableNames","persistedTables","getPersistedTables","map","notPersistedTableNames","differenceWith","isEqual","tablesToPersist","t1","t2","length","push","store","set","type","key","value","get","setPersistedTables","persistTablesWithPrefix","tableNamePrefix","tableNameRegex","RegExp","removePersistedTablesWithSuffix","tableNameSuffix","filteredPersistedTables","persistTables"],"mappings":"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"}
1
+ {"version":3,"file":"persist-tables.js","sources":["../../../../../../ee/server/src/services/persist-tables.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { differenceWith, isEqual } from 'lodash/fp';\n\nexport interface PersistedTable {\n name: string;\n dependsOn?: Array<{ name: string }>;\n}\n\n/**\n * Transform table name to the object format\n */\nconst transformTableName = (table: string | PersistedTable) => {\n if (typeof table === 'string') {\n return { name: table };\n }\n return table;\n};\n\n/**\n * Finds all tables in the database matching the regular expression\n * @param {Object} ctx\n * @param {Strapi} ctx.strapi\n * @param {RegExp} regex\n * @returns {Promise<string[]>}\n */\nexport async function findTables({ strapi }: { strapi: Core.Strapi }, regex: any) {\n const tables = await strapi.db.dialect.schemaInspector.getTables();\n return tables.filter((tableName: string) => regex.test(tableName));\n}\n\n/**\n * Add tables name to the reserved tables in core store\n */\nasync function addPersistTables(\n { strapi }: { strapi: Core.Strapi },\n tableNames: Array<string | PersistedTable>\n) {\n const persistedTables = await getPersistedTables({ strapi });\n const tables = tableNames.map(transformTableName);\n\n // Get new tables to be persisted, remove tables if they already were persisted\n const notPersistedTableNames = differenceWith(isEqual, tables, persistedTables);\n // Remove tables that are going to be changed\n const tablesToPersist = differenceWith(\n (t1: any, t2: any) => t1.name === t2.name,\n persistedTables,\n notPersistedTableNames\n );\n\n if (!notPersistedTableNames.length) {\n return;\n }\n\n // @ts-expect-error lodash types\n tablesToPersist.push(...notPersistedTableNames);\n await strapi.store.set({\n type: 'core',\n key: 'persisted_tables',\n value: tablesToPersist,\n });\n}\n\n/**\n * Get all reserved table names from the core store\n * @param {Object} ctx\n * @param {Strapi} ctx.strapi\n * @param {RegExp} regex\n * @returns {Promise<string[]>}\n */\n\nasync function getPersistedTables({ strapi }: { strapi: Core.Strapi }) {\n const persistedTables: any = await strapi.store.get({\n type: 'core',\n key: 'persisted_tables',\n });\n\n return (persistedTables || []).map(transformTableName);\n}\n\n/**\n * Set all reserved table names in the core store\n * @param {Object} ctx\n * @param {Strapi} ctx.strapi\n * @param {Array<string|{ table: string; dependsOn?: Array<{ table: string;}> }>} tableNames\n * @returns {Promise<void>}\n */\nasync function setPersistedTables(\n { strapi }: { strapi: Core.Strapi },\n tableNames: Array<string | PersistedTable>\n) {\n await strapi.store.set({\n type: 'core',\n key: 'persisted_tables',\n value: tableNames,\n });\n}\n/**\n * Add all table names that start with a prefix to the reserved tables in\n * core store\n * @param {string} tableNamePrefix\n * @return {Promise<void>}\n */\n\nexport const persistTablesWithPrefix = async (tableNamePrefix: string) => {\n const tableNameRegex = new RegExp(`^${tableNamePrefix}.*`);\n const tableNames = await findTables({ strapi }, tableNameRegex);\n\n await addPersistTables({ strapi }, tableNames);\n};\n\n/**\n * Remove all table names that end with a suffix from the reserved tables in core store\n * @param {string} tableNameSuffix\n * @return {Promise<void>}\n */\nexport const removePersistedTablesWithSuffix = async (tableNameSuffix: string) => {\n const tableNameRegex = new RegExp(`.*${tableNameSuffix}$`);\n const persistedTables = await getPersistedTables({ strapi });\n\n const filteredPersistedTables = persistedTables.filter((table: any) => {\n return !tableNameRegex.test(table.name);\n });\n\n if (filteredPersistedTables.length === persistedTables.length) {\n return;\n }\n\n await setPersistedTables({ strapi }, filteredPersistedTables);\n};\n\n/**\n * Add tables to the reserved tables in core store\n */\nexport const persistTables = async (tables: Array<string | PersistedTable>) => {\n await addPersistTables({ strapi }, tables);\n};\n\nexport default {\n persistTablesWithPrefix,\n removePersistedTablesWithSuffix,\n persistTables,\n findTables,\n};\n"],"names":["transformTableName","table","name","findTables","strapi","regex","tables","db","dialect","schemaInspector","getTables","filter","tableName","test","addPersistTables","tableNames","persistedTables","getPersistedTables","map","notPersistedTableNames","differenceWith","isEqual","tablesToPersist","t1","t2","length","push","store","set","type","key","value","get","setPersistedTables","persistTablesWithPrefix","tableNamePrefix","tableNameRegex","RegExp","removePersistedTablesWithSuffix","tableNameSuffix","filteredPersistedTables","persistTables"],"mappings":"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"}
@@ -103,17 +103,17 @@ import { differenceWith, isEqual } from 'lodash/fp';
103
103
  };
104
104
  /**
105
105
  * Add tables to the reserved tables in core store
106
- */ const persistTables = async (tables)=>{
106
+ */ const persistTables$1 = async (tables)=>{
107
107
  await addPersistTables({
108
108
  strapi
109
109
  }, tables);
110
110
  };
111
- var persistTables$1 = {
111
+ var persistTables = {
112
112
  persistTablesWithPrefix,
113
113
  removePersistedTablesWithSuffix,
114
- persistTables,
114
+ persistTables: persistTables$1,
115
115
  findTables
116
116
  };
117
117
 
118
- export { persistTables$1 as default, findTables, persistTables, persistTablesWithPrefix, removePersistedTablesWithSuffix };
118
+ export { persistTables as default, findTables, persistTables$1 as persistTables, persistTablesWithPrefix, removePersistedTablesWithSuffix };
119
119
  //# sourceMappingURL=persist-tables.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"persist-tables.mjs","sources":["../../../../../../ee/server/src/services/persist-tables.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { differenceWith, isEqual } from 'lodash/fp';\n\nexport interface PersistedTable {\n name: string;\n dependsOn?: Array<{ name: string }>;\n}\n\n/**\n * Transform table name to the object format\n */\nconst transformTableName = (table: string | PersistedTable) => {\n if (typeof table === 'string') {\n return { name: table };\n }\n return table;\n};\n\n/**\n * Finds all tables in the database matching the regular expression\n * @param {Object} ctx\n * @param {Strapi} ctx.strapi\n * @param {RegExp} regex\n * @returns {Promise<string[]>}\n */\nexport async function findTables({ strapi }: { strapi: Core.Strapi }, regex: any) {\n const tables = await strapi.db.dialect.schemaInspector.getTables();\n return tables.filter((tableName: string) => regex.test(tableName));\n}\n\n/**\n * Add tables name to the reserved tables in core store\n */\nasync function addPersistTables(\n { strapi }: { strapi: Core.Strapi },\n tableNames: Array<string | PersistedTable>\n) {\n const persistedTables = await getPersistedTables({ strapi });\n const tables = tableNames.map(transformTableName);\n\n // Get new tables to be persisted, remove tables if they already were persisted\n const notPersistedTableNames = differenceWith(isEqual, tables, persistedTables);\n // Remove tables that are going to be changed\n const tablesToPersist = differenceWith(\n (t1: any, t2: any) => t1.name === t2.name,\n persistedTables,\n notPersistedTableNames\n );\n\n if (!notPersistedTableNames.length) {\n return;\n }\n\n // @ts-expect-error lodash types\n tablesToPersist.push(...notPersistedTableNames);\n await strapi.store.set({\n type: 'core',\n key: 'persisted_tables',\n value: tablesToPersist,\n });\n}\n\n/**\n * Get all reserved table names from the core store\n * @param {Object} ctx\n * @param {Strapi} ctx.strapi\n * @param {RegExp} regex\n * @returns {Promise<string[]>}\n */\n\nasync function getPersistedTables({ strapi }: { strapi: Core.Strapi }) {\n const persistedTables: any = await strapi.store.get({\n type: 'core',\n key: 'persisted_tables',\n });\n\n return (persistedTables || []).map(transformTableName);\n}\n\n/**\n * Set all reserved table names in the core store\n * @param {Object} ctx\n * @param {Strapi} ctx.strapi\n * @param {Array<string|{ table: string; dependsOn?: Array<{ table: string;}> }>} tableNames\n * @returns {Promise<void>}\n */\nasync function setPersistedTables(\n { strapi }: { strapi: Core.Strapi },\n tableNames: Array<string | PersistedTable>\n) {\n await strapi.store.set({\n type: 'core',\n key: 'persisted_tables',\n value: tableNames,\n });\n}\n/**\n * Add all table names that start with a prefix to the reserved tables in\n * core store\n * @param {string} tableNamePrefix\n * @return {Promise<void>}\n */\n\nexport const persistTablesWithPrefix = async (tableNamePrefix: string) => {\n const tableNameRegex = new RegExp(`^${tableNamePrefix}.*`);\n const tableNames = await findTables({ strapi }, tableNameRegex);\n\n await addPersistTables({ strapi }, tableNames);\n};\n\n/**\n * Remove all table names that end with a suffix from the reserved tables in core store\n * @param {string} tableNameSuffix\n * @return {Promise<void>}\n */\nexport const removePersistedTablesWithSuffix = async (tableNameSuffix: string) => {\n const tableNameRegex = new RegExp(`.*${tableNameSuffix}$`);\n const persistedTables = await getPersistedTables({ strapi });\n\n const filteredPersistedTables = persistedTables.filter((table: any) => {\n return !tableNameRegex.test(table.name);\n });\n\n if (filteredPersistedTables.length === persistedTables.length) {\n return;\n }\n\n await setPersistedTables({ strapi }, filteredPersistedTables);\n};\n\n/**\n * Add tables to the reserved tables in core store\n */\nexport const persistTables = async (tables: Array<string | PersistedTable>) => {\n await addPersistTables({ strapi }, tables);\n};\n\nexport default {\n persistTablesWithPrefix,\n removePersistedTablesWithSuffix,\n persistTables,\n findTables,\n};\n"],"names":["transformTableName","table","name","findTables","strapi","regex","tables","db","dialect","schemaInspector","getTables","filter","tableName","test","addPersistTables","tableNames","persistedTables","getPersistedTables","map","notPersistedTableNames","differenceWith","isEqual","tablesToPersist","t1","t2","length","push","store","set","type","key","value","get","setPersistedTables","persistTablesWithPrefix","tableNamePrefix","tableNameRegex","RegExp","removePersistedTablesWithSuffix","tableNameSuffix","filteredPersistedTables","persistTables"],"mappings":"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"}
1
+ {"version":3,"file":"persist-tables.mjs","sources":["../../../../../../ee/server/src/services/persist-tables.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { differenceWith, isEqual } from 'lodash/fp';\n\nexport interface PersistedTable {\n name: string;\n dependsOn?: Array<{ name: string }>;\n}\n\n/**\n * Transform table name to the object format\n */\nconst transformTableName = (table: string | PersistedTable) => {\n if (typeof table === 'string') {\n return { name: table };\n }\n return table;\n};\n\n/**\n * Finds all tables in the database matching the regular expression\n * @param {Object} ctx\n * @param {Strapi} ctx.strapi\n * @param {RegExp} regex\n * @returns {Promise<string[]>}\n */\nexport async function findTables({ strapi }: { strapi: Core.Strapi }, regex: any) {\n const tables = await strapi.db.dialect.schemaInspector.getTables();\n return tables.filter((tableName: string) => regex.test(tableName));\n}\n\n/**\n * Add tables name to the reserved tables in core store\n */\nasync function addPersistTables(\n { strapi }: { strapi: Core.Strapi },\n tableNames: Array<string | PersistedTable>\n) {\n const persistedTables = await getPersistedTables({ strapi });\n const tables = tableNames.map(transformTableName);\n\n // Get new tables to be persisted, remove tables if they already were persisted\n const notPersistedTableNames = differenceWith(isEqual, tables, persistedTables);\n // Remove tables that are going to be changed\n const tablesToPersist = differenceWith(\n (t1: any, t2: any) => t1.name === t2.name,\n persistedTables,\n notPersistedTableNames\n );\n\n if (!notPersistedTableNames.length) {\n return;\n }\n\n // @ts-expect-error lodash types\n tablesToPersist.push(...notPersistedTableNames);\n await strapi.store.set({\n type: 'core',\n key: 'persisted_tables',\n value: tablesToPersist,\n });\n}\n\n/**\n * Get all reserved table names from the core store\n * @param {Object} ctx\n * @param {Strapi} ctx.strapi\n * @param {RegExp} regex\n * @returns {Promise<string[]>}\n */\n\nasync function getPersistedTables({ strapi }: { strapi: Core.Strapi }) {\n const persistedTables: any = await strapi.store.get({\n type: 'core',\n key: 'persisted_tables',\n });\n\n return (persistedTables || []).map(transformTableName);\n}\n\n/**\n * Set all reserved table names in the core store\n * @param {Object} ctx\n * @param {Strapi} ctx.strapi\n * @param {Array<string|{ table: string; dependsOn?: Array<{ table: string;}> }>} tableNames\n * @returns {Promise<void>}\n */\nasync function setPersistedTables(\n { strapi }: { strapi: Core.Strapi },\n tableNames: Array<string | PersistedTable>\n) {\n await strapi.store.set({\n type: 'core',\n key: 'persisted_tables',\n value: tableNames,\n });\n}\n/**\n * Add all table names that start with a prefix to the reserved tables in\n * core store\n * @param {string} tableNamePrefix\n * @return {Promise<void>}\n */\n\nexport const persistTablesWithPrefix = async (tableNamePrefix: string) => {\n const tableNameRegex = new RegExp(`^${tableNamePrefix}.*`);\n const tableNames = await findTables({ strapi }, tableNameRegex);\n\n await addPersistTables({ strapi }, tableNames);\n};\n\n/**\n * Remove all table names that end with a suffix from the reserved tables in core store\n * @param {string} tableNameSuffix\n * @return {Promise<void>}\n */\nexport const removePersistedTablesWithSuffix = async (tableNameSuffix: string) => {\n const tableNameRegex = new RegExp(`.*${tableNameSuffix}$`);\n const persistedTables = await getPersistedTables({ strapi });\n\n const filteredPersistedTables = persistedTables.filter((table: any) => {\n return !tableNameRegex.test(table.name);\n });\n\n if (filteredPersistedTables.length === persistedTables.length) {\n return;\n }\n\n await setPersistedTables({ strapi }, filteredPersistedTables);\n};\n\n/**\n * Add tables to the reserved tables in core store\n */\nexport const persistTables = async (tables: Array<string | PersistedTable>) => {\n await addPersistTables({ strapi }, tables);\n};\n\nexport default {\n persistTablesWithPrefix,\n removePersistedTablesWithSuffix,\n persistTables,\n findTables,\n};\n"],"names":["transformTableName","table","name","findTables","strapi","regex","tables","db","dialect","schemaInspector","getTables","filter","tableName","test","addPersistTables","tableNames","persistedTables","getPersistedTables","map","notPersistedTableNames","differenceWith","isEqual","tablesToPersist","t1","t2","length","push","store","set","type","key","value","get","setPersistedTables","persistTablesWithPrefix","tableNamePrefix","tableNameRegex","RegExp","removePersistedTablesWithSuffix","tableNameSuffix","filteredPersistedTables","persistTables"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"role.js","sources":["../../../../../../ee/server/src/services/role.ts"],"sourcesContent":["import { toString } from 'lodash/fp';\nimport { errors } from '@strapi/utils';\n\nconst { ApplicationError } = errors;\n\nconst ssoCheckRolesIdForDeletion = async (ids: any) => {\n const adminStore = await strapi.store({ type: 'core', name: 'admin' });\n\n const {\n providers: { defaultRole },\n } = (await adminStore.get({ key: 'auth' })) as any;\n\n for (const roleId of ids) {\n if (defaultRole && toString(defaultRole) === toString(roleId)) {\n throw new ApplicationError(\n 'This role is used as the default SSO role. Make sure to change this configuration before deleting the role'\n );\n }\n }\n};\n\nexport default {\n ssoCheckRolesIdForDeletion,\n};\n"],"names":["ApplicationError","errors","ssoCheckRolesIdForDeletion","ids","adminStore","strapi","store","type","name","providers","defaultRole","get","key","roleId","toString"],"mappings":";;;;;AAGA,MAAM,EAAEA,gBAAgB,EAAE,GAAGC,YAAAA;AAE7B,MAAMC,6BAA6B,OAAOC,GAAAA,GAAAA;AACxC,IAAA,MAAMC,UAAa,GAAA,MAAMC,MAAOC,CAAAA,KAAK,CAAC;QAAEC,IAAM,EAAA,MAAA;QAAQC,IAAM,EAAA;AAAQ,KAAA,CAAA;IAEpE,MAAM,EACJC,SAAW,EAAA,EAAEC,WAAW,EAAE,EAC3B,GAAI,MAAMN,UAAWO,CAAAA,GAAG,CAAC;QAAEC,GAAK,EAAA;AAAO,KAAA,CAAA;IAExC,KAAK,MAAMC,UAAUV,GAAK,CAAA;AACxB,QAAA,IAAIO,WAAeI,IAAAA,WAAAA,CAASJ,WAAiBI,CAAAA,KAAAA,WAAAA,CAASD,MAAS,CAAA,EAAA;AAC7D,YAAA,MAAM,IAAIb,gBACR,CAAA,4GAAA,CAAA;AAEJ;AACF;AACF,CAAA;AAEA,WAAe;AACbE,IAAAA;AACF,CAAE;;;;"}
1
+ {"version":3,"file":"role.js","sources":["../../../../../../ee/server/src/services/role.ts"],"sourcesContent":["import { toString } from 'lodash/fp';\nimport { errors } from '@strapi/utils';\n\nconst { ApplicationError } = errors;\n\nconst ssoCheckRolesIdForDeletion = async (ids: any) => {\n const adminStore = await strapi.store({ type: 'core', name: 'admin' });\n\n const {\n providers: { defaultRole },\n } = (await adminStore.get({ key: 'auth' })) as any;\n\n for (const roleId of ids) {\n if (defaultRole && toString(defaultRole) === toString(roleId)) {\n throw new ApplicationError(\n 'This role is used as the default SSO role. Make sure to change this configuration before deleting the role'\n );\n }\n }\n};\n\nexport default {\n ssoCheckRolesIdForDeletion,\n};\n"],"names":["ApplicationError","errors","ssoCheckRolesIdForDeletion","ids","adminStore","strapi","store","type","name","providers","defaultRole","get","key","roleId","toString"],"mappings":";;;;;AAGA,MAAM,EAAEA,gBAAgB,EAAE,GAAGC,YAAAA;AAE7B,MAAMC,6BAA6B,OAAOC,GAAAA,GAAAA;AACxC,IAAA,MAAMC,UAAAA,GAAa,MAAMC,MAAAA,CAAOC,KAAK,CAAC;QAAEC,IAAAA,EAAM,MAAA;QAAQC,IAAAA,EAAM;AAAQ,KAAA,CAAA;IAEpE,MAAM,EACJC,SAAAA,EAAW,EAAEC,WAAW,EAAE,EAC3B,GAAI,MAAMN,UAAAA,CAAWO,GAAG,CAAC;QAAEC,GAAAA,EAAK;AAAO,KAAA,CAAA;IAExC,KAAK,MAAMC,UAAUV,GAAAA,CAAK;AACxB,QAAA,IAAIO,WAAAA,IAAeI,WAAAA,CAASJ,WAAAA,CAAAA,KAAiBI,WAAAA,CAASD,MAAAA,CAAAA,EAAS;AAC7D,YAAA,MAAM,IAAIb,gBAAAA,CACR,4GAAA,CAAA;AAEJ,QAAA;AACF,IAAA;AACF,CAAA;AAEA,WAAe;AACbE,IAAAA;AACF,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"role.mjs","sources":["../../../../../../ee/server/src/services/role.ts"],"sourcesContent":["import { toString } from 'lodash/fp';\nimport { errors } from '@strapi/utils';\n\nconst { ApplicationError } = errors;\n\nconst ssoCheckRolesIdForDeletion = async (ids: any) => {\n const adminStore = await strapi.store({ type: 'core', name: 'admin' });\n\n const {\n providers: { defaultRole },\n } = (await adminStore.get({ key: 'auth' })) as any;\n\n for (const roleId of ids) {\n if (defaultRole && toString(defaultRole) === toString(roleId)) {\n throw new ApplicationError(\n 'This role is used as the default SSO role. Make sure to change this configuration before deleting the role'\n );\n }\n }\n};\n\nexport default {\n ssoCheckRolesIdForDeletion,\n};\n"],"names":["ApplicationError","errors","ssoCheckRolesIdForDeletion","ids","adminStore","strapi","store","type","name","providers","defaultRole","get","key","roleId","toString"],"mappings":";;;AAGA,MAAM,EAAEA,gBAAgB,EAAE,GAAGC,MAAAA;AAE7B,MAAMC,6BAA6B,OAAOC,GAAAA,GAAAA;AACxC,IAAA,MAAMC,UAAa,GAAA,MAAMC,MAAOC,CAAAA,KAAK,CAAC;QAAEC,IAAM,EAAA,MAAA;QAAQC,IAAM,EAAA;AAAQ,KAAA,CAAA;IAEpE,MAAM,EACJC,SAAW,EAAA,EAAEC,WAAW,EAAE,EAC3B,GAAI,MAAMN,UAAWO,CAAAA,GAAG,CAAC;QAAEC,GAAK,EAAA;AAAO,KAAA,CAAA;IAExC,KAAK,MAAMC,UAAUV,GAAK,CAAA;AACxB,QAAA,IAAIO,WAAeI,IAAAA,QAAAA,CAASJ,WAAiBI,CAAAA,KAAAA,QAAAA,CAASD,MAAS,CAAA,EAAA;AAC7D,YAAA,MAAM,IAAIb,gBACR,CAAA,4GAAA,CAAA;AAEJ;AACF;AACF,CAAA;AAEA,WAAe;AACbE,IAAAA;AACF,CAAE;;;;"}
1
+ {"version":3,"file":"role.mjs","sources":["../../../../../../ee/server/src/services/role.ts"],"sourcesContent":["import { toString } from 'lodash/fp';\nimport { errors } from '@strapi/utils';\n\nconst { ApplicationError } = errors;\n\nconst ssoCheckRolesIdForDeletion = async (ids: any) => {\n const adminStore = await strapi.store({ type: 'core', name: 'admin' });\n\n const {\n providers: { defaultRole },\n } = (await adminStore.get({ key: 'auth' })) as any;\n\n for (const roleId of ids) {\n if (defaultRole && toString(defaultRole) === toString(roleId)) {\n throw new ApplicationError(\n 'This role is used as the default SSO role. Make sure to change this configuration before deleting the role'\n );\n }\n }\n};\n\nexport default {\n ssoCheckRolesIdForDeletion,\n};\n"],"names":["ApplicationError","errors","ssoCheckRolesIdForDeletion","ids","adminStore","strapi","store","type","name","providers","defaultRole","get","key","roleId","toString"],"mappings":";;;AAGA,MAAM,EAAEA,gBAAgB,EAAE,GAAGC,MAAAA;AAE7B,MAAMC,6BAA6B,OAAOC,GAAAA,GAAAA;AACxC,IAAA,MAAMC,UAAAA,GAAa,MAAMC,MAAAA,CAAOC,KAAK,CAAC;QAAEC,IAAAA,EAAM,MAAA;QAAQC,IAAAA,EAAM;AAAQ,KAAA,CAAA;IAEpE,MAAM,EACJC,SAAAA,EAAW,EAAEC,WAAW,EAAE,EAC3B,GAAI,MAAMN,UAAAA,CAAWO,GAAG,CAAC;QAAEC,GAAAA,EAAK;AAAO,KAAA,CAAA;IAExC,KAAK,MAAMC,UAAUV,GAAAA,CAAK;AACxB,QAAA,IAAIO,WAAAA,IAAeI,QAAAA,CAASJ,WAAAA,CAAAA,KAAiBI,QAAAA,CAASD,MAAAA,CAAAA,EAAS;AAC7D,YAAA,MAAM,IAAIb,gBAAAA,CACR,4GAAA,CAAA;AAEJ,QAAA;AACF,IAAA;AACF,CAAA;AAEA,WAAe;AACbE,IAAAA;AACF,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"seat-enforcement.js","sources":["../../../../../../ee/server/src/services/seat-enforcement.ts"],"sourcesContent":["import { take, drop, map, prop, pick, reverse, isNil } from 'lodash/fp';\nimport { getService } from '../utils';\nimport constants from '../../../../server/src/services/constants';\n\nconst { SUPER_ADMIN_CODE } = constants;\n\n/**\n * Keeps the list of users disabled by the seat enforcement service\n */\nconst getDisabledUserList = async () => {\n return strapi.store.get({ type: 'ee', key: 'disabled_users' });\n};\n\nconst enableMaximumUserCount = async (numberOfUsersToEnable: number) => {\n const disabledUsers = (await getDisabledUserList()) as any;\n const orderedDisabledUsers = reverse(disabledUsers);\n\n const usersToEnable = take(numberOfUsersToEnable, orderedDisabledUsers);\n\n await strapi.db.query('admin::user').updateMany({\n where: { id: map(prop('id'), usersToEnable) },\n data: { isActive: true },\n });\n\n const remainingDisabledUsers = drop(numberOfUsersToEnable, orderedDisabledUsers);\n\n await strapi.store.set({\n type: 'ee',\n key: 'disabled_users',\n value: remainingDisabledUsers,\n });\n};\n\nconst disableUsersAboveLicenseLimit = async (numberOfUsersToDisable: number) => {\n const currentlyDisabledUsers: any = (await getDisabledUserList()) ?? [];\n\n const usersToDisable = [];\n const nonSuperAdminUsersToDisable = await strapi.db.query('admin::user').findMany({\n where: {\n isActive: true,\n roles: {\n code: { $ne: SUPER_ADMIN_CODE },\n },\n },\n orderBy: { createdAt: 'DESC' },\n limit: numberOfUsersToDisable,\n });\n\n usersToDisable.push(...nonSuperAdminUsersToDisable);\n\n if (nonSuperAdminUsersToDisable.length < numberOfUsersToDisable) {\n const superAdminUsersToDisable = await strapi.db.query('admin::user').findMany({\n where: {\n isActive: true,\n roles: { code: SUPER_ADMIN_CODE },\n },\n orderBy: { createdAt: 'DESC' },\n limit: numberOfUsersToDisable - nonSuperAdminUsersToDisable.length,\n });\n\n usersToDisable.push(...superAdminUsersToDisable);\n }\n\n await strapi.db.query('admin::user').updateMany({\n where: { id: map(prop('id'), usersToDisable) },\n data: { isActive: false },\n });\n\n await strapi.store.set({\n type: 'ee',\n key: 'disabled_users',\n value: currentlyDisabledUsers.concat(map(pick(['id', 'isActive']), usersToDisable)),\n });\n};\n\nconst syncDisabledUserRecords = async () => {\n const disabledUsers = await strapi.store.get({ type: 'ee', key: 'disabled_users' });\n\n if (!disabledUsers) {\n return;\n }\n\n await strapi.db.query('admin::user').updateMany({\n where: { id: map(prop('id'), disabledUsers) },\n data: { isActive: false },\n });\n};\n\nconst seatEnforcementWorkflow = async () => {\n const adminSeats = strapi.ee.seats;\n if (isNil(adminSeats)) {\n return;\n }\n\n // TODO: we need to make sure an admin can decide to disable specific user and reactivate others\n await syncDisabledUserRecords();\n\n const currentActiveUserCount = await getService('user').getCurrentActiveUserCount();\n\n const adminSeatsLeft = adminSeats - currentActiveUserCount;\n\n if (adminSeatsLeft > 0) {\n await enableMaximumUserCount(adminSeatsLeft);\n } else if (adminSeatsLeft < 0) {\n await disableUsersAboveLicenseLimit(-adminSeatsLeft);\n }\n};\n\nexport default {\n seatEnforcementWorkflow,\n getDisabledUserList,\n};\n"],"names":["SUPER_ADMIN_CODE","constants","getDisabledUserList","strapi","store","get","type","key","enableMaximumUserCount","numberOfUsersToEnable","disabledUsers","orderedDisabledUsers","reverse","usersToEnable","take","db","query","updateMany","where","id","map","prop","data","isActive","remainingDisabledUsers","drop","set","value","disableUsersAboveLicenseLimit","numberOfUsersToDisable","currentlyDisabledUsers","usersToDisable","nonSuperAdminUsersToDisable","findMany","roles","code","$ne","orderBy","createdAt","limit","push","length","superAdminUsersToDisable","concat","pick","syncDisabledUserRecords","seatEnforcementWorkflow","adminSeats","ee","seats","isNil","currentActiveUserCount","getService","getCurrentActiveUserCount","adminSeatsLeft"],"mappings":"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"}
1
+ {"version":3,"file":"seat-enforcement.js","sources":["../../../../../../ee/server/src/services/seat-enforcement.ts"],"sourcesContent":["import { take, drop, map, prop, pick, reverse, isNil } from 'lodash/fp';\nimport { getService } from '../utils';\nimport constants from '../../../../server/src/services/constants';\n\nconst { SUPER_ADMIN_CODE } = constants;\n\n/**\n * Keeps the list of users disabled by the seat enforcement service\n */\nconst getDisabledUserList = async () => {\n return strapi.store.get({ type: 'ee', key: 'disabled_users' });\n};\n\nconst enableMaximumUserCount = async (numberOfUsersToEnable: number) => {\n const disabledUsers = (await getDisabledUserList()) as any;\n const orderedDisabledUsers = reverse(disabledUsers);\n\n const usersToEnable = take(numberOfUsersToEnable, orderedDisabledUsers);\n\n await strapi.db.query('admin::user').updateMany({\n where: { id: map(prop('id'), usersToEnable) },\n data: { isActive: true },\n });\n\n const remainingDisabledUsers = drop(numberOfUsersToEnable, orderedDisabledUsers);\n\n await strapi.store.set({\n type: 'ee',\n key: 'disabled_users',\n value: remainingDisabledUsers,\n });\n};\n\nconst disableUsersAboveLicenseLimit = async (numberOfUsersToDisable: number) => {\n const currentlyDisabledUsers: any = (await getDisabledUserList()) ?? [];\n\n const usersToDisable = [];\n const nonSuperAdminUsersToDisable = await strapi.db.query('admin::user').findMany({\n where: {\n isActive: true,\n roles: {\n code: { $ne: SUPER_ADMIN_CODE },\n },\n },\n orderBy: { createdAt: 'DESC' },\n limit: numberOfUsersToDisable,\n });\n\n usersToDisable.push(...nonSuperAdminUsersToDisable);\n\n if (nonSuperAdminUsersToDisable.length < numberOfUsersToDisable) {\n const superAdminUsersToDisable = await strapi.db.query('admin::user').findMany({\n where: {\n isActive: true,\n roles: { code: SUPER_ADMIN_CODE },\n },\n orderBy: { createdAt: 'DESC' },\n limit: numberOfUsersToDisable - nonSuperAdminUsersToDisable.length,\n });\n\n usersToDisable.push(...superAdminUsersToDisable);\n }\n\n await strapi.db.query('admin::user').updateMany({\n where: { id: map(prop('id'), usersToDisable) },\n data: { isActive: false },\n });\n\n await strapi.store.set({\n type: 'ee',\n key: 'disabled_users',\n value: currentlyDisabledUsers.concat(map(pick(['id', 'isActive']), usersToDisable)),\n });\n};\n\nconst syncDisabledUserRecords = async () => {\n const disabledUsers = await strapi.store.get({ type: 'ee', key: 'disabled_users' });\n\n if (!disabledUsers) {\n return;\n }\n\n await strapi.db.query('admin::user').updateMany({\n where: { id: map(prop('id'), disabledUsers) },\n data: { isActive: false },\n });\n};\n\nconst seatEnforcementWorkflow = async () => {\n const adminSeats = strapi.ee.seats;\n if (isNil(adminSeats)) {\n return;\n }\n\n // TODO: we need to make sure an admin can decide to disable specific user and reactivate others\n await syncDisabledUserRecords();\n\n const currentActiveUserCount = await getService('user').getCurrentActiveUserCount();\n\n const adminSeatsLeft = adminSeats - currentActiveUserCount;\n\n if (adminSeatsLeft > 0) {\n await enableMaximumUserCount(adminSeatsLeft);\n } else if (adminSeatsLeft < 0) {\n await disableUsersAboveLicenseLimit(-adminSeatsLeft);\n }\n};\n\nexport default {\n seatEnforcementWorkflow,\n getDisabledUserList,\n};\n"],"names":["SUPER_ADMIN_CODE","constants","getDisabledUserList","strapi","store","get","type","key","enableMaximumUserCount","numberOfUsersToEnable","disabledUsers","orderedDisabledUsers","reverse","usersToEnable","take","db","query","updateMany","where","id","map","prop","data","isActive","remainingDisabledUsers","drop","set","value","disableUsersAboveLicenseLimit","numberOfUsersToDisable","currentlyDisabledUsers","usersToDisable","nonSuperAdminUsersToDisable","findMany","roles","code","$ne","orderBy","createdAt","limit","push","length","superAdminUsersToDisable","concat","pick","syncDisabledUserRecords","seatEnforcementWorkflow","adminSeats","ee","seats","isNil","currentActiveUserCount","getService","getCurrentActiveUserCount","adminSeatsLeft"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { isNil, reverse, take, map, prop, drop, pick } from 'lodash/fp';
1
+ import { isNil, map, prop, reverse, take, drop, pick } from 'lodash/fp';
2
2
  import { getService } from '../utils/index.mjs';
3
3
  import constants from '../../../../server/src/services/constants.mjs';
4
4
 
@@ -1 +1 @@
1
- {"version":3,"file":"seat-enforcement.mjs","sources":["../../../../../../ee/server/src/services/seat-enforcement.ts"],"sourcesContent":["import { take, drop, map, prop, pick, reverse, isNil } from 'lodash/fp';\nimport { getService } from '../utils';\nimport constants from '../../../../server/src/services/constants';\n\nconst { SUPER_ADMIN_CODE } = constants;\n\n/**\n * Keeps the list of users disabled by the seat enforcement service\n */\nconst getDisabledUserList = async () => {\n return strapi.store.get({ type: 'ee', key: 'disabled_users' });\n};\n\nconst enableMaximumUserCount = async (numberOfUsersToEnable: number) => {\n const disabledUsers = (await getDisabledUserList()) as any;\n const orderedDisabledUsers = reverse(disabledUsers);\n\n const usersToEnable = take(numberOfUsersToEnable, orderedDisabledUsers);\n\n await strapi.db.query('admin::user').updateMany({\n where: { id: map(prop('id'), usersToEnable) },\n data: { isActive: true },\n });\n\n const remainingDisabledUsers = drop(numberOfUsersToEnable, orderedDisabledUsers);\n\n await strapi.store.set({\n type: 'ee',\n key: 'disabled_users',\n value: remainingDisabledUsers,\n });\n};\n\nconst disableUsersAboveLicenseLimit = async (numberOfUsersToDisable: number) => {\n const currentlyDisabledUsers: any = (await getDisabledUserList()) ?? [];\n\n const usersToDisable = [];\n const nonSuperAdminUsersToDisable = await strapi.db.query('admin::user').findMany({\n where: {\n isActive: true,\n roles: {\n code: { $ne: SUPER_ADMIN_CODE },\n },\n },\n orderBy: { createdAt: 'DESC' },\n limit: numberOfUsersToDisable,\n });\n\n usersToDisable.push(...nonSuperAdminUsersToDisable);\n\n if (nonSuperAdminUsersToDisable.length < numberOfUsersToDisable) {\n const superAdminUsersToDisable = await strapi.db.query('admin::user').findMany({\n where: {\n isActive: true,\n roles: { code: SUPER_ADMIN_CODE },\n },\n orderBy: { createdAt: 'DESC' },\n limit: numberOfUsersToDisable - nonSuperAdminUsersToDisable.length,\n });\n\n usersToDisable.push(...superAdminUsersToDisable);\n }\n\n await strapi.db.query('admin::user').updateMany({\n where: { id: map(prop('id'), usersToDisable) },\n data: { isActive: false },\n });\n\n await strapi.store.set({\n type: 'ee',\n key: 'disabled_users',\n value: currentlyDisabledUsers.concat(map(pick(['id', 'isActive']), usersToDisable)),\n });\n};\n\nconst syncDisabledUserRecords = async () => {\n const disabledUsers = await strapi.store.get({ type: 'ee', key: 'disabled_users' });\n\n if (!disabledUsers) {\n return;\n }\n\n await strapi.db.query('admin::user').updateMany({\n where: { id: map(prop('id'), disabledUsers) },\n data: { isActive: false },\n });\n};\n\nconst seatEnforcementWorkflow = async () => {\n const adminSeats = strapi.ee.seats;\n if (isNil(adminSeats)) {\n return;\n }\n\n // TODO: we need to make sure an admin can decide to disable specific user and reactivate others\n await syncDisabledUserRecords();\n\n const currentActiveUserCount = await getService('user').getCurrentActiveUserCount();\n\n const adminSeatsLeft = adminSeats - currentActiveUserCount;\n\n if (adminSeatsLeft > 0) {\n await enableMaximumUserCount(adminSeatsLeft);\n } else if (adminSeatsLeft < 0) {\n await disableUsersAboveLicenseLimit(-adminSeatsLeft);\n }\n};\n\nexport default {\n seatEnforcementWorkflow,\n getDisabledUserList,\n};\n"],"names":["SUPER_ADMIN_CODE","constants","getDisabledUserList","strapi","store","get","type","key","enableMaximumUserCount","numberOfUsersToEnable","disabledUsers","orderedDisabledUsers","reverse","usersToEnable","take","db","query","updateMany","where","id","map","prop","data","isActive","remainingDisabledUsers","drop","set","value","disableUsersAboveLicenseLimit","numberOfUsersToDisable","currentlyDisabledUsers","usersToDisable","nonSuperAdminUsersToDisable","findMany","roles","code","$ne","orderBy","createdAt","limit","push","length","superAdminUsersToDisable","concat","pick","syncDisabledUserRecords","seatEnforcementWorkflow","adminSeats","ee","seats","isNil","currentActiveUserCount","getService","getCurrentActiveUserCount","adminSeatsLeft"],"mappings":"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"}
1
+ {"version":3,"file":"seat-enforcement.mjs","sources":["../../../../../../ee/server/src/services/seat-enforcement.ts"],"sourcesContent":["import { take, drop, map, prop, pick, reverse, isNil } from 'lodash/fp';\nimport { getService } from '../utils';\nimport constants from '../../../../server/src/services/constants';\n\nconst { SUPER_ADMIN_CODE } = constants;\n\n/**\n * Keeps the list of users disabled by the seat enforcement service\n */\nconst getDisabledUserList = async () => {\n return strapi.store.get({ type: 'ee', key: 'disabled_users' });\n};\n\nconst enableMaximumUserCount = async (numberOfUsersToEnable: number) => {\n const disabledUsers = (await getDisabledUserList()) as any;\n const orderedDisabledUsers = reverse(disabledUsers);\n\n const usersToEnable = take(numberOfUsersToEnable, orderedDisabledUsers);\n\n await strapi.db.query('admin::user').updateMany({\n where: { id: map(prop('id'), usersToEnable) },\n data: { isActive: true },\n });\n\n const remainingDisabledUsers = drop(numberOfUsersToEnable, orderedDisabledUsers);\n\n await strapi.store.set({\n type: 'ee',\n key: 'disabled_users',\n value: remainingDisabledUsers,\n });\n};\n\nconst disableUsersAboveLicenseLimit = async (numberOfUsersToDisable: number) => {\n const currentlyDisabledUsers: any = (await getDisabledUserList()) ?? [];\n\n const usersToDisable = [];\n const nonSuperAdminUsersToDisable = await strapi.db.query('admin::user').findMany({\n where: {\n isActive: true,\n roles: {\n code: { $ne: SUPER_ADMIN_CODE },\n },\n },\n orderBy: { createdAt: 'DESC' },\n limit: numberOfUsersToDisable,\n });\n\n usersToDisable.push(...nonSuperAdminUsersToDisable);\n\n if (nonSuperAdminUsersToDisable.length < numberOfUsersToDisable) {\n const superAdminUsersToDisable = await strapi.db.query('admin::user').findMany({\n where: {\n isActive: true,\n roles: { code: SUPER_ADMIN_CODE },\n },\n orderBy: { createdAt: 'DESC' },\n limit: numberOfUsersToDisable - nonSuperAdminUsersToDisable.length,\n });\n\n usersToDisable.push(...superAdminUsersToDisable);\n }\n\n await strapi.db.query('admin::user').updateMany({\n where: { id: map(prop('id'), usersToDisable) },\n data: { isActive: false },\n });\n\n await strapi.store.set({\n type: 'ee',\n key: 'disabled_users',\n value: currentlyDisabledUsers.concat(map(pick(['id', 'isActive']), usersToDisable)),\n });\n};\n\nconst syncDisabledUserRecords = async () => {\n const disabledUsers = await strapi.store.get({ type: 'ee', key: 'disabled_users' });\n\n if (!disabledUsers) {\n return;\n }\n\n await strapi.db.query('admin::user').updateMany({\n where: { id: map(prop('id'), disabledUsers) },\n data: { isActive: false },\n });\n};\n\nconst seatEnforcementWorkflow = async () => {\n const adminSeats = strapi.ee.seats;\n if (isNil(adminSeats)) {\n return;\n }\n\n // TODO: we need to make sure an admin can decide to disable specific user and reactivate others\n await syncDisabledUserRecords();\n\n const currentActiveUserCount = await getService('user').getCurrentActiveUserCount();\n\n const adminSeatsLeft = adminSeats - currentActiveUserCount;\n\n if (adminSeatsLeft > 0) {\n await enableMaximumUserCount(adminSeatsLeft);\n } else if (adminSeatsLeft < 0) {\n await disableUsersAboveLicenseLimit(-adminSeatsLeft);\n }\n};\n\nexport default {\n seatEnforcementWorkflow,\n getDisabledUserList,\n};\n"],"names":["SUPER_ADMIN_CODE","constants","getDisabledUserList","strapi","store","get","type","key","enableMaximumUserCount","numberOfUsersToEnable","disabledUsers","orderedDisabledUsers","reverse","usersToEnable","take","db","query","updateMany","where","id","map","prop","data","isActive","remainingDisabledUsers","drop","set","value","disableUsersAboveLicenseLimit","numberOfUsersToDisable","currentlyDisabledUsers","usersToDisable","nonSuperAdminUsersToDisable","findMany","roles","code","$ne","orderBy","createdAt","limit","push","length","superAdminUsersToDisable","concat","pick","syncDisabledUserRecords","seatEnforcementWorkflow","adminSeats","ee","seats","isNil","currentActiveUserCount","getService","getCurrentActiveUserCount","adminSeatsLeft"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sources":["../../../../../../ee/server/src/services/user.ts"],"sourcesContent":["import _ from 'lodash';\nimport { pipe, map, castArray, toNumber } from 'lodash/fp';\nimport { arrays, errors } from '@strapi/utils';\nimport { hasSuperAdminRole } from '../../../../server/src/domain/user';\nimport constants from '../../../../server/src/services/constants';\nimport { getService } from '../utils';\n\nconst { ValidationError } = errors;\nconst { SUPER_ADMIN_CODE } = constants;\n\nconst getSessionManager = () => {\n const manager = strapi.sessionManager;\n return manager ?? null;\n};\n\n/** Checks if ee disabled users list needs to be updated\n * @param {string} id\n * @param {object} input\n */\nconst updateEEDisabledUsersList = async (id: string, input: any) => {\n const disabledUsers = await getService('seat-enforcement').getDisabledUserList();\n\n if (!disabledUsers) {\n return;\n }\n\n const user = disabledUsers.find((user: any) => user.id === Number(id));\n if (!user) {\n return;\n }\n\n if (user.isActive !== input.isActive) {\n const newDisabledUsersList = disabledUsers.filter((user: any) => user.id !== Number(id));\n await strapi.store.set({\n type: 'ee',\n key: 'disabled_users',\n value: newDisabledUsersList,\n });\n }\n};\n\nconst castNumberArray = pipe(castArray, map(toNumber));\n\nconst removeFromEEDisabledUsersList = async (ids: unknown) => {\n let idsToCheck: any;\n if (typeof ids === 'object') {\n idsToCheck = castNumberArray(ids);\n } else {\n idsToCheck = [Number(ids)];\n }\n\n const disabledUsers = await getService('seat-enforcement').getDisabledUserList();\n\n if (!disabledUsers) {\n return;\n }\n\n const newDisabledUsersList = disabledUsers.filter((user: any) => !idsToCheck.includes(user.id));\n await strapi.store.set({\n type: 'ee',\n key: 'disabled_users',\n value: newDisabledUsersList,\n });\n};\n\n/**\n * Update a user in database\n * @param id query params to find the user to update\n * @param attributes A partial user object\n * @returns {Promise<user>}\n */\nconst updateById = async (id: any, attributes: any) => {\n // Check at least one super admin remains\n if (_.has(attributes, 'roles')) {\n const lastAdminUser = await isLastSuperAdminUser(id);\n const superAdminRole = await getService('role').getSuperAdminWithUsersCount();\n const willRemoveSuperAdminRole = !arrays.includesString(attributes.roles, superAdminRole.id);\n\n if (lastAdminUser && willRemoveSuperAdminRole) {\n throw new ValidationError('You must have at least one user with super admin role.');\n }\n }\n\n // cannot disable last super admin\n if (attributes.isActive === false) {\n const lastAdminUser = await isLastSuperAdminUser(id);\n if (lastAdminUser) {\n throw new ValidationError('You must have at least one user with super admin role.');\n }\n }\n\n // hash password if a new one is sent\n if (_.has(attributes, 'password')) {\n const hashedPassword = await getService('auth').hashPassword(attributes.password);\n\n const updatedUser = await strapi.db.query('admin::user').update({\n where: { id },\n data: {\n ...attributes,\n password: hashedPassword,\n },\n populate: ['roles'],\n });\n\n strapi.eventHub.emit('user.update', { user: sanitizeUser(updatedUser) });\n\n return updatedUser;\n }\n\n const updatedUser = await strapi.db.query('admin::user').update({\n where: { id },\n data: attributes,\n populate: ['roles'],\n });\n\n await updateEEDisabledUsersList(id, attributes);\n\n if (updatedUser) {\n strapi.eventHub.emit('user.update', { user: sanitizeUser(updatedUser) });\n }\n\n return updatedUser;\n};\n\n/** Delete a user\n * @param id id of the user to delete\n * @returns {Promise<user>}\n */\nconst deleteById = async (id: unknown) => {\n // Check at least one super admin remains\n const userToDelete = await strapi.db.query('admin::user').findOne({\n where: { id },\n populate: ['roles'],\n });\n\n if (!userToDelete) {\n return null;\n }\n\n if (userToDelete) {\n if (userToDelete.roles.some((r: any) => r.code === SUPER_ADMIN_CODE)) {\n const superAdminRole = await getService('role').getSuperAdminWithUsersCount();\n if (superAdminRole.usersCount === 1) {\n throw new ValidationError('You must have at least one user with super admin role.');\n }\n }\n }\n\n const deletedUser = await strapi.db\n .query('admin::user')\n .delete({ where: { id }, populate: ['roles'] });\n\n // Invalidate all sessions for the deleted user\n const sessionManager = getSessionManager();\n if (sessionManager && sessionManager.hasOrigin('admin')) {\n await sessionManager('admin').invalidateRefreshToken(String(id));\n }\n\n await removeFromEEDisabledUsersList(id);\n\n strapi.eventHub.emit('user.delete', { user: sanitizeUser(deletedUser) });\n\n return deletedUser;\n};\n\n/** Delete a user\n * @param ids ids of the users to delete\n * @returns {Promise<user>}\n */\nconst deleteByIds = async (ids: any) => {\n // Check at least one super admin remains\n const superAdminRole = await getService('role').getSuperAdminWithUsersCount();\n const nbOfSuperAdminToDelete = await strapi.db.query('admin::user').count({\n where: {\n id: ids,\n roles: { id: superAdminRole.id },\n },\n });\n\n if (superAdminRole.usersCount === nbOfSuperAdminToDelete) {\n throw new ValidationError('You must have at least one user with super admin role.');\n }\n\n const deletedUsers = [];\n for (const id of ids) {\n const deletedUser = await strapi.db.query('admin::user').delete({\n where: { id },\n populate: ['roles'],\n });\n\n // Invalidate all sessions for the deleted user\n const sessionManager = getSessionManager();\n if (sessionManager && sessionManager.hasOrigin('admin')) {\n await sessionManager('admin').invalidateRefreshToken(String(id));\n }\n\n deletedUsers.push(deletedUser);\n }\n\n await removeFromEEDisabledUsersList(ids);\n\n strapi.eventHub.emit('user.delete', {\n users: deletedUsers.map((deletedUser) => sanitizeUser(deletedUser)),\n });\n\n return deletedUsers;\n};\n\nconst sanitizeUserRoles = (role: unknown) => _.pick(role, ['id', 'name', 'description', 'code']);\n\n/**\n * Check if a user is the last super admin\n * @param {int|string} userId user's id to look for\n */\nconst isLastSuperAdminUser = async (userId: unknown) => {\n const user = (await findOne(userId)) as any;\n const superAdminRole = await getService('role').getSuperAdminWithUsersCount();\n\n return superAdminRole.usersCount === 1 && hasSuperAdminRole(user);\n};\n\n/**\n * Remove private user fields\n * @param {Object} user - user to sanitize\n */\nconst sanitizeUser = (user: any) => {\n return {\n ..._.omit(user, ['password', 'resetPasswordToken', 'registrationToken', 'roles']),\n roles: user.roles && user.roles.map(sanitizeUserRoles),\n };\n};\n\n/**\n * Find one user\n */\nconst findOne = async (id: any, populate = ['roles']) => {\n return strapi.db.query('admin::user').findOne({ where: { id }, populate });\n};\n\nconst getCurrentActiveUserCount = async () => {\n return strapi.db.query('admin::user').count({ where: { isActive: true } });\n};\n\nexport default {\n updateEEDisabledUsersList,\n removeFromEEDisabledUsersList,\n getCurrentActiveUserCount,\n deleteByIds,\n deleteById,\n updateById,\n};\n"],"names":["ValidationError","errors","SUPER_ADMIN_CODE","constants","getSessionManager","manager","strapi","sessionManager","updateEEDisabledUsersList","id","input","disabledUsers","getService","getDisabledUserList","user","find","Number","isActive","newDisabledUsersList","filter","store","set","type","key","value","castNumberArray","pipe","castArray","map","toNumber","removeFromEEDisabledUsersList","ids","idsToCheck","includes","updateById","attributes","_","has","lastAdminUser","isLastSuperAdminUser","superAdminRole","getSuperAdminWithUsersCount","willRemoveSuperAdminRole","arrays","includesString","roles","hashedPassword","hashPassword","password","updatedUser","db","query","update","where","data","populate","eventHub","emit","sanitizeUser","deleteById","userToDelete","findOne","some","r","code","usersCount","deletedUser","delete","hasOrigin","invalidateRefreshToken","String","deleteByIds","nbOfSuperAdminToDelete","count","deletedUsers","push","users","sanitizeUserRoles","role","pick","userId","hasSuperAdminRole","omit","getCurrentActiveUserCount"],"mappings":"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"}
1
+ {"version":3,"file":"user.js","sources":["../../../../../../ee/server/src/services/user.ts"],"sourcesContent":["import _ from 'lodash';\nimport { pipe, map, castArray, toNumber } from 'lodash/fp';\nimport { arrays, errors } from '@strapi/utils';\nimport { hasSuperAdminRole } from '../../../../server/src/domain/user';\nimport constants from '../../../../server/src/services/constants';\nimport { getService } from '../utils';\n\nconst { ValidationError } = errors;\nconst { SUPER_ADMIN_CODE } = constants;\n\nconst getSessionManager = () => {\n const manager = strapi.sessionManager;\n return manager ?? null;\n};\n\n/** Checks if ee disabled users list needs to be updated\n * @param {string} id\n * @param {object} input\n */\nconst updateEEDisabledUsersList = async (id: string, input: any) => {\n const disabledUsers = await getService('seat-enforcement').getDisabledUserList();\n\n if (!disabledUsers) {\n return;\n }\n\n const user = disabledUsers.find((user: any) => user.id === Number(id));\n if (!user) {\n return;\n }\n\n if (user.isActive !== input.isActive) {\n const newDisabledUsersList = disabledUsers.filter((user: any) => user.id !== Number(id));\n await strapi.store.set({\n type: 'ee',\n key: 'disabled_users',\n value: newDisabledUsersList,\n });\n }\n};\n\nconst castNumberArray = pipe(castArray, map(toNumber));\n\nconst removeFromEEDisabledUsersList = async (ids: unknown) => {\n let idsToCheck: any;\n if (typeof ids === 'object') {\n idsToCheck = castNumberArray(ids);\n } else {\n idsToCheck = [Number(ids)];\n }\n\n const disabledUsers = await getService('seat-enforcement').getDisabledUserList();\n\n if (!disabledUsers) {\n return;\n }\n\n const newDisabledUsersList = disabledUsers.filter((user: any) => !idsToCheck.includes(user.id));\n await strapi.store.set({\n type: 'ee',\n key: 'disabled_users',\n value: newDisabledUsersList,\n });\n};\n\n/**\n * Update a user in database\n * @param id query params to find the user to update\n * @param attributes A partial user object\n * @returns {Promise<user>}\n */\nconst updateById = async (id: any, attributes: any) => {\n // Check at least one super admin remains\n if (_.has(attributes, 'roles')) {\n const lastAdminUser = await isLastSuperAdminUser(id);\n const superAdminRole = await getService('role').getSuperAdminWithUsersCount();\n const willRemoveSuperAdminRole = !arrays.includesString(attributes.roles, superAdminRole.id);\n\n if (lastAdminUser && willRemoveSuperAdminRole) {\n throw new ValidationError('You must have at least one user with super admin role.');\n }\n }\n\n // cannot disable last super admin\n if (attributes.isActive === false) {\n const lastAdminUser = await isLastSuperAdminUser(id);\n if (lastAdminUser) {\n throw new ValidationError('You must have at least one user with super admin role.');\n }\n }\n\n // hash password if a new one is sent\n if (_.has(attributes, 'password')) {\n const hashedPassword = await getService('auth').hashPassword(attributes.password);\n\n const updatedUser = await strapi.db.query('admin::user').update({\n where: { id },\n data: {\n ...attributes,\n password: hashedPassword,\n },\n populate: ['roles'],\n });\n\n strapi.eventHub.emit('user.update', { user: sanitizeUser(updatedUser) });\n\n return updatedUser;\n }\n\n const updatedUser = await strapi.db.query('admin::user').update({\n where: { id },\n data: attributes,\n populate: ['roles'],\n });\n\n await updateEEDisabledUsersList(id, attributes);\n\n if (updatedUser) {\n strapi.eventHub.emit('user.update', { user: sanitizeUser(updatedUser) });\n }\n\n return updatedUser;\n};\n\n/** Delete a user\n * @param id id of the user to delete\n * @returns {Promise<user>}\n */\nconst deleteById = async (id: unknown) => {\n // Check at least one super admin remains\n const userToDelete = await strapi.db.query('admin::user').findOne({\n where: { id },\n populate: ['roles'],\n });\n\n if (!userToDelete) {\n return null;\n }\n\n if (userToDelete) {\n if (userToDelete.roles.some((r: any) => r.code === SUPER_ADMIN_CODE)) {\n const superAdminRole = await getService('role').getSuperAdminWithUsersCount();\n if (superAdminRole.usersCount === 1) {\n throw new ValidationError('You must have at least one user with super admin role.');\n }\n }\n }\n\n const deletedUser = await strapi.db\n .query('admin::user')\n .delete({ where: { id }, populate: ['roles'] });\n\n // Invalidate all sessions for the deleted user\n const sessionManager = getSessionManager();\n if (sessionManager && sessionManager.hasOrigin('admin')) {\n await sessionManager('admin').invalidateRefreshToken(String(id));\n }\n\n await removeFromEEDisabledUsersList(id);\n\n strapi.eventHub.emit('user.delete', { user: sanitizeUser(deletedUser) });\n\n return deletedUser;\n};\n\n/** Delete a user\n * @param ids ids of the users to delete\n * @returns {Promise<user>}\n */\nconst deleteByIds = async (ids: any) => {\n // Check at least one super admin remains\n const superAdminRole = await getService('role').getSuperAdminWithUsersCount();\n const nbOfSuperAdminToDelete = await strapi.db.query('admin::user').count({\n where: {\n id: ids,\n roles: { id: superAdminRole.id },\n },\n });\n\n if (superAdminRole.usersCount === nbOfSuperAdminToDelete) {\n throw new ValidationError('You must have at least one user with super admin role.');\n }\n\n const deletedUsers = [];\n for (const id of ids) {\n const deletedUser = await strapi.db.query('admin::user').delete({\n where: { id },\n populate: ['roles'],\n });\n\n // Invalidate all sessions for the deleted user\n const sessionManager = getSessionManager();\n if (sessionManager && sessionManager.hasOrigin('admin')) {\n await sessionManager('admin').invalidateRefreshToken(String(id));\n }\n\n deletedUsers.push(deletedUser);\n }\n\n await removeFromEEDisabledUsersList(ids);\n\n strapi.eventHub.emit('user.delete', {\n users: deletedUsers.map((deletedUser) => sanitizeUser(deletedUser)),\n });\n\n return deletedUsers;\n};\n\nconst sanitizeUserRoles = (role: unknown) => _.pick(role, ['id', 'name', 'description', 'code']);\n\n/**\n * Check if a user is the last super admin\n * @param {int|string} userId user's id to look for\n */\nconst isLastSuperAdminUser = async (userId: unknown) => {\n const user = (await findOne(userId)) as any;\n const superAdminRole = await getService('role').getSuperAdminWithUsersCount();\n\n return superAdminRole.usersCount === 1 && hasSuperAdminRole(user);\n};\n\n/**\n * Remove private user fields\n * @param {Object} user - user to sanitize\n */\nconst sanitizeUser = (user: any) => {\n return {\n ..._.omit(user, ['password', 'resetPasswordToken', 'registrationToken', 'roles']),\n roles: user.roles && user.roles.map(sanitizeUserRoles),\n };\n};\n\n/**\n * Find one user\n */\nconst findOne = async (id: any, populate = ['roles']) => {\n return strapi.db.query('admin::user').findOne({ where: { id }, populate });\n};\n\nconst getCurrentActiveUserCount = async () => {\n return strapi.db.query('admin::user').count({ where: { isActive: true } });\n};\n\nexport default {\n updateEEDisabledUsersList,\n removeFromEEDisabledUsersList,\n getCurrentActiveUserCount,\n deleteByIds,\n deleteById,\n updateById,\n};\n"],"names":["ValidationError","errors","SUPER_ADMIN_CODE","constants","getSessionManager","manager","strapi","sessionManager","updateEEDisabledUsersList","id","input","disabledUsers","getService","getDisabledUserList","user","find","Number","isActive","newDisabledUsersList","filter","store","set","type","key","value","castNumberArray","pipe","castArray","map","toNumber","removeFromEEDisabledUsersList","ids","idsToCheck","includes","updateById","attributes","_","has","lastAdminUser","isLastSuperAdminUser","superAdminRole","getSuperAdminWithUsersCount","willRemoveSuperAdminRole","arrays","includesString","roles","hashedPassword","hashPassword","password","updatedUser","db","query","update","where","data","populate","eventHub","emit","sanitizeUser","deleteById","userToDelete","findOne","some","r","code","usersCount","deletedUser","delete","hasOrigin","invalidateRefreshToken","String","deleteByIds","nbOfSuperAdminToDelete","count","deletedUsers","push","users","sanitizeUserRoles","role","pick","userId","hasSuperAdminRole","omit","getCurrentActiveUserCount"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import ___default from 'lodash';
2
2
  import { pipe, castArray, map, toNumber } from 'lodash/fp';
3
- import { arrays, errors } from '@strapi/utils';
3
+ import { errors, arrays } from '@strapi/utils';
4
4
  import { hasSuperAdminRole } from '../../../../server/src/domain/user.mjs';
5
5
  import constants from '../../../../server/src/services/constants.mjs';
6
6
  import { getService } from '../utils/index.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"user.mjs","sources":["../../../../../../ee/server/src/services/user.ts"],"sourcesContent":["import _ from 'lodash';\nimport { pipe, map, castArray, toNumber } from 'lodash/fp';\nimport { arrays, errors } from '@strapi/utils';\nimport { hasSuperAdminRole } from '../../../../server/src/domain/user';\nimport constants from '../../../../server/src/services/constants';\nimport { getService } from '../utils';\n\nconst { ValidationError } = errors;\nconst { SUPER_ADMIN_CODE } = constants;\n\nconst getSessionManager = () => {\n const manager = strapi.sessionManager;\n return manager ?? null;\n};\n\n/** Checks if ee disabled users list needs to be updated\n * @param {string} id\n * @param {object} input\n */\nconst updateEEDisabledUsersList = async (id: string, input: any) => {\n const disabledUsers = await getService('seat-enforcement').getDisabledUserList();\n\n if (!disabledUsers) {\n return;\n }\n\n const user = disabledUsers.find((user: any) => user.id === Number(id));\n if (!user) {\n return;\n }\n\n if (user.isActive !== input.isActive) {\n const newDisabledUsersList = disabledUsers.filter((user: any) => user.id !== Number(id));\n await strapi.store.set({\n type: 'ee',\n key: 'disabled_users',\n value: newDisabledUsersList,\n });\n }\n};\n\nconst castNumberArray = pipe(castArray, map(toNumber));\n\nconst removeFromEEDisabledUsersList = async (ids: unknown) => {\n let idsToCheck: any;\n if (typeof ids === 'object') {\n idsToCheck = castNumberArray(ids);\n } else {\n idsToCheck = [Number(ids)];\n }\n\n const disabledUsers = await getService('seat-enforcement').getDisabledUserList();\n\n if (!disabledUsers) {\n return;\n }\n\n const newDisabledUsersList = disabledUsers.filter((user: any) => !idsToCheck.includes(user.id));\n await strapi.store.set({\n type: 'ee',\n key: 'disabled_users',\n value: newDisabledUsersList,\n });\n};\n\n/**\n * Update a user in database\n * @param id query params to find the user to update\n * @param attributes A partial user object\n * @returns {Promise<user>}\n */\nconst updateById = async (id: any, attributes: any) => {\n // Check at least one super admin remains\n if (_.has(attributes, 'roles')) {\n const lastAdminUser = await isLastSuperAdminUser(id);\n const superAdminRole = await getService('role').getSuperAdminWithUsersCount();\n const willRemoveSuperAdminRole = !arrays.includesString(attributes.roles, superAdminRole.id);\n\n if (lastAdminUser && willRemoveSuperAdminRole) {\n throw new ValidationError('You must have at least one user with super admin role.');\n }\n }\n\n // cannot disable last super admin\n if (attributes.isActive === false) {\n const lastAdminUser = await isLastSuperAdminUser(id);\n if (lastAdminUser) {\n throw new ValidationError('You must have at least one user with super admin role.');\n }\n }\n\n // hash password if a new one is sent\n if (_.has(attributes, 'password')) {\n const hashedPassword = await getService('auth').hashPassword(attributes.password);\n\n const updatedUser = await strapi.db.query('admin::user').update({\n where: { id },\n data: {\n ...attributes,\n password: hashedPassword,\n },\n populate: ['roles'],\n });\n\n strapi.eventHub.emit('user.update', { user: sanitizeUser(updatedUser) });\n\n return updatedUser;\n }\n\n const updatedUser = await strapi.db.query('admin::user').update({\n where: { id },\n data: attributes,\n populate: ['roles'],\n });\n\n await updateEEDisabledUsersList(id, attributes);\n\n if (updatedUser) {\n strapi.eventHub.emit('user.update', { user: sanitizeUser(updatedUser) });\n }\n\n return updatedUser;\n};\n\n/** Delete a user\n * @param id id of the user to delete\n * @returns {Promise<user>}\n */\nconst deleteById = async (id: unknown) => {\n // Check at least one super admin remains\n const userToDelete = await strapi.db.query('admin::user').findOne({\n where: { id },\n populate: ['roles'],\n });\n\n if (!userToDelete) {\n return null;\n }\n\n if (userToDelete) {\n if (userToDelete.roles.some((r: any) => r.code === SUPER_ADMIN_CODE)) {\n const superAdminRole = await getService('role').getSuperAdminWithUsersCount();\n if (superAdminRole.usersCount === 1) {\n throw new ValidationError('You must have at least one user with super admin role.');\n }\n }\n }\n\n const deletedUser = await strapi.db\n .query('admin::user')\n .delete({ where: { id }, populate: ['roles'] });\n\n // Invalidate all sessions for the deleted user\n const sessionManager = getSessionManager();\n if (sessionManager && sessionManager.hasOrigin('admin')) {\n await sessionManager('admin').invalidateRefreshToken(String(id));\n }\n\n await removeFromEEDisabledUsersList(id);\n\n strapi.eventHub.emit('user.delete', { user: sanitizeUser(deletedUser) });\n\n return deletedUser;\n};\n\n/** Delete a user\n * @param ids ids of the users to delete\n * @returns {Promise<user>}\n */\nconst deleteByIds = async (ids: any) => {\n // Check at least one super admin remains\n const superAdminRole = await getService('role').getSuperAdminWithUsersCount();\n const nbOfSuperAdminToDelete = await strapi.db.query('admin::user').count({\n where: {\n id: ids,\n roles: { id: superAdminRole.id },\n },\n });\n\n if (superAdminRole.usersCount === nbOfSuperAdminToDelete) {\n throw new ValidationError('You must have at least one user with super admin role.');\n }\n\n const deletedUsers = [];\n for (const id of ids) {\n const deletedUser = await strapi.db.query('admin::user').delete({\n where: { id },\n populate: ['roles'],\n });\n\n // Invalidate all sessions for the deleted user\n const sessionManager = getSessionManager();\n if (sessionManager && sessionManager.hasOrigin('admin')) {\n await sessionManager('admin').invalidateRefreshToken(String(id));\n }\n\n deletedUsers.push(deletedUser);\n }\n\n await removeFromEEDisabledUsersList(ids);\n\n strapi.eventHub.emit('user.delete', {\n users: deletedUsers.map((deletedUser) => sanitizeUser(deletedUser)),\n });\n\n return deletedUsers;\n};\n\nconst sanitizeUserRoles = (role: unknown) => _.pick(role, ['id', 'name', 'description', 'code']);\n\n/**\n * Check if a user is the last super admin\n * @param {int|string} userId user's id to look for\n */\nconst isLastSuperAdminUser = async (userId: unknown) => {\n const user = (await findOne(userId)) as any;\n const superAdminRole = await getService('role').getSuperAdminWithUsersCount();\n\n return superAdminRole.usersCount === 1 && hasSuperAdminRole(user);\n};\n\n/**\n * Remove private user fields\n * @param {Object} user - user to sanitize\n */\nconst sanitizeUser = (user: any) => {\n return {\n ..._.omit(user, ['password', 'resetPasswordToken', 'registrationToken', 'roles']),\n roles: user.roles && user.roles.map(sanitizeUserRoles),\n };\n};\n\n/**\n * Find one user\n */\nconst findOne = async (id: any, populate = ['roles']) => {\n return strapi.db.query('admin::user').findOne({ where: { id }, populate });\n};\n\nconst getCurrentActiveUserCount = async () => {\n return strapi.db.query('admin::user').count({ where: { isActive: true } });\n};\n\nexport default {\n updateEEDisabledUsersList,\n removeFromEEDisabledUsersList,\n getCurrentActiveUserCount,\n deleteByIds,\n deleteById,\n updateById,\n};\n"],"names":["ValidationError","errors","SUPER_ADMIN_CODE","constants","getSessionManager","manager","strapi","sessionManager","updateEEDisabledUsersList","id","input","disabledUsers","getService","getDisabledUserList","user","find","Number","isActive","newDisabledUsersList","filter","store","set","type","key","value","castNumberArray","pipe","castArray","map","toNumber","removeFromEEDisabledUsersList","ids","idsToCheck","includes","updateById","attributes","_","has","lastAdminUser","isLastSuperAdminUser","superAdminRole","getSuperAdminWithUsersCount","willRemoveSuperAdminRole","arrays","includesString","roles","hashedPassword","hashPassword","password","updatedUser","db","query","update","where","data","populate","eventHub","emit","sanitizeUser","deleteById","userToDelete","findOne","some","r","code","usersCount","deletedUser","delete","hasOrigin","invalidateRefreshToken","String","deleteByIds","nbOfSuperAdminToDelete","count","deletedUsers","push","users","sanitizeUserRoles","role","pick","userId","hasSuperAdminRole","omit","getCurrentActiveUserCount"],"mappings":"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"}
1
+ {"version":3,"file":"user.mjs","sources":["../../../../../../ee/server/src/services/user.ts"],"sourcesContent":["import _ from 'lodash';\nimport { pipe, map, castArray, toNumber } from 'lodash/fp';\nimport { arrays, errors } from '@strapi/utils';\nimport { hasSuperAdminRole } from '../../../../server/src/domain/user';\nimport constants from '../../../../server/src/services/constants';\nimport { getService } from '../utils';\n\nconst { ValidationError } = errors;\nconst { SUPER_ADMIN_CODE } = constants;\n\nconst getSessionManager = () => {\n const manager = strapi.sessionManager;\n return manager ?? null;\n};\n\n/** Checks if ee disabled users list needs to be updated\n * @param {string} id\n * @param {object} input\n */\nconst updateEEDisabledUsersList = async (id: string, input: any) => {\n const disabledUsers = await getService('seat-enforcement').getDisabledUserList();\n\n if (!disabledUsers) {\n return;\n }\n\n const user = disabledUsers.find((user: any) => user.id === Number(id));\n if (!user) {\n return;\n }\n\n if (user.isActive !== input.isActive) {\n const newDisabledUsersList = disabledUsers.filter((user: any) => user.id !== Number(id));\n await strapi.store.set({\n type: 'ee',\n key: 'disabled_users',\n value: newDisabledUsersList,\n });\n }\n};\n\nconst castNumberArray = pipe(castArray, map(toNumber));\n\nconst removeFromEEDisabledUsersList = async (ids: unknown) => {\n let idsToCheck: any;\n if (typeof ids === 'object') {\n idsToCheck = castNumberArray(ids);\n } else {\n idsToCheck = [Number(ids)];\n }\n\n const disabledUsers = await getService('seat-enforcement').getDisabledUserList();\n\n if (!disabledUsers) {\n return;\n }\n\n const newDisabledUsersList = disabledUsers.filter((user: any) => !idsToCheck.includes(user.id));\n await strapi.store.set({\n type: 'ee',\n key: 'disabled_users',\n value: newDisabledUsersList,\n });\n};\n\n/**\n * Update a user in database\n * @param id query params to find the user to update\n * @param attributes A partial user object\n * @returns {Promise<user>}\n */\nconst updateById = async (id: any, attributes: any) => {\n // Check at least one super admin remains\n if (_.has(attributes, 'roles')) {\n const lastAdminUser = await isLastSuperAdminUser(id);\n const superAdminRole = await getService('role').getSuperAdminWithUsersCount();\n const willRemoveSuperAdminRole = !arrays.includesString(attributes.roles, superAdminRole.id);\n\n if (lastAdminUser && willRemoveSuperAdminRole) {\n throw new ValidationError('You must have at least one user with super admin role.');\n }\n }\n\n // cannot disable last super admin\n if (attributes.isActive === false) {\n const lastAdminUser = await isLastSuperAdminUser(id);\n if (lastAdminUser) {\n throw new ValidationError('You must have at least one user with super admin role.');\n }\n }\n\n // hash password if a new one is sent\n if (_.has(attributes, 'password')) {\n const hashedPassword = await getService('auth').hashPassword(attributes.password);\n\n const updatedUser = await strapi.db.query('admin::user').update({\n where: { id },\n data: {\n ...attributes,\n password: hashedPassword,\n },\n populate: ['roles'],\n });\n\n strapi.eventHub.emit('user.update', { user: sanitizeUser(updatedUser) });\n\n return updatedUser;\n }\n\n const updatedUser = await strapi.db.query('admin::user').update({\n where: { id },\n data: attributes,\n populate: ['roles'],\n });\n\n await updateEEDisabledUsersList(id, attributes);\n\n if (updatedUser) {\n strapi.eventHub.emit('user.update', { user: sanitizeUser(updatedUser) });\n }\n\n return updatedUser;\n};\n\n/** Delete a user\n * @param id id of the user to delete\n * @returns {Promise<user>}\n */\nconst deleteById = async (id: unknown) => {\n // Check at least one super admin remains\n const userToDelete = await strapi.db.query('admin::user').findOne({\n where: { id },\n populate: ['roles'],\n });\n\n if (!userToDelete) {\n return null;\n }\n\n if (userToDelete) {\n if (userToDelete.roles.some((r: any) => r.code === SUPER_ADMIN_CODE)) {\n const superAdminRole = await getService('role').getSuperAdminWithUsersCount();\n if (superAdminRole.usersCount === 1) {\n throw new ValidationError('You must have at least one user with super admin role.');\n }\n }\n }\n\n const deletedUser = await strapi.db\n .query('admin::user')\n .delete({ where: { id }, populate: ['roles'] });\n\n // Invalidate all sessions for the deleted user\n const sessionManager = getSessionManager();\n if (sessionManager && sessionManager.hasOrigin('admin')) {\n await sessionManager('admin').invalidateRefreshToken(String(id));\n }\n\n await removeFromEEDisabledUsersList(id);\n\n strapi.eventHub.emit('user.delete', { user: sanitizeUser(deletedUser) });\n\n return deletedUser;\n};\n\n/** Delete a user\n * @param ids ids of the users to delete\n * @returns {Promise<user>}\n */\nconst deleteByIds = async (ids: any) => {\n // Check at least one super admin remains\n const superAdminRole = await getService('role').getSuperAdminWithUsersCount();\n const nbOfSuperAdminToDelete = await strapi.db.query('admin::user').count({\n where: {\n id: ids,\n roles: { id: superAdminRole.id },\n },\n });\n\n if (superAdminRole.usersCount === nbOfSuperAdminToDelete) {\n throw new ValidationError('You must have at least one user with super admin role.');\n }\n\n const deletedUsers = [];\n for (const id of ids) {\n const deletedUser = await strapi.db.query('admin::user').delete({\n where: { id },\n populate: ['roles'],\n });\n\n // Invalidate all sessions for the deleted user\n const sessionManager = getSessionManager();\n if (sessionManager && sessionManager.hasOrigin('admin')) {\n await sessionManager('admin').invalidateRefreshToken(String(id));\n }\n\n deletedUsers.push(deletedUser);\n }\n\n await removeFromEEDisabledUsersList(ids);\n\n strapi.eventHub.emit('user.delete', {\n users: deletedUsers.map((deletedUser) => sanitizeUser(deletedUser)),\n });\n\n return deletedUsers;\n};\n\nconst sanitizeUserRoles = (role: unknown) => _.pick(role, ['id', 'name', 'description', 'code']);\n\n/**\n * Check if a user is the last super admin\n * @param {int|string} userId user's id to look for\n */\nconst isLastSuperAdminUser = async (userId: unknown) => {\n const user = (await findOne(userId)) as any;\n const superAdminRole = await getService('role').getSuperAdminWithUsersCount();\n\n return superAdminRole.usersCount === 1 && hasSuperAdminRole(user);\n};\n\n/**\n * Remove private user fields\n * @param {Object} user - user to sanitize\n */\nconst sanitizeUser = (user: any) => {\n return {\n ..._.omit(user, ['password', 'resetPasswordToken', 'registrationToken', 'roles']),\n roles: user.roles && user.roles.map(sanitizeUserRoles),\n };\n};\n\n/**\n * Find one user\n */\nconst findOne = async (id: any, populate = ['roles']) => {\n return strapi.db.query('admin::user').findOne({ where: { id }, populate });\n};\n\nconst getCurrentActiveUserCount = async () => {\n return strapi.db.query('admin::user').count({ where: { isActive: true } });\n};\n\nexport default {\n updateEEDisabledUsersList,\n removeFromEEDisabledUsersList,\n getCurrentActiveUserCount,\n deleteByIds,\n deleteById,\n updateById,\n};\n"],"names":["ValidationError","errors","SUPER_ADMIN_CODE","constants","getSessionManager","manager","strapi","sessionManager","updateEEDisabledUsersList","id","input","disabledUsers","getService","getDisabledUserList","user","find","Number","isActive","newDisabledUsersList","filter","store","set","type","key","value","castNumberArray","pipe","castArray","map","toNumber","removeFromEEDisabledUsersList","ids","idsToCheck","includes","updateById","attributes","_","has","lastAdminUser","isLastSuperAdminUser","superAdminRole","getSuperAdminWithUsersCount","willRemoveSuperAdminRole","arrays","includesString","roles","hashedPassword","hashPassword","password","updatedUser","db","query","update","where","data","populate","eventHub","emit","sanitizeUser","deleteById","userToDelete","findOne","some","r","code","usersCount","deletedUser","delete","hasOrigin","invalidateRefreshToken","String","deleteByIds","nbOfSuperAdminToDelete","count","deletedUsers","push","users","sanitizeUserRoles","role","pick","userId","hasSuperAdminRole","omit","getCurrentActiveUserCount"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../ee/server/src/utils/index.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nexport const getService = (\n name: string,\n { strapi }: { strapi: Core.Strapi } = { strapi: global.strapi }\n) => {\n return strapi.service(`admin::${name}`);\n};\n\nexport default {\n getService,\n};\n"],"names":["getService","name","strapi","global","service"],"mappings":";;MAEaA,UAAa,GAAA,CACxBC,MACA,EAAEC,MAAM,EAA2B,GAAG;AAAEA,IAAAA,MAAAA,EAAQC,OAAOD;AAAO,CAAC,GAAA;AAE/D,IAAA,OAAOA,OAAOE,OAAO,CAAC,CAAC,OAAO,EAAEH,IAAM,CAAA,CAAA,CAAA;AACxC;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../ee/server/src/utils/index.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nexport const getService = (\n name: string,\n { strapi }: { strapi: Core.Strapi } = { strapi: global.strapi }\n) => {\n return strapi.service(`admin::${name}`);\n};\n\nexport default {\n getService,\n};\n"],"names":["getService","name","strapi","global","service"],"mappings":";;MAEaA,UAAAA,GAAa,CACxBC,MACA,EAAEC,MAAM,EAA2B,GAAG;AAAEA,IAAAA,MAAAA,EAAQC,OAAOD;AAAO,CAAC,GAAA;AAE/D,IAAA,OAAOA,OAAOE,OAAO,CAAC,CAAC,OAAO,EAAEH,IAAAA,CAAAA,CAAM,CAAA;AACxC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../../ee/server/src/utils/index.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nexport const getService = (\n name: string,\n { strapi }: { strapi: Core.Strapi } = { strapi: global.strapi }\n) => {\n return strapi.service(`admin::${name}`);\n};\n\nexport default {\n getService,\n};\n"],"names":["getService","name","strapi","global","service"],"mappings":"MAEaA,UAAa,GAAA,CACxBC,MACA,EAAEC,MAAM,EAA2B,GAAG;AAAEA,IAAAA,MAAAA,EAAQC,OAAOD;AAAO,CAAC,GAAA;AAE/D,IAAA,OAAOA,OAAOE,OAAO,CAAC,CAAC,OAAO,EAAEH,IAAM,CAAA,CAAA,CAAA;AACxC;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../../ee/server/src/utils/index.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nexport const getService = (\n name: string,\n { strapi }: { strapi: Core.Strapi } = { strapi: global.strapi }\n) => {\n return strapi.service(`admin::${name}`);\n};\n\nexport default {\n getService,\n};\n"],"names":["getService","name","strapi","global","service"],"mappings":"MAEaA,UAAAA,GAAa,CACxBC,MACA,EAAEC,MAAM,EAA2B,GAAG;AAAEA,IAAAA,MAAAA,EAAQC,OAAOD;AAAO,CAAC,GAAA;AAE/D,IAAA,OAAOA,OAAOE,OAAO,CAAC,CAAC,OAAO,EAAEH,IAAAA,CAAAA,CAAM,CAAA;AACxC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"sso-lock.js","sources":["../../../../../../ee/server/src/utils/sso-lock.ts"],"sourcesContent":["import { isEmpty } from 'lodash/fp';\n\nexport const isSsoLocked = async (user: any) => {\n if (!strapi.ee.features.isEnabled('sso')) {\n return false;\n }\n\n if (!user) {\n throw new Error('Missing user object');\n }\n\n // check if any roles are locked\n const adminStore = await strapi.store({ type: 'core', name: 'admin' });\n const { providers } = (await adminStore.get({ key: 'auth' })) as any;\n const lockedRoles = providers.ssoLockedRoles ?? [];\n if (isEmpty(lockedRoles)) {\n return false;\n }\n\n const roles =\n // If the roles are pre-loaded for the given user, then use them\n user.roles ??\n // Otherwise, try to load the role based on the given user ID\n (await strapi.db.query('admin::user').load(user, 'roles', { roles: { fields: ['id'] } })) ??\n // If the query fails somehow, default to an empty array\n [];\n\n // Check if any of the user's roles are in lockedRoles\n const isLocked = lockedRoles.some((lockedId: string) =>\n // lockedRoles will be a string to avoid issues with frontend and bigints\n roles.some((role: any) => lockedId === role.id.toString())\n );\n\n return isLocked;\n};\n\nexport default {\n isSsoLocked,\n};\n"],"names":["isSsoLocked","user","strapi","ee","features","isEnabled","Error","adminStore","store","type","name","providers","get","key","lockedRoles","ssoLockedRoles","isEmpty","roles","db","query","load","fields","isLocked","some","lockedId","role","id","toString"],"mappings":";;;;AAEO,MAAMA,cAAc,OAAOC,IAAAA,GAAAA;IAChC,IAAI,CAACC,OAAOC,EAAE,CAACC,QAAQ,CAACC,SAAS,CAAC,KAAQ,CAAA,EAAA;QACxC,OAAO,KAAA;AACT;AAEA,IAAA,IAAI,CAACJ,IAAM,EAAA;AACT,QAAA,MAAM,IAAIK,KAAM,CAAA,qBAAA,CAAA;AAClB;;AAGA,IAAA,MAAMC,UAAa,GAAA,MAAML,MAAOM,CAAAA,KAAK,CAAC;QAAEC,IAAM,EAAA,MAAA;QAAQC,IAAM,EAAA;AAAQ,KAAA,CAAA;AACpE,IAAA,MAAM,EAAEC,SAAS,EAAE,GAAI,MAAMJ,UAAAA,CAAWK,GAAG,CAAC;QAAEC,GAAK,EAAA;AAAO,KAAA,CAAA;AAC1D,IAAA,MAAMC,WAAcH,GAAAA,SAAAA,CAAUI,cAAc,IAAI,EAAE;AAClD,IAAA,IAAIC,WAAQF,WAAc,CAAA,EAAA;QACxB,OAAO,KAAA;AACT;AAEA,IAAA,MAAMG;IAEJhB,IAAKgB,CAAAA,KAAK;IAET,MAAMf,MAAAA,CAAOgB,EAAE,CAACC,KAAK,CAAC,aAAeC,CAAAA,CAAAA,IAAI,CAACnB,IAAAA,EAAM,OAAS,EAAA;QAAEgB,KAAO,EAAA;YAAEI,MAAQ,EAAA;AAAC,gBAAA;AAAK;AAAC;AAAE,KAAA,CAAA;IAEtF,EAAE;;AAGJ,IAAA,MAAMC,WAAWR,WAAYS,CAAAA,IAAI,CAAC,CAACC;QAEjCP,KAAMM,CAAAA,IAAI,CAAC,CAACE,IAAAA,GAAcD,aAAaC,IAAKC,CAAAA,EAAE,CAACC,QAAQ,EAAA,CAAA,CAAA;IAGzD,OAAOL,QAAAA;AACT;;;;"}
1
+ {"version":3,"file":"sso-lock.js","sources":["../../../../../../ee/server/src/utils/sso-lock.ts"],"sourcesContent":["import { isEmpty } from 'lodash/fp';\n\nexport const isSsoLocked = async (user: any) => {\n if (!strapi.ee.features.isEnabled('sso')) {\n return false;\n }\n\n if (!user) {\n throw new Error('Missing user object');\n }\n\n // check if any roles are locked\n const adminStore = await strapi.store({ type: 'core', name: 'admin' });\n const { providers } = (await adminStore.get({ key: 'auth' })) as any;\n const lockedRoles = providers.ssoLockedRoles ?? [];\n if (isEmpty(lockedRoles)) {\n return false;\n }\n\n const roles =\n // If the roles are pre-loaded for the given user, then use them\n user.roles ??\n // Otherwise, try to load the role based on the given user ID\n (await strapi.db.query('admin::user').load(user, 'roles', { roles: { fields: ['id'] } })) ??\n // If the query fails somehow, default to an empty array\n [];\n\n // Check if any of the user's roles are in lockedRoles\n const isLocked = lockedRoles.some((lockedId: string) =>\n // lockedRoles will be a string to avoid issues with frontend and bigints\n roles.some((role: any) => lockedId === role.id.toString())\n );\n\n return isLocked;\n};\n\nexport default {\n isSsoLocked,\n};\n"],"names":["isSsoLocked","user","strapi","ee","features","isEnabled","Error","adminStore","store","type","name","providers","get","key","lockedRoles","ssoLockedRoles","isEmpty","roles","db","query","load","fields","isLocked","some","lockedId","role","id","toString"],"mappings":";;;;AAEO,MAAMA,cAAc,OAAOC,IAAAA,GAAAA;IAChC,IAAI,CAACC,OAAOC,EAAE,CAACC,QAAQ,CAACC,SAAS,CAAC,KAAA,CAAA,EAAQ;QACxC,OAAO,KAAA;AACT,IAAA;AAEA,IAAA,IAAI,CAACJ,IAAAA,EAAM;AACT,QAAA,MAAM,IAAIK,KAAAA,CAAM,qBAAA,CAAA;AAClB,IAAA;;AAGA,IAAA,MAAMC,UAAAA,GAAa,MAAML,MAAAA,CAAOM,KAAK,CAAC;QAAEC,IAAAA,EAAM,MAAA;QAAQC,IAAAA,EAAM;AAAQ,KAAA,CAAA;AACpE,IAAA,MAAM,EAAEC,SAAS,EAAE,GAAI,MAAMJ,UAAAA,CAAWK,GAAG,CAAC;QAAEC,GAAAA,EAAK;AAAO,KAAA,CAAA;AAC1D,IAAA,MAAMC,WAAAA,GAAcH,SAAAA,CAAUI,cAAc,IAAI,EAAE;AAClD,IAAA,IAAIC,WAAQF,WAAAA,CAAAA,EAAc;QACxB,OAAO,KAAA;AACT,IAAA;AAEA,IAAA,MAAMG;IAEJhB,IAAAA,CAAKgB,KAAK;IAET,MAAMf,MAAAA,CAAOgB,EAAE,CAACC,KAAK,CAAC,aAAA,CAAA,CAAeC,IAAI,CAACnB,IAAAA,EAAM,OAAA,EAAS;QAAEgB,KAAAA,EAAO;YAAEI,MAAAA,EAAQ;AAAC,gBAAA;AAAK;AAAC;AAAE,KAAA,CAAA;IAEtF,EAAE;;AAGJ,IAAA,MAAMC,WAAWR,WAAAA,CAAYS,IAAI,CAAC,CAACC;QAEjCP,KAAAA,CAAMM,IAAI,CAAC,CAACE,IAAAA,GAAcD,aAAaC,IAAAA,CAAKC,EAAE,CAACC,QAAQ,EAAA,CAAA,CAAA;IAGzD,OAAOL,QAAAA;AACT;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"sso-lock.mjs","sources":["../../../../../../ee/server/src/utils/sso-lock.ts"],"sourcesContent":["import { isEmpty } from 'lodash/fp';\n\nexport const isSsoLocked = async (user: any) => {\n if (!strapi.ee.features.isEnabled('sso')) {\n return false;\n }\n\n if (!user) {\n throw new Error('Missing user object');\n }\n\n // check if any roles are locked\n const adminStore = await strapi.store({ type: 'core', name: 'admin' });\n const { providers } = (await adminStore.get({ key: 'auth' })) as any;\n const lockedRoles = providers.ssoLockedRoles ?? [];\n if (isEmpty(lockedRoles)) {\n return false;\n }\n\n const roles =\n // If the roles are pre-loaded for the given user, then use them\n user.roles ??\n // Otherwise, try to load the role based on the given user ID\n (await strapi.db.query('admin::user').load(user, 'roles', { roles: { fields: ['id'] } })) ??\n // If the query fails somehow, default to an empty array\n [];\n\n // Check if any of the user's roles are in lockedRoles\n const isLocked = lockedRoles.some((lockedId: string) =>\n // lockedRoles will be a string to avoid issues with frontend and bigints\n roles.some((role: any) => lockedId === role.id.toString())\n );\n\n return isLocked;\n};\n\nexport default {\n isSsoLocked,\n};\n"],"names":["isSsoLocked","user","strapi","ee","features","isEnabled","Error","adminStore","store","type","name","providers","get","key","lockedRoles","ssoLockedRoles","isEmpty","roles","db","query","load","fields","isLocked","some","lockedId","role","id","toString"],"mappings":";;AAEO,MAAMA,cAAc,OAAOC,IAAAA,GAAAA;IAChC,IAAI,CAACC,OAAOC,EAAE,CAACC,QAAQ,CAACC,SAAS,CAAC,KAAQ,CAAA,EAAA;QACxC,OAAO,KAAA;AACT;AAEA,IAAA,IAAI,CAACJ,IAAM,EAAA;AACT,QAAA,MAAM,IAAIK,KAAM,CAAA,qBAAA,CAAA;AAClB;;AAGA,IAAA,MAAMC,UAAa,GAAA,MAAML,MAAOM,CAAAA,KAAK,CAAC;QAAEC,IAAM,EAAA,MAAA;QAAQC,IAAM,EAAA;AAAQ,KAAA,CAAA;AACpE,IAAA,MAAM,EAAEC,SAAS,EAAE,GAAI,MAAMJ,UAAAA,CAAWK,GAAG,CAAC;QAAEC,GAAK,EAAA;AAAO,KAAA,CAAA;AAC1D,IAAA,MAAMC,WAAcH,GAAAA,SAAAA,CAAUI,cAAc,IAAI,EAAE;AAClD,IAAA,IAAIC,QAAQF,WAAc,CAAA,EAAA;QACxB,OAAO,KAAA;AACT;AAEA,IAAA,MAAMG;IAEJhB,IAAKgB,CAAAA,KAAK;IAET,MAAMf,MAAAA,CAAOgB,EAAE,CAACC,KAAK,CAAC,aAAeC,CAAAA,CAAAA,IAAI,CAACnB,IAAAA,EAAM,OAAS,EAAA;QAAEgB,KAAO,EAAA;YAAEI,MAAQ,EAAA;AAAC,gBAAA;AAAK;AAAC;AAAE,KAAA,CAAA;IAEtF,EAAE;;AAGJ,IAAA,MAAMC,WAAWR,WAAYS,CAAAA,IAAI,CAAC,CAACC;QAEjCP,KAAMM,CAAAA,IAAI,CAAC,CAACE,IAAAA,GAAcD,aAAaC,IAAKC,CAAAA,EAAE,CAACC,QAAQ,EAAA,CAAA,CAAA;IAGzD,OAAOL,QAAAA;AACT;;;;"}
1
+ {"version":3,"file":"sso-lock.mjs","sources":["../../../../../../ee/server/src/utils/sso-lock.ts"],"sourcesContent":["import { isEmpty } from 'lodash/fp';\n\nexport const isSsoLocked = async (user: any) => {\n if (!strapi.ee.features.isEnabled('sso')) {\n return false;\n }\n\n if (!user) {\n throw new Error('Missing user object');\n }\n\n // check if any roles are locked\n const adminStore = await strapi.store({ type: 'core', name: 'admin' });\n const { providers } = (await adminStore.get({ key: 'auth' })) as any;\n const lockedRoles = providers.ssoLockedRoles ?? [];\n if (isEmpty(lockedRoles)) {\n return false;\n }\n\n const roles =\n // If the roles are pre-loaded for the given user, then use them\n user.roles ??\n // Otherwise, try to load the role based on the given user ID\n (await strapi.db.query('admin::user').load(user, 'roles', { roles: { fields: ['id'] } })) ??\n // If the query fails somehow, default to an empty array\n [];\n\n // Check if any of the user's roles are in lockedRoles\n const isLocked = lockedRoles.some((lockedId: string) =>\n // lockedRoles will be a string to avoid issues with frontend and bigints\n roles.some((role: any) => lockedId === role.id.toString())\n );\n\n return isLocked;\n};\n\nexport default {\n isSsoLocked,\n};\n"],"names":["isSsoLocked","user","strapi","ee","features","isEnabled","Error","adminStore","store","type","name","providers","get","key","lockedRoles","ssoLockedRoles","isEmpty","roles","db","query","load","fields","isLocked","some","lockedId","role","id","toString"],"mappings":";;AAEO,MAAMA,cAAc,OAAOC,IAAAA,GAAAA;IAChC,IAAI,CAACC,OAAOC,EAAE,CAACC,QAAQ,CAACC,SAAS,CAAC,KAAA,CAAA,EAAQ;QACxC,OAAO,KAAA;AACT,IAAA;AAEA,IAAA,IAAI,CAACJ,IAAAA,EAAM;AACT,QAAA,MAAM,IAAIK,KAAAA,CAAM,qBAAA,CAAA;AAClB,IAAA;;AAGA,IAAA,MAAMC,UAAAA,GAAa,MAAML,MAAAA,CAAOM,KAAK,CAAC;QAAEC,IAAAA,EAAM,MAAA;QAAQC,IAAAA,EAAM;AAAQ,KAAA,CAAA;AACpE,IAAA,MAAM,EAAEC,SAAS,EAAE,GAAI,MAAMJ,UAAAA,CAAWK,GAAG,CAAC;QAAEC,GAAAA,EAAK;AAAO,KAAA,CAAA;AAC1D,IAAA,MAAMC,WAAAA,GAAcH,SAAAA,CAAUI,cAAc,IAAI,EAAE;AAClD,IAAA,IAAIC,QAAQF,WAAAA,CAAAA,EAAc;QACxB,OAAO,KAAA;AACT,IAAA;AAEA,IAAA,MAAMG;IAEJhB,IAAAA,CAAKgB,KAAK;IAET,MAAMf,MAAAA,CAAOgB,EAAE,CAACC,KAAK,CAAC,aAAA,CAAA,CAAeC,IAAI,CAACnB,IAAAA,EAAM,OAAA,EAAS;QAAEgB,KAAAA,EAAO;YAAEI,MAAAA,EAAQ;AAAC,gBAAA;AAAK;AAAC;AAAE,KAAA,CAAA;IAEtF,EAAE;;AAGJ,IAAA,MAAMC,WAAWR,WAAAA,CAAYS,IAAI,CAAC,CAACC;QAEjCP,KAAAA,CAAMM,IAAI,CAAC,CAACE,IAAAA,GAAcD,aAAaC,IAAAA,CAAKC,EAAE,CAACC,QAAQ,EAAA,CAAA,CAAA;IAGzD,OAAOL,QAAAA;AACT;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"authentication.js","sources":["../../../../../../ee/server/src/validation/authentication.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\n\nconst providerOptionsUpdateSchema = yup.object().shape({\n autoRegister: yup.boolean().required(),\n defaultRole: yup\n .strapiID()\n .when('autoRegister', (value, initSchema) => {\n return value ? initSchema.required() : initSchema.nullable();\n })\n .test('is-valid-role', 'You must submit a valid default role', (roleId) => {\n if (roleId === null) {\n return true;\n }\n return strapi.service('admin::role').exists({ id: roleId });\n }),\n ssoLockedRoles: yup\n .array()\n .nullable()\n .of(\n yup\n .strapiID()\n .test(\n 'is-valid-role',\n 'You must submit a valid role for the SSO Locked roles',\n (roleId) => {\n return strapi.service('admin::role').exists({ id: roleId });\n }\n )\n ),\n});\n\nexport const validateProviderOptionsUpdate = validateYupSchema(providerOptionsUpdateSchema);\n\nexport default {\n validateProviderOptionsUpdate,\n};\n"],"names":["providerOptionsUpdateSchema","yup","object","shape","autoRegister","boolean","required","defaultRole","strapiID","when","value","initSchema","nullable","test","roleId","strapi","service","exists","id","ssoLockedRoles","array","of","validateProviderOptionsUpdate","validateYupSchema"],"mappings":";;;;AAEA,MAAMA,2BAA8BC,GAAAA,SAAAA,CAAIC,MAAM,EAAA,CAAGC,KAAK,CAAC;IACrDC,YAAcH,EAAAA,SAAAA,CAAII,OAAO,EAAA,CAAGC,QAAQ,EAAA;AACpCC,IAAAA,WAAAA,EAAaN,UACVO,QAAQ,EAAA,CACRC,IAAI,CAAC,cAAA,EAAgB,CAACC,KAAOC,EAAAA,UAAAA,GAAAA;AAC5B,QAAA,OAAOD,KAAQC,GAAAA,UAAAA,CAAWL,QAAQ,EAAA,GAAKK,WAAWC,QAAQ,EAAA;AAC5D,KAAA,CAAA,CACCC,IAAI,CAAC,eAAiB,EAAA,sCAAA,EAAwC,CAACC,MAAAA,GAAAA;AAC9D,QAAA,IAAIA,WAAW,IAAM,EAAA;YACnB,OAAO,IAAA;AACT;AACA,QAAA,OAAOC,MAAOC,CAAAA,OAAO,CAAC,aAAA,CAAA,CAAeC,MAAM,CAAC;YAAEC,EAAIJ,EAAAA;AAAO,SAAA,CAAA;AAC3D,KAAA,CAAA;AACFK,IAAAA,cAAAA,EAAgBlB,SACbmB,CAAAA,KAAK,EACLR,CAAAA,QAAQ,GACRS,EAAE,CACDpB,SACGO,CAAAA,QAAQ,EACRK,CAAAA,IAAI,CACH,eAAA,EACA,yDACA,CAACC,MAAAA,GAAAA;AACC,QAAA,OAAOC,MAAOC,CAAAA,OAAO,CAAC,aAAA,CAAA,CAAeC,MAAM,CAAC;YAAEC,EAAIJ,EAAAA;AAAO,SAAA,CAAA;AAC3D,KAAA,CAAA;AAGV,CAAA,CAAA;AAEO,MAAMQ,6BAAgCC,GAAAA,uBAAAA,CAAkBvB,2BAA6B;;;;"}
1
+ {"version":3,"file":"authentication.js","sources":["../../../../../../ee/server/src/validation/authentication.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\n\nconst providerOptionsUpdateSchema = yup.object().shape({\n autoRegister: yup.boolean().required(),\n defaultRole: yup\n .strapiID()\n .when('autoRegister', (value, initSchema) => {\n return value ? initSchema.required() : initSchema.nullable();\n })\n .test('is-valid-role', 'You must submit a valid default role', (roleId) => {\n if (roleId === null) {\n return true;\n }\n return strapi.service('admin::role').exists({ id: roleId });\n }),\n ssoLockedRoles: yup\n .array()\n .nullable()\n .of(\n yup\n .strapiID()\n .test(\n 'is-valid-role',\n 'You must submit a valid role for the SSO Locked roles',\n (roleId) => {\n return strapi.service('admin::role').exists({ id: roleId });\n }\n )\n ),\n});\n\nexport const validateProviderOptionsUpdate = validateYupSchema(providerOptionsUpdateSchema);\n\nexport default {\n validateProviderOptionsUpdate,\n};\n"],"names":["providerOptionsUpdateSchema","yup","object","shape","autoRegister","boolean","required","defaultRole","strapiID","when","value","initSchema","nullable","test","roleId","strapi","service","exists","id","ssoLockedRoles","array","of","validateProviderOptionsUpdate","validateYupSchema"],"mappings":";;;;AAEA,MAAMA,2BAAAA,GAA8BC,SAAAA,CAAIC,MAAM,EAAA,CAAGC,KAAK,CAAC;IACrDC,YAAAA,EAAcH,SAAAA,CAAII,OAAO,EAAA,CAAGC,QAAQ,EAAA;AACpCC,IAAAA,WAAAA,EAAaN,UACVO,QAAQ,EAAA,CACRC,IAAI,CAAC,cAAA,EAAgB,CAACC,KAAAA,EAAOC,UAAAA,GAAAA;AAC5B,QAAA,OAAOD,KAAAA,GAAQC,UAAAA,CAAWL,QAAQ,EAAA,GAAKK,WAAWC,QAAQ,EAAA;AAC5D,IAAA,CAAA,CAAA,CACCC,IAAI,CAAC,eAAA,EAAiB,sCAAA,EAAwC,CAACC,MAAAA,GAAAA;AAC9D,QAAA,IAAIA,WAAW,IAAA,EAAM;YACnB,OAAO,IAAA;AACT,QAAA;AACA,QAAA,OAAOC,MAAAA,CAAOC,OAAO,CAAC,aAAA,CAAA,CAAeC,MAAM,CAAC;YAAEC,EAAAA,EAAIJ;AAAO,SAAA,CAAA;AAC3D,IAAA,CAAA,CAAA;AACFK,IAAAA,cAAAA,EAAgBlB,SAAAA,CACbmB,KAAK,EAAA,CACLR,QAAQ,GACRS,EAAE,CACDpB,SAAAA,CACGO,QAAQ,EAAA,CACRK,IAAI,CACH,eAAA,EACA,yDACA,CAACC,MAAAA,GAAAA;AACC,QAAA,OAAOC,MAAAA,CAAOC,OAAO,CAAC,aAAA,CAAA,CAAeC,MAAM,CAAC;YAAEC,EAAAA,EAAIJ;AAAO,SAAA,CAAA;AAC3D,IAAA,CAAA,CAAA;AAGV,CAAA,CAAA;AAEO,MAAMQ,6BAAAA,GAAgCC,uBAAAA,CAAkBvB,2BAAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"authentication.mjs","sources":["../../../../../../ee/server/src/validation/authentication.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\n\nconst providerOptionsUpdateSchema = yup.object().shape({\n autoRegister: yup.boolean().required(),\n defaultRole: yup\n .strapiID()\n .when('autoRegister', (value, initSchema) => {\n return value ? initSchema.required() : initSchema.nullable();\n })\n .test('is-valid-role', 'You must submit a valid default role', (roleId) => {\n if (roleId === null) {\n return true;\n }\n return strapi.service('admin::role').exists({ id: roleId });\n }),\n ssoLockedRoles: yup\n .array()\n .nullable()\n .of(\n yup\n .strapiID()\n .test(\n 'is-valid-role',\n 'You must submit a valid role for the SSO Locked roles',\n (roleId) => {\n return strapi.service('admin::role').exists({ id: roleId });\n }\n )\n ),\n});\n\nexport const validateProviderOptionsUpdate = validateYupSchema(providerOptionsUpdateSchema);\n\nexport default {\n validateProviderOptionsUpdate,\n};\n"],"names":["providerOptionsUpdateSchema","yup","object","shape","autoRegister","boolean","required","defaultRole","strapiID","when","value","initSchema","nullable","test","roleId","strapi","service","exists","id","ssoLockedRoles","array","of","validateProviderOptionsUpdate","validateYupSchema"],"mappings":";;AAEA,MAAMA,2BAA8BC,GAAAA,GAAAA,CAAIC,MAAM,EAAA,CAAGC,KAAK,CAAC;IACrDC,YAAcH,EAAAA,GAAAA,CAAII,OAAO,EAAA,CAAGC,QAAQ,EAAA;AACpCC,IAAAA,WAAAA,EAAaN,IACVO,QAAQ,EAAA,CACRC,IAAI,CAAC,cAAA,EAAgB,CAACC,KAAOC,EAAAA,UAAAA,GAAAA;AAC5B,QAAA,OAAOD,KAAQC,GAAAA,UAAAA,CAAWL,QAAQ,EAAA,GAAKK,WAAWC,QAAQ,EAAA;AAC5D,KAAA,CAAA,CACCC,IAAI,CAAC,eAAiB,EAAA,sCAAA,EAAwC,CAACC,MAAAA,GAAAA;AAC9D,QAAA,IAAIA,WAAW,IAAM,EAAA;YACnB,OAAO,IAAA;AACT;AACA,QAAA,OAAOC,MAAOC,CAAAA,OAAO,CAAC,aAAA,CAAA,CAAeC,MAAM,CAAC;YAAEC,EAAIJ,EAAAA;AAAO,SAAA,CAAA;AAC3D,KAAA,CAAA;AACFK,IAAAA,cAAAA,EAAgBlB,GACbmB,CAAAA,KAAK,EACLR,CAAAA,QAAQ,GACRS,EAAE,CACDpB,GACGO,CAAAA,QAAQ,EACRK,CAAAA,IAAI,CACH,eAAA,EACA,yDACA,CAACC,MAAAA,GAAAA;AACC,QAAA,OAAOC,MAAOC,CAAAA,OAAO,CAAC,aAAA,CAAA,CAAeC,MAAM,CAAC;YAAEC,EAAIJ,EAAAA;AAAO,SAAA,CAAA;AAC3D,KAAA,CAAA;AAGV,CAAA,CAAA;AAEO,MAAMQ,6BAAgCC,GAAAA,iBAAAA,CAAkBvB,2BAA6B;;;;"}
1
+ {"version":3,"file":"authentication.mjs","sources":["../../../../../../ee/server/src/validation/authentication.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\n\nconst providerOptionsUpdateSchema = yup.object().shape({\n autoRegister: yup.boolean().required(),\n defaultRole: yup\n .strapiID()\n .when('autoRegister', (value, initSchema) => {\n return value ? initSchema.required() : initSchema.nullable();\n })\n .test('is-valid-role', 'You must submit a valid default role', (roleId) => {\n if (roleId === null) {\n return true;\n }\n return strapi.service('admin::role').exists({ id: roleId });\n }),\n ssoLockedRoles: yup\n .array()\n .nullable()\n .of(\n yup\n .strapiID()\n .test(\n 'is-valid-role',\n 'You must submit a valid role for the SSO Locked roles',\n (roleId) => {\n return strapi.service('admin::role').exists({ id: roleId });\n }\n )\n ),\n});\n\nexport const validateProviderOptionsUpdate = validateYupSchema(providerOptionsUpdateSchema);\n\nexport default {\n validateProviderOptionsUpdate,\n};\n"],"names":["providerOptionsUpdateSchema","yup","object","shape","autoRegister","boolean","required","defaultRole","strapiID","when","value","initSchema","nullable","test","roleId","strapi","service","exists","id","ssoLockedRoles","array","of","validateProviderOptionsUpdate","validateYupSchema"],"mappings":";;AAEA,MAAMA,2BAAAA,GAA8BC,GAAAA,CAAIC,MAAM,EAAA,CAAGC,KAAK,CAAC;IACrDC,YAAAA,EAAcH,GAAAA,CAAII,OAAO,EAAA,CAAGC,QAAQ,EAAA;AACpCC,IAAAA,WAAAA,EAAaN,IACVO,QAAQ,EAAA,CACRC,IAAI,CAAC,cAAA,EAAgB,CAACC,KAAAA,EAAOC,UAAAA,GAAAA;AAC5B,QAAA,OAAOD,KAAAA,GAAQC,UAAAA,CAAWL,QAAQ,EAAA,GAAKK,WAAWC,QAAQ,EAAA;AAC5D,IAAA,CAAA,CAAA,CACCC,IAAI,CAAC,eAAA,EAAiB,sCAAA,EAAwC,CAACC,MAAAA,GAAAA;AAC9D,QAAA,IAAIA,WAAW,IAAA,EAAM;YACnB,OAAO,IAAA;AACT,QAAA;AACA,QAAA,OAAOC,MAAAA,CAAOC,OAAO,CAAC,aAAA,CAAA,CAAeC,MAAM,CAAC;YAAEC,EAAAA,EAAIJ;AAAO,SAAA,CAAA;AAC3D,IAAA,CAAA,CAAA;AACFK,IAAAA,cAAAA,EAAgBlB,GAAAA,CACbmB,KAAK,EAAA,CACLR,QAAQ,GACRS,EAAE,CACDpB,GAAAA,CACGO,QAAQ,EAAA,CACRK,IAAI,CACH,eAAA,EACA,yDACA,CAACC,MAAAA,GAAAA;AACC,QAAA,OAAOC,MAAAA,CAAOC,OAAO,CAAC,aAAA,CAAA,CAAeC,MAAM,CAAC;YAAEC,EAAAA,EAAIJ;AAAO,SAAA,CAAA;AAC3D,IAAA,CAAA,CAAA;AAGV,CAAA,CAAA;AAEO,MAAMQ,6BAAAA,GAAgCC,iBAAAA,CAAkBvB,2BAAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"role.js","sources":["../../../../../../ee/server/src/validation/role.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\n\nconst roleCreateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).required(),\n description: yup.string().nullable(),\n })\n .noUnknown();\n\nconst rolesDeleteSchema = yup\n .object()\n .shape({\n ids: yup\n .array()\n .of(yup.strapiID())\n .min(1)\n .required()\n .test(\n 'roles-deletion-checks',\n 'Roles deletion checks have failed',\n async function rolesDeletionChecks(ids) {\n try {\n await strapi.service('admin::role').checkRolesIdForDeletion(ids);\n\n if (strapi.ee.features.isEnabled('sso')) {\n await strapi.service('admin::role').ssoCheckRolesIdForDeletion(ids);\n }\n } catch (e: any) {\n return this.createError({ path: 'ids', message: e.message });\n }\n\n return true;\n }\n ),\n })\n .noUnknown();\n\nconst roleDeleteSchema = yup\n .strapiID()\n .required()\n .test(\n 'no-admin-single-delete',\n 'Role deletion checks have failed',\n async function noAdminSingleDelete(id) {\n try {\n await strapi.service('admin::role').checkRolesIdForDeletion([id]);\n\n if (strapi.ee.features.isEnabled('sso')) {\n await strapi.service('admin::role').ssoCheckRolesIdForDeletion([id]);\n }\n } catch (e: any) {\n return this.createError({ path: 'id', message: e.message });\n }\n\n return true;\n }\n );\n\nexport const validateRoleCreateInput = validateYupSchema(roleCreateSchema);\nexport const validateRolesDeleteInput = validateYupSchema(rolesDeleteSchema);\nexport const validateRoleDeleteInput = validateYupSchema(roleDeleteSchema);\n\nexport default {\n validateRoleCreateInput,\n validateRolesDeleteInput,\n validateRoleDeleteInput,\n};\n"],"names":["roleCreateSchema","yup","object","shape","name","string","min","required","description","nullable","noUnknown","rolesDeleteSchema","ids","array","of","strapiID","test","rolesDeletionChecks","strapi","service","checkRolesIdForDeletion","ee","features","isEnabled","ssoCheckRolesIdForDeletion","e","createError","path","message","roleDeleteSchema","noAdminSingleDelete","id","validateRoleCreateInput","validateYupSchema","validateRolesDeleteInput","validateRoleDeleteInput"],"mappings":";;;;AAEA,MAAMA,gBAAmBC,GAAAA,SAAAA,CACtBC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLC,IAAAA,IAAAA,EAAMH,UAAII,MAAM,EAAA,CAAGC,GAAG,CAAC,GAAGC,QAAQ,EAAA;IAClCC,WAAaP,EAAAA,SAAAA,CAAII,MAAM,EAAA,CAAGI,QAAQ;AACpC,CAAA,CAAA,CACCC,SAAS,EAAA;AAEZ,MAAMC,iBAAoBV,GAAAA,SAAAA,CACvBC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLS,IAAAA,GAAAA,EAAKX,UACFY,KAAK,EAAA,CACLC,EAAE,CAACb,SAAAA,CAAIc,QAAQ,EACfT,CAAAA,CAAAA,GAAG,CAAC,CACJC,CAAAA,CAAAA,QAAQ,GACRS,IAAI,CACH,yBACA,mCACA,EAAA,eAAeC,oBAAoBL,GAAG,EAAA;QACpC,IAAI;AACF,YAAA,MAAMM,MAAOC,CAAAA,OAAO,CAAC,aAAA,CAAA,CAAeC,uBAAuB,CAACR,GAAAA,CAAAA;AAE5D,YAAA,IAAIM,OAAOG,EAAE,CAACC,QAAQ,CAACC,SAAS,CAAC,KAAQ,CAAA,EAAA;AACvC,gBAAA,MAAML,MAAOC,CAAAA,OAAO,CAAC,aAAA,CAAA,CAAeK,0BAA0B,CAACZ,GAAAA,CAAAA;AACjE;AACF,SAAA,CAAE,OAAOa,CAAQ,EAAA;YACf,OAAO,IAAI,CAACC,WAAW,CAAC;gBAAEC,IAAM,EAAA,KAAA;AAAOC,gBAAAA,OAAAA,EAASH,EAAEG;AAAQ,aAAA,CAAA;AAC5D;QAEA,OAAO,IAAA;AACT,KAAA;AAEN,CAAA,CAAA,CACClB,SAAS,EAAA;AAEZ,MAAMmB,gBAAmB5B,GAAAA,SAAAA,CACtBc,QAAQ,EAAA,CACRR,QAAQ,EAAA,CACRS,IAAI,CACH,wBACA,EAAA,kCAAA,EACA,eAAec,mBAAAA,CAAoBC,EAAE,EAAA;IACnC,IAAI;AACF,QAAA,MAAMb,MAAOC,CAAAA,OAAO,CAAC,aAAA,CAAA,CAAeC,uBAAuB,CAAC;AAACW,YAAAA;AAAG,SAAA,CAAA;AAEhE,QAAA,IAAIb,OAAOG,EAAE,CAACC,QAAQ,CAACC,SAAS,CAAC,KAAQ,CAAA,EAAA;AACvC,YAAA,MAAML,MAAOC,CAAAA,OAAO,CAAC,aAAA,CAAA,CAAeK,0BAA0B,CAAC;AAACO,gBAAAA;AAAG,aAAA,CAAA;AACrE;AACF,KAAA,CAAE,OAAON,CAAQ,EAAA;QACf,OAAO,IAAI,CAACC,WAAW,CAAC;YAAEC,IAAM,EAAA,IAAA;AAAMC,YAAAA,OAAAA,EAASH,EAAEG;AAAQ,SAAA,CAAA;AAC3D;IAEA,OAAO,IAAA;AACT,CAAA,CAAA;AAGG,MAAMI,uBAA0BC,GAAAA,uBAAAA,CAAkBjC,gBAAkB;AACpE,MAAMkC,wBAA2BD,GAAAA,uBAAAA,CAAkBtB,iBAAmB;AACtE,MAAMwB,uBAA0BF,GAAAA,uBAAAA,CAAkBJ,gBAAkB;;;;;;"}
1
+ {"version":3,"file":"role.js","sources":["../../../../../../ee/server/src/validation/role.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\n\nconst roleCreateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).required(),\n description: yup.string().nullable(),\n })\n .noUnknown();\n\nconst rolesDeleteSchema = yup\n .object()\n .shape({\n ids: yup\n .array()\n .of(yup.strapiID())\n .min(1)\n .required()\n .test(\n 'roles-deletion-checks',\n 'Roles deletion checks have failed',\n async function rolesDeletionChecks(ids) {\n try {\n await strapi.service('admin::role').checkRolesIdForDeletion(ids);\n\n if (strapi.ee.features.isEnabled('sso')) {\n await strapi.service('admin::role').ssoCheckRolesIdForDeletion(ids);\n }\n } catch (e: any) {\n return this.createError({ path: 'ids', message: e.message });\n }\n\n return true;\n }\n ),\n })\n .noUnknown();\n\nconst roleDeleteSchema = yup\n .strapiID()\n .required()\n .test(\n 'no-admin-single-delete',\n 'Role deletion checks have failed',\n async function noAdminSingleDelete(id) {\n try {\n await strapi.service('admin::role').checkRolesIdForDeletion([id]);\n\n if (strapi.ee.features.isEnabled('sso')) {\n await strapi.service('admin::role').ssoCheckRolesIdForDeletion([id]);\n }\n } catch (e: any) {\n return this.createError({ path: 'id', message: e.message });\n }\n\n return true;\n }\n );\n\nexport const validateRoleCreateInput = validateYupSchema(roleCreateSchema);\nexport const validateRolesDeleteInput = validateYupSchema(rolesDeleteSchema);\nexport const validateRoleDeleteInput = validateYupSchema(roleDeleteSchema);\n\nexport default {\n validateRoleCreateInput,\n validateRolesDeleteInput,\n validateRoleDeleteInput,\n};\n"],"names":["roleCreateSchema","yup","object","shape","name","string","min","required","description","nullable","noUnknown","rolesDeleteSchema","ids","array","of","strapiID","test","rolesDeletionChecks","strapi","service","checkRolesIdForDeletion","ee","features","isEnabled","ssoCheckRolesIdForDeletion","e","createError","path","message","roleDeleteSchema","noAdminSingleDelete","id","validateRoleCreateInput","validateYupSchema","validateRolesDeleteInput","validateRoleDeleteInput"],"mappings":";;;;AAEA,MAAMA,gBAAAA,GAAmBC,SAAAA,CACtBC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLC,IAAAA,IAAAA,EAAMH,UAAII,MAAM,EAAA,CAAGC,GAAG,CAAC,GAAGC,QAAQ,EAAA;IAClCC,WAAAA,EAAaP,SAAAA,CAAII,MAAM,EAAA,CAAGI,QAAQ;AACpC,CAAA,CAAA,CACCC,SAAS,EAAA;AAEZ,MAAMC,iBAAAA,GAAoBV,SAAAA,CACvBC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLS,IAAAA,GAAAA,EAAKX,UACFY,KAAK,EAAA,CACLC,EAAE,CAACb,SAAAA,CAAIc,QAAQ,EAAA,CAAA,CACfT,GAAG,CAAC,CAAA,CAAA,CACJC,QAAQ,GACRS,IAAI,CACH,yBACA,mCAAA,EACA,eAAeC,oBAAoBL,GAAG,EAAA;QACpC,IAAI;AACF,YAAA,MAAMM,MAAAA,CAAOC,OAAO,CAAC,aAAA,CAAA,CAAeC,uBAAuB,CAACR,GAAAA,CAAAA;AAE5D,YAAA,IAAIM,OAAOG,EAAE,CAACC,QAAQ,CAACC,SAAS,CAAC,KAAA,CAAA,EAAQ;AACvC,gBAAA,MAAML,MAAAA,CAAOC,OAAO,CAAC,aAAA,CAAA,CAAeK,0BAA0B,CAACZ,GAAAA,CAAAA;AACjE,YAAA;AACF,QAAA,CAAA,CAAE,OAAOa,CAAAA,EAAQ;YACf,OAAO,IAAI,CAACC,WAAW,CAAC;gBAAEC,IAAAA,EAAM,KAAA;AAAOC,gBAAAA,OAAAA,EAASH,EAAEG;AAAQ,aAAA,CAAA;AAC5D,QAAA;QAEA,OAAO,IAAA;AACT,IAAA,CAAA;AAEN,CAAA,CAAA,CACClB,SAAS,EAAA;AAEZ,MAAMmB,gBAAAA,GAAmB5B,SAAAA,CACtBc,QAAQ,EAAA,CACRR,QAAQ,EAAA,CACRS,IAAI,CACH,wBAAA,EACA,kCAAA,EACA,eAAec,mBAAAA,CAAoBC,EAAE,EAAA;IACnC,IAAI;AACF,QAAA,MAAMb,MAAAA,CAAOC,OAAO,CAAC,aAAA,CAAA,CAAeC,uBAAuB,CAAC;AAACW,YAAAA;AAAG,SAAA,CAAA;AAEhE,QAAA,IAAIb,OAAOG,EAAE,CAACC,QAAQ,CAACC,SAAS,CAAC,KAAA,CAAA,EAAQ;AACvC,YAAA,MAAML,MAAAA,CAAOC,OAAO,CAAC,aAAA,CAAA,CAAeK,0BAA0B,CAAC;AAACO,gBAAAA;AAAG,aAAA,CAAA;AACrE,QAAA;AACF,IAAA,CAAA,CAAE,OAAON,CAAAA,EAAQ;QACf,OAAO,IAAI,CAACC,WAAW,CAAC;YAAEC,IAAAA,EAAM,IAAA;AAAMC,YAAAA,OAAAA,EAASH,EAAEG;AAAQ,SAAA,CAAA;AAC3D,IAAA;IAEA,OAAO,IAAA;AACT,CAAA,CAAA;AAGG,MAAMI,uBAAAA,GAA0BC,uBAAAA,CAAkBjC,gBAAAA;AAClD,MAAMkC,wBAAAA,GAA2BD,uBAAAA,CAAkBtB,iBAAAA;AACnD,MAAMwB,uBAAAA,GAA0BF,uBAAAA,CAAkBJ,gBAAAA;;;;;;"}