@strapi/admin 5.30.0 → 5.30.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/admin/src/StrapiApp.js.map +1 -1
- package/dist/admin/admin/src/StrapiApp.mjs.map +1 -1
- package/dist/admin/admin/src/components/ContentBox.js.map +1 -1
- package/dist/admin/admin/src/components/ContentBox.mjs.map +1 -1
- package/dist/admin/admin/src/components/DescriptionComponentRenderer.js.map +1 -1
- package/dist/admin/admin/src/components/DescriptionComponentRenderer.mjs.map +1 -1
- 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/Form.js +8 -3
- package/dist/admin/admin/src/components/Form.js.map +1 -1
- package/dist/admin/admin/src/components/Form.mjs +8 -3
- package/dist/admin/admin/src/components/Form.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.js +1 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs +1 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Number.js +1 -1
- package/dist/admin/admin/src/components/FormInputs/Number.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Number.mjs +1 -1
- package/dist/admin/admin/src/components/FormInputs/Number.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Renderer.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Renderer.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Time.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Time.mjs.map +1 -1
- package/dist/admin/admin/src/components/GapDropZone.js.map +1 -1
- package/dist/admin/admin/src/components/GapDropZone.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Overview.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Overview.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.mjs.map +1 -1
- package/dist/admin/admin/src/components/Layouts/GridLayout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/GridLayout.mjs.map +1 -1
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.js +8 -4
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs +8 -4
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs.map +1 -1
- package/dist/admin/admin/src/components/NpsSurvey.js +5 -3
- package/dist/admin/admin/src/components/NpsSurvey.js.map +1 -1
- package/dist/admin/admin/src/components/NpsSurvey.mjs +5 -3
- package/dist/admin/admin/src/components/NpsSurvey.mjs.map +1 -1
- package/dist/admin/admin/src/components/PageHelpers.js.map +1 -1
- package/dist/admin/admin/src/components/PageHelpers.mjs.map +1 -1
- package/dist/admin/admin/src/components/PrivateRoute.js.map +1 -1
- package/dist/admin/admin/src/components/PrivateRoute.mjs.map +1 -1
- package/dist/admin/admin/src/components/RelativeTime.js.map +1 -1
- package/dist/admin/admin/src/components/RelativeTime.mjs.map +1 -1
- package/dist/admin/admin/src/components/ResizeIndicator.js.map +1 -1
- package/dist/admin/admin/src/components/ResizeIndicator.mjs.map +1 -1
- package/dist/admin/admin/src/components/Table.js +1 -1
- package/dist/admin/admin/src/components/Table.js.map +1 -1
- package/dist/admin/admin/src/components/Table.mjs +1 -1
- package/dist/admin/admin/src/components/Table.mjs.map +1 -1
- package/dist/admin/admin/src/components/Widgets.js.map +1 -1
- package/dist/admin/admin/src/components/Widgets.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/CustomFields.js.map +1 -1
- package/dist/admin/admin/src/core/apis/CustomFields.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/Plugin.js +0 -1
- package/dist/admin/admin/src/core/apis/Plugin.js.map +1 -1
- package/dist/admin/admin/src/core/apis/Plugin.mjs +0 -1
- package/dist/admin/admin/src/core/apis/Plugin.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/Widgets.js.map +1 -1
- package/dist/admin/admin/src/core/apis/Widgets.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/rbac.js.map +1 -1
- package/dist/admin/admin/src/core/apis/rbac.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/router.js.map +1 -1
- package/dist/admin/admin/src/core/apis/router.mjs.map +1 -1
- package/dist/admin/admin/src/features/BackButton.js.map +1 -1
- package/dist/admin/admin/src/features/BackButton.mjs.map +1 -1
- package/dist/admin/admin/src/features/Tracking.js.map +1 -1
- package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
- package/dist/admin/admin/src/features/Widgets.js.map +1 -1
- package/dist/admin/admin/src/features/Widgets.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/usePersistentState.js.map +1 -1
- package/dist/admin/admin/src/hooks/usePersistentState.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useRBAC.js.map +1 -1
- package/dist/admin/admin/src/hooks/useRBAC.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.js +2 -2
- package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.mjs +2 -2
- package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/components/NpmPackageCard.js.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/components/NpmPackageCard.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesFilters.js.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesFilters.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/components/PageHeader.js.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/components/PageHeader.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/hooks/useMarketplaceData.js.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/hooks/useMarketplaceData.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js +8 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs +9 -2
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/LifeSpanInput.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/LifeSpanInput.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js +2 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs +2 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs.map +1 -1
- 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.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/utils/files.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/utils/files.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js +9 -2
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs +9 -2
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js +9 -2
- package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs +9 -2
- package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/permissions.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/permissions.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.js +2 -0
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.mjs +2 -0
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js +9 -2
- package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs +9 -2
- package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js +3 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs +3 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/MagicLinkCE.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/MagicLinkCE.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/EditPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/EditPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js +9 -2
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs +9 -2
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs.map +1 -1
- package/dist/admin/admin/src/pages/UseCasePage.js.map +1 -1
- package/dist/admin/admin/src/pages/UseCasePage.mjs.map +1 -1
- package/dist/admin/admin/src/services/api.js +2 -1
- package/dist/admin/admin/src/services/api.js.map +1 -1
- package/dist/admin/admin/src/services/api.mjs +2 -1
- package/dist/admin/admin/src/services/api.mjs.map +1 -1
- package/dist/admin/admin/src/services/apiTokens.js.map +1 -1
- package/dist/admin/admin/src/services/apiTokens.mjs.map +1 -1
- package/dist/admin/admin/src/services/transferTokens.js.map +1 -1
- package/dist/admin/admin/src/services/transferTokens.mjs.map +1 -1
- package/dist/admin/admin/src/services/users.js.map +1 -1
- package/dist/admin/admin/src/services/users.mjs.map +1 -1
- package/dist/admin/admin/src/services/webhooks.js.map +1 -1
- package/dist/admin/admin/src/services/webhooks.mjs.map +1 -1
- package/dist/admin/admin/src/utils/cookies.js.map +1 -1
- package/dist/admin/admin/src/utils/cookies.mjs.map +1 -1
- package/dist/admin/admin/src/utils/getFetchClient.js.map +1 -1
- package/dist/admin/admin/src/utils/getFetchClient.mjs.map +1 -1
- package/dist/admin/admin/src/utils/getPrefixedId.js.map +1 -1
- package/dist/admin/admin/src/utils/getPrefixedId.mjs.map +1 -1
- package/dist/admin/admin/src/utils/rulesEngine.js.map +1 -1
- package/dist/admin/admin/src/utils/rulesEngine.mjs.map +1 -1
- package/dist/admin/admin/src/utils/urls.js.map +1 -1
- package/dist/admin/admin/src/utils/urls.mjs.map +1 -1
- package/dist/admin/admin/src/utils/users.js.map +1 -1
- package/dist/admin/admin/src/utils/users.mjs.map +1 -1
- package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.js.map +1 -1
- package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.mjs.map +1 -1
- package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.js.map +1 -1
- package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthResponse.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthResponse.mjs.map +1 -1
- 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.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.js +3 -3
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.mjs +3 -3
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE.mjs.map +1 -1
- package/dist/admin/ee/admin/src/services/ai.js +14 -1
- package/dist/admin/ee/admin/src/services/ai.js.map +1 -1
- package/dist/admin/ee/admin/src/services/ai.mjs +14 -2
- package/dist/admin/ee/admin/src/services/ai.mjs.map +1 -1
- package/dist/admin/ee/admin/src/services/auditLogs.js.map +1 -1
- package/dist/admin/ee/admin/src/services/auditLogs.mjs.map +1 -1
- package/dist/admin/ee.js +1 -0
- package/dist/admin/ee.js.map +1 -1
- package/dist/admin/ee.mjs +1 -1
- package/dist/admin/src/components/Form.d.ts +1 -1
- package/dist/admin/src/core/store/configure.d.ts +2 -2
- package/dist/admin/src/core/store/hooks.d.ts +2 -2
- package/dist/admin/src/ee.d.ts +1 -1
- package/dist/admin/src/hooks/useAdminRoles.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.d.ts +4 -4
- package/dist/admin/src/selectors.d.ts +2 -2
- package/dist/admin/src/services/admin.d.ts +6 -6
- package/dist/admin/src/services/api.d.ts +1 -1
- package/dist/admin/src/services/apiTokens.d.ts +1 -1
- package/dist/admin/src/services/auth.d.ts +13 -13
- package/dist/admin/src/services/contentApi.d.ts +1 -1
- package/dist/admin/src/services/contentManager.d.ts +1 -1
- package/dist/admin/src/services/homepage.d.ts +3 -3
- package/dist/admin/src/services/transferTokens.d.ts +1 -1
- package/dist/admin/src/services/users.d.ts +8 -8
- package/dist/admin/src/services/webhooks.d.ts +2 -2
- package/dist/admin/tests/utils.d.ts +1 -1
- package/dist/ee/admin/src/services/ai.d.ts +6 -3
- package/dist/ee/admin/src/services/auditLogs.d.ts +1 -1
- package/dist/ee/server/src/ai/containers/ai.d.ts +11 -0
- package/dist/ee/server/src/ai/containers/ai.d.ts.map +1 -0
- package/dist/ee/server/src/ai/controllers/ai.d.ts +1 -0
- package/dist/ee/server/src/ai/controllers/ai.d.ts.map +1 -1
- package/dist/ee/server/src/ai/routes/ai.d.ts.map +1 -1
- package/dist/ee/server/src/index.d.ts +1 -0
- package/dist/ee/server/src/index.d.ts.map +1 -1
- package/dist/server/ee/server/src/ai/containers/ai.js +18 -0
- package/dist/server/ee/server/src/ai/containers/ai.js.map +1 -0
- package/dist/server/ee/server/src/ai/containers/ai.mjs +16 -0
- package/dist/server/ee/server/src/ai/containers/ai.mjs.map +1 -0
- package/dist/server/ee/server/src/ai/controllers/ai.js +6 -0
- package/dist/server/ee/server/src/ai/controllers/ai.js.map +1 -1
- package/dist/server/ee/server/src/ai/controllers/ai.mjs +6 -0
- package/dist/server/ee/server/src/ai/controllers/ai.mjs.map +1 -1
- package/dist/server/ee/server/src/ai/routes/ai.js +11 -0
- package/dist/server/ee/server/src/ai/routes/ai.js.map +1 -1
- package/dist/server/ee/server/src/ai/routes/ai.mjs +11 -0
- package/dist/server/ee/server/src/ai/routes/ai.mjs.map +1 -1
- package/dist/server/ee/server/src/audit-logs/services/audit-logs.js.map +1 -1
- package/dist/server/ee/server/src/audit-logs/services/audit-logs.mjs.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication-utils/constants.js.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication-utils/constants.mjs.map +1 -1
- 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.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication.js.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication.mjs.map +1 -1
- package/dist/server/ee/server/src/controllers/user.js.map +1 -1
- package/dist/server/ee/server/src/controllers/user.mjs.map +1 -1
- package/dist/server/ee/server/src/index.js +7 -0
- package/dist/server/ee/server/src/index.js.map +1 -1
- package/dist/server/ee/server/src/index.mjs +7 -0
- package/dist/server/ee/server/src/index.mjs.map +1 -1
- package/dist/server/ee/server/src/services/auth.js.map +1 -1
- package/dist/server/ee/server/src/services/auth.mjs.map +1 -1
- package/dist/server/ee/server/src/services/passport/sso.js.map +1 -1
- package/dist/server/ee/server/src/services/passport/sso.mjs.map +1 -1
- package/dist/server/ee/server/src/utils/index.js.map +1 -1
- package/dist/server/ee/server/src/utils/index.mjs.map +1 -1
- package/dist/server/server/src/controllers/transfer/index.js.map +1 -1
- package/dist/server/server/src/controllers/transfer/index.mjs.map +1 -1
- package/dist/server/server/src/controllers/user.js +10 -0
- package/dist/server/server/src/controllers/user.js.map +1 -1
- package/dist/server/server/src/controllers/user.mjs +10 -0
- package/dist/server/server/src/controllers/user.mjs.map +1 -1
- package/dist/server/server/src/domain/action/index.js.map +1 -1
- package/dist/server/server/src/domain/action/index.mjs.map +1 -1
- package/dist/server/server/src/domain/condition/index.js.map +1 -1
- package/dist/server/server/src/domain/condition/index.mjs.map +1 -1
- package/dist/server/server/src/domain/permission/index.js.map +1 -1
- package/dist/server/server/src/domain/permission/index.mjs.map +1 -1
- package/dist/server/server/src/middlewares/rateLimit.js.map +1 -1
- package/dist/server/server/src/middlewares/rateLimit.mjs.map +1 -1
- package/dist/server/server/src/routes/serve-admin-panel.js.map +1 -1
- package/dist/server/server/src/routes/serve-admin-panel.mjs.map +1 -1
- package/dist/server/server/src/services/api-token.js.map +1 -1
- package/dist/server/server/src/services/api-token.mjs.map +1 -1
- package/dist/server/server/src/services/auth.js.map +1 -1
- package/dist/server/server/src/services/auth.mjs.map +1 -1
- package/dist/server/server/src/services/content-type.js.map +1 -1
- package/dist/server/server/src/services/content-type.mjs.map +1 -1
- package/dist/server/server/src/services/encryption.js.map +1 -1
- package/dist/server/server/src/services/encryption.mjs.map +1 -1
- package/dist/server/server/src/services/homepage.js.map +1 -1
- package/dist/server/server/src/services/homepage.mjs.map +1 -1
- 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.map +1 -1
- 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.map +1 -1
- package/dist/server/server/src/services/role.js.map +1 -1
- package/dist/server/server/src/services/role.mjs.map +1 -1
- package/dist/server/server/src/services/transfer/token.js.map +1 -1
- package/dist/server/server/src/services/transfer/token.mjs.map +1 -1
- package/dist/server/server/src/services/user.js.map +1 -1
- package/dist/server/server/src/services/user.mjs.map +1 -1
- package/dist/server/server/src/utils/index.js.map +1 -1
- package/dist/server/server/src/utils/index.mjs.map +1 -1
- package/dist/server/server/src/validation/action-provider.js.map +1 -1
- package/dist/server/server/src/validation/action-provider.mjs.map +1 -1
- package/dist/server/server/src/validation/common-functions/check-fields-are-correctly-nested.js.map +1 -1
- package/dist/server/server/src/validation/common-functions/check-fields-are-correctly-nested.mjs.map +1 -1
- package/dist/server/server/src/validation/common-validators.js.map +1 -1
- package/dist/server/server/src/validation/common-validators.mjs.map +1 -1
- package/dist/server/src/controllers/user.d.ts.map +1 -1
- package/dist/shared/contracts/ai.d.ts +16 -0
- package/dist/shared/contracts/ai.d.ts.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forms.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/utils/forms.ts"],"sourcesContent":["import isEmpty from 'lodash/isEmpty';\nimport merge from 'lodash/merge';\n\nimport { findMatchingPermission } from './permissions';\n\nimport type { GenericLayout } from './layouts';\nimport type {\n Condition,\n SettingPermission,\n ContentPermission,\n Subject,\n SubjectProperty,\n} from '../../../../../../../shared/contracts/permissions';\nimport type { Permission } from '../../../../../../../shared/contracts/shared';\n\ntype ConditionForm = Record<string, boolean>;\n\n/**\n * Creates the default condition form: { [conditionId]: false }\n */\nconst createDefaultConditionsForm = (\n conditions: Condition[],\n initialConditions: Permission['conditions'] = []\n): ConditionForm =>\n conditions.reduce<ConditionForm>((acc, current) => {\n acc[current.id] = initialConditions.indexOf(current.id) !== -1;\n\n return acc;\n }, {});\n\ninterface SubCategoryForm {\n properties: {\n enabled: boolean;\n };\n conditions: ConditionForm;\n}\n\ntype ChildrenForm = Record<\n string,\n SubCategoryForm | (Omit<SubCategoryForm, 'properties'> & PropertyForm)\n>;\n\ntype Form = Record<string, ChildrenForm>;\n\nconst createDefaultForm = <TLayout extends Omit<SettingPermission, 'category'>>(\n layout: GenericLayout<TLayout>[],\n conditions: Condition[],\n initialPermissions: Permission[] = []\n) => {\n return layout.reduce<Record<string, Form>>((acc, { categoryId, childrenForm }) => {\n const childrenDefaultForm = childrenForm.reduce<Form>((acc, current) => {\n acc[current.subCategoryId] = current.actions.reduce<ChildrenForm>((acc, current) => {\n const foundMatchingPermission = findMatchingPermission(\n initialPermissions,\n current.action,\n null\n );\n\n acc[current.action] = {\n properties: {\n enabled: foundMatchingPermission !== undefined,\n },\n conditions: createDefaultConditionsForm(\n conditions,\n foundMatchingPermission?.conditions ?? []\n ),\n };\n\n return acc;\n }, {});\n\n return acc;\n }, {});\n\n acc[categoryId] = childrenDefaultForm;\n\n return acc;\n }, {});\n};\n\ninterface PropertyChildForm extends Record<string, boolean | PropertyChildForm> {}\n\ninterface PropertyForm {\n properties: PropertyChildForm;\n}\n\n/**\n * Creates the default form for all the properties found in a content type's layout\n */\nconst createDefaultPropertiesForm = (\n properties: string[],\n subject: Subject,\n matchingPermission?: Permission\n): PropertyForm => {\n const recursivelyCreatePropertyForm = (\n { children = [] }: SubjectProperty,\n propertyValues: string[],\n prefix = ''\n ): PropertyChildForm => {\n return children.reduce<PropertyChildForm>((acc, current) => {\n if (current.children) {\n return {\n ...acc,\n [current.value]: recursivelyCreatePropertyForm(\n current,\n propertyValues,\n `${prefix}${current.value}.`\n ),\n };\n }\n\n const hasProperty = propertyValues.indexOf(`${prefix}${current.value}`) !== -1;\n\n acc[current.value] = hasProperty;\n\n return acc;\n }, {});\n };\n\n return properties.reduce<PropertyForm>(\n (acc, currentPropertyName) => {\n const foundProperty = subject.properties.find(({ value }) => value === currentPropertyName);\n\n if (foundProperty) {\n const matchingPermissionPropertyValues =\n matchingPermission?.properties[foundProperty.value] ?? [];\n\n const propertyForm = recursivelyCreatePropertyForm(\n foundProperty,\n matchingPermissionPropertyValues\n );\n\n acc.properties[currentPropertyName] = propertyForm;\n }\n\n return acc;\n },\n { properties: {} }\n );\n};\n\n/**\n * Creates the default for for a content type\n */\nconst createDefaultCTForm = (\n { subjects, actions = [] }: ContentPermission,\n conditions: Condition[],\n initialPermissions: Permission[] = []\n) => {\n return actions.reduce<Form>((defaultForm, action) => {\n type SubjectLayouts = Record<string, Subject>;\n\n const subjectLayouts = action.subjects.reduce<SubjectLayouts>((acc, current) => {\n const foundLayout = subjects.find(({ uid }) => uid === current) || null;\n\n if (foundLayout) {\n acc[current] = foundLayout;\n }\n\n return acc;\n }, {});\n\n // This can happen when an action is not related to a content type\n // for instance the D&P permission is applied only with the cts that\n // have the D&P features enabled\n if (isEmpty(subjectLayouts)) {\n return defaultForm;\n }\n\n // The object has the following shape: { [ctUID]: { [actionId]: { [property]: { enabled: false } } } }\n const contentTypesActions = Object.keys(subjectLayouts).reduce<Form>((acc, currentCTUID) => {\n const { actionId, applyToProperties } = action;\n const currentSubjectLayout = subjectLayouts[currentCTUID];\n const properties = currentSubjectLayout.properties.map(({ value }) => value);\n const doesNothaveProperty = properties.every(\n (property) => (applyToProperties || []).indexOf(property) === -1\n );\n\n const matchingPermission = findMatchingPermission(initialPermissions, actionId, currentCTUID);\n const conditionsForm = createDefaultConditionsForm(\n conditions,\n matchingPermission?.conditions ?? []\n );\n\n if (!acc[currentCTUID]) {\n acc[currentCTUID] = {};\n }\n\n if (isEmpty(applyToProperties) || doesNothaveProperty) {\n acc[currentCTUID][actionId] = {\n properties: {\n enabled: matchingPermission !== undefined,\n },\n conditions: conditionsForm,\n };\n\n return acc;\n }\n\n const propertiesForm = createDefaultPropertiesForm(\n applyToProperties,\n subjectLayouts[currentCTUID],\n matchingPermission\n );\n\n acc[currentCTUID][actionId] = { ...propertiesForm, conditions: conditionsForm };\n\n return acc;\n }, {});\n\n return merge(defaultForm, contentTypesActions);\n }, {});\n};\n\nexport { createDefaultConditionsForm, createDefaultForm, createDefaultCTForm };\nexport type { ConditionForm, Form, PropertyForm, SubCategoryForm, ChildrenForm, PropertyChildForm };\n"],"names":["createDefaultConditionsForm","conditions","initialConditions","reduce","acc","current","id","indexOf","createDefaultForm","layout","initialPermissions","categoryId","childrenForm","childrenDefaultForm","subCategoryId","actions","foundMatchingPermission","findMatchingPermission","action","properties","enabled","undefined","createDefaultPropertiesForm","subject","matchingPermission","recursivelyCreatePropertyForm","children","propertyValues","prefix","value","hasProperty","currentPropertyName","foundProperty","find","matchingPermissionPropertyValues","propertyForm","createDefaultCTForm","subjects","defaultForm","subjectLayouts","foundLayout","uid","isEmpty","contentTypesActions","Object","keys","currentCTUID","actionId","applyToProperties","currentSubjectLayout","map","doesNothaveProperty","every","property","conditionsForm","propertiesForm","merge"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"forms.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/utils/forms.ts"],"sourcesContent":["import isEmpty from 'lodash/isEmpty';\nimport merge from 'lodash/merge';\n\nimport { findMatchingPermission } from './permissions';\n\nimport type { GenericLayout } from './layouts';\nimport type {\n Condition,\n SettingPermission,\n ContentPermission,\n Subject,\n SubjectProperty,\n} from '../../../../../../../shared/contracts/permissions';\nimport type { Permission } from '../../../../../../../shared/contracts/shared';\n\ntype ConditionForm = Record<string, boolean>;\n\n/**\n * Creates the default condition form: { [conditionId]: false }\n */\nconst createDefaultConditionsForm = (\n conditions: Condition[],\n initialConditions: Permission['conditions'] = []\n): ConditionForm =>\n conditions.reduce<ConditionForm>((acc, current) => {\n acc[current.id] = initialConditions.indexOf(current.id) !== -1;\n\n return acc;\n }, {});\n\ninterface SubCategoryForm {\n properties: {\n enabled: boolean;\n };\n conditions: ConditionForm;\n}\n\ntype ChildrenForm = Record<\n string,\n SubCategoryForm | (Omit<SubCategoryForm, 'properties'> & PropertyForm)\n>;\n\ntype Form = Record<string, ChildrenForm>;\n\nconst createDefaultForm = <TLayout extends Omit<SettingPermission, 'category'>>(\n layout: GenericLayout<TLayout>[],\n conditions: Condition[],\n initialPermissions: Permission[] = []\n) => {\n return layout.reduce<Record<string, Form>>((acc, { categoryId, childrenForm }) => {\n const childrenDefaultForm = childrenForm.reduce<Form>((acc, current) => {\n acc[current.subCategoryId] = current.actions.reduce<ChildrenForm>((acc, current) => {\n const foundMatchingPermission = findMatchingPermission(\n initialPermissions,\n current.action,\n null\n );\n\n acc[current.action] = {\n properties: {\n enabled: foundMatchingPermission !== undefined,\n },\n conditions: createDefaultConditionsForm(\n conditions,\n foundMatchingPermission?.conditions ?? []\n ),\n };\n\n return acc;\n }, {});\n\n return acc;\n }, {});\n\n acc[categoryId] = childrenDefaultForm;\n\n return acc;\n }, {});\n};\n\ninterface PropertyChildForm extends Record<string, boolean | PropertyChildForm> {}\n\ninterface PropertyForm {\n properties: PropertyChildForm;\n}\n\n/**\n * Creates the default form for all the properties found in a content type's layout\n */\nconst createDefaultPropertiesForm = (\n properties: string[],\n subject: Subject,\n matchingPermission?: Permission\n): PropertyForm => {\n const recursivelyCreatePropertyForm = (\n { children = [] }: SubjectProperty,\n propertyValues: string[],\n prefix = ''\n ): PropertyChildForm => {\n return children.reduce<PropertyChildForm>((acc, current) => {\n if (current.children) {\n return {\n ...acc,\n [current.value]: recursivelyCreatePropertyForm(\n current,\n propertyValues,\n `${prefix}${current.value}.`\n ),\n };\n }\n\n const hasProperty = propertyValues.indexOf(`${prefix}${current.value}`) !== -1;\n\n acc[current.value] = hasProperty;\n\n return acc;\n }, {});\n };\n\n return properties.reduce<PropertyForm>(\n (acc, currentPropertyName) => {\n const foundProperty = subject.properties.find(({ value }) => value === currentPropertyName);\n\n if (foundProperty) {\n const matchingPermissionPropertyValues =\n matchingPermission?.properties[foundProperty.value] ?? [];\n\n const propertyForm = recursivelyCreatePropertyForm(\n foundProperty,\n matchingPermissionPropertyValues\n );\n\n acc.properties[currentPropertyName] = propertyForm;\n }\n\n return acc;\n },\n { properties: {} }\n );\n};\n\n/**\n * Creates the default for for a content type\n */\nconst createDefaultCTForm = (\n { subjects, actions = [] }: ContentPermission,\n conditions: Condition[],\n initialPermissions: Permission[] = []\n) => {\n return actions.reduce<Form>((defaultForm, action) => {\n type SubjectLayouts = Record<string, Subject>;\n\n const subjectLayouts = action.subjects.reduce<SubjectLayouts>((acc, current) => {\n const foundLayout = subjects.find(({ uid }) => uid === current) || null;\n\n if (foundLayout) {\n acc[current] = foundLayout;\n }\n\n return acc;\n }, {});\n\n // This can happen when an action is not related to a content type\n // for instance the D&P permission is applied only with the cts that\n // have the D&P features enabled\n if (isEmpty(subjectLayouts)) {\n return defaultForm;\n }\n\n // The object has the following shape: { [ctUID]: { [actionId]: { [property]: { enabled: false } } } }\n const contentTypesActions = Object.keys(subjectLayouts).reduce<Form>((acc, currentCTUID) => {\n const { actionId, applyToProperties } = action;\n const currentSubjectLayout = subjectLayouts[currentCTUID];\n const properties = currentSubjectLayout.properties.map(({ value }) => value);\n const doesNothaveProperty = properties.every(\n (property) => (applyToProperties || []).indexOf(property) === -1\n );\n\n const matchingPermission = findMatchingPermission(initialPermissions, actionId, currentCTUID);\n const conditionsForm = createDefaultConditionsForm(\n conditions,\n matchingPermission?.conditions ?? []\n );\n\n if (!acc[currentCTUID]) {\n acc[currentCTUID] = {};\n }\n\n if (isEmpty(applyToProperties) || doesNothaveProperty) {\n acc[currentCTUID][actionId] = {\n properties: {\n enabled: matchingPermission !== undefined,\n },\n conditions: conditionsForm,\n };\n\n return acc;\n }\n\n const propertiesForm = createDefaultPropertiesForm(\n applyToProperties,\n subjectLayouts[currentCTUID],\n matchingPermission\n );\n\n acc[currentCTUID][actionId] = { ...propertiesForm, conditions: conditionsForm };\n\n return acc;\n }, {});\n\n return merge(defaultForm, contentTypesActions);\n }, {});\n};\n\nexport { createDefaultConditionsForm, createDefaultForm, createDefaultCTForm };\nexport type { ConditionForm, Form, PropertyForm, SubCategoryForm, ChildrenForm, PropertyChildForm };\n"],"names":["createDefaultConditionsForm","conditions","initialConditions","reduce","acc","current","id","indexOf","createDefaultForm","layout","initialPermissions","categoryId","childrenForm","childrenDefaultForm","subCategoryId","actions","foundMatchingPermission","findMatchingPermission","action","properties","enabled","undefined","createDefaultPropertiesForm","subject","matchingPermission","recursivelyCreatePropertyForm","children","propertyValues","prefix","value","hasProperty","currentPropertyName","foundProperty","find","matchingPermissionPropertyValues","propertyForm","createDefaultCTForm","subjects","defaultForm","subjectLayouts","foundLayout","uid","isEmpty","contentTypesActions","Object","keys","currentCTUID","actionId","applyToProperties","currentSubjectLayout","map","doesNothaveProperty","every","property","conditionsForm","propertiesForm","merge"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/utils/permissions.ts"],"sourcesContent":["import { isObject } from '../../../../../utils/objects';\n\nimport { createArrayOfValues } from './createArrayOfValues';\n\nimport type { ConditionForm, Form, PropertyChildForm } from './forms';\nimport type { UpdatePermissions } from '../../../../../../../shared/contracts/roles';\nimport type { Permission } from '../../../../../../../shared/contracts/shared';\nimport type { PermissionsDataManagerContextValue } from '../hooks/usePermissionsDataManager';\n\ntype PermissionApiBody = UpdatePermissions.Request['body']['permissions'];\n\n/**\n * @description Given a users permissions array we find the first one that matches a provided subject & action\n */\nconst findMatchingPermission = (\n permissions: Permission[],\n action: string,\n subject: string | null\n) => permissions.find((perm) => perm.action === action && perm.subject === subject);\n\nconst formatPermissionsForAPI = (\n modifiedData: PermissionsDataManagerContextValue['modifiedData']\n): PermissionApiBody => {\n const pluginsPermissions = formatSettingsPermissions(modifiedData.plugins);\n const settingsPermissions = formatSettingsPermissions(modifiedData.settings);\n const collectionTypesPermissions = formatContentTypesPermissions(modifiedData.collectionTypes);\n const singleTypesPermissions = formatContentTypesPermissions(modifiedData.singleTypes);\n\n return [\n ...pluginsPermissions,\n ...settingsPermissions,\n ...collectionTypesPermissions,\n ...singleTypesPermissions,\n ];\n};\n\nconst formatSettingsPermissions = (\n settingsPermissionsObject:\n | PermissionsDataManagerContextValue['modifiedData']['plugins']\n | PermissionsDataManagerContextValue['modifiedData']['settings']\n): PermissionApiBody => {\n return Object.values(settingsPermissionsObject).reduce<PermissionApiBody>((formAcc, form) => {\n const currentCategoryPermissions = Object.values(form).reduce<PermissionApiBody>(\n (childFormAcc, childForm) => {\n const permissions = Object.entries(childForm).reduce<PermissionApiBody>(\n (\n responsesAcc,\n [\n actionName,\n {\n conditions,\n properties: { enabled },\n },\n ]\n ) => {\n if (!enabled) {\n return responsesAcc;\n }\n\n responsesAcc.push({\n action: actionName,\n subject: null,\n conditions: createConditionsArray(conditions),\n properties: {},\n });\n\n return responsesAcc;\n },\n []\n );\n\n return [...childFormAcc, ...permissions];\n },\n []\n );\n\n return [...formAcc, ...currentCategoryPermissions];\n }, []);\n};\n\nconst formatContentTypesPermissions = (contentTypesPermissions: Form): PermissionApiBody => {\n const permissions = Object.entries(contentTypesPermissions).reduce<PermissionApiBody>(\n (allPermissions, current) => {\n const [subject, currentSubjectActions] = current;\n\n const permissions = Object.entries(currentSubjectActions).reduce<PermissionApiBody>(\n (acc, current) => {\n const [actionName, permissions] = current;\n const shouldCreatePermission = createArrayOfValues(permissions).some((val) => val);\n\n if (!shouldCreatePermission) {\n return acc;\n }\n\n if (!permissions?.properties?.enabled) {\n const createdPermissionsArray = Object.entries(permissions.properties).reduce<\n PermissionApiBody[number]\n >(\n (acc, current) => {\n const [propertyName, propertyValue] = current;\n\n // @ts-expect-error – `propertyValue` can be boolean or an object, but we don't account for it...\n acc.properties[propertyName] = createPropertyArray(propertyValue);\n\n return acc;\n },\n {\n action: actionName,\n subject,\n conditions: createConditionsArray(permissions.conditions),\n properties: {},\n }\n );\n\n return [...acc, createdPermissionsArray];\n }\n\n if (!permissions.properties.enabled) {\n return acc;\n }\n\n acc.push({\n action: actionName,\n subject,\n properties: {},\n conditions: createConditionsArray(permissions.conditions),\n });\n\n return acc;\n },\n []\n );\n\n return [...allPermissions, ...permissions];\n },\n []\n );\n\n return permissions;\n};\n\nconst createPropertyArray = (propertyValue: PropertyChildForm, prefix = ''): string[] => {\n return Object.entries(propertyValue).reduce<string[]>((acc, current) => {\n const [name, value] = current;\n\n if (isObject(value)) {\n return [...acc, ...createPropertyArray(value, `${prefix}${name}.`)];\n }\n\n if (value && !isObject(value)) {\n acc.push(`${prefix}${name}`);\n }\n\n return acc;\n }, []);\n};\n\nconst createConditionsArray = (conditions: ConditionForm) =>\n Object.entries(conditions)\n .filter(([, conditionValue]) => {\n return conditionValue;\n })\n .map(([conditionName]) => conditionName);\n\nexport { findMatchingPermission, formatPermissionsForAPI };\n"],"names":["findMatchingPermission","permissions","action","subject","find","perm","formatPermissionsForAPI","modifiedData","pluginsPermissions","formatSettingsPermissions","plugins","settingsPermissions","settings","collectionTypesPermissions","formatContentTypesPermissions","collectionTypes","singleTypesPermissions","singleTypes","settingsPermissionsObject","Object","values","reduce","formAcc","form","currentCategoryPermissions","childFormAcc","childForm","entries","responsesAcc","actionName","conditions","properties","enabled","push","createConditionsArray","contentTypesPermissions","allPermissions","current","currentSubjectActions","acc","shouldCreatePermission","createArrayOfValues","some","val","createdPermissionsArray","propertyName","propertyValue","createPropertyArray","prefix","name","value","isObject","filter","conditionValue","map","conditionName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"permissions.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/utils/permissions.ts"],"sourcesContent":["import { isObject } from '../../../../../utils/objects';\n\nimport { createArrayOfValues } from './createArrayOfValues';\n\nimport type { ConditionForm, Form, PropertyChildForm } from './forms';\nimport type { UpdatePermissions } from '../../../../../../../shared/contracts/roles';\nimport type { Permission } from '../../../../../../../shared/contracts/shared';\nimport type { PermissionsDataManagerContextValue } from '../hooks/usePermissionsDataManager';\n\ntype PermissionApiBody = UpdatePermissions.Request['body']['permissions'];\n\n/**\n * @description Given a users permissions array we find the first one that matches a provided subject & action\n */\nconst findMatchingPermission = (\n permissions: Permission[],\n action: string,\n subject: string | null\n) => permissions.find((perm) => perm.action === action && perm.subject === subject);\n\nconst formatPermissionsForAPI = (\n modifiedData: PermissionsDataManagerContextValue['modifiedData']\n): PermissionApiBody => {\n const pluginsPermissions = formatSettingsPermissions(modifiedData.plugins);\n const settingsPermissions = formatSettingsPermissions(modifiedData.settings);\n const collectionTypesPermissions = formatContentTypesPermissions(modifiedData.collectionTypes);\n const singleTypesPermissions = formatContentTypesPermissions(modifiedData.singleTypes);\n\n return [\n ...pluginsPermissions,\n ...settingsPermissions,\n ...collectionTypesPermissions,\n ...singleTypesPermissions,\n ];\n};\n\nconst formatSettingsPermissions = (\n settingsPermissionsObject:\n | PermissionsDataManagerContextValue['modifiedData']['plugins']\n | PermissionsDataManagerContextValue['modifiedData']['settings']\n): PermissionApiBody => {\n return Object.values(settingsPermissionsObject).reduce<PermissionApiBody>((formAcc, form) => {\n const currentCategoryPermissions = Object.values(form).reduce<PermissionApiBody>(\n (childFormAcc, childForm) => {\n const permissions = Object.entries(childForm).reduce<PermissionApiBody>(\n (\n responsesAcc,\n [\n actionName,\n {\n conditions,\n properties: { enabled },\n },\n ]\n ) => {\n if (!enabled) {\n return responsesAcc;\n }\n\n responsesAcc.push({\n action: actionName,\n subject: null,\n conditions: createConditionsArray(conditions),\n properties: {},\n });\n\n return responsesAcc;\n },\n []\n );\n\n return [...childFormAcc, ...permissions];\n },\n []\n );\n\n return [...formAcc, ...currentCategoryPermissions];\n }, []);\n};\n\nconst formatContentTypesPermissions = (contentTypesPermissions: Form): PermissionApiBody => {\n const permissions = Object.entries(contentTypesPermissions).reduce<PermissionApiBody>(\n (allPermissions, current) => {\n const [subject, currentSubjectActions] = current;\n\n const permissions = Object.entries(currentSubjectActions).reduce<PermissionApiBody>(\n (acc, current) => {\n const [actionName, permissions] = current;\n const shouldCreatePermission = createArrayOfValues(permissions).some((val) => val);\n\n if (!shouldCreatePermission) {\n return acc;\n }\n\n if (!permissions?.properties?.enabled) {\n const createdPermissionsArray = Object.entries(permissions.properties).reduce<\n PermissionApiBody[number]\n >(\n (acc, current) => {\n const [propertyName, propertyValue] = current;\n\n // @ts-expect-error – `propertyValue` can be boolean or an object, but we don't account for it...\n acc.properties[propertyName] = createPropertyArray(propertyValue);\n\n return acc;\n },\n {\n action: actionName,\n subject,\n conditions: createConditionsArray(permissions.conditions),\n properties: {},\n }\n );\n\n return [...acc, createdPermissionsArray];\n }\n\n if (!permissions.properties.enabled) {\n return acc;\n }\n\n acc.push({\n action: actionName,\n subject,\n properties: {},\n conditions: createConditionsArray(permissions.conditions),\n });\n\n return acc;\n },\n []\n );\n\n return [...allPermissions, ...permissions];\n },\n []\n );\n\n return permissions;\n};\n\nconst createPropertyArray = (propertyValue: PropertyChildForm, prefix = ''): string[] => {\n return Object.entries(propertyValue).reduce<string[]>((acc, current) => {\n const [name, value] = current;\n\n if (isObject(value)) {\n return [...acc, ...createPropertyArray(value, `${prefix}${name}.`)];\n }\n\n if (value && !isObject(value)) {\n acc.push(`${prefix}${name}`);\n }\n\n return acc;\n }, []);\n};\n\nconst createConditionsArray = (conditions: ConditionForm) =>\n Object.entries(conditions)\n .filter(([, conditionValue]) => {\n return conditionValue;\n })\n .map(([conditionName]) => conditionName);\n\nexport { findMatchingPermission, formatPermissionsForAPI };\n"],"names":["findMatchingPermission","permissions","action","subject","find","perm","formatPermissionsForAPI","modifiedData","pluginsPermissions","formatSettingsPermissions","plugins","settingsPermissions","settings","collectionTypesPermissions","formatContentTypesPermissions","collectionTypes","singleTypesPermissions","singleTypes","settingsPermissionsObject","Object","values","reduce","formAcc","form","currentCategoryPermissions","childFormAcc","childForm","entries","responsesAcc","actionName","conditions","properties","enabled","push","createConditionsArray","contentTypesPermissions","allPermissions","current","currentSubjectActions","acc","shouldCreatePermission","createArrayOfValues","some","val","createdPermissionsArray","propertyName","propertyValue","createPropertyArray","prefix","name","value","isObject","filter","conditionValue","map","conditionName"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/utils/permissions.ts"],"sourcesContent":["import { isObject } from '../../../../../utils/objects';\n\nimport { createArrayOfValues } from './createArrayOfValues';\n\nimport type { ConditionForm, Form, PropertyChildForm } from './forms';\nimport type { UpdatePermissions } from '../../../../../../../shared/contracts/roles';\nimport type { Permission } from '../../../../../../../shared/contracts/shared';\nimport type { PermissionsDataManagerContextValue } from '../hooks/usePermissionsDataManager';\n\ntype PermissionApiBody = UpdatePermissions.Request['body']['permissions'];\n\n/**\n * @description Given a users permissions array we find the first one that matches a provided subject & action\n */\nconst findMatchingPermission = (\n permissions: Permission[],\n action: string,\n subject: string | null\n) => permissions.find((perm) => perm.action === action && perm.subject === subject);\n\nconst formatPermissionsForAPI = (\n modifiedData: PermissionsDataManagerContextValue['modifiedData']\n): PermissionApiBody => {\n const pluginsPermissions = formatSettingsPermissions(modifiedData.plugins);\n const settingsPermissions = formatSettingsPermissions(modifiedData.settings);\n const collectionTypesPermissions = formatContentTypesPermissions(modifiedData.collectionTypes);\n const singleTypesPermissions = formatContentTypesPermissions(modifiedData.singleTypes);\n\n return [\n ...pluginsPermissions,\n ...settingsPermissions,\n ...collectionTypesPermissions,\n ...singleTypesPermissions,\n ];\n};\n\nconst formatSettingsPermissions = (\n settingsPermissionsObject:\n | PermissionsDataManagerContextValue['modifiedData']['plugins']\n | PermissionsDataManagerContextValue['modifiedData']['settings']\n): PermissionApiBody => {\n return Object.values(settingsPermissionsObject).reduce<PermissionApiBody>((formAcc, form) => {\n const currentCategoryPermissions = Object.values(form).reduce<PermissionApiBody>(\n (childFormAcc, childForm) => {\n const permissions = Object.entries(childForm).reduce<PermissionApiBody>(\n (\n responsesAcc,\n [\n actionName,\n {\n conditions,\n properties: { enabled },\n },\n ]\n ) => {\n if (!enabled) {\n return responsesAcc;\n }\n\n responsesAcc.push({\n action: actionName,\n subject: null,\n conditions: createConditionsArray(conditions),\n properties: {},\n });\n\n return responsesAcc;\n },\n []\n );\n\n return [...childFormAcc, ...permissions];\n },\n []\n );\n\n return [...formAcc, ...currentCategoryPermissions];\n }, []);\n};\n\nconst formatContentTypesPermissions = (contentTypesPermissions: Form): PermissionApiBody => {\n const permissions = Object.entries(contentTypesPermissions).reduce<PermissionApiBody>(\n (allPermissions, current) => {\n const [subject, currentSubjectActions] = current;\n\n const permissions = Object.entries(currentSubjectActions).reduce<PermissionApiBody>(\n (acc, current) => {\n const [actionName, permissions] = current;\n const shouldCreatePermission = createArrayOfValues(permissions).some((val) => val);\n\n if (!shouldCreatePermission) {\n return acc;\n }\n\n if (!permissions?.properties?.enabled) {\n const createdPermissionsArray = Object.entries(permissions.properties).reduce<\n PermissionApiBody[number]\n >(\n (acc, current) => {\n const [propertyName, propertyValue] = current;\n\n // @ts-expect-error – `propertyValue` can be boolean or an object, but we don't account for it...\n acc.properties[propertyName] = createPropertyArray(propertyValue);\n\n return acc;\n },\n {\n action: actionName,\n subject,\n conditions: createConditionsArray(permissions.conditions),\n properties: {},\n }\n );\n\n return [...acc, createdPermissionsArray];\n }\n\n if (!permissions.properties.enabled) {\n return acc;\n }\n\n acc.push({\n action: actionName,\n subject,\n properties: {},\n conditions: createConditionsArray(permissions.conditions),\n });\n\n return acc;\n },\n []\n );\n\n return [...allPermissions, ...permissions];\n },\n []\n );\n\n return permissions;\n};\n\nconst createPropertyArray = (propertyValue: PropertyChildForm, prefix = ''): string[] => {\n return Object.entries(propertyValue).reduce<string[]>((acc, current) => {\n const [name, value] = current;\n\n if (isObject(value)) {\n return [...acc, ...createPropertyArray(value, `${prefix}${name}.`)];\n }\n\n if (value && !isObject(value)) {\n acc.push(`${prefix}${name}`);\n }\n\n return acc;\n }, []);\n};\n\nconst createConditionsArray = (conditions: ConditionForm) =>\n Object.entries(conditions)\n .filter(([, conditionValue]) => {\n return conditionValue;\n })\n .map(([conditionName]) => conditionName);\n\nexport { findMatchingPermission, formatPermissionsForAPI };\n"],"names":["findMatchingPermission","permissions","action","subject","find","perm","formatPermissionsForAPI","modifiedData","pluginsPermissions","formatSettingsPermissions","plugins","settingsPermissions","settings","collectionTypesPermissions","formatContentTypesPermissions","collectionTypes","singleTypesPermissions","singleTypes","settingsPermissionsObject","Object","values","reduce","formAcc","form","currentCategoryPermissions","childFormAcc","childForm","entries","responsesAcc","actionName","conditions","properties","enabled","push","createConditionsArray","contentTypesPermissions","allPermissions","current","currentSubjectActions","acc","shouldCreatePermission","createArrayOfValues","some","val","createdPermissionsArray","propertyName","propertyValue","createPropertyArray","prefix","name","value","isObject","filter","conditionValue","map","conditionName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"permissions.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/utils/permissions.ts"],"sourcesContent":["import { isObject } from '../../../../../utils/objects';\n\nimport { createArrayOfValues } from './createArrayOfValues';\n\nimport type { ConditionForm, Form, PropertyChildForm } from './forms';\nimport type { UpdatePermissions } from '../../../../../../../shared/contracts/roles';\nimport type { Permission } from '../../../../../../../shared/contracts/shared';\nimport type { PermissionsDataManagerContextValue } from '../hooks/usePermissionsDataManager';\n\ntype PermissionApiBody = UpdatePermissions.Request['body']['permissions'];\n\n/**\n * @description Given a users permissions array we find the first one that matches a provided subject & action\n */\nconst findMatchingPermission = (\n permissions: Permission[],\n action: string,\n subject: string | null\n) => permissions.find((perm) => perm.action === action && perm.subject === subject);\n\nconst formatPermissionsForAPI = (\n modifiedData: PermissionsDataManagerContextValue['modifiedData']\n): PermissionApiBody => {\n const pluginsPermissions = formatSettingsPermissions(modifiedData.plugins);\n const settingsPermissions = formatSettingsPermissions(modifiedData.settings);\n const collectionTypesPermissions = formatContentTypesPermissions(modifiedData.collectionTypes);\n const singleTypesPermissions = formatContentTypesPermissions(modifiedData.singleTypes);\n\n return [\n ...pluginsPermissions,\n ...settingsPermissions,\n ...collectionTypesPermissions,\n ...singleTypesPermissions,\n ];\n};\n\nconst formatSettingsPermissions = (\n settingsPermissionsObject:\n | PermissionsDataManagerContextValue['modifiedData']['plugins']\n | PermissionsDataManagerContextValue['modifiedData']['settings']\n): PermissionApiBody => {\n return Object.values(settingsPermissionsObject).reduce<PermissionApiBody>((formAcc, form) => {\n const currentCategoryPermissions = Object.values(form).reduce<PermissionApiBody>(\n (childFormAcc, childForm) => {\n const permissions = Object.entries(childForm).reduce<PermissionApiBody>(\n (\n responsesAcc,\n [\n actionName,\n {\n conditions,\n properties: { enabled },\n },\n ]\n ) => {\n if (!enabled) {\n return responsesAcc;\n }\n\n responsesAcc.push({\n action: actionName,\n subject: null,\n conditions: createConditionsArray(conditions),\n properties: {},\n });\n\n return responsesAcc;\n },\n []\n );\n\n return [...childFormAcc, ...permissions];\n },\n []\n );\n\n return [...formAcc, ...currentCategoryPermissions];\n }, []);\n};\n\nconst formatContentTypesPermissions = (contentTypesPermissions: Form): PermissionApiBody => {\n const permissions = Object.entries(contentTypesPermissions).reduce<PermissionApiBody>(\n (allPermissions, current) => {\n const [subject, currentSubjectActions] = current;\n\n const permissions = Object.entries(currentSubjectActions).reduce<PermissionApiBody>(\n (acc, current) => {\n const [actionName, permissions] = current;\n const shouldCreatePermission = createArrayOfValues(permissions).some((val) => val);\n\n if (!shouldCreatePermission) {\n return acc;\n }\n\n if (!permissions?.properties?.enabled) {\n const createdPermissionsArray = Object.entries(permissions.properties).reduce<\n PermissionApiBody[number]\n >(\n (acc, current) => {\n const [propertyName, propertyValue] = current;\n\n // @ts-expect-error – `propertyValue` can be boolean or an object, but we don't account for it...\n acc.properties[propertyName] = createPropertyArray(propertyValue);\n\n return acc;\n },\n {\n action: actionName,\n subject,\n conditions: createConditionsArray(permissions.conditions),\n properties: {},\n }\n );\n\n return [...acc, createdPermissionsArray];\n }\n\n if (!permissions.properties.enabled) {\n return acc;\n }\n\n acc.push({\n action: actionName,\n subject,\n properties: {},\n conditions: createConditionsArray(permissions.conditions),\n });\n\n return acc;\n },\n []\n );\n\n return [...allPermissions, ...permissions];\n },\n []\n );\n\n return permissions;\n};\n\nconst createPropertyArray = (propertyValue: PropertyChildForm, prefix = ''): string[] => {\n return Object.entries(propertyValue).reduce<string[]>((acc, current) => {\n const [name, value] = current;\n\n if (isObject(value)) {\n return [...acc, ...createPropertyArray(value, `${prefix}${name}.`)];\n }\n\n if (value && !isObject(value)) {\n acc.push(`${prefix}${name}`);\n }\n\n return acc;\n }, []);\n};\n\nconst createConditionsArray = (conditions: ConditionForm) =>\n Object.entries(conditions)\n .filter(([, conditionValue]) => {\n return conditionValue;\n })\n .map(([conditionName]) => conditionName);\n\nexport { findMatchingPermission, formatPermissionsForAPI };\n"],"names":["findMatchingPermission","permissions","action","subject","find","perm","formatPermissionsForAPI","modifiedData","pluginsPermissions","formatSettingsPermissions","plugins","settingsPermissions","settings","collectionTypesPermissions","formatContentTypesPermissions","collectionTypes","singleTypesPermissions","singleTypes","settingsPermissionsObject","Object","values","reduce","formAcc","form","currentCategoryPermissions","childFormAcc","childForm","entries","responsesAcc","actionName","conditions","properties","enabled","push","createConditionsArray","contentTypesPermissions","allPermissions","current","currentSubjectActions","acc","shouldCreatePermission","createArrayOfValues","some","val","createdPermissionsArray","propertyName","propertyValue","createPropertyArray","prefix","name","value","isObject","filter","conditionValue","map","conditionName"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditView.js","sources":["../../../../../../../../admin/src/pages/Settings/pages/TransferTokens/EditView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Flex, Grid, Typography } from '@strapi/design-system';\nimport { Formik, Form, FormikErrors, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useNavigate, useMatch } from 'react-router-dom';\nimport * as yup from 'yup';\n\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport {\n useCreateTransferTokenMutation,\n useGetTransferTokenQuery,\n useUpdateTransferTokenMutation,\n} from '../../../../services/transferTokens';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\nimport { TRANSFER_TOKEN_TYPE } from '../../components/Tokens/constants';\nimport { FormHead } from '../../components/Tokens/FormHead';\nimport { LifeSpanInput } from '../../components/Tokens/LifeSpanInput';\nimport { TokenBox } from '../../components/Tokens/TokenBox';\nimport { TokenDescription } from '../../components/Tokens/TokenDescription';\nimport { TokenName } from '../../components/Tokens/TokenName';\nimport { TokenTypeSelect } from '../../components/Tokens/TokenTypeSelect';\n\nimport type {\n TransferToken,\n SanitizedTransferToken,\n} from '../../../../../../shared/contracts/transfer';\n\nconst schema = yup.object().shape({\n name: yup.string().max(100).required(translatedErrors.required.id),\n description: yup.string().nullable(),\n lifespan: yup.number().integer().min(0).nullable().defined(translatedErrors.required.id),\n permissions: yup.string().required(translatedErrors.required.id),\n});\n\n/* -------------------------------------------------------------------------------------------------\n * EditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst EditView = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const navigate = useNavigate();\n const { state: locationState } = useLocation();\n const [transferToken, setTransferToken] = React.useState<\n TransferToken | SanitizedTransferToken | null\n >(\n locationState && 'accessKey' in locationState.transferToken\n ? {\n ...locationState.transferToken,\n }\n : null\n );\n const { trackUsage } = useTracking();\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens']\n );\n const {\n allowedActions: { canCreate, canUpdate, canRegenerate },\n } = useRBAC(permissions);\n const match = useMatch('/settings/transfer-tokens/:id');\n\n const id = match?.params?.id;\n const isCreating = id === 'create';\n\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n React.useEffect(() => {\n trackUsage(isCreating ? 'didAddTokenFromList' : 'didEditTokenFromList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n }, [isCreating, trackUsage]);\n\n const { data, error } = useGetTransferTokenQuery(id!, {\n skip: isCreating || transferToken !== null || !id,\n });\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n React.useEffect(() => {\n if (data) {\n setTransferToken(data);\n }\n }, [data]);\n\n const [createToken] = useCreateTransferTokenMutation();\n const [updateToken] = useUpdateTransferTokenMutation();\n\n const handleSubmit = async (body: FormValues, formik: FormikHelpers<FormValues>) => {\n trackUsage(isCreating ? 'willCreateToken' : 'willEditToken', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n\n const permissions = body.permissions.split('-');\n\n const isPermissionsTransferPermission = (\n permission: string[]\n ): permission is Array<'push' | 'pull'> => {\n if (permission.length === 1) {\n return permission[0] === 'push' || permission[0] === 'pull';\n }\n\n return permission[0] === 'push' && permission[1] === 'pull';\n };\n\n // this type-guard is necessary to satisfy the type for `permissions` in the request body,\n // because String.split returns stringp[]\n if (isPermissionsTransferPermission(permissions)) {\n try {\n if (isCreating) {\n const res = await createToken({\n ...body,\n // lifespan must be \"null\" for unlimited (0 would mean instantly expired and isn't accepted)\n lifespan:\n body?.lifespan && body.lifespan !== '0'\n ? parseInt(body.lifespan.toString(), 10)\n : null,\n permissions,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n setTransferToken(res.data);\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'notification.success.transfertokencreated',\n defaultMessage: 'Transfer Token successfully created',\n }),\n });\n\n trackUsage('didCreateToken', {\n type: transferToken?.permissions,\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n\n navigate(`../transfer-tokens/${res.data.id.toString()}`, {\n replace: true,\n state: { transferToken: res.data },\n });\n } else {\n const res = await updateToken({\n id: id!,\n name: body.name,\n description: body.description,\n permissions,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n setTransferToken(res.data);\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'notification.success.transfertokenedited',\n defaultMessage: 'Transfer Token successfully edited',\n }),\n });\n\n trackUsage('didEditToken', {\n type: transferToken?.permissions,\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n }\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n }),\n });\n }\n }\n };\n\n const canEditInputs = (canUpdate && !isCreating) || (canCreate && isCreating);\n const isLoading = !isCreating && !transferToken;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Transfer Tokens',\n }\n )}\n </Page.Title>\n <Formik\n validationSchema={schema}\n validateOnChange={false}\n initialValues={\n {\n name: transferToken?.name || '',\n description: transferToken?.description || '',\n lifespan: transferToken?.lifespan || null,\n /**\n * We need to cast the permissions to satisfy the type for `permissions`\n * in the request body incase we don't have a transferToken and instead\n * use an empty string.\n */\n permissions: (transferToken?.permissions.join('-') ?? '') as FormValues['permissions'],\n } satisfies FormValues\n }\n enableReinitialize\n onSubmit={(body, actions) => handleSubmit(body, actions)}\n >\n {({ errors, handleChange, isSubmitting, values }) => {\n return (\n <Form>\n <FormHead\n title={{\n id: 'Settings.transferTokens.createPage.title',\n defaultMessage: 'TokenCreate Transfer Token',\n }}\n token={transferToken}\n setToken={setTransferToken}\n canShowToken={false}\n canEditInputs={canEditInputs}\n canRegenerate={canRegenerate}\n isSubmitting={isSubmitting}\n regenerateUrl=\"/admin/transfer/tokens/\"\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {transferToken &&\n Boolean(transferToken?.name) &&\n 'accessKey' in transferToken && (\n <TokenBox token={transferToken.accessKey} tokenType={TRANSFER_TOKEN_TYPE} />\n )}\n <FormTransferTokenContainer\n errors={errors}\n onChange={handleChange}\n canEditInputs={canEditInputs}\n isCreating={isCreating}\n values={values}\n transferToken={transferToken}\n />\n </Flex>\n </Layouts.Content>\n </Form>\n );\n }}\n </Formik>\n </Page.Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedEditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedEditView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens'].read\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditView />\n </Page.Protect>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * FormTransferTokenContainer\n * -----------------------------------------------------------------------------------------------*/\n\ninterface FormValues extends Pick<TransferToken, 'description' | 'name' | 'lifespan'> {\n permissions: Extract<TransferToken['permissions'][number], string>;\n}\n\ninterface FormTransferTokenContainerProps {\n errors: FormikErrors<FormValues>;\n onChange: ({ target: { name, value } }: { target: { name: string; value: string } }) => void;\n canEditInputs: boolean;\n values: FormValues;\n isCreating: boolean;\n transferToken: Partial<TransferToken> | null;\n}\n\nconst FormTransferTokenContainer = ({\n errors = {},\n onChange,\n canEditInputs,\n isCreating,\n values,\n transferToken = {},\n}: FormTransferTokenContainerProps) => {\n const { formatMessage } = useIntl();\n\n const typeOptions = [\n {\n value: 'push',\n label: {\n id: 'Settings.transferTokens.types.push',\n defaultMessage: 'Push',\n },\n },\n {\n value: 'pull',\n label: {\n id: 'Settings.transferTokens.types.pull',\n defaultMessage: 'Pull',\n },\n },\n {\n value: 'push-pull',\n label: {\n id: 'Settings.transferTokens.types.push-pull',\n defaultMessage: 'Full Access',\n },\n },\n ];\n\n return (\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n <Grid.Root gap={5}>\n <Grid.Item key=\"name\" col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <TokenName\n error={errors['name']}\n value={values['name']}\n canEditInputs={canEditInputs}\n onChange={onChange}\n />\n </Grid.Item>\n <Grid.Item key=\"description\" col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <TokenDescription\n error={errors['description']}\n value={values['description']}\n canEditInputs={canEditInputs}\n onChange={onChange}\n />\n </Grid.Item>\n <Grid.Item key=\"lifespan\" col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <LifeSpanInput\n isCreating={isCreating}\n error={errors['lifespan']}\n value={values['lifespan']}\n onChange={onChange}\n token={transferToken}\n />\n </Grid.Item>\n <Grid.Item key=\"permissions\" col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <TokenTypeSelect\n name=\"permissions\"\n value={values['permissions']}\n error={errors['permissions']}\n label={{\n id: 'Settings.tokens.form.type',\n defaultMessage: 'Token type',\n }}\n // @ts-expect-error – DS Select passes number | string, will be fixed in V2\n onChange={(value: string) => {\n onChange({ target: { name: 'permissions', value } });\n }}\n options={typeOptions}\n canEditInputs={canEditInputs}\n />\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n );\n};\n\nexport { EditView, ProtectedEditView };\n"],"names":["schema","yup","object","shape","name","string","max","required","translatedErrors","id","description","nullable","lifespan","number","integer","min","defined","permissions","EditView","formatMessage","useIntl","toggleNotification","useNotification","navigate","useNavigate","state","locationState","useLocation","transferToken","setTransferToken","React","useState","trackUsage","useTracking","useTypedSelector","admin_app","settings","allowedActions","canCreate","canUpdate","canRegenerate","useRBAC","match","useMatch","params","isCreating","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","useEffect","tokenType","TRANSFER_TOKEN_TYPE","data","error","useGetTransferTokenQuery","skip","type","message","createToken","useCreateTransferTokenMutation","updateToken","useUpdateTransferTokenMutation","handleSubmit","body","formik","split","isPermissionsTransferPermission","permission","length","res","parseInt","toString","isBaseQueryError","setErrors","defaultMessage","replace","err","canEditInputs","isLoading","_jsx","Page","Loading","_jsxs","Main","Title","Formik","validationSchema","validateOnChange","initialValues","join","enableReinitialize","onSubmit","actions","errors","handleChange","isSubmitting","values","Form","FormHead","title","token","setToken","canShowToken","regenerateUrl","Layouts","Content","Flex","direction","alignItems","gap","Boolean","TokenBox","accessKey","FormTransferTokenContainer","onChange","ProtectedEditView","read","Protect","typeOptions","value","label","Box","background","hasRadius","shadow","paddingTop","paddingBottom","paddingLeft","paddingRight","Typography","variant","tag","Grid","Root","Item","col","xs","TokenName","TokenDescription","LifeSpanInput","TokenTypeSelect","target","options"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EditView.js","sources":["../../../../../../../../admin/src/pages/Settings/pages/TransferTokens/EditView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Flex, Grid, Typography } from '@strapi/design-system';\nimport { Formik, Form, FormikErrors, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useNavigate, useMatch } from 'react-router-dom';\nimport * as yup from 'yup';\n\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport {\n useCreateTransferTokenMutation,\n useGetTransferTokenQuery,\n useUpdateTransferTokenMutation,\n} from '../../../../services/transferTokens';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\nimport { TRANSFER_TOKEN_TYPE } from '../../components/Tokens/constants';\nimport { FormHead } from '../../components/Tokens/FormHead';\nimport { LifeSpanInput } from '../../components/Tokens/LifeSpanInput';\nimport { TokenBox } from '../../components/Tokens/TokenBox';\nimport { TokenDescription } from '../../components/Tokens/TokenDescription';\nimport { TokenName } from '../../components/Tokens/TokenName';\nimport { TokenTypeSelect } from '../../components/Tokens/TokenTypeSelect';\n\nimport type {\n TransferToken,\n SanitizedTransferToken,\n} from '../../../../../../shared/contracts/transfer';\n\nconst schema = yup.object().shape({\n name: yup.string().max(100).required(translatedErrors.required.id),\n description: yup.string().nullable(),\n lifespan: yup.number().integer().min(0).nullable().defined(translatedErrors.required.id),\n permissions: yup.string().required(translatedErrors.required.id),\n});\n\n/* -------------------------------------------------------------------------------------------------\n * EditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst EditView = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const navigate = useNavigate();\n const { state: locationState } = useLocation();\n const [transferToken, setTransferToken] = React.useState<\n TransferToken | SanitizedTransferToken | null\n >(\n locationState && 'accessKey' in locationState.transferToken\n ? {\n ...locationState.transferToken,\n }\n : null\n );\n const { trackUsage } = useTracking();\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens']\n );\n const {\n allowedActions: { canCreate, canUpdate, canRegenerate },\n } = useRBAC(permissions);\n const match = useMatch('/settings/transfer-tokens/:id');\n\n const id = match?.params?.id;\n const isCreating = id === 'create';\n\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n React.useEffect(() => {\n trackUsage(isCreating ? 'didAddTokenFromList' : 'didEditTokenFromList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n }, [isCreating, trackUsage]);\n\n const { data, error } = useGetTransferTokenQuery(id!, {\n skip: isCreating || transferToken !== null || !id,\n });\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n React.useEffect(() => {\n if (data) {\n setTransferToken(data);\n }\n }, [data]);\n\n const [createToken] = useCreateTransferTokenMutation();\n const [updateToken] = useUpdateTransferTokenMutation();\n\n const handleSubmit = async (body: FormValues, formik: FormikHelpers<FormValues>) => {\n trackUsage(isCreating ? 'willCreateToken' : 'willEditToken', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n\n const permissions = body.permissions.split('-');\n\n const isPermissionsTransferPermission = (\n permission: string[]\n ): permission is Array<'push' | 'pull'> => {\n if (permission.length === 1) {\n return permission[0] === 'push' || permission[0] === 'pull';\n }\n\n return permission[0] === 'push' && permission[1] === 'pull';\n };\n\n // this type-guard is necessary to satisfy the type for `permissions` in the request body,\n // because String.split returns stringp[]\n if (isPermissionsTransferPermission(permissions)) {\n try {\n if (isCreating) {\n const res = await createToken({\n ...body,\n // lifespan must be \"null\" for unlimited (0 would mean instantly expired and isn't accepted)\n lifespan:\n body?.lifespan && body.lifespan !== '0'\n ? parseInt(body.lifespan.toString(), 10)\n : null,\n permissions,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n setTransferToken(res.data);\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'notification.success.transfertokencreated',\n defaultMessage: 'Transfer Token successfully created',\n }),\n });\n\n trackUsage('didCreateToken', {\n type: transferToken?.permissions,\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n\n navigate(`../transfer-tokens/${res.data.id.toString()}`, {\n replace: true,\n state: { transferToken: res.data },\n });\n } else {\n const res = await updateToken({\n id: id!,\n name: body.name,\n description: body.description,\n permissions,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n setTransferToken(res.data);\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'notification.success.transfertokenedited',\n defaultMessage: 'Transfer Token successfully edited',\n }),\n });\n\n trackUsage('didEditToken', {\n type: transferToken?.permissions,\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n }\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n }),\n });\n }\n }\n };\n\n const canEditInputs = (canUpdate && !isCreating) || (canCreate && isCreating);\n const isLoading = !isCreating && !transferToken;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Transfer Tokens',\n }\n )}\n </Page.Title>\n <Formik\n validationSchema={schema}\n validateOnChange={false}\n initialValues={\n {\n name: transferToken?.name || '',\n description: transferToken?.description || '',\n lifespan: transferToken?.lifespan || null,\n /**\n * We need to cast the permissions to satisfy the type for `permissions`\n * in the request body incase we don't have a transferToken and instead\n * use an empty string.\n */\n permissions: (transferToken?.permissions.join('-') ?? '') as FormValues['permissions'],\n } satisfies FormValues\n }\n enableReinitialize\n onSubmit={(body, actions) => handleSubmit(body, actions)}\n >\n {({ errors, handleChange, isSubmitting, values }) => {\n return (\n <Form>\n <FormHead\n title={{\n id: 'Settings.transferTokens.createPage.title',\n defaultMessage: 'TokenCreate Transfer Token',\n }}\n token={transferToken}\n setToken={setTransferToken}\n canShowToken={false}\n canEditInputs={canEditInputs}\n canRegenerate={canRegenerate}\n isSubmitting={isSubmitting}\n regenerateUrl=\"/admin/transfer/tokens/\"\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {transferToken &&\n Boolean(transferToken?.name) &&\n 'accessKey' in transferToken && (\n <TokenBox token={transferToken.accessKey} tokenType={TRANSFER_TOKEN_TYPE} />\n )}\n <FormTransferTokenContainer\n errors={errors}\n onChange={handleChange}\n canEditInputs={canEditInputs}\n isCreating={isCreating}\n values={values}\n transferToken={transferToken}\n />\n </Flex>\n </Layouts.Content>\n </Form>\n );\n }}\n </Formik>\n </Page.Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedEditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedEditView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens'].read\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditView />\n </Page.Protect>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * FormTransferTokenContainer\n * -----------------------------------------------------------------------------------------------*/\n\ninterface FormValues extends Pick<TransferToken, 'description' | 'name' | 'lifespan'> {\n permissions: Extract<TransferToken['permissions'][number], string>;\n}\n\ninterface FormTransferTokenContainerProps {\n errors: FormikErrors<FormValues>;\n onChange: ({ target: { name, value } }: { target: { name: string; value: string } }) => void;\n canEditInputs: boolean;\n values: FormValues;\n isCreating: boolean;\n transferToken: Partial<TransferToken> | null;\n}\n\nconst FormTransferTokenContainer = ({\n errors = {},\n onChange,\n canEditInputs,\n isCreating,\n values,\n transferToken = {},\n}: FormTransferTokenContainerProps) => {\n const { formatMessage } = useIntl();\n\n const typeOptions = [\n {\n value: 'push',\n label: {\n id: 'Settings.transferTokens.types.push',\n defaultMessage: 'Push',\n },\n },\n {\n value: 'pull',\n label: {\n id: 'Settings.transferTokens.types.pull',\n defaultMessage: 'Pull',\n },\n },\n {\n value: 'push-pull',\n label: {\n id: 'Settings.transferTokens.types.push-pull',\n defaultMessage: 'Full Access',\n },\n },\n ];\n\n return (\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n <Grid.Root gap={5}>\n <Grid.Item key=\"name\" col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <TokenName\n error={errors['name']}\n value={values['name']}\n canEditInputs={canEditInputs}\n onChange={onChange}\n />\n </Grid.Item>\n <Grid.Item key=\"description\" col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <TokenDescription\n error={errors['description']}\n value={values['description']}\n canEditInputs={canEditInputs}\n onChange={onChange}\n />\n </Grid.Item>\n <Grid.Item key=\"lifespan\" col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <LifeSpanInput\n isCreating={isCreating}\n error={errors['lifespan']}\n value={values['lifespan']}\n onChange={onChange}\n token={transferToken}\n />\n </Grid.Item>\n <Grid.Item key=\"permissions\" col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <TokenTypeSelect\n name=\"permissions\"\n value={values['permissions']}\n error={errors['permissions']}\n label={{\n id: 'Settings.tokens.form.type',\n defaultMessage: 'Token type',\n }}\n // @ts-expect-error – DS Select passes number | string, will be fixed in V2\n onChange={(value: string) => {\n onChange({ target: { name: 'permissions', value } });\n }}\n options={typeOptions}\n canEditInputs={canEditInputs}\n />\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n );\n};\n\nexport { EditView, ProtectedEditView };\n"],"names":["schema","yup","object","shape","name","string","max","required","translatedErrors","id","description","nullable","lifespan","number","integer","min","defined","permissions","EditView","formatMessage","useIntl","toggleNotification","useNotification","navigate","useNavigate","state","locationState","useLocation","transferToken","setTransferToken","React","useState","trackUsage","useTracking","useTypedSelector","admin_app","settings","allowedActions","canCreate","canUpdate","canRegenerate","useRBAC","match","useMatch","params","isCreating","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","useEffect","tokenType","TRANSFER_TOKEN_TYPE","data","error","useGetTransferTokenQuery","skip","type","message","createToken","useCreateTransferTokenMutation","updateToken","useUpdateTransferTokenMutation","handleSubmit","body","formik","split","isPermissionsTransferPermission","permission","length","res","parseInt","toString","isBaseQueryError","setErrors","defaultMessage","replace","err","canEditInputs","isLoading","_jsx","Page","Loading","_jsxs","Main","Title","Formik","validationSchema","validateOnChange","initialValues","join","enableReinitialize","onSubmit","actions","errors","handleChange","isSubmitting","values","Form","FormHead","title","token","setToken","canShowToken","regenerateUrl","Layouts","Content","Flex","direction","alignItems","gap","Boolean","TokenBox","accessKey","FormTransferTokenContainer","onChange","ProtectedEditView","read","Protect","typeOptions","value","label","Box","background","hasRadius","shadow","paddingTop","paddingBottom","paddingLeft","paddingRight","Typography","variant","tag","Grid","Root","Item","col","xs","TokenName","TokenDescription","LifeSpanInput","TokenTypeSelect","target","options"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditView.mjs","sources":["../../../../../../../../admin/src/pages/Settings/pages/TransferTokens/EditView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Flex, Grid, Typography } from '@strapi/design-system';\nimport { Formik, Form, FormikErrors, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useNavigate, useMatch } from 'react-router-dom';\nimport * as yup from 'yup';\n\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport {\n useCreateTransferTokenMutation,\n useGetTransferTokenQuery,\n useUpdateTransferTokenMutation,\n} from '../../../../services/transferTokens';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\nimport { TRANSFER_TOKEN_TYPE } from '../../components/Tokens/constants';\nimport { FormHead } from '../../components/Tokens/FormHead';\nimport { LifeSpanInput } from '../../components/Tokens/LifeSpanInput';\nimport { TokenBox } from '../../components/Tokens/TokenBox';\nimport { TokenDescription } from '../../components/Tokens/TokenDescription';\nimport { TokenName } from '../../components/Tokens/TokenName';\nimport { TokenTypeSelect } from '../../components/Tokens/TokenTypeSelect';\n\nimport type {\n TransferToken,\n SanitizedTransferToken,\n} from '../../../../../../shared/contracts/transfer';\n\nconst schema = yup.object().shape({\n name: yup.string().max(100).required(translatedErrors.required.id),\n description: yup.string().nullable(),\n lifespan: yup.number().integer().min(0).nullable().defined(translatedErrors.required.id),\n permissions: yup.string().required(translatedErrors.required.id),\n});\n\n/* -------------------------------------------------------------------------------------------------\n * EditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst EditView = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const navigate = useNavigate();\n const { state: locationState } = useLocation();\n const [transferToken, setTransferToken] = React.useState<\n TransferToken | SanitizedTransferToken | null\n >(\n locationState && 'accessKey' in locationState.transferToken\n ? {\n ...locationState.transferToken,\n }\n : null\n );\n const { trackUsage } = useTracking();\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens']\n );\n const {\n allowedActions: { canCreate, canUpdate, canRegenerate },\n } = useRBAC(permissions);\n const match = useMatch('/settings/transfer-tokens/:id');\n\n const id = match?.params?.id;\n const isCreating = id === 'create';\n\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n React.useEffect(() => {\n trackUsage(isCreating ? 'didAddTokenFromList' : 'didEditTokenFromList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n }, [isCreating, trackUsage]);\n\n const { data, error } = useGetTransferTokenQuery(id!, {\n skip: isCreating || transferToken !== null || !id,\n });\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n React.useEffect(() => {\n if (data) {\n setTransferToken(data);\n }\n }, [data]);\n\n const [createToken] = useCreateTransferTokenMutation();\n const [updateToken] = useUpdateTransferTokenMutation();\n\n const handleSubmit = async (body: FormValues, formik: FormikHelpers<FormValues>) => {\n trackUsage(isCreating ? 'willCreateToken' : 'willEditToken', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n\n const permissions = body.permissions.split('-');\n\n const isPermissionsTransferPermission = (\n permission: string[]\n ): permission is Array<'push' | 'pull'> => {\n if (permission.length === 1) {\n return permission[0] === 'push' || permission[0] === 'pull';\n }\n\n return permission[0] === 'push' && permission[1] === 'pull';\n };\n\n // this type-guard is necessary to satisfy the type for `permissions` in the request body,\n // because String.split returns stringp[]\n if (isPermissionsTransferPermission(permissions)) {\n try {\n if (isCreating) {\n const res = await createToken({\n ...body,\n // lifespan must be \"null\" for unlimited (0 would mean instantly expired and isn't accepted)\n lifespan:\n body?.lifespan && body.lifespan !== '0'\n ? parseInt(body.lifespan.toString(), 10)\n : null,\n permissions,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n setTransferToken(res.data);\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'notification.success.transfertokencreated',\n defaultMessage: 'Transfer Token successfully created',\n }),\n });\n\n trackUsage('didCreateToken', {\n type: transferToken?.permissions,\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n\n navigate(`../transfer-tokens/${res.data.id.toString()}`, {\n replace: true,\n state: { transferToken: res.data },\n });\n } else {\n const res = await updateToken({\n id: id!,\n name: body.name,\n description: body.description,\n permissions,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n setTransferToken(res.data);\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'notification.success.transfertokenedited',\n defaultMessage: 'Transfer Token successfully edited',\n }),\n });\n\n trackUsage('didEditToken', {\n type: transferToken?.permissions,\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n }\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n }),\n });\n }\n }\n };\n\n const canEditInputs = (canUpdate && !isCreating) || (canCreate && isCreating);\n const isLoading = !isCreating && !transferToken;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Transfer Tokens',\n }\n )}\n </Page.Title>\n <Formik\n validationSchema={schema}\n validateOnChange={false}\n initialValues={\n {\n name: transferToken?.name || '',\n description: transferToken?.description || '',\n lifespan: transferToken?.lifespan || null,\n /**\n * We need to cast the permissions to satisfy the type for `permissions`\n * in the request body incase we don't have a transferToken and instead\n * use an empty string.\n */\n permissions: (transferToken?.permissions.join('-') ?? '') as FormValues['permissions'],\n } satisfies FormValues\n }\n enableReinitialize\n onSubmit={(body, actions) => handleSubmit(body, actions)}\n >\n {({ errors, handleChange, isSubmitting, values }) => {\n return (\n <Form>\n <FormHead\n title={{\n id: 'Settings.transferTokens.createPage.title',\n defaultMessage: 'TokenCreate Transfer Token',\n }}\n token={transferToken}\n setToken={setTransferToken}\n canShowToken={false}\n canEditInputs={canEditInputs}\n canRegenerate={canRegenerate}\n isSubmitting={isSubmitting}\n regenerateUrl=\"/admin/transfer/tokens/\"\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {transferToken &&\n Boolean(transferToken?.name) &&\n 'accessKey' in transferToken && (\n <TokenBox token={transferToken.accessKey} tokenType={TRANSFER_TOKEN_TYPE} />\n )}\n <FormTransferTokenContainer\n errors={errors}\n onChange={handleChange}\n canEditInputs={canEditInputs}\n isCreating={isCreating}\n values={values}\n transferToken={transferToken}\n />\n </Flex>\n </Layouts.Content>\n </Form>\n );\n }}\n </Formik>\n </Page.Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedEditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedEditView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens'].read\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditView />\n </Page.Protect>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * FormTransferTokenContainer\n * -----------------------------------------------------------------------------------------------*/\n\ninterface FormValues extends Pick<TransferToken, 'description' | 'name' | 'lifespan'> {\n permissions: Extract<TransferToken['permissions'][number], string>;\n}\n\ninterface FormTransferTokenContainerProps {\n errors: FormikErrors<FormValues>;\n onChange: ({ target: { name, value } }: { target: { name: string; value: string } }) => void;\n canEditInputs: boolean;\n values: FormValues;\n isCreating: boolean;\n transferToken: Partial<TransferToken> | null;\n}\n\nconst FormTransferTokenContainer = ({\n errors = {},\n onChange,\n canEditInputs,\n isCreating,\n values,\n transferToken = {},\n}: FormTransferTokenContainerProps) => {\n const { formatMessage } = useIntl();\n\n const typeOptions = [\n {\n value: 'push',\n label: {\n id: 'Settings.transferTokens.types.push',\n defaultMessage: 'Push',\n },\n },\n {\n value: 'pull',\n label: {\n id: 'Settings.transferTokens.types.pull',\n defaultMessage: 'Pull',\n },\n },\n {\n value: 'push-pull',\n label: {\n id: 'Settings.transferTokens.types.push-pull',\n defaultMessage: 'Full Access',\n },\n },\n ];\n\n return (\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n <Grid.Root gap={5}>\n <Grid.Item key=\"name\" col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <TokenName\n error={errors['name']}\n value={values['name']}\n canEditInputs={canEditInputs}\n onChange={onChange}\n />\n </Grid.Item>\n <Grid.Item key=\"description\" col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <TokenDescription\n error={errors['description']}\n value={values['description']}\n canEditInputs={canEditInputs}\n onChange={onChange}\n />\n </Grid.Item>\n <Grid.Item key=\"lifespan\" col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <LifeSpanInput\n isCreating={isCreating}\n error={errors['lifespan']}\n value={values['lifespan']}\n onChange={onChange}\n token={transferToken}\n />\n </Grid.Item>\n <Grid.Item key=\"permissions\" col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <TokenTypeSelect\n name=\"permissions\"\n value={values['permissions']}\n error={errors['permissions']}\n label={{\n id: 'Settings.tokens.form.type',\n defaultMessage: 'Token type',\n }}\n // @ts-expect-error – DS Select passes number | string, will be fixed in V2\n onChange={(value: string) => {\n onChange({ target: { name: 'permissions', value } });\n }}\n options={typeOptions}\n canEditInputs={canEditInputs}\n />\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n );\n};\n\nexport { EditView, ProtectedEditView };\n"],"names":["schema","yup","object","shape","name","string","max","required","translatedErrors","id","description","nullable","lifespan","number","integer","min","defined","permissions","EditView","formatMessage","useIntl","toggleNotification","useNotification","navigate","useNavigate","state","locationState","useLocation","transferToken","setTransferToken","React","useState","trackUsage","useTracking","useTypedSelector","admin_app","settings","allowedActions","canCreate","canUpdate","canRegenerate","useRBAC","match","useMatch","params","isCreating","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","useEffect","tokenType","TRANSFER_TOKEN_TYPE","data","error","useGetTransferTokenQuery","skip","type","message","createToken","useCreateTransferTokenMutation","updateToken","useUpdateTransferTokenMutation","handleSubmit","body","formik","split","isPermissionsTransferPermission","permission","length","res","parseInt","toString","isBaseQueryError","setErrors","defaultMessage","replace","err","canEditInputs","isLoading","_jsx","Page","Loading","_jsxs","Main","Title","Formik","validationSchema","validateOnChange","initialValues","join","enableReinitialize","onSubmit","actions","errors","handleChange","isSubmitting","values","Form","FormHead","title","token","setToken","canShowToken","regenerateUrl","Layouts","Content","Flex","direction","alignItems","gap","Boolean","TokenBox","accessKey","FormTransferTokenContainer","onChange","ProtectedEditView","read","Protect","typeOptions","value","label","Box","background","hasRadius","shadow","paddingTop","paddingBottom","paddingLeft","paddingRight","Typography","variant","tag","Grid","Root","Item","col","xs","TokenName","TokenDescription","LifeSpanInput","TokenTypeSelect","target","options"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EditView.mjs","sources":["../../../../../../../../admin/src/pages/Settings/pages/TransferTokens/EditView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Flex, Grid, Typography } from '@strapi/design-system';\nimport { Formik, Form, FormikErrors, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useNavigate, useMatch } from 'react-router-dom';\nimport * as yup from 'yup';\n\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport {\n useCreateTransferTokenMutation,\n useGetTransferTokenQuery,\n useUpdateTransferTokenMutation,\n} from '../../../../services/transferTokens';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\nimport { TRANSFER_TOKEN_TYPE } from '../../components/Tokens/constants';\nimport { FormHead } from '../../components/Tokens/FormHead';\nimport { LifeSpanInput } from '../../components/Tokens/LifeSpanInput';\nimport { TokenBox } from '../../components/Tokens/TokenBox';\nimport { TokenDescription } from '../../components/Tokens/TokenDescription';\nimport { TokenName } from '../../components/Tokens/TokenName';\nimport { TokenTypeSelect } from '../../components/Tokens/TokenTypeSelect';\n\nimport type {\n TransferToken,\n SanitizedTransferToken,\n} from '../../../../../../shared/contracts/transfer';\n\nconst schema = yup.object().shape({\n name: yup.string().max(100).required(translatedErrors.required.id),\n description: yup.string().nullable(),\n lifespan: yup.number().integer().min(0).nullable().defined(translatedErrors.required.id),\n permissions: yup.string().required(translatedErrors.required.id),\n});\n\n/* -------------------------------------------------------------------------------------------------\n * EditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst EditView = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const navigate = useNavigate();\n const { state: locationState } = useLocation();\n const [transferToken, setTransferToken] = React.useState<\n TransferToken | SanitizedTransferToken | null\n >(\n locationState && 'accessKey' in locationState.transferToken\n ? {\n ...locationState.transferToken,\n }\n : null\n );\n const { trackUsage } = useTracking();\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens']\n );\n const {\n allowedActions: { canCreate, canUpdate, canRegenerate },\n } = useRBAC(permissions);\n const match = useMatch('/settings/transfer-tokens/:id');\n\n const id = match?.params?.id;\n const isCreating = id === 'create';\n\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n React.useEffect(() => {\n trackUsage(isCreating ? 'didAddTokenFromList' : 'didEditTokenFromList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n }, [isCreating, trackUsage]);\n\n const { data, error } = useGetTransferTokenQuery(id!, {\n skip: isCreating || transferToken !== null || !id,\n });\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n React.useEffect(() => {\n if (data) {\n setTransferToken(data);\n }\n }, [data]);\n\n const [createToken] = useCreateTransferTokenMutation();\n const [updateToken] = useUpdateTransferTokenMutation();\n\n const handleSubmit = async (body: FormValues, formik: FormikHelpers<FormValues>) => {\n trackUsage(isCreating ? 'willCreateToken' : 'willEditToken', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n\n const permissions = body.permissions.split('-');\n\n const isPermissionsTransferPermission = (\n permission: string[]\n ): permission is Array<'push' | 'pull'> => {\n if (permission.length === 1) {\n return permission[0] === 'push' || permission[0] === 'pull';\n }\n\n return permission[0] === 'push' && permission[1] === 'pull';\n };\n\n // this type-guard is necessary to satisfy the type for `permissions` in the request body,\n // because String.split returns stringp[]\n if (isPermissionsTransferPermission(permissions)) {\n try {\n if (isCreating) {\n const res = await createToken({\n ...body,\n // lifespan must be \"null\" for unlimited (0 would mean instantly expired and isn't accepted)\n lifespan:\n body?.lifespan && body.lifespan !== '0'\n ? parseInt(body.lifespan.toString(), 10)\n : null,\n permissions,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n setTransferToken(res.data);\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'notification.success.transfertokencreated',\n defaultMessage: 'Transfer Token successfully created',\n }),\n });\n\n trackUsage('didCreateToken', {\n type: transferToken?.permissions,\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n\n navigate(`../transfer-tokens/${res.data.id.toString()}`, {\n replace: true,\n state: { transferToken: res.data },\n });\n } else {\n const res = await updateToken({\n id: id!,\n name: body.name,\n description: body.description,\n permissions,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n setTransferToken(res.data);\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'notification.success.transfertokenedited',\n defaultMessage: 'Transfer Token successfully edited',\n }),\n });\n\n trackUsage('didEditToken', {\n type: transferToken?.permissions,\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n }\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n }),\n });\n }\n }\n };\n\n const canEditInputs = (canUpdate && !isCreating) || (canCreate && isCreating);\n const isLoading = !isCreating && !transferToken;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Transfer Tokens',\n }\n )}\n </Page.Title>\n <Formik\n validationSchema={schema}\n validateOnChange={false}\n initialValues={\n {\n name: transferToken?.name || '',\n description: transferToken?.description || '',\n lifespan: transferToken?.lifespan || null,\n /**\n * We need to cast the permissions to satisfy the type for `permissions`\n * in the request body incase we don't have a transferToken and instead\n * use an empty string.\n */\n permissions: (transferToken?.permissions.join('-') ?? '') as FormValues['permissions'],\n } satisfies FormValues\n }\n enableReinitialize\n onSubmit={(body, actions) => handleSubmit(body, actions)}\n >\n {({ errors, handleChange, isSubmitting, values }) => {\n return (\n <Form>\n <FormHead\n title={{\n id: 'Settings.transferTokens.createPage.title',\n defaultMessage: 'TokenCreate Transfer Token',\n }}\n token={transferToken}\n setToken={setTransferToken}\n canShowToken={false}\n canEditInputs={canEditInputs}\n canRegenerate={canRegenerate}\n isSubmitting={isSubmitting}\n regenerateUrl=\"/admin/transfer/tokens/\"\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {transferToken &&\n Boolean(transferToken?.name) &&\n 'accessKey' in transferToken && (\n <TokenBox token={transferToken.accessKey} tokenType={TRANSFER_TOKEN_TYPE} />\n )}\n <FormTransferTokenContainer\n errors={errors}\n onChange={handleChange}\n canEditInputs={canEditInputs}\n isCreating={isCreating}\n values={values}\n transferToken={transferToken}\n />\n </Flex>\n </Layouts.Content>\n </Form>\n );\n }}\n </Formik>\n </Page.Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedEditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedEditView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens'].read\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditView />\n </Page.Protect>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * FormTransferTokenContainer\n * -----------------------------------------------------------------------------------------------*/\n\ninterface FormValues extends Pick<TransferToken, 'description' | 'name' | 'lifespan'> {\n permissions: Extract<TransferToken['permissions'][number], string>;\n}\n\ninterface FormTransferTokenContainerProps {\n errors: FormikErrors<FormValues>;\n onChange: ({ target: { name, value } }: { target: { name: string; value: string } }) => void;\n canEditInputs: boolean;\n values: FormValues;\n isCreating: boolean;\n transferToken: Partial<TransferToken> | null;\n}\n\nconst FormTransferTokenContainer = ({\n errors = {},\n onChange,\n canEditInputs,\n isCreating,\n values,\n transferToken = {},\n}: FormTransferTokenContainerProps) => {\n const { formatMessage } = useIntl();\n\n const typeOptions = [\n {\n value: 'push',\n label: {\n id: 'Settings.transferTokens.types.push',\n defaultMessage: 'Push',\n },\n },\n {\n value: 'pull',\n label: {\n id: 'Settings.transferTokens.types.pull',\n defaultMessage: 'Pull',\n },\n },\n {\n value: 'push-pull',\n label: {\n id: 'Settings.transferTokens.types.push-pull',\n defaultMessage: 'Full Access',\n },\n },\n ];\n\n return (\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n <Grid.Root gap={5}>\n <Grid.Item key=\"name\" col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <TokenName\n error={errors['name']}\n value={values['name']}\n canEditInputs={canEditInputs}\n onChange={onChange}\n />\n </Grid.Item>\n <Grid.Item key=\"description\" col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <TokenDescription\n error={errors['description']}\n value={values['description']}\n canEditInputs={canEditInputs}\n onChange={onChange}\n />\n </Grid.Item>\n <Grid.Item key=\"lifespan\" col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <LifeSpanInput\n isCreating={isCreating}\n error={errors['lifespan']}\n value={values['lifespan']}\n onChange={onChange}\n token={transferToken}\n />\n </Grid.Item>\n <Grid.Item key=\"permissions\" col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <TokenTypeSelect\n name=\"permissions\"\n value={values['permissions']}\n error={errors['permissions']}\n label={{\n id: 'Settings.tokens.form.type',\n defaultMessage: 'Token type',\n }}\n // @ts-expect-error – DS Select passes number | string, will be fixed in V2\n onChange={(value: string) => {\n onChange({ target: { name: 'permissions', value } });\n }}\n options={typeOptions}\n canEditInputs={canEditInputs}\n />\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n );\n};\n\nexport { EditView, ProtectedEditView };\n"],"names":["schema","yup","object","shape","name","string","max","required","translatedErrors","id","description","nullable","lifespan","number","integer","min","defined","permissions","EditView","formatMessage","useIntl","toggleNotification","useNotification","navigate","useNavigate","state","locationState","useLocation","transferToken","setTransferToken","React","useState","trackUsage","useTracking","useTypedSelector","admin_app","settings","allowedActions","canCreate","canUpdate","canRegenerate","useRBAC","match","useMatch","params","isCreating","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","useEffect","tokenType","TRANSFER_TOKEN_TYPE","data","error","useGetTransferTokenQuery","skip","type","message","createToken","useCreateTransferTokenMutation","updateToken","useUpdateTransferTokenMutation","handleSubmit","body","formik","split","isPermissionsTransferPermission","permission","length","res","parseInt","toString","isBaseQueryError","setErrors","defaultMessage","replace","err","canEditInputs","isLoading","_jsx","Page","Loading","_jsxs","Main","Title","Formik","validationSchema","validateOnChange","initialValues","join","enableReinitialize","onSubmit","actions","errors","handleChange","isSubmitting","values","Form","FormHead","title","token","setToken","canShowToken","regenerateUrl","Layouts","Content","Flex","direction","alignItems","gap","Boolean","TokenBox","accessKey","FormTransferTokenContainer","onChange","ProtectedEditView","read","Protect","typeOptions","value","label","Box","background","hasRadius","shadow","paddingTop","paddingBottom","paddingLeft","paddingRight","Typography","variant","tag","Grid","Root","Item","col","xs","TokenName","TokenDescription","LifeSpanInput","TokenTypeSelect","target","options"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListView.js","sources":["../../../../../../../../admin/src/pages/Settings/pages/TransferTokens/ListView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { EmptyStateLayout, LinkButton } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport * as qs from 'qs';\nimport { useIntl } from 'react-intl';\nimport { Link, useNavigate } from 'react-router-dom';\n\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useOnce } from '../../../../hooks/useOnce';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport {\n useDeleteTransferTokenMutation,\n useGetTransferTokensQuery,\n} from '../../../../services/transferTokens';\nimport { TRANSFER_TOKEN_TYPE } from '../../components/Tokens/constants';\nimport { Table } from '../../components/Tokens/Table';\n\nimport type { Data } from '@strapi/types';\n\nconst tableHeaders = [\n {\n name: 'name',\n label: {\n id: 'Settings.tokens.ListView.headers.name',\n defaultMessage: 'Name',\n },\n sortable: true,\n },\n {\n name: 'description',\n label: {\n id: 'Settings.tokens.ListView.headers.description',\n defaultMessage: 'Description',\n },\n sortable: false,\n },\n {\n name: 'createdAt',\n label: {\n id: 'Settings.tokens.ListView.headers.createdAt',\n defaultMessage: 'Created at',\n },\n sortable: false,\n },\n {\n name: 'lastUsedAt',\n label: {\n id: 'Settings.tokens.ListView.headers.lastUsedAt',\n defaultMessage: 'Last used',\n },\n sortable: false,\n },\n] as const;\n\n/* -------------------------------------------------------------------------------------------------\n * ListView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListView = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens']\n );\n const {\n isLoading: isLoadingRBAC,\n allowedActions: { canCreate, canDelete, canUpdate, canRead },\n } = useRBAC(permissions);\n const navigate = useNavigate();\n const { trackUsage } = useTracking();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n React.useEffect(() => {\n navigate({ search: qs.stringify({ sort: 'name:ASC' }, { encode: false }) });\n }, [navigate]);\n\n useOnce(() => {\n trackUsage('willAccessTokenList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n });\n\n const headers = tableHeaders.map((header) => ({\n ...header,\n label: formatMessage(header.label),\n }));\n\n const {\n data: transferTokens = [],\n isLoading: isLoadingTokens,\n error,\n } = useGetTransferTokensQuery(undefined, {\n skip: !canRead,\n });\n\n React.useEffect(() => {\n if (transferTokens) {\n trackUsage('didAccessTokenList', {\n number: transferTokens.length,\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n }\n }, [trackUsage, transferTokens]);\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n const [deleteToken] = useDeleteTransferTokenMutation();\n\n const handleDelete = async (id: Data.ID) => {\n try {\n const res = await deleteToken(id);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occured' }),\n });\n }\n };\n\n const isLoading = isLoadingTokens || isLoadingRBAC;\n\n return (\n <>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Transfer Tokens',\n }\n )}\n </Page.Title>\n <Layouts.Header\n title={formatMessage({\n id: 'Settings.transferTokens.title',\n defaultMessage: 'Transfer Tokens',\n })}\n subtitle={formatMessage({\n id: 'Settings.transferTokens.description',\n defaultMessage: '\"List of generated transfer tokens\"', // TODO change this message\n })}\n primaryAction={\n canCreate ? (\n <LinkButton\n role=\"button\"\n tag={Link}\n data-testid=\"create-transfer-token-button\"\n startIcon={<Plus />}\n size=\"S\"\n onClick={() =>\n trackUsage('willAddTokenFromList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n })\n }\n to=\"/settings/transfer-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.transferTokens.create',\n defaultMessage: 'Create new Transfer Token',\n })}\n </LinkButton>\n ) : undefined\n }\n />\n {!canRead ? (\n <Page.NoPermissions />\n ) : (\n <Page.Main aria-busy={isLoading}>\n <Layouts.Content>\n {transferTokens.length > 0 && (\n <Table\n permissions={{ canRead, canDelete, canUpdate }}\n headers={headers}\n isLoading={isLoading}\n onConfirmDelete={handleDelete}\n tokens={transferTokens}\n tokenType={TRANSFER_TOKEN_TYPE}\n />\n )}\n {canCreate && transferTokens.length === 0 ? (\n <EmptyStateLayout\n action={\n <LinkButton\n tag={Link}\n variant=\"secondary\"\n startIcon={<Plus />}\n to=\"/settings/transfer-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.transferTokens.addNewToken',\n defaultMessage: 'Add new Transfer Token',\n })}\n </LinkButton>\n }\n icon={<EmptyDocuments width=\"16rem\" />}\n content={formatMessage({\n id: 'Settings.transferTokens.addFirstToken',\n defaultMessage: 'Add your first Transfer Token',\n })}\n />\n ) : null}\n {!canCreate && transferTokens.length === 0 ? (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"16rem\" />}\n content={formatMessage({\n id: 'Settings.transferTokens.emptyStateLayout',\n defaultMessage: 'You don’t have any content yet...',\n })}\n />\n ) : null}\n </Layouts.Content>\n </Page.Main>\n )}\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens'].main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListView />\n </Page.Protect>\n );\n};\n\nexport { ListView, ProtectedListView };\n"],"names":["tableHeaders","name","label","id","defaultMessage","sortable","ListView","formatMessage","useIntl","toggleNotification","useNotification","permissions","useTypedSelector","state","admin_app","settings","isLoading","isLoadingRBAC","allowedActions","canCreate","canDelete","canUpdate","canRead","useRBAC","navigate","useNavigate","trackUsage","useTracking","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","React","useEffect","search","qs","stringify","sort","encode","useOnce","tokenType","TRANSFER_TOKEN_TYPE","headers","map","header","data","transferTokens","isLoadingTokens","error","useGetTransferTokensQuery","undefined","skip","number","length","type","message","deleteToken","useDeleteTransferTokenMutation","handleDelete","res","_jsxs","_Fragment","_jsx","Page","Title","Layouts","Header","title","subtitle","primaryAction","LinkButton","role","tag","Link","data-testid","startIcon","Plus","size","onClick","to","NoPermissions","Main","aria-busy","Content","Table","onConfirmDelete","tokens","EmptyStateLayout","action","variant","icon","EmptyDocuments","width","content","ProtectedListView","main","Protect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ListView.js","sources":["../../../../../../../../admin/src/pages/Settings/pages/TransferTokens/ListView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { EmptyStateLayout, LinkButton } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport * as qs from 'qs';\nimport { useIntl } from 'react-intl';\nimport { Link, useNavigate } from 'react-router-dom';\n\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useOnce } from '../../../../hooks/useOnce';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport {\n useDeleteTransferTokenMutation,\n useGetTransferTokensQuery,\n} from '../../../../services/transferTokens';\nimport { TRANSFER_TOKEN_TYPE } from '../../components/Tokens/constants';\nimport { Table } from '../../components/Tokens/Table';\n\nimport type { Data } from '@strapi/types';\n\nconst tableHeaders = [\n {\n name: 'name',\n label: {\n id: 'Settings.tokens.ListView.headers.name',\n defaultMessage: 'Name',\n },\n sortable: true,\n },\n {\n name: 'description',\n label: {\n id: 'Settings.tokens.ListView.headers.description',\n defaultMessage: 'Description',\n },\n sortable: false,\n },\n {\n name: 'createdAt',\n label: {\n id: 'Settings.tokens.ListView.headers.createdAt',\n defaultMessage: 'Created at',\n },\n sortable: false,\n },\n {\n name: 'lastUsedAt',\n label: {\n id: 'Settings.tokens.ListView.headers.lastUsedAt',\n defaultMessage: 'Last used',\n },\n sortable: false,\n },\n] as const;\n\n/* -------------------------------------------------------------------------------------------------\n * ListView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListView = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens']\n );\n const {\n isLoading: isLoadingRBAC,\n allowedActions: { canCreate, canDelete, canUpdate, canRead },\n } = useRBAC(permissions);\n const navigate = useNavigate();\n const { trackUsage } = useTracking();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n React.useEffect(() => {\n navigate({ search: qs.stringify({ sort: 'name:ASC' }, { encode: false }) }, { replace: true });\n }, [navigate]);\n\n useOnce(() => {\n trackUsage('willAccessTokenList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n });\n\n const headers = tableHeaders.map((header) => ({\n ...header,\n label: formatMessage(header.label),\n }));\n\n const {\n data: transferTokens = [],\n isLoading: isLoadingTokens,\n error,\n } = useGetTransferTokensQuery(undefined, {\n skip: !canRead,\n });\n\n React.useEffect(() => {\n if (transferTokens) {\n trackUsage('didAccessTokenList', {\n number: transferTokens.length,\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n }\n }, [trackUsage, transferTokens]);\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n const [deleteToken] = useDeleteTransferTokenMutation();\n\n const handleDelete = async (id: Data.ID) => {\n try {\n const res = await deleteToken(id);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occured' }),\n });\n }\n };\n\n const isLoading = isLoadingTokens || isLoadingRBAC;\n\n return (\n <>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Transfer Tokens',\n }\n )}\n </Page.Title>\n <Layouts.Header\n title={formatMessage({\n id: 'Settings.transferTokens.title',\n defaultMessage: 'Transfer Tokens',\n })}\n subtitle={formatMessage({\n id: 'Settings.transferTokens.description',\n defaultMessage: '\"List of generated transfer tokens\"', // TODO change this message\n })}\n primaryAction={\n canCreate ? (\n <LinkButton\n role=\"button\"\n tag={Link}\n data-testid=\"create-transfer-token-button\"\n startIcon={<Plus />}\n size=\"S\"\n onClick={() =>\n trackUsage('willAddTokenFromList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n })\n }\n to=\"/settings/transfer-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.transferTokens.create',\n defaultMessage: 'Create new Transfer Token',\n })}\n </LinkButton>\n ) : undefined\n }\n />\n {!canRead ? (\n <Page.NoPermissions />\n ) : (\n <Page.Main aria-busy={isLoading}>\n <Layouts.Content>\n {transferTokens.length > 0 && (\n <Table\n permissions={{ canRead, canDelete, canUpdate }}\n headers={headers}\n isLoading={isLoading}\n onConfirmDelete={handleDelete}\n tokens={transferTokens}\n tokenType={TRANSFER_TOKEN_TYPE}\n />\n )}\n {canCreate && transferTokens.length === 0 ? (\n <EmptyStateLayout\n action={\n <LinkButton\n tag={Link}\n variant=\"secondary\"\n startIcon={<Plus />}\n to=\"/settings/transfer-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.transferTokens.addNewToken',\n defaultMessage: 'Add new Transfer Token',\n })}\n </LinkButton>\n }\n icon={<EmptyDocuments width=\"16rem\" />}\n content={formatMessage({\n id: 'Settings.transferTokens.addFirstToken',\n defaultMessage: 'Add your first Transfer Token',\n })}\n />\n ) : null}\n {!canCreate && transferTokens.length === 0 ? (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"16rem\" />}\n content={formatMessage({\n id: 'Settings.transferTokens.emptyStateLayout',\n defaultMessage: 'You don’t have any content yet...',\n })}\n />\n ) : null}\n </Layouts.Content>\n </Page.Main>\n )}\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens'].main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListView />\n </Page.Protect>\n );\n};\n\nexport { ListView, ProtectedListView };\n"],"names":["tableHeaders","name","label","id","defaultMessage","sortable","ListView","formatMessage","useIntl","toggleNotification","useNotification","permissions","useTypedSelector","state","admin_app","settings","isLoading","isLoadingRBAC","allowedActions","canCreate","canDelete","canUpdate","canRead","useRBAC","navigate","useNavigate","trackUsage","useTracking","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","React","useEffect","search","qs","stringify","sort","encode","replace","useOnce","tokenType","TRANSFER_TOKEN_TYPE","headers","map","header","data","transferTokens","isLoadingTokens","error","useGetTransferTokensQuery","undefined","skip","number","length","type","message","deleteToken","useDeleteTransferTokenMutation","handleDelete","res","_jsxs","_Fragment","_jsx","Page","Title","Layouts","Header","title","subtitle","primaryAction","LinkButton","role","tag","Link","data-testid","startIcon","Plus","size","onClick","to","NoPermissions","Main","aria-busy","Content","Table","onConfirmDelete","tokens","EmptyStateLayout","action","variant","icon","EmptyDocuments","width","content","ProtectedListView","main","Protect"],"mappings":"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"}
|