@strapi/admin 5.48.1 → 5.50.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/admin/src/StrapiApp.js +33 -20
- package/dist/admin/admin/src/StrapiApp.js.map +1 -1
- package/dist/admin/admin/src/StrapiApp.mjs +6 -1
- package/dist/admin/admin/src/StrapiApp.mjs.map +1 -1
- package/dist/admin/admin/src/components/ConfirmDialog.js +3 -2
- package/dist/admin/admin/src/components/ConfirmDialog.js.map +1 -1
- package/dist/admin/admin/src/components/Context.js +4 -3
- package/dist/admin/admin/src/components/Context.js.map +1 -1
- package/dist/admin/admin/src/components/DescriptionComponentRenderer.js +8 -4
- package/dist/admin/admin/src/components/DescriptionComponentRenderer.js.map +1 -1
- package/dist/admin/admin/src/components/ErrorElement.js +97 -2
- package/dist/admin/admin/src/components/ErrorElement.js.map +1 -1
- package/dist/admin/admin/src/components/ErrorElement.mjs +99 -4
- package/dist/admin/admin/src/components/ErrorElement.mjs.map +1 -1
- package/dist/admin/admin/src/components/Filters.js +3 -2
- package/dist/admin/admin/src/components/Filters.js.map +1 -1
- package/dist/admin/admin/src/components/Form.js +9 -5
- package/dist/admin/admin/src/components/Form.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Boolean.js +3 -2
- package/dist/admin/admin/src/components/FormInputs/Boolean.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Boolean.mjs +3 -2
- package/dist/admin/admin/src/components/FormInputs/Boolean.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Date.js +3 -2
- package/dist/admin/admin/src/components/FormInputs/Date.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Json.js +3 -2
- package/dist/admin/admin/src/components/FormInputs/Json.js.map +1 -1
- package/dist/admin/admin/src/components/GapDropZone.js +3 -2
- package/dist/admin/admin/src/components/GapDropZone.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Context.js +3 -2
- package/dist/admin/admin/src/components/GuidedTour/Context.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js +3 -2
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Tours.js +9 -3
- package/dist/admin/admin/src/components/GuidedTour/Tours.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Tours.mjs +6 -1
- package/dist/admin/admin/src/components/GuidedTour/Tours.mjs.map +1 -1
- package/dist/admin/admin/src/components/LanguageProvider.js +5 -1
- package/dist/admin/admin/src/components/LanguageProvider.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.js +3 -2
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.js.map +1 -1
- package/dist/admin/admin/src/components/LazyOutlet.js +57 -0
- package/dist/admin/admin/src/components/LazyOutlet.js.map +1 -0
- package/dist/admin/admin/src/components/LazyOutlet.mjs +35 -0
- package/dist/admin/admin/src/components/LazyOutlet.mjs.map +1 -0
- package/dist/admin/admin/src/components/LeftMenu.js +3 -2
- package/dist/admin/admin/src/components/LeftMenu.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavUser.js +10 -0
- package/dist/admin/admin/src/components/MainNav/NavUser.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavUser.mjs +10 -0
- package/dist/admin/admin/src/components/MainNav/NavUser.mjs.map +1 -1
- package/dist/admin/admin/src/components/NpsSurvey.js +4 -3
- package/dist/admin/admin/src/components/NpsSurvey.js.map +1 -1
- package/dist/admin/admin/src/components/PageHelpers.js +3 -2
- package/dist/admin/admin/src/components/PageHelpers.js.map +1 -1
- package/dist/admin/admin/src/components/Pagination.js +3 -2
- package/dist/admin/admin/src/components/Pagination.js.map +1 -1
- package/dist/admin/admin/src/components/PluginsInitializer.js +3 -2
- package/dist/admin/admin/src/components/PluginsInitializer.js.map +1 -1
- package/dist/admin/admin/src/components/RelativeTime.js +6 -4
- package/dist/admin/admin/src/components/RelativeTime.js.map +1 -1
- package/dist/admin/admin/src/components/RelativeTime.mjs +3 -2
- package/dist/admin/admin/src/components/RelativeTime.mjs.map +1 -1
- package/dist/admin/admin/src/components/ResizeIndicator.js +3 -2
- package/dist/admin/admin/src/components/ResizeIndicator.js.map +1 -1
- package/dist/admin/admin/src/components/SearchInput.js +3 -2
- package/dist/admin/admin/src/components/SearchInput.js.map +1 -1
- package/dist/admin/admin/src/components/Table.js +3 -2
- package/dist/admin/admin/src/components/Table.js.map +1 -1
- package/dist/admin/admin/src/components/Theme.js +3 -2
- package/dist/admin/admin/src/components/Theme.js.map +1 -1
- package/dist/admin/admin/src/components/WidgetRoot.js +9 -5
- package/dist/admin/admin/src/components/WidgetRoot.js.map +1 -1
- package/dist/admin/admin/src/core/apis/CustomFields.js +14 -10
- package/dist/admin/admin/src/core/apis/CustomFields.js.map +1 -1
- package/dist/admin/admin/src/core/apis/Widgets.js +8 -4
- package/dist/admin/admin/src/core/apis/Widgets.js.map +1 -1
- package/dist/admin/admin/src/core/apis/router.js +39 -33
- package/dist/admin/admin/src/core/apis/router.js.map +1 -1
- package/dist/admin/admin/src/core/apis/router.mjs +19 -17
- package/dist/admin/admin/src/core/apis/router.mjs.map +1 -1
- package/dist/admin/admin/src/features/Auth.js +78 -6
- package/dist/admin/admin/src/features/Auth.js.map +1 -1
- package/dist/admin/admin/src/features/Auth.mjs +77 -6
- package/dist/admin/admin/src/features/Auth.mjs.map +1 -1
- package/dist/admin/admin/src/features/BackButton.js +3 -2
- package/dist/admin/admin/src/features/BackButton.js.map +1 -1
- package/dist/admin/admin/src/features/Configuration.js +3 -2
- package/dist/admin/admin/src/features/Configuration.js.map +1 -1
- package/dist/admin/admin/src/features/Notifications.js +3 -2
- package/dist/admin/admin/src/features/Notifications.js.map +1 -1
- package/dist/admin/admin/src/features/Tracking.js +7 -3
- package/dist/admin/admin/src/features/Tracking.js.map +1 -1
- package/dist/admin/admin/src/features/Widgets.js +3 -2
- package/dist/admin/admin/src/features/Widgets.js.map +1 -1
- package/dist/admin/admin/src/hooks/useAPIErrorHandler.js +3 -2
- package/dist/admin/admin/src/hooks/useAPIErrorHandler.js.map +1 -1
- package/dist/admin/admin/src/hooks/useAdminRoles.js +3 -2
- package/dist/admin/admin/src/hooks/useAdminRoles.js.map +1 -1
- package/dist/admin/admin/src/hooks/useControllableState.js +3 -2
- package/dist/admin/admin/src/hooks/useControllableState.js.map +1 -1
- package/dist/admin/admin/src/hooks/useDebounce.js +3 -2
- package/dist/admin/admin/src/hooks/useDebounce.js.map +1 -1
- package/dist/admin/admin/src/hooks/useDeviceType.js +3 -2
- package/dist/admin/admin/src/hooks/useDeviceType.js.map +1 -1
- package/dist/admin/admin/src/hooks/useElementOnScreen.js +3 -2
- package/dist/admin/admin/src/hooks/useElementOnScreen.js.map +1 -1
- package/dist/admin/admin/src/hooks/useEnterprise.js +3 -2
- package/dist/admin/admin/src/hooks/useEnterprise.js.map +1 -1
- package/dist/admin/admin/src/hooks/useFetchClient.js +3 -2
- package/dist/admin/admin/src/hooks/useFetchClient.js.map +1 -1
- package/dist/admin/admin/src/hooks/useForceUpdate.js +3 -2
- package/dist/admin/admin/src/hooks/useForceUpdate.js.map +1 -1
- package/dist/admin/admin/src/hooks/useIdleSessionLogout.js +85 -15
- package/dist/admin/admin/src/hooks/useIdleSessionLogout.js.map +1 -1
- package/dist/admin/admin/src/hooks/useIdleSessionLogout.mjs +82 -14
- package/dist/admin/admin/src/hooks/useIdleSessionLogout.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useIsMounted.js +3 -2
- package/dist/admin/admin/src/hooks/useIsMounted.js.map +1 -1
- package/dist/admin/admin/src/hooks/useMediaQuery.js +3 -2
- package/dist/admin/admin/src/hooks/useMediaQuery.js.map +1 -1
- package/dist/admin/admin/src/hooks/useMenu.js +7 -3
- package/dist/admin/admin/src/hooks/useMenu.js.map +1 -1
- package/dist/admin/admin/src/hooks/useOnce.js +3 -2
- package/dist/admin/admin/src/hooks/useOnce.js.map +1 -1
- package/dist/admin/admin/src/hooks/useQueryParams.js +0 -1
- package/dist/admin/admin/src/hooks/useQueryParams.js.map +1 -1
- package/dist/admin/admin/src/hooks/useQueryParams.mjs +0 -1
- package/dist/admin/admin/src/hooks/useQueryParams.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useRBAC.js +7 -3
- package/dist/admin/admin/src/hooks/useRBAC.js.map +1 -1
- package/dist/admin/admin/src/hooks/useSettingsMenu.js +7 -3
- package/dist/admin/admin/src/hooks/useSettingsMenu.js.map +1 -1
- package/dist/admin/admin/src/hooks/useThrottledCallback.js +5 -1
- package/dist/admin/admin/src/hooks/useThrottledCallback.js.map +1 -1
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.js +15 -7
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.js.map +1 -1
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs +4 -2
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Auth/AuthPage.js +3 -2
- package/dist/admin/admin/src/pages/Auth/AuthPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/AuthPage.mjs +3 -2
- package/dist/admin/admin/src/pages/Auth/AuthPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/ForgotPassword.js +3 -2
- package/dist/admin/admin/src/pages/Auth/components/ForgotPassword.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Login.js +8 -4
- package/dist/admin/admin/src/pages/Auth/components/Login.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Oops.js +3 -2
- package/dist/admin/admin/src/pages/Auth/components/Oops.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.js +9 -5
- package/dist/admin/admin/src/pages/Auth/components/Register.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/ResetPassword.js +4 -3
- package/dist/admin/admin/src/pages/Auth/components/ResetPassword.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.js +3 -2
- package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.js +8 -4
- package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.js +7 -3
- package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.js +7 -3
- package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.js.map +1 -1
- package/dist/admin/admin/src/pages/ProfilePage.js +8 -4
- package/dist/admin/admin/src/pages/ProfilePage.js.map +1 -1
- package/dist/admin/admin/src/pages/SessionsPage.js +318 -0
- package/dist/admin/admin/src/pages/SessionsPage.js.map +1 -0
- package/dist/admin/admin/src/pages/SessionsPage.mjs +296 -0
- package/dist/admin/admin/src/pages/SessionsPage.mjs.map +1 -0
- package/dist/admin/admin/src/pages/Settings/Layout.js +4 -1
- package/dist/admin/admin/src/pages/Settings/Layout.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/Layout.mjs +5 -2
- package/dist/admin/admin/src/pages/Settings/Layout.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js +3 -2
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js +3 -2
- package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/constants.js +3 -2
- package/dist/admin/admin/src/pages/Settings/components/Tokens/constants.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/utils/getDateOfExpiration.js +3 -2
- package/dist/admin/admin/src/pages/Settings/components/Tokens/utils/getDateOfExpiration.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/EditViewPage.js +3 -2
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/EditViewPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/components/AdminPermissions.js +3 -2
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/components/AdminPermissions.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/ListView.js +4 -3
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/ListView.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js +3 -2
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js +7 -2
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js +5 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/reducer.js +6 -2
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/reducer.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js +4 -3
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js +4 -2
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js +7 -3
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.js +3 -2
- package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js +11 -3
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs +7 -0
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js +11 -4
- package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs +7 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.js +3 -2
- package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js +44 -6
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.mjs +34 -0
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.js +3 -2
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.js +13 -7
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js +15 -9
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.js +9 -5
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js +71 -27
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs +38 -2
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js +10 -6
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.js +3 -2
- package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/difference.js +9 -3
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/difference.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.js +26 -4
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.mjs +18 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/layouts.js +6 -2
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/layouts.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/localePermissionValidation.js +59 -0
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/localePermissionValidation.js.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/localePermissionValidation.mjs +52 -0
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/localePermissionValidation.mjs.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateConditionsToFalse.js +8 -3
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateConditionsToFalse.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js +4 -3
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.js +4 -3
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js +9 -5
- package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js +4 -3
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/CreateActionCE.js +3 -2
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/CreateActionCE.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.js +4 -3
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/utils/validation.js +3 -2
- package/dist/admin/admin/src/pages/Settings/pages/Users/utils/validation.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/EditPage.js +3 -2
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/EditPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js +3 -2
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js +3 -2
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js +4 -3
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js.map +1 -1
- package/dist/admin/admin/src/pages/UseCasePage.js +3 -2
- package/dist/admin/admin/src/pages/UseCasePage.js.map +1 -1
- package/dist/admin/admin/src/router.js +9 -0
- package/dist/admin/admin/src/router.js.map +1 -1
- package/dist/admin/admin/src/router.mjs +9 -0
- package/dist/admin/admin/src/router.mjs.map +1 -1
- package/dist/admin/admin/src/services/auth.js +43 -2
- package/dist/admin/admin/src/services/auth.js.map +1 -1
- package/dist/admin/admin/src/services/auth.mjs +41 -3
- package/dist/admin/admin/src/services/auth.mjs.map +1 -1
- package/dist/admin/admin/src/translations/en.json.js +22 -0
- package/dist/admin/admin/src/translations/en.json.js.map +1 -1
- package/dist/admin/admin/src/translations/en.json.mjs +22 -0
- package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/ja.json.js +748 -265
- package/dist/admin/admin/src/translations/ja.json.js.map +1 -1
- package/dist/admin/admin/src/translations/ja.json.mjs +745 -266
- package/dist/admin/admin/src/translations/ja.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/languageNativeNames.js +1 -0
- package/dist/admin/admin/src/translations/languageNativeNames.js.map +1 -1
- package/dist/admin/admin/src/translations/languageNativeNames.mjs +1 -0
- package/dist/admin/admin/src/translations/languageNativeNames.mjs.map +1 -1
- package/dist/admin/admin/src/utils/getFetchClient.js +7 -2
- package/dist/admin/admin/src/utils/getFetchClient.js.map +1 -1
- package/dist/admin/admin/src/utils/locales.js +3 -2
- package/dist/admin/admin/src/utils/locales.js.map +1 -1
- package/dist/admin/admin/src/utils/objects.js +9 -4
- package/dist/admin/admin/src/utils/objects.js.map +1 -1
- package/dist/admin/admin/src/utils/retryDynamicImport.js +85 -0
- package/dist/admin/admin/src/utils/retryDynamicImport.js.map +1 -0
- package/dist/admin/admin/src/utils/retryDynamicImport.mjs +80 -0
- package/dist/admin/admin/src/utils/retryDynamicImport.mjs.map +1 -0
- package/dist/admin/admin/src/utils/rulesEngine.js +5 -1
- package/dist/admin/admin/src/utils/rulesEngine.js.map +1 -1
- package/dist/admin/admin/src/utils/urls.js +5 -1
- package/dist/admin/admin/src/utils/urls.js.map +1 -1
- package/dist/admin/admin/tests/server.js +25 -0
- package/dist/admin/admin/tests/server.js.map +1 -1
- package/dist/admin/admin/tests/server.mjs +25 -0
- package/dist/admin/admin/tests/server.mjs.map +1 -1
- package/dist/admin/admin/tests/utils.js +3 -2
- package/dist/admin/admin/tests/utils.js.map +1 -1
- package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.js +7 -3
- package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.js.map +1 -1
- package/dist/admin/ee/admin/src/hooks/useLicenseLimits.js +3 -2
- package/dist/admin/ee/admin/src/hooks/useLicenseLimits.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthResponse.js +3 -2
- package/dist/admin/ee/admin/src/pages/AuthResponse.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.js +3 -2
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.js +3 -2
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.js +5 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js +3 -2
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.js +7 -3
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.js.map +1 -1
- package/dist/admin/index.js +2 -0
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +1 -0
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/src/StrapiApp.d.ts +11 -5
- package/dist/admin/src/components/FormInputs/Boolean.d.ts +0 -1
- package/dist/admin/src/components/FormInputs/Checkbox.d.ts +0 -1
- package/dist/admin/src/components/FormInputs/DateTime.d.ts +0 -1
- package/dist/admin/src/components/FormInputs/Email.d.ts +0 -1
- package/dist/admin/src/components/FormInputs/Enumeration.d.ts +0 -1
- package/dist/admin/src/components/FormInputs/Number.d.ts +0 -1
- package/dist/admin/src/components/FormInputs/Password.d.ts +0 -1
- package/dist/admin/src/components/FormInputs/Renderer.d.ts +0 -1
- package/dist/admin/src/components/FormInputs/String.d.ts +0 -1
- package/dist/admin/src/components/FormInputs/Textarea.d.ts +0 -1
- package/dist/admin/src/components/FormInputs/Time.d.ts +0 -1
- package/dist/admin/src/components/GuidedTour/GuidedTourProvider.d.ts +0 -1
- package/dist/admin/src/components/LazyOutlet.d.ts +20 -0
- package/dist/admin/src/components/MainNav/MainNav.d.ts +1 -1
- package/dist/admin/src/components/MainNav/NavUser.d.ts +0 -1
- package/dist/admin/src/components/SubNav.d.ts +5 -6
- package/dist/admin/src/core/apis/Plugin.d.ts +1 -1
- package/dist/admin/src/core/apis/Widgets.d.ts +0 -1
- package/dist/admin/src/core/apis/router.d.ts +2 -3
- package/dist/admin/src/core/store/configure.d.ts +2 -2
- package/dist/admin/src/core/utils/createHook.d.ts +4 -4
- package/dist/admin/src/features/AppInfo.d.ts +1 -2
- package/dist/admin/src/features/StrapiApp.d.ts +1 -2
- package/dist/admin/src/hooks/useAPIErrorHandler.d.ts +1 -1
- package/dist/admin/src/hooks/useAdminRoles.d.ts +2 -2
- package/dist/admin/src/hooks/useFetchClient.d.ts +1 -1
- package/dist/admin/src/hooks/useIdleSessionLogout.d.ts +66 -12
- package/dist/admin/src/hooks/usePersistentState.d.ts +0 -1
- package/dist/admin/src/hooks/useQueryParams.d.ts +1 -1
- package/dist/admin/src/hooks/useThrottledCallback.d.ts +0 -1
- package/dist/admin/src/index.d.ts +1 -0
- package/dist/admin/src/layouts/UnauthenticatedLayout.d.ts +2 -2
- package/dist/admin/src/pages/SessionsPage.d.ts +2 -0
- package/dist/admin/src/pages/Settings/pages/Roles/components/CollapseLabel.d.ts +2 -3
- package/dist/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.d.ts +2 -2
- package/dist/admin/src/pages/Settings/pages/Roles/components/HiddenAction.d.ts +0 -1
- package/dist/admin/src/pages/Settings/pages/Roles/components/Permissions.d.ts +2 -0
- package/dist/admin/src/pages/Settings/pages/Roles/utils/forms.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/Roles/utils/localePermissionValidation.d.ts +5 -0
- package/dist/admin/src/pages/Settings/pages/Roles/utils/permissions.d.ts +3 -1
- package/dist/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.d.ts +8 -8
- package/dist/admin/src/reducer.d.ts +1 -1
- package/dist/admin/src/services/admin.d.ts +2 -2
- package/dist/admin/src/services/api.d.ts +1 -1
- package/dist/admin/src/services/apiTokens.d.ts +1 -1
- package/dist/admin/src/services/auth.d.ts +29 -27
- package/dist/admin/src/services/contentApi.d.ts +1 -1
- package/dist/admin/src/services/users.d.ts +7 -7
- package/dist/admin/src/services/webhooks.d.ts +2 -2
- package/dist/admin/src/translations/languageNativeNames.d.ts +1 -0
- package/dist/admin/src/utils/locales.d.ts +0 -1
- package/dist/admin/src/utils/retryDynamicImport.d.ts +19 -0
- package/dist/admin/src/utils/shims.d.ts +1 -1
- package/dist/admin/tests/store.d.ts +4 -4
- package/dist/admin/tests/utils.d.ts +5 -5
- package/dist/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.d.ts +1 -1
- package/dist/ee/admin/src/services/ai.d.ts +2 -2
- package/dist/ee/server/src/audit-logs/services/audit-logs.d.ts +1 -1
- package/dist/ee/server/src/audit-logs/services/audit-logs.d.ts.map +1 -1
- package/dist/ee/server/src/audit-logs/services/lifecycles.d.ts +3 -3
- package/dist/ee/server/src/audit-logs/services/lifecycles.d.ts.map +1 -1
- package/dist/ee/server/src/audit-logs/validation/audit-logs.d.ts +2 -2
- package/dist/ee/server/src/audit-logs/validation/audit-logs.d.ts.map +1 -1
- package/dist/ee/server/src/bootstrap.d.ts.map +1 -1
- package/dist/ee/server/src/controllers/authentication-utils/utils.d.ts +30 -31
- package/dist/ee/server/src/controllers/authentication-utils/utils.d.ts.map +1 -1
- package/dist/ee/server/src/controllers/index.d.ts +1 -2
- package/dist/ee/server/src/controllers/index.d.ts.map +1 -1
- package/dist/ee/server/src/controllers/user.d.ts +1 -1
- package/dist/ee/server/src/destroy.d.ts.map +1 -1
- package/dist/ee/server/src/index.d.ts +2 -3
- package/dist/ee/server/src/index.d.ts.map +1 -1
- package/dist/ee/server/src/register.d.ts.map +1 -1
- package/dist/ee/server/src/routes/utils.d.ts.map +1 -1
- package/dist/ee/server/src/services/auth.d.ts.map +1 -1
- package/dist/ee/server/src/services/index.d.ts +1 -1
- package/dist/ee/server/src/services/metrics.d.ts.map +1 -1
- package/dist/ee/server/src/services/passport/sso.d.ts.map +1 -1
- package/dist/ee/server/src/services/persist-tables.d.ts +1 -1
- package/dist/ee/server/src/services/persist-tables.d.ts.map +1 -1
- package/dist/ee/server/src/services/role.d.ts.map +1 -1
- package/dist/ee/server/src/services/user.d.ts.map +1 -1
- package/dist/ee/server/src/utils/index.d.ts.map +1 -1
- package/dist/ee/server/src/utils/sso-lock.d.ts.map +1 -1
- package/dist/ee/server/src/validation/authentication.d.ts +2 -2
- package/dist/ee/server/src/validation/role.d.ts +6 -6
- package/dist/ee/server/src/validation/role.d.ts.map +1 -1
- package/dist/ee/server/src/validation/user.d.ts.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.js +5 -1
- package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.js.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication.js +5 -1
- package/dist/server/ee/server/src/controllers/authentication.js.map +1 -1
- package/dist/server/ee/server/src/controllers/user.js +6 -2
- package/dist/server/ee/server/src/controllers/user.js.map +1 -1
- package/dist/server/ee/server/src/services/auth.js +5 -1
- package/dist/server/ee/server/src/services/auth.js.map +1 -1
- package/dist/server/ee/server/src/services/user.js +8 -4
- package/dist/server/ee/server/src/services/user.js.map +1 -1
- package/dist/server/index.js +6 -2
- package/dist/server/index.js.map +1 -1
- package/dist/server/server/src/ai/services/ai.js +10 -4
- package/dist/server/server/src/ai/services/ai.js.map +1 -1
- package/dist/server/server/src/content-types/session.js +6 -0
- package/dist/server/server/src/content-types/session.js.map +1 -1
- package/dist/server/server/src/content-types/session.mjs +6 -0
- package/dist/server/server/src/content-types/session.mjs.map +1 -1
- package/dist/server/server/src/controllers/admin.js +9 -4
- package/dist/server/server/src/controllers/admin.js.map +1 -1
- package/dist/server/server/src/controllers/admin.mjs.map +1 -1
- package/dist/server/server/src/controllers/authenticated-session.js +61 -0
- package/dist/server/server/src/controllers/authenticated-session.js.map +1 -0
- package/dist/server/server/src/controllers/authenticated-session.mjs +59 -0
- package/dist/server/server/src/controllers/authenticated-session.mjs.map +1 -0
- package/dist/server/server/src/controllers/authentication.js +18 -6
- package/dist/server/server/src/controllers/authentication.js.map +1 -1
- package/dist/server/server/src/controllers/authentication.mjs +12 -5
- package/dist/server/server/src/controllers/authentication.mjs.map +1 -1
- package/dist/server/server/src/controllers/index.js +2 -0
- package/dist/server/server/src/controllers/index.js.map +1 -1
- package/dist/server/server/src/controllers/index.mjs +2 -0
- package/dist/server/server/src/controllers/index.mjs.map +1 -1
- package/dist/server/server/src/controllers/role.js +2 -4
- package/dist/server/server/src/controllers/role.js.map +1 -1
- package/dist/server/server/src/controllers/role.mjs +2 -4
- package/dist/server/server/src/controllers/role.mjs.map +1 -1
- package/dist/server/server/src/controllers/user.js +3 -2
- package/dist/server/server/src/controllers/user.js.map +1 -1
- package/dist/server/server/src/controllers/webhooks.js +7 -2
- package/dist/server/server/src/controllers/webhooks.js.map +1 -1
- package/dist/server/server/src/middlewares/rateLimit.js +7 -2
- package/dist/server/server/src/middlewares/rateLimit.js.map +1 -1
- package/dist/server/server/src/policies/hasPermissions.js +7 -3
- package/dist/server/server/src/policies/hasPermissions.js.map +1 -1
- package/dist/server/server/src/routes/serve-admin-panel.js +9 -4
- package/dist/server/server/src/routes/serve-admin-panel.js.map +1 -1
- package/dist/server/server/src/routes/serve-admin-panel.mjs +1 -1
- package/dist/server/server/src/routes/serve-admin-panel.mjs.map +1 -1
- package/dist/server/server/src/routes/users.js +12 -26
- package/dist/server/server/src/routes/users.js.map +1 -1
- package/dist/server/server/src/routes/users.mjs +12 -26
- package/dist/server/server/src/routes/users.mjs.map +1 -1
- package/dist/server/server/src/services/api-token.js +7 -3
- package/dist/server/server/src/services/api-token.js.map +1 -1
- package/dist/server/server/src/services/auth.js +8 -3
- package/dist/server/server/src/services/auth.js.map +1 -1
- package/dist/server/server/src/services/content-type.js +6 -2
- package/dist/server/server/src/services/content-type.js.map +1 -1
- package/dist/server/server/src/services/encryption.js +8 -4
- package/dist/server/server/src/services/encryption.js.map +1 -1
- package/dist/server/server/src/services/passport.js +6 -2
- package/dist/server/server/src/services/passport.js.map +1 -1
- package/dist/server/server/src/services/permission/engine.js +5 -1
- package/dist/server/server/src/services/permission/engine.js.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/index.js +5 -1
- package/dist/server/server/src/services/permission/permissions-manager/index.js.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/query-builders.js +14 -10
- package/dist/server/server/src/services/permission/permissions-manager/query-builders.js.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/sanitize.js +0 -2
- package/dist/server/server/src/services/permission/permissions-manager/sanitize.js.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/sanitize.mjs +0 -2
- package/dist/server/server/src/services/permission/permissions-manager/sanitize.mjs.map +1 -1
- package/dist/server/server/src/services/permission/queries.js +5 -1
- package/dist/server/server/src/services/permission/queries.js.map +1 -1
- package/dist/server/server/src/services/project-settings.js +6 -2
- package/dist/server/server/src/services/project-settings.js.map +1 -1
- package/dist/server/server/src/services/role.js +10 -5
- package/dist/server/server/src/services/role.js.map +1 -1
- package/dist/server/server/src/services/role.mjs +2 -1
- package/dist/server/server/src/services/role.mjs.map +1 -1
- package/dist/server/server/src/services/token.js +7 -2
- package/dist/server/server/src/services/token.js.map +1 -1
- package/dist/server/server/src/services/transfer/permission.js +5 -1
- package/dist/server/server/src/services/transfer/permission.js.map +1 -1
- package/dist/server/server/src/services/transfer/token.js +10 -5
- package/dist/server/server/src/services/transfer/token.js.map +1 -1
- package/dist/server/server/src/services/user.js +10 -6
- package/dist/server/server/src/services/user.js.map +1 -1
- package/dist/server/server/src/strategies/admin.js +4 -0
- package/dist/server/server/src/strategies/admin.js.map +1 -1
- package/dist/server/server/src/strategies/admin.mjs +4 -0
- package/dist/server/server/src/strategies/admin.mjs.map +1 -1
- package/dist/server/server/src/validation/common-functions/check-fields-are-correctly-nested.js +5 -1
- package/dist/server/server/src/validation/common-functions/check-fields-are-correctly-nested.js.map +1 -1
- package/dist/server/server/src/validation/common-functions/check-fields-dont-have-duplicates.js +6 -2
- package/dist/server/server/src/validation/common-functions/check-fields-dont-have-duplicates.js.map +1 -1
- package/dist/server/server/src/validation/common-validators.js +6 -2
- package/dist/server/server/src/validation/common-validators.js.map +1 -1
- package/dist/server/server/src/validation/policies/hasPermissions.js +6 -2
- package/dist/server/server/src/validation/policies/hasPermissions.js.map +1 -1
- package/dist/server/shared/utils/session-auth.js +5 -1
- package/dist/server/shared/utils/session-auth.js.map +1 -1
- package/dist/server/src/ai/controllers/ai.d.ts +3 -3
- package/dist/server/src/ai/services/ai.d.ts.map +1 -1
- package/dist/server/src/bootstrap.d.ts.map +1 -1
- package/dist/server/src/config/admin-conditions.d.ts +2 -2
- package/dist/server/src/config/admin-conditions.d.ts.map +1 -1
- package/dist/server/src/content-types/index.d.ts +6 -0
- package/dist/server/src/content-types/index.d.ts.map +1 -1
- package/dist/server/src/content-types/session.d.ts +6 -0
- package/dist/server/src/content-types/session.d.ts.map +1 -1
- package/dist/server/src/controllers/admin-token.d.ts +5 -5
- package/dist/server/src/controllers/api-token.d.ts +1 -1
- package/dist/server/src/controllers/authenticated-session.d.ts +8 -0
- package/dist/server/src/controllers/authenticated-session.d.ts.map +1 -0
- package/dist/server/src/controllers/authenticated-user.d.ts +1 -1
- package/dist/server/src/controllers/authentication.d.ts +4 -4
- package/dist/server/src/controllers/authentication.d.ts.map +1 -1
- package/dist/server/src/controllers/formatters/conditions.d.ts +0 -1
- package/dist/server/src/controllers/formatters/conditions.d.ts.map +1 -1
- package/dist/server/src/controllers/formatters/format-actions-by-sections.d.ts.map +1 -1
- package/dist/server/src/controllers/homepage.d.ts +2 -2
- package/dist/server/src/controllers/homepage.d.ts.map +1 -1
- package/dist/server/src/controllers/index.d.ts +33 -43
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/controllers/role.d.ts +4 -4
- package/dist/server/src/controllers/transfer/runner.d.ts +4 -4
- package/dist/server/src/controllers/transfer/runner.d.ts.map +1 -1
- package/dist/server/src/controllers/transfer/token.d.ts +1 -1
- package/dist/server/src/controllers/user.d.ts +2 -2
- package/dist/server/src/controllers/webhooks.d.ts +4 -4
- package/dist/server/src/domain/action/index.d.ts +4 -65
- package/dist/server/src/domain/action/index.d.ts.map +1 -1
- package/dist/server/src/domain/action/provider.d.ts +30 -3
- package/dist/server/src/domain/action/provider.d.ts.map +1 -1
- package/dist/server/src/domain/condition/index.d.ts.map +1 -1
- package/dist/server/src/domain/condition/provider.d.ts +19 -2
- package/dist/server/src/domain/condition/provider.d.ts.map +1 -1
- package/dist/server/src/domain/permission/index.d.ts +0 -1
- package/dist/server/src/domain/permission/index.d.ts.map +1 -1
- package/dist/server/src/domain/user.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +51 -63
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/middlewares/data-transfer.d.ts.map +1 -1
- package/dist/server/src/middlewares/index.d.ts +0 -1
- package/dist/server/src/middlewares/index.d.ts.map +1 -1
- package/dist/server/src/middlewares/rateLimit.d.ts.map +1 -1
- package/dist/server/src/policies/hasPermissions.d.ts.map +1 -1
- package/dist/server/src/policies/index.d.ts.map +1 -1
- package/dist/server/src/policies/isAuthenticatedAdmin.d.ts.map +1 -1
- package/dist/server/src/policies/isTelemetryEnabled.d.ts.map +1 -1
- package/dist/server/src/register.d.ts.map +1 -1
- package/dist/server/src/routes/index.d.ts +0 -1
- package/dist/server/src/routes/index.d.ts.map +1 -1
- package/dist/server/src/routes/serve-admin-panel.d.ts.map +1 -1
- package/dist/server/src/routes/transfer.d.ts +0 -1
- package/dist/server/src/routes/transfer.d.ts.map +1 -1
- package/dist/server/src/routes/users.d.ts.map +1 -1
- package/dist/server/src/services/action.d.ts.map +1 -1
- package/dist/server/src/services/api-token.d.ts +5 -6
- package/dist/server/src/services/api-token.d.ts.map +1 -1
- package/dist/server/src/services/auth.d.ts.map +1 -1
- package/dist/server/src/services/condition.d.ts.map +1 -1
- package/dist/server/src/services/content-type.d.ts.map +1 -1
- package/dist/server/src/services/encryption.d.ts.map +1 -1
- package/dist/server/src/services/homepage.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +12 -21
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/metrics.d.ts.map +1 -1
- package/dist/server/src/services/passport/local-strategy.d.ts.map +1 -1
- package/dist/server/src/services/passport.d.ts +0 -1
- package/dist/server/src/services/passport.d.ts.map +1 -1
- package/dist/server/src/services/permission/engine.d.ts +1 -2
- package/dist/server/src/services/permission/engine.d.ts.map +1 -1
- package/dist/server/src/services/permission/permissions-manager/index.d.ts +5 -5
- package/dist/server/src/services/permission/permissions-manager/index.d.ts.map +1 -1
- package/dist/server/src/services/permission/permissions-manager/permission-fields.d.ts.map +1 -1
- package/dist/server/src/services/permission/permissions-manager/query-builders.d.ts.map +1 -1
- package/dist/server/src/services/permission/permissions-manager/sanitize.d.ts +3 -3
- package/dist/server/src/services/permission/permissions-manager/sanitize.d.ts.map +1 -1
- package/dist/server/src/services/permission/permissions-manager/validate.d.ts.map +1 -1
- package/dist/server/src/services/permission/queries.d.ts.map +1 -1
- package/dist/server/src/services/permission/sections-builder/builder.d.ts +4 -4
- package/dist/server/src/services/permission/sections-builder/builder.d.ts.map +1 -1
- package/dist/server/src/services/permission/sections-builder/handlers.d.ts.map +1 -1
- package/dist/server/src/services/permission/sections-builder/index.d.ts +4 -4
- package/dist/server/src/services/permission/sections-builder/section.d.ts.map +1 -1
- package/dist/server/src/services/permission/sections-builder/utils.d.ts +0 -1
- package/dist/server/src/services/permission/sections-builder/utils.d.ts.map +1 -1
- package/dist/server/src/services/permission.d.ts +13 -38
- package/dist/server/src/services/permission.d.ts.map +1 -1
- package/dist/server/src/services/project-settings.d.ts +2 -4
- package/dist/server/src/services/project-settings.d.ts.map +1 -1
- package/dist/server/src/services/role.d.ts +7 -1
- package/dist/server/src/services/role.d.ts.map +1 -1
- package/dist/server/src/services/token.d.ts +1 -1
- package/dist/server/src/services/token.d.ts.map +1 -1
- package/dist/server/src/services/transfer/token.d.ts +11 -11
- package/dist/server/src/services/transfer/token.d.ts.map +1 -1
- package/dist/server/src/services/user.d.ts +3 -3
- package/dist/server/src/services/user.d.ts.map +1 -1
- package/dist/server/src/strategies/admin-token.d.ts +4 -4
- package/dist/server/src/strategies/admin-token.d.ts.map +1 -1
- package/dist/server/src/strategies/admin.d.ts.map +1 -1
- package/dist/server/src/strategies/api-token-utils.d.ts.map +1 -1
- package/dist/server/src/strategies/content-api-token.d.ts.map +1 -1
- package/dist/server/src/strategies/data-transfer.d.ts.map +1 -1
- package/dist/server/src/utils/normalize-email.d.ts.map +1 -1
- package/dist/server/src/validation/action-provider.d.ts +2 -2
- package/dist/server/src/validation/action-provider.d.ts.map +1 -1
- package/dist/server/src/validation/admin-tokens.d.ts +2 -2
- package/dist/server/src/validation/api-tokens.d.ts +4 -4
- package/dist/server/src/validation/authentication/forgot-password.d.ts +1 -1
- package/dist/server/src/validation/authentication/login.d.ts +1 -1
- package/dist/server/src/validation/authentication/register.d.ts +6 -6
- package/dist/server/src/validation/authentication/register.d.ts.map +1 -1
- package/dist/server/src/validation/authentication/reset-password.d.ts +1 -1
- package/dist/server/src/validation/common-functions/check-fields-are-correctly-nested.d.ts.map +1 -1
- package/dist/server/src/validation/common-functions/check-fields-dont-have-duplicates.d.ts.map +1 -1
- package/dist/server/src/validation/common-validators.d.ts.map +1 -1
- package/dist/server/src/validation/permission.d.ts +6 -6
- package/dist/server/src/validation/permission.d.ts.map +1 -1
- package/dist/server/src/validation/policies/hasPermissions.d.ts +2 -2
- package/dist/server/src/validation/project-settings.d.ts +6 -6
- package/dist/server/src/validation/role.d.ts +8 -8
- package/dist/server/src/validation/role.d.ts.map +1 -1
- package/dist/server/src/validation/transfer/token.d.ts +4 -4
- package/dist/server/src/validation/user.d.ts +8 -8
- package/dist/shared/contracts/permissions.d.ts +1 -0
- package/dist/shared/contracts/permissions.d.ts.map +1 -1
- package/dist/shared/contracts/sessions.d.ts +62 -0
- package/dist/shared/contracts/sessions.d.ts.map +1 -0
- package/dist/shared/contracts/shared.d.ts +1 -1
- package/dist/shared/contracts/shared.d.ts.map +1 -1
- package/dist/shared/utils/session-auth.d.ts +1 -1
- package/dist/shared/utils/session-auth.d.ts.map +1 -1
- package/package.json +11 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRBAC.js","sources":["../../../../../admin/src/hooks/useRBAC.ts"],"sourcesContent":["import * as React from 'react';\n\nimport isEqual from 'lodash/isEqual';\n\nimport { useAuth, Permission } from '../features/Auth';\nimport { once } from '../utils/once';\nimport { capitalise } from '../utils/strings';\n\nimport { usePrev } from './usePrev';\n\ntype AllowedActions = Record<string, boolean>;\n\n/**\n * @public\n * @description This hooks takes an object or array of permissions (the latter preferred) and\n * runs through them to match against the current user's permissions as well as the RBAC middleware\n * system checking any conditions that may be present. It returns the filtered permissions as the complete\n * object from the API and a set of actions that can be performed. An action is derived from the last part\n * of the permission action e.g. `admin::roles.create` would be `canCreate`. If there's a hyphen in the action\n * this is removed and capitalised e.g `admin::roles.create-draft` would be `canCreateDraft`.\n * @example\n * ```tsx\n * import { Page, useRBAC } from '@strapi/strapi/admin'\n *\n * const MyProtectedPage = () => {\n * const { allowedActions, isLoading, error, permissions } = useRBAC([{ action: 'admin::roles.create' }])\n *\n * if(isLoading) {\n * return <Page.Loading />\n * }\n *\n * if(error){\n * return <Page.Error />\n * }\n *\n * if(!allowedActions.canCreate) {\n * return null\n * }\n *\n * return <MyPage permissions={permissions} />\n * }\n * ```\n */\nconst useRBAC = (\n permissionsToCheck: Record<string, Permission[]> | Permission[] = [],\n passedPermissions?: Permission[],\n rawQueryContext?: string\n): {\n allowedActions: AllowedActions;\n isLoading: boolean;\n error?: unknown;\n permissions: Permission[];\n} => {\n const isLoadingAuth = useAuth('useRBAC', (state) => state.isLoading);\n const [isLoading, setIsLoading] = React.useState(true);\n const [error, setError] = React.useState<unknown>();\n const [data, setData] = React.useState<Record<string, boolean>>();\n\n const warnOnce = React.useMemo(() => once(console.warn), []);\n\n const actualPermissionsToCheck: Permission[] = React.useMemo(() => {\n if (Array.isArray(permissionsToCheck)) {\n return permissionsToCheck;\n } else {\n warnOnce(\n 'useRBAC: The first argument should be an array of permissions, not an object. This will be deprecated in the future.'\n );\n\n return Object.values(permissionsToCheck).flat();\n }\n }, [permissionsToCheck, warnOnce]);\n\n /**\n * This is the default value we return until the queryResults[i].data\n * are all resolved with data. This preserves the original behaviour.\n */\n const defaultAllowedActions = React.useMemo(() => {\n return actualPermissionsToCheck.reduce<Record<string, boolean>>((acc, permission) => {\n return {\n ...acc,\n [getActionName(permission)]: false,\n };\n }, {});\n }, [actualPermissionsToCheck]);\n\n const checkUserHasPermissions = useAuth('useRBAC', (state) => state.checkUserHasPermissions);\n\n const permssionsChecked = usePrev(actualPermissionsToCheck);\n const contextChecked = usePrev(rawQueryContext);\n\n React.useEffect(() => {\n if (\n !isEqual(permssionsChecked, actualPermissionsToCheck) ||\n // TODO: also run this when the query context changes\n contextChecked !== rawQueryContext\n ) {\n setIsLoading(true);\n setData(undefined);\n setError(undefined);\n\n checkUserHasPermissions(actualPermissionsToCheck, passedPermissions, rawQueryContext)\n .then((res) => {\n if (res) {\n setData(\n res.reduce<Record<string, boolean>>((acc, permission) => {\n return {\n ...acc,\n [getActionName(permission)]: true,\n };\n }, {})\n );\n }\n })\n .catch((err) => {\n setError(err);\n })\n .finally(() => {\n setIsLoading(false);\n });\n }\n }, [\n actualPermissionsToCheck,\n checkUserHasPermissions,\n passedPermissions,\n permissionsToCheck,\n permssionsChecked,\n contextChecked,\n rawQueryContext,\n ]);\n\n /**\n * This hook originally would not return allowedActions\n * until all the checks were complete.\n */\n const allowedActions = Object.entries({\n ...defaultAllowedActions,\n ...data,\n }).reduce((acc, [name, allowed]) => {\n acc[`can${capitalise(name)}`] = allowed;\n\n return acc;\n }, {} as AllowedActions);\n\n return {\n allowedActions,\n permissions: actualPermissionsToCheck,\n isLoading: isLoading || isLoadingAuth,\n error,\n };\n};\n\nconst getActionName = (permission: Permission): string => {\n const [action = ''] = permission.action.split('.').slice(-1);\n return action.split('-').map(capitalise).join('');\n};\n\nexport { useRBAC };\nexport type { AllowedActions };\n"],"names":["useRBAC","permissionsToCheck","passedPermissions","rawQueryContext","isLoadingAuth","useAuth","state","isLoading","setIsLoading","React","useState","error","setError","data","setData","warnOnce","useMemo","once","console","warn","actualPermissionsToCheck","Array","isArray","Object","values","flat","defaultAllowedActions","reduce","acc","permission","getActionName","checkUserHasPermissions","permssionsChecked","usePrev","contextChecked","useEffect","isEqual","undefined","then","res","catch","err","finally","allowedActions","entries","name","allowed","capitalise","permissions","action","split","slice","map","join"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useRBAC.js","sources":["../../../../../admin/src/hooks/useRBAC.ts"],"sourcesContent":["import * as React from 'react';\n\nimport isEqual from 'lodash/isEqual';\n\nimport { useAuth, Permission } from '../features/Auth';\nimport { once } from '../utils/once';\nimport { capitalise } from '../utils/strings';\n\nimport { usePrev } from './usePrev';\n\ntype AllowedActions = Record<string, boolean>;\n\n/**\n * @public\n * @description This hooks takes an object or array of permissions (the latter preferred) and\n * runs through them to match against the current user's permissions as well as the RBAC middleware\n * system checking any conditions that may be present. It returns the filtered permissions as the complete\n * object from the API and a set of actions that can be performed. An action is derived from the last part\n * of the permission action e.g. `admin::roles.create` would be `canCreate`. If there's a hyphen in the action\n * this is removed and capitalised e.g `admin::roles.create-draft` would be `canCreateDraft`.\n * @example\n * ```tsx\n * import { Page, useRBAC } from '@strapi/strapi/admin'\n *\n * const MyProtectedPage = () => {\n * const { allowedActions, isLoading, error, permissions } = useRBAC([{ action: 'admin::roles.create' }])\n *\n * if(isLoading) {\n * return <Page.Loading />\n * }\n *\n * if(error){\n * return <Page.Error />\n * }\n *\n * if(!allowedActions.canCreate) {\n * return null\n * }\n *\n * return <MyPage permissions={permissions} />\n * }\n * ```\n */\nconst useRBAC = (\n permissionsToCheck: Record<string, Permission[]> | Permission[] = [],\n passedPermissions?: Permission[],\n rawQueryContext?: string\n): {\n allowedActions: AllowedActions;\n isLoading: boolean;\n error?: unknown;\n permissions: Permission[];\n} => {\n const isLoadingAuth = useAuth('useRBAC', (state) => state.isLoading);\n const [isLoading, setIsLoading] = React.useState(true);\n const [error, setError] = React.useState<unknown>();\n const [data, setData] = React.useState<Record<string, boolean>>();\n\n const warnOnce = React.useMemo(() => once(console.warn), []);\n\n const actualPermissionsToCheck: Permission[] = React.useMemo(() => {\n if (Array.isArray(permissionsToCheck)) {\n return permissionsToCheck;\n } else {\n warnOnce(\n 'useRBAC: The first argument should be an array of permissions, not an object. This will be deprecated in the future.'\n );\n\n return Object.values(permissionsToCheck).flat();\n }\n }, [permissionsToCheck, warnOnce]);\n\n /**\n * This is the default value we return until the queryResults[i].data\n * are all resolved with data. This preserves the original behaviour.\n */\n const defaultAllowedActions = React.useMemo(() => {\n return actualPermissionsToCheck.reduce<Record<string, boolean>>((acc, permission) => {\n return {\n ...acc,\n [getActionName(permission)]: false,\n };\n }, {});\n }, [actualPermissionsToCheck]);\n\n const checkUserHasPermissions = useAuth('useRBAC', (state) => state.checkUserHasPermissions);\n\n const permssionsChecked = usePrev(actualPermissionsToCheck);\n const contextChecked = usePrev(rawQueryContext);\n\n React.useEffect(() => {\n if (\n !isEqual(permssionsChecked, actualPermissionsToCheck) ||\n // TODO: also run this when the query context changes\n contextChecked !== rawQueryContext\n ) {\n setIsLoading(true);\n setData(undefined);\n setError(undefined);\n\n checkUserHasPermissions(actualPermissionsToCheck, passedPermissions, rawQueryContext)\n .then((res) => {\n if (res) {\n setData(\n res.reduce<Record<string, boolean>>((acc, permission) => {\n return {\n ...acc,\n [getActionName(permission)]: true,\n };\n }, {})\n );\n }\n })\n .catch((err) => {\n setError(err);\n })\n .finally(() => {\n setIsLoading(false);\n });\n }\n }, [\n actualPermissionsToCheck,\n checkUserHasPermissions,\n passedPermissions,\n permissionsToCheck,\n permssionsChecked,\n contextChecked,\n rawQueryContext,\n ]);\n\n /**\n * This hook originally would not return allowedActions\n * until all the checks were complete.\n */\n const allowedActions = Object.entries({\n ...defaultAllowedActions,\n ...data,\n }).reduce((acc, [name, allowed]) => {\n acc[`can${capitalise(name)}`] = allowed;\n\n return acc;\n }, {} as AllowedActions);\n\n return {\n allowedActions,\n permissions: actualPermissionsToCheck,\n isLoading: isLoading || isLoadingAuth,\n error,\n };\n};\n\nconst getActionName = (permission: Permission): string => {\n const [action = ''] = permission.action.split('.').slice(-1);\n return action.split('-').map(capitalise).join('');\n};\n\nexport { useRBAC };\nexport type { AllowedActions };\n"],"names":["useRBAC","permissionsToCheck","passedPermissions","rawQueryContext","isLoadingAuth","useAuth","state","isLoading","setIsLoading","React","useState","error","setError","data","setData","warnOnce","useMemo","once","console","warn","actualPermissionsToCheck","Array","isArray","Object","values","flat","defaultAllowedActions","reduce","acc","permission","getActionName","checkUserHasPermissions","permssionsChecked","usePrev","contextChecked","useEffect","isEqual","undefined","then","res","catch","err","finally","allowedActions","entries","name","allowed","capitalise","permissions","action","split","slice","map","join"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BC,UACKA,OAAAA,GAAU,CACdC,kBAAAA,GAAkE,EAAE,EACpEC,iBAAAA,EACAC,eAAAA,GAAAA;AAOA,IAAA,MAAMC,gBAAgBC,YAAAA,CAAQ,SAAA,EAAW,CAACC,KAAAA,GAAUA,MAAMC,SAAS,CAAA;AACnE,IAAA,MAAM,CAACA,SAAAA,EAAWC,YAAAA,CAAa,GAAGC,gBAAAA,CAAMC,QAAQ,CAAC,IAAA,CAAA;AACjD,IAAA,MAAM,CAACC,KAAAA,EAAOC,QAAAA,CAAS,GAAGH,iBAAMC,QAAQ,EAAA;AACxC,IAAA,MAAM,CAACG,IAAAA,EAAMC,OAAAA,CAAQ,GAAGL,iBAAMC,QAAQ,EAAA;IAEtC,MAAMK,QAAAA,GAAWN,iBAAMO,OAAO,CAAC,IAAMC,SAAAA,CAAKC,OAAAA,CAAQC,IAAI,CAAA,EAAG,EAAE,CAAA;IAE3D,MAAMC,wBAAAA,GAAyCX,gBAAAA,CAAMO,OAAO,CAAC,IAAA;QAC3D,IAAIK,KAAAA,CAAMC,OAAO,CAACrB,kBAAAA,CAAAA,EAAqB;YACrC,OAAOA,kBAAAA;QACT,CAAA,MAAO;YACLc,QAAAA,CACE,sHAAA,CAAA;AAGF,YAAA,OAAOQ,MAAAA,CAAOC,MAAM,CAACvB,kBAAAA,CAAAA,CAAoBwB,IAAI,EAAA;AAC/C,QAAA;IACF,CAAA,EAAG;AAACxB,QAAAA,kBAAAA;AAAoBc,QAAAA;AAAS,KAAA,CAAA;AAEjC;;;AAGC,MACD,MAAMW,qBAAAA,GAAwBjB,gBAAAA,CAAMO,OAAO,CAAC,IAAA;AAC1C,QAAA,OAAOI,wBAAAA,CAAyBO,MAAM,CAA0B,CAACC,GAAAA,EAAKC,UAAAA,GAAAA;YACpE,OAAO;AACL,gBAAA,GAAGD,GAAG;gBACN,CAACE,aAAAA,CAAcD,cAAc;AAC/B,aAAA;AACF,QAAA,CAAA,EAAG,EAAC,CAAA;IACN,CAAA,EAAG;AAACT,QAAAA;AAAyB,KAAA,CAAA;AAE7B,IAAA,MAAMW,0BAA0B1B,YAAAA,CAAQ,SAAA,EAAW,CAACC,KAAAA,GAAUA,MAAMyB,uBAAuB,CAAA;AAE3F,IAAA,MAAMC,oBAAoBC,eAAAA,CAAQb,wBAAAA,CAAAA;AAClC,IAAA,MAAMc,iBAAiBD,eAAAA,CAAQ9B,eAAAA,CAAAA;AAE/BM,IAAAA,gBAAAA,CAAM0B,SAAS,CAAC,IAAA;AACd,QAAA,IACE,CAACC,wBAAAA,CAAQJ,iBAAAA,EAAmBZ,wBAAAA,CAAAA;AAE5Bc,QAAAA,cAAAA,KAAmB/B,eAAAA,EACnB;YACAK,YAAAA,CAAa,IAAA,CAAA;YACbM,OAAAA,CAAQuB,SAAAA,CAAAA;YACRzB,QAAAA,CAASyB,SAAAA,CAAAA;AAETN,YAAAA,uBAAAA,CAAwBX,wBAAAA,EAA0BlB,iBAAAA,EAAmBC,eAAAA,CAAAA,CAClEmC,IAAI,CAAC,CAACC,GAAAA,GAAAA;AACL,gBAAA,IAAIA,GAAAA,EAAK;AACPzB,oBAAAA,OAAAA,CACEyB,GAAAA,CAAIZ,MAAM,CAA0B,CAACC,GAAAA,EAAKC,UAAAA,GAAAA;wBACxC,OAAO;AACL,4BAAA,GAAGD,GAAG;4BACN,CAACE,aAAAA,CAAcD,cAAc;AAC/B,yBAAA;AACF,oBAAA,CAAA,EAAG,EAAC,CAAA,CAAA;AAER,gBAAA;YACF,CAAA,CAAA,CACCW,KAAK,CAAC,CAACC,GAAAA,GAAAA;gBACN7B,QAAAA,CAAS6B,GAAAA,CAAAA;AACX,YAAA,CAAA,CAAA,CACCC,OAAO,CAAC,IAAA;gBACPlC,YAAAA,CAAa,KAAA,CAAA;AACf,YAAA,CAAA,CAAA;AACJ,QAAA;IACF,CAAA,EAAG;AACDY,QAAAA,wBAAAA;AACAW,QAAAA,uBAAAA;AACA7B,QAAAA,iBAAAA;AACAD,QAAAA,kBAAAA;AACA+B,QAAAA,iBAAAA;AACAE,QAAAA,cAAAA;AACA/B,QAAAA;AACD,KAAA,CAAA;AAED;;;AAGC,MACD,MAAMwC,cAAAA,GAAiBpB,MAAAA,CAAOqB,OAAO,CAAC;AACpC,QAAA,GAAGlB,qBAAqB;AACxB,QAAA,GAAGb;AACL,KAAA,CAAA,CAAGc,MAAM,CAAC,CAACC,GAAAA,EAAK,CAACiB,MAAMC,OAAAA,CAAQ,GAAA;AAC7BlB,QAAAA,GAAG,CAAC,CAAC,GAAG,EAAEmB,kBAAAA,CAAWF,IAAAA,CAAAA,CAAAA,CAAO,CAAC,GAAGC,OAAAA;QAEhC,OAAOlB,GAAAA;AACT,IAAA,CAAA,EAAG,EAAC,CAAA;IAEJ,OAAO;AACLe,QAAAA,cAAAA;QACAK,WAAAA,EAAa5B,wBAAAA;AACbb,QAAAA,SAAAA,EAAWA,SAAAA,IAAaH,aAAAA;AACxBO,QAAAA;AACF,KAAA;AACF;AAEA,MAAMmB,gBAAgB,CAACD,UAAAA,GAAAA;AACrB,IAAA,MAAM,CAACoB,MAAAA,GAAS,EAAE,CAAC,GAAGpB,UAAAA,CAAWoB,MAAM,CAACC,KAAK,CAAC,GAAA,CAAA,CAAKC,KAAK,CAAC,EAAC,CAAA;IAC1D,OAAOF,MAAAA,CAAOC,KAAK,CAAC,GAAA,CAAA,CAAKE,GAAG,CAACL,kBAAAA,CAAAA,CAAYM,IAAI,CAAC,EAAA,CAAA;AAChD,CAAA;;;;"}
|
|
@@ -10,7 +10,10 @@ var StrapiApp = require('../features/StrapiApp.js');
|
|
|
10
10
|
var selectors = require('../selectors.js');
|
|
11
11
|
var useEnterprise = require('./useEnterprise.js');
|
|
12
12
|
|
|
13
|
-
function
|
|
13
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
+
|
|
15
|
+
function _interopNamespace(e) {
|
|
16
|
+
if (e && e.__esModule) return e;
|
|
14
17
|
var n = Object.create(null);
|
|
15
18
|
if (e) {
|
|
16
19
|
Object.keys(e).forEach(function (k) {
|
|
@@ -27,7 +30,8 @@ function _interopNamespaceDefault(e) {
|
|
|
27
30
|
return Object.freeze(n);
|
|
28
31
|
}
|
|
29
32
|
|
|
30
|
-
var React__namespace = /*#__PURE__*/
|
|
33
|
+
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
34
|
+
var sortBy__default = /*#__PURE__*/_interopDefault(sortBy);
|
|
31
35
|
|
|
32
36
|
const formatLinks = (menu)=>menu.map((menuSection)=>{
|
|
33
37
|
const formattedLinks = menuSection.links.map((link)=>({
|
|
@@ -119,7 +123,7 @@ const useSettingsMenu = ()=>{
|
|
|
119
123
|
const sections = formatLinks([
|
|
120
124
|
{
|
|
121
125
|
...global,
|
|
122
|
-
links:
|
|
126
|
+
links: sortBy__default.default([
|
|
123
127
|
...global.links,
|
|
124
128
|
...globalLinks.map(addPermissions)
|
|
125
129
|
], (link)=>link.id).map((link)=>({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSettingsMenu.js","sources":["../../../../../admin/src/hooks/useSettingsMenu.ts"],"sourcesContent":["import * as React from 'react';\n\nimport sortBy from 'lodash/sortBy';\nimport { useSelector } from 'react-redux';\n\nimport { SETTINGS_LINKS_CE, SettingsMenuLink } from '../constants';\nimport { useAppInfo } from '../features/AppInfo';\nimport { useAuth } from '../features/Auth';\nimport { useStrapiApp } from '../features/StrapiApp';\nimport { selectAdminPermissions } from '../selectors';\nimport { PermissionMap } from '../types/permissions';\n\nimport { useEnterprise } from './useEnterprise';\n\nimport type {\n StrapiAppSetting,\n StrapiAppSettingLink as IStrapiAppSettingLink,\n} from '../core/apis/router';\n\nconst formatLinks = (menu: SettingsMenuSection[]): SettingsMenuSectionWithDisplayedLinks[] =>\n menu.map((menuSection) => {\n const formattedLinks = menuSection.links.map((link) => ({\n ...link,\n isDisplayed: false,\n }));\n\n return { ...menuSection, links: formattedLinks };\n });\n\ninterface SettingsMenuLinkWithPermissions extends SettingsMenuLink {\n permissions: IStrapiAppSettingLink['permissions'];\n hasNotification?: boolean;\n}\n\ninterface StrapiAppSettingsLink extends IStrapiAppSettingLink {\n licenseOnly?: never;\n hasNotification?: never;\n}\n\ninterface SettingsMenuSection extends Omit<StrapiAppSetting, 'links'> {\n links: Array<SettingsMenuLinkWithPermissions | StrapiAppSettingsLink>;\n}\n\ninterface SettingsMenuLinkWithPermissionsAndDisplayed extends SettingsMenuLinkWithPermissions {\n isDisplayed: boolean;\n}\n\ninterface StrapiAppSettingLinkWithDisplayed extends StrapiAppSettingsLink {\n isDisplayed: boolean;\n}\n\ninterface SettingsMenuSectionWithDisplayedLinks extends Omit<SettingsMenuSection, 'links'> {\n links: Array<SettingsMenuLinkWithPermissionsAndDisplayed | StrapiAppSettingLinkWithDisplayed>;\n}\n\ntype SettingsMenu = SettingsMenuSectionWithDisplayedLinks[];\n\nconst useSettingsMenu = (): {\n isLoading: boolean;\n menu: SettingsMenu;\n} => {\n const [{ isLoading, menu }, setData] = React.useState<{\n isLoading: boolean;\n menu: SettingsMenu;\n }>({\n isLoading: true,\n menu: [],\n });\n const checkUserHasPermission = useAuth(\n 'useSettingsMenu',\n (state) => state.checkUserHasPermissions\n );\n const shouldUpdateStrapi = useAppInfo('useSettingsMenu', (state) => state.shouldUpdateStrapi);\n const rawSettings = useStrapiApp('useSettingsMenu', (state) => state.settings);\n const settings = React.useMemo(() => normalizeSettings(rawSettings), [rawSettings]);\n const permissions = useSelector(selectAdminPermissions);\n\n /**\n * memoize the return value of this function to avoid re-computing it on every render\n * because it's used in an effect it ends up re-running recursively.\n */\n const ceLinks = React.useMemo(() => SETTINGS_LINKS_CE(), []);\n\n const { admin: adminLinks, global: globalLinks } = useEnterprise(\n ceLinks,\n async () => (await import('../../../ee/admin/src/constants')).SETTINGS_LINKS_EE(),\n {\n combine(ceLinks, eeLinks) {\n return {\n admin: [...eeLinks.admin, ...ceLinks.admin],\n global: [...ceLinks.global, ...eeLinks.global],\n };\n },\n defaultValue: {\n admin: [],\n global: [],\n },\n }\n );\n\n const addPermissions = React.useCallback(\n (link: SettingsMenuLink) => {\n if (!link.id) {\n throw new Error('The settings menu item must have an id attribute.');\n }\n\n return {\n ...link,\n permissions: permissions.settings?.[link.id as keyof PermissionMap['settings']]?.main ?? [],\n } satisfies SettingsMenuLinkWithPermissions;\n },\n [permissions.settings]\n );\n\n React.useEffect(() => {\n const getData = async () => {\n interface MenuLinkPermission {\n hasPermission: boolean;\n sectionIndex: number;\n linkIndex: number;\n }\n\n const buildMenuPermissions = (sections: SettingsMenuSectionWithDisplayedLinks[]) =>\n Promise.all(\n sections.reduce<Promise<MenuLinkPermission>[]>((acc, section, sectionIndex) => {\n const linksWithPermissions = section.links.map(async (link, linkIndex) => ({\n hasPermission: (await checkUserHasPermission(link.permissions)).length > 0,\n sectionIndex,\n linkIndex,\n }));\n\n return [...acc, ...linksWithPermissions];\n }, [])\n );\n\n const menuPermissions = await buildMenuPermissions(sections);\n\n setData((prev) => {\n return {\n ...prev,\n isLoading: false,\n menu: sections.map((section, sectionIndex) => ({\n ...section,\n links: section.links.map((link, linkIndex) => {\n const permission = menuPermissions.find(\n (permission) =>\n permission.sectionIndex === sectionIndex && permission.linkIndex === linkIndex\n );\n\n return {\n ...link,\n isDisplayed: Boolean(permission?.hasPermission),\n };\n }),\n })),\n };\n });\n };\n\n const { global, ...otherSections } = settings;\n const sections = formatLinks([\n {\n ...global,\n links: sortBy([...global.links, ...globalLinks.map(addPermissions)], (link) => link.id).map(\n (link) => ({\n ...link,\n hasNotification: link.id === '000-application-infos' && shouldUpdateStrapi,\n })\n ),\n },\n {\n id: 'permissions',\n intlLabel: { id: 'Settings.permissions', defaultMessage: 'Administration Panel' },\n links: adminLinks.map(addPermissions),\n },\n ...Object.values(otherSections),\n ]);\n\n getData();\n }, [\n adminLinks,\n globalLinks,\n settings,\n shouldUpdateStrapi,\n addPermissions,\n checkUserHasPermission,\n ]);\n\n return {\n isLoading,\n menu: menu.map((menuItem) => ({\n ...menuItem,\n links: menuItem.links.filter((link) => link.isDisplayed),\n })),\n };\n};\n\nconst normalizeSettingsLink = (\n link: unknown\n): (SettingsMenuLinkWithPermissions | StrapiAppSettingsLink) | null => {\n if (!link || typeof link !== 'object') {\n return null;\n }\n\n const candidate = link as Partial<SettingsMenuLinkWithPermissions | StrapiAppSettingsLink>;\n\n if (\n !candidate.id ||\n typeof candidate.to !== 'string' ||\n !candidate.intlLabel?.id ||\n !candidate.intlLabel.defaultMessage\n ) {\n return null;\n }\n\n return {\n ...candidate,\n permissions: Array.isArray(candidate.permissions) ? candidate.permissions : [],\n } as SettingsMenuLinkWithPermissions | StrapiAppSettingsLink;\n};\n\nconst normalizeSettingsSection = (section: unknown): SettingsMenuSection | null => {\n if (!section || typeof section !== 'object') {\n return null;\n }\n\n const candidate = section as Partial<SettingsMenuSection>;\n\n if (!candidate.id || !candidate.intlLabel?.id || !candidate.intlLabel.defaultMessage) {\n return null;\n }\n\n return {\n id: candidate.id,\n intlLabel: candidate.intlLabel,\n links: Array.isArray(candidate.links)\n ? candidate.links.map(normalizeSettingsLink).filter(isSettingsLink)\n : [],\n };\n};\n\nconst isSettingsLink = (\n link: ReturnType<typeof normalizeSettingsLink>\n): link is SettingsMenuLinkWithPermissions | StrapiAppSettingsLink => {\n return link !== null;\n};\n\nconst normalizeSettings = (settings: unknown): Record<string, SettingsMenuSection> => {\n const defaultGlobal: SettingsMenuSection = {\n id: 'global',\n intlLabel: {\n id: 'Settings.global',\n defaultMessage: 'Global Settings',\n },\n links: [],\n };\n\n if (!settings || typeof settings !== 'object') {\n return {\n global: defaultGlobal,\n };\n }\n\n const normalizedSections = Object.entries(settings).reduce<Record<string, SettingsMenuSection>>(\n (acc, [key, section]) => {\n const normalizedSection = normalizeSettingsSection(section);\n\n if (normalizedSection) {\n acc[key] = normalizedSection;\n }\n\n return acc;\n },\n {}\n );\n\n return {\n ...normalizedSections,\n global: normalizedSections.global ?? defaultGlobal,\n };\n};\n\nexport { useSettingsMenu, normalizeSettings };\nexport type { SettingsMenu };\n"],"names":["formatLinks","menu","map","menuSection","formattedLinks","links","link","isDisplayed","useSettingsMenu","isLoading","setData","React","useState","checkUserHasPermission","useAuth","state","checkUserHasPermissions","shouldUpdateStrapi","useAppInfo","rawSettings","useStrapiApp","settings","useMemo","normalizeSettings","permissions","useSelector","selectAdminPermissions","ceLinks","SETTINGS_LINKS_CE","admin","adminLinks","global","globalLinks","useEnterprise","SETTINGS_LINKS_EE","combine","eeLinks","defaultValue","addPermissions","useCallback","id","Error","main","useEffect","getData","buildMenuPermissions","sections","Promise","all","reduce","acc","section","sectionIndex","linksWithPermissions","linkIndex","hasPermission","length","menuPermissions","prev","permission","find","Boolean","otherSections","sortBy","hasNotification","intlLabel","defaultMessage","Object","values","menuItem","filter","normalizeSettingsLink","candidate","to","Array","isArray","normalizeSettingsSection","isSettingsLink","defaultGlobal","normalizedSections","entries","key","normalizedSection"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useSettingsMenu.js","sources":["../../../../../admin/src/hooks/useSettingsMenu.ts"],"sourcesContent":["import * as React from 'react';\n\nimport sortBy from 'lodash/sortBy';\nimport { useSelector } from 'react-redux';\n\nimport { SETTINGS_LINKS_CE, SettingsMenuLink } from '../constants';\nimport { useAppInfo } from '../features/AppInfo';\nimport { useAuth } from '../features/Auth';\nimport { useStrapiApp } from '../features/StrapiApp';\nimport { selectAdminPermissions } from '../selectors';\nimport { PermissionMap } from '../types/permissions';\n\nimport { useEnterprise } from './useEnterprise';\n\nimport type {\n StrapiAppSetting,\n StrapiAppSettingLink as IStrapiAppSettingLink,\n} from '../core/apis/router';\n\nconst formatLinks = (menu: SettingsMenuSection[]): SettingsMenuSectionWithDisplayedLinks[] =>\n menu.map((menuSection) => {\n const formattedLinks = menuSection.links.map((link) => ({\n ...link,\n isDisplayed: false,\n }));\n\n return { ...menuSection, links: formattedLinks };\n });\n\ninterface SettingsMenuLinkWithPermissions extends SettingsMenuLink {\n permissions: IStrapiAppSettingLink['permissions'];\n hasNotification?: boolean;\n}\n\ninterface StrapiAppSettingsLink extends IStrapiAppSettingLink {\n licenseOnly?: never;\n hasNotification?: never;\n}\n\ninterface SettingsMenuSection extends Omit<StrapiAppSetting, 'links'> {\n links: Array<SettingsMenuLinkWithPermissions | StrapiAppSettingsLink>;\n}\n\ninterface SettingsMenuLinkWithPermissionsAndDisplayed extends SettingsMenuLinkWithPermissions {\n isDisplayed: boolean;\n}\n\ninterface StrapiAppSettingLinkWithDisplayed extends StrapiAppSettingsLink {\n isDisplayed: boolean;\n}\n\ninterface SettingsMenuSectionWithDisplayedLinks extends Omit<SettingsMenuSection, 'links'> {\n links: Array<SettingsMenuLinkWithPermissionsAndDisplayed | StrapiAppSettingLinkWithDisplayed>;\n}\n\ntype SettingsMenu = SettingsMenuSectionWithDisplayedLinks[];\n\nconst useSettingsMenu = (): {\n isLoading: boolean;\n menu: SettingsMenu;\n} => {\n const [{ isLoading, menu }, setData] = React.useState<{\n isLoading: boolean;\n menu: SettingsMenu;\n }>({\n isLoading: true,\n menu: [],\n });\n const checkUserHasPermission = useAuth(\n 'useSettingsMenu',\n (state) => state.checkUserHasPermissions\n );\n const shouldUpdateStrapi = useAppInfo('useSettingsMenu', (state) => state.shouldUpdateStrapi);\n const rawSettings = useStrapiApp('useSettingsMenu', (state) => state.settings);\n const settings = React.useMemo(() => normalizeSettings(rawSettings), [rawSettings]);\n const permissions = useSelector(selectAdminPermissions);\n\n /**\n * memoize the return value of this function to avoid re-computing it on every render\n * because it's used in an effect it ends up re-running recursively.\n */\n const ceLinks = React.useMemo(() => SETTINGS_LINKS_CE(), []);\n\n const { admin: adminLinks, global: globalLinks } = useEnterprise(\n ceLinks,\n async () => (await import('../../../ee/admin/src/constants')).SETTINGS_LINKS_EE(),\n {\n combine(ceLinks, eeLinks) {\n return {\n admin: [...eeLinks.admin, ...ceLinks.admin],\n global: [...ceLinks.global, ...eeLinks.global],\n };\n },\n defaultValue: {\n admin: [],\n global: [],\n },\n }\n );\n\n const addPermissions = React.useCallback(\n (link: SettingsMenuLink) => {\n if (!link.id) {\n throw new Error('The settings menu item must have an id attribute.');\n }\n\n return {\n ...link,\n permissions: permissions.settings?.[link.id as keyof PermissionMap['settings']]?.main ?? [],\n } satisfies SettingsMenuLinkWithPermissions;\n },\n [permissions.settings]\n );\n\n React.useEffect(() => {\n const getData = async () => {\n interface MenuLinkPermission {\n hasPermission: boolean;\n sectionIndex: number;\n linkIndex: number;\n }\n\n const buildMenuPermissions = (sections: SettingsMenuSectionWithDisplayedLinks[]) =>\n Promise.all(\n sections.reduce<Promise<MenuLinkPermission>[]>((acc, section, sectionIndex) => {\n const linksWithPermissions = section.links.map(async (link, linkIndex) => ({\n hasPermission: (await checkUserHasPermission(link.permissions)).length > 0,\n sectionIndex,\n linkIndex,\n }));\n\n return [...acc, ...linksWithPermissions];\n }, [])\n );\n\n const menuPermissions = await buildMenuPermissions(sections);\n\n setData((prev) => {\n return {\n ...prev,\n isLoading: false,\n menu: sections.map((section, sectionIndex) => ({\n ...section,\n links: section.links.map((link, linkIndex) => {\n const permission = menuPermissions.find(\n (permission) =>\n permission.sectionIndex === sectionIndex && permission.linkIndex === linkIndex\n );\n\n return {\n ...link,\n isDisplayed: Boolean(permission?.hasPermission),\n };\n }),\n })),\n };\n });\n };\n\n const { global, ...otherSections } = settings;\n const sections = formatLinks([\n {\n ...global,\n links: sortBy([...global.links, ...globalLinks.map(addPermissions)], (link) => link.id).map(\n (link) => ({\n ...link,\n hasNotification: link.id === '000-application-infos' && shouldUpdateStrapi,\n })\n ),\n },\n {\n id: 'permissions',\n intlLabel: { id: 'Settings.permissions', defaultMessage: 'Administration Panel' },\n links: adminLinks.map(addPermissions),\n },\n ...Object.values(otherSections),\n ]);\n\n getData();\n }, [\n adminLinks,\n globalLinks,\n settings,\n shouldUpdateStrapi,\n addPermissions,\n checkUserHasPermission,\n ]);\n\n return {\n isLoading,\n menu: menu.map((menuItem) => ({\n ...menuItem,\n links: menuItem.links.filter((link) => link.isDisplayed),\n })),\n };\n};\n\nconst normalizeSettingsLink = (\n link: unknown\n): (SettingsMenuLinkWithPermissions | StrapiAppSettingsLink) | null => {\n if (!link || typeof link !== 'object') {\n return null;\n }\n\n const candidate = link as Partial<SettingsMenuLinkWithPermissions | StrapiAppSettingsLink>;\n\n if (\n !candidate.id ||\n typeof candidate.to !== 'string' ||\n !candidate.intlLabel?.id ||\n !candidate.intlLabel.defaultMessage\n ) {\n return null;\n }\n\n return {\n ...candidate,\n permissions: Array.isArray(candidate.permissions) ? candidate.permissions : [],\n } as SettingsMenuLinkWithPermissions | StrapiAppSettingsLink;\n};\n\nconst normalizeSettingsSection = (section: unknown): SettingsMenuSection | null => {\n if (!section || typeof section !== 'object') {\n return null;\n }\n\n const candidate = section as Partial<SettingsMenuSection>;\n\n if (!candidate.id || !candidate.intlLabel?.id || !candidate.intlLabel.defaultMessage) {\n return null;\n }\n\n return {\n id: candidate.id,\n intlLabel: candidate.intlLabel,\n links: Array.isArray(candidate.links)\n ? candidate.links.map(normalizeSettingsLink).filter(isSettingsLink)\n : [],\n };\n};\n\nconst isSettingsLink = (\n link: ReturnType<typeof normalizeSettingsLink>\n): link is SettingsMenuLinkWithPermissions | StrapiAppSettingsLink => {\n return link !== null;\n};\n\nconst normalizeSettings = (settings: unknown): Record<string, SettingsMenuSection> => {\n const defaultGlobal: SettingsMenuSection = {\n id: 'global',\n intlLabel: {\n id: 'Settings.global',\n defaultMessage: 'Global Settings',\n },\n links: [],\n };\n\n if (!settings || typeof settings !== 'object') {\n return {\n global: defaultGlobal,\n };\n }\n\n const normalizedSections = Object.entries(settings).reduce<Record<string, SettingsMenuSection>>(\n (acc, [key, section]) => {\n const normalizedSection = normalizeSettingsSection(section);\n\n if (normalizedSection) {\n acc[key] = normalizedSection;\n }\n\n return acc;\n },\n {}\n );\n\n return {\n ...normalizedSections,\n global: normalizedSections.global ?? defaultGlobal,\n };\n};\n\nexport { useSettingsMenu, normalizeSettings };\nexport type { SettingsMenu };\n"],"names":["formatLinks","menu","map","menuSection","formattedLinks","links","link","isDisplayed","useSettingsMenu","isLoading","setData","React","useState","checkUserHasPermission","useAuth","state","checkUserHasPermissions","shouldUpdateStrapi","useAppInfo","rawSettings","useStrapiApp","settings","useMemo","normalizeSettings","permissions","useSelector","selectAdminPermissions","ceLinks","SETTINGS_LINKS_CE","admin","adminLinks","global","globalLinks","useEnterprise","SETTINGS_LINKS_EE","combine","eeLinks","defaultValue","addPermissions","useCallback","id","Error","main","useEffect","getData","buildMenuPermissions","sections","Promise","all","reduce","acc","section","sectionIndex","linksWithPermissions","linkIndex","hasPermission","length","menuPermissions","prev","permission","find","Boolean","otherSections","sortBy","hasNotification","intlLabel","defaultMessage","Object","values","menuItem","filter","normalizeSettingsLink","candidate","to","Array","isArray","normalizeSettingsSection","isSettingsLink","defaultGlobal","normalizedSections","entries","key","normalizedSection"],"mappings":"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"}
|
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
var React = require('react');
|
|
4
4
|
var throttle = require('lodash/throttle');
|
|
5
5
|
|
|
6
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
|
+
|
|
8
|
+
var throttle__default = /*#__PURE__*/_interopDefault(throttle);
|
|
9
|
+
|
|
6
10
|
/**
|
|
7
11
|
* @internal
|
|
8
12
|
* @description Create a throttled version of a callback
|
|
@@ -20,7 +24,7 @@ var throttle = require('lodash/throttle');
|
|
|
20
24
|
* <Button onClick={myThrottledCallback} />
|
|
21
25
|
* ```
|
|
22
26
|
*/ const useThrottledCallback = (callback, wait, options)=>{
|
|
23
|
-
const throttledCallback = React.useMemo(()=>
|
|
27
|
+
const throttledCallback = React.useMemo(()=>throttle__default.default(callback, wait, options), [
|
|
24
28
|
callback,
|
|
25
29
|
options,
|
|
26
30
|
wait
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useThrottledCallback.js","sources":["../../../../../admin/src/hooks/useThrottledCallback.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport throttle from 'lodash/throttle';\n\ntype ThrottleSettings = Parameters<typeof throttle>[2];\n\n/**\n * @internal\n * @description Create a throttled version of a callback\n * @example\n * ```tsx\n * // First create a callback using React’s `useCallback` hook\n * const myCallback = useCallback(() => {\n * // this is not throttled\n * }, [])\n *\n * // Then make a throttled version using the `useThrottledCallback` hook\n * const myThrottledCallback = useThrottledCallback(myCallback, 100)\n *\n * // Call the throttled callback\n * <Button onClick={myThrottledCallback} />\n * ```\n */\nconst useThrottledCallback = <T extends (...args: any[]) => any>(\n callback: T,\n wait: number,\n options: ThrottleSettings\n): T => {\n const throttledCallback = useMemo(\n () => throttle(callback, wait, options) as unknown as T,\n [callback, options, wait]\n );\n\n return throttledCallback;\n};\n\nexport { useThrottledCallback };\n"],"names":["useThrottledCallback","callback","wait","options","throttledCallback","useMemo","throttle"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useThrottledCallback.js","sources":["../../../../../admin/src/hooks/useThrottledCallback.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport throttle from 'lodash/throttle';\n\ntype ThrottleSettings = Parameters<typeof throttle>[2];\n\n/**\n * @internal\n * @description Create a throttled version of a callback\n * @example\n * ```tsx\n * // First create a callback using React’s `useCallback` hook\n * const myCallback = useCallback(() => {\n * // this is not throttled\n * }, [])\n *\n * // Then make a throttled version using the `useThrottledCallback` hook\n * const myThrottledCallback = useThrottledCallback(myCallback, 100)\n *\n * // Call the throttled callback\n * <Button onClick={myThrottledCallback} />\n * ```\n */\nconst useThrottledCallback = <T extends (...args: any[]) => any>(\n callback: T,\n wait: number,\n options: ThrottleSettings\n): T => {\n const throttledCallback = useMemo(\n () => throttle(callback, wait, options) as unknown as T,\n [callback, options, wait]\n );\n\n return throttledCallback;\n};\n\nexport { useThrottledCallback };\n"],"names":["useThrottledCallback","callback","wait","options","throttledCallback","useMemo","throttle"],"mappings":";;;;;;;;;AAMA;;;;;;;;;;;;;;;;AAgBC,IACD,MAAMA,oBAAAA,GAAuB,CAC3BC,QAAAA,EACAC,IAAAA,EACAC,OAAAA,GAAAA;AAEA,IAAA,MAAMC,oBAAoBC,aAAAA,CACxB,IAAMC,yBAAAA,CAASL,QAAAA,EAAUC,MAAMC,OAAAA,CAAAA,EAC/B;AAACF,QAAAA,QAAAA;AAAUE,QAAAA,OAAAA;AAASD,QAAAA;AAAK,KAAA,CAAA;IAG3B,OAAOE,iBAAAA;AACT;;;;"}
|
|
@@ -7,9 +7,9 @@ var designSystem = require('@strapi/design-system');
|
|
|
7
7
|
var reactDnd = require('react-dnd');
|
|
8
8
|
var reactDndHtml5Backend = require('react-dnd-html5-backend');
|
|
9
9
|
var reactIntl = require('react-intl');
|
|
10
|
-
var reactRouterDom = require('react-router-dom');
|
|
11
10
|
var lt = require('semver/functions/lt');
|
|
12
11
|
var valid = require('semver/functions/valid');
|
|
12
|
+
var LazyOutlet = require('../components/LazyOutlet.js');
|
|
13
13
|
var LeftMenu = require('../components/LeftMenu.js');
|
|
14
14
|
var NpsSurvey = require('../components/NpsSurvey.js');
|
|
15
15
|
var PageHelpers = require('../components/PageHelpers.js');
|
|
@@ -25,7 +25,10 @@ var useMenu = require('../hooks/useMenu.js');
|
|
|
25
25
|
var admin = require('../services/admin.js');
|
|
26
26
|
var users = require('../utils/users.js');
|
|
27
27
|
|
|
28
|
-
function
|
|
28
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
29
|
+
|
|
30
|
+
function _interopNamespace(e) {
|
|
31
|
+
if (e && e.__esModule) return e;
|
|
29
32
|
var n = Object.create(null);
|
|
30
33
|
if (e) {
|
|
31
34
|
Object.keys(e).forEach(function (k) {
|
|
@@ -42,9 +45,12 @@ function _interopNamespaceDefault(e) {
|
|
|
42
45
|
return Object.freeze(n);
|
|
43
46
|
}
|
|
44
47
|
|
|
45
|
-
var React__namespace = /*#__PURE__*/
|
|
48
|
+
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
49
|
+
var packageInfo__default = /*#__PURE__*/_interopDefault(packageInfo);
|
|
50
|
+
var lt__default = /*#__PURE__*/_interopDefault(lt);
|
|
51
|
+
var valid__default = /*#__PURE__*/_interopDefault(valid);
|
|
46
52
|
|
|
47
|
-
const { version: strapiVersion } =
|
|
53
|
+
const { version: strapiVersion } = packageInfo__default.default;
|
|
48
54
|
const AdminLayout = ()=>{
|
|
49
55
|
const { formatMessage } = reactIntl.useIntl();
|
|
50
56
|
const userInfo = Auth.useAuth('AuthenticatedApp', (state)=>state.user);
|
|
@@ -146,7 +152,9 @@ const AdminLayout = ()=>{
|
|
|
146
152
|
},
|
|
147
153
|
children: [
|
|
148
154
|
/*#__PURE__*/ jsxRuntime.jsx(UpsellBanner.UpsellBanner, {}),
|
|
149
|
-
/*#__PURE__*/ jsxRuntime.jsx(
|
|
155
|
+
/*#__PURE__*/ jsxRuntime.jsx(LazyOutlet.LazyOutlet, {
|
|
156
|
+
suspenseOnly: true
|
|
157
|
+
})
|
|
150
158
|
]
|
|
151
159
|
})
|
|
152
160
|
]
|
|
@@ -164,10 +172,10 @@ const PrivateAdminLayout = ()=>{
|
|
|
164
172
|
});
|
|
165
173
|
};
|
|
166
174
|
const checkLatestStrapiVersion = (currentPackageVersion, latestPublishedVersion = '')=>{
|
|
167
|
-
if (!
|
|
175
|
+
if (!valid__default.default(currentPackageVersion) || !valid__default.default(latestPublishedVersion)) {
|
|
168
176
|
return false;
|
|
169
177
|
}
|
|
170
|
-
return
|
|
178
|
+
return lt__default.default(currentPackageVersion, latestPublishedVersion);
|
|
171
179
|
};
|
|
172
180
|
|
|
173
181
|
exports.AdminLayout = AdminLayout;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthenticatedLayout.js","sources":["../../../../../admin/src/layouts/AuthenticatedLayout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport packageInfo from '@strapi/admin/package.json';\nimport { Box, Flex, SkipToContent } from '@strapi/design-system';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { useIntl } from 'react-intl';\nimport { Outlet } from 'react-router-dom';\nimport lt from 'semver/functions/lt';\nimport valid from 'semver/functions/valid';\n\nimport { LeftMenu } from '../components/LeftMenu';\nimport { NpsSurvey } from '../components/NpsSurvey';\nimport { Page } from '../components/PageHelpers';\nimport { PluginsInitializer } from '../components/PluginsInitializer';\nimport { PrivateRoute } from '../components/PrivateRoute';\nimport { UpsellBanner } from '../components/UpsellBanner';\nimport { AppInfoProvider } from '../features/AppInfo';\nimport { useAuth } from '../features/Auth';\nimport { useConfiguration } from '../features/Configuration';\nimport { useStrapiApp } from '../features/StrapiApp';\nimport { useTracking } from '../features/Tracking';\nimport { useMenu } from '../hooks/useMenu';\nimport { useInformationQuery } from '../services/admin';\nimport { hashAdminUserEmail } from '../utils/users';\n\nconst { version: strapiVersion } = packageInfo;\n\nconst AdminLayout = () => {\n const { formatMessage } = useIntl();\n const userInfo = useAuth('AuthenticatedApp', (state) => state.user);\n const [userId, setUserId] = React.useState<string>();\n const { showReleaseNotification } = useConfiguration('AuthenticatedApp');\n\n const { data: appInfo, isLoading: isLoadingAppInfo } = useInformationQuery();\n const [tagName, setTagName] = React.useState<string>(strapiVersion);\n\n React.useEffect(() => {\n if (showReleaseNotification) {\n fetch('https://api.github.com/repos/strapi/strapi/releases/latest')\n .then(async (res) => {\n if (!res.ok) {\n return;\n }\n\n const response = (await res.json()) as { tag_name: string | null | undefined };\n\n if (!response.tag_name) {\n throw new Error();\n }\n\n setTagName(response.tag_name);\n })\n .catch(() => {\n /**\n * silence is golden & we'll use the strapiVersion as a fallback\n */\n });\n }\n }, [showReleaseNotification]);\n\n React.useEffect(() => {\n hashAdminUserEmail(userInfo).then((id) => {\n if (id) {\n setUserId(id);\n }\n });\n }, [userInfo]);\n\n const { trackUsage } = useTracking();\n\n const {\n isLoading: isLoadingMenu,\n generalSectionLinks,\n pluginsSectionLinks,\n topMobileNavigation,\n burgerMobileNavigation,\n } = useMenu(checkLatestStrapiVersion(strapiVersion, tagName));\n\n const getAllWidgets = useStrapiApp('TrackingProvider', (state) => state.widgets.getAll);\n const projectId = appInfo?.projectId;\n React.useEffect(() => {\n if (projectId) {\n trackUsage('didAccessAuthenticatedAdministration', {\n registeredWidgets: getAllWidgets().map((widget) => widget.uid),\n projectId,\n });\n }\n }, [projectId, getAllWidgets, trackUsage]);\n\n // We don't need to wait for the release query to be fetched before rendering the plugins\n // however, we need the appInfos and the permissions\n if (isLoadingMenu || isLoadingAppInfo) {\n return <Page.Loading />;\n }\n\n return (\n <AppInfoProvider\n {...appInfo}\n userId={userId}\n latestStrapiReleaseTag={tagName}\n shouldUpdateStrapi={checkLatestStrapiVersion(strapiVersion, tagName)}\n >\n <NpsSurvey />\n <PluginsInitializer>\n <DndProvider backend={HTML5Backend}>\n <Box background=\"neutral100\">\n <SkipToContent>\n {formatMessage({ id: 'skipToContent', defaultMessage: 'Skip to content' })}\n </SkipToContent>\n <Flex\n height=\"100dvh\"\n direction={{\n initial: 'column',\n large: 'row',\n }}\n alignItems=\"flex-start\"\n >\n <LeftMenu\n generalSectionLinks={generalSectionLinks}\n pluginsSectionLinks={pluginsSectionLinks}\n topMobileNavigation={topMobileNavigation}\n burgerMobileNavigation={burgerMobileNavigation}\n />\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n flex={1}\n overflow=\"auto\"\n width=\"100%\"\n height={{\n initial: 'auto',\n large: '100%',\n }}\n >\n <UpsellBanner />\n <Outlet />\n </Flex>\n </Flex>\n </Box>\n </DndProvider>\n </PluginsInitializer>\n </AppInfoProvider>\n );\n};\n\nconst PrivateAdminLayout = () => {\n return (\n <PrivateRoute>\n <AdminLayout />\n </PrivateRoute>\n );\n};\n\nconst checkLatestStrapiVersion = (\n currentPackageVersion: string,\n latestPublishedVersion: string = ''\n): boolean => {\n if (!valid(currentPackageVersion) || !valid(latestPublishedVersion)) {\n return false;\n }\n\n return lt(currentPackageVersion, latestPublishedVersion);\n};\n\nexport { AdminLayout, PrivateAdminLayout };\n"],"names":["version","strapiVersion","packageInfo","AdminLayout","formatMessage","useIntl","userInfo","useAuth","state","user","userId","setUserId","React","useState","showReleaseNotification","useConfiguration","data","appInfo","isLoading","isLoadingAppInfo","useInformationQuery","tagName","setTagName","useEffect","fetch","then","res","ok","response","json","tag_name","Error","catch","hashAdminUserEmail","id","trackUsage","useTracking","isLoadingMenu","generalSectionLinks","pluginsSectionLinks","topMobileNavigation","burgerMobileNavigation","useMenu","checkLatestStrapiVersion","getAllWidgets","useStrapiApp","widgets","getAll","projectId","registeredWidgets","map","widget","uid","_jsx","Page","Loading","_jsxs","AppInfoProvider","latestStrapiReleaseTag","shouldUpdateStrapi","NpsSurvey","PluginsInitializer","DndProvider","backend","HTML5Backend","Box","background","SkipToContent","defaultMessage","Flex","height","direction","initial","large","alignItems","LeftMenu","flex","overflow","width","UpsellBanner","Outlet","PrivateAdminLayout","PrivateRoute","currentPackageVersion","latestPublishedVersion","valid","lt"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AuthenticatedLayout.js","sources":["../../../../../admin/src/layouts/AuthenticatedLayout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport packageInfo from '@strapi/admin/package.json';\nimport { Box, Flex, SkipToContent } from '@strapi/design-system';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { useIntl } from 'react-intl';\nimport lt from 'semver/functions/lt';\nimport valid from 'semver/functions/valid';\n\nimport { LazyOutlet } from '../components/LazyOutlet';\nimport { LeftMenu } from '../components/LeftMenu';\nimport { NpsSurvey } from '../components/NpsSurvey';\nimport { Page } from '../components/PageHelpers';\nimport { PluginsInitializer } from '../components/PluginsInitializer';\nimport { PrivateRoute } from '../components/PrivateRoute';\nimport { UpsellBanner } from '../components/UpsellBanner';\nimport { AppInfoProvider } from '../features/AppInfo';\nimport { useAuth } from '../features/Auth';\nimport { useConfiguration } from '../features/Configuration';\nimport { useStrapiApp } from '../features/StrapiApp';\nimport { useTracking } from '../features/Tracking';\nimport { useMenu } from '../hooks/useMenu';\nimport { useInformationQuery } from '../services/admin';\nimport { hashAdminUserEmail } from '../utils/users';\n\nconst { version: strapiVersion } = packageInfo;\n\nconst AdminLayout = () => {\n const { formatMessage } = useIntl();\n const userInfo = useAuth('AuthenticatedApp', (state) => state.user);\n const [userId, setUserId] = React.useState<string>();\n const { showReleaseNotification } = useConfiguration('AuthenticatedApp');\n\n const { data: appInfo, isLoading: isLoadingAppInfo } = useInformationQuery();\n const [tagName, setTagName] = React.useState<string>(strapiVersion);\n\n React.useEffect(() => {\n if (showReleaseNotification) {\n fetch('https://api.github.com/repos/strapi/strapi/releases/latest')\n .then(async (res) => {\n if (!res.ok) {\n return;\n }\n\n const response = (await res.json()) as { tag_name: string | null | undefined };\n\n if (!response.tag_name) {\n throw new Error();\n }\n\n setTagName(response.tag_name);\n })\n .catch(() => {\n /**\n * silence is golden & we'll use the strapiVersion as a fallback\n */\n });\n }\n }, [showReleaseNotification]);\n\n React.useEffect(() => {\n hashAdminUserEmail(userInfo).then((id) => {\n if (id) {\n setUserId(id);\n }\n });\n }, [userInfo]);\n\n const { trackUsage } = useTracking();\n\n const {\n isLoading: isLoadingMenu,\n generalSectionLinks,\n pluginsSectionLinks,\n topMobileNavigation,\n burgerMobileNavigation,\n } = useMenu(checkLatestStrapiVersion(strapiVersion, tagName));\n\n const getAllWidgets = useStrapiApp('TrackingProvider', (state) => state.widgets.getAll);\n const projectId = appInfo?.projectId;\n React.useEffect(() => {\n if (projectId) {\n trackUsage('didAccessAuthenticatedAdministration', {\n registeredWidgets: getAllWidgets().map((widget) => widget.uid),\n projectId,\n });\n }\n }, [projectId, getAllWidgets, trackUsage]);\n\n // We don't need to wait for the release query to be fetched before rendering the plugins\n // however, we need the appInfos and the permissions\n if (isLoadingMenu || isLoadingAppInfo) {\n return <Page.Loading />;\n }\n\n return (\n <AppInfoProvider\n {...appInfo}\n userId={userId}\n latestStrapiReleaseTag={tagName}\n shouldUpdateStrapi={checkLatestStrapiVersion(strapiVersion, tagName)}\n >\n <NpsSurvey />\n <PluginsInitializer>\n <DndProvider backend={HTML5Backend}>\n <Box background=\"neutral100\">\n <SkipToContent>\n {formatMessage({ id: 'skipToContent', defaultMessage: 'Skip to content' })}\n </SkipToContent>\n <Flex\n height=\"100dvh\"\n direction={{\n initial: 'column',\n large: 'row',\n }}\n alignItems=\"flex-start\"\n >\n <LeftMenu\n generalSectionLinks={generalSectionLinks}\n pluginsSectionLinks={pluginsSectionLinks}\n topMobileNavigation={topMobileNavigation}\n burgerMobileNavigation={burgerMobileNavigation}\n />\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n flex={1}\n overflow=\"auto\"\n width=\"100%\"\n height={{\n initial: 'auto',\n large: '100%',\n }}\n >\n <UpsellBanner />\n {/*\n * Top-level Suspense only — nested layouts (Settings, Content Manager) use\n * LazyOutlet with useNavigation so in-app navigations show loading in the content\n * column without hiding section side navs.\n */}\n <LazyOutlet suspenseOnly />\n </Flex>\n </Flex>\n </Box>\n </DndProvider>\n </PluginsInitializer>\n </AppInfoProvider>\n );\n};\n\nconst PrivateAdminLayout = () => {\n return (\n <PrivateRoute>\n <AdminLayout />\n </PrivateRoute>\n );\n};\n\nconst checkLatestStrapiVersion = (\n currentPackageVersion: string,\n latestPublishedVersion: string = ''\n): boolean => {\n if (!valid(currentPackageVersion) || !valid(latestPublishedVersion)) {\n return false;\n }\n\n return lt(currentPackageVersion, latestPublishedVersion);\n};\n\nexport { AdminLayout, PrivateAdminLayout };\n"],"names":["version","strapiVersion","packageInfo","AdminLayout","formatMessage","useIntl","userInfo","useAuth","state","user","userId","setUserId","React","useState","showReleaseNotification","useConfiguration","data","appInfo","isLoading","isLoadingAppInfo","useInformationQuery","tagName","setTagName","useEffect","fetch","then","res","ok","response","json","tag_name","Error","catch","hashAdminUserEmail","id","trackUsage","useTracking","isLoadingMenu","generalSectionLinks","pluginsSectionLinks","topMobileNavigation","burgerMobileNavigation","useMenu","checkLatestStrapiVersion","getAllWidgets","useStrapiApp","widgets","getAll","projectId","registeredWidgets","map","widget","uid","_jsx","Page","Loading","_jsxs","AppInfoProvider","latestStrapiReleaseTag","shouldUpdateStrapi","NpsSurvey","PluginsInitializer","DndProvider","backend","HTML5Backend","Box","background","SkipToContent","defaultMessage","Flex","height","direction","initial","large","alignItems","LeftMenu","flex","overflow","width","UpsellBanner","LazyOutlet","suspenseOnly","PrivateAdminLayout","PrivateRoute","currentPackageVersion","latestPublishedVersion","valid","lt"],"mappings":"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"}
|
|
@@ -5,9 +5,9 @@ import { Box, SkipToContent, Flex } from '@strapi/design-system';
|
|
|
5
5
|
import { DndProvider } from 'react-dnd';
|
|
6
6
|
import { HTML5Backend } from 'react-dnd-html5-backend';
|
|
7
7
|
import { useIntl } from 'react-intl';
|
|
8
|
-
import { Outlet } from 'react-router-dom';
|
|
9
8
|
import lt from 'semver/functions/lt';
|
|
10
9
|
import valid from 'semver/functions/valid';
|
|
10
|
+
import { LazyOutlet } from '../components/LazyOutlet.mjs';
|
|
11
11
|
import { LeftMenu } from '../components/LeftMenu.mjs';
|
|
12
12
|
import { NpsSurvey } from '../components/NpsSurvey.mjs';
|
|
13
13
|
import { Page } from '../components/PageHelpers.mjs';
|
|
@@ -125,7 +125,9 @@ const AdminLayout = ()=>{
|
|
|
125
125
|
},
|
|
126
126
|
children: [
|
|
127
127
|
/*#__PURE__*/ jsx(UpsellBanner, {}),
|
|
128
|
-
/*#__PURE__*/ jsx(
|
|
128
|
+
/*#__PURE__*/ jsx(LazyOutlet, {
|
|
129
|
+
suspenseOnly: true
|
|
130
|
+
})
|
|
129
131
|
]
|
|
130
132
|
})
|
|
131
133
|
]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthenticatedLayout.mjs","sources":["../../../../../admin/src/layouts/AuthenticatedLayout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport packageInfo from '@strapi/admin/package.json';\nimport { Box, Flex, SkipToContent } from '@strapi/design-system';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { useIntl } from 'react-intl';\nimport { Outlet } from 'react-router-dom';\nimport lt from 'semver/functions/lt';\nimport valid from 'semver/functions/valid';\n\nimport { LeftMenu } from '../components/LeftMenu';\nimport { NpsSurvey } from '../components/NpsSurvey';\nimport { Page } from '../components/PageHelpers';\nimport { PluginsInitializer } from '../components/PluginsInitializer';\nimport { PrivateRoute } from '../components/PrivateRoute';\nimport { UpsellBanner } from '../components/UpsellBanner';\nimport { AppInfoProvider } from '../features/AppInfo';\nimport { useAuth } from '../features/Auth';\nimport { useConfiguration } from '../features/Configuration';\nimport { useStrapiApp } from '../features/StrapiApp';\nimport { useTracking } from '../features/Tracking';\nimport { useMenu } from '../hooks/useMenu';\nimport { useInformationQuery } from '../services/admin';\nimport { hashAdminUserEmail } from '../utils/users';\n\nconst { version: strapiVersion } = packageInfo;\n\nconst AdminLayout = () => {\n const { formatMessage } = useIntl();\n const userInfo = useAuth('AuthenticatedApp', (state) => state.user);\n const [userId, setUserId] = React.useState<string>();\n const { showReleaseNotification } = useConfiguration('AuthenticatedApp');\n\n const { data: appInfo, isLoading: isLoadingAppInfo } = useInformationQuery();\n const [tagName, setTagName] = React.useState<string>(strapiVersion);\n\n React.useEffect(() => {\n if (showReleaseNotification) {\n fetch('https://api.github.com/repos/strapi/strapi/releases/latest')\n .then(async (res) => {\n if (!res.ok) {\n return;\n }\n\n const response = (await res.json()) as { tag_name: string | null | undefined };\n\n if (!response.tag_name) {\n throw new Error();\n }\n\n setTagName(response.tag_name);\n })\n .catch(() => {\n /**\n * silence is golden & we'll use the strapiVersion as a fallback\n */\n });\n }\n }, [showReleaseNotification]);\n\n React.useEffect(() => {\n hashAdminUserEmail(userInfo).then((id) => {\n if (id) {\n setUserId(id);\n }\n });\n }, [userInfo]);\n\n const { trackUsage } = useTracking();\n\n const {\n isLoading: isLoadingMenu,\n generalSectionLinks,\n pluginsSectionLinks,\n topMobileNavigation,\n burgerMobileNavigation,\n } = useMenu(checkLatestStrapiVersion(strapiVersion, tagName));\n\n const getAllWidgets = useStrapiApp('TrackingProvider', (state) => state.widgets.getAll);\n const projectId = appInfo?.projectId;\n React.useEffect(() => {\n if (projectId) {\n trackUsage('didAccessAuthenticatedAdministration', {\n registeredWidgets: getAllWidgets().map((widget) => widget.uid),\n projectId,\n });\n }\n }, [projectId, getAllWidgets, trackUsage]);\n\n // We don't need to wait for the release query to be fetched before rendering the plugins\n // however, we need the appInfos and the permissions\n if (isLoadingMenu || isLoadingAppInfo) {\n return <Page.Loading />;\n }\n\n return (\n <AppInfoProvider\n {...appInfo}\n userId={userId}\n latestStrapiReleaseTag={tagName}\n shouldUpdateStrapi={checkLatestStrapiVersion(strapiVersion, tagName)}\n >\n <NpsSurvey />\n <PluginsInitializer>\n <DndProvider backend={HTML5Backend}>\n <Box background=\"neutral100\">\n <SkipToContent>\n {formatMessage({ id: 'skipToContent', defaultMessage: 'Skip to content' })}\n </SkipToContent>\n <Flex\n height=\"100dvh\"\n direction={{\n initial: 'column',\n large: 'row',\n }}\n alignItems=\"flex-start\"\n >\n <LeftMenu\n generalSectionLinks={generalSectionLinks}\n pluginsSectionLinks={pluginsSectionLinks}\n topMobileNavigation={topMobileNavigation}\n burgerMobileNavigation={burgerMobileNavigation}\n />\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n flex={1}\n overflow=\"auto\"\n width=\"100%\"\n height={{\n initial: 'auto',\n large: '100%',\n }}\n >\n <UpsellBanner />\n <Outlet />\n </Flex>\n </Flex>\n </Box>\n </DndProvider>\n </PluginsInitializer>\n </AppInfoProvider>\n );\n};\n\nconst PrivateAdminLayout = () => {\n return (\n <PrivateRoute>\n <AdminLayout />\n </PrivateRoute>\n );\n};\n\nconst checkLatestStrapiVersion = (\n currentPackageVersion: string,\n latestPublishedVersion: string = ''\n): boolean => {\n if (!valid(currentPackageVersion) || !valid(latestPublishedVersion)) {\n return false;\n }\n\n return lt(currentPackageVersion, latestPublishedVersion);\n};\n\nexport { AdminLayout, PrivateAdminLayout };\n"],"names":["version","strapiVersion","packageInfo","AdminLayout","formatMessage","useIntl","userInfo","useAuth","state","user","userId","setUserId","React","useState","showReleaseNotification","useConfiguration","data","appInfo","isLoading","isLoadingAppInfo","useInformationQuery","tagName","setTagName","useEffect","fetch","then","res","ok","response","json","tag_name","Error","catch","hashAdminUserEmail","id","trackUsage","useTracking","isLoadingMenu","generalSectionLinks","pluginsSectionLinks","topMobileNavigation","burgerMobileNavigation","useMenu","checkLatestStrapiVersion","getAllWidgets","useStrapiApp","widgets","getAll","projectId","registeredWidgets","map","widget","uid","_jsx","Page","Loading","_jsxs","AppInfoProvider","latestStrapiReleaseTag","shouldUpdateStrapi","NpsSurvey","PluginsInitializer","DndProvider","backend","HTML5Backend","Box","background","SkipToContent","defaultMessage","Flex","height","direction","initial","large","alignItems","LeftMenu","flex","overflow","width","UpsellBanner","Outlet","PrivateAdminLayout","PrivateRoute","currentPackageVersion","latestPublishedVersion","valid","lt"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AuthenticatedLayout.mjs","sources":["../../../../../admin/src/layouts/AuthenticatedLayout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport packageInfo from '@strapi/admin/package.json';\nimport { Box, Flex, SkipToContent } from '@strapi/design-system';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { useIntl } from 'react-intl';\nimport lt from 'semver/functions/lt';\nimport valid from 'semver/functions/valid';\n\nimport { LazyOutlet } from '../components/LazyOutlet';\nimport { LeftMenu } from '../components/LeftMenu';\nimport { NpsSurvey } from '../components/NpsSurvey';\nimport { Page } from '../components/PageHelpers';\nimport { PluginsInitializer } from '../components/PluginsInitializer';\nimport { PrivateRoute } from '../components/PrivateRoute';\nimport { UpsellBanner } from '../components/UpsellBanner';\nimport { AppInfoProvider } from '../features/AppInfo';\nimport { useAuth } from '../features/Auth';\nimport { useConfiguration } from '../features/Configuration';\nimport { useStrapiApp } from '../features/StrapiApp';\nimport { useTracking } from '../features/Tracking';\nimport { useMenu } from '../hooks/useMenu';\nimport { useInformationQuery } from '../services/admin';\nimport { hashAdminUserEmail } from '../utils/users';\n\nconst { version: strapiVersion } = packageInfo;\n\nconst AdminLayout = () => {\n const { formatMessage } = useIntl();\n const userInfo = useAuth('AuthenticatedApp', (state) => state.user);\n const [userId, setUserId] = React.useState<string>();\n const { showReleaseNotification } = useConfiguration('AuthenticatedApp');\n\n const { data: appInfo, isLoading: isLoadingAppInfo } = useInformationQuery();\n const [tagName, setTagName] = React.useState<string>(strapiVersion);\n\n React.useEffect(() => {\n if (showReleaseNotification) {\n fetch('https://api.github.com/repos/strapi/strapi/releases/latest')\n .then(async (res) => {\n if (!res.ok) {\n return;\n }\n\n const response = (await res.json()) as { tag_name: string | null | undefined };\n\n if (!response.tag_name) {\n throw new Error();\n }\n\n setTagName(response.tag_name);\n })\n .catch(() => {\n /**\n * silence is golden & we'll use the strapiVersion as a fallback\n */\n });\n }\n }, [showReleaseNotification]);\n\n React.useEffect(() => {\n hashAdminUserEmail(userInfo).then((id) => {\n if (id) {\n setUserId(id);\n }\n });\n }, [userInfo]);\n\n const { trackUsage } = useTracking();\n\n const {\n isLoading: isLoadingMenu,\n generalSectionLinks,\n pluginsSectionLinks,\n topMobileNavigation,\n burgerMobileNavigation,\n } = useMenu(checkLatestStrapiVersion(strapiVersion, tagName));\n\n const getAllWidgets = useStrapiApp('TrackingProvider', (state) => state.widgets.getAll);\n const projectId = appInfo?.projectId;\n React.useEffect(() => {\n if (projectId) {\n trackUsage('didAccessAuthenticatedAdministration', {\n registeredWidgets: getAllWidgets().map((widget) => widget.uid),\n projectId,\n });\n }\n }, [projectId, getAllWidgets, trackUsage]);\n\n // We don't need to wait for the release query to be fetched before rendering the plugins\n // however, we need the appInfos and the permissions\n if (isLoadingMenu || isLoadingAppInfo) {\n return <Page.Loading />;\n }\n\n return (\n <AppInfoProvider\n {...appInfo}\n userId={userId}\n latestStrapiReleaseTag={tagName}\n shouldUpdateStrapi={checkLatestStrapiVersion(strapiVersion, tagName)}\n >\n <NpsSurvey />\n <PluginsInitializer>\n <DndProvider backend={HTML5Backend}>\n <Box background=\"neutral100\">\n <SkipToContent>\n {formatMessage({ id: 'skipToContent', defaultMessage: 'Skip to content' })}\n </SkipToContent>\n <Flex\n height=\"100dvh\"\n direction={{\n initial: 'column',\n large: 'row',\n }}\n alignItems=\"flex-start\"\n >\n <LeftMenu\n generalSectionLinks={generalSectionLinks}\n pluginsSectionLinks={pluginsSectionLinks}\n topMobileNavigation={topMobileNavigation}\n burgerMobileNavigation={burgerMobileNavigation}\n />\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n flex={1}\n overflow=\"auto\"\n width=\"100%\"\n height={{\n initial: 'auto',\n large: '100%',\n }}\n >\n <UpsellBanner />\n {/*\n * Top-level Suspense only — nested layouts (Settings, Content Manager) use\n * LazyOutlet with useNavigation so in-app navigations show loading in the content\n * column without hiding section side navs.\n */}\n <LazyOutlet suspenseOnly />\n </Flex>\n </Flex>\n </Box>\n </DndProvider>\n </PluginsInitializer>\n </AppInfoProvider>\n );\n};\n\nconst PrivateAdminLayout = () => {\n return (\n <PrivateRoute>\n <AdminLayout />\n </PrivateRoute>\n );\n};\n\nconst checkLatestStrapiVersion = (\n currentPackageVersion: string,\n latestPublishedVersion: string = ''\n): boolean => {\n if (!valid(currentPackageVersion) || !valid(latestPublishedVersion)) {\n return false;\n }\n\n return lt(currentPackageVersion, latestPublishedVersion);\n};\n\nexport { AdminLayout, PrivateAdminLayout };\n"],"names":["version","strapiVersion","packageInfo","AdminLayout","formatMessage","useIntl","userInfo","useAuth","state","user","userId","setUserId","React","useState","showReleaseNotification","useConfiguration","data","appInfo","isLoading","isLoadingAppInfo","useInformationQuery","tagName","setTagName","useEffect","fetch","then","res","ok","response","json","tag_name","Error","catch","hashAdminUserEmail","id","trackUsage","useTracking","isLoadingMenu","generalSectionLinks","pluginsSectionLinks","topMobileNavigation","burgerMobileNavigation","useMenu","checkLatestStrapiVersion","getAllWidgets","useStrapiApp","widgets","getAll","projectId","registeredWidgets","map","widget","uid","_jsx","Page","Loading","_jsxs","AppInfoProvider","latestStrapiReleaseTag","shouldUpdateStrapi","NpsSurvey","PluginsInitializer","DndProvider","backend","HTML5Backend","Box","background","SkipToContent","defaultMessage","Flex","height","direction","initial","large","alignItems","LeftMenu","flex","overflow","width","UpsellBanner","LazyOutlet","suspenseOnly","PrivateAdminLayout","PrivateRoute","currentPackageVersion","latestPublishedVersion","valid","lt"],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ var reactRouterDom = require('react-router-dom');
|
|
|
5
5
|
var Auth = require('../../features/Auth.js');
|
|
6
6
|
var useEnterprise = require('../../hooks/useEnterprise.js');
|
|
7
7
|
var admin = require('../../services/admin.js');
|
|
8
|
+
var retryDynamicImport = require('../../utils/retryDynamicImport.js');
|
|
8
9
|
var Login = require('./components/Login.js');
|
|
9
10
|
var constants = require('./constants.js');
|
|
10
11
|
|
|
@@ -16,8 +17,8 @@ var constants = require('./constants.js');
|
|
|
16
17
|
const authType = match?.params.authType;
|
|
17
18
|
const { data } = admin.useInitQuery();
|
|
18
19
|
const { hasAdmin } = data ?? {};
|
|
19
|
-
const Login$1 = useEnterprise.useEnterprise(Login.Login, async ()=>(await Promise.resolve().then(function () { return require('../../../../ee/admin/src/pages/AuthPage/components/Login.js'); })).LoginEE);
|
|
20
|
-
const forms = useEnterprise.useEnterprise(constants.FORMS, async ()=>(await Promise.resolve().then(function () { return require('../../../../ee/admin/src/pages/AuthPage/constants.js'); })).FORMS, {
|
|
20
|
+
const Login$1 = useEnterprise.useEnterprise(Login.Login, async ()=>(await retryDynamicImport.retryDynamicImport(()=>Promise.resolve().then(function () { return require('../../../../ee/admin/src/pages/AuthPage/components/Login.js'); }))).LoginEE);
|
|
21
|
+
const forms = useEnterprise.useEnterprise(constants.FORMS, async ()=>(await retryDynamicImport.retryDynamicImport(()=>Promise.resolve().then(function () { return require('../../../../ee/admin/src/pages/AuthPage/constants.js'); }))).FORMS, {
|
|
21
22
|
combine (ceForms, eeForms) {
|
|
22
23
|
return {
|
|
23
24
|
...ceForms,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthPage.js","sources":["../../../../../../admin/src/pages/Auth/AuthPage.tsx"],"sourcesContent":["import { Navigate, useLocation, useMatch } from 'react-router-dom';\n\nimport { useAuth } from '../../features/Auth';\nimport { useEnterprise } from '../../hooks/useEnterprise';\nimport { useInitQuery } from '../../services/admin';\n\nimport { Login as LoginCE } from './components/Login';\nimport { FORMS, FormDictionary } from './constants';\n\n/* -------------------------------------------------------------------------------------------------\n * AuthPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst AuthPage = () => {\n const { search } = useLocation();\n const match = useMatch('/auth/:authType');\n const authType = match?.params.authType;\n const { data } = useInitQuery();\n const { hasAdmin } = data ?? {};\n const Login = useEnterprise(\n LoginCE,\n async ()
|
|
1
|
+
{"version":3,"file":"AuthPage.js","sources":["../../../../../../admin/src/pages/Auth/AuthPage.tsx"],"sourcesContent":["import { Navigate, useLocation, useMatch } from 'react-router-dom';\n\nimport { useAuth } from '../../features/Auth';\nimport { useEnterprise } from '../../hooks/useEnterprise';\nimport { useInitQuery } from '../../services/admin';\nimport { retryDynamicImport } from '../../utils/retryDynamicImport';\n\nimport { Login as LoginCE } from './components/Login';\nimport { FORMS, FormDictionary } from './constants';\n\n/* -------------------------------------------------------------------------------------------------\n * AuthPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst AuthPage = () => {\n const { search } = useLocation();\n const match = useMatch('/auth/:authType');\n const authType = match?.params.authType;\n const { data } = useInitQuery();\n const { hasAdmin } = data ?? {};\n const Login = useEnterprise(\n LoginCE,\n async () =>\n (\n await retryDynamicImport(\n () => import('../../../../ee/admin/src/pages/AuthPage/components/Login')\n )\n ).LoginEE\n );\n const forms = useEnterprise<FormDictionary, Partial<FormDictionary>>(\n FORMS,\n async () =>\n (await retryDynamicImport(() => import('../../../../ee/admin/src/pages/AuthPage/constants')))\n .FORMS,\n {\n combine(ceForms, eeForms) {\n return {\n ...ceForms,\n ...eeForms,\n };\n },\n defaultValue: FORMS,\n }\n );\n\n const { token } = useAuth('AuthPage', (auth) => auth);\n\n if (!authType || !forms) {\n return <Navigate to=\"/\" />;\n }\n\n const Component = forms[authType as keyof FormDictionary];\n\n // Redirect the user to the login page if\n // the endpoint does not exists\n if (!Component) {\n return <Navigate to=\"/\" />;\n }\n\n // User is already logged in\n if (authType !== 'register-admin' && authType !== 'register' && token) {\n return <Navigate to=\"/\" />;\n }\n\n // there is already an admin user oo\n if (hasAdmin && authType === 'register-admin' && token) {\n return <Navigate to=\"/\" />;\n }\n\n // Redirect the user to the register-admin if it is the first user\n if (!hasAdmin && authType !== 'register-admin') {\n return (\n <Navigate\n to={{\n pathname: '/auth/register-admin',\n // Forward the `?redirectTo` from /auth/login\n // /abc => /auth/login?redirectTo=%2Fabc => /auth/register-admin?redirectTo=%2Fabc\n search,\n }}\n />\n );\n }\n\n if (Login && authType === 'login') {\n // Assign the component to render for the login form\n return <Login />;\n } else if (authType === 'login' && !Login) {\n // block rendering until the Login EE component is fully loaded\n return null;\n }\n\n return <Component hasAdmin={hasAdmin} />;\n};\n\nexport { AuthPage };\n"],"names":["AuthPage","search","useLocation","match","useMatch","authType","params","data","useInitQuery","hasAdmin","Login","useEnterprise","LoginCE","retryDynamicImport","LoginEE","forms","FORMS","combine","ceForms","eeForms","defaultValue","token","useAuth","auth","_jsx","Navigate","to","Component","pathname"],"mappings":";;;;;;;;;;;AAUA;;AAEkG,2GAE5FA,QAAAA,GAAW,IAAA;IACf,MAAM,EAAEC,MAAM,EAAE,GAAGC,0BAAAA,EAAAA;AACnB,IAAA,MAAMC,QAAQC,uBAAAA,CAAS,iBAAA,CAAA;IACvB,MAAMC,QAAAA,GAAWF,OAAOG,MAAAA,CAAOD,QAAAA;IAC/B,MAAM,EAAEE,IAAI,EAAE,GAAGC,kBAAAA,EAAAA;AACjB,IAAA,MAAM,EAAEC,QAAQ,EAAE,GAAGF,QAAQ,EAAC;AAC9B,IAAA,MAAMG,OAAAA,GAAQC,2BAAAA,CACZC,WAAAA,EACA,UACE,CACE,MAAMC,qCAAAA,CACJ,IAAM,oDAAO,6DAAA,KAAA,CACf,EACAC,OAAO,CAAA;AAEb,IAAA,MAAMC,KAAAA,GAAQJ,2BAAAA,CACZK,eAAAA,EACA,UACE,CAAC,MAAMH,qCAAAA,CAAmB,IAAM,oDAAO,sDAAA,KAAA,CAAoD,EACxFG,KAAK,EACV;QACEC,OAAAA,CAAAA,CAAQC,OAAO,EAAEC,OAAO,EAAA;YACtB,OAAO;AACL,gBAAA,GAAGD,OAAO;AACV,gBAAA,GAAGC;AACL,aAAA;AACF,QAAA,CAAA;QACAC,YAAAA,EAAcJ;AAChB,KAAA,CAAA;AAGF,IAAA,MAAM,EAAEK,KAAK,EAAE,GAAGC,YAAAA,CAAQ,UAAA,EAAY,CAACC,IAAAA,GAASA,IAAAA,CAAAA;IAEhD,IAAI,CAAClB,QAAAA,IAAY,CAACU,KAAAA,EAAO;AACvB,QAAA,qBAAOS,cAAA,CAACC,uBAAAA,EAAAA;YAASC,EAAAA,EAAG;;AACtB,IAAA;IAEA,MAAMC,SAAAA,GAAYZ,KAAK,CAACV,QAAAA,CAAiC;;;AAIzD,IAAA,IAAI,CAACsB,SAAAA,EAAW;AACd,QAAA,qBAAOH,cAAA,CAACC,uBAAAA,EAAAA;YAASC,EAAAA,EAAG;;AACtB,IAAA;;AAGA,IAAA,IAAIrB,QAAAA,KAAa,gBAAA,IAAoBA,QAAAA,KAAa,UAAA,IAAcgB,KAAAA,EAAO;AACrE,QAAA,qBAAOG,cAAA,CAACC,uBAAAA,EAAAA;YAASC,EAAAA,EAAG;;AACtB,IAAA;;IAGA,IAAIjB,QAAAA,IAAYJ,QAAAA,KAAa,gBAAA,IAAoBgB,KAAAA,EAAO;AACtD,QAAA,qBAAOG,cAAA,CAACC,uBAAAA,EAAAA;YAASC,EAAAA,EAAG;;AACtB,IAAA;;IAGA,IAAI,CAACjB,QAAAA,IAAYJ,QAAAA,KAAa,gBAAA,EAAkB;AAC9C,QAAA,qBACEmB,cAAA,CAACC,uBAAAA,EAAAA;YACCC,EAAAA,EAAI;gBACFE,QAAAA,EAAU,sBAAA;;;AAGV3B,gBAAAA;AACF;;AAGN,IAAA;IAEA,IAAIS,OAAAA,IAASL,aAAa,OAAA,EAAS;;AAEjC,QAAA,qBAAOmB,cAAA,CAACd,OAAAA,EAAAA,EAAAA,CAAAA;AACV,IAAA,CAAA,MAAO,IAAIL,QAAAA,KAAa,OAAA,IAAW,CAACK,OAAAA,EAAO;;QAEzC,OAAO,IAAA;AACT,IAAA;AAEA,IAAA,qBAAOc,cAAA,CAACG,SAAAA,EAAAA;QAAUlB,QAAAA,EAAUA;;AAC9B;;;;"}
|
|
@@ -3,6 +3,7 @@ import { useLocation, useMatch, Navigate } from 'react-router-dom';
|
|
|
3
3
|
import { useAuth } from '../../features/Auth.mjs';
|
|
4
4
|
import { useEnterprise } from '../../hooks/useEnterprise.mjs';
|
|
5
5
|
import { useInitQuery } from '../../services/admin.mjs';
|
|
6
|
+
import { retryDynamicImport } from '../../utils/retryDynamicImport.mjs';
|
|
6
7
|
import { Login } from './components/Login.mjs';
|
|
7
8
|
import { FORMS } from './constants.mjs';
|
|
8
9
|
|
|
@@ -14,8 +15,8 @@ import { FORMS } from './constants.mjs';
|
|
|
14
15
|
const authType = match?.params.authType;
|
|
15
16
|
const { data } = useInitQuery();
|
|
16
17
|
const { hasAdmin } = data ?? {};
|
|
17
|
-
const Login$1 = useEnterprise(Login, async ()=>(await import('../../../../ee/admin/src/pages/AuthPage/components/Login.mjs')).LoginEE);
|
|
18
|
-
const forms = useEnterprise(FORMS, async ()=>(await import('../../../../ee/admin/src/pages/AuthPage/constants.mjs')).FORMS, {
|
|
18
|
+
const Login$1 = useEnterprise(Login, async ()=>(await retryDynamicImport(()=>import('../../../../ee/admin/src/pages/AuthPage/components/Login.mjs'))).LoginEE);
|
|
19
|
+
const forms = useEnterprise(FORMS, async ()=>(await retryDynamicImport(()=>import('../../../../ee/admin/src/pages/AuthPage/constants.mjs'))).FORMS, {
|
|
19
20
|
combine (ceForms, eeForms) {
|
|
20
21
|
return {
|
|
21
22
|
...ceForms,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthPage.mjs","sources":["../../../../../../admin/src/pages/Auth/AuthPage.tsx"],"sourcesContent":["import { Navigate, useLocation, useMatch } from 'react-router-dom';\n\nimport { useAuth } from '../../features/Auth';\nimport { useEnterprise } from '../../hooks/useEnterprise';\nimport { useInitQuery } from '../../services/admin';\n\nimport { Login as LoginCE } from './components/Login';\nimport { FORMS, FormDictionary } from './constants';\n\n/* -------------------------------------------------------------------------------------------------\n * AuthPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst AuthPage = () => {\n const { search } = useLocation();\n const match = useMatch('/auth/:authType');\n const authType = match?.params.authType;\n const { data } = useInitQuery();\n const { hasAdmin } = data ?? {};\n const Login = useEnterprise(\n LoginCE,\n async ()
|
|
1
|
+
{"version":3,"file":"AuthPage.mjs","sources":["../../../../../../admin/src/pages/Auth/AuthPage.tsx"],"sourcesContent":["import { Navigate, useLocation, useMatch } from 'react-router-dom';\n\nimport { useAuth } from '../../features/Auth';\nimport { useEnterprise } from '../../hooks/useEnterprise';\nimport { useInitQuery } from '../../services/admin';\nimport { retryDynamicImport } from '../../utils/retryDynamicImport';\n\nimport { Login as LoginCE } from './components/Login';\nimport { FORMS, FormDictionary } from './constants';\n\n/* -------------------------------------------------------------------------------------------------\n * AuthPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst AuthPage = () => {\n const { search } = useLocation();\n const match = useMatch('/auth/:authType');\n const authType = match?.params.authType;\n const { data } = useInitQuery();\n const { hasAdmin } = data ?? {};\n const Login = useEnterprise(\n LoginCE,\n async () =>\n (\n await retryDynamicImport(\n () => import('../../../../ee/admin/src/pages/AuthPage/components/Login')\n )\n ).LoginEE\n );\n const forms = useEnterprise<FormDictionary, Partial<FormDictionary>>(\n FORMS,\n async () =>\n (await retryDynamicImport(() => import('../../../../ee/admin/src/pages/AuthPage/constants')))\n .FORMS,\n {\n combine(ceForms, eeForms) {\n return {\n ...ceForms,\n ...eeForms,\n };\n },\n defaultValue: FORMS,\n }\n );\n\n const { token } = useAuth('AuthPage', (auth) => auth);\n\n if (!authType || !forms) {\n return <Navigate to=\"/\" />;\n }\n\n const Component = forms[authType as keyof FormDictionary];\n\n // Redirect the user to the login page if\n // the endpoint does not exists\n if (!Component) {\n return <Navigate to=\"/\" />;\n }\n\n // User is already logged in\n if (authType !== 'register-admin' && authType !== 'register' && token) {\n return <Navigate to=\"/\" />;\n }\n\n // there is already an admin user oo\n if (hasAdmin && authType === 'register-admin' && token) {\n return <Navigate to=\"/\" />;\n }\n\n // Redirect the user to the register-admin if it is the first user\n if (!hasAdmin && authType !== 'register-admin') {\n return (\n <Navigate\n to={{\n pathname: '/auth/register-admin',\n // Forward the `?redirectTo` from /auth/login\n // /abc => /auth/login?redirectTo=%2Fabc => /auth/register-admin?redirectTo=%2Fabc\n search,\n }}\n />\n );\n }\n\n if (Login && authType === 'login') {\n // Assign the component to render for the login form\n return <Login />;\n } else if (authType === 'login' && !Login) {\n // block rendering until the Login EE component is fully loaded\n return null;\n }\n\n return <Component hasAdmin={hasAdmin} />;\n};\n\nexport { AuthPage };\n"],"names":["AuthPage","search","useLocation","match","useMatch","authType","params","data","useInitQuery","hasAdmin","Login","useEnterprise","LoginCE","retryDynamicImport","LoginEE","forms","FORMS","combine","ceForms","eeForms","defaultValue","token","useAuth","auth","_jsx","Navigate","to","Component","pathname"],"mappings":";;;;;;;;;AAUA;;AAEkG,2GAE5FA,QAAAA,GAAW,IAAA;IACf,MAAM,EAAEC,MAAM,EAAE,GAAGC,WAAAA,EAAAA;AACnB,IAAA,MAAMC,QAAQC,QAAAA,CAAS,iBAAA,CAAA;IACvB,MAAMC,QAAAA,GAAWF,OAAOG,MAAAA,CAAOD,QAAAA;IAC/B,MAAM,EAAEE,IAAI,EAAE,GAAGC,YAAAA,EAAAA;AACjB,IAAA,MAAM,EAAEC,QAAQ,EAAE,GAAGF,QAAQ,EAAC;AAC9B,IAAA,MAAMG,OAAAA,GAAQC,aAAAA,CACZC,KAAAA,EACA,UACE,CACE,MAAMC,kBAAAA,CACJ,IAAM,OAAO,8DAAA,CAAA,CACf,EACAC,OAAO,CAAA;AAEb,IAAA,MAAMC,KAAAA,GAAQJ,aAAAA,CACZK,KAAAA,EACA,UACE,CAAC,MAAMH,kBAAAA,CAAmB,IAAM,OAAO,uDAAA,CAAA,CAAoD,EACxFG,KAAK,EACV;QACEC,OAAAA,CAAAA,CAAQC,OAAO,EAAEC,OAAO,EAAA;YACtB,OAAO;AACL,gBAAA,GAAGD,OAAO;AACV,gBAAA,GAAGC;AACL,aAAA;AACF,QAAA,CAAA;QACAC,YAAAA,EAAcJ;AAChB,KAAA,CAAA;AAGF,IAAA,MAAM,EAAEK,KAAK,EAAE,GAAGC,OAAAA,CAAQ,UAAA,EAAY,CAACC,IAAAA,GAASA,IAAAA,CAAAA;IAEhD,IAAI,CAAClB,QAAAA,IAAY,CAACU,KAAAA,EAAO;AACvB,QAAA,qBAAOS,GAAA,CAACC,QAAAA,EAAAA;YAASC,EAAAA,EAAG;;AACtB,IAAA;IAEA,MAAMC,SAAAA,GAAYZ,KAAK,CAACV,QAAAA,CAAiC;;;AAIzD,IAAA,IAAI,CAACsB,SAAAA,EAAW;AACd,QAAA,qBAAOH,GAAA,CAACC,QAAAA,EAAAA;YAASC,EAAAA,EAAG;;AACtB,IAAA;;AAGA,IAAA,IAAIrB,QAAAA,KAAa,gBAAA,IAAoBA,QAAAA,KAAa,UAAA,IAAcgB,KAAAA,EAAO;AACrE,QAAA,qBAAOG,GAAA,CAACC,QAAAA,EAAAA;YAASC,EAAAA,EAAG;;AACtB,IAAA;;IAGA,IAAIjB,QAAAA,IAAYJ,QAAAA,KAAa,gBAAA,IAAoBgB,KAAAA,EAAO;AACtD,QAAA,qBAAOG,GAAA,CAACC,QAAAA,EAAAA;YAASC,EAAAA,EAAG;;AACtB,IAAA;;IAGA,IAAI,CAACjB,QAAAA,IAAYJ,QAAAA,KAAa,gBAAA,EAAkB;AAC9C,QAAA,qBACEmB,GAAA,CAACC,QAAAA,EAAAA;YACCC,EAAAA,EAAI;gBACFE,QAAAA,EAAU,sBAAA;;;AAGV3B,gBAAAA;AACF;;AAGN,IAAA;IAEA,IAAIS,OAAAA,IAASL,aAAa,OAAA,EAAS;;AAEjC,QAAA,qBAAOmB,GAAA,CAACd,OAAAA,EAAAA,EAAAA,CAAAA;AACV,IAAA,CAAA,MAAO,IAAIL,QAAAA,KAAa,OAAA,IAAW,CAACK,OAAAA,EAAO;;QAEzC,OAAO,IAAA;AACT,IAAA;AAEA,IAAA,qBAAOc,GAAA,CAACG,SAAAA,EAAAA;QAAUlB,QAAAA,EAAUA;;AAC9B;;;;"}
|
|
@@ -14,7 +14,8 @@ var auth = require('../../../services/auth.js');
|
|
|
14
14
|
var baseQuery = require('../../../utils/baseQuery.js');
|
|
15
15
|
var translatedErrors = require('../../../utils/translatedErrors.js');
|
|
16
16
|
|
|
17
|
-
function
|
|
17
|
+
function _interopNamespace(e) {
|
|
18
|
+
if (e && e.__esModule) return e;
|
|
18
19
|
var n = Object.create(null);
|
|
19
20
|
if (e) {
|
|
20
21
|
Object.keys(e).forEach(function (k) {
|
|
@@ -31,7 +32,7 @@ function _interopNamespaceDefault(e) {
|
|
|
31
32
|
return Object.freeze(n);
|
|
32
33
|
}
|
|
33
34
|
|
|
34
|
-
var yup__namespace = /*#__PURE__*/
|
|
35
|
+
var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
|
|
35
36
|
|
|
36
37
|
const ForgotPassword = ()=>{
|
|
37
38
|
const navigate = reactRouterDom.useNavigate();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ForgotPassword.js","sources":["../../../../../../../admin/src/pages/Auth/components/ForgotPassword.tsx"],"sourcesContent":["import { Box, Button, Flex, Main, Typography, Link } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useNavigate } from 'react-router-dom';\nimport * as yup from 'yup';\n\nimport { Form } from '../../../components/Form';\nimport { InputRenderer } from '../../../components/FormInputs/Renderer';\nimport { Logo } from '../../../components/UnauthenticatedLogo';\nimport { useAPIErrorHandler } from '../../../hooks/useAPIErrorHandler';\nimport {\n Column,\n LayoutContent,\n UnauthenticatedLayout,\n} from '../../../layouts/UnauthenticatedLayout';\nimport { useForgotPasswordMutation } from '../../../services/auth';\nimport { isBaseQueryError } from '../../../utils/baseQuery';\nimport { translatedErrors } from '../../../utils/translatedErrors';\n\nimport type { ForgotPassword } from '../../../../../shared/contracts/authentication';\n\nconst ForgotPassword = () => {\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const [forgotPassword, { error }] = useForgotPasswordMutation();\n\n return (\n <UnauthenticatedLayout>\n <Main>\n <LayoutContent>\n <Column>\n <Logo />\n <Box paddingTop={6} paddingBottom={7}>\n <Typography tag=\"h1\" variant=\"alpha\">\n {formatMessage({\n id: 'Auth.form.button.password-recovery',\n defaultMessage: 'Password Recovery',\n })}\n </Typography>\n </Box>\n {error ? (\n <Typography id=\"global-form-error\" role=\"alert\" tabIndex={-1} textColor=\"danger600\">\n {isBaseQueryError(error)\n ? formatAPIError(error)\n : formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n })}\n </Typography>\n ) : null}\n </Column>\n <Form\n method=\"POST\"\n initialValues={{\n email: '',\n }}\n onSubmit={async (body) => {\n const res = await forgotPassword(body);\n\n if (!('error' in res)) {\n navigate('/auth/forgot-password-success');\n }\n }}\n validationSchema={yup.object().shape({\n email: yup\n .string()\n .email(translatedErrors.email)\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required.',\n })\n .nullable(),\n })}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {[\n {\n label: formatMessage({ id: 'Auth.form.email.label', defaultMessage: 'Email' }),\n name: 'email',\n placeholder: formatMessage({\n id: 'Auth.form.email.placeholder',\n defaultMessage: 'kai@doe.com',\n }),\n required: true,\n type: 'string' as const,\n },\n ].map((field) => (\n <InputRenderer key={field.name} {...field} />\n ))}\n <Button type=\"submit\" fullWidth>\n {formatMessage({\n id: 'Auth.form.button.forgot-password',\n defaultMessage: 'Send Email',\n })}\n </Button>\n </Flex>\n </Form>\n </LayoutContent>\n <Flex justifyContent=\"center\">\n <Box paddingTop={4}>\n <Link tag={NavLink} to=\"/auth/login\">\n {formatMessage({ id: 'Auth.link.ready', defaultMessage: 'Ready to sign in?' })}\n </Link>\n </Box>\n </Flex>\n </Main>\n </UnauthenticatedLayout>\n );\n};\n\nexport { ForgotPassword };\n"],"names":["ForgotPassword","navigate","useNavigate","formatMessage","useIntl","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","forgotPassword","error","useForgotPasswordMutation","_jsx","UnauthenticatedLayout","_jsxs","Main","LayoutContent","Column","Logo","Box","paddingTop","paddingBottom","Typography","tag","variant","id","defaultMessage","role","tabIndex","textColor","isBaseQueryError","Form","method","initialValues","email","onSubmit","body","res","validationSchema","yup","object","shape","string","translatedErrors","required","nullable","Flex","direction","alignItems","gap","label","name","placeholder","type","map","field","InputRenderer","Button","fullWidth","justifyContent","Link","NavLink","to"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ForgotPassword.js","sources":["../../../../../../../admin/src/pages/Auth/components/ForgotPassword.tsx"],"sourcesContent":["import { Box, Button, Flex, Main, Typography, Link } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useNavigate } from 'react-router-dom';\nimport * as yup from 'yup';\n\nimport { Form } from '../../../components/Form';\nimport { InputRenderer } from '../../../components/FormInputs/Renderer';\nimport { Logo } from '../../../components/UnauthenticatedLogo';\nimport { useAPIErrorHandler } from '../../../hooks/useAPIErrorHandler';\nimport {\n Column,\n LayoutContent,\n UnauthenticatedLayout,\n} from '../../../layouts/UnauthenticatedLayout';\nimport { useForgotPasswordMutation } from '../../../services/auth';\nimport { isBaseQueryError } from '../../../utils/baseQuery';\nimport { translatedErrors } from '../../../utils/translatedErrors';\n\nimport type { ForgotPassword } from '../../../../../shared/contracts/authentication';\n\nconst ForgotPassword = () => {\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const [forgotPassword, { error }] = useForgotPasswordMutation();\n\n return (\n <UnauthenticatedLayout>\n <Main>\n <LayoutContent>\n <Column>\n <Logo />\n <Box paddingTop={6} paddingBottom={7}>\n <Typography tag=\"h1\" variant=\"alpha\">\n {formatMessage({\n id: 'Auth.form.button.password-recovery',\n defaultMessage: 'Password Recovery',\n })}\n </Typography>\n </Box>\n {error ? (\n <Typography id=\"global-form-error\" role=\"alert\" tabIndex={-1} textColor=\"danger600\">\n {isBaseQueryError(error)\n ? formatAPIError(error)\n : formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n })}\n </Typography>\n ) : null}\n </Column>\n <Form\n method=\"POST\"\n initialValues={{\n email: '',\n }}\n onSubmit={async (body) => {\n const res = await forgotPassword(body);\n\n if (!('error' in res)) {\n navigate('/auth/forgot-password-success');\n }\n }}\n validationSchema={yup.object().shape({\n email: yup\n .string()\n .email(translatedErrors.email)\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required.',\n })\n .nullable(),\n })}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {[\n {\n label: formatMessage({ id: 'Auth.form.email.label', defaultMessage: 'Email' }),\n name: 'email',\n placeholder: formatMessage({\n id: 'Auth.form.email.placeholder',\n defaultMessage: 'kai@doe.com',\n }),\n required: true,\n type: 'string' as const,\n },\n ].map((field) => (\n <InputRenderer key={field.name} {...field} />\n ))}\n <Button type=\"submit\" fullWidth>\n {formatMessage({\n id: 'Auth.form.button.forgot-password',\n defaultMessage: 'Send Email',\n })}\n </Button>\n </Flex>\n </Form>\n </LayoutContent>\n <Flex justifyContent=\"center\">\n <Box paddingTop={4}>\n <Link tag={NavLink} to=\"/auth/login\">\n {formatMessage({ id: 'Auth.link.ready', defaultMessage: 'Ready to sign in?' })}\n </Link>\n </Box>\n </Flex>\n </Main>\n </UnauthenticatedLayout>\n );\n};\n\nexport { ForgotPassword };\n"],"names":["ForgotPassword","navigate","useNavigate","formatMessage","useIntl","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","forgotPassword","error","useForgotPasswordMutation","_jsx","UnauthenticatedLayout","_jsxs","Main","LayoutContent","Column","Logo","Box","paddingTop","paddingBottom","Typography","tag","variant","id","defaultMessage","role","tabIndex","textColor","isBaseQueryError","Form","method","initialValues","email","onSubmit","body","res","validationSchema","yup","object","shape","string","translatedErrors","required","nullable","Flex","direction","alignItems","gap","label","name","placeholder","type","map","field","InputRenderer","Button","fullWidth","justifyContent","Link","NavLink","to"],"mappings":"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"}
|
|
@@ -14,7 +14,10 @@ var Auth = require('../../../features/Auth.js');
|
|
|
14
14
|
var UnauthenticatedLayout = require('../../../layouts/UnauthenticatedLayout.js');
|
|
15
15
|
var translatedErrors = require('../../../utils/translatedErrors.js');
|
|
16
16
|
|
|
17
|
-
function
|
|
17
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
18
|
+
|
|
19
|
+
function _interopNamespace(e) {
|
|
20
|
+
if (e && e.__esModule) return e;
|
|
18
21
|
var n = Object.create(null);
|
|
19
22
|
if (e) {
|
|
20
23
|
Object.keys(e).forEach(function (k) {
|
|
@@ -31,8 +34,9 @@ function _interopNamespaceDefault(e) {
|
|
|
31
34
|
return Object.freeze(n);
|
|
32
35
|
}
|
|
33
36
|
|
|
34
|
-
var React__namespace = /*#__PURE__*/
|
|
35
|
-
var
|
|
37
|
+
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
38
|
+
var camelCase__default = /*#__PURE__*/_interopDefault(camelCase);
|
|
39
|
+
var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
|
|
36
40
|
|
|
37
41
|
const LOGIN_SCHEMA = yup__namespace.object().shape({
|
|
38
42
|
email: yup__namespace.string().nullable().email({
|
|
@@ -56,7 +60,7 @@ const Login = ({ children })=>{
|
|
|
56
60
|
const res = await login(body);
|
|
57
61
|
if ('error' in res) {
|
|
58
62
|
const message = res.error.message ?? 'Something went wrong';
|
|
59
|
-
if (
|
|
63
|
+
if (camelCase__default.default(message).toLowerCase() === 'usernotactive') {
|
|
60
64
|
navigate('/auth/oops');
|
|
61
65
|
return;
|
|
62
66
|
}
|