@strapi/admin 5.25.0 → 5.27.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/App.js +6 -2
- package/dist/admin/admin/src/App.js.map +1 -1
- package/dist/admin/admin/src/App.mjs +7 -3
- package/dist/admin/admin/src/App.mjs.map +1 -1
- package/dist/admin/admin/src/components/ErrorElement.js +10 -3
- package/dist/admin/admin/src/components/ErrorElement.js.map +1 -1
- package/dist/admin/admin/src/components/ErrorElement.mjs +10 -3
- package/dist/admin/admin/src/components/ErrorElement.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Context.js +26 -1
- package/dist/admin/admin/src/components/GuidedTour/Context.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Context.mjs +26 -1
- package/dist/admin/admin/src/components/GuidedTour/Context.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/GuidedTourProvider.js +15 -0
- package/dist/admin/admin/src/components/GuidedTour/GuidedTourProvider.js.map +1 -0
- package/dist/admin/admin/src/components/GuidedTour/GuidedTourProvider.mjs +13 -0
- package/dist/admin/admin/src/components/GuidedTour/GuidedTourProvider.mjs.map +1 -0
- package/dist/admin/admin/src/components/GuidedTour/Overview.js +2 -1
- package/dist/admin/admin/src/components/GuidedTour/Overview.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Overview.mjs +2 -1
- package/dist/admin/admin/src/components/GuidedTour/Overview.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.js +162 -25
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.mjs +164 -27
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js +28 -9
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.mjs +30 -11
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Tours.js +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Tours.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Tours.mjs +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Tours.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/utils/migrations.js +2 -1
- package/dist/admin/admin/src/components/GuidedTour/utils/migrations.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/utils/migrations.mjs +2 -1
- package/dist/admin/admin/src/components/GuidedTour/utils/migrations.mjs.map +1 -1
- package/dist/admin/admin/src/components/Layouts/ActionLayout.js +3 -2
- package/dist/admin/admin/src/components/Layouts/ActionLayout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/ActionLayout.mjs +3 -2
- package/dist/admin/admin/src/components/Layouts/ActionLayout.mjs.map +1 -1
- package/dist/admin/admin/src/components/Layouts/ContentLayout.js +3 -2
- package/dist/admin/admin/src/components/Layouts/ContentLayout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/ContentLayout.mjs +3 -2
- package/dist/admin/admin/src/components/Layouts/ContentLayout.mjs.map +1 -1
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.js +65 -32
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs +66 -33
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs.map +1 -1
- package/dist/admin/admin/src/components/Layouts/Layout.js +29 -6
- package/dist/admin/admin/src/components/Layouts/Layout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/Layout.mjs +30 -7
- package/dist/admin/admin/src/components/Layouts/Layout.mjs.map +1 -1
- package/dist/admin/admin/src/components/LeftMenu.js +147 -92
- package/dist/admin/admin/src/components/LeftMenu.js.map +1 -1
- package/dist/admin/admin/src/components/LeftMenu.mjs +131 -95
- package/dist/admin/admin/src/components/LeftMenu.mjs.map +1 -1
- package/dist/admin/admin/src/components/MainNav/MainNav.js +20 -6
- package/dist/admin/admin/src/components/MainNav/MainNav.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/MainNav.mjs +20 -6
- package/dist/admin/admin/src/components/MainNav/MainNav.mjs.map +1 -1
- package/dist/admin/admin/src/components/MainNav/MainNavLinks.js +157 -0
- package/dist/admin/admin/src/components/MainNav/MainNavLinks.js.map +1 -0
- package/dist/admin/admin/src/components/MainNav/MainNavLinks.mjs +154 -0
- package/dist/admin/admin/src/components/MainNav/MainNavLinks.mjs.map +1 -0
- package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.js +65 -0
- package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.js.map +1 -0
- package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.mjs +63 -0
- package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.mjs.map +1 -0
- package/dist/admin/admin/src/components/MainNav/NavLink.js +2 -1
- package/dist/admin/admin/src/components/MainNav/NavLink.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavLink.mjs +2 -1
- package/dist/admin/admin/src/components/MainNav/NavLink.mjs.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavUser.js +39 -22
- package/dist/admin/admin/src/components/MainNav/NavUser.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavUser.mjs +39 -22
- package/dist/admin/admin/src/components/MainNav/NavUser.mjs.map +1 -1
- package/dist/admin/admin/src/components/MainNav/TrialCountdown.js +8 -1
- package/dist/admin/admin/src/components/MainNav/TrialCountdown.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/TrialCountdown.mjs +9 -2
- package/dist/admin/admin/src/components/MainNav/TrialCountdown.mjs.map +1 -1
- package/dist/admin/admin/src/components/NpsSurvey.js +161 -120
- package/dist/admin/admin/src/components/NpsSurvey.js.map +1 -1
- package/dist/admin/admin/src/components/NpsSurvey.mjs +162 -121
- package/dist/admin/admin/src/components/NpsSurvey.mjs.map +1 -1
- package/dist/admin/admin/src/components/PageHelpers.js +1 -1
- package/dist/admin/admin/src/components/PageHelpers.js.map +1 -1
- package/dist/admin/admin/src/components/PageHelpers.mjs +1 -1
- package/dist/admin/admin/src/components/PageHelpers.mjs.map +1 -1
- package/dist/admin/admin/src/components/Providers.js +2 -4
- package/dist/admin/admin/src/components/Providers.js.map +1 -1
- package/dist/admin/admin/src/components/Providers.mjs +2 -4
- package/dist/admin/admin/src/components/Providers.mjs.map +1 -1
- package/dist/admin/admin/src/components/SubNav.js +98 -33
- package/dist/admin/admin/src/components/SubNav.js.map +1 -1
- package/dist/admin/admin/src/components/SubNav.mjs +99 -34
- package/dist/admin/admin/src/components/SubNav.mjs.map +1 -1
- package/dist/admin/admin/src/components/UpsellBanner.js +3 -2
- package/dist/admin/admin/src/components/UpsellBanner.js.map +1 -1
- package/dist/admin/admin/src/components/UpsellBanner.mjs +3 -2
- package/dist/admin/admin/src/components/UpsellBanner.mjs.map +1 -1
- package/dist/admin/admin/src/constants/theme.js +12 -0
- package/dist/admin/admin/src/constants/theme.js.map +1 -0
- package/dist/admin/admin/src/constants/theme.mjs +9 -0
- package/dist/admin/admin/src/constants/theme.mjs.map +1 -0
- package/dist/admin/admin/src/features/Notifications.js +14 -7
- package/dist/admin/admin/src/features/Notifications.js.map +1 -1
- package/dist/admin/admin/src/features/Notifications.mjs +15 -8
- package/dist/admin/admin/src/features/Notifications.mjs.map +1 -1
- package/dist/admin/admin/src/features/Tracking.js +7 -2
- package/dist/admin/admin/src/features/Tracking.js.map +1 -1
- package/dist/admin/admin/src/features/Tracking.mjs +7 -2
- package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useAIAvailability.js +13 -0
- package/dist/admin/admin/src/hooks/useAIAvailability.js.map +1 -0
- package/dist/admin/admin/src/hooks/useAIAvailability.mjs +11 -0
- package/dist/admin/admin/src/hooks/useAIAvailability.mjs.map +1 -0
- package/dist/admin/admin/src/hooks/useDeviceType.js +43 -0
- package/dist/admin/admin/src/hooks/useDeviceType.js.map +1 -0
- package/dist/admin/admin/src/hooks/useDeviceType.mjs +22 -0
- package/dist/admin/admin/src/hooks/useDeviceType.mjs.map +1 -0
- package/dist/admin/admin/src/hooks/useMediaQuery.js +70 -0
- package/dist/admin/admin/src/hooks/useMediaQuery.js.map +1 -0
- package/dist/admin/admin/src/hooks/useMediaQuery.mjs +46 -0
- package/dist/admin/admin/src/hooks/useMediaQuery.mjs.map +1 -0
- package/dist/admin/admin/src/hooks/useMenu.js +19 -0
- package/dist/admin/admin/src/hooks/useMenu.js.map +1 -1
- package/dist/admin/admin/src/hooks/useMenu.mjs +19 -0
- package/dist/admin/admin/src/hooks/useMenu.mjs.map +1 -1
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.js +15 -2
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.js.map +1 -1
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs +15 -2
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs.map +1 -1
- package/dist/admin/admin/src/layouts/UnauthenticatedLayout.js +11 -7
- package/dist/admin/admin/src/layouts/UnauthenticatedLayout.js.map +1 -1
- package/dist/admin/admin/src/layouts/UnauthenticatedLayout.mjs +11 -7
- package/dist/admin/admin/src/layouts/UnauthenticatedLayout.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Login.js +3 -0
- package/dist/admin/admin/src/pages/Auth/components/Login.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Login.mjs +3 -0
- package/dist/admin/admin/src/pages/Auth/components/Login.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.js +56 -54
- package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.mjs +56 -54
- package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/ProfilePage.js +54 -51
- package/dist/admin/admin/src/pages/ProfilePage.js.map +1 -1
- package/dist/admin/admin/src/pages/ProfilePage.mjs +55 -52
- package/dist/admin/admin/src/pages/ProfilePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/Layout.js +42 -6
- package/dist/admin/admin/src/pages/Settings/Layout.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/Layout.mjs +43 -7
- package/dist/admin/admin/src/pages/Settings/Layout.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js +44 -32
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs +45 -33
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js +13 -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 +14 -3
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.js +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.mjs +2 -2
- package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.js +4 -3
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.mjs +5 -4
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.js +4 -3
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.mjs +5 -4
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.js +4 -3
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.mjs +5 -4
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js +36 -32
- 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/ContentTypeCollapses.mjs +36 -32
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.mjs +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.mjs.map +1 -1
- package/dist/admin/admin/src/render.js +6 -1
- package/dist/admin/admin/src/render.js.map +1 -1
- package/dist/admin/admin/src/render.mjs +6 -1
- package/dist/admin/admin/src/render.mjs.map +1 -1
- package/dist/admin/admin/src/services/api.js +2 -1
- package/dist/admin/admin/src/services/api.js.map +1 -1
- package/dist/admin/admin/src/services/api.mjs +2 -1
- package/dist/admin/admin/src/services/api.mjs.map +1 -1
- package/dist/admin/admin/src/services/auth.js +13 -2
- package/dist/admin/admin/src/services/auth.js.map +1 -1
- package/dist/admin/admin/src/services/auth.mjs +12 -3
- package/dist/admin/admin/src/services/auth.mjs.map +1 -1
- package/dist/admin/admin/src/translations/en.json.js +3 -0
- package/dist/admin/admin/src/translations/en.json.js.map +1 -1
- package/dist/admin/admin/src/translations/en.json.mjs +3 -0
- package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
- package/dist/admin/ee/admin/src/components/GlobalNotifications.js +11 -0
- package/dist/admin/ee/admin/src/components/GlobalNotifications.js.map +1 -0
- package/dist/admin/ee/admin/src/components/GlobalNotifications.mjs +9 -0
- package/dist/admin/ee/admin/src/components/GlobalNotifications.mjs.map +1 -0
- package/dist/admin/ee/admin/src/hooks/useAIAvailability.js +11 -0
- package/dist/admin/ee/admin/src/hooks/useAIAvailability.js.map +1 -0
- package/dist/admin/ee/admin/src/hooks/useAIAvailability.mjs +9 -0
- package/dist/admin/ee/admin/src/hooks/useAIAvailability.mjs.map +1 -0
- package/dist/admin/ee/admin/src/hooks/useAIUsageWarning.js +82 -0
- package/dist/admin/ee/admin/src/hooks/useAIUsageWarning.js.map +1 -0
- package/dist/admin/ee/admin/src/hooks/useAIUsageWarning.mjs +80 -0
- package/dist/admin/ee/admin/src/hooks/useAIUsageWarning.mjs.map +1 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js +102 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js.map +1 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.mjs +100 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.mjs.map +1 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs.map +1 -1
- package/dist/admin/ee/admin/src/services/ai.js +33 -0
- package/dist/admin/ee/admin/src/services/ai.js.map +1 -0
- package/dist/admin/ee/admin/src/services/ai.mjs +29 -0
- package/dist/admin/ee/admin/src/services/ai.mjs.map +1 -0
- package/dist/admin/ee.js +4 -0
- package/dist/admin/ee.js.map +1 -1
- package/dist/admin/ee.mjs +2 -0
- package/dist/admin/ee.mjs.map +1 -1
- package/dist/admin/index.js +13 -0
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +5 -0
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/src/components/GuidedTour/Context.d.ts +11 -0
- package/dist/admin/src/components/GuidedTour/GuidedTourProvider.d.ts +6 -0
- package/dist/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.d.ts +7 -16
- package/dist/admin/src/components/GuidedTour/Tours.d.ts +1 -22
- package/dist/admin/src/components/LeftMenu.d.ts +2 -2
- package/dist/admin/src/components/MainNav/MainNavLinks.d.ts +11 -0
- package/dist/admin/src/components/MainNav/NavBurgerMenu.d.ts +9 -0
- package/dist/admin/src/components/MainNav/NavUser.d.ts +5 -4
- package/dist/admin/src/components/SubNav.d.ts +18 -5
- package/dist/admin/src/constants/theme.d.ts +7 -0
- package/dist/admin/src/core/store/configure.d.ts +2 -2
- package/dist/admin/src/core/store/hooks.d.ts +2 -2
- package/dist/admin/src/ee.d.ts +2 -0
- package/dist/admin/src/features/Tracking.d.ts +21 -2
- package/dist/admin/src/hooks/useAIAvailability.d.ts +5 -0
- package/dist/admin/src/hooks/useAdminRoles.d.ts +1 -1
- package/dist/admin/src/hooks/useDeviceType.d.ts +6 -0
- package/dist/admin/src/hooks/useMediaQuery.d.ts +21 -0
- package/dist/admin/src/hooks/useMenu.d.ts +9 -1
- package/dist/admin/src/index.d.ts +6 -0
- package/dist/admin/src/pages/Marketplace/hooks/useMarketplaceData.d.ts +2 -2
- package/dist/admin/src/pages/Settings/components/SettingsNav.d.ts +3 -6
- package/dist/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.d.ts +4 -4
- package/dist/admin/src/selectors.d.ts +2 -2
- package/dist/admin/src/services/admin.d.ts +7 -6
- 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 +21 -12
- package/dist/admin/src/services/contentApi.d.ts +1 -1
- package/dist/admin/src/services/contentManager.d.ts +1 -1
- package/dist/admin/src/services/homepage.d.ts +3 -3
- package/dist/admin/src/services/transferTokens.d.ts +1 -1
- package/dist/admin/src/services/users.d.ts +8 -8
- package/dist/admin/src/services/webhooks.d.ts +2 -2
- package/dist/admin/tests/utils.d.ts +1 -1
- package/dist/ee/admin/src/components/GlobalNotifications.d.ts +1 -0
- package/dist/ee/admin/src/hooks/useAIAvailability.d.ts +1 -0
- package/dist/ee/admin/src/hooks/useAIUsageWarning.d.ts +5 -0
- package/dist/ee/admin/src/hooks/useLicenseLimits.d.ts +1 -1
- package/dist/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.d.ts +1 -0
- package/dist/ee/admin/src/services/ai.d.ts +9 -0
- package/dist/ee/admin/src/services/auditLogs.d.ts +1 -1
- package/dist/ee/server/src/ai/controllers/ai.d.ts +7 -0
- package/dist/ee/server/src/ai/controllers/ai.d.ts.map +1 -0
- package/dist/ee/server/src/ai/routes/ai.d.ts +13 -0
- package/dist/ee/server/src/ai/routes/ai.d.ts.map +1 -0
- package/dist/ee/server/src/controllers/admin.d.ts +3 -0
- package/dist/ee/server/src/controllers/admin.d.ts.map +1 -1
- package/dist/ee/server/src/controllers/index.d.ts +3 -0
- package/dist/ee/server/src/controllers/index.d.ts.map +1 -1
- package/dist/ee/server/src/index.d.ts +15 -187
- package/dist/ee/server/src/index.d.ts.map +1 -1
- package/dist/server/ee/server/src/ai/controllers/ai.js +218 -0
- package/dist/server/ee/server/src/ai/controllers/ai.js.map +1 -0
- package/dist/server/ee/server/src/ai/controllers/ai.mjs +216 -0
- package/dist/server/ee/server/src/ai/controllers/ai.mjs.map +1 -0
- package/dist/server/ee/server/src/ai/routes/ai.js +32 -0
- package/dist/server/ee/server/src/ai/routes/ai.js.map +1 -0
- package/dist/server/ee/server/src/ai/routes/ai.mjs +30 -0
- package/dist/server/ee/server/src/ai/routes/ai.mjs.map +1 -0
- package/dist/server/ee/server/src/controllers/admin.js +4 -1
- package/dist/server/ee/server/src/controllers/admin.js.map +1 -1
- package/dist/server/ee/server/src/controllers/admin.mjs +4 -1
- package/dist/server/ee/server/src/controllers/admin.mjs.map +1 -1
- package/dist/server/ee/server/src/index.js +37 -23
- package/dist/server/ee/server/src/index.js.map +1 -1
- package/dist/server/ee/server/src/index.mjs +37 -23
- package/dist/server/ee/server/src/index.mjs.map +1 -1
- package/dist/server/server/src/controllers/admin.js +5 -1
- package/dist/server/server/src/controllers/admin.js.map +1 -1
- package/dist/server/server/src/controllers/admin.mjs +5 -1
- package/dist/server/server/src/controllers/admin.mjs.map +1 -1
- package/dist/server/server/src/controllers/authenticated-user.js +15 -0
- package/dist/server/server/src/controllers/authenticated-user.js.map +1 -1
- package/dist/server/server/src/controllers/authenticated-user.mjs +15 -0
- package/dist/server/server/src/controllers/authenticated-user.mjs.map +1 -1
- package/dist/server/server/src/routes/users.js +10 -0
- package/dist/server/server/src/routes/users.js.map +1 -1
- package/dist/server/server/src/routes/users.mjs +10 -0
- package/dist/server/server/src/routes/users.mjs.map +1 -1
- package/dist/server/server/src/services/user.js +113 -1
- package/dist/server/server/src/services/user.js.map +1 -1
- package/dist/server/server/src/services/user.mjs +113 -1
- package/dist/server/server/src/services/user.mjs.map +1 -1
- package/dist/server/src/controllers/admin.d.ts +2 -0
- package/dist/server/src/controllers/admin.d.ts.map +1 -1
- package/dist/server/src/controllers/authenticated-user.d.ts +1 -0
- package/dist/server/src/controllers/authenticated-user.d.ts.map +1 -1
- package/dist/server/src/controllers/index.d.ts +3 -0
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +7 -0
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/routes/users.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +4 -0
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/user.d.ts +4 -0
- package/dist/server/src/services/user.d.ts.map +1 -1
- package/dist/shared/contracts/admin.d.ts +1 -0
- package/dist/shared/contracts/admin.d.ts.map +1 -1
- package/dist/shared/contracts/ai.d.ts +40 -0
- package/dist/shared/contracts/ai.d.ts.map +1 -0
- package/dist/shared/contracts/users.d.ts +32 -0
- package/dist/shared/contracts/users.d.ts.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sources":["../../../../../admin/src/services/api.ts"],"sourcesContent":["import { createApi } from '@reduxjs/toolkit/query/react';\n\nimport { fetchBaseQuery } from '../utils/baseQuery';\n\n/**\n * @public\n * @description This is the redux toolkit api for the admin panel, users\n * should use a combination of `enhanceEndpoints` to add their TagTypes\n * to utilise in their `injectEndpoints` construction for automatic cache\n * re-validation. We specifically do not store any tagTypes by default leaving\n * the API surface as small as possible. None of the data-fetching looks for the\n * StrapiApp are stored here either.\n */\nconst adminApi = createApi({\n reducerPath: 'adminApi',\n baseQuery: fetchBaseQuery(),\n tagTypes: ['GuidedTourMeta', 'HomepageKeyStatistics'],\n endpoints: () => ({}),\n});\n\nexport { adminApi };\n"],"names":["adminApi","createApi","reducerPath","baseQuery","fetchBaseQuery","tagTypes","endpoints"],"mappings":";;;;;AAIA;;;;;;;;IASA,MAAMA,WAAWC,eAAU,CAAA;IACzBC,WAAa,EAAA,UAAA;IACbC,SAAWC,EAAAA,wBAAAA,EAAAA;IACXC,QAAU,EAAA;AAAC,QAAA,gBAAA;AAAkB,QAAA;
|
|
1
|
+
{"version":3,"file":"api.js","sources":["../../../../../admin/src/services/api.ts"],"sourcesContent":["import { createApi } from '@reduxjs/toolkit/query/react';\n\nimport { fetchBaseQuery } from '../utils/baseQuery';\n\n/**\n * @public\n * @description This is the redux toolkit api for the admin panel, users\n * should use a combination of `enhanceEndpoints` to add their TagTypes\n * to utilise in their `injectEndpoints` construction for automatic cache\n * re-validation. We specifically do not store any tagTypes by default leaving\n * the API surface as small as possible. None of the data-fetching looks for the\n * StrapiApp are stored here either.\n */\nconst adminApi = createApi({\n reducerPath: 'adminApi',\n baseQuery: fetchBaseQuery(),\n tagTypes: ['GuidedTourMeta', 'HomepageKeyStatistics', 'AIUsage'],\n endpoints: () => ({}),\n});\n\nexport { adminApi };\n"],"names":["adminApi","createApi","reducerPath","baseQuery","fetchBaseQuery","tagTypes","endpoints"],"mappings":";;;;;AAIA;;;;;;;;IASA,MAAMA,WAAWC,eAAU,CAAA;IACzBC,WAAa,EAAA,UAAA;IACbC,SAAWC,EAAAA,wBAAAA,EAAAA;IACXC,QAAU,EAAA;AAAC,QAAA,gBAAA;AAAkB,QAAA,uBAAA;AAAyB,QAAA;AAAU,KAAA;IAChEC,SAAW,EAAA,KAAO,EAAC;AACrB,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.mjs","sources":["../../../../../admin/src/services/api.ts"],"sourcesContent":["import { createApi } from '@reduxjs/toolkit/query/react';\n\nimport { fetchBaseQuery } from '../utils/baseQuery';\n\n/**\n * @public\n * @description This is the redux toolkit api for the admin panel, users\n * should use a combination of `enhanceEndpoints` to add their TagTypes\n * to utilise in their `injectEndpoints` construction for automatic cache\n * re-validation. We specifically do not store any tagTypes by default leaving\n * the API surface as small as possible. None of the data-fetching looks for the\n * StrapiApp are stored here either.\n */\nconst adminApi = createApi({\n reducerPath: 'adminApi',\n baseQuery: fetchBaseQuery(),\n tagTypes: ['GuidedTourMeta', 'HomepageKeyStatistics'],\n endpoints: () => ({}),\n});\n\nexport { adminApi };\n"],"names":["adminApi","createApi","reducerPath","baseQuery","fetchBaseQuery","tagTypes","endpoints"],"mappings":";;;AAIA;;;;;;;;IASA,MAAMA,WAAWC,SAAU,CAAA;IACzBC,WAAa,EAAA,UAAA;IACbC,SAAWC,EAAAA,cAAAA,EAAAA;IACXC,QAAU,EAAA;AAAC,QAAA,gBAAA;AAAkB,QAAA;
|
|
1
|
+
{"version":3,"file":"api.mjs","sources":["../../../../../admin/src/services/api.ts"],"sourcesContent":["import { createApi } from '@reduxjs/toolkit/query/react';\n\nimport { fetchBaseQuery } from '../utils/baseQuery';\n\n/**\n * @public\n * @description This is the redux toolkit api for the admin panel, users\n * should use a combination of `enhanceEndpoints` to add their TagTypes\n * to utilise in their `injectEndpoints` construction for automatic cache\n * re-validation. We specifically do not store any tagTypes by default leaving\n * the API surface as small as possible. None of the data-fetching looks for the\n * StrapiApp are stored here either.\n */\nconst adminApi = createApi({\n reducerPath: 'adminApi',\n baseQuery: fetchBaseQuery(),\n tagTypes: ['GuidedTourMeta', 'HomepageKeyStatistics', 'AIUsage'],\n endpoints: () => ({}),\n});\n\nexport { adminApi };\n"],"names":["adminApi","createApi","reducerPath","baseQuery","fetchBaseQuery","tagTypes","endpoints"],"mappings":";;;AAIA;;;;;;;;IASA,MAAMA,WAAWC,SAAU,CAAA;IACzBC,WAAa,EAAA,UAAA;IACbC,SAAWC,EAAAA,cAAAA,EAAAA;IACXC,QAAU,EAAA;AAAC,QAAA,gBAAA;AAAkB,QAAA,uBAAA;AAAyB,QAAA;AAAU,KAAA;IAChEC,SAAW,EAAA,KAAO,EAAC;AACrB,CAAA;;;;"}
|
|
@@ -52,6 +52,15 @@ const authService = api.adminApi.enhanceEndpoints({
|
|
|
52
52
|
'Me'
|
|
53
53
|
]
|
|
54
54
|
}),
|
|
55
|
+
getAiToken: builder.query({
|
|
56
|
+
query: ()=>({
|
|
57
|
+
method: 'GET',
|
|
58
|
+
url: '/admin/users/me/ai-token'
|
|
59
|
+
}),
|
|
60
|
+
transformResponse (res) {
|
|
61
|
+
return res.data;
|
|
62
|
+
}
|
|
63
|
+
}),
|
|
55
64
|
/**
|
|
56
65
|
* Permissions
|
|
57
66
|
*/ checkPermissions: builder.query({
|
|
@@ -185,13 +194,14 @@ const authService = api.adminApi.enhanceEndpoints({
|
|
|
185
194
|
]
|
|
186
195
|
})
|
|
187
196
|
}),
|
|
188
|
-
overrideExisting:
|
|
197
|
+
overrideExisting: true
|
|
189
198
|
});
|
|
190
|
-
const { useCheckPermissionsQuery, useLazyCheckPermissionsQuery, useGetMeQuery, useLoginMutation, useAccessTokenExchangeMutation, useLogoutMutation, useUpdateMeMutation, useResetPasswordMutation, useRegisterAdminMutation, useRegisterUserMutation, useGetRegistrationInfoQuery, useForgotPasswordMutation, useGetMyPermissionsQuery, useIsSSOLockedQuery, useGetProvidersQuery, useGetProviderOptionsQuery, useUpdateProviderOptionsMutation } = authService;
|
|
199
|
+
const { useCheckPermissionsQuery, useLazyCheckPermissionsQuery, useGetMeQuery, useLoginMutation, useAccessTokenExchangeMutation, useLogoutMutation, useUpdateMeMutation, useResetPasswordMutation, useRegisterAdminMutation, useRegisterUserMutation, useGetRegistrationInfoQuery, useForgotPasswordMutation, useGetMyPermissionsQuery, useGetAiTokenQuery, useLazyGetAiTokenQuery, useIsSSOLockedQuery, useGetProvidersQuery, useGetProviderOptionsQuery, useUpdateProviderOptionsMutation } = authService;
|
|
191
200
|
|
|
192
201
|
exports.useAccessTokenExchangeMutation = useAccessTokenExchangeMutation;
|
|
193
202
|
exports.useCheckPermissionsQuery = useCheckPermissionsQuery;
|
|
194
203
|
exports.useForgotPasswordMutation = useForgotPasswordMutation;
|
|
204
|
+
exports.useGetAiTokenQuery = useGetAiTokenQuery;
|
|
195
205
|
exports.useGetMeQuery = useGetMeQuery;
|
|
196
206
|
exports.useGetMyPermissionsQuery = useGetMyPermissionsQuery;
|
|
197
207
|
exports.useGetProviderOptionsQuery = useGetProviderOptionsQuery;
|
|
@@ -199,6 +209,7 @@ exports.useGetProvidersQuery = useGetProvidersQuery;
|
|
|
199
209
|
exports.useGetRegistrationInfoQuery = useGetRegistrationInfoQuery;
|
|
200
210
|
exports.useIsSSOLockedQuery = useIsSSOLockedQuery;
|
|
201
211
|
exports.useLazyCheckPermissionsQuery = useLazyCheckPermissionsQuery;
|
|
212
|
+
exports.useLazyGetAiTokenQuery = useLazyGetAiTokenQuery;
|
|
202
213
|
exports.useLoginMutation = useLoginMutation;
|
|
203
214
|
exports.useLogoutMutation = useLogoutMutation;
|
|
204
215
|
exports.useRegisterAdminMutation = useRegisterAdminMutation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sources":["../../../../../admin/src/services/auth.ts"],"sourcesContent":["import { ProvidersOptions } from '../../../shared/contracts/admin';\nimport {\n type AccessTokenExchange,\n type Login,\n type ResetPassword,\n type RegisterAdmin,\n type Register,\n type RegistrationInfo,\n ForgotPassword,\n} from '../../../shared/contracts/authentication';\nimport { Check } from '../../../shared/contracts/permissions';\nimport { GetProviders, IsSSOLocked } from '../../../shared/contracts/providers';\nimport { type GetOwnPermissions, type GetMe, type UpdateMe } from '../../../shared/contracts/users';\n\nimport { adminApi } from './api';\n\nconst authService = adminApi\n .enhanceEndpoints({\n addTagTypes: ['User', 'Me', 'ProvidersOptions'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n /**\n * ME\n */\n getMe: builder.query<GetMe.Response['data'], void>({\n query: () => ({\n method: 'GET',\n url: '/admin/users/me',\n }),\n transformResponse(res: GetMe.Response) {\n return res.data;\n },\n providesTags: (res) => (res ? ['Me', { type: 'User', id: res.id }] : ['Me']),\n }),\n getMyPermissions: builder.query<GetOwnPermissions.Response['data'], void>({\n query: () => ({\n method: 'GET',\n url: '/admin/users/me/permissions',\n }),\n transformResponse(res: GetOwnPermissions.Response) {\n return res.data;\n },\n }),\n updateMe: builder.mutation<UpdateMe.Response['data'], UpdateMe.Request['body']>({\n query: (body) => ({\n method: 'PUT',\n url: '/admin/users/me',\n data: body,\n }),\n transformResponse(res: UpdateMe.Response) {\n return res.data;\n },\n invalidatesTags: ['Me'],\n }),\n /**\n * Permissions\n */\n checkPermissions: builder.query<Check.Response, Check.Request['body']>({\n query: (permissions) => ({\n method: 'POST',\n url: '/admin/permissions/check',\n data: permissions,\n }),\n }),\n /**\n * Auth methods\n */\n login: builder.mutation<Login.Response['data'], Login.Request['body']>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/login',\n data: body,\n }),\n transformResponse(res: Login.Response) {\n return res.data;\n },\n invalidatesTags: ['Me'],\n }),\n logout: builder.mutation<void, { deviceId?: string } | void>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/logout',\n data: body,\n }),\n }),\n resetPassword: builder.mutation<\n ResetPassword.Response['data'],\n ResetPassword.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/reset-password',\n data: body,\n }),\n transformResponse(res: ResetPassword.Response) {\n return res.data;\n },\n }),\n accessTokenExchange: builder.mutation<\n AccessTokenExchange.Response['data'],\n AccessTokenExchange.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/access-token',\n data: body,\n }),\n transformResponse(res: AccessTokenExchange.Response) {\n return res.data;\n },\n }),\n getRegistrationInfo: builder.query<\n RegistrationInfo.Response['data'],\n RegistrationInfo.Request['query']['registrationToken']\n >({\n query: (registrationToken) => ({\n url: '/admin/registration-info',\n method: 'GET',\n config: {\n params: {\n registrationToken,\n },\n },\n }),\n transformResponse(res: RegistrationInfo.Response) {\n return res.data;\n },\n }),\n registerAdmin: builder.mutation<\n RegisterAdmin.Response['data'],\n RegisterAdmin.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/register-admin',\n data: body,\n }),\n transformResponse(res: RegisterAdmin.Response) {\n return res.data;\n },\n }),\n registerUser: builder.mutation<Register.Response['data'], Register.Request['body']>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/register',\n data: body,\n }),\n transformResponse(res: Register.Response) {\n return res.data;\n },\n }),\n forgotPassword: builder.mutation<ForgotPassword.Response, ForgotPassword.Request['body']>({\n query: (body) => ({\n url: '/admin/forgot-password',\n method: 'POST',\n data: body,\n }),\n }),\n isSSOLocked: builder.query<IsSSOLocked.Response['data'], void>({\n query: () => ({\n url: '/admin/providers/isSSOLocked',\n method: 'GET',\n }),\n transformResponse(res: IsSSOLocked.Response) {\n return res.data;\n },\n }),\n getProviders: builder.query<GetProviders.Response, void>({\n query: () => ({\n url: '/admin/providers',\n method: 'GET',\n }),\n }),\n getProviderOptions: builder.query<ProvidersOptions.Response['data'], void>({\n query: () => ({\n url: '/admin/providers/options',\n method: 'GET',\n }),\n transformResponse(res: ProvidersOptions.Response) {\n return res.data;\n },\n providesTags: ['ProvidersOptions'],\n }),\n updateProviderOptions: builder.mutation<\n ProvidersOptions.Response['data'],\n ProvidersOptions.Request['body']\n >({\n query: (body) => ({\n url: '/admin/providers/options',\n method: 'PUT',\n data: body,\n }),\n transformResponse(res: ProvidersOptions.Response) {\n return res.data;\n },\n invalidatesTags: ['ProvidersOptions'],\n }),\n }),\n overrideExisting: false,\n });\n\nconst {\n useCheckPermissionsQuery,\n useLazyCheckPermissionsQuery,\n useGetMeQuery,\n useLoginMutation,\n useAccessTokenExchangeMutation,\n useLogoutMutation,\n useUpdateMeMutation,\n useResetPasswordMutation,\n useRegisterAdminMutation,\n useRegisterUserMutation,\n useGetRegistrationInfoQuery,\n useForgotPasswordMutation,\n useGetMyPermissionsQuery,\n useIsSSOLockedQuery,\n useGetProvidersQuery,\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n} = authService;\n\nexport {\n useCheckPermissionsQuery,\n useLazyCheckPermissionsQuery,\n useGetMeQuery,\n useLoginMutation,\n useAccessTokenExchangeMutation,\n useLogoutMutation,\n useUpdateMeMutation,\n useResetPasswordMutation,\n useRegisterAdminMutation,\n useRegisterUserMutation,\n useGetRegistrationInfoQuery,\n useForgotPasswordMutation,\n useGetMyPermissionsQuery,\n useIsSSOLockedQuery,\n useGetProvidersQuery,\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n};\n"],"names":["authService","adminApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","getMe","query","method","url","transformResponse","res","data","providesTags","type","id","getMyPermissions","updateMe","mutation","body","invalidatesTags","checkPermissions","permissions","login","logout","resetPassword","accessTokenExchange","getRegistrationInfo","registrationToken","config","params","registerAdmin","registerUser","forgotPassword","isSSOLocked","getProviders","getProviderOptions","updateProviderOptions","overrideExisting","useCheckPermissionsQuery","useLazyCheckPermissionsQuery","useGetMeQuery","useLoginMutation","useAccessTokenExchangeMutation","useLogoutMutation","useUpdateMeMutation","useResetPasswordMutation","useRegisterAdminMutation","useRegisterUserMutation","useGetRegistrationInfoQuery","useForgotPasswordMutation","useGetMyPermissionsQuery","useIsSSOLockedQuery","useGetProvidersQuery","useGetProviderOptionsQuery","useUpdateProviderOptionsMutation"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth.js","sources":["../../../../../admin/src/services/auth.ts"],"sourcesContent":["import { ProvidersOptions } from '../../../shared/contracts/admin';\nimport {\n type AccessTokenExchange,\n type Login,\n type ResetPassword,\n type RegisterAdmin,\n type Register,\n type RegistrationInfo,\n ForgotPassword,\n} from '../../../shared/contracts/authentication';\nimport { Check } from '../../../shared/contracts/permissions';\nimport { GetProviders, IsSSOLocked } from '../../../shared/contracts/providers';\nimport {\n type GetOwnPermissions,\n type GetMe,\n type UpdateMe,\n type GetAiToken,\n} from '../../../shared/contracts/users';\n\nimport { adminApi } from './api';\n\nconst authService = adminApi\n .enhanceEndpoints({\n addTagTypes: ['User', 'Me', 'ProvidersOptions'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n /**\n * ME\n */\n getMe: builder.query<GetMe.Response['data'], void>({\n query: () => ({\n method: 'GET',\n url: '/admin/users/me',\n }),\n transformResponse(res: GetMe.Response) {\n return res.data;\n },\n providesTags: (res) => (res ? ['Me', { type: 'User', id: res.id }] : ['Me']),\n }),\n getMyPermissions: builder.query<GetOwnPermissions.Response['data'], void>({\n query: () => ({\n method: 'GET',\n url: '/admin/users/me/permissions',\n }),\n transformResponse(res: GetOwnPermissions.Response) {\n return res.data;\n },\n }),\n updateMe: builder.mutation<UpdateMe.Response['data'], UpdateMe.Request['body']>({\n query: (body) => ({\n method: 'PUT',\n url: '/admin/users/me',\n data: body,\n }),\n transformResponse(res: UpdateMe.Response) {\n return res.data;\n },\n invalidatesTags: ['Me'],\n }),\n getAiToken: builder.query<GetAiToken.Response['data'], void>({\n query: () => ({\n method: 'GET',\n url: '/admin/users/me/ai-token',\n }),\n transformResponse(res: GetAiToken.Response) {\n return res.data;\n },\n }),\n /**\n * Permissions\n */\n checkPermissions: builder.query<Check.Response, Check.Request['body']>({\n query: (permissions) => ({\n method: 'POST',\n url: '/admin/permissions/check',\n data: permissions,\n }),\n }),\n /**\n * Auth methods\n */\n login: builder.mutation<Login.Response['data'], Login.Request['body']>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/login',\n data: body,\n }),\n transformResponse(res: Login.Response) {\n return res.data;\n },\n invalidatesTags: ['Me'],\n }),\n logout: builder.mutation<void, { deviceId?: string } | void>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/logout',\n data: body,\n }),\n }),\n resetPassword: builder.mutation<\n ResetPassword.Response['data'],\n ResetPassword.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/reset-password',\n data: body,\n }),\n transformResponse(res: ResetPassword.Response) {\n return res.data;\n },\n }),\n accessTokenExchange: builder.mutation<\n AccessTokenExchange.Response['data'],\n AccessTokenExchange.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/access-token',\n data: body,\n }),\n transformResponse(res: AccessTokenExchange.Response) {\n return res.data;\n },\n }),\n getRegistrationInfo: builder.query<\n RegistrationInfo.Response['data'],\n RegistrationInfo.Request['query']['registrationToken']\n >({\n query: (registrationToken) => ({\n url: '/admin/registration-info',\n method: 'GET',\n config: {\n params: {\n registrationToken,\n },\n },\n }),\n transformResponse(res: RegistrationInfo.Response) {\n return res.data;\n },\n }),\n registerAdmin: builder.mutation<\n RegisterAdmin.Response['data'],\n RegisterAdmin.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/register-admin',\n data: body,\n }),\n transformResponse(res: RegisterAdmin.Response) {\n return res.data;\n },\n }),\n registerUser: builder.mutation<Register.Response['data'], Register.Request['body']>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/register',\n data: body,\n }),\n transformResponse(res: Register.Response) {\n return res.data;\n },\n }),\n forgotPassword: builder.mutation<ForgotPassword.Response, ForgotPassword.Request['body']>({\n query: (body) => ({\n url: '/admin/forgot-password',\n method: 'POST',\n data: body,\n }),\n }),\n isSSOLocked: builder.query<IsSSOLocked.Response['data'], void>({\n query: () => ({\n url: '/admin/providers/isSSOLocked',\n method: 'GET',\n }),\n transformResponse(res: IsSSOLocked.Response) {\n return res.data;\n },\n }),\n getProviders: builder.query<GetProviders.Response, void>({\n query: () => ({\n url: '/admin/providers',\n method: 'GET',\n }),\n }),\n getProviderOptions: builder.query<ProvidersOptions.Response['data'], void>({\n query: () => ({\n url: '/admin/providers/options',\n method: 'GET',\n }),\n transformResponse(res: ProvidersOptions.Response) {\n return res.data;\n },\n providesTags: ['ProvidersOptions'],\n }),\n updateProviderOptions: builder.mutation<\n ProvidersOptions.Response['data'],\n ProvidersOptions.Request['body']\n >({\n query: (body) => ({\n url: '/admin/providers/options',\n method: 'PUT',\n data: body,\n }),\n transformResponse(res: ProvidersOptions.Response) {\n return res.data;\n },\n invalidatesTags: ['ProvidersOptions'],\n }),\n }),\n overrideExisting: true,\n });\n\nconst {\n useCheckPermissionsQuery,\n useLazyCheckPermissionsQuery,\n useGetMeQuery,\n useLoginMutation,\n useAccessTokenExchangeMutation,\n useLogoutMutation,\n useUpdateMeMutation,\n useResetPasswordMutation,\n useRegisterAdminMutation,\n useRegisterUserMutation,\n useGetRegistrationInfoQuery,\n useForgotPasswordMutation,\n useGetMyPermissionsQuery,\n useGetAiTokenQuery,\n useLazyGetAiTokenQuery,\n useIsSSOLockedQuery,\n useGetProvidersQuery,\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n} = authService;\n\nexport {\n useCheckPermissionsQuery,\n useLazyCheckPermissionsQuery,\n useGetMeQuery,\n useLoginMutation,\n useAccessTokenExchangeMutation,\n useLogoutMutation,\n useUpdateMeMutation,\n useResetPasswordMutation,\n useRegisterAdminMutation,\n useRegisterUserMutation,\n useGetRegistrationInfoQuery,\n useForgotPasswordMutation,\n useGetMyPermissionsQuery,\n useGetAiTokenQuery,\n useLazyGetAiTokenQuery,\n useIsSSOLockedQuery,\n useGetProvidersQuery,\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n};\n"],"names":["authService","adminApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","getMe","query","method","url","transformResponse","res","data","providesTags","type","id","getMyPermissions","updateMe","mutation","body","invalidatesTags","getAiToken","checkPermissions","permissions","login","logout","resetPassword","accessTokenExchange","getRegistrationInfo","registrationToken","config","params","registerAdmin","registerUser","forgotPassword","isSSOLocked","getProviders","getProviderOptions","updateProviderOptions","overrideExisting","useCheckPermissionsQuery","useLazyCheckPermissionsQuery","useGetMeQuery","useLoginMutation","useAccessTokenExchangeMutation","useLogoutMutation","useUpdateMeMutation","useResetPasswordMutation","useRegisterAdminMutation","useRegisterUserMutation","useGetRegistrationInfoQuery","useForgotPasswordMutation","useGetMyPermissionsQuery","useGetAiTokenQuery","useLazyGetAiTokenQuery","useIsSSOLockedQuery","useGetProvidersQuery","useGetProviderOptionsQuery","useUpdateProviderOptionsMutation"],"mappings":"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"}
|
|
@@ -50,6 +50,15 @@ const authService = adminApi.enhanceEndpoints({
|
|
|
50
50
|
'Me'
|
|
51
51
|
]
|
|
52
52
|
}),
|
|
53
|
+
getAiToken: builder.query({
|
|
54
|
+
query: ()=>({
|
|
55
|
+
method: 'GET',
|
|
56
|
+
url: '/admin/users/me/ai-token'
|
|
57
|
+
}),
|
|
58
|
+
transformResponse (res) {
|
|
59
|
+
return res.data;
|
|
60
|
+
}
|
|
61
|
+
}),
|
|
53
62
|
/**
|
|
54
63
|
* Permissions
|
|
55
64
|
*/ checkPermissions: builder.query({
|
|
@@ -183,9 +192,9 @@ const authService = adminApi.enhanceEndpoints({
|
|
|
183
192
|
]
|
|
184
193
|
})
|
|
185
194
|
}),
|
|
186
|
-
overrideExisting:
|
|
195
|
+
overrideExisting: true
|
|
187
196
|
});
|
|
188
|
-
const { useCheckPermissionsQuery, useLazyCheckPermissionsQuery, useGetMeQuery, useLoginMutation, useAccessTokenExchangeMutation, useLogoutMutation, useUpdateMeMutation, useResetPasswordMutation, useRegisterAdminMutation, useRegisterUserMutation, useGetRegistrationInfoQuery, useForgotPasswordMutation, useGetMyPermissionsQuery, useIsSSOLockedQuery, useGetProvidersQuery, useGetProviderOptionsQuery, useUpdateProviderOptionsMutation } = authService;
|
|
197
|
+
const { useCheckPermissionsQuery, useLazyCheckPermissionsQuery, useGetMeQuery, useLoginMutation, useAccessTokenExchangeMutation, useLogoutMutation, useUpdateMeMutation, useResetPasswordMutation, useRegisterAdminMutation, useRegisterUserMutation, useGetRegistrationInfoQuery, useForgotPasswordMutation, useGetMyPermissionsQuery, useGetAiTokenQuery, useLazyGetAiTokenQuery, useIsSSOLockedQuery, useGetProvidersQuery, useGetProviderOptionsQuery, useUpdateProviderOptionsMutation } = authService;
|
|
189
198
|
|
|
190
|
-
export { useAccessTokenExchangeMutation, useCheckPermissionsQuery, useForgotPasswordMutation, useGetMeQuery, useGetMyPermissionsQuery, useGetProviderOptionsQuery, useGetProvidersQuery, useGetRegistrationInfoQuery, useIsSSOLockedQuery, useLazyCheckPermissionsQuery, useLoginMutation, useLogoutMutation, useRegisterAdminMutation, useRegisterUserMutation, useResetPasswordMutation, useUpdateMeMutation, useUpdateProviderOptionsMutation };
|
|
199
|
+
export { useAccessTokenExchangeMutation, useCheckPermissionsQuery, useForgotPasswordMutation, useGetAiTokenQuery, useGetMeQuery, useGetMyPermissionsQuery, useGetProviderOptionsQuery, useGetProvidersQuery, useGetRegistrationInfoQuery, useIsSSOLockedQuery, useLazyCheckPermissionsQuery, useLazyGetAiTokenQuery, useLoginMutation, useLogoutMutation, useRegisterAdminMutation, useRegisterUserMutation, useResetPasswordMutation, useUpdateMeMutation, useUpdateProviderOptionsMutation };
|
|
191
200
|
//# sourceMappingURL=auth.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.mjs","sources":["../../../../../admin/src/services/auth.ts"],"sourcesContent":["import { ProvidersOptions } from '../../../shared/contracts/admin';\nimport {\n type AccessTokenExchange,\n type Login,\n type ResetPassword,\n type RegisterAdmin,\n type Register,\n type RegistrationInfo,\n ForgotPassword,\n} from '../../../shared/contracts/authentication';\nimport { Check } from '../../../shared/contracts/permissions';\nimport { GetProviders, IsSSOLocked } from '../../../shared/contracts/providers';\nimport { type GetOwnPermissions, type GetMe, type UpdateMe } from '../../../shared/contracts/users';\n\nimport { adminApi } from './api';\n\nconst authService = adminApi\n .enhanceEndpoints({\n addTagTypes: ['User', 'Me', 'ProvidersOptions'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n /**\n * ME\n */\n getMe: builder.query<GetMe.Response['data'], void>({\n query: () => ({\n method: 'GET',\n url: '/admin/users/me',\n }),\n transformResponse(res: GetMe.Response) {\n return res.data;\n },\n providesTags: (res) => (res ? ['Me', { type: 'User', id: res.id }] : ['Me']),\n }),\n getMyPermissions: builder.query<GetOwnPermissions.Response['data'], void>({\n query: () => ({\n method: 'GET',\n url: '/admin/users/me/permissions',\n }),\n transformResponse(res: GetOwnPermissions.Response) {\n return res.data;\n },\n }),\n updateMe: builder.mutation<UpdateMe.Response['data'], UpdateMe.Request['body']>({\n query: (body) => ({\n method: 'PUT',\n url: '/admin/users/me',\n data: body,\n }),\n transformResponse(res: UpdateMe.Response) {\n return res.data;\n },\n invalidatesTags: ['Me'],\n }),\n /**\n * Permissions\n */\n checkPermissions: builder.query<Check.Response, Check.Request['body']>({\n query: (permissions) => ({\n method: 'POST',\n url: '/admin/permissions/check',\n data: permissions,\n }),\n }),\n /**\n * Auth methods\n */\n login: builder.mutation<Login.Response['data'], Login.Request['body']>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/login',\n data: body,\n }),\n transformResponse(res: Login.Response) {\n return res.data;\n },\n invalidatesTags: ['Me'],\n }),\n logout: builder.mutation<void, { deviceId?: string } | void>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/logout',\n data: body,\n }),\n }),\n resetPassword: builder.mutation<\n ResetPassword.Response['data'],\n ResetPassword.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/reset-password',\n data: body,\n }),\n transformResponse(res: ResetPassword.Response) {\n return res.data;\n },\n }),\n accessTokenExchange: builder.mutation<\n AccessTokenExchange.Response['data'],\n AccessTokenExchange.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/access-token',\n data: body,\n }),\n transformResponse(res: AccessTokenExchange.Response) {\n return res.data;\n },\n }),\n getRegistrationInfo: builder.query<\n RegistrationInfo.Response['data'],\n RegistrationInfo.Request['query']['registrationToken']\n >({\n query: (registrationToken) => ({\n url: '/admin/registration-info',\n method: 'GET',\n config: {\n params: {\n registrationToken,\n },\n },\n }),\n transformResponse(res: RegistrationInfo.Response) {\n return res.data;\n },\n }),\n registerAdmin: builder.mutation<\n RegisterAdmin.Response['data'],\n RegisterAdmin.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/register-admin',\n data: body,\n }),\n transformResponse(res: RegisterAdmin.Response) {\n return res.data;\n },\n }),\n registerUser: builder.mutation<Register.Response['data'], Register.Request['body']>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/register',\n data: body,\n }),\n transformResponse(res: Register.Response) {\n return res.data;\n },\n }),\n forgotPassword: builder.mutation<ForgotPassword.Response, ForgotPassword.Request['body']>({\n query: (body) => ({\n url: '/admin/forgot-password',\n method: 'POST',\n data: body,\n }),\n }),\n isSSOLocked: builder.query<IsSSOLocked.Response['data'], void>({\n query: () => ({\n url: '/admin/providers/isSSOLocked',\n method: 'GET',\n }),\n transformResponse(res: IsSSOLocked.Response) {\n return res.data;\n },\n }),\n getProviders: builder.query<GetProviders.Response, void>({\n query: () => ({\n url: '/admin/providers',\n method: 'GET',\n }),\n }),\n getProviderOptions: builder.query<ProvidersOptions.Response['data'], void>({\n query: () => ({\n url: '/admin/providers/options',\n method: 'GET',\n }),\n transformResponse(res: ProvidersOptions.Response) {\n return res.data;\n },\n providesTags: ['ProvidersOptions'],\n }),\n updateProviderOptions: builder.mutation<\n ProvidersOptions.Response['data'],\n ProvidersOptions.Request['body']\n >({\n query: (body) => ({\n url: '/admin/providers/options',\n method: 'PUT',\n data: body,\n }),\n transformResponse(res: ProvidersOptions.Response) {\n return res.data;\n },\n invalidatesTags: ['ProvidersOptions'],\n }),\n }),\n overrideExisting: false,\n });\n\nconst {\n useCheckPermissionsQuery,\n useLazyCheckPermissionsQuery,\n useGetMeQuery,\n useLoginMutation,\n useAccessTokenExchangeMutation,\n useLogoutMutation,\n useUpdateMeMutation,\n useResetPasswordMutation,\n useRegisterAdminMutation,\n useRegisterUserMutation,\n useGetRegistrationInfoQuery,\n useForgotPasswordMutation,\n useGetMyPermissionsQuery,\n useIsSSOLockedQuery,\n useGetProvidersQuery,\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n} = authService;\n\nexport {\n useCheckPermissionsQuery,\n useLazyCheckPermissionsQuery,\n useGetMeQuery,\n useLoginMutation,\n useAccessTokenExchangeMutation,\n useLogoutMutation,\n useUpdateMeMutation,\n useResetPasswordMutation,\n useRegisterAdminMutation,\n useRegisterUserMutation,\n useGetRegistrationInfoQuery,\n useForgotPasswordMutation,\n useGetMyPermissionsQuery,\n useIsSSOLockedQuery,\n useGetProvidersQuery,\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n};\n"],"names":["authService","adminApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","getMe","query","method","url","transformResponse","res","data","providesTags","type","id","getMyPermissions","updateMe","mutation","body","invalidatesTags","checkPermissions","permissions","login","logout","resetPassword","accessTokenExchange","getRegistrationInfo","registrationToken","config","params","registerAdmin","registerUser","forgotPassword","isSSOLocked","getProviders","getProviderOptions","updateProviderOptions","overrideExisting","useCheckPermissionsQuery","useLazyCheckPermissionsQuery","useGetMeQuery","useLoginMutation","useAccessTokenExchangeMutation","useLogoutMutation","useUpdateMeMutation","useResetPasswordMutation","useRegisterAdminMutation","useRegisterUserMutation","useGetRegistrationInfoQuery","useForgotPasswordMutation","useGetMyPermissionsQuery","useIsSSOLockedQuery","useGetProvidersQuery","useGetProviderOptionsQuery","useUpdateProviderOptionsMutation"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth.mjs","sources":["../../../../../admin/src/services/auth.ts"],"sourcesContent":["import { ProvidersOptions } from '../../../shared/contracts/admin';\nimport {\n type AccessTokenExchange,\n type Login,\n type ResetPassword,\n type RegisterAdmin,\n type Register,\n type RegistrationInfo,\n ForgotPassword,\n} from '../../../shared/contracts/authentication';\nimport { Check } from '../../../shared/contracts/permissions';\nimport { GetProviders, IsSSOLocked } from '../../../shared/contracts/providers';\nimport {\n type GetOwnPermissions,\n type GetMe,\n type UpdateMe,\n type GetAiToken,\n} from '../../../shared/contracts/users';\n\nimport { adminApi } from './api';\n\nconst authService = adminApi\n .enhanceEndpoints({\n addTagTypes: ['User', 'Me', 'ProvidersOptions'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n /**\n * ME\n */\n getMe: builder.query<GetMe.Response['data'], void>({\n query: () => ({\n method: 'GET',\n url: '/admin/users/me',\n }),\n transformResponse(res: GetMe.Response) {\n return res.data;\n },\n providesTags: (res) => (res ? ['Me', { type: 'User', id: res.id }] : ['Me']),\n }),\n getMyPermissions: builder.query<GetOwnPermissions.Response['data'], void>({\n query: () => ({\n method: 'GET',\n url: '/admin/users/me/permissions',\n }),\n transformResponse(res: GetOwnPermissions.Response) {\n return res.data;\n },\n }),\n updateMe: builder.mutation<UpdateMe.Response['data'], UpdateMe.Request['body']>({\n query: (body) => ({\n method: 'PUT',\n url: '/admin/users/me',\n data: body,\n }),\n transformResponse(res: UpdateMe.Response) {\n return res.data;\n },\n invalidatesTags: ['Me'],\n }),\n getAiToken: builder.query<GetAiToken.Response['data'], void>({\n query: () => ({\n method: 'GET',\n url: '/admin/users/me/ai-token',\n }),\n transformResponse(res: GetAiToken.Response) {\n return res.data;\n },\n }),\n /**\n * Permissions\n */\n checkPermissions: builder.query<Check.Response, Check.Request['body']>({\n query: (permissions) => ({\n method: 'POST',\n url: '/admin/permissions/check',\n data: permissions,\n }),\n }),\n /**\n * Auth methods\n */\n login: builder.mutation<Login.Response['data'], Login.Request['body']>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/login',\n data: body,\n }),\n transformResponse(res: Login.Response) {\n return res.data;\n },\n invalidatesTags: ['Me'],\n }),\n logout: builder.mutation<void, { deviceId?: string } | void>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/logout',\n data: body,\n }),\n }),\n resetPassword: builder.mutation<\n ResetPassword.Response['data'],\n ResetPassword.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/reset-password',\n data: body,\n }),\n transformResponse(res: ResetPassword.Response) {\n return res.data;\n },\n }),\n accessTokenExchange: builder.mutation<\n AccessTokenExchange.Response['data'],\n AccessTokenExchange.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/access-token',\n data: body,\n }),\n transformResponse(res: AccessTokenExchange.Response) {\n return res.data;\n },\n }),\n getRegistrationInfo: builder.query<\n RegistrationInfo.Response['data'],\n RegistrationInfo.Request['query']['registrationToken']\n >({\n query: (registrationToken) => ({\n url: '/admin/registration-info',\n method: 'GET',\n config: {\n params: {\n registrationToken,\n },\n },\n }),\n transformResponse(res: RegistrationInfo.Response) {\n return res.data;\n },\n }),\n registerAdmin: builder.mutation<\n RegisterAdmin.Response['data'],\n RegisterAdmin.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/register-admin',\n data: body,\n }),\n transformResponse(res: RegisterAdmin.Response) {\n return res.data;\n },\n }),\n registerUser: builder.mutation<Register.Response['data'], Register.Request['body']>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/register',\n data: body,\n }),\n transformResponse(res: Register.Response) {\n return res.data;\n },\n }),\n forgotPassword: builder.mutation<ForgotPassword.Response, ForgotPassword.Request['body']>({\n query: (body) => ({\n url: '/admin/forgot-password',\n method: 'POST',\n data: body,\n }),\n }),\n isSSOLocked: builder.query<IsSSOLocked.Response['data'], void>({\n query: () => ({\n url: '/admin/providers/isSSOLocked',\n method: 'GET',\n }),\n transformResponse(res: IsSSOLocked.Response) {\n return res.data;\n },\n }),\n getProviders: builder.query<GetProviders.Response, void>({\n query: () => ({\n url: '/admin/providers',\n method: 'GET',\n }),\n }),\n getProviderOptions: builder.query<ProvidersOptions.Response['data'], void>({\n query: () => ({\n url: '/admin/providers/options',\n method: 'GET',\n }),\n transformResponse(res: ProvidersOptions.Response) {\n return res.data;\n },\n providesTags: ['ProvidersOptions'],\n }),\n updateProviderOptions: builder.mutation<\n ProvidersOptions.Response['data'],\n ProvidersOptions.Request['body']\n >({\n query: (body) => ({\n url: '/admin/providers/options',\n method: 'PUT',\n data: body,\n }),\n transformResponse(res: ProvidersOptions.Response) {\n return res.data;\n },\n invalidatesTags: ['ProvidersOptions'],\n }),\n }),\n overrideExisting: true,\n });\n\nconst {\n useCheckPermissionsQuery,\n useLazyCheckPermissionsQuery,\n useGetMeQuery,\n useLoginMutation,\n useAccessTokenExchangeMutation,\n useLogoutMutation,\n useUpdateMeMutation,\n useResetPasswordMutation,\n useRegisterAdminMutation,\n useRegisterUserMutation,\n useGetRegistrationInfoQuery,\n useForgotPasswordMutation,\n useGetMyPermissionsQuery,\n useGetAiTokenQuery,\n useLazyGetAiTokenQuery,\n useIsSSOLockedQuery,\n useGetProvidersQuery,\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n} = authService;\n\nexport {\n useCheckPermissionsQuery,\n useLazyCheckPermissionsQuery,\n useGetMeQuery,\n useLoginMutation,\n useAccessTokenExchangeMutation,\n useLogoutMutation,\n useUpdateMeMutation,\n useResetPasswordMutation,\n useRegisterAdminMutation,\n useRegisterUserMutation,\n useGetRegistrationInfoQuery,\n useForgotPasswordMutation,\n useGetMyPermissionsQuery,\n useGetAiTokenQuery,\n useLazyGetAiTokenQuery,\n useIsSSOLockedQuery,\n useGetProvidersQuery,\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n};\n"],"names":["authService","adminApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","getMe","query","method","url","transformResponse","res","data","providesTags","type","id","getMyPermissions","updateMe","mutation","body","invalidatesTags","getAiToken","checkPermissions","permissions","login","logout","resetPassword","accessTokenExchange","getRegistrationInfo","registrationToken","config","params","registerAdmin","registerUser","forgotPassword","isSSOLocked","getProviders","getProviderOptions","updateProviderOptions","overrideExisting","useCheckPermissionsQuery","useLazyCheckPermissionsQuery","useGetMeQuery","useLoginMutation","useAccessTokenExchangeMutation","useLogoutMutation","useUpdateMeMutation","useResetPasswordMutation","useRegisterAdminMutation","useRegisterUserMutation","useGetRegistrationInfoQuery","useForgotPasswordMutation","useGetMyPermissionsQuery","useGetAiTokenQuery","useLazyGetAiTokenQuery","useIsSSOLockedQuery","useGetProvidersQuery","useGetProviderOptionsQuery","useUpdateProviderOptionsMutation"],"mappings":"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"}
|
|
@@ -533,6 +533,7 @@ var en = {
|
|
|
533
533
|
"app.components.NpsSurvey.dismiss-survey-label": "Dismiss survey",
|
|
534
534
|
"app.components.NpsSurvey.no-recommendation": "Not at all likely",
|
|
535
535
|
"app.components.NpsSurvey.happy-to-recommend": "Extremely likely",
|
|
536
|
+
"app.components.NpsSurvey.select-rating": "Select rating",
|
|
536
537
|
"app.components.Official": "Official",
|
|
537
538
|
"app.components.Onboarding.help.button": "Help button",
|
|
538
539
|
"app.components.Onboarding.label.completed": "% completed",
|
|
@@ -827,6 +828,8 @@ var en = {
|
|
|
827
828
|
submit: submit,
|
|
828
829
|
"tours.contentTypeBuilder.Introduction.title": "Welcome to the Content-Type Builder!",
|
|
829
830
|
"tours.contentTypeBuilder.Introduction.content": "Here you create and manage the structure of your app with collection types, single types, and reusable components. Let's dive in!",
|
|
831
|
+
"tours.contentTypeBuilder.AIChat.title": "Time to get started!",
|
|
832
|
+
"tours.contentTypeBuilder.AIChat.content": "<p>If you have any questions about the Content-Type Builder or Strapi ask them here.</p><p>Strapi AI can generate schemas tailored to your needs. Ask for exactly what you want, for example:<ul><li>Date picker</li><li>Email and password fields</li><li>Media of any type</li><li>UIDs</li></ul></p><p>Don’t be shy, try it out !</p>",
|
|
830
833
|
"tours.contentTypeBuilder.CollectionTypes.title": "Collection Types",
|
|
831
834
|
"tours.contentTypeBuilder.CollectionTypes.content": "These are your go-to for managing multiple entries — think blog posts or products.",
|
|
832
835
|
"tours.contentTypeBuilder.SingleTypes.title": "Single Types",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"en.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -529,6 +529,7 @@ var en = {
|
|
|
529
529
|
"app.components.NpsSurvey.dismiss-survey-label": "Dismiss survey",
|
|
530
530
|
"app.components.NpsSurvey.no-recommendation": "Not at all likely",
|
|
531
531
|
"app.components.NpsSurvey.happy-to-recommend": "Extremely likely",
|
|
532
|
+
"app.components.NpsSurvey.select-rating": "Select rating",
|
|
532
533
|
"app.components.Official": "Official",
|
|
533
534
|
"app.components.Onboarding.help.button": "Help button",
|
|
534
535
|
"app.components.Onboarding.label.completed": "% completed",
|
|
@@ -823,6 +824,8 @@ var en = {
|
|
|
823
824
|
submit: submit,
|
|
824
825
|
"tours.contentTypeBuilder.Introduction.title": "Welcome to the Content-Type Builder!",
|
|
825
826
|
"tours.contentTypeBuilder.Introduction.content": "Here you create and manage the structure of your app with collection types, single types, and reusable components. Let's dive in!",
|
|
827
|
+
"tours.contentTypeBuilder.AIChat.title": "Time to get started!",
|
|
828
|
+
"tours.contentTypeBuilder.AIChat.content": "<p>If you have any questions about the Content-Type Builder or Strapi ask them here.</p><p>Strapi AI can generate schemas tailored to your needs. Ask for exactly what you want, for example:<ul><li>Date picker</li><li>Email and password fields</li><li>Media of any type</li><li>UIDs</li></ul></p><p>Don’t be shy, try it out !</p>",
|
|
826
829
|
"tours.contentTypeBuilder.CollectionTypes.title": "Collection Types",
|
|
827
830
|
"tours.contentTypeBuilder.CollectionTypes.content": "These are your go-to for managing multiple entries — think blog posts or products.",
|
|
828
831
|
"tours.contentTypeBuilder.SingleTypes.title": "Single Types",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"en.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var useAIUsageWarning = require('../hooks/useAIUsageWarning.js');
|
|
4
|
+
|
|
5
|
+
const GlobalNotifications = ()=>{
|
|
6
|
+
useAIUsageWarning.useAIUsageWarning();
|
|
7
|
+
return null;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
exports.GlobalNotifications = GlobalNotifications;
|
|
11
|
+
//# sourceMappingURL=GlobalNotifications.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GlobalNotifications.js","sources":["../../../../../../ee/admin/src/components/GlobalNotifications.tsx"],"sourcesContent":["import { useAIUsageWarning } from '../hooks/useAIUsageWarning';\n\nexport const GlobalNotifications = () => {\n useAIUsageWarning();\n\n return null;\n};\n"],"names":["GlobalNotifications","useAIUsageWarning"],"mappings":";;;;MAEaA,mBAAsB,GAAA,IAAA;AACjCC,IAAAA,mCAAAA,EAAAA;IAEA,OAAO,IAAA;AACT;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GlobalNotifications.mjs","sources":["../../../../../../ee/admin/src/components/GlobalNotifications.tsx"],"sourcesContent":["import { useAIUsageWarning } from '../hooks/useAIUsageWarning';\n\nexport const GlobalNotifications = () => {\n useAIUsageWarning();\n\n return null;\n};\n"],"names":["GlobalNotifications","useAIUsageWarning"],"mappings":";;MAEaA,mBAAsB,GAAA,IAAA;AACjCC,IAAAA,iBAAAA,EAAAA;IAEA,OAAO,IAAA;AACT;;;;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const useAIAvailability = ()=>{
|
|
4
|
+
const isAiEnabled = window.strapi.ai?.enabled !== false;
|
|
5
|
+
const isEE = window.strapi?.isEE;
|
|
6
|
+
const isAiFeatureEnabled = window.strapi.features.isEnabled('cms-ai');
|
|
7
|
+
return !!isEE && isAiEnabled && isAiFeatureEnabled;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
exports.useAIAvailability = useAIAvailability;
|
|
11
|
+
//# sourceMappingURL=useAIAvailability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAIAvailability.js","sources":["../../../../../../ee/admin/src/hooks/useAIAvailability.ts"],"sourcesContent":["export const useAIAvailability = (): boolean => {\n const isAiEnabled = window.strapi.ai?.enabled !== false;\n const isEE = window.strapi?.isEE;\n const isAiFeatureEnabled = window.strapi.features.isEnabled('cms-ai');\n\n return !!isEE && isAiEnabled && isAiFeatureEnabled;\n};\n"],"names":["useAIAvailability","isAiEnabled","window","strapi","ai","enabled","isEE","isAiFeatureEnabled","features","isEnabled"],"mappings":";;MAAaA,iBAAoB,GAAA,IAAA;AAC/B,IAAA,MAAMC,cAAcC,MAAOC,CAAAA,MAAM,CAACC,EAAE,EAAEC,OAAY,KAAA,KAAA;IAClD,MAAMC,IAAAA,GAAOJ,MAAOC,CAAAA,MAAM,EAAEG,IAAAA;AAC5B,IAAA,MAAMC,qBAAqBL,MAAOC,CAAAA,MAAM,CAACK,QAAQ,CAACC,SAAS,CAAC,QAAA,CAAA;IAE5D,OAAO,CAAC,CAACH,IAAAA,IAAQL,WAAeM,IAAAA,kBAAAA;AAClC;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const useAIAvailability = ()=>{
|
|
2
|
+
const isAiEnabled = window.strapi.ai?.enabled !== false;
|
|
3
|
+
const isEE = window.strapi?.isEE;
|
|
4
|
+
const isAiFeatureEnabled = window.strapi.features.isEnabled('cms-ai');
|
|
5
|
+
return !!isEE && isAiEnabled && isAiFeatureEnabled;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
export { useAIAvailability };
|
|
9
|
+
//# sourceMappingURL=useAIAvailability.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAIAvailability.mjs","sources":["../../../../../../ee/admin/src/hooks/useAIAvailability.ts"],"sourcesContent":["export const useAIAvailability = (): boolean => {\n const isAiEnabled = window.strapi.ai?.enabled !== false;\n const isEE = window.strapi?.isEE;\n const isAiFeatureEnabled = window.strapi.features.isEnabled('cms-ai');\n\n return !!isEE && isAiEnabled && isAiFeatureEnabled;\n};\n"],"names":["useAIAvailability","isAiEnabled","window","strapi","ai","enabled","isEE","isAiFeatureEnabled","features","isEnabled"],"mappings":"MAAaA,iBAAoB,GAAA,IAAA;AAC/B,IAAA,MAAMC,cAAcC,MAAOC,CAAAA,MAAM,CAACC,EAAE,EAAEC,OAAY,KAAA,KAAA;IAClD,MAAMC,IAAAA,GAAOJ,MAAOC,CAAAA,MAAM,EAAEG,IAAAA;AAC5B,IAAA,MAAMC,qBAAqBL,MAAOC,CAAAA,MAAM,CAACK,QAAQ,CAACC,SAAS,CAAC,QAAA,CAAA;IAE5D,OAAO,CAAC,CAACH,IAAAA,IAAQL,WAAeM,IAAAA,kBAAAA;AAClC;;;;"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var React = require('react');
|
|
4
|
+
var reactRouterDom = require('react-router-dom');
|
|
5
|
+
var Notifications = require('../../../../admin/src/features/Notifications.js');
|
|
6
|
+
var ai = require('../services/ai.js');
|
|
7
|
+
var useAIAvailability = require('./useAIAvailability.js');
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Triggers a warning notification if AI usage is above a threshold (default 80%).
|
|
11
|
+
* @param threshold - Usage percentage (0-1) at which to warn. Default: 0.8 (80%)
|
|
12
|
+
*/ function useAIUsageWarning(threshold = 0.8) {
|
|
13
|
+
const location = reactRouterDom.useLocation();
|
|
14
|
+
const isAuthPage = location.pathname.startsWith('/auth');
|
|
15
|
+
const { toggleNotification } = Notifications.useNotification();
|
|
16
|
+
const isAIEnabled = useAIAvailability.useAIAvailability();
|
|
17
|
+
const { data, isLoading, error } = ai.useGetAIUsageQuery(undefined, {
|
|
18
|
+
refetchOnMountOrArgChange: true,
|
|
19
|
+
skip: !isAIEnabled || isAuthPage
|
|
20
|
+
});
|
|
21
|
+
const warningLevelsRef = React.useRef(new Set());
|
|
22
|
+
React.useEffect(()=>{
|
|
23
|
+
if (isAuthPage || isLoading || error || !data?.subscription?.cmsAiEnabled || !isAIEnabled) return;
|
|
24
|
+
const totalCredits = data.subscription.cmsAiCreditsBase;
|
|
25
|
+
const usedCredits = data.cmsAiCreditsUsed;
|
|
26
|
+
const maxCredits = data.subscription.cmsAiCreditsMaxUsage;
|
|
27
|
+
if (!totalCredits || totalCredits <= 0) return;
|
|
28
|
+
const percentUsed = usedCredits / totalCredits;
|
|
29
|
+
const percentDisplay = Math.round(percentUsed * 100);
|
|
30
|
+
const remaining = Math.max(totalCredits - usedCredits, 0);
|
|
31
|
+
if (percentUsed >= 1 && !warningLevelsRef.current.has(100)) {
|
|
32
|
+
const hasOverageAllowance = maxCredits && maxCredits > totalCredits;
|
|
33
|
+
if (hasOverageAllowance) {
|
|
34
|
+
// Overages notification (error style)
|
|
35
|
+
toggleNotification({
|
|
36
|
+
type: 'danger',
|
|
37
|
+
message: `You've used 100% of your AI credits. Overages are being applied.`,
|
|
38
|
+
timeout: 5000
|
|
39
|
+
});
|
|
40
|
+
} else {
|
|
41
|
+
// No overages allowed - credits exhausted
|
|
42
|
+
toggleNotification({
|
|
43
|
+
type: 'danger',
|
|
44
|
+
message: `You've exhausted your AI credits. No additional credits available.`,
|
|
45
|
+
timeout: 5000
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
warningLevelsRef.current.add(100);
|
|
49
|
+
} else if (percentUsed >= 0.9 && percentUsed < 1 && !warningLevelsRef.current.has(90)) {
|
|
50
|
+
// 90% warning notification
|
|
51
|
+
toggleNotification({
|
|
52
|
+
type: 'warning',
|
|
53
|
+
message: `You've used ${percentDisplay}% of your AI credits. ${remaining} remain.`,
|
|
54
|
+
timeout: 5000
|
|
55
|
+
});
|
|
56
|
+
warningLevelsRef.current.add(90);
|
|
57
|
+
} else if (percentUsed >= threshold && percentUsed < 0.9 && !warningLevelsRef.current.has(Math.round(threshold * 100))) {
|
|
58
|
+
// Initial threshold warning (default 80%)
|
|
59
|
+
toggleNotification({
|
|
60
|
+
type: 'warning',
|
|
61
|
+
message: `You've used ${percentDisplay}% of your AI credits. ${remaining} remain.`,
|
|
62
|
+
timeout: 5000
|
|
63
|
+
});
|
|
64
|
+
warningLevelsRef.current.add(Math.round(threshold * 100));
|
|
65
|
+
}
|
|
66
|
+
// Reset warnings if usage drops significantly (e.g., below 70%)
|
|
67
|
+
if (percentUsed < 0.7) {
|
|
68
|
+
warningLevelsRef.current.clear();
|
|
69
|
+
}
|
|
70
|
+
}, [
|
|
71
|
+
data,
|
|
72
|
+
isLoading,
|
|
73
|
+
error,
|
|
74
|
+
threshold,
|
|
75
|
+
toggleNotification,
|
|
76
|
+
isAIEnabled,
|
|
77
|
+
isAuthPage
|
|
78
|
+
]);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
exports.useAIUsageWarning = useAIUsageWarning;
|
|
82
|
+
//# sourceMappingURL=useAIUsageWarning.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAIUsageWarning.js","sources":["../../../../../../ee/admin/src/hooks/useAIUsageWarning.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport { useLocation } from 'react-router-dom';\n\nimport { useNotification } from '../../../../admin/src/features/Notifications';\nimport { useGetAIUsageQuery } from '../services/ai';\n\nimport { useAIAvailability } from './useAIAvailability';\n\n/**\n * Triggers a warning notification if AI usage is above a threshold (default 80%).\n * @param threshold - Usage percentage (0-1) at which to warn. Default: 0.8 (80%)\n */\nexport function useAIUsageWarning(threshold: number = 0.8) {\n const location = useLocation();\n const isAuthPage = location.pathname.startsWith('/auth');\n const { toggleNotification } = useNotification();\n const isAIEnabled = useAIAvailability();\n const { data, isLoading, error } = useGetAIUsageQuery(undefined, {\n refetchOnMountOrArgChange: true,\n skip: !isAIEnabled || isAuthPage,\n });\n const warningLevelsRef = useRef(new Set<number>());\n\n useEffect(() => {\n if (isAuthPage || isLoading || error || !data?.subscription?.cmsAiEnabled || !isAIEnabled)\n return;\n\n const totalCredits = data.subscription.cmsAiCreditsBase;\n const usedCredits = data.cmsAiCreditsUsed;\n const maxCredits = data.subscription.cmsAiCreditsMaxUsage;\n\n if (!totalCredits || totalCredits <= 0) return;\n\n const percentUsed = usedCredits / totalCredits;\n\n const percentDisplay = Math.round(percentUsed * 100);\n const remaining = Math.max(totalCredits - usedCredits, 0);\n\n if (percentUsed >= 1 && !warningLevelsRef.current.has(100)) {\n const hasOverageAllowance = maxCredits && maxCredits > totalCredits;\n\n if (hasOverageAllowance) {\n // Overages notification (error style)\n toggleNotification({\n type: 'danger',\n message: `You've used 100% of your AI credits. Overages are being applied.`,\n timeout: 5000,\n });\n } else {\n // No overages allowed - credits exhausted\n toggleNotification({\n type: 'danger',\n message: `You've exhausted your AI credits. No additional credits available.`,\n timeout: 5000,\n });\n }\n warningLevelsRef.current.add(100);\n } else if (percentUsed >= 0.9 && percentUsed < 1 && !warningLevelsRef.current.has(90)) {\n // 90% warning notification\n toggleNotification({\n type: 'warning',\n message: `You've used ${percentDisplay}% of your AI credits. ${remaining} remain.`,\n timeout: 5000,\n });\n warningLevelsRef.current.add(90);\n } else if (\n percentUsed >= threshold &&\n percentUsed < 0.9 &&\n !warningLevelsRef.current.has(Math.round(threshold * 100))\n ) {\n // Initial threshold warning (default 80%)\n toggleNotification({\n type: 'warning',\n message: `You've used ${percentDisplay}% of your AI credits. ${remaining} remain.`,\n timeout: 5000,\n });\n warningLevelsRef.current.add(Math.round(threshold * 100));\n }\n\n // Reset warnings if usage drops significantly (e.g., below 70%)\n if (percentUsed < 0.7) {\n warningLevelsRef.current.clear();\n }\n }, [data, isLoading, error, threshold, toggleNotification, isAIEnabled, isAuthPage]);\n}\n"],"names":["useAIUsageWarning","threshold","location","useLocation","isAuthPage","pathname","startsWith","toggleNotification","useNotification","isAIEnabled","useAIAvailability","data","isLoading","error","useGetAIUsageQuery","undefined","refetchOnMountOrArgChange","skip","warningLevelsRef","useRef","Set","useEffect","subscription","cmsAiEnabled","totalCredits","cmsAiCreditsBase","usedCredits","cmsAiCreditsUsed","maxCredits","cmsAiCreditsMaxUsage","percentUsed","percentDisplay","Math","round","remaining","max","current","has","hasOverageAllowance","type","message","timeout","add","clear"],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { useRef, useEffect } from 'react';
|
|
2
|
+
import { useLocation } from 'react-router-dom';
|
|
3
|
+
import { useNotification } from '../../../../admin/src/features/Notifications.mjs';
|
|
4
|
+
import { useGetAIUsageQuery } from '../services/ai.mjs';
|
|
5
|
+
import { useAIAvailability } from './useAIAvailability.mjs';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Triggers a warning notification if AI usage is above a threshold (default 80%).
|
|
9
|
+
* @param threshold - Usage percentage (0-1) at which to warn. Default: 0.8 (80%)
|
|
10
|
+
*/ function useAIUsageWarning(threshold = 0.8) {
|
|
11
|
+
const location = useLocation();
|
|
12
|
+
const isAuthPage = location.pathname.startsWith('/auth');
|
|
13
|
+
const { toggleNotification } = useNotification();
|
|
14
|
+
const isAIEnabled = useAIAvailability();
|
|
15
|
+
const { data, isLoading, error } = useGetAIUsageQuery(undefined, {
|
|
16
|
+
refetchOnMountOrArgChange: true,
|
|
17
|
+
skip: !isAIEnabled || isAuthPage
|
|
18
|
+
});
|
|
19
|
+
const warningLevelsRef = useRef(new Set());
|
|
20
|
+
useEffect(()=>{
|
|
21
|
+
if (isAuthPage || isLoading || error || !data?.subscription?.cmsAiEnabled || !isAIEnabled) return;
|
|
22
|
+
const totalCredits = data.subscription.cmsAiCreditsBase;
|
|
23
|
+
const usedCredits = data.cmsAiCreditsUsed;
|
|
24
|
+
const maxCredits = data.subscription.cmsAiCreditsMaxUsage;
|
|
25
|
+
if (!totalCredits || totalCredits <= 0) return;
|
|
26
|
+
const percentUsed = usedCredits / totalCredits;
|
|
27
|
+
const percentDisplay = Math.round(percentUsed * 100);
|
|
28
|
+
const remaining = Math.max(totalCredits - usedCredits, 0);
|
|
29
|
+
if (percentUsed >= 1 && !warningLevelsRef.current.has(100)) {
|
|
30
|
+
const hasOverageAllowance = maxCredits && maxCredits > totalCredits;
|
|
31
|
+
if (hasOverageAllowance) {
|
|
32
|
+
// Overages notification (error style)
|
|
33
|
+
toggleNotification({
|
|
34
|
+
type: 'danger',
|
|
35
|
+
message: `You've used 100% of your AI credits. Overages are being applied.`,
|
|
36
|
+
timeout: 5000
|
|
37
|
+
});
|
|
38
|
+
} else {
|
|
39
|
+
// No overages allowed - credits exhausted
|
|
40
|
+
toggleNotification({
|
|
41
|
+
type: 'danger',
|
|
42
|
+
message: `You've exhausted your AI credits. No additional credits available.`,
|
|
43
|
+
timeout: 5000
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
warningLevelsRef.current.add(100);
|
|
47
|
+
} else if (percentUsed >= 0.9 && percentUsed < 1 && !warningLevelsRef.current.has(90)) {
|
|
48
|
+
// 90% warning notification
|
|
49
|
+
toggleNotification({
|
|
50
|
+
type: 'warning',
|
|
51
|
+
message: `You've used ${percentDisplay}% of your AI credits. ${remaining} remain.`,
|
|
52
|
+
timeout: 5000
|
|
53
|
+
});
|
|
54
|
+
warningLevelsRef.current.add(90);
|
|
55
|
+
} else if (percentUsed >= threshold && percentUsed < 0.9 && !warningLevelsRef.current.has(Math.round(threshold * 100))) {
|
|
56
|
+
// Initial threshold warning (default 80%)
|
|
57
|
+
toggleNotification({
|
|
58
|
+
type: 'warning',
|
|
59
|
+
message: `You've used ${percentDisplay}% of your AI credits. ${remaining} remain.`,
|
|
60
|
+
timeout: 5000
|
|
61
|
+
});
|
|
62
|
+
warningLevelsRef.current.add(Math.round(threshold * 100));
|
|
63
|
+
}
|
|
64
|
+
// Reset warnings if usage drops significantly (e.g., below 70%)
|
|
65
|
+
if (percentUsed < 0.7) {
|
|
66
|
+
warningLevelsRef.current.clear();
|
|
67
|
+
}
|
|
68
|
+
}, [
|
|
69
|
+
data,
|
|
70
|
+
isLoading,
|
|
71
|
+
error,
|
|
72
|
+
threshold,
|
|
73
|
+
toggleNotification,
|
|
74
|
+
isAIEnabled,
|
|
75
|
+
isAuthPage
|
|
76
|
+
]);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export { useAIUsageWarning };
|
|
80
|
+
//# sourceMappingURL=useAIUsageWarning.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAIUsageWarning.mjs","sources":["../../../../../../ee/admin/src/hooks/useAIUsageWarning.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport { useLocation } from 'react-router-dom';\n\nimport { useNotification } from '../../../../admin/src/features/Notifications';\nimport { useGetAIUsageQuery } from '../services/ai';\n\nimport { useAIAvailability } from './useAIAvailability';\n\n/**\n * Triggers a warning notification if AI usage is above a threshold (default 80%).\n * @param threshold - Usage percentage (0-1) at which to warn. Default: 0.8 (80%)\n */\nexport function useAIUsageWarning(threshold: number = 0.8) {\n const location = useLocation();\n const isAuthPage = location.pathname.startsWith('/auth');\n const { toggleNotification } = useNotification();\n const isAIEnabled = useAIAvailability();\n const { data, isLoading, error } = useGetAIUsageQuery(undefined, {\n refetchOnMountOrArgChange: true,\n skip: !isAIEnabled || isAuthPage,\n });\n const warningLevelsRef = useRef(new Set<number>());\n\n useEffect(() => {\n if (isAuthPage || isLoading || error || !data?.subscription?.cmsAiEnabled || !isAIEnabled)\n return;\n\n const totalCredits = data.subscription.cmsAiCreditsBase;\n const usedCredits = data.cmsAiCreditsUsed;\n const maxCredits = data.subscription.cmsAiCreditsMaxUsage;\n\n if (!totalCredits || totalCredits <= 0) return;\n\n const percentUsed = usedCredits / totalCredits;\n\n const percentDisplay = Math.round(percentUsed * 100);\n const remaining = Math.max(totalCredits - usedCredits, 0);\n\n if (percentUsed >= 1 && !warningLevelsRef.current.has(100)) {\n const hasOverageAllowance = maxCredits && maxCredits > totalCredits;\n\n if (hasOverageAllowance) {\n // Overages notification (error style)\n toggleNotification({\n type: 'danger',\n message: `You've used 100% of your AI credits. Overages are being applied.`,\n timeout: 5000,\n });\n } else {\n // No overages allowed - credits exhausted\n toggleNotification({\n type: 'danger',\n message: `You've exhausted your AI credits. No additional credits available.`,\n timeout: 5000,\n });\n }\n warningLevelsRef.current.add(100);\n } else if (percentUsed >= 0.9 && percentUsed < 1 && !warningLevelsRef.current.has(90)) {\n // 90% warning notification\n toggleNotification({\n type: 'warning',\n message: `You've used ${percentDisplay}% of your AI credits. ${remaining} remain.`,\n timeout: 5000,\n });\n warningLevelsRef.current.add(90);\n } else if (\n percentUsed >= threshold &&\n percentUsed < 0.9 &&\n !warningLevelsRef.current.has(Math.round(threshold * 100))\n ) {\n // Initial threshold warning (default 80%)\n toggleNotification({\n type: 'warning',\n message: `You've used ${percentDisplay}% of your AI credits. ${remaining} remain.`,\n timeout: 5000,\n });\n warningLevelsRef.current.add(Math.round(threshold * 100));\n }\n\n // Reset warnings if usage drops significantly (e.g., below 70%)\n if (percentUsed < 0.7) {\n warningLevelsRef.current.clear();\n }\n }, [data, isLoading, error, threshold, toggleNotification, isAIEnabled, isAuthPage]);\n}\n"],"names":["useAIUsageWarning","threshold","location","useLocation","isAuthPage","pathname","startsWith","toggleNotification","useNotification","isAIEnabled","useAIAvailability","data","isLoading","error","useGetAIUsageQuery","undefined","refetchOnMountOrArgChange","skip","warningLevelsRef","useRef","Set","useEffect","subscription","cmsAiEnabled","totalCredits","cmsAiCreditsBase","usedCredits","cmsAiCreditsUsed","maxCredits","cmsAiCreditsMaxUsage","percentUsed","percentDisplay","Math","round","remaining","max","current","has","hasOverageAllowance","type","message","timeout","add","clear"],"mappings":"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"}
|