@strapi/admin 5.56.0 → 5.58.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/components/Filters.js +1 -1
- package/dist/admin/admin/src/components/Filters.js.map +1 -1
- package/dist/admin/admin/src/components/Filters.mjs +1 -1
- package/dist/admin/admin/src/components/Filters.mjs.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/Enumeration.js +2 -2
- package/dist/admin/admin/src/components/FormInputs/Enumeration.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs +2 -2
- package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs.map +1 -1
- package/dist/admin/admin/src/components/MediaLibraryBanner.js +38 -2
- package/dist/admin/admin/src/components/MediaLibraryBanner.js.map +1 -1
- package/dist/admin/admin/src/components/MediaLibraryBanner.mjs +18 -2
- package/dist/admin/admin/src/components/MediaLibraryBanner.mjs.map +1 -1
- package/dist/admin/admin/src/components/RelativeTime.js +9 -0
- package/dist/admin/admin/src/components/RelativeTime.js.map +1 -1
- package/dist/admin/admin/src/components/RelativeTime.mjs +10 -1
- package/dist/admin/admin/src/components/RelativeTime.mjs.map +1 -1
- package/dist/admin/admin/src/components/TopBanners.js +52 -0
- package/dist/admin/admin/src/components/TopBanners.js.map +1 -0
- package/dist/admin/admin/src/components/TopBanners.mjs +30 -0
- package/dist/admin/admin/src/components/TopBanners.mjs.map +1 -0
- package/dist/admin/admin/src/constants.js +14 -0
- package/dist/admin/admin/src/constants.js.map +1 -1
- package/dist/admin/admin/src/constants.mjs +14 -0
- package/dist/admin/admin/src/constants.mjs.map +1 -1
- package/dist/admin/admin/src/features/Tracking.js +28 -8
- package/dist/admin/admin/src/features/Tracking.js.map +1 -1
- package/dist/admin/admin/src/features/Tracking.mjs +29 -10
- package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.js +4 -20
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.js.map +1 -1
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs +4 -20
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs.map +1 -1
- package/dist/admin/admin/src/layouts/useAuthenticatedAccessTracking.js +59 -0
- package/dist/admin/admin/src/layouts/useAuthenticatedAccessTracking.js.map +1 -0
- package/dist/admin/admin/src/layouts/useAuthenticatedAccessTracking.mjs +37 -0
- package/dist/admin/admin/src/layouts/useAuthenticatedAccessTracking.mjs.map +1 -0
- package/dist/admin/admin/src/pages/Auth/components/ResetPassword.js +6 -12
- package/dist/admin/admin/src/pages/Auth/components/ResetPassword.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/ResetPassword.mjs +6 -12
- package/dist/admin/admin/src/pages/Auth/components/ResetPassword.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js +10 -2
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs +10 -2
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js +6 -56
- 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 +6 -56
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/DiagnosticSnapshotModal.js +217 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/DiagnosticSnapshotModal.js.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/DiagnosticSnapshotModal.mjs +195 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/DiagnosticSnapshotModal.mjs.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/PlanCard.js +185 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/PlanCard.js.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/PlanCard.mjs +162 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/PlanCard.mjs.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/SupportCard.js +342 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/SupportCard.js.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/SupportCard.mjs +320 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/SupportCard.mjs.map +1 -0
- package/dist/admin/admin/src/services/admin.js +11 -1
- package/dist/admin/admin/src/services/admin.js.map +1 -1
- package/dist/admin/admin/src/services/admin.mjs +11 -2
- package/dist/admin/admin/src/services/admin.mjs.map +1 -1
- package/dist/admin/admin/src/translations/en.json.js +76 -4
- package/dist/admin/admin/src/translations/en.json.js.map +1 -1
- package/dist/admin/admin/src/translations/en.json.mjs +76 -4
- package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
- package/dist/admin/admin/src/utils/browserStrapi.js +1 -1
- package/dist/admin/admin/src/utils/browserStrapi.js.map +1 -1
- package/dist/admin/admin/src/utils/browserStrapi.mjs +1 -1
- package/dist/admin/admin/src/utils/browserStrapi.mjs.map +1 -1
- package/dist/admin/admin/src/utils/getFetchClient.js +27 -3
- package/dist/admin/admin/src/utils/getFetchClient.js.map +1 -1
- package/dist/admin/admin/src/utils/getFetchClient.mjs +26 -3
- package/dist/admin/admin/src/utils/getFetchClient.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js +52 -22
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.mjs +53 -23
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.js +16 -29
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.mjs +18 -31
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/LicenseInfo.js +473 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/LicenseInfo.js.map +1 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/LicenseInfo.mjs +471 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/LicenseInfo.mjs.map +1 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.js +8 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.mjs +8 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.mjs.map +1 -1
- package/dist/admin/index.js +1 -0
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/admin/shared/utils/get-project-type.js +49 -0
- package/dist/admin/shared/utils/get-project-type.js.map +1 -0
- package/dist/admin/shared/utils/get-project-type.mjs +46 -0
- package/dist/admin/shared/utils/get-project-type.mjs.map +1 -0
- package/dist/admin/src/components/MediaLibraryBanner.d.ts +10 -1
- package/dist/admin/src/components/TopBanners.d.ts +8 -0
- package/dist/admin/src/constants.d.ts +10 -0
- package/dist/admin/src/features/Tracking.d.ts +12 -1
- package/dist/admin/src/layouts/useAuthenticatedAccessTracking.d.ts +6 -0
- package/dist/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/ApplicationInfo/components/DiagnosticSnapshotModal.d.ts +12 -0
- package/dist/admin/src/pages/Settings/pages/ApplicationInfo/components/PlanCard.d.ts +14 -0
- package/dist/admin/src/pages/Settings/pages/ApplicationInfo/components/SupportCard.d.ts +2 -0
- package/dist/admin/src/services/admin.d.ts +2 -2
- package/dist/admin/src/types/permissions.d.ts +1 -0
- package/dist/admin/src/utils/getFetchClient.d.ts +25 -0
- package/dist/ee/admin/src/hooks/useLicenseLimits.d.ts +29 -0
- package/dist/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.d.ts +6 -1
- package/dist/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/LicenseInfo.d.ts +2 -0
- package/dist/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.d.ts +7 -0
- package/dist/ee/server/src/audit-logs/entitlements.d.ts +8 -0
- package/dist/ee/server/src/audit-logs/entitlements.d.ts.map +1 -0
- package/dist/ee/server/src/audit-logs/services/lifecycles.d.ts +16 -0
- package/dist/ee/server/src/audit-logs/services/lifecycles.d.ts.map +1 -1
- package/dist/ee/server/src/controllers/admin.d.ts +36 -10
- package/dist/ee/server/src/controllers/admin.d.ts.map +1 -1
- package/dist/ee/server/src/controllers/authentication-utils/middlewares.d.ts.map +1 -1
- package/dist/ee/server/src/controllers/authentication-utils/utils.d.ts +8 -2
- package/dist/ee/server/src/controllers/authentication-utils/utils.d.ts.map +1 -1
- package/dist/ee/server/src/controllers/authentication.d.ts.map +1 -1
- package/dist/ee/server/src/controllers/index.d.ts +36 -10
- package/dist/ee/server/src/controllers/index.d.ts.map +1 -1
- package/dist/ee/server/src/controllers/user.d.ts.map +1 -1
- package/dist/ee/server/src/index.d.ts +40 -11
- package/dist/ee/server/src/index.d.ts.map +1 -1
- package/dist/ee/server/src/services/index.d.ts +4 -1
- package/dist/ee/server/src/services/index.d.ts.map +1 -1
- package/dist/ee/server/src/services/metrics.d.ts.map +1 -1
- package/dist/ee/server/src/services/persist-tables.d.ts.map +1 -1
- package/dist/ee/server/src/services/seat-enforcement.d.ts +3 -1
- package/dist/ee/server/src/services/seat-enforcement.d.ts.map +1 -1
- package/dist/server/ee/server/src/audit-logs/entitlements.js +25 -0
- package/dist/server/ee/server/src/audit-logs/entitlements.js.map +1 -0
- package/dist/server/ee/server/src/audit-logs/entitlements.mjs +23 -0
- package/dist/server/ee/server/src/audit-logs/entitlements.mjs.map +1 -0
- package/dist/server/ee/server/src/audit-logs/services/lifecycles.js +20 -8
- package/dist/server/ee/server/src/audit-logs/services/lifecycles.js.map +1 -1
- package/dist/server/ee/server/src/audit-logs/services/lifecycles.mjs +19 -9
- package/dist/server/ee/server/src/audit-logs/services/lifecycles.mjs.map +1 -1
- package/dist/server/ee/server/src/controllers/admin.js +79 -7
- package/dist/server/ee/server/src/controllers/admin.js.map +1 -1
- package/dist/server/ee/server/src/controllers/admin.mjs +79 -7
- package/dist/server/ee/server/src/controllers/admin.mjs.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.js +28 -10
- package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.js.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.mjs +28 -10
- package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.mjs.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication-utils/utils.js +2 -2
- package/dist/server/ee/server/src/controllers/authentication-utils/utils.js.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication-utils/utils.mjs +2 -2
- package/dist/server/ee/server/src/controllers/authentication-utils/utils.mjs.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication.js +11 -11
- package/dist/server/ee/server/src/controllers/authentication.js.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication.mjs +11 -11
- package/dist/server/ee/server/src/controllers/authentication.mjs.map +1 -1
- package/dist/server/ee/server/src/controllers/user.js +7 -8
- package/dist/server/ee/server/src/controllers/user.js.map +1 -1
- package/dist/server/ee/server/src/controllers/user.mjs +8 -9
- package/dist/server/ee/server/src/controllers/user.mjs.map +1 -1
- package/dist/server/ee/server/src/index.js +2 -0
- package/dist/server/ee/server/src/index.js.map +1 -1
- package/dist/server/ee/server/src/index.mjs +2 -0
- package/dist/server/ee/server/src/index.mjs.map +1 -1
- package/dist/server/ee/server/src/services/metrics.js +9 -7
- package/dist/server/ee/server/src/services/metrics.js.map +1 -1
- package/dist/server/ee/server/src/services/metrics.mjs +9 -7
- package/dist/server/ee/server/src/services/metrics.mjs.map +1 -1
- package/dist/server/ee/server/src/services/persist-tables.js +3 -4
- package/dist/server/ee/server/src/services/persist-tables.js.map +1 -1
- package/dist/server/ee/server/src/services/persist-tables.mjs +3 -4
- package/dist/server/ee/server/src/services/persist-tables.mjs.map +1 -1
- package/dist/server/ee/server/src/services/role.js +2 -2
- package/dist/server/ee/server/src/services/role.js.map +1 -1
- package/dist/server/ee/server/src/services/role.mjs +1 -1
- package/dist/server/ee/server/src/services/role.mjs.map +1 -1
- package/dist/server/ee/server/src/services/seat-enforcement.js +20 -20
- package/dist/server/ee/server/src/services/seat-enforcement.js.map +1 -1
- package/dist/server/ee/server/src/services/seat-enforcement.mjs +20 -20
- package/dist/server/ee/server/src/services/seat-enforcement.mjs.map +1 -1
- package/dist/server/ee/server/src/services/user.js +1 -2
- package/dist/server/ee/server/src/services/user.js.map +1 -1
- package/dist/server/ee/server/src/services/user.mjs +2 -3
- package/dist/server/ee/server/src/services/user.mjs.map +1 -1
- package/dist/server/ee/server/src/utils/sso-lock.js +2 -2
- package/dist/server/ee/server/src/utils/sso-lock.js.map +1 -1
- package/dist/server/ee/server/src/utils/sso-lock.mjs +1 -1
- package/dist/server/ee/server/src/utils/sso-lock.mjs.map +1 -1
- package/dist/server/server/src/audit-logs/admin-users.js +3 -3
- package/dist/server/server/src/audit-logs/admin-users.js.map +1 -1
- package/dist/server/server/src/audit-logs/admin-users.mjs +2 -2
- package/dist/server/server/src/audit-logs/admin-users.mjs.map +1 -1
- package/dist/server/server/src/audit-logs/auth.js +72 -0
- package/dist/server/server/src/audit-logs/auth.js.map +1 -0
- package/dist/server/server/src/audit-logs/auth.mjs +67 -0
- package/dist/server/server/src/audit-logs/auth.mjs.map +1 -0
- package/dist/server/server/src/audit-logs/tokens.js +3 -3
- package/dist/server/server/src/audit-logs/tokens.js.map +1 -1
- package/dist/server/server/src/audit-logs/tokens.mjs +2 -2
- package/dist/server/server/src/audit-logs/tokens.mjs.map +1 -1
- package/dist/server/server/src/audit-logs/webhooks.js +2 -2
- package/dist/server/server/src/audit-logs/webhooks.js.map +1 -1
- package/dist/server/server/src/audit-logs/webhooks.mjs +1 -1
- package/dist/server/server/src/audit-logs/webhooks.mjs.map +1 -1
- package/dist/server/server/src/bootstrap.js +6 -4
- package/dist/server/server/src/bootstrap.js.map +1 -1
- package/dist/server/server/src/bootstrap.mjs +6 -4
- package/dist/server/server/src/bootstrap.mjs.map +1 -1
- package/dist/server/server/src/config/admin-actions.js +7 -0
- package/dist/server/server/src/config/admin-actions.js.map +1 -1
- package/dist/server/server/src/config/admin-actions.mjs +7 -0
- package/dist/server/server/src/config/admin-actions.mjs.map +1 -1
- package/dist/server/server/src/controllers/admin-token.js +8 -8
- package/dist/server/server/src/controllers/admin-token.js.map +1 -1
- package/dist/server/server/src/controllers/admin-token.mjs +4 -4
- package/dist/server/server/src/controllers/admin-token.mjs.map +1 -1
- package/dist/server/server/src/controllers/admin.js +9 -5
- package/dist/server/server/src/controllers/admin.js.map +1 -1
- package/dist/server/server/src/controllers/admin.mjs +8 -4
- package/dist/server/server/src/controllers/admin.mjs.map +1 -1
- package/dist/server/server/src/controllers/api-token.js +8 -8
- package/dist/server/server/src/controllers/api-token.js.map +1 -1
- package/dist/server/server/src/controllers/api-token.mjs +4 -4
- package/dist/server/server/src/controllers/api-token.mjs.map +1 -1
- package/dist/server/server/src/controllers/authentication.js +34 -8
- package/dist/server/server/src/controllers/authentication.js.map +1 -1
- package/dist/server/server/src/controllers/authentication.mjs +34 -8
- package/dist/server/server/src/controllers/authentication.mjs.map +1 -1
- package/dist/server/server/src/controllers/formatters/conditions.js +2 -2
- package/dist/server/server/src/controllers/formatters/conditions.js.map +1 -1
- package/dist/server/server/src/controllers/formatters/conditions.mjs +2 -2
- package/dist/server/server/src/controllers/formatters/conditions.mjs.map +1 -1
- package/dist/server/server/src/controllers/transfer/index.js +2 -2
- package/dist/server/server/src/controllers/transfer/index.js.map +1 -1
- package/dist/server/server/src/controllers/transfer/index.mjs +2 -2
- package/dist/server/server/src/controllers/transfer/index.mjs.map +1 -1
- package/dist/server/server/src/controllers/transfer/token.js +8 -8
- package/dist/server/server/src/controllers/transfer/token.js.map +1 -1
- package/dist/server/server/src/controllers/transfer/token.mjs +4 -4
- package/dist/server/server/src/controllers/transfer/token.mjs.map +1 -1
- package/dist/server/server/src/domain/action/index.js +18 -16
- package/dist/server/server/src/domain/action/index.js.map +1 -1
- package/dist/server/server/src/domain/action/index.mjs +16 -14
- package/dist/server/server/src/domain/action/index.mjs.map +1 -1
- package/dist/server/server/src/domain/action/provider.mjs +4 -4
- package/dist/server/server/src/domain/action/provider.mjs.map +1 -1
- package/dist/server/server/src/domain/condition/index.js +7 -4
- package/dist/server/server/src/domain/condition/index.js.map +1 -1
- package/dist/server/server/src/domain/condition/index.mjs +7 -4
- package/dist/server/server/src/domain/condition/index.mjs.map +1 -1
- package/dist/server/server/src/domain/permission/index.js +24 -15
- package/dist/server/server/src/domain/permission/index.js.map +1 -1
- package/dist/server/server/src/domain/permission/index.mjs +21 -12
- package/dist/server/server/src/domain/permission/index.mjs.map +1 -1
- package/dist/server/server/src/middlewares/rateLimit.js +5 -5
- package/dist/server/server/src/middlewares/rateLimit.js.map +1 -1
- package/dist/server/server/src/middlewares/rateLimit.mjs +4 -4
- package/dist/server/server/src/middlewares/rateLimit.mjs.map +1 -1
- package/dist/server/server/src/register.js +10 -0
- package/dist/server/server/src/register.js.map +1 -1
- package/dist/server/server/src/register.mjs +10 -0
- package/dist/server/server/src/register.mjs.map +1 -1
- package/dist/server/server/src/routes/admin.js +18 -0
- package/dist/server/server/src/routes/admin.js.map +1 -1
- package/dist/server/server/src/routes/admin.mjs +18 -0
- package/dist/server/server/src/routes/admin.mjs.map +1 -1
- package/dist/server/server/src/services/action.js +1 -2
- package/dist/server/server/src/services/action.js.map +1 -1
- package/dist/server/server/src/services/action.mjs +1 -2
- package/dist/server/server/src/services/action.mjs.map +1 -1
- package/dist/server/server/src/services/api-token.js +61 -49
- package/dist/server/server/src/services/api-token.js.map +1 -1
- package/dist/server/server/src/services/api-token.mjs +53 -41
- package/dist/server/server/src/services/api-token.mjs.map +1 -1
- package/dist/server/server/src/services/auth.js +4 -2
- package/dist/server/server/src/services/auth.js.map +1 -1
- package/dist/server/server/src/services/auth.mjs +4 -3
- package/dist/server/server/src/services/auth.mjs.map +1 -1
- package/dist/server/server/src/services/condition.js +2 -2
- package/dist/server/server/src/services/condition.js.map +1 -1
- package/dist/server/server/src/services/condition.mjs +1 -1
- package/dist/server/server/src/services/condition.mjs.map +1 -1
- package/dist/server/server/src/services/content-type.js +5 -4
- package/dist/server/server/src/services/content-type.js.map +1 -1
- package/dist/server/server/src/services/content-type.mjs +8 -7
- package/dist/server/server/src/services/content-type.mjs.map +1 -1
- package/dist/server/server/src/services/debug-dump.js +173 -0
- package/dist/server/server/src/services/debug-dump.js.map +1 -0
- package/dist/server/server/src/services/debug-dump.mjs +166 -0
- package/dist/server/server/src/services/debug-dump.mjs.map +1 -0
- package/dist/server/server/src/services/homepage.js +2 -1
- package/dist/server/server/src/services/homepage.js.map +1 -1
- package/dist/server/server/src/services/homepage.mjs +2 -1
- package/dist/server/server/src/services/homepage.mjs.map +1 -1
- package/dist/server/server/src/services/index.js +3 -1
- package/dist/server/server/src/services/index.js.map +1 -1
- package/dist/server/server/src/services/index.mjs +3 -1
- package/dist/server/server/src/services/index.mjs.map +1 -1
- package/dist/server/server/src/services/passport/local-strategy.js +2 -2
- package/dist/server/server/src/services/passport/local-strategy.js.map +1 -1
- package/dist/server/server/src/services/passport/local-strategy.mjs +1 -1
- package/dist/server/server/src/services/passport/local-strategy.mjs.map +1 -1
- package/dist/server/server/src/services/passport.js +1 -2
- package/dist/server/server/src/services/passport.js.map +1 -1
- package/dist/server/server/src/services/passport.mjs +1 -2
- package/dist/server/server/src/services/passport.mjs.map +1 -1
- package/dist/server/server/src/services/permission/engine.js +4 -4
- package/dist/server/server/src/services/permission/engine.js.map +1 -1
- package/dist/server/server/src/services/permission/engine.mjs +2 -2
- package/dist/server/server/src/services/permission/engine.mjs.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/index.js +2 -3
- package/dist/server/server/src/services/permission/permissions-manager/index.js.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/index.mjs +1 -2
- package/dist/server/server/src/services/permission/permissions-manager/index.mjs.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/permission-fields.js +6 -6
- package/dist/server/server/src/services/permission/permissions-manager/permission-fields.js.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/permission-fields.mjs +4 -4
- package/dist/server/server/src/services/permission/permissions-manager/permission-fields.mjs.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/sanitize.js +47 -41
- 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 +44 -38
- package/dist/server/server/src/services/permission/permissions-manager/sanitize.mjs.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/validate.js +30 -26
- package/dist/server/server/src/services/permission/permissions-manager/validate.js.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/validate.mjs +28 -24
- package/dist/server/server/src/services/permission/permissions-manager/validate.mjs.map +1 -1
- package/dist/server/server/src/services/permission/queries.js +9 -9
- package/dist/server/server/src/services/permission/queries.js.map +1 -1
- package/dist/server/server/src/services/permission/queries.mjs +9 -9
- package/dist/server/server/src/services/permission/queries.mjs.map +1 -1
- package/dist/server/server/src/services/permission/rename-fields.js +118 -0
- package/dist/server/server/src/services/permission/rename-fields.js.map +1 -0
- package/dist/server/server/src/services/permission/rename-fields.mjs +116 -0
- package/dist/server/server/src/services/permission/rename-fields.mjs.map +1 -0
- package/dist/server/server/src/services/permission/sections-builder/index.js +2 -2
- package/dist/server/server/src/services/permission/sections-builder/index.js.map +1 -1
- package/dist/server/server/src/services/permission/sections-builder/index.mjs +2 -2
- package/dist/server/server/src/services/permission/sections-builder/index.mjs.map +1 -1
- package/dist/server/server/src/services/permission/sections-builder/section.js +1 -2
- package/dist/server/server/src/services/permission/sections-builder/section.js.map +1 -1
- package/dist/server/server/src/services/permission/sections-builder/section.mjs +1 -2
- package/dist/server/server/src/services/permission/sections-builder/section.mjs.map +1 -1
- package/dist/server/server/src/services/permission/sections-builder/utils.js +6 -6
- package/dist/server/server/src/services/permission/sections-builder/utils.js.map +1 -1
- package/dist/server/server/src/services/permission/sections-builder/utils.mjs +4 -4
- package/dist/server/server/src/services/permission/sections-builder/utils.mjs.map +1 -1
- package/dist/server/server/src/services/role.js +20 -19
- package/dist/server/server/src/services/role.js.map +1 -1
- package/dist/server/server/src/services/role.mjs +20 -19
- package/dist/server/server/src/services/role.mjs.map +1 -1
- package/dist/server/server/src/services/transfer/token.js +20 -16
- package/dist/server/server/src/services/transfer/token.js.map +1 -1
- package/dist/server/server/src/services/transfer/token.mjs +14 -10
- package/dist/server/server/src/services/transfer/token.mjs.map +1 -1
- package/dist/server/server/src/services/user.js +2 -3
- package/dist/server/server/src/services/user.js.map +1 -1
- package/dist/server/server/src/services/user.mjs +3 -4
- package/dist/server/server/src/services/user.mjs.map +1 -1
- package/dist/server/server/src/strategies/api-token-utils.js +2 -3
- package/dist/server/server/src/strategies/api-token-utils.js.map +1 -1
- package/dist/server/server/src/strategies/api-token-utils.mjs +2 -3
- package/dist/server/server/src/strategies/api-token-utils.mjs.map +1 -1
- package/dist/server/server/src/strategies/content-api-token.js +3 -3
- package/dist/server/server/src/strategies/content-api-token.js.map +1 -1
- package/dist/server/server/src/strategies/content-api-token.mjs +1 -1
- package/dist/server/server/src/strategies/content-api-token.mjs.map +1 -1
- package/dist/server/server/src/strategies/data-transfer.js +4 -4
- package/dist/server/server/src/strategies/data-transfer.js.map +1 -1
- package/dist/server/server/src/strategies/data-transfer.mjs +3 -3
- package/dist/server/server/src/strategies/data-transfer.mjs.map +1 -1
- package/dist/server/server/src/utils/debug-dump/redact.js +197 -0
- package/dist/server/server/src/utils/debug-dump/redact.js.map +1 -0
- package/dist/server/server/src/utils/debug-dump/redact.mjs +194 -0
- package/dist/server/server/src/utils/debug-dump/redact.mjs.map +1 -0
- package/dist/server/server/src/validation/common-validators.js +9 -10
- package/dist/server/server/src/validation/common-validators.js.map +1 -1
- package/dist/server/server/src/validation/common-validators.mjs +13 -14
- package/dist/server/server/src/validation/common-validators.mjs.map +1 -1
- package/dist/server/server/src/validation/user.js +1 -2
- package/dist/server/server/src/validation/user.js.map +1 -1
- package/dist/server/server/src/validation/user.mjs +1 -2
- package/dist/server/server/src/validation/user.mjs.map +1 -1
- package/dist/server/shared/utils/get-project-type.js +49 -0
- package/dist/server/shared/utils/get-project-type.js.map +1 -0
- package/dist/server/shared/utils/get-project-type.mjs +46 -0
- package/dist/server/shared/utils/get-project-type.mjs.map +1 -0
- package/dist/server/src/audit-logs/auth.d.ts +72 -0
- package/dist/server/src/audit-logs/auth.d.ts.map +1 -0
- package/dist/server/src/audit-logs/tokens.d.ts.map +1 -1
- package/dist/server/src/bootstrap.d.ts.map +1 -1
- package/dist/server/src/config/admin-actions.d.ts.map +1 -1
- package/dist/server/src/controllers/admin-token.d.ts.map +1 -1
- package/dist/server/src/controllers/admin.d.ts +3 -0
- package/dist/server/src/controllers/admin.d.ts.map +1 -1
- package/dist/server/src/controllers/api-token.d.ts.map +1 -1
- package/dist/server/src/controllers/authentication.d.ts.map +1 -1
- package/dist/server/src/controllers/formatters/conditions.d.ts +1 -1
- package/dist/server/src/controllers/formatters/conditions.d.ts.map +1 -1
- package/dist/server/src/controllers/homepage.d.ts +1 -1
- package/dist/server/src/controllers/index.d.ts +4 -1
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/controllers/transfer/index.d.ts.map +1 -1
- package/dist/server/src/controllers/transfer/token.d.ts.map +1 -1
- package/dist/server/src/domain/action/index.d.ts +1 -0
- package/dist/server/src/domain/action/index.d.ts.map +1 -1
- package/dist/server/src/domain/condition/index.d.ts +2 -2
- package/dist/server/src/domain/condition/index.d.ts.map +1 -1
- package/dist/server/src/domain/permission/index.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +11 -3
- package/dist/server/src/index.d.ts.map +1 -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/register.d.ts.map +1 -1
- package/dist/server/src/routes/admin.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.map +1 -1
- package/dist/server/src/services/auth.d.ts +6 -0
- 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/debug-dump.d.ts +9 -0
- package/dist/server/src/services/debug-dump.d.ts.map +1 -0
- package/dist/server/src/services/homepage.d.ts +1 -1
- package/dist/server/src/services/homepage.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +7 -2
- package/dist/server/src/services/index.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.map +1 -1
- package/dist/server/src/services/permission/engine.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/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/rename-fields.d.ts +21 -0
- package/dist/server/src/services/permission/rename-fields.d.ts.map +1 -0
- 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 +1 -1
- package/dist/server/src/services/permission/sections-builder/utils.d.ts.map +1 -1
- package/dist/server/src/services/role.d.ts +1 -1
- package/dist/server/src/services/role.d.ts.map +1 -1
- package/dist/server/src/services/transfer/token.d.ts.map +1 -1
- package/dist/server/src/strategies/content-api-token.d.ts.map +1 -1
- package/dist/server/src/utils/debug-dump/redact.d.ts +8 -0
- package/dist/server/src/utils/debug-dump/redact.d.ts.map +1 -0
- package/dist/server/src/validation/user.d.ts.map +1 -1
- package/dist/shared/contracts/admin.d.ts +106 -0
- package/dist/shared/contracts/admin.d.ts.map +1 -1
- package/dist/shared/utils/__tests__/get-project-type.test.d.ts +1 -0
- package/dist/shared/utils/__tests__/get-project-type.test.d.ts.map +1 -0
- package/dist/shared/utils/get-project-type.d.ts +37 -0
- package/dist/shared/utils/get-project-type.d.ts.map +1 -0
- package/package.json +10 -10
- package/dist/admin/admin/src/utils/getProjectType.js +0 -22
- package/dist/admin/admin/src/utils/getProjectType.js.map +0 -1
- package/dist/admin/admin/src/utils/getProjectType.mjs +0 -20
- package/dist/admin/admin/src/utils/getProjectType.mjs.map +0 -1
- package/dist/admin/src/utils/getProjectType.d.ts +0 -16
package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.mjs
CHANGED
|
@@ -1,23 +1,22 @@
|
|
|
1
1
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
-
import {
|
|
2
|
+
import { Flex, Typography, ProgressBar } from '@strapi/design-system';
|
|
3
3
|
import { useIntl } from 'react-intl';
|
|
4
4
|
import { styled } from 'styled-components';
|
|
5
5
|
import { useAIAvailability } from '../../../../../hooks/useAIAvailability.mjs';
|
|
6
6
|
import { useGetAiUsageQuery } from '../../../../../services/ai.mjs';
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
/**
|
|
9
|
+
* The fill colour has to come from a transient prop. `ProgressBar` forwards unknown props onto
|
|
10
|
+
* the underlying Radix div, so the `color="danger"` this used to be given was landing as an HTML
|
|
11
|
+
* `color` attribute and never reaching the fill — the overage bar rendered neutral, not red.
|
|
12
|
+
*/ const StyledProgressBar = styled(ProgressBar)`
|
|
9
13
|
width: 100%;
|
|
10
14
|
background-color: ${({ theme })=>theme.colors.neutral200};
|
|
11
15
|
> div {
|
|
12
|
-
background-color: ${({ theme })
|
|
16
|
+
background-color: ${({ theme, $variant })=>$variant === 'danger' ? theme.colors.danger600 : theme.colors.neutral700};
|
|
13
17
|
}
|
|
14
18
|
`;
|
|
15
|
-
const
|
|
16
|
-
${({ theme })=>theme.breakpoints.large} {
|
|
17
|
-
grid-column: 7 / 13;
|
|
18
|
-
}
|
|
19
|
-
`;
|
|
20
|
-
const AIUsage = ()=>{
|
|
19
|
+
const AIUsage = ({ isTrial = false })=>{
|
|
21
20
|
const { formatMessage } = useIntl();
|
|
22
21
|
const isAIAvailable = useAIAvailability();
|
|
23
22
|
const { data, isLoading, error } = useGetAiUsageQuery(undefined, {
|
|
@@ -44,9 +43,7 @@ const AIUsage = ()=>{
|
|
|
44
43
|
const percentRemaining = usedCredits / totalCredits * 100;
|
|
45
44
|
const percentOverage = usedCredits / maxCredits * 100;
|
|
46
45
|
const isInOverages = overage > 0 && maxCredits !== totalCredits;
|
|
47
|
-
return /*#__PURE__*/ jsxs(
|
|
48
|
-
col: 6,
|
|
49
|
-
s: 12,
|
|
46
|
+
return /*#__PURE__*/ jsxs(Flex, {
|
|
50
47
|
direction: "column",
|
|
51
48
|
alignItems: "start",
|
|
52
49
|
gap: 2,
|
|
@@ -66,35 +63,68 @@ const AIUsage = ()=>{
|
|
|
66
63
|
children: [
|
|
67
64
|
!isInOverages && /*#__PURE__*/ jsxs(Fragment, {
|
|
68
65
|
children: [
|
|
66
|
+
/*#__PURE__*/ jsxs(Flex, {
|
|
67
|
+
direction: "row",
|
|
68
|
+
alignItems: "baseline",
|
|
69
|
+
gap: 1,
|
|
70
|
+
children: [
|
|
71
|
+
/*#__PURE__*/ jsx(Typography, {
|
|
72
|
+
children: `${usedCredits.toFixed(2)}`
|
|
73
|
+
}),
|
|
74
|
+
/*#__PURE__*/ jsx(Typography, {
|
|
75
|
+
variant: "pi",
|
|
76
|
+
textColor: "neutral600",
|
|
77
|
+
children: `/ ${totalCredits}`
|
|
78
|
+
})
|
|
79
|
+
]
|
|
80
|
+
}),
|
|
69
81
|
/*#__PURE__*/ jsx(Flex, {
|
|
70
82
|
width: "100%",
|
|
71
83
|
children: /*#__PURE__*/ jsx(StyledProgressBar, {
|
|
72
84
|
value: percentRemaining,
|
|
73
|
-
size: "M"
|
|
85
|
+
size: "M",
|
|
86
|
+
"aria-label": `${usedCredits.toFixed(2)} credits used from ${totalCredits} credits available in your plan`
|
|
74
87
|
})
|
|
75
|
-
}),
|
|
76
|
-
/*#__PURE__*/ jsx(Typography, {
|
|
77
|
-
variant: "omega",
|
|
78
|
-
children: `${usedCredits.toFixed(2)} credits used from ${totalCredits} credits available in your plan`
|
|
79
88
|
})
|
|
80
89
|
]
|
|
81
90
|
}),
|
|
82
91
|
isInOverages && /*#__PURE__*/ jsxs(Fragment, {
|
|
83
92
|
children: [
|
|
93
|
+
/*#__PURE__*/ jsxs(Flex, {
|
|
94
|
+
direction: "row",
|
|
95
|
+
alignItems: "baseline",
|
|
96
|
+
gap: 1,
|
|
97
|
+
children: [
|
|
98
|
+
/*#__PURE__*/ jsx(Typography, {
|
|
99
|
+
variant: "epsilon",
|
|
100
|
+
textColor: "danger600",
|
|
101
|
+
children: `${overage.toFixed(2)}`
|
|
102
|
+
}),
|
|
103
|
+
/*#__PURE__*/ jsx(Typography, {
|
|
104
|
+
variant: "pi",
|
|
105
|
+
textColor: "neutral600",
|
|
106
|
+
children: `/ ${totalCredits}`
|
|
107
|
+
})
|
|
108
|
+
]
|
|
109
|
+
}),
|
|
84
110
|
/*#__PURE__*/ jsx(Flex, {
|
|
85
111
|
width: "100%",
|
|
86
112
|
children: /*#__PURE__*/ jsx(StyledProgressBar, {
|
|
87
113
|
value: percentOverage,
|
|
88
114
|
size: "M",
|
|
89
|
-
|
|
115
|
+
$variant: "danger",
|
|
116
|
+
"aria-label": `${overage.toFixed(2)} credits used above the ${totalCredits} credits available in your plan`
|
|
90
117
|
})
|
|
91
|
-
}),
|
|
92
|
-
/*#__PURE__*/ jsx(Typography, {
|
|
93
|
-
variant: "omega",
|
|
94
|
-
textColor: "danger600",
|
|
95
|
-
children: `${overage.toFixed(2)} credits used above the ${totalCredits} credits available in your plan`
|
|
96
118
|
})
|
|
97
119
|
]
|
|
120
|
+
}),
|
|
121
|
+
!isTrial && /*#__PURE__*/ jsx(Typography, {
|
|
122
|
+
variant: "pi",
|
|
123
|
+
textColor: "neutral600",
|
|
124
|
+
children: formatMessage({
|
|
125
|
+
id: 'Settings.application.ai-usage.overage-rate',
|
|
126
|
+
defaultMessage: '+$1.50 per 100 credits above plan limit'
|
|
127
|
+
})
|
|
98
128
|
})
|
|
99
129
|
]
|
|
100
130
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AIUsage.mjs","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.tsx"],"sourcesContent":["import { Flex, Typography,
|
|
1
|
+
{"version":3,"file":"AIUsage.mjs","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.tsx"],"sourcesContent":["import { Flex, Typography, ProgressBar } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useAIAvailability } from '../../../../../hooks/useAIAvailability';\nimport { useGetAiUsageQuery } from '../../../../../services/ai';\n\n/**\n * The fill colour has to come from a transient prop. `ProgressBar` forwards unknown props onto\n * the underlying Radix div, so the `color=\"danger\"` this used to be given was landing as an HTML\n * `color` attribute and never reaching the fill — the overage bar rendered neutral, not red.\n */\nconst StyledProgressBar = styled(ProgressBar)<{ $variant?: 'neutral' | 'danger' }>`\n width: 100%;\n background-color: ${({ theme }) => theme.colors.neutral200};\n > div {\n background-color: ${({ theme, $variant }) =>\n $variant === 'danger' ? theme.colors.danger600 : theme.colors.neutral700};\n }\n`;\n\ninterface AIUsageProps {\n /** Trials are not billed for overages, so the rate line is meaningless to them. */\n isTrial?: boolean;\n}\n\nexport const AIUsage = ({ isTrial = false }: AIUsageProps) => {\n const { formatMessage } = useIntl();\n const isAIAvailable = useAIAvailability();\n const { data, isLoading, error } = useGetAiUsageQuery(undefined, {\n refetchOnMountOrArgChange: true,\n skip: !isAIAvailable,\n });\n\n if (!isAIAvailable) {\n return null;\n }\n\n if (isLoading) {\n return null;\n }\n\n if (error || !data) {\n return null;\n }\n\n if (!data.subscription?.cmsAiEnabled) {\n return null;\n }\n\n // Calculate remaining credits and total\n const totalCredits = data.subscription.cmsAiCreditsBase;\n const usedCredits = data.cmsAiCreditsUsed;\n const maxCredits = data.subscription.cmsAiCreditsMaxUsage;\n const overage = usedCredits - totalCredits;\n const percentRemaining = (usedCredits / totalCredits) * 100;\n const percentOverage = (usedCredits / maxCredits) * 100;\n\n const isInOverages = overage > 0 && maxCredits !== totalCredits;\n\n return (\n <Flex direction=\"column\" alignItems=\"start\" gap={2}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.application.ai-usage',\n defaultMessage: 'AI Usage',\n })}\n </Typography>\n <Flex gap={2} direction=\"column\" alignItems=\"flex-start\">\n {!isInOverages && (\n <>\n <Flex direction=\"row\" alignItems=\"baseline\" gap={1}>\n <Typography>{`${usedCredits.toFixed(2)}`}</Typography>\n <Typography variant=\"pi\" textColor=\"neutral600\">{`/ ${totalCredits}`}</Typography>\n </Flex>\n <Flex width=\"100%\">\n {/* The \"12.00 / 100\" pair above is only meaningful next to the bar, so the bar\n carries the full sentence for screen readers. */}\n <StyledProgressBar\n value={percentRemaining}\n size=\"M\"\n aria-label={`${usedCredits.toFixed(2)} credits used from ${totalCredits} credits available in your plan`}\n />\n </Flex>\n </>\n )}\n {isInOverages && (\n <>\n <Flex direction=\"row\" alignItems=\"baseline\" gap={1}>\n <Typography variant=\"epsilon\" textColor=\"danger600\">\n {`${overage.toFixed(2)}`}\n </Typography>\n <Typography variant=\"pi\" textColor=\"neutral600\">{`/ ${totalCredits}`}</Typography>\n </Flex>\n <Flex width=\"100%\">\n <StyledProgressBar\n value={percentOverage}\n size=\"M\"\n $variant=\"danger\"\n aria-label={`${overage.toFixed(2)} credits used above the ${totalCredits} credits available in your plan`}\n />\n </Flex>\n </>\n )}\n {!isTrial && (\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.application.ai-usage.overage-rate',\n defaultMessage: '+$1.50 per 100 credits above plan limit',\n })}\n </Typography>\n )}\n </Flex>\n </Flex>\n );\n};\n"],"names":["StyledProgressBar","styled","ProgressBar","theme","colors","neutral200","$variant","danger600","neutral700","AIUsage","isTrial","formatMessage","useIntl","isAIAvailable","useAIAvailability","data","isLoading","error","useGetAiUsageQuery","undefined","refetchOnMountOrArgChange","skip","subscription","cmsAiEnabled","totalCredits","cmsAiCreditsBase","usedCredits","cmsAiCreditsUsed","maxCredits","cmsAiCreditsMaxUsage","overage","percentRemaining","percentOverage","isInOverages","_jsxs","Flex","direction","alignItems","gap","_jsx","Typography","variant","textColor","id","defaultMessage","_Fragment","toFixed","width","value","size","aria-label"],"mappings":"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"}
|
|
@@ -9,8 +9,6 @@ var useRBAC = require('../../../../../../../../admin/src/hooks/useRBAC.js');
|
|
|
9
9
|
var selectors = require('../../../../../../../../admin/src/selectors.js');
|
|
10
10
|
var useLicenseLimits = require('../../../../../hooks/useLicenseLimits.js');
|
|
11
11
|
|
|
12
|
-
const BILLING_SELF_HOSTED_URL = 'mailto:sales@strapi.io';
|
|
13
|
-
const MANAGE_SUBSCRIPTION_URL = 'https://billing.strapi.io';
|
|
14
12
|
const AdminSeatInfoEE = ()=>{
|
|
15
13
|
const { formatMessage } = reactIntl.useIntl();
|
|
16
14
|
const { settings } = reactRedux.useSelector(selectors.selectAdminPermissions);
|
|
@@ -26,15 +24,22 @@ const AdminSeatInfoEE = ()=>{
|
|
|
26
24
|
if (isError || isLoading || !license) {
|
|
27
25
|
return null;
|
|
28
26
|
}
|
|
29
|
-
const {
|
|
30
|
-
|
|
27
|
+
const { enforcementUserCount, permittedSeats, seats } = license;
|
|
28
|
+
// `permittedSeats` is the live enforcement limit and is wiped once the licence stops being
|
|
29
|
+
// usable, so fall back to the retained `seats` to keep showing the count on an expired
|
|
30
|
+
// licence. Enforcement itself (`licenseLimitStatus`, `shouldStopCreate`) still runs off
|
|
31
|
+
// `permittedSeats` server-side and is untouched by this.
|
|
32
|
+
const seatLimit = permittedSeats ?? seats;
|
|
33
|
+
if (!seatLimit) {
|
|
31
34
|
return null;
|
|
32
35
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
+
// The red count and the warning follow the same displayed limit. Server-side
|
|
37
|
+
// `licenseLimitStatus` tracks only the live limit, so it is empty once the licence expires.
|
|
38
|
+
const isOverLimit = enforcementUserCount > seatLimit;
|
|
39
|
+
return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
|
36
40
|
direction: "column",
|
|
37
|
-
alignItems: "
|
|
41
|
+
alignItems: "start",
|
|
42
|
+
gap: 2,
|
|
38
43
|
children: [
|
|
39
44
|
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
40
45
|
variant: "sigma",
|
|
@@ -54,17 +59,17 @@ const AdminSeatInfoEE = ()=>{
|
|
|
54
59
|
id: 'Settings.application.ee.admin-seats.count',
|
|
55
60
|
defaultMessage: '<text>{enforcementUserCount}</text>/{permittedSeats}'
|
|
56
61
|
}, {
|
|
57
|
-
permittedSeats,
|
|
62
|
+
permittedSeats: seatLimit,
|
|
58
63
|
enforcementUserCount,
|
|
59
64
|
text: (chunks)=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
60
65
|
fontWeight: "semiBold",
|
|
61
|
-
textColor:
|
|
66
|
+
textColor: isOverLimit ? 'danger500' : undefined,
|
|
62
67
|
children: chunks
|
|
63
68
|
})
|
|
64
69
|
})
|
|
65
70
|
})
|
|
66
71
|
}),
|
|
67
|
-
|
|
72
|
+
isOverLimit && /*#__PURE__*/ jsxRuntime.jsx(designSystem.Tooltip, {
|
|
68
73
|
label: formatMessage({
|
|
69
74
|
id: 'Settings.application.ee.admin-seats.at-limit-tooltip',
|
|
70
75
|
defaultMessage: 'At limit: add seats to invite more users'
|
|
@@ -76,24 +81,6 @@ const AdminSeatInfoEE = ()=>{
|
|
|
76
81
|
})
|
|
77
82
|
})
|
|
78
83
|
]
|
|
79
|
-
}),
|
|
80
|
-
type === 'gold' ? /*#__PURE__*/ jsxRuntime.jsx(designSystem.Link, {
|
|
81
|
-
href: BILLING_SELF_HOSTED_URL,
|
|
82
|
-
endIcon: /*#__PURE__*/ jsxRuntime.jsx(icons.ExternalLink, {}),
|
|
83
|
-
target: "_blank",
|
|
84
|
-
children: formatMessage({
|
|
85
|
-
id: 'Settings.application.ee.admin-seats.support',
|
|
86
|
-
defaultMessage: 'Contact sales'
|
|
87
|
-
})
|
|
88
|
-
}) : /*#__PURE__*/ jsxRuntime.jsx(designSystem.Link, {
|
|
89
|
-
href: MANAGE_SUBSCRIPTION_URL,
|
|
90
|
-
isExternal: true,
|
|
91
|
-
endIcon: /*#__PURE__*/ jsxRuntime.jsx(icons.ExternalLink, {}),
|
|
92
|
-
target: "_blank",
|
|
93
|
-
children: formatMessage({
|
|
94
|
-
id: 'Settings.application.ee.admin-seats.add-seats',
|
|
95
|
-
defaultMessage: 'Manage subscription'
|
|
96
|
-
})
|
|
97
84
|
})
|
|
98
85
|
]
|
|
99
86
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdminSeatInfo.js","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { Flex, Tooltip, Typography
|
|
1
|
+
{"version":3,"file":"AdminSeatInfo.js","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { Flex, Tooltip, Typography } from '@strapi/design-system';\nimport { WarningCircle } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\n\nimport { useRBAC } from '../../../../../../../../admin/src/hooks/useRBAC';\nimport { selectAdminPermissions } from '../../../../../../../../admin/src/selectors';\nimport { useLicenseLimits } from '../../../../../hooks/useLicenseLimits';\n\nexport const AdminSeatInfoEE = () => {\n const { formatMessage } = useIntl();\n const { settings } = useSelector(selectAdminPermissions);\n const {\n isLoading: isRBACLoading,\n allowedActions: { canRead, canCreate, canUpdate, canDelete },\n } = useRBAC(settings?.users ?? {});\n const {\n license,\n isError,\n isLoading: isLicenseLoading,\n } = useLicenseLimits({\n // TODO: this creates a waterfall which we should avoid to render earlier, but for that\n // we will have to move away from data-fetching hooks to query functions.\n // Short-term we could at least implement a loader, for the user to have visual feedback\n // in case the requests take a while\n enabled: !isRBACLoading && canRead && canCreate && canUpdate && canDelete,\n });\n\n const isLoading = isRBACLoading || isLicenseLoading;\n\n if (isError || isLoading || !license) {\n return null;\n }\n\n const { enforcementUserCount, permittedSeats, seats } = license;\n\n // `permittedSeats` is the live enforcement limit and is wiped once the licence stops being\n // usable, so fall back to the retained `seats` to keep showing the count on an expired\n // licence. Enforcement itself (`licenseLimitStatus`, `shouldStopCreate`) still runs off\n // `permittedSeats` server-side and is untouched by this.\n const seatLimit = permittedSeats ?? seats;\n\n if (!seatLimit) {\n return null;\n }\n\n // The red count and the warning follow the same displayed limit. Server-side\n // `licenseLimitStatus` tracks only the live limit, so it is empty once the licence expires.\n const isOverLimit = enforcementUserCount > seatLimit;\n\n return (\n <Flex direction=\"column\" alignItems=\"start\" gap={2}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.application.admin-seats',\n defaultMessage: 'Admin seats',\n })}\n </Typography>\n <Flex gap={2}>\n <Flex>\n <Typography tag=\"p\">\n {formatMessage(\n {\n id: 'Settings.application.ee.admin-seats.count',\n defaultMessage: '<text>{enforcementUserCount}</text>/{permittedSeats}',\n },\n {\n permittedSeats: seatLimit,\n enforcementUserCount,\n text: (chunks: ReactNode) => (\n <Typography\n fontWeight=\"semiBold\"\n textColor={isOverLimit ? 'danger500' : undefined}\n >\n {chunks}\n </Typography>\n ),\n }\n )}\n </Typography>\n </Flex>\n {isOverLimit && (\n <Tooltip\n label={formatMessage({\n id: 'Settings.application.ee.admin-seats.at-limit-tooltip',\n defaultMessage: 'At limit: add seats to invite more users',\n })}\n >\n <WarningCircle width=\"1.4rem\" height=\"1.4rem\" fill=\"danger500\" />\n </Tooltip>\n )}\n </Flex>\n </Flex>\n );\n};\n"],"names":["AdminSeatInfoEE","formatMessage","useIntl","settings","useSelector","selectAdminPermissions","isLoading","isRBACLoading","allowedActions","canRead","canCreate","canUpdate","canDelete","useRBAC","users","license","isError","isLicenseLoading","useLicenseLimits","enabled","enforcementUserCount","permittedSeats","seats","seatLimit","isOverLimit","_jsxs","Flex","direction","alignItems","gap","_jsx","Typography","variant","textColor","id","defaultMessage","tag","text","chunks","fontWeight","undefined","Tooltip","label","WarningCircle","width","height","fill"],"mappings":";;;;;;;;;;;MAWaA,eAAAA,GAAkB,IAAA;IAC7B,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM,EAAEC,QAAQ,EAAE,GAAGC,sBAAAA,CAAYC,gCAAAA,CAAAA;AACjC,IAAA,MAAM,EACJC,SAAAA,EAAWC,aAAa,EACxBC,cAAAA,EAAgB,EAAEC,OAAO,EAAEC,SAAS,EAAEC,SAAS,EAAEC,SAAS,EAAE,EAC7D,GAAGC,eAAAA,CAAQV,QAAAA,EAAUW,SAAS,EAAC,CAAA;IAChC,MAAM,EACJC,OAAO,EACPC,OAAO,EACPV,SAAAA,EAAWW,gBAAgB,EAC5B,GAAGC,iCAAAA,CAAiB;;;;;AAKnBC,QAAAA,OAAAA,EAAS,CAACZ,aAAAA,IAAiBE,OAAAA,IAAWC,SAAAA,IAAaC,SAAAA,IAAaC;AAClE,KAAA,CAAA;AAEA,IAAA,MAAMN,YAAYC,aAAAA,IAAiBU,gBAAAA;IAEnC,IAAID,OAAAA,IAAWV,SAAAA,IAAa,CAACS,OAAAA,EAAS;QACpC,OAAO,IAAA;AACT,IAAA;AAEA,IAAA,MAAM,EAAEK,oBAAoB,EAAEC,cAAc,EAAEC,KAAK,EAAE,GAAGP,OAAAA;;;;;AAMxD,IAAA,MAAMQ,YAAYF,cAAAA,IAAkBC,KAAAA;AAEpC,IAAA,IAAI,CAACC,SAAAA,EAAW;QACd,OAAO,IAAA;AACT,IAAA;;;AAIA,IAAA,MAAMC,cAAcJ,oBAAAA,GAAuBG,SAAAA;AAE3C,IAAA,qBACEE,eAAA,CAACC,iBAAAA,EAAAA;QAAKC,SAAAA,EAAU,QAAA;QAASC,UAAAA,EAAW,OAAA;QAAQC,GAAAA,EAAK,CAAA;;0BAC/CC,cAAA,CAACC,uBAAAA,EAAAA;gBAAWC,OAAAA,EAAQ,OAAA;gBAAQC,SAAAA,EAAU,YAAA;0BACnChC,aAAAA,CAAc;oBACbiC,EAAAA,EAAI,kCAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA;;0BAEFV,eAAA,CAACC,iBAAAA,EAAAA;gBAAKG,GAAAA,EAAK,CAAA;;kCACTC,cAAA,CAACJ,iBAAAA,EAAAA;AACC,wBAAA,QAAA,gBAAAI,cAAA,CAACC,uBAAAA,EAAAA;4BAAWK,GAAAA,EAAI,GAAA;sCACbnC,aAAAA,CACC;gCACEiC,EAAAA,EAAI,2CAAA;gCACJC,cAAAA,EAAgB;6BAClB,EACA;gCACEd,cAAAA,EAAgBE,SAAAA;AAChBH,gCAAAA,oBAAAA;gCACAiB,IAAAA,EAAM,CAACC,uBACLR,cAAA,CAACC,uBAAAA,EAAAA;wCACCQ,UAAAA,EAAW,UAAA;AACXN,wCAAAA,SAAAA,EAAWT,cAAc,WAAA,GAAcgB,SAAAA;AAEtCF,wCAAAA,QAAAA,EAAAA;;AAGP,6BAAA;;;AAILd,oBAAAA,WAAAA,kBACCM,cAAA,CAACW,oBAAAA,EAAAA;AACCC,wBAAAA,KAAAA,EAAOzC,aAAAA,CAAc;4BACnBiC,EAAAA,EAAI,sDAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AAEA,wBAAA,QAAA,gBAAAL,cAAA,CAACa,mBAAAA,EAAAA;4BAAcC,KAAAA,EAAM,QAAA;4BAASC,MAAAA,EAAO,QAAA;4BAASC,IAAAA,EAAK;;;;;;;AAM/D;;;;"}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
-
import {
|
|
3
|
-
import { WarningCircle
|
|
2
|
+
import { Flex, Typography, Tooltip } from '@strapi/design-system';
|
|
3
|
+
import { WarningCircle } from '@strapi/icons';
|
|
4
4
|
import { useIntl } from 'react-intl';
|
|
5
5
|
import { useSelector } from 'react-redux';
|
|
6
6
|
import { useRBAC } from '../../../../../../../../admin/src/hooks/useRBAC.mjs';
|
|
7
7
|
import { selectAdminPermissions } from '../../../../../../../../admin/src/selectors.mjs';
|
|
8
8
|
import { useLicenseLimits } from '../../../../../hooks/useLicenseLimits.mjs';
|
|
9
9
|
|
|
10
|
-
const BILLING_SELF_HOSTED_URL = 'mailto:sales@strapi.io';
|
|
11
|
-
const MANAGE_SUBSCRIPTION_URL = 'https://billing.strapi.io';
|
|
12
10
|
const AdminSeatInfoEE = ()=>{
|
|
13
11
|
const { formatMessage } = useIntl();
|
|
14
12
|
const { settings } = useSelector(selectAdminPermissions);
|
|
@@ -24,15 +22,22 @@ const AdminSeatInfoEE = ()=>{
|
|
|
24
22
|
if (isError || isLoading || !license) {
|
|
25
23
|
return null;
|
|
26
24
|
}
|
|
27
|
-
const {
|
|
28
|
-
|
|
25
|
+
const { enforcementUserCount, permittedSeats, seats } = license;
|
|
26
|
+
// `permittedSeats` is the live enforcement limit and is wiped once the licence stops being
|
|
27
|
+
// usable, so fall back to the retained `seats` to keep showing the count on an expired
|
|
28
|
+
// licence. Enforcement itself (`licenseLimitStatus`, `shouldStopCreate`) still runs off
|
|
29
|
+
// `permittedSeats` server-side and is untouched by this.
|
|
30
|
+
const seatLimit = permittedSeats ?? seats;
|
|
31
|
+
if (!seatLimit) {
|
|
29
32
|
return null;
|
|
30
33
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
+
// The red count and the warning follow the same displayed limit. Server-side
|
|
35
|
+
// `licenseLimitStatus` tracks only the live limit, so it is empty once the licence expires.
|
|
36
|
+
const isOverLimit = enforcementUserCount > seatLimit;
|
|
37
|
+
return /*#__PURE__*/ jsxs(Flex, {
|
|
34
38
|
direction: "column",
|
|
35
|
-
alignItems: "
|
|
39
|
+
alignItems: "start",
|
|
40
|
+
gap: 2,
|
|
36
41
|
children: [
|
|
37
42
|
/*#__PURE__*/ jsx(Typography, {
|
|
38
43
|
variant: "sigma",
|
|
@@ -52,17 +57,17 @@ const AdminSeatInfoEE = ()=>{
|
|
|
52
57
|
id: 'Settings.application.ee.admin-seats.count',
|
|
53
58
|
defaultMessage: '<text>{enforcementUserCount}</text>/{permittedSeats}'
|
|
54
59
|
}, {
|
|
55
|
-
permittedSeats,
|
|
60
|
+
permittedSeats: seatLimit,
|
|
56
61
|
enforcementUserCount,
|
|
57
62
|
text: (chunks)=>/*#__PURE__*/ jsx(Typography, {
|
|
58
63
|
fontWeight: "semiBold",
|
|
59
|
-
textColor:
|
|
64
|
+
textColor: isOverLimit ? 'danger500' : undefined,
|
|
60
65
|
children: chunks
|
|
61
66
|
})
|
|
62
67
|
})
|
|
63
68
|
})
|
|
64
69
|
}),
|
|
65
|
-
|
|
70
|
+
isOverLimit && /*#__PURE__*/ jsx(Tooltip, {
|
|
66
71
|
label: formatMessage({
|
|
67
72
|
id: 'Settings.application.ee.admin-seats.at-limit-tooltip',
|
|
68
73
|
defaultMessage: 'At limit: add seats to invite more users'
|
|
@@ -74,24 +79,6 @@ const AdminSeatInfoEE = ()=>{
|
|
|
74
79
|
})
|
|
75
80
|
})
|
|
76
81
|
]
|
|
77
|
-
}),
|
|
78
|
-
type === 'gold' ? /*#__PURE__*/ jsx(Link, {
|
|
79
|
-
href: BILLING_SELF_HOSTED_URL,
|
|
80
|
-
endIcon: /*#__PURE__*/ jsx(ExternalLink, {}),
|
|
81
|
-
target: "_blank",
|
|
82
|
-
children: formatMessage({
|
|
83
|
-
id: 'Settings.application.ee.admin-seats.support',
|
|
84
|
-
defaultMessage: 'Contact sales'
|
|
85
|
-
})
|
|
86
|
-
}) : /*#__PURE__*/ jsx(Link, {
|
|
87
|
-
href: MANAGE_SUBSCRIPTION_URL,
|
|
88
|
-
isExternal: true,
|
|
89
|
-
endIcon: /*#__PURE__*/ jsx(ExternalLink, {}),
|
|
90
|
-
target: "_blank",
|
|
91
|
-
children: formatMessage({
|
|
92
|
-
id: 'Settings.application.ee.admin-seats.add-seats',
|
|
93
|
-
defaultMessage: 'Manage subscription'
|
|
94
|
-
})
|
|
95
82
|
})
|
|
96
83
|
]
|
|
97
84
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdminSeatInfo.mjs","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { Flex, Tooltip, Typography
|
|
1
|
+
{"version":3,"file":"AdminSeatInfo.mjs","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { Flex, Tooltip, Typography } from '@strapi/design-system';\nimport { WarningCircle } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\n\nimport { useRBAC } from '../../../../../../../../admin/src/hooks/useRBAC';\nimport { selectAdminPermissions } from '../../../../../../../../admin/src/selectors';\nimport { useLicenseLimits } from '../../../../../hooks/useLicenseLimits';\n\nexport const AdminSeatInfoEE = () => {\n const { formatMessage } = useIntl();\n const { settings } = useSelector(selectAdminPermissions);\n const {\n isLoading: isRBACLoading,\n allowedActions: { canRead, canCreate, canUpdate, canDelete },\n } = useRBAC(settings?.users ?? {});\n const {\n license,\n isError,\n isLoading: isLicenseLoading,\n } = useLicenseLimits({\n // TODO: this creates a waterfall which we should avoid to render earlier, but for that\n // we will have to move away from data-fetching hooks to query functions.\n // Short-term we could at least implement a loader, for the user to have visual feedback\n // in case the requests take a while\n enabled: !isRBACLoading && canRead && canCreate && canUpdate && canDelete,\n });\n\n const isLoading = isRBACLoading || isLicenseLoading;\n\n if (isError || isLoading || !license) {\n return null;\n }\n\n const { enforcementUserCount, permittedSeats, seats } = license;\n\n // `permittedSeats` is the live enforcement limit and is wiped once the licence stops being\n // usable, so fall back to the retained `seats` to keep showing the count on an expired\n // licence. Enforcement itself (`licenseLimitStatus`, `shouldStopCreate`) still runs off\n // `permittedSeats` server-side and is untouched by this.\n const seatLimit = permittedSeats ?? seats;\n\n if (!seatLimit) {\n return null;\n }\n\n // The red count and the warning follow the same displayed limit. Server-side\n // `licenseLimitStatus` tracks only the live limit, so it is empty once the licence expires.\n const isOverLimit = enforcementUserCount > seatLimit;\n\n return (\n <Flex direction=\"column\" alignItems=\"start\" gap={2}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.application.admin-seats',\n defaultMessage: 'Admin seats',\n })}\n </Typography>\n <Flex gap={2}>\n <Flex>\n <Typography tag=\"p\">\n {formatMessage(\n {\n id: 'Settings.application.ee.admin-seats.count',\n defaultMessage: '<text>{enforcementUserCount}</text>/{permittedSeats}',\n },\n {\n permittedSeats: seatLimit,\n enforcementUserCount,\n text: (chunks: ReactNode) => (\n <Typography\n fontWeight=\"semiBold\"\n textColor={isOverLimit ? 'danger500' : undefined}\n >\n {chunks}\n </Typography>\n ),\n }\n )}\n </Typography>\n </Flex>\n {isOverLimit && (\n <Tooltip\n label={formatMessage({\n id: 'Settings.application.ee.admin-seats.at-limit-tooltip',\n defaultMessage: 'At limit: add seats to invite more users',\n })}\n >\n <WarningCircle width=\"1.4rem\" height=\"1.4rem\" fill=\"danger500\" />\n </Tooltip>\n )}\n </Flex>\n </Flex>\n );\n};\n"],"names":["AdminSeatInfoEE","formatMessage","useIntl","settings","useSelector","selectAdminPermissions","isLoading","isRBACLoading","allowedActions","canRead","canCreate","canUpdate","canDelete","useRBAC","users","license","isError","isLicenseLoading","useLicenseLimits","enabled","enforcementUserCount","permittedSeats","seats","seatLimit","isOverLimit","_jsxs","Flex","direction","alignItems","gap","_jsx","Typography","variant","textColor","id","defaultMessage","tag","text","chunks","fontWeight","undefined","Tooltip","label","WarningCircle","width","height","fill"],"mappings":";;;;;;;;;MAWaA,eAAAA,GAAkB,IAAA;IAC7B,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAM,EAAEC,QAAQ,EAAE,GAAGC,WAAAA,CAAYC,sBAAAA,CAAAA;AACjC,IAAA,MAAM,EACJC,SAAAA,EAAWC,aAAa,EACxBC,cAAAA,EAAgB,EAAEC,OAAO,EAAEC,SAAS,EAAEC,SAAS,EAAEC,SAAS,EAAE,EAC7D,GAAGC,OAAAA,CAAQV,QAAAA,EAAUW,SAAS,EAAC,CAAA;IAChC,MAAM,EACJC,OAAO,EACPC,OAAO,EACPV,SAAAA,EAAWW,gBAAgB,EAC5B,GAAGC,gBAAAA,CAAiB;;;;;AAKnBC,QAAAA,OAAAA,EAAS,CAACZ,aAAAA,IAAiBE,OAAAA,IAAWC,SAAAA,IAAaC,SAAAA,IAAaC;AAClE,KAAA,CAAA;AAEA,IAAA,MAAMN,YAAYC,aAAAA,IAAiBU,gBAAAA;IAEnC,IAAID,OAAAA,IAAWV,SAAAA,IAAa,CAACS,OAAAA,EAAS;QACpC,OAAO,IAAA;AACT,IAAA;AAEA,IAAA,MAAM,EAAEK,oBAAoB,EAAEC,cAAc,EAAEC,KAAK,EAAE,GAAGP,OAAAA;;;;;AAMxD,IAAA,MAAMQ,YAAYF,cAAAA,IAAkBC,KAAAA;AAEpC,IAAA,IAAI,CAACC,SAAAA,EAAW;QACd,OAAO,IAAA;AACT,IAAA;;;AAIA,IAAA,MAAMC,cAAcJ,oBAAAA,GAAuBG,SAAAA;AAE3C,IAAA,qBACEE,IAAA,CAACC,IAAAA,EAAAA;QAAKC,SAAAA,EAAU,QAAA;QAASC,UAAAA,EAAW,OAAA;QAAQC,GAAAA,EAAK,CAAA;;0BAC/CC,GAAA,CAACC,UAAAA,EAAAA;gBAAWC,OAAAA,EAAQ,OAAA;gBAAQC,SAAAA,EAAU,YAAA;0BACnChC,aAAAA,CAAc;oBACbiC,EAAAA,EAAI,kCAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA;;0BAEFV,IAAA,CAACC,IAAAA,EAAAA;gBAAKG,GAAAA,EAAK,CAAA;;kCACTC,GAAA,CAACJ,IAAAA,EAAAA;AACC,wBAAA,QAAA,gBAAAI,GAAA,CAACC,UAAAA,EAAAA;4BAAWK,GAAAA,EAAI,GAAA;sCACbnC,aAAAA,CACC;gCACEiC,EAAAA,EAAI,2CAAA;gCACJC,cAAAA,EAAgB;6BAClB,EACA;gCACEd,cAAAA,EAAgBE,SAAAA;AAChBH,gCAAAA,oBAAAA;gCACAiB,IAAAA,EAAM,CAACC,uBACLR,GAAA,CAACC,UAAAA,EAAAA;wCACCQ,UAAAA,EAAW,UAAA;AACXN,wCAAAA,SAAAA,EAAWT,cAAc,WAAA,GAAcgB,SAAAA;AAEtCF,wCAAAA,QAAAA,EAAAA;;AAGP,6BAAA;;;AAILd,oBAAAA,WAAAA,kBACCM,GAAA,CAACW,OAAAA,EAAAA;AACCC,wBAAAA,KAAAA,EAAOzC,aAAAA,CAAc;4BACnBiC,EAAAA,EAAI,sDAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AAEA,wBAAA,QAAA,gBAAAL,GAAA,CAACa,aAAAA,EAAAA;4BAAcC,KAAAA,EAAM,QAAA;4BAASC,MAAAA,EAAO,QAAA;4BAASC,IAAAA,EAAK;;;;;;;AAM/D;;;;"}
|