@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":"authentication.mjs","sources":["../../../../../server/src/controllers/authentication.ts"],"sourcesContent":["import type { Context, Next } from 'koa';\nimport passport from 'koa-passport';\nimport compose from 'koa-compose';\nimport '@strapi/types';\nimport { errors } from '@strapi/utils';\nimport { getService } from '../utils';\nimport {\n REFRESH_COOKIE_NAME,\n buildCookieOptionsWithExpiry,\n buildSessionMetadataFromContext,\n getSessionManager,\n extractDeviceParams,\n generateDeviceId,\n getRefreshCookieOptions,\n resolveLogoutDeviceId,\n} from '../../../shared/utils/session-auth';\n\nimport {\n validateRegistrationInput,\n validateAdminRegistrationInput,\n validateRegistrationInfoQuery,\n validateForgotPasswordInput,\n validateResetPasswordInput,\n validateLoginSessionInput,\n} from '../validation/authentication';\n\nimport type {\n ForgotPassword,\n Login,\n Register,\n RegisterAdmin,\n RegistrationInfo,\n ResetPassword,\n} from '../../../shared/contracts/authentication';\nimport { AdminUser } from '../../../shared/contracts/shared';\n\nconst { ApplicationError, ValidationError } = errors;\n\nexport default {\n login: compose([\n async (ctx: Context, next: Next) => {\n await validateLoginSessionInput(ctx.request.body ?? {});\n return next();\n },\n (ctx: Context, next: Next) => {\n return passport.authenticate('local', { session: false }, (err, user, info) => {\n if (err) {\n strapi.eventHub.emit('admin.auth.error', { error: err, provider: 'local' });\n // if this is a recognized error, allow it to bubble up to user\n if (err.details?.code === 'LOGIN_NOT_ALLOWED') {\n throw err;\n }\n\n // for all other errors throw a generic error to prevent leaking info\n return ctx.notImplemented();\n }\n\n if (!user) {\n strapi.eventHub.emit('admin.auth.error', {\n error: new Error(info.message),\n provider: 'local',\n });\n throw new ApplicationError(info.message);\n }\n\n const query = ctx.state as Login.Request['query'];\n query.user = user;\n\n const sanitizedUser = getService('user').sanitizeUser(user);\n strapi.eventHub.emit('admin.auth.success', { user: sanitizedUser, provider: 'local' });\n\n return next();\n })(ctx, next);\n },\n async (ctx: Context) => {\n const { user } = ctx.state as { user: AdminUser };\n\n try {\n const sessionManager = getSessionManager();\n if (!sessionManager) {\n return ctx.internalServerError();\n }\n const userId = String(user.id);\n const { deviceId, rememberMe } = extractDeviceParams(ctx.request.body);\n\n const { token: refreshToken, absoluteExpiresAt } = await sessionManager(\n 'admin'\n ).generateRefreshToken(userId, deviceId, {\n type: rememberMe ? 'refresh' : 'session',\n metadata: buildSessionMetadataFromContext(ctx),\n });\n\n const cookieOptions = buildCookieOptionsWithExpiry(\n rememberMe ? 'refresh' : 'session',\n absoluteExpiresAt,\n ctx.request.secure\n );\n ctx.cookies.set(REFRESH_COOKIE_NAME, refreshToken, cookieOptions);\n\n const accessResult = await sessionManager('admin').generateAccessToken(refreshToken);\n if ('error' in accessResult) {\n return ctx.internalServerError();\n }\n\n const { token: accessToken } = accessResult;\n\n ctx.body = {\n data: {\n token: accessToken,\n accessToken,\n user: getService('user').sanitizeUser(ctx.state.user),\n },\n } satisfies Login.Response;\n } catch (error) {\n strapi.log.error('Failed to create admin refresh session', error);\n return ctx.internalServerError();\n }\n },\n ]),\n\n async registrationInfo(ctx: Context) {\n await validateRegistrationInfoQuery(ctx.request.query);\n\n const { registrationToken } = ctx.request.query as RegistrationInfo.Request['query'];\n\n const registrationInfo = await getService('user').findRegistrationInfo(registrationToken);\n\n if (!registrationInfo) {\n throw new ValidationError('Invalid registrationToken');\n }\n\n ctx.body = { data: registrationInfo } satisfies RegistrationInfo.Response;\n },\n\n async register(ctx: Context) {\n const input = ctx.request.body as Register.Request['body'];\n\n await validateRegistrationInput(input);\n\n const user = await getService('user').register(input);\n\n try {\n const sessionManager = getSessionManager();\n if (!sessionManager) {\n return ctx.internalServerError();\n }\n const userId = String(user.id);\n const { deviceId, rememberMe } = extractDeviceParams(ctx.request.body);\n\n const { token: refreshToken, absoluteExpiresAt } = await sessionManager(\n 'admin'\n ).generateRefreshToken(userId, deviceId, {\n type: rememberMe ? 'refresh' : 'session',\n metadata: buildSessionMetadataFromContext(ctx),\n });\n\n const cookieOptions = buildCookieOptionsWithExpiry(\n rememberMe ? 'refresh' : 'session',\n absoluteExpiresAt,\n ctx.request.secure\n );\n ctx.cookies.set(REFRESH_COOKIE_NAME, refreshToken, cookieOptions);\n\n const accessResult = await sessionManager('admin').generateAccessToken(refreshToken);\n if ('error' in accessResult) {\n return ctx.internalServerError();\n }\n\n const { token: accessToken } = accessResult;\n\n ctx.body = {\n data: {\n token: accessToken,\n accessToken,\n user: getService('user').sanitizeUser(user),\n },\n } satisfies Register.Response;\n } catch (error) {\n strapi.log.error('Failed to create admin refresh session during register', error);\n return ctx.internalServerError();\n }\n },\n\n async registerAdmin(ctx: Context) {\n const input = ctx.request.body as RegisterAdmin.Request['body'];\n\n await validateAdminRegistrationInput(input);\n\n const user = await getService('user').createFirstAdmin(input);\n\n strapi.telemetry.send('didCreateFirstAdmin');\n\n try {\n const sessionManager = getSessionManager();\n if (!sessionManager) {\n return ctx.internalServerError();\n }\n const userId = String(user.id);\n const { deviceId, rememberMe } = extractDeviceParams(ctx.request.body);\n\n const { token: refreshToken, absoluteExpiresAt } = await sessionManager(\n 'admin'\n ).generateRefreshToken(userId, deviceId, {\n type: rememberMe ? 'refresh' : 'session',\n metadata: buildSessionMetadataFromContext(ctx),\n });\n\n const cookieOptions = buildCookieOptionsWithExpiry(\n rememberMe ? 'refresh' : 'session',\n absoluteExpiresAt,\n ctx.request.secure\n );\n ctx.cookies.set(REFRESH_COOKIE_NAME, refreshToken, cookieOptions);\n\n const accessResult = await sessionManager('admin').generateAccessToken(refreshToken);\n if ('error' in accessResult) {\n return ctx.internalServerError();\n }\n\n const { token: accessToken } = accessResult;\n\n ctx.body = {\n data: {\n token: accessToken,\n accessToken,\n user: getService('user').sanitizeUser(user),\n },\n } satisfies RegisterAdmin.Response;\n } catch (error) {\n strapi.log.error('Failed to create admin refresh session during register-admin', error);\n return ctx.internalServerError();\n }\n },\n\n async forgotPassword(ctx: Context) {\n const input = ctx.request.body as ForgotPassword.Request['body'];\n\n await validateForgotPasswordInput(input);\n\n // Not awaited: the response must not reveal whether the email exists. The call runs\n // synchronously so a broken service still surfaces as a 500; only a rejection of the\n // returned promise is caught here, since nothing else would handle it.\n Promise.resolve(getService('auth').forgotPassword(input)).catch((error: unknown) => {\n strapi.log.error('Failed to process the forgot-password request', { error });\n });\n\n ctx.status = 204;\n },\n\n async resetPassword(ctx: Context) {\n const input = ctx.request.body as ResetPassword.Request['body'];\n\n await validateResetPasswordInput(input);\n\n const user = await getService('auth').resetPassword(input);\n\n // Issue a new admin refresh session and access token after password reset.\n try {\n const sessionManager = getSessionManager();\n if (!sessionManager) {\n return ctx.internalServerError();\n }\n\n const userId = String(user.id);\n const deviceId = generateDeviceId();\n\n // Invalidate all existing sessions before creating a new one\n await sessionManager('admin').invalidateRefreshToken(userId);\n\n const { token: refreshToken, absoluteExpiresAt } = await sessionManager(\n 'admin'\n ).generateRefreshToken(userId, deviceId, {\n type: 'session',\n metadata: buildSessionMetadataFromContext(ctx),\n });\n\n // No rememberMe flow here; expire with session by default (session cookie)\n const cookieOptions = buildCookieOptionsWithExpiry(\n 'session',\n absoluteExpiresAt,\n ctx.request.secure\n );\n ctx.cookies.set(REFRESH_COOKIE_NAME, refreshToken, cookieOptions);\n\n const accessResult = await sessionManager('admin').generateAccessToken(refreshToken);\n if ('error' in accessResult) {\n return ctx.internalServerError();\n }\n\n const { token } = accessResult;\n\n ctx.body = {\n data: {\n token,\n user: getService('user').sanitizeUser(user),\n },\n } satisfies ResetPassword.Response;\n } catch (err) {\n strapi.log.error('Failed to create admin refresh session during reset-password', err as any);\n return ctx.internalServerError();\n }\n },\n\n async accessToken(ctx: Context) {\n const refreshToken = ctx.cookies.get(REFRESH_COOKIE_NAME);\n\n if (!refreshToken) {\n return ctx.unauthorized('Missing refresh token');\n }\n\n try {\n const sessionManager = getSessionManager();\n if (!sessionManager) {\n return ctx.internalServerError();\n }\n\n // Single-use renewal: rotate on access exchange, then create access token\n // from the new refresh token\n const rotation = await sessionManager('admin').rotateRefreshToken(refreshToken);\n if ('error' in rotation) {\n return ctx.unauthorized('Invalid refresh token');\n }\n\n const result = await sessionManager('admin').generateAccessToken(rotation.token);\n if ('error' in result) {\n return ctx.unauthorized('Invalid refresh token');\n }\n\n const { token } = result;\n // Preserve session-vs-remember mode using rotation.type and rotation.absoluteExpiresAt\n const opts = buildCookieOptionsWithExpiry(\n rotation.type,\n rotation.absoluteExpiresAt,\n ctx.request.secure\n );\n\n ctx.cookies.set(REFRESH_COOKIE_NAME, rotation.token, opts);\n ctx.body = { data: { token } };\n } catch (err) {\n strapi.log.error('Failed to generate access token from refresh token', err as any);\n return ctx.internalServerError();\n }\n },\n\n async logout(ctx: Context) {\n const sanitizedUser = getService('user').sanitizeUser(ctx.state.user);\n strapi.eventHub.emit('admin.logout', { user: sanitizedUser });\n\n // Clear cookie regardless of token validity\n ctx.cookies.set(REFRESH_COOKIE_NAME, '', {\n ...getRefreshCookieOptions(ctx.request.secure),\n expires: new Date(0),\n });\n\n try {\n const sessionManager = getSessionManager();\n if (sessionManager) {\n const userId = String(ctx.state.user.id);\n const bodyDeviceId = (ctx.request.body as { deviceId?: string } | undefined)?.deviceId;\n const sessionId = (ctx.state.session as { id?: string } | undefined)?.id;\n\n if (typeof bodyDeviceId === 'string' && bodyDeviceId.length > 0) {\n const deviceId = await resolveLogoutDeviceId(userId, sessionId, bodyDeviceId);\n await sessionManager('admin').invalidateRefreshToken(userId, deviceId);\n } else {\n await sessionManager('admin').invalidateRefreshToken(userId);\n }\n }\n } catch (err) {\n strapi.log.error('Failed to revoke admin sessions during logout', err as any);\n }\n\n ctx.body = { data: {} };\n },\n};\n"],"names":["ApplicationError","ValidationError","errors","login","compose","ctx","next","validateLoginSessionInput","request","body","passport","authenticate","session","err","user","info","strapi","eventHub","emit","error","provider","details","code","notImplemented","Error","message","query","state","sanitizedUser","getService","sanitizeUser","sessionManager","getSessionManager","internalServerError","userId","String","id","deviceId","rememberMe","extractDeviceParams","token","refreshToken","absoluteExpiresAt","generateRefreshToken","type","metadata","buildSessionMetadataFromContext","cookieOptions","buildCookieOptionsWithExpiry","secure","cookies","set","REFRESH_COOKIE_NAME","accessResult","generateAccessToken","accessToken","data","log","registrationInfo","validateRegistrationInfoQuery","registrationToken","findRegistrationInfo","register","input","validateRegistrationInput","registerAdmin","validateAdminRegistrationInput","createFirstAdmin","telemetry","send","forgotPassword","validateForgotPasswordInput","Promise","resolve","catch","status","resetPassword","validateResetPasswordInput","generateDeviceId","invalidateRefreshToken","get","unauthorized","rotation","rotateRefreshToken","result","opts","logout","getRefreshCookieOptions","expires","Date","bodyDeviceId","sessionId","length","resolveLogoutDeviceId"],"mappings":";;;;;;;;;;;AAoCA,MAAM,EAAEA,gBAAgB,EAAEC,eAAe,EAAE,GAAGC,MAAAA;AAE9C,qBAAe;AACbC,IAAAA,KAAAA,EAAOC,OAAAA,CAAQ;AACb,QAAA,OAAOC,GAAAA,EAAcC,IAAAA,GAAAA;AACnB,YAAA,MAAMC,0BAA0BF,GAAAA,CAAIG,OAAO,CAACC,IAAI,IAAI,EAAC,CAAA;YACrD,OAAOH,IAAAA,EAAAA;AACT,QAAA,CAAA;AACA,QAAA,CAACD,GAAAA,EAAcC,IAAAA,GAAAA;YACb,OAAOI,QAAAA,CAASC,YAAY,CAAC,OAAA,EAAS;gBAAEC,OAAAA,EAAS;aAAM,EAAG,CAACC,KAAKC,IAAAA,EAAMC,IAAAA,GAAAA;AACpE,gBAAA,IAAIF,GAAAA,EAAK;AACPG,oBAAAA,MAAAA,CAAOC,QAAQ,CAACC,IAAI,CAAC,kBAAA,EAAoB;wBAAEC,KAAAA,EAAON,GAAAA;wBAAKO,QAAAA,EAAU;AAAQ,qBAAA,CAAA;;AAEzE,oBAAA,IAAIP,GAAAA,CAAIQ,OAAO,EAAEC,IAAAA,KAAS,mBAAA,EAAqB;wBAC7C,MAAMT,GAAAA;AACR,oBAAA;;AAGA,oBAAA,OAAOR,IAAIkB,cAAc,EAAA;AAC3B,gBAAA;AAEA,gBAAA,IAAI,CAACT,IAAAA,EAAM;AACTE,oBAAAA,MAAAA,CAAOC,QAAQ,CAACC,IAAI,CAAC,kBAAA,EAAoB;wBACvCC,KAAAA,EAAO,IAAIK,KAAAA,CAAMT,IAAAA,CAAKU,OAAO,CAAA;wBAC7BL,QAAAA,EAAU;AACZ,qBAAA,CAAA;oBACA,MAAM,IAAIpB,gBAAAA,CAAiBe,IAAAA,CAAKU,OAAO,CAAA;AACzC,gBAAA;gBAEA,MAAMC,KAAAA,GAAQrB,IAAIsB,KAAK;AACvBD,gBAAAA,KAAAA,CAAMZ,IAAI,GAAGA,IAAAA;AAEb,gBAAA,MAAMc,aAAAA,GAAgBC,UAAAA,CAAW,MAAA,CAAA,CAAQC,YAAY,CAAChB,IAAAA,CAAAA;AACtDE,gBAAAA,MAAAA,CAAOC,QAAQ,CAACC,IAAI,CAAC,oBAAA,EAAsB;oBAAEJ,IAAAA,EAAMc,aAAAA;oBAAeR,QAAAA,EAAU;AAAQ,iBAAA,CAAA;gBAEpF,OAAOd,IAAAA,EAAAA;AACT,YAAA,CAAA,CAAA,CAAGD,GAAAA,EAAKC,IAAAA,CAAAA;AACV,QAAA,CAAA;QACA,OAAOD,GAAAA,GAAAA;AACL,YAAA,MAAM,EAAES,IAAI,EAAE,GAAGT,IAAIsB,KAAK;YAE1B,IAAI;AACF,gBAAA,MAAMI,cAAAA,GAAiBC,iBAAAA,EAAAA;AACvB,gBAAA,IAAI,CAACD,cAAAA,EAAgB;AACnB,oBAAA,OAAO1B,IAAI4B,mBAAmB,EAAA;AAChC,gBAAA;gBACA,MAAMC,MAAAA,GAASC,MAAAA,CAAOrB,IAAAA,CAAKsB,EAAE,CAAA;gBAC7B,MAAM,EAAEC,QAAQ,EAAEC,UAAU,EAAE,GAAGC,mBAAAA,CAAoBlC,GAAAA,CAAIG,OAAO,CAACC,IAAI,CAAA;AAErE,gBAAA,MAAM,EAAE+B,KAAAA,EAAOC,YAAY,EAAEC,iBAAiB,EAAE,GAAG,MAAMX,cAAAA,CACvD,OAAA,CAAA,CACAY,oBAAoB,CAACT,QAAQG,QAAAA,EAAU;AACvCO,oBAAAA,IAAAA,EAAMN,aAAa,SAAA,GAAY,SAAA;AAC/BO,oBAAAA,QAAAA,EAAUC,+BAAAA,CAAgCzC,GAAAA;AAC5C,iBAAA,CAAA;gBAEA,MAAM0C,aAAAA,GAAgBC,6BACpBV,UAAAA,GAAa,SAAA,GAAY,WACzBI,iBAAAA,EACArC,GAAAA,CAAIG,OAAO,CAACyC,MAAM,CAAA;AAEpB5C,gBAAAA,GAAAA,CAAI6C,OAAO,CAACC,GAAG,CAACC,qBAAqBX,YAAAA,EAAcM,aAAAA,CAAAA;AAEnD,gBAAA,MAAMM,YAAAA,GAAe,MAAMtB,cAAAA,CAAe,OAAA,CAAA,CAASuB,mBAAmB,CAACb,YAAAA,CAAAA;AACvE,gBAAA,IAAI,WAAWY,YAAAA,EAAc;AAC3B,oBAAA,OAAOhD,IAAI4B,mBAAmB,EAAA;AAChC,gBAAA;AAEA,gBAAA,MAAM,EAAEO,KAAAA,EAAOe,WAAW,EAAE,GAAGF,YAAAA;AAE/BhD,gBAAAA,GAAAA,CAAII,IAAI,GAAG;oBACT+C,IAAAA,EAAM;wBACJhB,KAAAA,EAAOe,WAAAA;AACPA,wBAAAA,WAAAA;AACAzC,wBAAAA,IAAAA,EAAMe,WAAW,MAAA,CAAA,CAAQC,YAAY,CAACzB,GAAAA,CAAIsB,KAAK,CAACb,IAAI;AACtD;AACF,iBAAA;AACF,YAAA,CAAA,CAAE,OAAOK,KAAAA,EAAO;AACdH,gBAAAA,MAAAA,CAAOyC,GAAG,CAACtC,KAAK,CAAC,wCAAA,EAA0CA,KAAAA,CAAAA;AAC3D,gBAAA,OAAOd,IAAI4B,mBAAmB,EAAA;AAChC,YAAA;AACF,QAAA;AACD,KAAA,CAAA;AAED,IAAA,MAAMyB,kBAAiBrD,GAAY,EAAA;AACjC,QAAA,MAAMsD,6BAAAA,CAA8BtD,GAAAA,CAAIG,OAAO,CAACkB,KAAK,CAAA;AAErD,QAAA,MAAM,EAAEkC,iBAAiB,EAAE,GAAGvD,GAAAA,CAAIG,OAAO,CAACkB,KAAK;AAE/C,QAAA,MAAMgC,gBAAAA,GAAmB,MAAM7B,UAAAA,CAAW,MAAA,CAAA,CAAQgC,oBAAoB,CAACD,iBAAAA,CAAAA;AAEvE,QAAA,IAAI,CAACF,gBAAAA,EAAkB;AACrB,YAAA,MAAM,IAAIzD,eAAAA,CAAgB,2BAAA,CAAA;AAC5B,QAAA;AAEAI,QAAAA,GAAAA,CAAII,IAAI,GAAG;YAAE+C,IAAAA,EAAME;AAAiB,SAAA;AACtC,IAAA,CAAA;AAEA,IAAA,MAAMI,UAASzD,GAAY,EAAA;AACzB,QAAA,MAAM0D,KAAAA,GAAQ1D,GAAAA,CAAIG,OAAO,CAACC,IAAI;AAE9B,QAAA,MAAMuD,yBAAAA,CAA0BD,KAAAA,CAAAA;AAEhC,QAAA,MAAMjD,IAAAA,GAAO,MAAMe,UAAAA,CAAW,MAAA,CAAA,CAAQiC,QAAQ,CAACC,KAAAA,CAAAA;QAE/C,IAAI;AACF,YAAA,MAAMhC,cAAAA,GAAiBC,iBAAAA,EAAAA;AACvB,YAAA,IAAI,CAACD,cAAAA,EAAgB;AACnB,gBAAA,OAAO1B,IAAI4B,mBAAmB,EAAA;AAChC,YAAA;YACA,MAAMC,MAAAA,GAASC,MAAAA,CAAOrB,IAAAA,CAAKsB,EAAE,CAAA;YAC7B,MAAM,EAAEC,QAAQ,EAAEC,UAAU,EAAE,GAAGC,mBAAAA,CAAoBlC,GAAAA,CAAIG,OAAO,CAACC,IAAI,CAAA;AAErE,YAAA,MAAM,EAAE+B,KAAAA,EAAOC,YAAY,EAAEC,iBAAiB,EAAE,GAAG,MAAMX,cAAAA,CACvD,OAAA,CAAA,CACAY,oBAAoB,CAACT,QAAQG,QAAAA,EAAU;AACvCO,gBAAAA,IAAAA,EAAMN,aAAa,SAAA,GAAY,SAAA;AAC/BO,gBAAAA,QAAAA,EAAUC,+BAAAA,CAAgCzC,GAAAA;AAC5C,aAAA,CAAA;YAEA,MAAM0C,aAAAA,GAAgBC,6BACpBV,UAAAA,GAAa,SAAA,GAAY,WACzBI,iBAAAA,EACArC,GAAAA,CAAIG,OAAO,CAACyC,MAAM,CAAA;AAEpB5C,YAAAA,GAAAA,CAAI6C,OAAO,CAACC,GAAG,CAACC,qBAAqBX,YAAAA,EAAcM,aAAAA,CAAAA;AAEnD,YAAA,MAAMM,YAAAA,GAAe,MAAMtB,cAAAA,CAAe,OAAA,CAAA,CAASuB,mBAAmB,CAACb,YAAAA,CAAAA;AACvE,YAAA,IAAI,WAAWY,YAAAA,EAAc;AAC3B,gBAAA,OAAOhD,IAAI4B,mBAAmB,EAAA;AAChC,YAAA;AAEA,YAAA,MAAM,EAAEO,KAAAA,EAAOe,WAAW,EAAE,GAAGF,YAAAA;AAE/BhD,YAAAA,GAAAA,CAAII,IAAI,GAAG;gBACT+C,IAAAA,EAAM;oBACJhB,KAAAA,EAAOe,WAAAA;AACPA,oBAAAA,WAAAA;oBACAzC,IAAAA,EAAMe,UAAAA,CAAW,MAAA,CAAA,CAAQC,YAAY,CAAChB,IAAAA;AACxC;AACF,aAAA;AACF,QAAA,CAAA,CAAE,OAAOK,KAAAA,EAAO;AACdH,YAAAA,MAAAA,CAAOyC,GAAG,CAACtC,KAAK,CAAC,wDAAA,EAA0DA,KAAAA,CAAAA;AAC3E,YAAA,OAAOd,IAAI4B,mBAAmB,EAAA;AAChC,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,MAAMgC,eAAc5D,GAAY,EAAA;AAC9B,QAAA,MAAM0D,KAAAA,GAAQ1D,GAAAA,CAAIG,OAAO,CAACC,IAAI;AAE9B,QAAA,MAAMyD,8BAAAA,CAA+BH,KAAAA,CAAAA;AAErC,QAAA,MAAMjD,IAAAA,GAAO,MAAMe,UAAAA,CAAW,MAAA,CAAA,CAAQsC,gBAAgB,CAACJ,KAAAA,CAAAA;QAEvD/C,MAAAA,CAAOoD,SAAS,CAACC,IAAI,CAAC,qBAAA,CAAA;QAEtB,IAAI;AACF,YAAA,MAAMtC,cAAAA,GAAiBC,iBAAAA,EAAAA;AACvB,YAAA,IAAI,CAACD,cAAAA,EAAgB;AACnB,gBAAA,OAAO1B,IAAI4B,mBAAmB,EAAA;AAChC,YAAA;YACA,MAAMC,MAAAA,GAASC,MAAAA,CAAOrB,IAAAA,CAAKsB,EAAE,CAAA;YAC7B,MAAM,EAAEC,QAAQ,EAAEC,UAAU,EAAE,GAAGC,mBAAAA,CAAoBlC,GAAAA,CAAIG,OAAO,CAACC,IAAI,CAAA;AAErE,YAAA,MAAM,EAAE+B,KAAAA,EAAOC,YAAY,EAAEC,iBAAiB,EAAE,GAAG,MAAMX,cAAAA,CACvD,OAAA,CAAA,CACAY,oBAAoB,CAACT,QAAQG,QAAAA,EAAU;AACvCO,gBAAAA,IAAAA,EAAMN,aAAa,SAAA,GAAY,SAAA;AAC/BO,gBAAAA,QAAAA,EAAUC,+BAAAA,CAAgCzC,GAAAA;AAC5C,aAAA,CAAA;YAEA,MAAM0C,aAAAA,GAAgBC,6BACpBV,UAAAA,GAAa,SAAA,GAAY,WACzBI,iBAAAA,EACArC,GAAAA,CAAIG,OAAO,CAACyC,MAAM,CAAA;AAEpB5C,YAAAA,GAAAA,CAAI6C,OAAO,CAACC,GAAG,CAACC,qBAAqBX,YAAAA,EAAcM,aAAAA,CAAAA;AAEnD,YAAA,MAAMM,YAAAA,GAAe,MAAMtB,cAAAA,CAAe,OAAA,CAAA,CAASuB,mBAAmB,CAACb,YAAAA,CAAAA;AACvE,YAAA,IAAI,WAAWY,YAAAA,EAAc;AAC3B,gBAAA,OAAOhD,IAAI4B,mBAAmB,EAAA;AAChC,YAAA;AAEA,YAAA,MAAM,EAAEO,KAAAA,EAAOe,WAAW,EAAE,GAAGF,YAAAA;AAE/BhD,YAAAA,GAAAA,CAAII,IAAI,GAAG;gBACT+C,IAAAA,EAAM;oBACJhB,KAAAA,EAAOe,WAAAA;AACPA,oBAAAA,WAAAA;oBACAzC,IAAAA,EAAMe,UAAAA,CAAW,MAAA,CAAA,CAAQC,YAAY,CAAChB,IAAAA;AACxC;AACF,aAAA;AACF,QAAA,CAAA,CAAE,OAAOK,KAAAA,EAAO;AACdH,YAAAA,MAAAA,CAAOyC,GAAG,CAACtC,KAAK,CAAC,8DAAA,EAAgEA,KAAAA,CAAAA;AACjF,YAAA,OAAOd,IAAI4B,mBAAmB,EAAA;AAChC,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,MAAMqC,gBAAejE,GAAY,EAAA;AAC/B,QAAA,MAAM0D,KAAAA,GAAQ1D,GAAAA,CAAIG,OAAO,CAACC,IAAI;AAE9B,QAAA,MAAM8D,2BAAAA,CAA4BR,KAAAA,CAAAA;;;;QAKlCS,OAAAA,CAAQC,OAAO,CAAC5C,UAAAA,CAAW,MAAA,CAAA,CAAQyC,cAAc,CAACP,KAAAA,CAAAA,CAAAA,CAAQW,KAAK,CAAC,CAACvD,KAAAA,GAAAA;AAC/DH,YAAAA,MAAAA,CAAOyC,GAAG,CAACtC,KAAK,CAAC,+CAAA,EAAiD;AAAEA,gBAAAA;AAAM,aAAA,CAAA;AAC5E,QAAA,CAAA,CAAA;AAEAd,QAAAA,GAAAA,CAAIsE,MAAM,GAAG,GAAA;AACf,IAAA,CAAA;AAEA,IAAA,MAAMC,eAAcvE,GAAY,EAAA;AAC9B,QAAA,MAAM0D,KAAAA,GAAQ1D,GAAAA,CAAIG,OAAO,CAACC,IAAI;AAE9B,QAAA,MAAMoE,0BAAAA,CAA2Bd,KAAAA,CAAAA;AAEjC,QAAA,MAAMjD,IAAAA,GAAO,MAAMe,UAAAA,CAAW,MAAA,CAAA,CAAQ+C,aAAa,CAACb,KAAAA,CAAAA;;QAGpD,IAAI;AACF,YAAA,MAAMhC,cAAAA,GAAiBC,iBAAAA,EAAAA;AACvB,YAAA,IAAI,CAACD,cAAAA,EAAgB;AACnB,gBAAA,OAAO1B,IAAI4B,mBAAmB,EAAA;AAChC,YAAA;YAEA,MAAMC,MAAAA,GAASC,MAAAA,CAAOrB,IAAAA,CAAKsB,EAAE,CAAA;AAC7B,YAAA,MAAMC,QAAAA,GAAWyC,gBAAAA,EAAAA;;YAGjB,MAAM/C,cAAAA,CAAe,OAAA,CAAA,CAASgD,sBAAsB,CAAC7C,MAAAA,CAAAA;AAErD,YAAA,MAAM,EAAEM,KAAAA,EAAOC,YAAY,EAAEC,iBAAiB,EAAE,GAAG,MAAMX,cAAAA,CACvD,OAAA,CAAA,CACAY,oBAAoB,CAACT,QAAQG,QAAAA,EAAU;gBACvCO,IAAAA,EAAM,SAAA;AACNC,gBAAAA,QAAAA,EAAUC,+BAAAA,CAAgCzC,GAAAA;AAC5C,aAAA,CAAA;;AAGA,YAAA,MAAM0C,gBAAgBC,4BAAAA,CACpB,SAAA,EACAN,mBACArC,GAAAA,CAAIG,OAAO,CAACyC,MAAM,CAAA;AAEpB5C,YAAAA,GAAAA,CAAI6C,OAAO,CAACC,GAAG,CAACC,qBAAqBX,YAAAA,EAAcM,aAAAA,CAAAA;AAEnD,YAAA,MAAMM,YAAAA,GAAe,MAAMtB,cAAAA,CAAe,OAAA,CAAA,CAASuB,mBAAmB,CAACb,YAAAA,CAAAA;AACvE,YAAA,IAAI,WAAWY,YAAAA,EAAc;AAC3B,gBAAA,OAAOhD,IAAI4B,mBAAmB,EAAA;AAChC,YAAA;YAEA,MAAM,EAAEO,KAAK,EAAE,GAAGa,YAAAA;AAElBhD,YAAAA,GAAAA,CAAII,IAAI,GAAG;gBACT+C,IAAAA,EAAM;AACJhB,oBAAAA,KAAAA;oBACA1B,IAAAA,EAAMe,UAAAA,CAAW,MAAA,CAAA,CAAQC,YAAY,CAAChB,IAAAA;AACxC;AACF,aAAA;AACF,QAAA,CAAA,CAAE,OAAOD,GAAAA,EAAK;AACZG,YAAAA,MAAAA,CAAOyC,GAAG,CAACtC,KAAK,CAAC,8DAAA,EAAgEN,GAAAA,CAAAA;AACjF,YAAA,OAAOR,IAAI4B,mBAAmB,EAAA;AAChC,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,MAAMsB,aAAYlD,GAAY,EAAA;AAC5B,QAAA,MAAMoC,YAAAA,GAAepC,GAAAA,CAAI6C,OAAO,CAAC8B,GAAG,CAAC5B,mBAAAA,CAAAA;AAErC,QAAA,IAAI,CAACX,YAAAA,EAAc;YACjB,OAAOpC,GAAAA,CAAI4E,YAAY,CAAC,uBAAA,CAAA;AAC1B,QAAA;QAEA,IAAI;AACF,YAAA,MAAMlD,cAAAA,GAAiBC,iBAAAA,EAAAA;AACvB,YAAA,IAAI,CAACD,cAAAA,EAAgB;AACnB,gBAAA,OAAO1B,IAAI4B,mBAAmB,EAAA;AAChC,YAAA;;;AAIA,YAAA,MAAMiD,QAAAA,GAAW,MAAMnD,cAAAA,CAAe,OAAA,CAAA,CAASoD,kBAAkB,CAAC1C,YAAAA,CAAAA;AAClE,YAAA,IAAI,WAAWyC,QAAAA,EAAU;gBACvB,OAAO7E,GAAAA,CAAI4E,YAAY,CAAC,uBAAA,CAAA;AAC1B,YAAA;AAEA,YAAA,MAAMG,SAAS,MAAMrD,cAAAA,CAAe,SAASuB,mBAAmB,CAAC4B,SAAS1C,KAAK,CAAA;AAC/E,YAAA,IAAI,WAAW4C,MAAAA,EAAQ;gBACrB,OAAO/E,GAAAA,CAAI4E,YAAY,CAAC,uBAAA,CAAA;AAC1B,YAAA;YAEA,MAAM,EAAEzC,KAAK,EAAE,GAAG4C,MAAAA;;YAElB,MAAMC,IAAAA,GAAOrC,4BAAAA,CACXkC,QAAAA,CAAStC,IAAI,EACbsC,QAAAA,CAASxC,iBAAiB,EAC1BrC,GAAAA,CAAIG,OAAO,CAACyC,MAAM,CAAA;AAGpB5C,YAAAA,GAAAA,CAAI6C,OAAO,CAACC,GAAG,CAACC,mBAAAA,EAAqB8B,QAAAA,CAAS1C,KAAK,EAAE6C,IAAAA,CAAAA;AACrDhF,YAAAA,GAAAA,CAAII,IAAI,GAAG;gBAAE+C,IAAAA,EAAM;AAAEhB,oBAAAA;AAAM;AAAE,aAAA;AAC/B,QAAA,CAAA,CAAE,OAAO3B,GAAAA,EAAK;AACZG,YAAAA,MAAAA,CAAOyC,GAAG,CAACtC,KAAK,CAAC,oDAAA,EAAsDN,GAAAA,CAAAA;AACvE,YAAA,OAAOR,IAAI4B,mBAAmB,EAAA;AAChC,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,MAAMqD,QAAOjF,GAAY,EAAA;QACvB,MAAMuB,aAAAA,GAAgBC,WAAW,MAAA,CAAA,CAAQC,YAAY,CAACzB,GAAAA,CAAIsB,KAAK,CAACb,IAAI,CAAA;AACpEE,QAAAA,MAAAA,CAAOC,QAAQ,CAACC,IAAI,CAAC,cAAA,EAAgB;YAAEJ,IAAAA,EAAMc;AAAc,SAAA,CAAA;;AAG3DvB,QAAAA,GAAAA,CAAI6C,OAAO,CAACC,GAAG,CAACC,qBAAqB,EAAA,EAAI;AACvC,YAAA,GAAGmC,uBAAAA,CAAwBlF,GAAAA,CAAIG,OAAO,CAACyC,MAAM,CAAC;AAC9CuC,YAAAA,OAAAA,EAAS,IAAIC,IAAAA,CAAK,CAAA;AACpB,SAAA,CAAA;QAEA,IAAI;AACF,YAAA,MAAM1D,cAAAA,GAAiBC,iBAAAA,EAAAA;AACvB,YAAA,IAAID,cAAAA,EAAgB;AAClB,gBAAA,MAAMG,SAASC,MAAAA,CAAO9B,GAAAA,CAAIsB,KAAK,CAACb,IAAI,CAACsB,EAAE,CAAA;AACvC,gBAAA,MAAMsD,YAAAA,GAAgBrF,GAAAA,CAAIG,OAAO,CAACC,IAAI,EAAwC4B,QAAAA;AAC9E,gBAAA,MAAMsD,SAAAA,GAAatF,GAAAA,CAAIsB,KAAK,CAACf,OAAO,EAAkCwB,EAAAA;AAEtE,gBAAA,IAAI,OAAOsD,YAAAA,KAAiB,QAAA,IAAYA,YAAAA,CAAaE,MAAM,GAAG,CAAA,EAAG;AAC/D,oBAAA,MAAMvD,QAAAA,GAAW,MAAMwD,qBAAAA,CAAsB3D,MAAAA,EAAQyD,SAAAA,EAAWD,YAAAA,CAAAA;AAChE,oBAAA,MAAM3D,cAAAA,CAAe,OAAA,CAAA,CAASgD,sBAAsB,CAAC7C,MAAAA,EAAQG,QAAAA,CAAAA;gBAC/D,CAAA,MAAO;oBACL,MAAMN,cAAAA,CAAe,OAAA,CAAA,CAASgD,sBAAsB,CAAC7C,MAAAA,CAAAA;AACvD,gBAAA;AACF,YAAA;AACF,QAAA,CAAA,CAAE,OAAOrB,GAAAA,EAAK;AACZG,YAAAA,MAAAA,CAAOyC,GAAG,CAACtC,KAAK,CAAC,+CAAA,EAAiDN,GAAAA,CAAAA;AACpE,QAAA;AAEAR,QAAAA,GAAAA,CAAII,IAAI,GAAG;AAAE+C,YAAAA,IAAAA,EAAM;AAAG,SAAA;AACxB,IAAA;AACF,CAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"authentication.mjs","sources":["../../../../../server/src/controllers/authentication.ts"],"sourcesContent":["import type { Context, Next } from 'koa';\nimport passport from 'koa-passport';\nimport compose from 'koa-compose';\nimport '@strapi/types';\nimport type { Data } from '@strapi/types';\nimport { errors } from '@strapi/utils';\nimport { getService } from '../utils';\nimport { emitLoginFailure, type LoginFailureReason } from '../audit-logs/auth';\nimport { USER_NOT_ACTIVE_MESSAGE } from '../services/auth';\nimport {\n REFRESH_COOKIE_NAME,\n buildCookieOptionsWithExpiry,\n buildSessionMetadataFromContext,\n getSessionManager,\n extractDeviceParams,\n generateDeviceId,\n getRefreshCookieOptions,\n resolveLogoutDeviceId,\n} from '../../../shared/utils/session-auth';\n\nimport {\n validateRegistrationInput,\n validateAdminRegistrationInput,\n validateRegistrationInfoQuery,\n validateForgotPasswordInput,\n validateResetPasswordInput,\n validateLoginSessionInput,\n} from '../validation/authentication';\n\nimport type {\n ForgotPassword,\n Login,\n Register,\n RegisterAdmin,\n RegistrationInfo,\n ResetPassword,\n} from '../../../shared/contracts/authentication';\nimport { AdminUser } from '../../../shared/contracts/shared';\n\nconst { ApplicationError, ValidationError } = errors;\n\n/**\n * Emits `admin.auth.error` without delaying the response. The account is looked up by\n * the email of the request, as the local strategy does, because passport does not pass\n * the user along with an error.\n */\nconst emitLocalLoginFailure = (ctx: Context, error: Error, reason: LoginFailureReason) => {\n const { email } = (ctx.request.body ?? {}) as { email?: unknown };\n\n const emit = (user?: { id: Data.ID; email: string } | null) =>\n emitLoginFailure(\n { strapi },\n {\n error,\n reason,\n provider: 'local',\n ...(user ? { user: { id: user.id, email: user.email } } : {}),\n }\n );\n\n // A failed lookup still emits, without the account\n Promise.resolve()\n .then(() =>\n typeof email === 'string'\n ? strapi.db\n .query('admin::user')\n .findOne({ select: ['id', 'email'], where: { email: email.toLowerCase() } })\n : null\n )\n .then(emit, () => emit());\n};\n\nexport default {\n login: compose([\n async (ctx: Context, next: Next) => {\n await validateLoginSessionInput(ctx.request.body ?? {});\n return next();\n },\n (ctx: Context, next: Next) => {\n return passport.authenticate('local', { session: false }, (err, user, info) => {\n if (err) {\n emitLocalLoginFailure(\n ctx,\n err,\n err.details?.code === 'LOGIN_NOT_ALLOWED' ? 'login_not_allowed' : 'unexpected_error'\n );\n // if this is a recognized error, allow it to bubble up to user\n if (err.details?.code === 'LOGIN_NOT_ALLOWED') {\n throw err;\n }\n\n // for all other errors throw a generic error to prevent leaking info\n return ctx.notImplemented();\n }\n\n if (!user) {\n emitLocalLoginFailure(\n ctx,\n new Error(info.message),\n info.message === USER_NOT_ACTIVE_MESSAGE ? 'account_inactive' : 'invalid_credentials'\n );\n throw new ApplicationError(info.message);\n }\n\n const query = ctx.state as Login.Request['query'];\n query.user = user;\n\n const sanitizedUser = getService('user').sanitizeUser(user);\n strapi.eventHub.emit('admin.auth.success', { user: sanitizedUser, provider: 'local' });\n\n return next();\n })(ctx, next);\n },\n async (ctx: Context) => {\n const { user } = ctx.state as { user: AdminUser };\n\n try {\n const sessionManager = getSessionManager();\n if (!sessionManager) {\n return ctx.internalServerError();\n }\n const userId = String(user.id);\n const { deviceId, rememberMe } = extractDeviceParams(ctx.request.body);\n\n const { token: refreshToken, absoluteExpiresAt } = await sessionManager(\n 'admin'\n ).generateRefreshToken(userId, deviceId, {\n type: rememberMe ? 'refresh' : 'session',\n metadata: buildSessionMetadataFromContext(ctx),\n });\n\n const cookieOptions = buildCookieOptionsWithExpiry(\n rememberMe ? 'refresh' : 'session',\n absoluteExpiresAt,\n ctx.request.secure\n );\n ctx.cookies.set(REFRESH_COOKIE_NAME, refreshToken, cookieOptions);\n\n const accessResult = await sessionManager('admin').generateAccessToken(refreshToken);\n if ('error' in accessResult) {\n return ctx.internalServerError();\n }\n\n const { token: accessToken } = accessResult;\n\n ctx.body = {\n data: {\n token: accessToken,\n accessToken,\n user: getService('user').sanitizeUser(ctx.state.user),\n },\n } satisfies Login.Response;\n } catch (error) {\n strapi.log.error('Failed to create admin refresh session', error);\n return ctx.internalServerError();\n }\n },\n ]),\n\n async registrationInfo(ctx: Context) {\n await validateRegistrationInfoQuery(ctx.request.query);\n\n const { registrationToken } = ctx.request.query as RegistrationInfo.Request['query'];\n\n const registrationInfo = await getService('user').findRegistrationInfo(registrationToken);\n\n if (!registrationInfo) {\n throw new ValidationError('Invalid registrationToken');\n }\n\n ctx.body = { data: registrationInfo } satisfies RegistrationInfo.Response;\n },\n\n async register(ctx: Context) {\n const input = ctx.request.body as Register.Request['body'];\n\n await validateRegistrationInput(input);\n\n const user = await getService('user').register(input);\n\n try {\n const sessionManager = getSessionManager();\n if (!sessionManager) {\n return ctx.internalServerError();\n }\n const userId = String(user.id);\n const { deviceId, rememberMe } = extractDeviceParams(ctx.request.body);\n\n const { token: refreshToken, absoluteExpiresAt } = await sessionManager(\n 'admin'\n ).generateRefreshToken(userId, deviceId, {\n type: rememberMe ? 'refresh' : 'session',\n metadata: buildSessionMetadataFromContext(ctx),\n });\n\n const cookieOptions = buildCookieOptionsWithExpiry(\n rememberMe ? 'refresh' : 'session',\n absoluteExpiresAt,\n ctx.request.secure\n );\n ctx.cookies.set(REFRESH_COOKIE_NAME, refreshToken, cookieOptions);\n\n const accessResult = await sessionManager('admin').generateAccessToken(refreshToken);\n if ('error' in accessResult) {\n return ctx.internalServerError();\n }\n\n const { token: accessToken } = accessResult;\n\n ctx.body = {\n data: {\n token: accessToken,\n accessToken,\n user: getService('user').sanitizeUser(user),\n },\n } satisfies Register.Response;\n } catch (error) {\n strapi.log.error('Failed to create admin refresh session during register', error);\n return ctx.internalServerError();\n }\n },\n\n async registerAdmin(ctx: Context) {\n const input = ctx.request.body as RegisterAdmin.Request['body'];\n\n await validateAdminRegistrationInput(input);\n\n const user = await getService('user').createFirstAdmin(input);\n\n strapi.telemetry.send('didCreateFirstAdmin');\n\n try {\n const sessionManager = getSessionManager();\n if (!sessionManager) {\n return ctx.internalServerError();\n }\n const userId = String(user.id);\n const { deviceId, rememberMe } = extractDeviceParams(ctx.request.body);\n\n const { token: refreshToken, absoluteExpiresAt } = await sessionManager(\n 'admin'\n ).generateRefreshToken(userId, deviceId, {\n type: rememberMe ? 'refresh' : 'session',\n metadata: buildSessionMetadataFromContext(ctx),\n });\n\n const cookieOptions = buildCookieOptionsWithExpiry(\n rememberMe ? 'refresh' : 'session',\n absoluteExpiresAt,\n ctx.request.secure\n );\n ctx.cookies.set(REFRESH_COOKIE_NAME, refreshToken, cookieOptions);\n\n const accessResult = await sessionManager('admin').generateAccessToken(refreshToken);\n if ('error' in accessResult) {\n return ctx.internalServerError();\n }\n\n const { token: accessToken } = accessResult;\n\n ctx.body = {\n data: {\n token: accessToken,\n accessToken,\n user: getService('user').sanitizeUser(user),\n },\n } satisfies RegisterAdmin.Response;\n } catch (error) {\n strapi.log.error('Failed to create admin refresh session during register-admin', error);\n return ctx.internalServerError();\n }\n },\n\n async forgotPassword(ctx: Context) {\n const input = ctx.request.body as ForgotPassword.Request['body'];\n\n await validateForgotPasswordInput(input);\n\n // Not awaited: the response must not reveal whether the email exists. The call runs\n // synchronously so a broken service still surfaces as a 500; only a rejection of the\n // returned promise is caught here, since nothing else would handle it.\n Promise.resolve(getService('auth').forgotPassword(input)).catch((error: unknown) => {\n strapi.log.error('Failed to process the forgot-password request', { error });\n });\n\n ctx.status = 204;\n },\n\n async resetPassword(ctx: Context) {\n const input = ctx.request.body as ResetPassword.Request['body'];\n\n await validateResetPasswordInput(input);\n\n const user = await getService('auth').resetPassword(input);\n\n // Issue a new admin refresh session and access token after password reset.\n try {\n const sessionManager = getSessionManager();\n if (!sessionManager) {\n return ctx.internalServerError();\n }\n\n const userId = String(user.id);\n const deviceId = generateDeviceId();\n\n // Invalidate all existing sessions before creating a new one\n await sessionManager('admin').invalidateRefreshToken(userId);\n\n const { token: refreshToken, absoluteExpiresAt } = await sessionManager(\n 'admin'\n ).generateRefreshToken(userId, deviceId, {\n type: 'session',\n metadata: buildSessionMetadataFromContext(ctx),\n });\n\n // No rememberMe flow here; expire with session by default (session cookie)\n const cookieOptions = buildCookieOptionsWithExpiry(\n 'session',\n absoluteExpiresAt,\n ctx.request.secure\n );\n ctx.cookies.set(REFRESH_COOKIE_NAME, refreshToken, cookieOptions);\n\n const accessResult = await sessionManager('admin').generateAccessToken(refreshToken);\n if ('error' in accessResult) {\n return ctx.internalServerError();\n }\n\n const { token } = accessResult;\n\n ctx.body = {\n data: {\n token,\n user: getService('user').sanitizeUser(user),\n },\n } satisfies ResetPassword.Response;\n } catch (err) {\n strapi.log.error('Failed to create admin refresh session during reset-password', err as any);\n return ctx.internalServerError();\n }\n },\n\n async accessToken(ctx: Context) {\n const refreshToken = ctx.cookies.get(REFRESH_COOKIE_NAME);\n\n if (!refreshToken) {\n return ctx.unauthorized('Missing refresh token');\n }\n\n try {\n const sessionManager = getSessionManager();\n if (!sessionManager) {\n return ctx.internalServerError();\n }\n\n // Single-use renewal: rotate on access exchange, then create access token\n // from the new refresh token\n const rotation = await sessionManager('admin').rotateRefreshToken(refreshToken);\n if ('error' in rotation) {\n return ctx.unauthorized('Invalid refresh token');\n }\n\n const result = await sessionManager('admin').generateAccessToken(rotation.token);\n if ('error' in result) {\n return ctx.unauthorized('Invalid refresh token');\n }\n\n const { token } = result;\n // Preserve session-vs-remember mode using rotation.type and rotation.absoluteExpiresAt\n const opts = buildCookieOptionsWithExpiry(\n rotation.type,\n rotation.absoluteExpiresAt,\n ctx.request.secure\n );\n\n ctx.cookies.set(REFRESH_COOKIE_NAME, rotation.token, opts);\n ctx.body = { data: { token } };\n } catch (err) {\n strapi.log.error('Failed to generate access token from refresh token', err as any);\n return ctx.internalServerError();\n }\n },\n\n async logout(ctx: Context) {\n const sanitizedUser = getService('user').sanitizeUser(ctx.state.user);\n strapi.eventHub.emit('admin.logout', { user: sanitizedUser });\n\n // Clear cookie regardless of token validity\n ctx.cookies.set(REFRESH_COOKIE_NAME, '', {\n ...getRefreshCookieOptions(ctx.request.secure),\n expires: new Date(0),\n });\n\n try {\n const sessionManager = getSessionManager();\n if (sessionManager) {\n const userId = String(ctx.state.user.id);\n const bodyDeviceId = (ctx.request.body as { deviceId?: string } | undefined)?.deviceId;\n const sessionId = (ctx.state.session as { id?: string } | undefined)?.id;\n\n if (typeof bodyDeviceId === 'string' && bodyDeviceId.length > 0) {\n const deviceId = await resolveLogoutDeviceId(userId, sessionId, bodyDeviceId);\n await sessionManager('admin').invalidateRefreshToken(userId, deviceId);\n } else {\n await sessionManager('admin').invalidateRefreshToken(userId);\n }\n }\n } catch (err) {\n strapi.log.error('Failed to revoke admin sessions during logout', err as any);\n }\n\n ctx.body = { data: {} };\n },\n};\n"],"names":["ApplicationError","ValidationError","errors","emitLocalLoginFailure","ctx","error","reason","email","request","body","emit","user","emitLoginFailure","strapi","provider","id","Promise","resolve","then","db","query","findOne","select","where","toLowerCase","login","compose","next","validateLoginSessionInput","passport","authenticate","session","err","info","details","code","notImplemented","Error","message","USER_NOT_ACTIVE_MESSAGE","state","sanitizedUser","getService","sanitizeUser","eventHub","sessionManager","getSessionManager","internalServerError","userId","String","deviceId","rememberMe","extractDeviceParams","token","refreshToken","absoluteExpiresAt","generateRefreshToken","type","metadata","buildSessionMetadataFromContext","cookieOptions","buildCookieOptionsWithExpiry","secure","cookies","set","REFRESH_COOKIE_NAME","accessResult","generateAccessToken","accessToken","data","log","registrationInfo","validateRegistrationInfoQuery","registrationToken","findRegistrationInfo","register","input","validateRegistrationInput","registerAdmin","validateAdminRegistrationInput","createFirstAdmin","telemetry","send","forgotPassword","validateForgotPasswordInput","catch","status","resetPassword","validateResetPasswordInput","generateDeviceId","invalidateRefreshToken","get","unauthorized","rotation","rotateRefreshToken","result","opts","logout","getRefreshCookieOptions","expires","Date","bodyDeviceId","sessionId","length","resolveLogoutDeviceId"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _ = require('lodash');
|
|
4
4
|
|
|
5
5
|
// visible fields for the API
|
|
6
6
|
const publicFields = [
|
|
@@ -8,7 +8,7 @@ const publicFields = [
|
|
|
8
8
|
'displayName',
|
|
9
9
|
'category'
|
|
10
10
|
];
|
|
11
|
-
const formatConditions =
|
|
11
|
+
const formatConditions = (conditions)=>Array.from(conditions ?? [], (condition)=>_.pick(condition, publicFields));
|
|
12
12
|
|
|
13
13
|
exports.formatConditions = formatConditions;
|
|
14
14
|
//# sourceMappingURL=conditions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditions.js","sources":["../../../../../../server/src/controllers/formatters/conditions.ts"],"sourcesContent":["import { pick
|
|
1
|
+
{"version":3,"file":"conditions.js","sources":["../../../../../../server/src/controllers/formatters/conditions.ts"],"sourcesContent":["import { pick } from 'lodash';\n\n// visible fields for the API\nconst publicFields = ['id', 'displayName', 'category'];\n\nconst formatConditions = (conditions: object[]) =>\n Array.from(conditions ?? [], (condition) => pick(condition, publicFields));\n\nexport { formatConditions };\n"],"names":["publicFields","formatConditions","conditions","Array","from","condition","pick"],"mappings":";;;;AAEA;AACA,MAAMA,YAAAA,GAAe;AAAC,IAAA,IAAA;AAAM,IAAA,aAAA;AAAe,IAAA;AAAW,CAAA;AAEtD,MAAMC,gBAAAA,GAAmB,CAACC,UAAAA,GACxBC,KAAAA,CAAMC,IAAI,CAACF,UAAAA,IAAc,EAAE,EAAE,CAACG,SAAAA,GAAcC,MAAAA,CAAKD,SAAAA,EAAWL,YAAAA,CAAAA;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { pick } from 'lodash';
|
|
2
2
|
|
|
3
3
|
// visible fields for the API
|
|
4
4
|
const publicFields = [
|
|
@@ -6,7 +6,7 @@ const publicFields = [
|
|
|
6
6
|
'displayName',
|
|
7
7
|
'category'
|
|
8
8
|
];
|
|
9
|
-
const formatConditions =
|
|
9
|
+
const formatConditions = (conditions)=>Array.from(conditions ?? [], (condition)=>pick(condition, publicFields));
|
|
10
10
|
|
|
11
11
|
export { formatConditions };
|
|
12
12
|
//# sourceMappingURL=conditions.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditions.mjs","sources":["../../../../../../server/src/controllers/formatters/conditions.ts"],"sourcesContent":["import { pick
|
|
1
|
+
{"version":3,"file":"conditions.mjs","sources":["../../../../../../server/src/controllers/formatters/conditions.ts"],"sourcesContent":["import { pick } from 'lodash';\n\n// visible fields for the API\nconst publicFields = ['id', 'displayName', 'category'];\n\nconst formatConditions = (conditions: object[]) =>\n Array.from(conditions ?? [], (condition) => pick(condition, publicFields));\n\nexport { formatConditions };\n"],"names":["publicFields","formatConditions","conditions","Array","from","condition","pick"],"mappings":";;AAEA;AACA,MAAMA,YAAAA,GAAe;AAAC,IAAA,IAAA;AAAM,IAAA,aAAA;AAAe,IAAA;AAAW,CAAA;AAEtD,MAAMC,gBAAAA,GAAmB,CAACC,UAAAA,GACxBC,KAAAA,CAAMC,IAAI,CAACF,UAAAA,IAAc,EAAE,EAAE,CAACG,SAAAA,GAAcC,IAAAA,CAAKD,SAAAA,EAAWL,YAAAA,CAAAA;;;;"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _ = require('lodash');
|
|
4
4
|
var runner = require('./runner.js');
|
|
5
5
|
var token = require('./token.js');
|
|
6
6
|
|
|
7
|
-
const prefixActionsName = (prefix, dict)=>
|
|
7
|
+
const prefixActionsName = (prefix, dict)=>_.mapKeys(dict, (_value, key)=>`${prefix}-${key}`);
|
|
8
8
|
var transfer = {
|
|
9
9
|
...prefixActionsName('runner', runner.default),
|
|
10
10
|
...prefixActionsName('token', token)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../../server/src/controllers/transfer/index.ts"],"sourcesContent":["import { mapKeys } from 'lodash
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../server/src/controllers/transfer/index.ts"],"sourcesContent":["import { mapKeys } from 'lodash';\nimport runner from './runner';\nimport token from './token';\n\nconst prefixActionsName = (prefix: string, dict: any) =>\n mapKeys(dict, (_value, key) => `${prefix}-${key}`);\n\nexport default {\n ...prefixActionsName('runner', runner),\n ...prefixActionsName('token', token),\n};\n"],"names":["prefixActionsName","prefix","dict","mapKeys","_value","key","runner","token"],"mappings":";;;;;;AAIA,MAAMA,iBAAAA,GAAoB,CAACC,MAAAA,EAAgBC,IAAAA,GACzCC,SAAAA,CAAQD,IAAAA,EAAM,CAACE,MAAAA,EAAQC,GAAAA,GAAQ,CAAA,EAAGJ,MAAAA,CAAO,CAAC,EAAEI,GAAAA,CAAAA,CAAK,CAAA;AAEnD,eAAe;IACb,GAAGL,iBAAAA,CAAkB,UAAUM,cAAAA,CAAO;IACtC,GAAGN,iBAAAA,CAAkB,SAASO,KAAAA;AAChC,CAAA;;;;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { mapKeys } from 'lodash
|
|
1
|
+
import { mapKeys } from 'lodash';
|
|
2
2
|
import runner from './runner.mjs';
|
|
3
3
|
import token from './token.mjs';
|
|
4
4
|
|
|
5
|
-
const prefixActionsName = (prefix, dict)=>mapKeys((key)=>`${prefix}-${key}
|
|
5
|
+
const prefixActionsName = (prefix, dict)=>mapKeys(dict, (_value, key)=>`${prefix}-${key}`);
|
|
6
6
|
var transfer = {
|
|
7
7
|
...prefixActionsName('runner', runner),
|
|
8
8
|
...prefixActionsName('token', token)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../../server/src/controllers/transfer/index.ts"],"sourcesContent":["import { mapKeys } from 'lodash
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../../server/src/controllers/transfer/index.ts"],"sourcesContent":["import { mapKeys } from 'lodash';\nimport runner from './runner';\nimport token from './token';\n\nconst prefixActionsName = (prefix: string, dict: any) =>\n mapKeys(dict, (_value, key) => `${prefix}-${key}`);\n\nexport default {\n ...prefixActionsName('runner', runner),\n ...prefixActionsName('token', token),\n};\n"],"names":["prefixActionsName","prefix","dict","mapKeys","_value","key","runner","token"],"mappings":";;;;AAIA,MAAMA,iBAAAA,GAAoB,CAACC,MAAAA,EAAgBC,IAAAA,GACzCC,OAAAA,CAAQD,IAAAA,EAAM,CAACE,MAAAA,EAAQC,GAAAA,GAAQ,CAAA,EAAGJ,MAAAA,CAAO,CAAC,EAAEI,GAAAA,CAAAA,CAAK,CAAA;AAEnD,eAAe;IACb,GAAGL,iBAAAA,CAAkB,UAAUM,MAAAA,CAAO;IACtC,GAAGN,iBAAAA,CAAkB,SAASO,KAAAA;AAChC,CAAA;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _ = require('lodash');
|
|
4
4
|
var utils = require('@strapi/utils');
|
|
5
5
|
var index = require('../../utils/index.js');
|
|
6
6
|
var token$1 = require('../../validation/transfer/token.js');
|
|
@@ -35,8 +35,8 @@ var token = {
|
|
|
35
35
|
* - having a space at the end or start of the value
|
|
36
36
|
* - having only spaces as value (so that an empty field can be caught in validation)
|
|
37
37
|
*/ const attributes = {
|
|
38
|
-
name:
|
|
39
|
-
description:
|
|
38
|
+
name: _.trim(body.name),
|
|
39
|
+
description: _.trim(body.description),
|
|
40
40
|
permissions: body.permissions,
|
|
41
41
|
lifespan: body.lifespan
|
|
42
42
|
};
|
|
@@ -61,18 +61,18 @@ var token = {
|
|
|
61
61
|
* We trim fields to avoid having issues with either:
|
|
62
62
|
* - having a space at the end or start of the value
|
|
63
63
|
* - having only spaces as value (so that an empty field can be caught in validation)
|
|
64
|
-
*/ if (
|
|
65
|
-
attributes.name =
|
|
64
|
+
*/ if (_.has(attributes, 'name')) {
|
|
65
|
+
attributes.name = _.trim(body.name);
|
|
66
66
|
}
|
|
67
|
-
if (
|
|
68
|
-
attributes.description =
|
|
67
|
+
if (_.has(attributes, 'description') || attributes.description === null) {
|
|
68
|
+
attributes.description = _.trim(body.description);
|
|
69
69
|
}
|
|
70
70
|
await validateTransferTokenUpdateInput(attributes);
|
|
71
71
|
const apiTokenExists = await tokenService.getById(id);
|
|
72
72
|
if (!apiTokenExists) {
|
|
73
73
|
return ctx.notFound('Transfer token not found');
|
|
74
74
|
}
|
|
75
|
-
if (
|
|
75
|
+
if (_.has(attributes, 'name')) {
|
|
76
76
|
const nameAlreadyTaken = await tokenService.getByName(attributes.name);
|
|
77
77
|
/**
|
|
78
78
|
* We cast the ids as string as the one coming from the ctx isn't cast
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.js","sources":["../../../../../../server/src/controllers/transfer/token.ts"],"sourcesContent":["import { Context } from 'koa';\nimport { trim, has } from 'lodash
|
|
1
|
+
{"version":3,"file":"token.js","sources":["../../../../../../server/src/controllers/transfer/token.ts"],"sourcesContent":["import { Context } from 'koa';\nimport { trim, has } from 'lodash';\n\nimport { errors, strings } from '@strapi/utils';\nimport { getService } from '../../utils';\nimport { token } from '../../validation/transfer';\n\nimport type {\n TokenCreate,\n TokenGetById,\n TokenList,\n TokenRegenerate,\n TokenRevoke,\n TokenUpdate,\n} from '../../../../shared/contracts/transfer';\n\nconst { ApplicationError } = errors;\n\nconst { validateTransferTokenCreationInput, validateTransferTokenUpdateInput } = token;\n\nexport default {\n async list(ctx: Context) {\n const transferService = getService('transfer');\n const transferTokens = await transferService.token.list();\n\n ctx.body = { data: transferTokens } satisfies TokenList.Response;\n },\n\n async getById(ctx: Context) {\n const { id } = ctx.params as TokenGetById.Params;\n const tokenService = getService('transfer').token;\n\n const transferToken = await tokenService.getById(id);\n\n if (!transferToken) {\n ctx.notFound('Transfer token not found');\n return;\n }\n\n ctx.body = { data: transferToken } satisfies TokenGetById.Response;\n },\n\n async create(ctx: Context) {\n const { body } = ctx.request as TokenCreate.Request;\n const { token: tokenService } = getService('transfer');\n\n /**\n * We trim fields to avoid having issues with either:\n * - having a space at the end or start of the value\n * - having only spaces as value (so that an empty field can be caught in validation)\n */\n const attributes = {\n name: trim(body.name),\n description: trim(body.description),\n permissions: body.permissions,\n lifespan: body.lifespan,\n };\n\n await validateTransferTokenCreationInput(attributes);\n\n const alreadyExists = await tokenService.exists({ name: attributes.name });\n if (alreadyExists) {\n throw new ApplicationError('Name already taken');\n }\n\n const transferTokens = await tokenService.create(attributes);\n\n ctx.created({ data: transferTokens } satisfies TokenCreate.Response);\n },\n\n async update(ctx: Context) {\n const { body } = ctx.request as TokenUpdate.Request;\n const { id } = ctx.params as TokenUpdate.Params;\n const { token: tokenService } = getService('transfer');\n\n const attributes = body;\n /**\n * We trim fields to avoid having issues with either:\n * - having a space at the end or start of the value\n * - having only spaces as value (so that an empty field can be caught in validation)\n */\n if (has(attributes, 'name')) {\n attributes.name = trim(body.name);\n }\n\n if (has(attributes, 'description') || attributes.description === null) {\n attributes.description = trim(body.description);\n }\n\n await validateTransferTokenUpdateInput(attributes);\n\n const apiTokenExists = await tokenService.getById(id);\n if (!apiTokenExists) {\n return ctx.notFound('Transfer token not found');\n }\n\n if (has(attributes, 'name')) {\n const nameAlreadyTaken = await tokenService.getByName(attributes.name);\n\n /**\n * We cast the ids as string as the one coming from the ctx isn't cast\n * as a Number in case it is supposed to be an integer. It remains\n * as a string. This way we avoid issues with integers in the db.\n */\n if (!!nameAlreadyTaken && !strings.isEqual(nameAlreadyTaken.id, id)) {\n throw new ApplicationError('Name already taken');\n }\n }\n\n const apiToken = await tokenService.update(id, attributes);\n\n ctx.body = { data: apiToken } satisfies TokenUpdate.Response;\n },\n\n async revoke(ctx: Context) {\n const { id } = ctx.params as TokenRevoke.Params;\n const { token: tokenService } = getService('transfer');\n\n const transferToken = await tokenService.revoke(id);\n\n ctx.deleted({ data: transferToken } satisfies TokenRevoke.Response);\n },\n\n async regenerate(ctx: Context) {\n const { id } = ctx.params as TokenRegenerate.Params;\n const { token: tokenService } = getService('transfer');\n\n const exists = await tokenService.getById(id);\n if (!exists) {\n ctx.notFound('Transfer token not found');\n return;\n }\n\n const accessToken = await tokenService.regenerate(id);\n\n ctx.created({ data: accessToken } satisfies TokenRegenerate.Response);\n },\n};\n"],"names":["ApplicationError","errors","validateTransferTokenCreationInput","validateTransferTokenUpdateInput","token","list","ctx","transferService","getService","transferTokens","body","data","getById","id","params","tokenService","transferToken","notFound","create","request","attributes","name","trim","description","permissions","lifespan","alreadyExists","exists","created","update","has","apiTokenExists","nameAlreadyTaken","getByName","strings","isEqual","apiToken","revoke","deleted","regenerate","accessToken"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { has, trim } from 'lodash
|
|
1
|
+
import { has, trim } from 'lodash';
|
|
2
2
|
import { errors, strings } from '@strapi/utils';
|
|
3
3
|
import { getService } from '../../utils/index.mjs';
|
|
4
4
|
import token$1 from '../../validation/transfer/token.mjs';
|
|
@@ -59,10 +59,10 @@ var token = {
|
|
|
59
59
|
* We trim fields to avoid having issues with either:
|
|
60
60
|
* - having a space at the end or start of the value
|
|
61
61
|
* - having only spaces as value (so that an empty field can be caught in validation)
|
|
62
|
-
*/ if (has('name'
|
|
62
|
+
*/ if (has(attributes, 'name')) {
|
|
63
63
|
attributes.name = trim(body.name);
|
|
64
64
|
}
|
|
65
|
-
if (has('description'
|
|
65
|
+
if (has(attributes, 'description') || attributes.description === null) {
|
|
66
66
|
attributes.description = trim(body.description);
|
|
67
67
|
}
|
|
68
68
|
await validateTransferTokenUpdateInput(attributes);
|
|
@@ -70,7 +70,7 @@ var token = {
|
|
|
70
70
|
if (!apiTokenExists) {
|
|
71
71
|
return ctx.notFound('Transfer token not found');
|
|
72
72
|
}
|
|
73
|
-
if (has('name'
|
|
73
|
+
if (has(attributes, 'name')) {
|
|
74
74
|
const nameAlreadyTaken = await tokenService.getByName(attributes.name);
|
|
75
75
|
/**
|
|
76
76
|
* We cast the ids as string as the one coming from the ctx isn't cast
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.mjs","sources":["../../../../../../server/src/controllers/transfer/token.ts"],"sourcesContent":["import { Context } from 'koa';\nimport { trim, has } from 'lodash
|
|
1
|
+
{"version":3,"file":"token.mjs","sources":["../../../../../../server/src/controllers/transfer/token.ts"],"sourcesContent":["import { Context } from 'koa';\nimport { trim, has } from 'lodash';\n\nimport { errors, strings } from '@strapi/utils';\nimport { getService } from '../../utils';\nimport { token } from '../../validation/transfer';\n\nimport type {\n TokenCreate,\n TokenGetById,\n TokenList,\n TokenRegenerate,\n TokenRevoke,\n TokenUpdate,\n} from '../../../../shared/contracts/transfer';\n\nconst { ApplicationError } = errors;\n\nconst { validateTransferTokenCreationInput, validateTransferTokenUpdateInput } = token;\n\nexport default {\n async list(ctx: Context) {\n const transferService = getService('transfer');\n const transferTokens = await transferService.token.list();\n\n ctx.body = { data: transferTokens } satisfies TokenList.Response;\n },\n\n async getById(ctx: Context) {\n const { id } = ctx.params as TokenGetById.Params;\n const tokenService = getService('transfer').token;\n\n const transferToken = await tokenService.getById(id);\n\n if (!transferToken) {\n ctx.notFound('Transfer token not found');\n return;\n }\n\n ctx.body = { data: transferToken } satisfies TokenGetById.Response;\n },\n\n async create(ctx: Context) {\n const { body } = ctx.request as TokenCreate.Request;\n const { token: tokenService } = getService('transfer');\n\n /**\n * We trim fields to avoid having issues with either:\n * - having a space at the end or start of the value\n * - having only spaces as value (so that an empty field can be caught in validation)\n */\n const attributes = {\n name: trim(body.name),\n description: trim(body.description),\n permissions: body.permissions,\n lifespan: body.lifespan,\n };\n\n await validateTransferTokenCreationInput(attributes);\n\n const alreadyExists = await tokenService.exists({ name: attributes.name });\n if (alreadyExists) {\n throw new ApplicationError('Name already taken');\n }\n\n const transferTokens = await tokenService.create(attributes);\n\n ctx.created({ data: transferTokens } satisfies TokenCreate.Response);\n },\n\n async update(ctx: Context) {\n const { body } = ctx.request as TokenUpdate.Request;\n const { id } = ctx.params as TokenUpdate.Params;\n const { token: tokenService } = getService('transfer');\n\n const attributes = body;\n /**\n * We trim fields to avoid having issues with either:\n * - having a space at the end or start of the value\n * - having only spaces as value (so that an empty field can be caught in validation)\n */\n if (has(attributes, 'name')) {\n attributes.name = trim(body.name);\n }\n\n if (has(attributes, 'description') || attributes.description === null) {\n attributes.description = trim(body.description);\n }\n\n await validateTransferTokenUpdateInput(attributes);\n\n const apiTokenExists = await tokenService.getById(id);\n if (!apiTokenExists) {\n return ctx.notFound('Transfer token not found');\n }\n\n if (has(attributes, 'name')) {\n const nameAlreadyTaken = await tokenService.getByName(attributes.name);\n\n /**\n * We cast the ids as string as the one coming from the ctx isn't cast\n * as a Number in case it is supposed to be an integer. It remains\n * as a string. This way we avoid issues with integers in the db.\n */\n if (!!nameAlreadyTaken && !strings.isEqual(nameAlreadyTaken.id, id)) {\n throw new ApplicationError('Name already taken');\n }\n }\n\n const apiToken = await tokenService.update(id, attributes);\n\n ctx.body = { data: apiToken } satisfies TokenUpdate.Response;\n },\n\n async revoke(ctx: Context) {\n const { id } = ctx.params as TokenRevoke.Params;\n const { token: tokenService } = getService('transfer');\n\n const transferToken = await tokenService.revoke(id);\n\n ctx.deleted({ data: transferToken } satisfies TokenRevoke.Response);\n },\n\n async regenerate(ctx: Context) {\n const { id } = ctx.params as TokenRegenerate.Params;\n const { token: tokenService } = getService('transfer');\n\n const exists = await tokenService.getById(id);\n if (!exists) {\n ctx.notFound('Transfer token not found');\n return;\n }\n\n const accessToken = await tokenService.regenerate(id);\n\n ctx.created({ data: accessToken } satisfies TokenRegenerate.Response);\n },\n};\n"],"names":["ApplicationError","errors","validateTransferTokenCreationInput","validateTransferTokenUpdateInput","token","list","ctx","transferService","getService","transferTokens","body","data","getById","id","params","tokenService","transferToken","notFound","create","request","attributes","name","trim","description","permissions","lifespan","alreadyExists","exists","created","update","has","apiTokenExists","nameAlreadyTaken","getByName","strings","isEqual","apiToken","revoke","deleted","regenerate","accessToken"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _ = require('lodash');
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Return the default attributes of a new {@link Action}
|
|
@@ -25,7 +25,7 @@ var fp = require('lodash/fp');
|
|
|
25
25
|
];
|
|
26
26
|
/**
|
|
27
27
|
* Remove unwanted attributes from an {@link Action}
|
|
28
|
-
*/ const sanitizeActionAttributes =
|
|
28
|
+
*/ const sanitizeActionAttributes = (action)=>_.pick(action, actionFields);
|
|
29
29
|
/**
|
|
30
30
|
* Create and return an identifier for an {@link CreateActionPayload}.
|
|
31
31
|
* The format is based on the action's source ({@link CreateActionPayload.pluginName} or 'application') and {@link CreateActionPayload.uid}.
|
|
@@ -44,7 +44,10 @@ const computeActionId = (attributes)=>{
|
|
|
44
44
|
};
|
|
45
45
|
/**
|
|
46
46
|
* Assign an actionId attribute to an {@link CreateActionPayload} object
|
|
47
|
-
*/ const assignActionId = (attrs)=>
|
|
47
|
+
*/ const assignActionId = (attrs)=>({
|
|
48
|
+
...attrs,
|
|
49
|
+
actionId: computeActionId(attrs)
|
|
50
|
+
});
|
|
48
51
|
/**
|
|
49
52
|
* Transform an action by adding or removing the {@link Action.subCategory} attribute
|
|
50
53
|
* @param {Action} action - The action to process
|
|
@@ -54,27 +57,26 @@ const computeActionId = (attributes)=>{
|
|
|
54
57
|
'settings',
|
|
55
58
|
'plugins'
|
|
56
59
|
].includes(action.section);
|
|
57
|
-
return shouldHaveSubCategory ?
|
|
60
|
+
return shouldHaveSubCategory ? {
|
|
61
|
+
...action,
|
|
62
|
+
subCategory: action.subCategory || 'general'
|
|
63
|
+
} : _.omit(action, 'subCategory');
|
|
58
64
|
};
|
|
59
65
|
/**
|
|
60
66
|
* Check if a property can be applied to an {@link Action}
|
|
61
|
-
*/ const appliesToProperty =
|
|
62
|
-
return
|
|
67
|
+
*/ const appliesToProperty = _.curry((property, action)=>{
|
|
68
|
+
return _.includes(_.get(action, 'options.applyToProperties'), property);
|
|
63
69
|
});
|
|
64
70
|
/**
|
|
65
71
|
* Check if an action applies to a subject
|
|
66
|
-
*/ const appliesToSubject =
|
|
67
|
-
return
|
|
72
|
+
*/ const appliesToSubject = _.curry((subject, action)=>{
|
|
73
|
+
return Array.isArray(action.subjects) && action.subjects.includes(subject);
|
|
68
74
|
});
|
|
69
75
|
/**
|
|
70
76
|
* Transform the given attributes into a domain representation of an Action
|
|
71
|
-
*/ const create =
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
assignOrOmitSubCategory, // Remove unwanted attributes from the payload
|
|
75
|
-
sanitizeActionAttributes, // Complete the action creation by adding default values for some attributes
|
|
76
|
-
fp.merge(getDefaultActionAttributes()));
|
|
77
|
-
var actionDomain = {
|
|
77
|
+
*/ const create = _.flow(// Assign the action identifier before sanitization removes the uid.
|
|
78
|
+
assignActionId, assignOrOmitSubCategory, sanitizeActionAttributes, (action)=>_.merge({}, getDefaultActionAttributes(), action));
|
|
79
|
+
var domain = {
|
|
78
80
|
actionFields,
|
|
79
81
|
appliesToProperty,
|
|
80
82
|
appliesToSubject,
|
|
@@ -86,5 +88,5 @@ var actionDomain = {
|
|
|
86
88
|
sanitizeActionAttributes
|
|
87
89
|
};
|
|
88
90
|
|
|
89
|
-
module.exports =
|
|
91
|
+
module.exports = domain;
|
|
90
92
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../../server/src/domain/action/index.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../server/src/domain/action/index.ts"],"sourcesContent":["import { pick, includes, merge, get, curry, flow, omit } from 'lodash';\nimport type { Utils } from '@strapi/types';\n\nexport interface ActionAlias {\n /**\n * The action ID to alias\n */\n actionId: string;\n\n /**\n * An optional array of subject to restrict the alias usage\n */\n subjects?: string[];\n}\n\nexport type Action = {\n /**\n * The unique identifier of the action\n */\n actionId: string;\n\n /**\n * The section linked to the action - These can be 'contentTypes' | 'plugins' | 'settings' | 'internal'\n */\n section: string;\n\n /**\n * The human readable name of an action\n */\n displayName: string;\n\n /**\n * The main category of an action\n */\n category: string;\n\n /**\n * The secondary category of an action (only for settings and plugins section)\n */\n subCategory?: string;\n\n /**\n * The plugin that provides the action\n */\n pluginName?: string;\n\n /**\n * A list of subjects on which the action can be applied\n */\n subjects?: string[];\n\n /**\n * The options of an action\n */\n options: {\n /**\n * The list of properties that can be associated with an action\n */\n applyToProperties: string[] | null;\n };\n\n /**\n * An optional array of @see {@link ActionAlias}.\n *\n * It represents the possible aliases for the current action.\n *\n * Aliases are unidirectional.\n *\n * Note: This is an internal property and probably shouldn't be used outside Strapi core features.\n * Its behavior might change at any time without notice.\n *\n * @internal\n */\n aliases?: ActionAlias[];\n};\n\n/**\n * Set of attributes used to create a new {@link Action} object\n * @typedef {Action, { uid: string }} CreateActionPayload\n */\nexport type CreateActionPayload = Utils.Intersect<\n [\n Utils.Object.PartialBy<\n // Action Id is computed from the uid value\n Omit<Action, 'actionId'>,\n // Options is filled with default values\n 'options'\n >,\n { uid: string },\n ]\n>;\n\n/**\n * Return the default attributes of a new {@link Action}\n * @return Partial<Action>\n */\nconst getDefaultActionAttributes = (): Partial<Action> => ({\n options: {\n applyToProperties: null,\n },\n});\n\n/**\n * Get the list of all the valid attributes of an {@link Action}\n */\nconst actionFields = [\n 'section',\n 'displayName',\n 'category',\n 'subCategory',\n 'pluginName',\n 'subjects',\n 'options',\n 'actionId',\n 'aliases',\n] as const;\n\n/**\n * Remove unwanted attributes from an {@link Action}\n */\nconst sanitizeActionAttributes = (action: Action | CreateActionPayload): Action =>\n pick(action, actionFields) as Action;\n\n/**\n * Create and return an identifier for an {@link CreateActionPayload}.\n * The format is based on the action's source ({@link CreateActionPayload.pluginName} or 'application') and {@link CreateActionPayload.uid}.\n * @param {CreateActionPayload} attributes\n * @return {string}\n */\n// TODO: TS - Use Common.UID\nconst computeActionId = (attributes: CreateActionPayload): string => {\n const { pluginName, uid } = attributes;\n\n if (!pluginName) {\n return `api::${uid}`;\n }\n\n if (pluginName === 'admin') {\n return `admin::${uid}`;\n }\n\n return `plugin::${pluginName}.${uid}`;\n};\n\n/**\n * Assign an actionId attribute to an {@link CreateActionPayload} object\n */\nconst assignActionId = (attrs: CreateActionPayload) => ({\n ...attrs,\n actionId: computeActionId(attrs),\n});\n\n/**\n * Transform an action by adding or removing the {@link Action.subCategory} attribute\n * @param {Action} action - The action to process\n * @return {Action}\n */\nconst assignOrOmitSubCategory = (action: Action): Action => {\n const shouldHaveSubCategory = ['settings', 'plugins'].includes(action.section);\n\n return shouldHaveSubCategory\n ? { ...action, subCategory: action.subCategory || 'general' }\n : omit(action, 'subCategory');\n};\n\n/**\n * Check if a property can be applied to an {@link Action}\n */\nconst appliesToProperty = curry((property: string, action: Action): boolean => {\n return includes(get(action, 'options.applyToProperties'), property);\n});\n\n/**\n * Check if an action applies to a subject\n */\nconst appliesToSubject = curry((subject: string, action: Action): boolean => {\n return Array.isArray(action.subjects) && action.subjects.includes(subject);\n});\n\n/**\n * Transform the given attributes into a domain representation of an Action\n */\nconst create: (payload: CreateActionPayload) => Action = flow(\n // Assign the action identifier before sanitization removes the uid.\n assignActionId,\n assignOrOmitSubCategory,\n sanitizeActionAttributes,\n (action) => merge({}, getDefaultActionAttributes(), action)\n);\n\nexport default {\n actionFields,\n appliesToProperty,\n appliesToSubject,\n assignActionId,\n assignOrOmitSubCategory,\n create,\n computeActionId,\n getDefaultActionAttributes,\n sanitizeActionAttributes,\n};\n"],"names":["getDefaultActionAttributes","options","applyToProperties","actionFields","sanitizeActionAttributes","action","pick","computeActionId","attributes","pluginName","uid","assignActionId","attrs","actionId","assignOrOmitSubCategory","shouldHaveSubCategory","includes","section","subCategory","omit","appliesToProperty","curry","property","get","appliesToSubject","subject","Array","isArray","subjects","create","flow","merge"],"mappings":";;;;AA4FA;;;IAIA,MAAMA,0BAAAA,GAA6B,KAAwB;QACzDC,OAAAA,EAAS;YACPC,iBAAAA,EAAmB;AACrB;KACF,CAAA;AAEA;;AAEC,IACD,MAAMC,YAAAA,GAAe;AACnB,IAAA,SAAA;AACA,IAAA,aAAA;AACA,IAAA,UAAA;AACA,IAAA,aAAA;AACA,IAAA,YAAA;AACA,IAAA,UAAA;AACA,IAAA,SAAA;AACA,IAAA,UAAA;AACA,IAAA;AACD,CAAA;AAED;;AAEC,IACD,MAAMC,wBAAAA,GAA2B,CAACC,MAAAA,GAChCC,OAAKD,MAAAA,EAAQF,YAAAA,CAAAA;AAEf;;;;;AAKC;AAED,MAAMI,kBAAkB,CAACC,UAAAA,GAAAA;AACvB,IAAA,MAAM,EAAEC,UAAU,EAAEC,GAAG,EAAE,GAAGF,UAAAA;AAE5B,IAAA,IAAI,CAACC,UAAAA,EAAY;QACf,OAAO,CAAC,KAAK,EAAEC,GAAAA,CAAAA,CAAK;AACtB,IAAA;AAEA,IAAA,IAAID,eAAe,OAAA,EAAS;QAC1B,OAAO,CAAC,OAAO,EAAEC,GAAAA,CAAAA,CAAK;AACxB,IAAA;AAEA,IAAA,OAAO,CAAC,QAAQ,EAAED,UAAAA,CAAW,CAAC,EAAEC,GAAAA,CAAAA,CAAK;AACvC,CAAA;AAEA;;AAEC,IACD,MAAMC,cAAAA,GAAiB,CAACC,KAAAA,IAAgC;AACtD,QAAA,GAAGA,KAAK;AACRC,QAAAA,QAAAA,EAAUN,eAAAA,CAAgBK,KAAAA;KAC5B,CAAA;AAEA;;;;IAKA,MAAME,0BAA0B,CAACT,MAAAA,GAAAA;AAC/B,IAAA,MAAMU,qBAAAA,GAAwB;AAAC,QAAA,UAAA;AAAY,QAAA;KAAU,CAACC,QAAQ,CAACX,MAAAA,CAAOY,OAAO,CAAA;AAE7E,IAAA,OAAOF,qBAAAA,GACH;AAAE,QAAA,GAAGV,MAAM;QAAEa,WAAAA,EAAab,MAAAA,CAAOa,WAAW,IAAI;AAAU,KAAA,GAC1DC,OAAKd,MAAAA,EAAQ,aAAA,CAAA;AACnB,CAAA;AAEA;;AAEC,IACD,MAAMe,iBAAAA,GAAoBC,OAAAA,CAAM,CAACC,QAAAA,EAAkBjB,MAAAA,GAAAA;IACjD,OAAOW,UAAAA,CAASO,KAAAA,CAAIlB,MAAAA,EAAQ,2BAAA,CAAA,EAA8BiB,QAAAA,CAAAA;AAC5D,CAAA,CAAA;AAEA;;AAEC,IACD,MAAME,gBAAAA,GAAmBH,OAAAA,CAAM,CAACI,OAAAA,EAAiBpB,MAAAA,GAAAA;IAC/C,OAAOqB,KAAAA,CAAMC,OAAO,CAACtB,MAAAA,CAAOuB,QAAQ,KAAKvB,MAAAA,CAAOuB,QAAQ,CAACZ,QAAQ,CAACS,OAAAA,CAAAA;AACpE,CAAA,CAAA;AAEA;;IAGA,MAAMI,MAAAA,GAAmDC,MAAAA;AAEvDnB,cAAAA,EACAG,yBACAV,wBAAAA,EACA,CAACC,SAAW0B,OAAAA,CAAM,IAAI/B,0BAAAA,EAAAA,EAA8BK,MAAAA,CAAAA,CAAAA;AAGtD,aAAe;AACbF,IAAAA,YAAAA;AACAiB,IAAAA,iBAAAA;AACAI,IAAAA,gBAAAA;AACAb,IAAAA,cAAAA;AACAG,IAAAA,uBAAAA;AACAe,IAAAA,MAAAA;AACAtB,IAAAA,eAAAA;AACAP,IAAAA,0BAAAA;AACAI,IAAAA;AACF,CAAA;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { curry, includes, get, flow, merge, omit, pick } from 'lodash';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Return the default attributes of a new {@link Action}
|
|
@@ -23,7 +23,7 @@ import { pick, curry, pipe, prop, includes, isArray, merge, set, omit } from 'lo
|
|
|
23
23
|
];
|
|
24
24
|
/**
|
|
25
25
|
* Remove unwanted attributes from an {@link Action}
|
|
26
|
-
*/ const sanitizeActionAttributes = pick(actionFields);
|
|
26
|
+
*/ const sanitizeActionAttributes = (action)=>pick(action, actionFields);
|
|
27
27
|
/**
|
|
28
28
|
* Create and return an identifier for an {@link CreateActionPayload}.
|
|
29
29
|
* The format is based on the action's source ({@link CreateActionPayload.pluginName} or 'application') and {@link CreateActionPayload.uid}.
|
|
@@ -42,7 +42,10 @@ const computeActionId = (attributes)=>{
|
|
|
42
42
|
};
|
|
43
43
|
/**
|
|
44
44
|
* Assign an actionId attribute to an {@link CreateActionPayload} object
|
|
45
|
-
*/ const assignActionId = (attrs)=>
|
|
45
|
+
*/ const assignActionId = (attrs)=>({
|
|
46
|
+
...attrs,
|
|
47
|
+
actionId: computeActionId(attrs)
|
|
48
|
+
});
|
|
46
49
|
/**
|
|
47
50
|
* Transform an action by adding or removing the {@link Action.subCategory} attribute
|
|
48
51
|
* @param {Action} action - The action to process
|
|
@@ -52,27 +55,26 @@ const computeActionId = (attributes)=>{
|
|
|
52
55
|
'settings',
|
|
53
56
|
'plugins'
|
|
54
57
|
].includes(action.section);
|
|
55
|
-
return shouldHaveSubCategory ?
|
|
58
|
+
return shouldHaveSubCategory ? {
|
|
59
|
+
...action,
|
|
60
|
+
subCategory: action.subCategory || 'general'
|
|
61
|
+
} : omit(action, 'subCategory');
|
|
56
62
|
};
|
|
57
63
|
/**
|
|
58
64
|
* Check if a property can be applied to an {@link Action}
|
|
59
65
|
*/ const appliesToProperty = curry((property, action)=>{
|
|
60
|
-
return
|
|
66
|
+
return includes(get(action, 'options.applyToProperties'), property);
|
|
61
67
|
});
|
|
62
68
|
/**
|
|
63
69
|
* Check if an action applies to a subject
|
|
64
70
|
*/ const appliesToSubject = curry((subject, action)=>{
|
|
65
|
-
return isArray(action.subjects) && includes(subject
|
|
71
|
+
return Array.isArray(action.subjects) && action.subjects.includes(subject);
|
|
66
72
|
});
|
|
67
73
|
/**
|
|
68
74
|
* Transform the given attributes into a domain representation of an Action
|
|
69
|
-
*/ const create =
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
assignOrOmitSubCategory, // Remove unwanted attributes from the payload
|
|
73
|
-
sanitizeActionAttributes, // Complete the action creation by adding default values for some attributes
|
|
74
|
-
merge(getDefaultActionAttributes()));
|
|
75
|
-
var actionDomain = {
|
|
75
|
+
*/ const create = flow(// Assign the action identifier before sanitization removes the uid.
|
|
76
|
+
assignActionId, assignOrOmitSubCategory, sanitizeActionAttributes, (action)=>merge({}, getDefaultActionAttributes(), action));
|
|
77
|
+
var domain = {
|
|
76
78
|
actionFields,
|
|
77
79
|
appliesToProperty,
|
|
78
80
|
appliesToSubject,
|
|
@@ -84,5 +86,5 @@ var actionDomain = {
|
|
|
84
86
|
sanitizeActionAttributes
|
|
85
87
|
};
|
|
86
88
|
|
|
87
|
-
export {
|
|
89
|
+
export { domain as default };
|
|
88
90
|
//# sourceMappingURL=index.mjs.map
|