@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middlewares.mjs","sources":["../../../../../../../ee/server/src/controllers/authentication-utils/middlewares.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport passport from 'koa-passport';\nimport { getService } from '../../utils';\nimport utils from './utils';\nimport {\n REFRESH_COOKIE_NAME,\n buildCookieOptionsWithExpiry,\n buildSessionMetadataFromContext,\n getAccessCookieName,\n getAccessCookiePath,\n getAccessCookieDomain,\n getSessionManager,\n generateDeviceId,\n} from '../../../../../shared/utils/session-auth';\n\nconst defaultConnectionError = () => new Error('Invalid connection payload');\n\nexport const authenticate: Core.MiddlewareHandler = async (ctx, next) => {\n const {\n params: { provider },\n } = ctx;\n const redirectUrls = utils.getPrefixedRedirectUrls();\n\n // @ts-expect-error - can not use null to authenticate\n return passport.authenticate(provider, null, async (error, profile) => {\n if (error || !profile || !profile.email) {\n if (error) {\n strapi.log.error(error);\n }\n\n strapi.eventHub.emit('admin.auth.error', {\n error: error || defaultConnectionError(),\n provider,\n });\n\n return ctx.redirect(redirectUrls.error);\n }\n\n const user = await getService('user').findOneByEmail(profile.email);\n const scenario = user ? existingUserScenario : nonExistingUserScenario;\n\n return scenario(ctx, next)(user || profile, provider);\n })(ctx, next);\n};\n\nconst existingUserScenario: Core.MiddlewareHandler =\n (ctx, next) => async (user: any, provider: any) => {\n const redirectUrls = utils.getPrefixedRedirectUrls();\n\n if (!user.isActive) {\n strapi.eventHub.emit('admin.auth.error', {\n error: new Error(`Deactivated user tried to login (${user.id})`),\n provider,\n });\n return ctx.redirect(redirectUrls.error);\n }\n\n ctx.state.user = user;\n return next();\n };\n\nconst nonExistingUserScenario: Core.MiddlewareHandler =\n (ctx, next) => async (profile: any, provider: any) => {\n const { email, firstname, lastname, username } = profile;\n const redirectUrls = utils.getPrefixedRedirectUrls();\n const adminStore = await utils.getAdminStore();\n const { providers } = (await adminStore.get({ key: 'auth' })) as any;\n\n // We need at least the username or the firstname/lastname combination to register a new user\n const isMissingRegisterFields = !username && (!firstname || !lastname);\n\n if (!providers.autoRegister || !providers.defaultRole || isMissingRegisterFields) {\n strapi.eventHub.emit('admin.auth.error', { error: defaultConnectionError(), provider });\n return ctx.redirect(redirectUrls.error);\n }\n\n const defaultRole = await getService('role').findOne({ id: providers.defaultRole });\n\n // If the default role has been misconfigured, redirect with an error\n if (!defaultRole) {\n strapi.eventHub.emit('admin.auth.error', { error: defaultConnectionError(), provider });\n return ctx.redirect(redirectUrls.error);\n }\n\n // Register a new user with the information given by the provider and login with it\n ctx.state.user = await getService('user').create({\n email,\n username,\n firstname,\n lastname,\n roles: [defaultRole.id],\n isActive: true,\n registrationToken: null,\n });\n\n strapi.eventHub.emit('admin.auth.autoRegistration', {\n user: ctx.state.user,\n provider,\n });\n\n return next();\n };\n\nexport const redirectWithAuth: Core.MiddlewareHandler = async (ctx) => {\n const {\n params: { provider },\n } = ctx;\n const redirectUrls = utils.getPrefixedRedirectUrls();\n const { user } = ctx.state;\n\n try {\n const sessionManager = getSessionManager();\n if (!sessionManager) {\n strapi.log.error('SessionManager not available for SSO authentication');\n return ctx.redirect(redirectUrls.error);\n }\n\n const userId = String(user.id);\n const deviceId = generateDeviceId();\n\n const { token: refreshToken, absoluteExpiresAt } = await sessionManager(\n 'admin'\n ).generateRefreshToken(userId, deviceId, {\n type: 'refresh',\n metadata: buildSessionMetadataFromContext(ctx),\n });\n\n const cookieOptions = buildCookieOptionsWithExpiry('refresh', absoluteExpiresAt);\n ctx.cookies.set(REFRESH_COOKIE_NAME, refreshToken, cookieOptions);\n\n const accessResult = await sessionManager('admin').generateAccessToken(refreshToken);\n if ('error' in accessResult) {\n strapi.log.error('Failed to generate access token for SSO user');\n return ctx.redirect(redirectUrls.error);\n }\n\n const { token: accessToken } = accessResult;\n\n const configuredSecure = strapi.config.get('admin.auth.cookie.secure');\n const isProduction = process.env.NODE_ENV === 'production';\n const isSecure = typeof configuredSecure === 'boolean' ? configuredSecure : isProduction;\n\n // Resolve through the shared helpers so the server write agrees with the\n // client set/delete (which read the same config inlined at build time);\n // any divergence leaves a cookie the admin panel cannot clear on logout.\n const domain = getAccessCookieDomain();\n const path = getAccessCookiePath();\n\n ctx.cookies.set(getAccessCookieName(), accessToken, {\n httpOnly: false,\n secure: isSecure,\n overwrite: true,\n domain,\n path,\n });\n\n const sanitizedUser = getService('user').sanitizeUser(user);\n strapi.eventHub.emit('admin.auth.success', { user: sanitizedUser, provider });\n\n ctx.redirect(redirectUrls.success);\n } catch (error) {\n strapi.log.error('SSO authentication failed during token generation', error);\n strapi.eventHub.emit('admin.auth.error', {\n error: error instanceof Error ? error : new Error('Unknown SSO error'),\n provider,\n });\n return ctx.redirect(redirectUrls.error);\n }\n};\n\nexport default {\n authenticate,\n redirectWithAuth,\n};\n"],"names":["defaultConnectionError","Error","authenticate","ctx","next","params","provider","redirectUrls","utils","getPrefixedRedirectUrls","passport","error","profile","email","strapi","log","eventHub","emit","redirect","user","getService","findOneByEmail","scenario","existingUserScenario","nonExistingUserScenario","isActive","id","state","firstname","lastname","username","adminStore","getAdminStore","providers","get","key","isMissingRegisterFields","autoRegister","defaultRole","findOne","create","roles","registrationToken","redirectWithAuth","sessionManager","getSessionManager","userId","String","deviceId","generateDeviceId","token","refreshToken","absoluteExpiresAt","generateRefreshToken","type","metadata","buildSessionMetadataFromContext","cookieOptions","buildCookieOptionsWithExpiry","cookies","set","REFRESH_COOKIE_NAME","accessResult","generateAccessToken","accessToken","configuredSecure","config","isProduction","process","env","NODE_ENV","isSecure","domain","getAccessCookieDomain","path","getAccessCookiePath","getAccessCookieName","httpOnly","secure","overwrite","sanitizedUser","sanitizeUser","success"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"middlewares.mjs","sources":["../../../../../../../ee/server/src/controllers/authentication-utils/middlewares.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport passport from 'koa-passport';\nimport { getService } from '../../utils';\nimport utils from './utils';\nimport { emitLoginFailure } from '../../../../../server/src/audit-logs/auth';\nimport {\n REFRESH_COOKIE_NAME,\n buildCookieOptionsWithExpiry,\n buildSessionMetadataFromContext,\n getAccessCookieName,\n getAccessCookiePath,\n getAccessCookieDomain,\n getSessionManager,\n generateDeviceId,\n} from '../../../../../shared/utils/session-auth';\n\nconst defaultConnectionError = () => new Error('Invalid connection payload');\n\nexport const authenticate: Core.MiddlewareHandler = async (ctx, next) => {\n const {\n params: { provider },\n } = ctx;\n const redirectUrls = utils.getPrefixedRedirectUrls();\n\n // @ts-expect-error - can not use null to authenticate\n return passport.authenticate(provider, null, async (error, profile) => {\n if (error || !profile || !profile.email) {\n if (error) {\n strapi.log.error(error);\n }\n\n emitLoginFailure(\n { strapi },\n { error: error || defaultConnectionError(), provider, reason: 'sso_connection_error' }\n );\n\n return ctx.redirect(redirectUrls.error);\n }\n\n const user = await getService('user').findOneByEmail(profile.email);\n const scenario = user ? existingUserScenario : nonExistingUserScenario;\n\n return scenario(ctx, next)(user || profile, provider);\n })(ctx, next);\n};\n\nconst existingUserScenario: Core.MiddlewareHandler =\n (ctx, next) => async (user: any, provider: any) => {\n const redirectUrls = utils.getPrefixedRedirectUrls();\n\n if (!user.isActive) {\n emitLoginFailure(\n { strapi },\n {\n error: new Error(`Deactivated user tried to login (${user.id})`),\n provider,\n reason: 'account_inactive',\n user,\n }\n );\n return ctx.redirect(redirectUrls.error);\n }\n\n ctx.state.user = user;\n return next();\n };\n\nconst nonExistingUserScenario: Core.MiddlewareHandler =\n (ctx, next) => async (profile: any, provider: any) => {\n const { email, firstname, lastname, username } = profile;\n const redirectUrls = utils.getPrefixedRedirectUrls();\n const adminStore = await utils.getAdminStore();\n const { providers } = (await adminStore.get({ key: 'auth' })) as any;\n\n // We need at least the username or the firstname/lastname combination to register a new user\n const isMissingRegisterFields = !username && (!firstname || !lastname);\n\n if (!providers.autoRegister || !providers.defaultRole || isMissingRegisterFields) {\n emitLoginFailure(\n { strapi },\n { error: defaultConnectionError(), provider, reason: 'sso_registration_disabled' }\n );\n return ctx.redirect(redirectUrls.error);\n }\n\n const defaultRole = await getService('role').findOne({ id: providers.defaultRole });\n\n // If the default role has been misconfigured, redirect with an error\n if (!defaultRole) {\n emitLoginFailure(\n { strapi },\n { error: defaultConnectionError(), provider, reason: 'sso_role_misconfigured' }\n );\n return ctx.redirect(redirectUrls.error);\n }\n\n // Register a new user with the information given by the provider and login with it\n ctx.state.user = await getService('user').create({\n email,\n username,\n firstname,\n lastname,\n roles: [defaultRole.id],\n isActive: true,\n registrationToken: null,\n });\n\n strapi.eventHub.emit('admin.auth.autoRegistration', {\n user: ctx.state.user,\n provider,\n });\n\n return next();\n };\n\nexport const redirectWithAuth: Core.MiddlewareHandler = async (ctx) => {\n const {\n params: { provider },\n } = ctx;\n const redirectUrls = utils.getPrefixedRedirectUrls();\n const { user } = ctx.state;\n\n try {\n const sessionManager = getSessionManager();\n if (!sessionManager) {\n strapi.log.error('SessionManager not available for SSO authentication');\n return ctx.redirect(redirectUrls.error);\n }\n\n const userId = String(user.id);\n const deviceId = generateDeviceId();\n\n const { token: refreshToken, absoluteExpiresAt } = await sessionManager(\n 'admin'\n ).generateRefreshToken(userId, deviceId, {\n type: 'refresh',\n metadata: buildSessionMetadataFromContext(ctx),\n });\n\n const cookieOptions = buildCookieOptionsWithExpiry('refresh', absoluteExpiresAt);\n ctx.cookies.set(REFRESH_COOKIE_NAME, refreshToken, cookieOptions);\n\n const accessResult = await sessionManager('admin').generateAccessToken(refreshToken);\n if ('error' in accessResult) {\n strapi.log.error('Failed to generate access token for SSO user');\n return ctx.redirect(redirectUrls.error);\n }\n\n const { token: accessToken } = accessResult;\n\n const configuredSecure = strapi.config.get('admin.auth.cookie.secure');\n const isProduction = process.env.NODE_ENV === 'production';\n const isSecure = typeof configuredSecure === 'boolean' ? configuredSecure : isProduction;\n\n // Resolve through the shared helpers so the server write agrees with the\n // client set/delete (which read the same config inlined at build time);\n // any divergence leaves a cookie the admin panel cannot clear on logout.\n const domain = getAccessCookieDomain();\n const path = getAccessCookiePath();\n\n ctx.cookies.set(getAccessCookieName(), accessToken, {\n httpOnly: false,\n secure: isSecure,\n overwrite: true,\n domain,\n path,\n });\n\n const sanitizedUser = getService('user').sanitizeUser(user);\n strapi.eventHub.emit('admin.auth.success', { user: sanitizedUser, provider });\n\n ctx.redirect(redirectUrls.success);\n } catch (error) {\n strapi.log.error('SSO authentication failed during token generation', error);\n emitLoginFailure(\n { strapi },\n {\n error: error instanceof Error ? error : new Error('Unknown SSO error'),\n provider,\n reason: 'unexpected_error',\n user,\n }\n );\n return ctx.redirect(redirectUrls.error);\n }\n};\n\nexport default {\n authenticate,\n redirectWithAuth,\n};\n"],"names":["defaultConnectionError","Error","authenticate","ctx","next","params","provider","redirectUrls","utils","getPrefixedRedirectUrls","passport","error","profile","email","strapi","log","emitLoginFailure","reason","redirect","user","getService","findOneByEmail","scenario","existingUserScenario","nonExistingUserScenario","isActive","id","state","firstname","lastname","username","adminStore","getAdminStore","providers","get","key","isMissingRegisterFields","autoRegister","defaultRole","findOne","create","roles","registrationToken","eventHub","emit","redirectWithAuth","sessionManager","getSessionManager","userId","String","deviceId","generateDeviceId","token","refreshToken","absoluteExpiresAt","generateRefreshToken","type","metadata","buildSessionMetadataFromContext","cookieOptions","buildCookieOptionsWithExpiry","cookies","set","REFRESH_COOKIE_NAME","accessResult","generateAccessToken","accessToken","configuredSecure","config","isProduction","process","env","NODE_ENV","isSecure","domain","getAccessCookieDomain","path","getAccessCookiePath","getAccessCookieName","httpOnly","secure","overwrite","sanitizedUser","sanitizeUser","success"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _ = require('lodash');
|
|
6
6
|
var constants = require('./constants.js');
|
|
7
7
|
|
|
8
8
|
const PROVIDER_URLS_MAP = {
|
|
@@ -16,7 +16,7 @@ const getAdminStore = async ()=>strapi.store({
|
|
|
16
16
|
const getPrefixedRedirectUrls = ()=>{
|
|
17
17
|
const { url: adminUrl } = strapi.config.get('admin');
|
|
18
18
|
const prefixUrl = (url)=>`${adminUrl || '/admin'}${url}`;
|
|
19
|
-
return
|
|
19
|
+
return _.mapValues(PROVIDER_URLS_MAP, (value)=>prefixUrl(value));
|
|
20
20
|
};
|
|
21
21
|
var utils = {
|
|
22
22
|
getAdminStore,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../../../../ee/server/src/controllers/authentication-utils/utils.ts"],"sourcesContent":["import { mapValues } from 'lodash
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../../../../ee/server/src/controllers/authentication-utils/utils.ts"],"sourcesContent":["import { mapValues } from 'lodash';\n\nimport { PROVIDER_REDIRECT_ERROR, PROVIDER_REDIRECT_SUCCESS } from './constants';\n\nconst PROVIDER_URLS_MAP = {\n success: PROVIDER_REDIRECT_SUCCESS,\n error: PROVIDER_REDIRECT_ERROR,\n};\n\nexport const getAdminStore = async () => strapi.store({ type: 'core', name: 'admin' });\n\nexport const getPrefixedRedirectUrls = () => {\n const { url: adminUrl } = strapi.config.get('admin') as any;\n const prefixUrl = (url: string) => `${adminUrl || '/admin'}${url}`;\n\n return mapValues(PROVIDER_URLS_MAP, (value) => prefixUrl(value));\n};\n\nexport default {\n getAdminStore,\n getPrefixedRedirectUrls,\n};\n"],"names":["PROVIDER_URLS_MAP","success","PROVIDER_REDIRECT_SUCCESS","error","PROVIDER_REDIRECT_ERROR","getAdminStore","strapi","store","type","name","getPrefixedRedirectUrls","url","adminUrl","config","get","prefixUrl","mapValues","value"],"mappings":";;;;;;;AAIA,MAAMA,iBAAAA,GAAoB;IACxBC,OAAAA,EAASC,mCAAAA;IACTC,KAAAA,EAAOC;AACT,CAAA;AAEO,MAAMC,aAAAA,GAAgB,UAAYC,MAAAA,CAAOC,KAAK,CAAC;QAAEC,IAAAA,EAAM,MAAA;QAAQC,IAAAA,EAAM;KAAQ;MAEvEC,uBAAAA,GAA0B,IAAA;IACrC,MAAM,EAAEC,KAAKC,QAAQ,EAAE,GAAGN,MAAAA,CAAOO,MAAM,CAACC,GAAG,CAAC,OAAA,CAAA;AAC5C,IAAA,MAAMC,YAAY,CAACJ,GAAAA,GAAgB,CAAA,EAAGC,QAAAA,IAAY,WAAWD,GAAAA,CAAAA,CAAK;AAElE,IAAA,OAAOK,WAAAA,CAAUhB,iBAAAA,EAAmB,CAACiB,KAAAA,GAAUF,SAAAA,CAAUE,KAAAA,CAAAA,CAAAA;AAC3D;AAEA,YAAe;AACbZ,IAAAA,aAAAA;AACAK,IAAAA;AACF,CAAA;;;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { mapValues } from 'lodash
|
|
1
|
+
import { mapValues } from 'lodash';
|
|
2
2
|
import { PROVIDER_REDIRECT_ERROR, PROVIDER_REDIRECT_SUCCESS } from './constants.mjs';
|
|
3
3
|
|
|
4
4
|
const PROVIDER_URLS_MAP = {
|
|
@@ -12,7 +12,7 @@ const getAdminStore = async ()=>strapi.store({
|
|
|
12
12
|
const getPrefixedRedirectUrls = ()=>{
|
|
13
13
|
const { url: adminUrl } = strapi.config.get('admin');
|
|
14
14
|
const prefixUrl = (url)=>`${adminUrl || '/admin'}${url}`;
|
|
15
|
-
return mapValues(
|
|
15
|
+
return mapValues(PROVIDER_URLS_MAP, (value)=>prefixUrl(value));
|
|
16
16
|
};
|
|
17
17
|
var utils = {
|
|
18
18
|
getAdminStore,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.mjs","sources":["../../../../../../../ee/server/src/controllers/authentication-utils/utils.ts"],"sourcesContent":["import { mapValues } from 'lodash
|
|
1
|
+
{"version":3,"file":"utils.mjs","sources":["../../../../../../../ee/server/src/controllers/authentication-utils/utils.ts"],"sourcesContent":["import { mapValues } from 'lodash';\n\nimport { PROVIDER_REDIRECT_ERROR, PROVIDER_REDIRECT_SUCCESS } from './constants';\n\nconst PROVIDER_URLS_MAP = {\n success: PROVIDER_REDIRECT_SUCCESS,\n error: PROVIDER_REDIRECT_ERROR,\n};\n\nexport const getAdminStore = async () => strapi.store({ type: 'core', name: 'admin' });\n\nexport const getPrefixedRedirectUrls = () => {\n const { url: adminUrl } = strapi.config.get('admin') as any;\n const prefixUrl = (url: string) => `${adminUrl || '/admin'}${url}`;\n\n return mapValues(PROVIDER_URLS_MAP, (value) => prefixUrl(value));\n};\n\nexport default {\n getAdminStore,\n getPrefixedRedirectUrls,\n};\n"],"names":["PROVIDER_URLS_MAP","success","PROVIDER_REDIRECT_SUCCESS","error","PROVIDER_REDIRECT_ERROR","getAdminStore","strapi","store","type","name","getPrefixedRedirectUrls","url","adminUrl","config","get","prefixUrl","mapValues","value"],"mappings":";;;AAIA,MAAMA,iBAAAA,GAAoB;IACxBC,OAAAA,EAASC,yBAAAA;IACTC,KAAAA,EAAOC;AACT,CAAA;AAEO,MAAMC,aAAAA,GAAgB,UAAYC,MAAAA,CAAOC,KAAK,CAAC;QAAEC,IAAAA,EAAM,MAAA;QAAQC,IAAAA,EAAM;KAAQ;MAEvEC,uBAAAA,GAA0B,IAAA;IACrC,MAAM,EAAEC,KAAKC,QAAQ,EAAE,GAAGN,MAAAA,CAAOO,MAAM,CAACC,GAAG,CAAC,OAAA,CAAA;AAC5C,IAAA,MAAMC,YAAY,CAACJ,GAAAA,GAAgB,CAAA,EAAGC,QAAAA,IAAY,WAAWD,GAAAA,CAAAA,CAAK;AAElE,IAAA,OAAOK,SAAAA,CAAUhB,iBAAAA,EAAmB,CAACiB,KAAAA,GAAUF,SAAAA,CAAUE,KAAAA,CAAAA,CAAAA;AAC3D;AAEA,YAAe;AACbZ,IAAAA,aAAAA;AACAK,IAAAA;AACF,CAAA;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _ = require('lodash');
|
|
4
4
|
var compose = require('koa-compose');
|
|
5
5
|
var utils = require('@strapi/utils');
|
|
6
6
|
var authentication$1 = require('../validation/authentication.js');
|
|
@@ -11,16 +11,16 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
|
11
11
|
|
|
12
12
|
var compose__default = /*#__PURE__*/_interopDefault(compose);
|
|
13
13
|
|
|
14
|
-
const toProviderDTO =
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
]);
|
|
19
|
-
const toProviderLoginOptionsDTO =
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
]);
|
|
14
|
+
const toProviderDTO = (provider)=>_.pick(provider, [
|
|
15
|
+
'uid',
|
|
16
|
+
'displayName',
|
|
17
|
+
'icon'
|
|
18
|
+
]);
|
|
19
|
+
const toProviderLoginOptionsDTO = (options)=>_.pick(options, [
|
|
20
|
+
'autoRegister',
|
|
21
|
+
'defaultRole',
|
|
22
|
+
'ssoLockedRoles'
|
|
23
|
+
]);
|
|
24
24
|
const { ValidationError } = utils.errors;
|
|
25
25
|
const providerAuthenticationFlow = compose__default.default([
|
|
26
26
|
middlewares.default.authenticate,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authentication.js","sources":["../../../../../../ee/server/src/controllers/authentication.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"authentication.js","sources":["../../../../../../ee/server/src/controllers/authentication.ts"],"sourcesContent":["import { pick } from 'lodash';\nimport type { Context, Next } from 'koa';\n\nimport compose from 'koa-compose';\nimport { errors } from '@strapi/utils';\nimport { validateProviderOptionsUpdate } from '../validation/authentication';\nimport { middlewares, utils } from './authentication-utils';\n\nconst toProviderDTO = (provider: object) => pick(provider, ['uid', 'displayName', 'icon']);\nconst toProviderLoginOptionsDTO = (options: object) =>\n pick(options, ['autoRegister', 'defaultRole', 'ssoLockedRoles']);\n\nconst { ValidationError } = errors;\n\nconst providerAuthenticationFlow = compose([\n middlewares.authenticate,\n middlewares.redirectWithAuth,\n]);\n\nexport default {\n async getProviders(ctx: Context) {\n const { providerRegistry } = strapi.service('admin::passport');\n\n ctx.body = providerRegistry.getAll().map(toProviderDTO);\n },\n\n async getProviderLoginOptions(ctx: Context) {\n const adminStore = await utils.getAdminStore();\n const { providers: providersOptions } = (await adminStore.get({ key: 'auth' })) as any;\n\n ctx.body = {\n data: toProviderLoginOptionsDTO(providersOptions),\n };\n },\n\n async updateProviderLoginOptions(ctx: Context) {\n const {\n request: { body },\n } = ctx;\n\n await validateProviderOptionsUpdate(body);\n\n const adminStore = await utils.getAdminStore();\n const currentAuthOptions = (await adminStore.get({ key: 'auth' })) as any;\n const newAuthOptions = { ...currentAuthOptions, providers: body };\n await adminStore.set({ key: 'auth', value: newAuthOptions });\n\n strapi.telemetry.send('didUpdateSSOSettings');\n\n ctx.body = {\n data: toProviderLoginOptionsDTO(newAuthOptions.providers),\n };\n },\n\n providerLogin(ctx: Context, next: Next) {\n const {\n params: { provider: providerName },\n } = ctx;\n\n const { providerRegistry } = strapi.service('admin::passport');\n\n if (!providerRegistry.has(providerName)) {\n throw new ValidationError(`Invalid provider supplied: ${providerName}`);\n }\n\n return providerAuthenticationFlow(ctx, next);\n },\n};\n"],"names":["toProviderDTO","provider","pick","toProviderLoginOptionsDTO","options","ValidationError","errors","providerAuthenticationFlow","compose","middlewares","authenticate","redirectWithAuth","getProviders","ctx","providerRegistry","strapi","service","body","getAll","map","getProviderLoginOptions","adminStore","utils","getAdminStore","providers","providersOptions","get","key","data","updateProviderLoginOptions","request","validateProviderOptionsUpdate","currentAuthOptions","newAuthOptions","set","value","telemetry","send","providerLogin","next","params","providerName","has"],"mappings":";;;;;;;;;;;;;AAQA,MAAMA,aAAAA,GAAgB,CAACC,QAAAA,GAAqBC,MAAAA,CAAKD,QAAAA,EAAU;AAAC,QAAA,KAAA;AAAO,QAAA,aAAA;AAAe,QAAA;AAAO,KAAA,CAAA;AACzF,MAAME,yBAAAA,GAA4B,CAACC,OAAAA,GACjCF,MAAAA,CAAKE,OAAAA,EAAS;AAAC,QAAA,cAAA;AAAgB,QAAA,aAAA;AAAe,QAAA;AAAiB,KAAA,CAAA;AAEjE,MAAM,EAAEC,eAAe,EAAE,GAAGC,YAAAA;AAE5B,MAAMC,6BAA6BC,wBAAAA,CAAQ;AACzCC,IAAAA,mBAAAA,CAAYC,YAAY;AACxBD,IAAAA,mBAAAA,CAAYE;AACb,CAAA,CAAA;AAED,qBAAe;AACb,IAAA,MAAMC,cAAaC,GAAY,EAAA;AAC7B,QAAA,MAAM,EAAEC,gBAAgB,EAAE,GAAGC,MAAAA,CAAOC,OAAO,CAAC,iBAAA,CAAA;AAE5CH,QAAAA,GAAAA,CAAII,IAAI,GAAGH,gBAAAA,CAAiBI,MAAM,EAAA,CAAGC,GAAG,CAACnB,aAAAA,CAAAA;AAC3C,IAAA,CAAA;AAEA,IAAA,MAAMoB,yBAAwBP,GAAY,EAAA;QACxC,MAAMQ,UAAAA,GAAa,MAAMC,eAAAA,CAAMC,aAAa,EAAA;QAC5C,MAAM,EAAEC,WAAWC,gBAAgB,EAAE,GAAI,MAAMJ,UAAAA,CAAWK,GAAG,CAAC;YAAEC,GAAAA,EAAK;AAAO,SAAA,CAAA;AAE5Ed,QAAAA,GAAAA,CAAII,IAAI,GAAG;AACTW,YAAAA,IAAAA,EAAMzB,yBAAAA,CAA0BsB,gBAAAA;AAClC,SAAA;AACF,IAAA,CAAA;AAEA,IAAA,MAAMI,4BAA2BhB,GAAY,EAAA;AAC3C,QAAA,MAAM,EACJiB,OAAAA,EAAS,EAAEb,IAAI,EAAE,EAClB,GAAGJ,GAAAA;AAEJ,QAAA,MAAMkB,8CAAAA,CAA8Bd,IAAAA,CAAAA;QAEpC,MAAMI,UAAAA,GAAa,MAAMC,eAAAA,CAAMC,aAAa,EAAA;AAC5C,QAAA,MAAMS,kBAAAA,GAAsB,MAAMX,UAAAA,CAAWK,GAAG,CAAC;YAAEC,GAAAA,EAAK;AAAO,SAAA,CAAA;AAC/D,QAAA,MAAMM,cAAAA,GAAiB;AAAE,YAAA,GAAGD,kBAAkB;YAAER,SAAAA,EAAWP;AAAK,SAAA;QAChE,MAAMI,UAAAA,CAAWa,GAAG,CAAC;YAAEP,GAAAA,EAAK,MAAA;YAAQQ,KAAAA,EAAOF;AAAe,SAAA,CAAA;QAE1DlB,MAAAA,CAAOqB,SAAS,CAACC,IAAI,CAAC,sBAAA,CAAA;AAEtBxB,QAAAA,GAAAA,CAAII,IAAI,GAAG;YACTW,IAAAA,EAAMzB,yBAAAA,CAA0B8B,eAAeT,SAAS;AAC1D,SAAA;AACF,IAAA,CAAA;IAEAc,aAAAA,CAAAA,CAAczB,GAAY,EAAE0B,IAAU,EAAA;AACpC,QAAA,MAAM,EACJC,MAAAA,EAAQ,EAAEvC,UAAUwC,YAAY,EAAE,EACnC,GAAG5B,GAAAA;AAEJ,QAAA,MAAM,EAAEC,gBAAgB,EAAE,GAAGC,MAAAA,CAAOC,OAAO,CAAC,iBAAA,CAAA;AAE5C,QAAA,IAAI,CAACF,gBAAAA,CAAiB4B,GAAG,CAACD,YAAAA,CAAAA,EAAe;AACvC,YAAA,MAAM,IAAIpC,eAAAA,CAAgB,CAAC,2BAA2B,EAAEoC,YAAAA,CAAAA,CAAc,CAAA;AACxE,QAAA;AAEA,QAAA,OAAOlC,2BAA2BM,GAAAA,EAAK0B,IAAAA,CAAAA;AACzC,IAAA;AACF,CAAA;;;;"}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { pick } from 'lodash
|
|
1
|
+
import { pick } from 'lodash';
|
|
2
2
|
import compose from 'koa-compose';
|
|
3
3
|
import { errors } from '@strapi/utils';
|
|
4
4
|
import { validateProviderOptionsUpdate } from '../validation/authentication.mjs';
|
|
5
5
|
import middlewares from './authentication-utils/middlewares.mjs';
|
|
6
6
|
import utils from './authentication-utils/utils.mjs';
|
|
7
7
|
|
|
8
|
-
const toProviderDTO = pick([
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
]);
|
|
13
|
-
const toProviderLoginOptionsDTO = pick([
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
]);
|
|
8
|
+
const toProviderDTO = (provider)=>pick(provider, [
|
|
9
|
+
'uid',
|
|
10
|
+
'displayName',
|
|
11
|
+
'icon'
|
|
12
|
+
]);
|
|
13
|
+
const toProviderLoginOptionsDTO = (options)=>pick(options, [
|
|
14
|
+
'autoRegister',
|
|
15
|
+
'defaultRole',
|
|
16
|
+
'ssoLockedRoles'
|
|
17
|
+
]);
|
|
18
18
|
const { ValidationError } = errors;
|
|
19
19
|
const providerAuthenticationFlow = compose([
|
|
20
20
|
middlewares.authenticate,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authentication.mjs","sources":["../../../../../../ee/server/src/controllers/authentication.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"authentication.mjs","sources":["../../../../../../ee/server/src/controllers/authentication.ts"],"sourcesContent":["import { pick } from 'lodash';\nimport type { Context, Next } from 'koa';\n\nimport compose from 'koa-compose';\nimport { errors } from '@strapi/utils';\nimport { validateProviderOptionsUpdate } from '../validation/authentication';\nimport { middlewares, utils } from './authentication-utils';\n\nconst toProviderDTO = (provider: object) => pick(provider, ['uid', 'displayName', 'icon']);\nconst toProviderLoginOptionsDTO = (options: object) =>\n pick(options, ['autoRegister', 'defaultRole', 'ssoLockedRoles']);\n\nconst { ValidationError } = errors;\n\nconst providerAuthenticationFlow = compose([\n middlewares.authenticate,\n middlewares.redirectWithAuth,\n]);\n\nexport default {\n async getProviders(ctx: Context) {\n const { providerRegistry } = strapi.service('admin::passport');\n\n ctx.body = providerRegistry.getAll().map(toProviderDTO);\n },\n\n async getProviderLoginOptions(ctx: Context) {\n const adminStore = await utils.getAdminStore();\n const { providers: providersOptions } = (await adminStore.get({ key: 'auth' })) as any;\n\n ctx.body = {\n data: toProviderLoginOptionsDTO(providersOptions),\n };\n },\n\n async updateProviderLoginOptions(ctx: Context) {\n const {\n request: { body },\n } = ctx;\n\n await validateProviderOptionsUpdate(body);\n\n const adminStore = await utils.getAdminStore();\n const currentAuthOptions = (await adminStore.get({ key: 'auth' })) as any;\n const newAuthOptions = { ...currentAuthOptions, providers: body };\n await adminStore.set({ key: 'auth', value: newAuthOptions });\n\n strapi.telemetry.send('didUpdateSSOSettings');\n\n ctx.body = {\n data: toProviderLoginOptionsDTO(newAuthOptions.providers),\n };\n },\n\n providerLogin(ctx: Context, next: Next) {\n const {\n params: { provider: providerName },\n } = ctx;\n\n const { providerRegistry } = strapi.service('admin::passport');\n\n if (!providerRegistry.has(providerName)) {\n throw new ValidationError(`Invalid provider supplied: ${providerName}`);\n }\n\n return providerAuthenticationFlow(ctx, next);\n },\n};\n"],"names":["toProviderDTO","provider","pick","toProviderLoginOptionsDTO","options","ValidationError","errors","providerAuthenticationFlow","compose","middlewares","authenticate","redirectWithAuth","getProviders","ctx","providerRegistry","strapi","service","body","getAll","map","getProviderLoginOptions","adminStore","utils","getAdminStore","providers","providersOptions","get","key","data","updateProviderLoginOptions","request","validateProviderOptionsUpdate","currentAuthOptions","newAuthOptions","set","value","telemetry","send","providerLogin","next","params","providerName","has"],"mappings":";;;;;;;AAQA,MAAMA,aAAAA,GAAgB,CAACC,QAAAA,GAAqBC,IAAAA,CAAKD,QAAAA,EAAU;AAAC,QAAA,KAAA;AAAO,QAAA,aAAA;AAAe,QAAA;AAAO,KAAA,CAAA;AACzF,MAAME,yBAAAA,GAA4B,CAACC,OAAAA,GACjCF,IAAAA,CAAKE,OAAAA,EAAS;AAAC,QAAA,cAAA;AAAgB,QAAA,aAAA;AAAe,QAAA;AAAiB,KAAA,CAAA;AAEjE,MAAM,EAAEC,eAAe,EAAE,GAAGC,MAAAA;AAE5B,MAAMC,6BAA6BC,OAAAA,CAAQ;AACzCC,IAAAA,WAAAA,CAAYC,YAAY;AACxBD,IAAAA,WAAAA,CAAYE;AACb,CAAA,CAAA;AAED,qBAAe;AACb,IAAA,MAAMC,cAAaC,GAAY,EAAA;AAC7B,QAAA,MAAM,EAAEC,gBAAgB,EAAE,GAAGC,MAAAA,CAAOC,OAAO,CAAC,iBAAA,CAAA;AAE5CH,QAAAA,GAAAA,CAAII,IAAI,GAAGH,gBAAAA,CAAiBI,MAAM,EAAA,CAAGC,GAAG,CAACnB,aAAAA,CAAAA;AAC3C,IAAA,CAAA;AAEA,IAAA,MAAMoB,yBAAwBP,GAAY,EAAA;QACxC,MAAMQ,UAAAA,GAAa,MAAMC,KAAAA,CAAMC,aAAa,EAAA;QAC5C,MAAM,EAAEC,WAAWC,gBAAgB,EAAE,GAAI,MAAMJ,UAAAA,CAAWK,GAAG,CAAC;YAAEC,GAAAA,EAAK;AAAO,SAAA,CAAA;AAE5Ed,QAAAA,GAAAA,CAAII,IAAI,GAAG;AACTW,YAAAA,IAAAA,EAAMzB,yBAAAA,CAA0BsB,gBAAAA;AAClC,SAAA;AACF,IAAA,CAAA;AAEA,IAAA,MAAMI,4BAA2BhB,GAAY,EAAA;AAC3C,QAAA,MAAM,EACJiB,OAAAA,EAAS,EAAEb,IAAI,EAAE,EAClB,GAAGJ,GAAAA;AAEJ,QAAA,MAAMkB,6BAAAA,CAA8Bd,IAAAA,CAAAA;QAEpC,MAAMI,UAAAA,GAAa,MAAMC,KAAAA,CAAMC,aAAa,EAAA;AAC5C,QAAA,MAAMS,kBAAAA,GAAsB,MAAMX,UAAAA,CAAWK,GAAG,CAAC;YAAEC,GAAAA,EAAK;AAAO,SAAA,CAAA;AAC/D,QAAA,MAAMM,cAAAA,GAAiB;AAAE,YAAA,GAAGD,kBAAkB;YAAER,SAAAA,EAAWP;AAAK,SAAA;QAChE,MAAMI,UAAAA,CAAWa,GAAG,CAAC;YAAEP,GAAAA,EAAK,MAAA;YAAQQ,KAAAA,EAAOF;AAAe,SAAA,CAAA;QAE1DlB,MAAAA,CAAOqB,SAAS,CAACC,IAAI,CAAC,sBAAA,CAAA;AAEtBxB,QAAAA,GAAAA,CAAII,IAAI,GAAG;YACTW,IAAAA,EAAMzB,yBAAAA,CAA0B8B,eAAeT,SAAS;AAC1D,SAAA;AACF,IAAA,CAAA;IAEAc,aAAAA,CAAAA,CAAczB,GAAY,EAAE0B,IAAU,EAAA;AACpC,QAAA,MAAM,EACJC,MAAAA,EAAQ,EAAEvC,UAAUwC,YAAY,EAAE,EACnC,GAAG5B,GAAAA;AAEJ,QAAA,MAAM,EAAEC,gBAAgB,EAAE,GAAGC,MAAAA,CAAOC,OAAO,CAAC,iBAAA,CAAA;AAE5C,QAAA,IAAI,CAACF,gBAAAA,CAAiB4B,GAAG,CAACD,YAAAA,CAAAA,EAAe;AACvC,YAAA,MAAM,IAAIpC,eAAAA,CAAgB,CAAC,2BAA2B,EAAEoC,YAAAA,CAAAA,CAAc,CAAA;AACxE,QAAA;AAEA,QAAA,OAAOlC,2BAA2BM,GAAAA,EAAK0B,IAAAA,CAAAA;AACzC,IAAA;AACF,CAAA;;;;"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var _ = require('lodash');
|
|
4
|
-
var fp = require('lodash/fp');
|
|
5
4
|
var utils = require('@strapi/utils');
|
|
6
5
|
var user$2 = require('../validation/user.js');
|
|
7
6
|
var user$1 = require('../../../../server/src/validation/user.js');
|
|
@@ -14,18 +13,18 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
|
14
13
|
var ___default = /*#__PURE__*/_interopDefault(_);
|
|
15
14
|
|
|
16
15
|
const { ApplicationError, ForbiddenError } = utils.errors;
|
|
17
|
-
const pickUserCreationAttributes =
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
]);
|
|
16
|
+
const pickUserCreationAttributes = (user)=>_.pick(user, [
|
|
17
|
+
'firstname',
|
|
18
|
+
'lastname',
|
|
19
|
+
'email',
|
|
20
|
+
'roles'
|
|
21
|
+
]);
|
|
23
22
|
const hasAdminSeatsAvaialble = async ()=>{
|
|
24
23
|
if (!strapi.EE) {
|
|
25
24
|
return true;
|
|
26
25
|
}
|
|
27
26
|
const permittedSeats = strapi.ee.seats;
|
|
28
|
-
if (
|
|
27
|
+
if (permittedSeats == null) {
|
|
29
28
|
return true;
|
|
30
29
|
}
|
|
31
30
|
const userCount = await strapi.service('admin::user').getCurrentActiveUserCount();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.js","sources":["../../../../../../ee/server/src/controllers/user.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"user.js","sources":["../../../../../../ee/server/src/controllers/user.ts"],"sourcesContent":["import _, { pick } from 'lodash';\nimport type { Context } from 'koa';\n\nimport { errors } from '@strapi/utils';\nimport { validateUserCreationInput } from '../validation/user';\nimport { validateUserUpdateInput } from '../../../../server/src/validation/user';\nimport { normalizeEmail } from '../../../../server/src/utils/normalize-email';\nimport { getService } from '../utils';\nimport { isSsoLocked } from '../utils/sso-lock';\n\nconst { ApplicationError, ForbiddenError } = errors;\n\nconst pickUserCreationAttributes = <T extends object>(user: T) =>\n pick(user, ['firstname', 'lastname', 'email', 'roles']);\n\nconst hasAdminSeatsAvaialble = async () => {\n if (!strapi.EE) {\n return true;\n }\n\n const permittedSeats = strapi.ee.seats as any;\n if (permittedSeats == null) {\n return true;\n }\n\n const userCount = await strapi.service('admin::user').getCurrentActiveUserCount();\n\n if (userCount < permittedSeats) {\n return true;\n }\n};\n\nexport default {\n async create(ctx: Context) {\n if (!(await hasAdminSeatsAvaialble())) {\n throw new ForbiddenError('License seat limit reached. You cannot create a new user');\n }\n\n const { body } = ctx.request;\n const cleanData = { ...body, email: _.get(body, `email`, ``).toLowerCase() };\n\n await validateUserCreationInput(cleanData);\n\n const attributes = pickUserCreationAttributes(cleanData);\n const { useSSORegistration } = cleanData;\n\n const userAlreadyExists = await getService('user').exists({ email: attributes.email });\n\n if (userAlreadyExists) {\n throw new ApplicationError('Email already taken');\n }\n\n if (useSSORegistration) {\n Object.assign(attributes, { registrationToken: null, isActive: true });\n }\n\n const createdUser = await getService('user').create(attributes);\n const userInfo = getService('user').sanitizeUser(createdUser);\n\n // Note: We need to assign manually the registrationToken to the\n // final user payload so that it's not removed in the sanitation process.\n Object.assign(userInfo, { registrationToken: createdUser.registrationToken });\n\n ctx.created({ data: userInfo });\n },\n\n async update(ctx: Context) {\n const { id } = ctx.params;\n const data = normalizeEmail(ctx.request.body);\n\n await validateUserUpdateInput(data);\n\n if (_.has(data, 'email')) {\n const uniqueEmailCheck = await getService('user').exists({\n id: { $ne: id },\n email: data.email,\n });\n\n if (uniqueEmailCheck) {\n throw new ApplicationError('A user with this email address already exists');\n }\n }\n\n const user = await getService('user').findOne(id, null);\n\n if (!(await hasAdminSeatsAvaialble()) && !user.isActive && data.isActive) {\n throw new ForbiddenError('License seat limit reached. You cannot active this user');\n }\n\n const updatedUser = await getService('user').updateById(id, data);\n\n if (!updatedUser) {\n return ctx.notFound('User does not exist');\n }\n\n ctx.body = {\n data: getService('user').sanitizeUser(updatedUser),\n };\n },\n\n async isSSOLocked(ctx: Context) {\n const { user } = ctx.state;\n const isSSOLocked = await isSsoLocked(user);\n\n ctx.body = {\n data: {\n isSSOLocked,\n },\n };\n },\n};\n"],"names":["ApplicationError","ForbiddenError","errors","pickUserCreationAttributes","user","pick","hasAdminSeatsAvaialble","strapi","EE","permittedSeats","ee","seats","userCount","service","getCurrentActiveUserCount","create","ctx","body","request","cleanData","email","_","get","toLowerCase","validateUserCreationInput","attributes","useSSORegistration","userAlreadyExists","getService","exists","Object","assign","registrationToken","isActive","createdUser","userInfo","sanitizeUser","created","data","update","id","params","normalizeEmail","validateUserUpdateInput","has","uniqueEmailCheck","$ne","findOne","updatedUser","updateById","notFound","isSSOLocked","state","isSsoLocked"],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import ___default from 'lodash';
|
|
2
|
-
import { pick, isNil } from 'lodash/fp';
|
|
1
|
+
import ___default, { pick } from 'lodash';
|
|
3
2
|
import { errors } from '@strapi/utils';
|
|
4
3
|
import { validateUserCreationInput } from '../validation/user.mjs';
|
|
5
4
|
import { validateUserUpdateInput } from '../../../../server/src/validation/user.mjs';
|
|
@@ -8,18 +7,18 @@ import { getService } from '../utils/index.mjs';
|
|
|
8
7
|
import { isSsoLocked } from '../utils/sso-lock.mjs';
|
|
9
8
|
|
|
10
9
|
const { ApplicationError, ForbiddenError } = errors;
|
|
11
|
-
const pickUserCreationAttributes = pick([
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
]);
|
|
10
|
+
const pickUserCreationAttributes = (user)=>pick(user, [
|
|
11
|
+
'firstname',
|
|
12
|
+
'lastname',
|
|
13
|
+
'email',
|
|
14
|
+
'roles'
|
|
15
|
+
]);
|
|
17
16
|
const hasAdminSeatsAvaialble = async ()=>{
|
|
18
17
|
if (!strapi.EE) {
|
|
19
18
|
return true;
|
|
20
19
|
}
|
|
21
20
|
const permittedSeats = strapi.ee.seats;
|
|
22
|
-
if (
|
|
21
|
+
if (permittedSeats == null) {
|
|
23
22
|
return true;
|
|
24
23
|
}
|
|
25
24
|
const userCount = await strapi.service('admin::user').getCurrentActiveUserCount();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.mjs","sources":["../../../../../../ee/server/src/controllers/user.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"user.mjs","sources":["../../../../../../ee/server/src/controllers/user.ts"],"sourcesContent":["import _, { pick } from 'lodash';\nimport type { Context } from 'koa';\n\nimport { errors } from '@strapi/utils';\nimport { validateUserCreationInput } from '../validation/user';\nimport { validateUserUpdateInput } from '../../../../server/src/validation/user';\nimport { normalizeEmail } from '../../../../server/src/utils/normalize-email';\nimport { getService } from '../utils';\nimport { isSsoLocked } from '../utils/sso-lock';\n\nconst { ApplicationError, ForbiddenError } = errors;\n\nconst pickUserCreationAttributes = <T extends object>(user: T) =>\n pick(user, ['firstname', 'lastname', 'email', 'roles']);\n\nconst hasAdminSeatsAvaialble = async () => {\n if (!strapi.EE) {\n return true;\n }\n\n const permittedSeats = strapi.ee.seats as any;\n if (permittedSeats == null) {\n return true;\n }\n\n const userCount = await strapi.service('admin::user').getCurrentActiveUserCount();\n\n if (userCount < permittedSeats) {\n return true;\n }\n};\n\nexport default {\n async create(ctx: Context) {\n if (!(await hasAdminSeatsAvaialble())) {\n throw new ForbiddenError('License seat limit reached. You cannot create a new user');\n }\n\n const { body } = ctx.request;\n const cleanData = { ...body, email: _.get(body, `email`, ``).toLowerCase() };\n\n await validateUserCreationInput(cleanData);\n\n const attributes = pickUserCreationAttributes(cleanData);\n const { useSSORegistration } = cleanData;\n\n const userAlreadyExists = await getService('user').exists({ email: attributes.email });\n\n if (userAlreadyExists) {\n throw new ApplicationError('Email already taken');\n }\n\n if (useSSORegistration) {\n Object.assign(attributes, { registrationToken: null, isActive: true });\n }\n\n const createdUser = await getService('user').create(attributes);\n const userInfo = getService('user').sanitizeUser(createdUser);\n\n // Note: We need to assign manually the registrationToken to the\n // final user payload so that it's not removed in the sanitation process.\n Object.assign(userInfo, { registrationToken: createdUser.registrationToken });\n\n ctx.created({ data: userInfo });\n },\n\n async update(ctx: Context) {\n const { id } = ctx.params;\n const data = normalizeEmail(ctx.request.body);\n\n await validateUserUpdateInput(data);\n\n if (_.has(data, 'email')) {\n const uniqueEmailCheck = await getService('user').exists({\n id: { $ne: id },\n email: data.email,\n });\n\n if (uniqueEmailCheck) {\n throw new ApplicationError('A user with this email address already exists');\n }\n }\n\n const user = await getService('user').findOne(id, null);\n\n if (!(await hasAdminSeatsAvaialble()) && !user.isActive && data.isActive) {\n throw new ForbiddenError('License seat limit reached. You cannot active this user');\n }\n\n const updatedUser = await getService('user').updateById(id, data);\n\n if (!updatedUser) {\n return ctx.notFound('User does not exist');\n }\n\n ctx.body = {\n data: getService('user').sanitizeUser(updatedUser),\n };\n },\n\n async isSSOLocked(ctx: Context) {\n const { user } = ctx.state;\n const isSSOLocked = await isSsoLocked(user);\n\n ctx.body = {\n data: {\n isSSOLocked,\n },\n };\n },\n};\n"],"names":["ApplicationError","ForbiddenError","errors","pickUserCreationAttributes","user","pick","hasAdminSeatsAvaialble","strapi","EE","permittedSeats","ee","seats","userCount","service","getCurrentActiveUserCount","create","ctx","body","request","cleanData","email","_","get","toLowerCase","validateUserCreationInput","attributes","useSSORegistration","userAlreadyExists","getService","exists","Object","assign","registrationToken","isActive","createdUser","userInfo","sanitizeUser","created","data","update","id","params","normalizeEmail","validateUserUpdateInput","has","uniqueEmailCheck","$ne","findOne","updatedUser","updateById","notFound","isSSOLocked","state","isSsoLocked"],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@ var auditLogExport = require('../../../shared/utils/audit-log-export.js');
|
|
|
16
16
|
var tokens = require('../../../server/src/audit-logs/tokens.js');
|
|
17
17
|
var adminUsers = require('../../../server/src/audit-logs/admin-users.js');
|
|
18
18
|
var webhooks = require('../../../server/src/audit-logs/webhooks.js');
|
|
19
|
+
var auth = require('../../../server/src/audit-logs/auth.js');
|
|
19
20
|
|
|
20
21
|
const getAdminEE = ()=>{
|
|
21
22
|
const eeAdmin = {
|
|
@@ -69,6 +70,7 @@ const getAdminEE = ()=>{
|
|
|
69
70
|
tokens.registerTokenAuditEvents(auditLogsLifecycle);
|
|
70
71
|
adminUsers.registerAdminUserAuditEvents(auditLogsLifecycle);
|
|
71
72
|
webhooks.registerWebhookAuditEvents(auditLogsLifecycle);
|
|
73
|
+
auth.registerAuthAuditEvents(auditLogsLifecycle);
|
|
72
74
|
await auditLogsLifecycle.register();
|
|
73
75
|
}
|
|
74
76
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../ee/server/src/index.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport register from './register';\nimport bootstrap from './bootstrap';\nimport destroy from './destroy';\nimport adminContentTypes from './content-types';\nimport services from './services';\nimport controllers from './controllers';\nimport routes from './routes';\nimport auditLogsRoutes from './audit-logs/routes/audit-logs';\nimport auditLogsController from './audit-logs/controllers/audit-logs';\nimport { createAuditLogsService } from './audit-logs/services/audit-logs';\nimport { createAuditLogsLifecycleService } from './audit-logs/services/lifecycles';\nimport { auditLog } from './audit-logs/content-types/audit-log';\nimport { AUDIT_LOG_EXPORT_EVENT } from '../../../shared/utils/audit-log-export';\nimport { registerTokenAuditEvents } from '../../../server/src/audit-logs/tokens';\nimport { registerAdminUserAuditEvents } from '../../../server/src/audit-logs/admin-users';\nimport { registerWebhookAuditEvents } from '../../../server/src/audit-logs/webhooks';\n\nconst getAdminEE = () => {\n const eeAdmin = {\n register,\n bootstrap,\n destroy,\n contentTypes: {\n // Always register the audit-log content type to prevent data loss\n 'audit-log': auditLog,\n ...adminContentTypes,\n },\n services,\n controllers,\n routes,\n };\n\n const isAuditLogsEnabled =\n strapi.config.get('admin.auditLogs.enabled', true) &&\n strapi.ee.features.isEnabled('audit-logs');\n return {\n ...eeAdmin,\n controllers: {\n ...eeAdmin.controllers,\n ...(isAuditLogsEnabled ? { 'audit-logs': auditLogsController } : {}),\n },\n routes: {\n ...eeAdmin.routes,\n ...(isAuditLogsEnabled ? { 'audit-logs': auditLogsRoutes } : {}),\n },\n async register({ strapi }: { strapi: Core.Strapi }) {\n // Run the default registration\n await eeAdmin.register({ strapi });\n\n if (isAuditLogsEnabled) {\n // Register an internal audit logs service\n strapi.add('audit-logs', createAuditLogsService(strapi));\n // Register an internal audit logs lifecycle service\n const auditLogsLifecycle = createAuditLogsLifecycleService(strapi);\n strapi.add('audit-logs-lifecycle', auditLogsLifecycle);\n\n auditLogsLifecycle.registerEvent(\n AUDIT_LOG_EXPORT_EVENT,\n (event: { filters?: unknown }) => ({\n resource: { type: 'audit-log' },\n details: { format: 'csv', filters: event?.filters ?? null },\n })\n );\n\n registerTokenAuditEvents(auditLogsLifecycle);\n registerAdminUserAuditEvents(auditLogsLifecycle);\n registerWebhookAuditEvents(auditLogsLifecycle);\n\n await auditLogsLifecycle.register();\n }\n },\n async destroy({ strapi }: { strapi: Core.Strapi }) {\n if (isAuditLogsEnabled) {\n strapi.get('audit-logs-lifecycle').destroy();\n }\n await eeAdmin.destroy();\n },\n };\n};\n\nexport default getAdminEE;\n"],"names":["getAdminEE","eeAdmin","register","bootstrap","destroy","contentTypes","auditLog","adminContentTypes","services","controllers","routes","isAuditLogsEnabled","strapi","config","get","ee","features","isEnabled","auditLogsController","auditLogsRoutes","add","createAuditLogsService","auditLogsLifecycle","createAuditLogsLifecycleService","registerEvent","AUDIT_LOG_EXPORT_EVENT","event","resource","type","details","format","filters","registerTokenAuditEvents","registerAdminUserAuditEvents","registerWebhookAuditEvents"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../ee/server/src/index.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport register from './register';\nimport bootstrap from './bootstrap';\nimport destroy from './destroy';\nimport adminContentTypes from './content-types';\nimport services from './services';\nimport controllers from './controllers';\nimport routes from './routes';\nimport auditLogsRoutes from './audit-logs/routes/audit-logs';\nimport auditLogsController from './audit-logs/controllers/audit-logs';\nimport { createAuditLogsService } from './audit-logs/services/audit-logs';\nimport { createAuditLogsLifecycleService } from './audit-logs/services/lifecycles';\nimport { auditLog } from './audit-logs/content-types/audit-log';\nimport { AUDIT_LOG_EXPORT_EVENT } from '../../../shared/utils/audit-log-export';\nimport { registerTokenAuditEvents } from '../../../server/src/audit-logs/tokens';\nimport { registerAdminUserAuditEvents } from '../../../server/src/audit-logs/admin-users';\nimport { registerWebhookAuditEvents } from '../../../server/src/audit-logs/webhooks';\nimport { registerAuthAuditEvents } from '../../../server/src/audit-logs/auth';\n\nconst getAdminEE = () => {\n const eeAdmin = {\n register,\n bootstrap,\n destroy,\n contentTypes: {\n // Always register the audit-log content type to prevent data loss\n 'audit-log': auditLog,\n ...adminContentTypes,\n },\n services,\n controllers,\n routes,\n };\n\n const isAuditLogsEnabled =\n strapi.config.get('admin.auditLogs.enabled', true) &&\n strapi.ee.features.isEnabled('audit-logs');\n return {\n ...eeAdmin,\n controllers: {\n ...eeAdmin.controllers,\n ...(isAuditLogsEnabled ? { 'audit-logs': auditLogsController } : {}),\n },\n routes: {\n ...eeAdmin.routes,\n ...(isAuditLogsEnabled ? { 'audit-logs': auditLogsRoutes } : {}),\n },\n async register({ strapi }: { strapi: Core.Strapi }) {\n // Run the default registration\n await eeAdmin.register({ strapi });\n\n if (isAuditLogsEnabled) {\n // Register an internal audit logs service\n strapi.add('audit-logs', createAuditLogsService(strapi));\n // Register an internal audit logs lifecycle service\n const auditLogsLifecycle = createAuditLogsLifecycleService(strapi);\n strapi.add('audit-logs-lifecycle', auditLogsLifecycle);\n\n auditLogsLifecycle.registerEvent(\n AUDIT_LOG_EXPORT_EVENT,\n (event: { filters?: unknown }) => ({\n resource: { type: 'audit-log' },\n details: { format: 'csv', filters: event?.filters ?? null },\n })\n );\n\n registerTokenAuditEvents(auditLogsLifecycle);\n registerAdminUserAuditEvents(auditLogsLifecycle);\n registerWebhookAuditEvents(auditLogsLifecycle);\n registerAuthAuditEvents(auditLogsLifecycle);\n\n await auditLogsLifecycle.register();\n }\n },\n async destroy({ strapi }: { strapi: Core.Strapi }) {\n if (isAuditLogsEnabled) {\n strapi.get('audit-logs-lifecycle').destroy();\n }\n await eeAdmin.destroy();\n },\n };\n};\n\nexport default getAdminEE;\n"],"names":["getAdminEE","eeAdmin","register","bootstrap","destroy","contentTypes","auditLog","adminContentTypes","services","controllers","routes","isAuditLogsEnabled","strapi","config","get","ee","features","isEnabled","auditLogsController","auditLogsRoutes","add","createAuditLogsService","auditLogsLifecycle","createAuditLogsLifecycleService","registerEvent","AUDIT_LOG_EXPORT_EVENT","event","resource","type","details","format","filters","registerTokenAuditEvents","registerAdminUserAuditEvents","registerWebhookAuditEvents","registerAuthAuditEvents"],"mappings":";;;;;;;;;;;;;;;;;;;;AAmBA,MAAMA,UAAAA,GAAa,IAAA;AACjB,IAAA,MAAMC,OAAAA,GAAU;AACdC,QAAAA,QAAAA;AACAC,QAAAA,SAAAA;AACAC,QAAAA,OAAAA;QACAC,YAAAA,EAAc;;YAEZ,WAAA,EAAaC,iBAAAA;AACb,YAAA,GAAGC;AACL,SAAA;AACAC,kBAAAA,OAAAA;AACAC,qBAAAA,OAAAA;AACAC,gBAAAA;AACF,KAAA;AAEA,IAAA,MAAMC,kBAAAA,GACJC,MAAAA,CAAOC,MAAM,CAACC,GAAG,CAAC,yBAAA,EAA2B,IAAA,CAAA,IAC7CF,MAAAA,CAAOG,EAAE,CAACC,QAAQ,CAACC,SAAS,CAAC,YAAA,CAAA;IAC/B,OAAO;AACL,QAAA,GAAGhB,OAAO;QACVQ,WAAAA,EAAa;AACX,YAAA,GAAGR,QAAQQ,WAAW;AACtB,YAAA,GAAIE,kBAAAA,GAAqB;gBAAE,YAAA,EAAcO;AAAoB,aAAA,GAAI;AACnE,SAAA;QACAR,MAAAA,EAAQ;AACN,YAAA,GAAGT,QAAQS,MAAM;AACjB,YAAA,GAAIC,kBAAAA,GAAqB;gBAAE,YAAA,EAAcQ;AAAgB,aAAA,GAAI;AAC/D,SAAA;AACA,QAAA,MAAMjB,QAAAA,CAAAA,CAAS,EAAEU,MAAAA,EAAAA,OAAM,EAA2B,EAAA;;YAEhD,MAAMX,OAAAA,CAAQC,QAAQ,CAAC;gBAAEU,MAAAA,EAAAA;AAAO,aAAA,CAAA;AAEhC,YAAA,IAAID,kBAAAA,EAAoB;;gBAEtBC,OAAAA,CAAOQ,GAAG,CAAC,YAAA,EAAcC,kCAAAA,CAAuBT,OAAAA,CAAAA,CAAAA;;AAEhD,gBAAA,MAAMU,qBAAqBC,0CAAAA,CAAgCX,OAAAA,CAAAA;gBAC3DA,OAAAA,CAAOQ,GAAG,CAAC,sBAAA,EAAwBE,kBAAAA,CAAAA;AAEnCA,gBAAAA,kBAAAA,CAAmBE,aAAa,CAC9BC,qCAAAA,EACA,CAACC,SAAkC;wBACjCC,QAAAA,EAAU;4BAAEC,IAAAA,EAAM;AAAY,yBAAA;wBAC9BC,OAAAA,EAAS;4BAAEC,MAAAA,EAAQ,KAAA;AAAOC,4BAAAA,OAAAA,EAASL,OAAOK,OAAAA,IAAW;AAAK;qBAC5D,CAAA,CAAA;gBAGFC,+BAAAA,CAAyBV,kBAAAA,CAAAA;gBACzBW,uCAAAA,CAA6BX,kBAAAA,CAAAA;gBAC7BY,mCAAAA,CAA2BZ,kBAAAA,CAAAA;gBAC3Ba,4BAAAA,CAAwBb,kBAAAA,CAAAA;AAExB,gBAAA,MAAMA,mBAAmBpB,QAAQ,EAAA;AACnC,YAAA;AACF,QAAA,CAAA;AACA,QAAA,MAAME,OAAAA,CAAAA,CAAQ,EAAEQ,MAAAA,EAAAA,OAAM,EAA2B,EAAA;AAC/C,YAAA,IAAID,kBAAAA,EAAoB;gBACtBC,OAAAA,CAAOE,GAAG,CAAC,sBAAA,CAAA,CAAwBV,OAAO,EAAA;AAC5C,YAAA;AACA,YAAA,MAAMH,QAAQG,OAAO,EAAA;AACvB,QAAA;AACF,KAAA;AACF;;;;"}
|
|
@@ -14,6 +14,7 @@ import { AUDIT_LOG_EXPORT_EVENT } from '../../../shared/utils/audit-log-export.m
|
|
|
14
14
|
import { registerTokenAuditEvents } from '../../../server/src/audit-logs/tokens.mjs';
|
|
15
15
|
import { registerAdminUserAuditEvents } from '../../../server/src/audit-logs/admin-users.mjs';
|
|
16
16
|
import { registerWebhookAuditEvents } from '../../../server/src/audit-logs/webhooks.mjs';
|
|
17
|
+
import { registerAuthAuditEvents } from '../../../server/src/audit-logs/auth.mjs';
|
|
17
18
|
|
|
18
19
|
const getAdminEE = ()=>{
|
|
19
20
|
const eeAdmin = {
|
|
@@ -67,6 +68,7 @@ const getAdminEE = ()=>{
|
|
|
67
68
|
registerTokenAuditEvents(auditLogsLifecycle);
|
|
68
69
|
registerAdminUserAuditEvents(auditLogsLifecycle);
|
|
69
70
|
registerWebhookAuditEvents(auditLogsLifecycle);
|
|
71
|
+
registerAuthAuditEvents(auditLogsLifecycle);
|
|
70
72
|
await auditLogsLifecycle.register();
|
|
71
73
|
}
|
|
72
74
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../ee/server/src/index.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport register from './register';\nimport bootstrap from './bootstrap';\nimport destroy from './destroy';\nimport adminContentTypes from './content-types';\nimport services from './services';\nimport controllers from './controllers';\nimport routes from './routes';\nimport auditLogsRoutes from './audit-logs/routes/audit-logs';\nimport auditLogsController from './audit-logs/controllers/audit-logs';\nimport { createAuditLogsService } from './audit-logs/services/audit-logs';\nimport { createAuditLogsLifecycleService } from './audit-logs/services/lifecycles';\nimport { auditLog } from './audit-logs/content-types/audit-log';\nimport { AUDIT_LOG_EXPORT_EVENT } from '../../../shared/utils/audit-log-export';\nimport { registerTokenAuditEvents } from '../../../server/src/audit-logs/tokens';\nimport { registerAdminUserAuditEvents } from '../../../server/src/audit-logs/admin-users';\nimport { registerWebhookAuditEvents } from '../../../server/src/audit-logs/webhooks';\n\nconst getAdminEE = () => {\n const eeAdmin = {\n register,\n bootstrap,\n destroy,\n contentTypes: {\n // Always register the audit-log content type to prevent data loss\n 'audit-log': auditLog,\n ...adminContentTypes,\n },\n services,\n controllers,\n routes,\n };\n\n const isAuditLogsEnabled =\n strapi.config.get('admin.auditLogs.enabled', true) &&\n strapi.ee.features.isEnabled('audit-logs');\n return {\n ...eeAdmin,\n controllers: {\n ...eeAdmin.controllers,\n ...(isAuditLogsEnabled ? { 'audit-logs': auditLogsController } : {}),\n },\n routes: {\n ...eeAdmin.routes,\n ...(isAuditLogsEnabled ? { 'audit-logs': auditLogsRoutes } : {}),\n },\n async register({ strapi }: { strapi: Core.Strapi }) {\n // Run the default registration\n await eeAdmin.register({ strapi });\n\n if (isAuditLogsEnabled) {\n // Register an internal audit logs service\n strapi.add('audit-logs', createAuditLogsService(strapi));\n // Register an internal audit logs lifecycle service\n const auditLogsLifecycle = createAuditLogsLifecycleService(strapi);\n strapi.add('audit-logs-lifecycle', auditLogsLifecycle);\n\n auditLogsLifecycle.registerEvent(\n AUDIT_LOG_EXPORT_EVENT,\n (event: { filters?: unknown }) => ({\n resource: { type: 'audit-log' },\n details: { format: 'csv', filters: event?.filters ?? null },\n })\n );\n\n registerTokenAuditEvents(auditLogsLifecycle);\n registerAdminUserAuditEvents(auditLogsLifecycle);\n registerWebhookAuditEvents(auditLogsLifecycle);\n\n await auditLogsLifecycle.register();\n }\n },\n async destroy({ strapi }: { strapi: Core.Strapi }) {\n if (isAuditLogsEnabled) {\n strapi.get('audit-logs-lifecycle').destroy();\n }\n await eeAdmin.destroy();\n },\n };\n};\n\nexport default getAdminEE;\n"],"names":["getAdminEE","eeAdmin","register","bootstrap","destroy","contentTypes","auditLog","adminContentTypes","services","controllers","routes","isAuditLogsEnabled","strapi","config","get","ee","features","isEnabled","auditLogsController","auditLogsRoutes","add","createAuditLogsService","auditLogsLifecycle","createAuditLogsLifecycleService","registerEvent","AUDIT_LOG_EXPORT_EVENT","event","resource","type","details","format","filters","registerTokenAuditEvents","registerAdminUserAuditEvents","registerWebhookAuditEvents"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../ee/server/src/index.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport register from './register';\nimport bootstrap from './bootstrap';\nimport destroy from './destroy';\nimport adminContentTypes from './content-types';\nimport services from './services';\nimport controllers from './controllers';\nimport routes from './routes';\nimport auditLogsRoutes from './audit-logs/routes/audit-logs';\nimport auditLogsController from './audit-logs/controllers/audit-logs';\nimport { createAuditLogsService } from './audit-logs/services/audit-logs';\nimport { createAuditLogsLifecycleService } from './audit-logs/services/lifecycles';\nimport { auditLog } from './audit-logs/content-types/audit-log';\nimport { AUDIT_LOG_EXPORT_EVENT } from '../../../shared/utils/audit-log-export';\nimport { registerTokenAuditEvents } from '../../../server/src/audit-logs/tokens';\nimport { registerAdminUserAuditEvents } from '../../../server/src/audit-logs/admin-users';\nimport { registerWebhookAuditEvents } from '../../../server/src/audit-logs/webhooks';\nimport { registerAuthAuditEvents } from '../../../server/src/audit-logs/auth';\n\nconst getAdminEE = () => {\n const eeAdmin = {\n register,\n bootstrap,\n destroy,\n contentTypes: {\n // Always register the audit-log content type to prevent data loss\n 'audit-log': auditLog,\n ...adminContentTypes,\n },\n services,\n controllers,\n routes,\n };\n\n const isAuditLogsEnabled =\n strapi.config.get('admin.auditLogs.enabled', true) &&\n strapi.ee.features.isEnabled('audit-logs');\n return {\n ...eeAdmin,\n controllers: {\n ...eeAdmin.controllers,\n ...(isAuditLogsEnabled ? { 'audit-logs': auditLogsController } : {}),\n },\n routes: {\n ...eeAdmin.routes,\n ...(isAuditLogsEnabled ? { 'audit-logs': auditLogsRoutes } : {}),\n },\n async register({ strapi }: { strapi: Core.Strapi }) {\n // Run the default registration\n await eeAdmin.register({ strapi });\n\n if (isAuditLogsEnabled) {\n // Register an internal audit logs service\n strapi.add('audit-logs', createAuditLogsService(strapi));\n // Register an internal audit logs lifecycle service\n const auditLogsLifecycle = createAuditLogsLifecycleService(strapi);\n strapi.add('audit-logs-lifecycle', auditLogsLifecycle);\n\n auditLogsLifecycle.registerEvent(\n AUDIT_LOG_EXPORT_EVENT,\n (event: { filters?: unknown }) => ({\n resource: { type: 'audit-log' },\n details: { format: 'csv', filters: event?.filters ?? null },\n })\n );\n\n registerTokenAuditEvents(auditLogsLifecycle);\n registerAdminUserAuditEvents(auditLogsLifecycle);\n registerWebhookAuditEvents(auditLogsLifecycle);\n registerAuthAuditEvents(auditLogsLifecycle);\n\n await auditLogsLifecycle.register();\n }\n },\n async destroy({ strapi }: { strapi: Core.Strapi }) {\n if (isAuditLogsEnabled) {\n strapi.get('audit-logs-lifecycle').destroy();\n }\n await eeAdmin.destroy();\n },\n };\n};\n\nexport default getAdminEE;\n"],"names":["getAdminEE","eeAdmin","register","bootstrap","destroy","contentTypes","auditLog","adminContentTypes","services","controllers","routes","isAuditLogsEnabled","strapi","config","get","ee","features","isEnabled","auditLogsController","auditLogsRoutes","add","createAuditLogsService","auditLogsLifecycle","createAuditLogsLifecycleService","registerEvent","AUDIT_LOG_EXPORT_EVENT","event","resource","type","details","format","filters","registerTokenAuditEvents","registerAdminUserAuditEvents","registerWebhookAuditEvents","registerAuthAuditEvents"],"mappings":";;;;;;;;;;;;;;;;;;AAmBA,MAAMA,UAAAA,GAAa,IAAA;AACjB,IAAA,MAAMC,OAAAA,GAAU;AACdC,QAAAA,QAAAA;AACAC,QAAAA,SAAAA;AACAC,QAAAA,OAAAA;QACAC,YAAAA,EAAc;;YAEZ,WAAA,EAAaC,QAAAA;AACb,YAAA,GAAGC;AACL,SAAA;AACAC,QAAAA,QAAAA;AACAC,QAAAA,WAAAA;AACAC,QAAAA;AACF,KAAA;AAEA,IAAA,MAAMC,kBAAAA,GACJC,MAAAA,CAAOC,MAAM,CAACC,GAAG,CAAC,yBAAA,EAA2B,IAAA,CAAA,IAC7CF,MAAAA,CAAOG,EAAE,CAACC,QAAQ,CAACC,SAAS,CAAC,YAAA,CAAA;IAC/B,OAAO;AACL,QAAA,GAAGhB,OAAO;QACVQ,WAAAA,EAAa;AACX,YAAA,GAAGR,QAAQQ,WAAW;AACtB,YAAA,GAAIE,kBAAAA,GAAqB;gBAAE,YAAA,EAAcO;AAAoB,aAAA,GAAI;AACnE,SAAA;QACAR,MAAAA,EAAQ;AACN,YAAA,GAAGT,QAAQS,MAAM;AACjB,YAAA,GAAIC,kBAAAA,GAAqB;gBAAE,YAAA,EAAcQ;AAAgB,aAAA,GAAI;AAC/D,SAAA;AACA,QAAA,MAAMjB,QAAAA,CAAAA,CAAS,EAAEU,MAAAA,EAAAA,OAAM,EAA2B,EAAA;;YAEhD,MAAMX,OAAAA,CAAQC,QAAQ,CAAC;gBAAEU,MAAAA,EAAAA;AAAO,aAAA,CAAA;AAEhC,YAAA,IAAID,kBAAAA,EAAoB;;gBAEtBC,OAAAA,CAAOQ,GAAG,CAAC,YAAA,EAAcC,sBAAAA,CAAuBT,OAAAA,CAAAA,CAAAA;;AAEhD,gBAAA,MAAMU,qBAAqBC,+BAAAA,CAAgCX,OAAAA,CAAAA;gBAC3DA,OAAAA,CAAOQ,GAAG,CAAC,sBAAA,EAAwBE,kBAAAA,CAAAA;AAEnCA,gBAAAA,kBAAAA,CAAmBE,aAAa,CAC9BC,sBAAAA,EACA,CAACC,SAAkC;wBACjCC,QAAAA,EAAU;4BAAEC,IAAAA,EAAM;AAAY,yBAAA;wBAC9BC,OAAAA,EAAS;4BAAEC,MAAAA,EAAQ,KAAA;AAAOC,4BAAAA,OAAAA,EAASL,OAAOK,OAAAA,IAAW;AAAK;qBAC5D,CAAA,CAAA;gBAGFC,wBAAAA,CAAyBV,kBAAAA,CAAAA;gBACzBW,4BAAAA,CAA6BX,kBAAAA,CAAAA;gBAC7BY,0BAAAA,CAA2BZ,kBAAAA,CAAAA;gBAC3Ba,uBAAAA,CAAwBb,kBAAAA,CAAAA;AAExB,gBAAA,MAAMA,mBAAmBpB,QAAQ,EAAA;AACnC,YAAA;AACF,QAAA,CAAA;AACA,QAAA,MAAME,OAAAA,CAAAA,CAAQ,EAAEQ,MAAAA,EAAAA,OAAM,EAA2B,EAAA;AAC/C,YAAA,IAAID,kBAAAA,EAAoB;gBACtBC,OAAAA,CAAOE,GAAG,CAAC,sBAAA,CAAA,CAAwBV,OAAO,EAAA;AAC5C,YAAA;AACA,YAAA,MAAMH,QAAQG,OAAO,EAAA;AACvB,QAAA;AACF,KAAA;AACF;;;;"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var fp = require('lodash/fp');
|
|
4
3
|
var index = require('../utils/index.js');
|
|
5
4
|
|
|
6
5
|
const getSSOProvidersList = async ()=>{
|
|
@@ -15,10 +14,11 @@ const sendUpdateProjectInformation = async (strapi1)=>{
|
|
|
15
14
|
const numberOfAdminUsers = await index.getService('user').count();
|
|
16
15
|
if (strapi1.ee.features.isEnabled('sso')) {
|
|
17
16
|
const SSOProviders = await getSSOProvidersList();
|
|
18
|
-
groupProperties =
|
|
17
|
+
groupProperties = {
|
|
18
|
+
...groupProperties,
|
|
19
19
|
SSOProviders,
|
|
20
20
|
isSSOConfigured: SSOProviders.length !== 0
|
|
21
|
-
}
|
|
21
|
+
};
|
|
22
22
|
}
|
|
23
23
|
if (strapi1.ee.features.isEnabled('cms-content-releases')) {
|
|
24
24
|
const numberOfContentReleases = await strapi1.db.query('plugin::content-releases.release').count();
|
|
@@ -29,15 +29,17 @@ const sendUpdateProjectInformation = async (strapi1)=>{
|
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
});
|
|
32
|
-
groupProperties =
|
|
32
|
+
groupProperties = {
|
|
33
|
+
...groupProperties,
|
|
33
34
|
numberOfContentReleases,
|
|
34
35
|
numberOfPublishedContentReleases
|
|
35
|
-
}
|
|
36
|
+
};
|
|
36
37
|
}
|
|
37
|
-
groupProperties =
|
|
38
|
+
groupProperties = {
|
|
39
|
+
...groupProperties,
|
|
38
40
|
numberOfActiveAdminUsers,
|
|
39
41
|
numberOfAdminUsers
|
|
40
|
-
}
|
|
42
|
+
};
|
|
41
43
|
strapi1.telemetry.send('didUpdateProjectInformation', {
|
|
42
44
|
groupProperties
|
|
43
45
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.js","sources":["../../../../../../ee/server/src/services/metrics.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"metrics.js","sources":["../../../../../../ee/server/src/services/metrics.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { getService } from '../utils';\n\nconst getSSOProvidersList = async () => {\n const { providerRegistry } = strapi.service('admin::passport');\n\n return providerRegistry.getAll().map(({ uid }: { uid: string }) => uid);\n};\n\nconst sendUpdateProjectInformation = async (strapi: Core.Strapi) => {\n let groupProperties = {};\n\n const numberOfActiveAdminUsers = await getService('user').count({ isActive: true });\n const numberOfAdminUsers = await getService('user').count();\n\n if (strapi.ee.features.isEnabled('sso')) {\n const SSOProviders = await getSSOProvidersList();\n\n groupProperties = {\n ...groupProperties,\n SSOProviders,\n isSSOConfigured: SSOProviders.length !== 0,\n };\n }\n\n if (strapi.ee.features.isEnabled('cms-content-releases')) {\n const numberOfContentReleases = await strapi\n .db!.query('plugin::content-releases.release')\n .count();\n\n const numberOfPublishedContentReleases = await strapi\n .db!.query('plugin::content-releases.release')\n .count({\n filters: { releasedAt: { $notNull: true } },\n });\n\n groupProperties = {\n ...groupProperties,\n numberOfContentReleases,\n numberOfPublishedContentReleases,\n };\n }\n\n groupProperties = { ...groupProperties, numberOfActiveAdminUsers, numberOfAdminUsers };\n\n strapi.telemetry.send('didUpdateProjectInformation', {\n groupProperties,\n });\n};\n\nconst startCron = (strapi: Core.Strapi) => {\n strapi.cron.add({\n sendProjectInformation: {\n task: () => sendUpdateProjectInformation(strapi),\n options: '0 0 0 * * *',\n },\n });\n};\n\nexport default { startCron, getSSOProvidersList, sendUpdateProjectInformation };\n"],"names":["getSSOProvidersList","providerRegistry","strapi","service","getAll","map","uid","sendUpdateProjectInformation","groupProperties","numberOfActiveAdminUsers","getService","count","isActive","numberOfAdminUsers","ee","features","isEnabled","SSOProviders","isSSOConfigured","length","numberOfContentReleases","db","query","numberOfPublishedContentReleases","filters","releasedAt","$notNull","telemetry","send","startCron","cron","add","sendProjectInformation","task","options"],"mappings":";;;;AAGA,MAAMA,mBAAAA,GAAsB,UAAA;AAC1B,IAAA,MAAM,EAAEC,gBAAgB,EAAE,GAAGC,MAAAA,CAAOC,OAAO,CAAC,iBAAA,CAAA;IAE5C,OAAOF,gBAAAA,CAAiBG,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAC,EAAEC,GAAG,EAAmB,GAAKA,GAAAA,CAAAA;AACrE,CAAA;AAEA,MAAMC,+BAA+B,OAAOL,OAAAA,GAAAA;AAC1C,IAAA,IAAIM,kBAAkB,EAAC;AAEvB,IAAA,MAAMC,wBAAAA,GAA2B,MAAMC,gBAAAA,CAAW,MAAA,CAAA,CAAQC,KAAK,CAAC;QAAEC,QAAAA,EAAU;AAAK,KAAA,CAAA;AACjF,IAAA,MAAMC,kBAAAA,GAAqB,MAAMH,gBAAAA,CAAW,MAAA,CAAA,CAAQC,KAAK,EAAA;AAEzD,IAAA,IAAIT,QAAOY,EAAE,CAACC,QAAQ,CAACC,SAAS,CAAC,KAAA,CAAA,EAAQ;AACvC,QAAA,MAAMC,eAAe,MAAMjB,mBAAAA,EAAAA;QAE3BQ,eAAAA,GAAkB;AAChB,YAAA,GAAGA,eAAe;AAClBS,YAAAA,YAAAA;YACAC,eAAAA,EAAiBD,YAAAA,CAAaE,MAAM,KAAK;AAC3C,SAAA;AACF,IAAA;AAEA,IAAA,IAAIjB,QAAOY,EAAE,CAACC,QAAQ,CAACC,SAAS,CAAC,sBAAA,CAAA,EAAyB;QACxD,MAAMI,uBAAAA,GAA0B,MAAMlB,OAAAA,CACnCmB,EAAE,CAAEC,KAAK,CAAC,oCACVX,KAAK,EAAA;QAER,MAAMY,gCAAAA,GAAmC,MAAMrB,OAAAA,CAC5CmB,EAAE,CAAEC,KAAK,CAAC,kCAAA,CAAA,CACVX,KAAK,CAAC;YACLa,OAAAA,EAAS;gBAAEC,UAAAA,EAAY;oBAAEC,QAAAA,EAAU;AAAK;AAAE;AAC5C,SAAA,CAAA;QAEFlB,eAAAA,GAAkB;AAChB,YAAA,GAAGA,eAAe;AAClBY,YAAAA,uBAAAA;AACAG,YAAAA;AACF,SAAA;AACF,IAAA;IAEAf,eAAAA,GAAkB;AAAE,QAAA,GAAGA,eAAe;AAAEC,QAAAA,wBAAAA;AAA0BI,QAAAA;AAAmB,KAAA;AAErFX,IAAAA,OAAAA,CAAOyB,SAAS,CAACC,IAAI,CAAC,6BAAA,EAA+B;AACnDpB,QAAAA;AACF,KAAA,CAAA;AACF,CAAA;AAEA,MAAMqB,YAAY,CAAC3B,OAAAA,GAAAA;IACjBA,OAAAA,CAAO4B,IAAI,CAACC,GAAG,CAAC;QACdC,sBAAAA,EAAwB;AACtBC,YAAAA,IAAAA,EAAM,IAAM1B,4BAAAA,CAA6BL,OAAAA,CAAAA;YACzCgC,OAAAA,EAAS;AACX;AACF,KAAA,CAAA;AACF,CAAA;AAEA,cAAe;AAAEL,IAAAA,SAAAA;AAAW7B,IAAAA,mBAAAA;AAAqBO,IAAAA;AAA6B,CAAA;;;;"}
|