@strapi/admin 5.44.0 → 5.45.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/admin/src/components/Table.js.map +1 -1
- package/dist/admin/admin/src/components/Table.mjs.map +1 -1
- package/dist/admin/admin/src/constants.js +49 -0
- package/dist/admin/admin/src/constants.js.map +1 -1
- package/dist/admin/admin/src/constants.mjs +49 -0
- package/dist/admin/admin/src/constants.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/router.js +4 -4
- package/dist/admin/admin/src/core/apis/router.js.map +1 -1
- package/dist/admin/admin/src/core/apis/router.mjs +4 -4
- package/dist/admin/admin/src/core/apis/router.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/pages/Settings/{pages/ApiTokens/EditView/components → components/Tokens}/FormApiTokenContainer.js +48 -11
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.js.map +1 -0
- package/dist/admin/admin/src/pages/Settings/{pages/ApiTokens/EditView/components → components/Tokens}/FormApiTokenContainer.mjs +49 -12
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.mjs.map +1 -0
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js +1 -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 +1 -1
- 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 +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 +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 +21 -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 +21 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.mjs +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/constants.js +33 -0
- package/dist/admin/admin/src/pages/Settings/components/Tokens/constants.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/constants.mjs +14 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/constants.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/{pages/ApiTokens/EditView → components/Tokens}/utils/getDateOfExpiration.js +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/utils/getDateOfExpiration.js.map +1 -0
- package/dist/admin/admin/src/pages/Settings/{pages/ApiTokens/EditView → components/Tokens}/utils/getDateOfExpiration.mjs +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/utils/getDateOfExpiration.mjs.map +1 -0
- package/dist/admin/admin/src/pages/Settings/constants.js +182 -151
- package/dist/admin/admin/src/pages/Settings/constants.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/constants.mjs +182 -151
- package/dist/admin/admin/src/pages/Settings/constants.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/CreateView.js +17 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/CreateView.js.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/CreateView.mjs +15 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/CreateView.mjs.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/EditViewPage.js +314 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/EditViewPage.js.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/EditViewPage.mjs +292 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/EditViewPage.mjs.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/components/AdminPermissions.js +70 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/components/AdminPermissions.js.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/components/AdminPermissions.mjs +49 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/components/AdminPermissions.mjs.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/ListView.js +254 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/ListView.js.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/ListView.mjs +231 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/ListView.mjs.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js +42 -33
- 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 +43 -34
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js +3 -2
- 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 +3 -2
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js +23 -12
- 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 +23 -12
- 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 +124 -35
- 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 +126 -37
- 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 +24 -9
- 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 +24 -9
- 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 +5 -3
- 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 +5 -3
- 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 +171 -36
- 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 +172 -37
- 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 +5 -3
- 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 +5 -3
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.js +59 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.mjs +40 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/createPermissionChecker.js +89 -0
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/createPermissionChecker.js.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/createPermissionChecker.mjs +86 -0
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/createPermissionChecker.mjs.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateValues.js +35 -9
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateValues.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateValues.mjs +35 -10
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateValues.mjs.map +1 -1
- package/dist/admin/admin/src/render.js +6 -3
- package/dist/admin/admin/src/render.js.map +1 -1
- package/dist/admin/admin/src/render.mjs +6 -3
- package/dist/admin/admin/src/render.mjs.map +1 -1
- package/dist/admin/admin/src/router.js +4 -4
- package/dist/admin/admin/src/router.js.map +1 -1
- package/dist/admin/admin/src/router.mjs +1 -1
- package/dist/admin/admin/src/router.mjs.map +1 -1
- package/dist/admin/admin/src/services/apiTokens.js +85 -2
- package/dist/admin/admin/src/services/apiTokens.js.map +1 -1
- package/dist/admin/admin/src/services/apiTokens.mjs +80 -3
- package/dist/admin/admin/src/services/apiTokens.mjs.map +1 -1
- package/dist/admin/admin/src/translations/en.json.js +16 -1
- package/dist/admin/admin/src/translations/en.json.js.map +1 -1
- package/dist/admin/admin/src/translations/en.json.mjs +16 -1
- package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
- package/dist/admin/admin/src/utils/getFetchClient.js +4 -1
- package/dist/admin/admin/src/utils/getFetchClient.js.map +1 -1
- package/dist/admin/admin/src/utils/getFetchClient.mjs +4 -1
- package/dist/admin/admin/src/utils/getFetchClient.mjs.map +1 -1
- package/dist/admin/admin/tests/server.js +99 -21
- package/dist/admin/admin/tests/server.js.map +1 -1
- package/dist/admin/admin/tests/server.mjs +99 -21
- package/dist/admin/admin/tests/server.mjs.map +1 -1
- package/dist/admin/src/constants.d.ts +26 -0
- package/dist/admin/src/core/apis/router.d.ts +1 -1
- package/dist/admin/src/features/Tracking.d.ts +2 -1
- package/dist/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.d.ts +24 -0
- package/dist/admin/src/pages/Settings/components/Tokens/Table.d.ts +2 -1
- package/dist/admin/src/pages/Settings/components/Tokens/constants.d.ts +17 -0
- package/dist/admin/src/pages/Settings/constants.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/AdminTokens/CreateView.d.ts +1 -0
- package/dist/admin/src/pages/Settings/pages/AdminTokens/EditView/EditViewPage.d.ts +2 -0
- package/dist/admin/src/pages/Settings/pages/AdminTokens/EditView/components/AdminPermissions.d.ts +13 -0
- package/dist/admin/src/pages/Settings/pages/AdminTokens/ListView.d.ts +2 -0
- package/dist/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.d.ts +4 -3
- package/dist/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.d.ts +3 -1
- package/dist/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.d.ts +1 -0
- package/dist/admin/src/pages/Settings/pages/Roles/components/Permissions.d.ts +5 -0
- package/dist/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.d.ts +8 -7
- package/dist/admin/src/pages/Settings/pages/Roles/utils/createPermissionChecker.d.ts +27 -0
- package/dist/admin/src/pages/Settings/pages/Roles/utils/updateValues.d.ts +8 -2
- package/dist/admin/src/services/apiTokens.d.ts +5 -2
- package/dist/admin/src/types/permissions.d.ts +1 -1
- package/dist/server/server/src/bootstrap.js +37 -5
- package/dist/server/server/src/bootstrap.js.map +1 -1
- package/dist/server/server/src/bootstrap.mjs +37 -5
- package/dist/server/server/src/bootstrap.mjs.map +1 -1
- package/dist/server/server/src/config/admin-actions.js +48 -0
- package/dist/server/server/src/config/admin-actions.js.map +1 -1
- package/dist/server/server/src/config/admin-actions.mjs +48 -0
- package/dist/server/server/src/config/admin-actions.mjs.map +1 -1
- package/dist/server/server/src/content-types/Permission.js +10 -1
- package/dist/server/server/src/content-types/Permission.js.map +1 -1
- package/dist/server/server/src/content-types/Permission.mjs +10 -1
- package/dist/server/server/src/content-types/Permission.mjs.map +1 -1
- package/dist/server/server/src/content-types/User.js +8 -0
- package/dist/server/server/src/content-types/User.js.map +1 -1
- package/dist/server/server/src/content-types/User.mjs +8 -0
- package/dist/server/server/src/content-types/User.mjs.map +1 -1
- package/dist/server/server/src/content-types/api-token.js +27 -1
- package/dist/server/server/src/content-types/api-token.js.map +1 -1
- package/dist/server/server/src/content-types/api-token.mjs +27 -1
- package/dist/server/server/src/content-types/api-token.mjs.map +1 -1
- package/dist/server/server/src/controllers/admin-token.js +194 -0
- package/dist/server/server/src/controllers/admin-token.js.map +1 -0
- package/dist/server/server/src/controllers/admin-token.mjs +192 -0
- package/dist/server/server/src/controllers/admin-token.mjs.map +1 -0
- package/dist/server/server/src/controllers/api-token.js +48 -47
- package/dist/server/server/src/controllers/api-token.js.map +1 -1
- package/dist/server/server/src/controllers/api-token.mjs +48 -47
- package/dist/server/server/src/controllers/api-token.mjs.map +1 -1
- package/dist/server/server/src/controllers/index.js +2 -0
- package/dist/server/server/src/controllers/index.js.map +1 -1
- package/dist/server/server/src/controllers/index.mjs +2 -0
- package/dist/server/server/src/controllers/index.mjs.map +1 -1
- package/dist/server/server/src/domain/permission/index.js +2 -1
- package/dist/server/server/src/domain/permission/index.js.map +1 -1
- package/dist/server/server/src/domain/permission/index.mjs +2 -1
- package/dist/server/server/src/domain/permission/index.mjs.map +1 -1
- package/dist/server/server/src/policies/index.js +2 -0
- package/dist/server/server/src/policies/index.js.map +1 -1
- package/dist/server/server/src/policies/index.mjs +2 -0
- package/dist/server/server/src/policies/index.mjs.map +1 -1
- package/dist/server/server/src/policies/isAdminTokensEnabled.js +16 -0
- package/dist/server/server/src/policies/isAdminTokensEnabled.js.map +1 -0
- package/dist/server/server/src/policies/isAdminTokensEnabled.mjs +14 -0
- package/dist/server/server/src/policies/isAdminTokensEnabled.mjs.map +1 -0
- package/dist/server/server/src/register.js +4 -2
- package/dist/server/server/src/register.js.map +1 -1
- package/dist/server/server/src/register.mjs +4 -2
- package/dist/server/server/src/register.mjs.map +1 -1
- package/dist/server/server/src/routes/admin-tokens.js +140 -0
- package/dist/server/server/src/routes/admin-tokens.js.map +1 -0
- package/dist/server/server/src/routes/admin-tokens.mjs +138 -0
- package/dist/server/server/src/routes/admin-tokens.mjs.map +1 -0
- package/dist/server/server/src/routes/index.js +2 -0
- package/dist/server/server/src/routes/index.js.map +1 -1
- package/dist/server/server/src/routes/index.mjs +2 -0
- package/dist/server/server/src/routes/index.mjs.map +1 -1
- package/dist/server/server/src/services/api-token.js +805 -101
- package/dist/server/server/src/services/api-token.js.map +1 -1
- package/dist/server/server/src/services/api-token.mjs +800 -101
- package/dist/server/server/src/services/api-token.mjs.map +1 -1
- package/dist/server/server/src/services/constants.js +2 -0
- package/dist/server/server/src/services/constants.js.map +1 -1
- package/dist/server/server/src/services/constants.mjs +2 -0
- package/dist/server/server/src/services/constants.mjs.map +1 -1
- package/dist/server/server/src/services/homepage.js +1 -1
- package/dist/server/server/src/services/homepage.js.map +1 -1
- package/dist/server/server/src/services/homepage.mjs +1 -1
- package/dist/server/server/src/services/homepage.mjs.map +1 -1
- package/dist/server/server/src/services/index.js +2 -1
- package/dist/server/server/src/services/index.js.map +1 -1
- package/dist/server/server/src/services/index.mjs +3 -2
- package/dist/server/server/src/services/index.mjs.map +1 -1
- package/dist/server/server/src/services/permission/engine.js +6 -0
- package/dist/server/server/src/services/permission/engine.js.map +1 -1
- package/dist/server/server/src/services/permission/engine.mjs +6 -0
- package/dist/server/server/src/services/permission/engine.mjs.map +1 -1
- package/dist/server/server/src/services/permission/queries.js +11 -2
- package/dist/server/server/src/services/permission/queries.js.map +1 -1
- package/dist/server/server/src/services/permission/queries.mjs +12 -3
- package/dist/server/server/src/services/permission/queries.mjs.map +1 -1
- package/dist/server/server/src/services/role.js +3 -0
- package/dist/server/server/src/services/role.js.map +1 -1
- package/dist/server/server/src/services/role.mjs +3 -0
- package/dist/server/server/src/services/role.mjs.map +1 -1
- package/dist/server/server/src/strategies/admin-token.js +110 -0
- package/dist/server/server/src/strategies/admin-token.js.map +1 -0
- package/dist/server/server/src/strategies/admin-token.mjs +104 -0
- package/dist/server/server/src/strategies/admin-token.mjs.map +1 -0
- package/dist/server/server/src/strategies/api-token-utils.js +56 -0
- package/dist/server/server/src/strategies/api-token-utils.js.map +1 -0
- package/dist/server/server/src/strategies/api-token-utils.mjs +52 -0
- package/dist/server/server/src/strategies/api-token-utils.mjs.map +1 -0
- package/dist/server/server/src/strategies/content-api-token.js +104 -0
- package/dist/server/server/src/strategies/content-api-token.js.map +1 -0
- package/dist/server/server/src/strategies/content-api-token.mjs +98 -0
- package/dist/server/server/src/strategies/content-api-token.mjs.map +1 -0
- package/dist/server/server/src/validation/admin-tokens.js +28 -0
- package/dist/server/server/src/validation/admin-tokens.js.map +1 -0
- package/dist/server/server/src/validation/admin-tokens.mjs +25 -0
- package/dist/server/server/src/validation/admin-tokens.mjs.map +1 -0
- package/dist/server/server/src/validation/api-tokens.js +5 -2
- package/dist/server/server/src/validation/api-tokens.js.map +1 -1
- package/dist/server/server/src/validation/api-tokens.mjs +5 -2
- package/dist/server/server/src/validation/api-tokens.mjs.map +1 -1
- package/dist/server/server/src/validation/project-settings.js +15 -16
- package/dist/server/server/src/validation/project-settings.js.map +1 -1
- package/dist/server/server/src/validation/project-settings.mjs +4 -5
- package/dist/server/server/src/validation/project-settings.mjs.map +1 -1
- package/dist/server/src/bootstrap.d.ts.map +1 -1
- package/dist/server/src/config/admin-actions.d.ts.map +1 -1
- package/dist/server/src/content-types/Permission.d.ts +9 -0
- package/dist/server/src/content-types/Permission.d.ts.map +1 -1
- package/dist/server/src/content-types/User.d.ts +8 -0
- package/dist/server/src/content-types/User.d.ts.map +1 -1
- package/dist/server/src/content-types/api-token.d.ts +23 -0
- package/dist/server/src/content-types/api-token.d.ts.map +1 -1
- package/dist/server/src/content-types/index.d.ts +40 -0
- package/dist/server/src/content-types/index.d.ts.map +1 -1
- package/dist/server/src/controllers/admin-token.d.ts +12 -0
- package/dist/server/src/controllers/admin-token.d.ts.map +1 -0
- package/dist/server/src/controllers/api-token.d.ts +0 -1
- package/dist/server/src/controllers/api-token.d.ts.map +1 -1
- package/dist/server/src/controllers/index.d.ts +9 -1
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/domain/permission/index.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +56 -2
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/policies/index.d.ts +5 -0
- package/dist/server/src/policies/index.d.ts.map +1 -1
- package/dist/server/src/policies/isAdminTokensEnabled.d.ts +7 -0
- package/dist/server/src/policies/isAdminTokensEnabled.d.ts.map +1 -0
- package/dist/server/src/register.d.ts.map +1 -1
- package/dist/server/src/routes/admin-tokens.d.ts +15 -0
- package/dist/server/src/routes/admin-tokens.d.ts.map +1 -0
- package/dist/server/src/routes/index.d.ts.map +1 -1
- package/dist/server/src/services/api-token.d.ts +136 -12
- package/dist/server/src/services/api-token.d.ts.map +1 -1
- package/dist/server/src/services/constants.d.ts +13 -11
- package/dist/server/src/services/constants.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +2 -2
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/permission/engine.d.ts +5 -0
- package/dist/server/src/services/permission/engine.d.ts.map +1 -1
- package/dist/server/src/services/permission/queries.d.ts.map +1 -1
- package/dist/server/src/services/permission.d.ts +1 -0
- package/dist/server/src/services/permission.d.ts.map +1 -1
- package/dist/server/src/services/role.d.ts.map +1 -1
- package/dist/server/src/strategies/admin-token.d.ts +51 -0
- package/dist/server/src/strategies/admin-token.d.ts.map +1 -0
- package/dist/server/src/strategies/api-token-utils.d.ts +13 -0
- package/dist/server/src/strategies/api-token-utils.d.ts.map +1 -0
- package/dist/server/src/strategies/{api-token.d.ts → content-api-token.d.ts} +10 -11
- package/dist/server/src/strategies/content-api-token.d.ts.map +1 -0
- package/dist/server/src/strategies/index.d.ts +2 -1
- package/dist/server/src/strategies/index.d.ts.map +1 -1
- package/dist/server/src/validation/admin-tokens.d.ts +75 -0
- package/dist/server/src/validation/admin-tokens.d.ts.map +1 -0
- package/dist/server/src/validation/api-tokens.d.ts +4 -2
- package/dist/server/src/validation/api-tokens.d.ts.map +1 -1
- package/dist/server/src/validation/project-settings.d.ts +10 -10
- package/dist/server/src/validation/project-settings.d.ts.map +1 -1
- package/dist/shared/contracts/admin-token.d.ts +122 -0
- package/dist/shared/contracts/admin-token.d.ts.map +1 -0
- package/dist/shared/contracts/api-token.d.ts +6 -95
- package/dist/shared/contracts/api-token.d.ts.map +1 -1
- package/dist/shared/contracts/content-api-token.d.ts +97 -0
- package/dist/shared/contracts/content-api-token.d.ts.map +1 -0
- package/dist/shared/contracts/shared.d.ts +1 -0
- package/dist/shared/contracts/shared.d.ts.map +1 -1
- package/package.json +7 -7
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.js.map +0 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.mjs.map +0 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/constants.js +0 -37
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/constants.js.map +0 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/constants.mjs +0 -16
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/constants.mjs.map +0 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/getDateOfExpiration.js.map +0 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/getDateOfExpiration.mjs.map +0 -1
- package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.d.ts +0 -20
- package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/constants.d.ts +0 -17
- package/dist/server/server/src/strategies/api-token.js +0 -144
- package/dist/server/server/src/strategies/api-token.js.map +0 -1
- package/dist/server/server/src/strategies/api-token.mjs +0 -138
- package/dist/server/server/src/strategies/api-token.mjs.map +0 -1
- package/dist/server/src/strategies/api-token.d.ts.map +0 -1
- /package/dist/admin/src/pages/Settings/{pages/ApiTokens/EditView → components/Tokens}/utils/getDateOfExpiration.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createPermissionChecker.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/utils/createPermissionChecker.ts"],"sourcesContent":["/**\n * Utility functions for creating permission checkers used in bulk update operations.\n * These functions encapsulate the logic for validating whether a user has permission\n * to modify specific fields/actions during role and app token editing.\n */\n\nimport type { Permission as AuthPermission } from '../../../../../features/Auth';\n\n/**\n * Creates a permission checker function for field-level permission validation.\n * Used in bulk update operations to filter which leaves can be modified.\n *\n * @param actionId - The action to check (e.g., 'plugin::content-manager.explorer.create')\n * @param subject - The subject to check (e.g., 'api::article.article'), or null for plugins/settings\n * @param userPermissions - Array of user permissions, or undefined for Role editing mode\n * @returns A checker function that validates if a given path should be allowed,\n * or undefined if in Role editing mode (no restrictions)\n */\nexport const createFieldPermissionChecker = (\n actionId: string,\n subject: string | null,\n userPermissions: AuthPermission[] | undefined\n): ((path: string[]) => boolean) | undefined => {\n if (userPermissions === undefined) {\n return undefined;\n }\n\n return (path: string[]) => {\n const matchingPerm = userPermissions.find(\n (perm) => perm.action === actionId && perm.subject === subject\n );\n\n if (matchingPerm === undefined) {\n return false;\n }\n\n const fieldsIndex = path.indexOf('fields');\n\n if (fieldsIndex === -1 || fieldsIndex >= path.length - 1) {\n return true;\n }\n\n const fieldPath = path.slice(fieldsIndex + 1).join('.');\n const fields = matchingPerm.properties?.fields;\n\n if (fields === null || fields === undefined) {\n return true;\n }\n\n if (Array.isArray(fields) && fields.length === 0) {\n return false;\n }\n\n if (Array.isArray(fields)) {\n return fields.some(\n (allowedField) => fieldPath === allowedField || fieldPath.startsWith(`${allowedField}.`)\n );\n }\n\n return false;\n };\n};\n\n/**\n * Creates a permission checker for content type operations where the action ID\n * may need to be extracted from the path itself (for content type name checkboxes).\n *\n * @param subject - The subject to check\n * @param actionIdFromContext - The action ID from parent context (may be undefined)\n * @param userPermissions - Array of user permissions, or undefined for Role editing mode\n * @returns A checker function or undefined if in Role editing mode\n */\nexport const createDynamicActionPermissionChecker = (\n subject: string | null | undefined,\n actionIdFromContext: string | undefined,\n userPermissions: AuthPermission[] | undefined\n): ((path: string[]) => boolean) | undefined => {\n if (userPermissions === undefined || subject === undefined) {\n return undefined;\n }\n\n return (path: string[]) => {\n let currentActionId = actionIdFromContext;\n let adjustedPath = path;\n\n if (currentActionId === undefined && path.length > 0) {\n if (path[0].includes('plugin::') || path[0].includes('admin::')) {\n currentActionId = path[0];\n adjustedPath = path.slice(1);\n }\n }\n\n if (currentActionId === undefined) {\n return false;\n }\n\n const matchingPerm = userPermissions.find(\n (perm) => perm.action === currentActionId && perm.subject === subject\n );\n\n if (matchingPerm === undefined) {\n return false;\n }\n\n const fieldsIndex = adjustedPath.indexOf('fields');\n\n if (fieldsIndex !== -1 && fieldsIndex < adjustedPath.length - 1) {\n const fieldPath = adjustedPath.slice(fieldsIndex + 1).join('.');\n const fields = matchingPerm.properties?.fields;\n\n if (fields === null || fields === undefined) {\n return true;\n }\n\n if (Array.isArray(fields) && fields.length === 0) {\n return false;\n }\n\n return (\n Array.isArray(fields) &&\n fields.some((f) => fieldPath === f || fieldPath.startsWith(`${f}.`))\n );\n }\n\n return true;\n };\n};\n"],"names":["createFieldPermissionChecker","actionId","subject","userPermissions","undefined","path","matchingPerm","find","perm","action","fieldsIndex","indexOf","length","fieldPath","slice","join","fields","properties","Array","isArray","some","allowedField","startsWith","createDynamicActionPermissionChecker","actionIdFromContext","currentActionId","adjustedPath","includes","f"],"mappings":"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"}
|
|
@@ -8,24 +8,50 @@ var objects = require('../../../../../utils/objects.js');
|
|
|
8
8
|
* of an object.
|
|
9
9
|
* This utility is very helpful when dealing with parent<>children checkboxes
|
|
10
10
|
*/ const updateValues = (obj, valueToSet, isFieldUpdate = false)=>{
|
|
11
|
-
return Object.
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
// @ts-expect-error – TODO: type better
|
|
15
|
-
acc[current] = currentValue;
|
|
11
|
+
return Object.entries(obj).reduce((acc, [key, value])=>{
|
|
12
|
+
if (key === 'conditions' && !isFieldUpdate) {
|
|
13
|
+
acc[key] = value;
|
|
16
14
|
return acc;
|
|
17
15
|
}
|
|
18
|
-
if (objects.isObject(
|
|
16
|
+
if (objects.isObject(value)) {
|
|
19
17
|
return {
|
|
20
18
|
...acc,
|
|
21
|
-
[
|
|
19
|
+
[key]: updateValues(value, valueToSet, key === 'fields')
|
|
22
20
|
};
|
|
23
21
|
}
|
|
24
|
-
|
|
25
|
-
acc
|
|
22
|
+
acc[key] = valueToSet;
|
|
23
|
+
return acc;
|
|
24
|
+
}, {});
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Permission-aware version of updateValues.
|
|
28
|
+
* When permissionChecker is undefined (Role editing), behaves like updateValues.
|
|
29
|
+
* When permissionChecker is provided (Admin Token editing), filters leaf updates based on permissions.
|
|
30
|
+
*/ const updateValuesWithPermissions = (obj, valueToSet, permissionChecker, currentPath = [], isFieldUpdate = false)=>{
|
|
31
|
+
if (permissionChecker === undefined) {
|
|
32
|
+
return updateValues(obj, valueToSet, isFieldUpdate);
|
|
33
|
+
}
|
|
34
|
+
return Object.entries(obj).reduce((acc, [key, value])=>{
|
|
35
|
+
const newPath = [
|
|
36
|
+
...currentPath,
|
|
37
|
+
key
|
|
38
|
+
];
|
|
39
|
+
if (key === 'conditions' && !isFieldUpdate) {
|
|
40
|
+
acc[key] = value;
|
|
41
|
+
return acc;
|
|
42
|
+
}
|
|
43
|
+
if (objects.isObject(value)) {
|
|
44
|
+
return {
|
|
45
|
+
...acc,
|
|
46
|
+
[key]: updateValuesWithPermissions(value, valueToSet, permissionChecker, newPath, key === 'fields')
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
const hasPermission = permissionChecker(newPath);
|
|
50
|
+
acc[key] = hasPermission ? valueToSet : value;
|
|
26
51
|
return acc;
|
|
27
52
|
}, {});
|
|
28
53
|
};
|
|
29
54
|
|
|
30
55
|
exports.updateValues = updateValues;
|
|
56
|
+
exports.updateValuesWithPermissions = updateValuesWithPermissions;
|
|
31
57
|
//# sourceMappingURL=updateValues.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateValues.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/utils/updateValues.ts"],"sourcesContent":["import { isObject } from '../../../../../utils/objects';\n\n/**\n * Sets all the none object values of an object to the given one\n * It preserves the shape of the object, it only modifies the leafs\n * of an object.\n * This utility is very helpful when dealing with parent<>children checkboxes\n */\nconst updateValues = (obj: object
|
|
1
|
+
{"version":3,"file":"updateValues.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/utils/updateValues.ts"],"sourcesContent":["import { isObject } from '../../../../../utils/objects';\n\n/**\n * Sets all the none object values of an object to the given one\n * It preserves the shape of the object, it only modifies the leafs\n * of an object.\n * This utility is very helpful when dealing with parent<>children checkboxes\n */\nconst updateValues = (\n obj: object,\n valueToSet: boolean,\n isFieldUpdate = false\n): Record<string, unknown> => {\n return Object.entries(obj).reduce<Record<string, unknown>>((acc, [key, value]) => {\n if (key === 'conditions' && !isFieldUpdate) {\n acc[key] = value;\n\n return acc;\n }\n\n if (isObject(value)) {\n return { ...acc, [key]: updateValues(value, valueToSet, key === 'fields') };\n }\n\n acc[key] = valueToSet;\n\n return acc;\n }, {});\n};\n\n/**\n * Permission-aware version of updateValues.\n * When permissionChecker is undefined (Role editing), behaves like updateValues.\n * When permissionChecker is provided (Admin Token editing), filters leaf updates based on permissions.\n */\nconst updateValuesWithPermissions = (\n obj: object,\n valueToSet: boolean,\n permissionChecker?: (path: string[]) => boolean,\n currentPath: string[] = [],\n isFieldUpdate = false\n): Record<string, unknown> => {\n if (permissionChecker === undefined) {\n return updateValues(obj, valueToSet, isFieldUpdate);\n }\n\n return Object.entries(obj).reduce<Record<string, unknown>>((acc, [key, value]) => {\n const newPath = [...currentPath, key];\n\n if (key === 'conditions' && !isFieldUpdate) {\n acc[key] = value;\n return acc;\n }\n\n if (isObject(value)) {\n return {\n ...acc,\n [key]: updateValuesWithPermissions(\n value,\n valueToSet,\n permissionChecker,\n newPath,\n key === 'fields'\n ),\n };\n }\n\n const hasPermission = permissionChecker(newPath);\n acc[key] = hasPermission ? valueToSet : value;\n\n return acc;\n }, {});\n};\n\nexport { updateValues, updateValuesWithPermissions };\n"],"names":["updateValues","obj","valueToSet","isFieldUpdate","Object","entries","reduce","acc","key","value","isObject","updateValuesWithPermissions","permissionChecker","currentPath","undefined","newPath","hasPermission"],"mappings":";;;;AAEA;;;;;AAKC,UACKA,YAAAA,GAAe,CACnBC,GAAAA,EACAC,UAAAA,EACAC,gBAAgB,KAAK,GAAA;IAErB,OAAOC,MAAAA,CAAOC,OAAO,CAACJ,GAAAA,CAAAA,CAAKK,MAAM,CAA0B,CAACC,GAAAA,EAAK,CAACC,GAAAA,EAAKC,KAAAA,CAAM,GAAA;QAC3E,IAAID,GAAAA,KAAQ,YAAA,IAAgB,CAACL,aAAAA,EAAe;YAC1CI,GAAG,CAACC,IAAI,GAAGC,KAAAA;YAEX,OAAOF,GAAAA;AACT,QAAA;AAEA,QAAA,IAAIG,iBAASD,KAAAA,CAAAA,EAAQ;YACnB,OAAO;AAAE,gBAAA,GAAGF,GAAG;AAAE,gBAAA,CAACC,GAAAA,GAAMR,YAAAA,CAAaS,KAAAA,EAAOP,YAAYM,GAAAA,KAAQ,QAAA;AAAU,aAAA;AAC5E,QAAA;QAEAD,GAAG,CAACC,IAAI,GAAGN,UAAAA;QAEX,OAAOK,GAAAA;AACT,IAAA,CAAA,EAAG,EAAC,CAAA;AACN;AAEA;;;;IAKA,MAAMI,2BAAAA,GAA8B,CAClCV,GAAAA,EACAC,UAAAA,EACAU,mBACAC,WAAAA,GAAwB,EAAE,EAC1BV,aAAAA,GAAgB,KAAK,GAAA;AAErB,IAAA,IAAIS,sBAAsBE,SAAAA,EAAW;QACnC,OAAOd,YAAAA,CAAaC,KAAKC,UAAAA,EAAYC,aAAAA,CAAAA;AACvC,IAAA;IAEA,OAAOC,MAAAA,CAAOC,OAAO,CAACJ,GAAAA,CAAAA,CAAKK,MAAM,CAA0B,CAACC,GAAAA,EAAK,CAACC,GAAAA,EAAKC,KAAAA,CAAM,GAAA;AAC3E,QAAA,MAAMM,OAAAA,GAAU;AAAIF,YAAAA,GAAAA,WAAAA;AAAaL,YAAAA;AAAI,SAAA;QAErC,IAAIA,GAAAA,KAAQ,YAAA,IAAgB,CAACL,aAAAA,EAAe;YAC1CI,GAAG,CAACC,IAAI,GAAGC,KAAAA;YACX,OAAOF,GAAAA;AACT,QAAA;AAEA,QAAA,IAAIG,iBAASD,KAAAA,CAAAA,EAAQ;YACnB,OAAO;AACL,gBAAA,GAAGF,GAAG;AACN,gBAAA,CAACC,MAAMG,2BAAAA,CACLF,OACAP,UAAAA,EACAU,iBAAAA,EACAG,SACAP,GAAAA,KAAQ,QAAA;AAEZ,aAAA;AACF,QAAA;AAEA,QAAA,MAAMQ,gBAAgBJ,iBAAAA,CAAkBG,OAAAA,CAAAA;AACxCR,QAAAA,GAAG,CAACC,GAAAA,CAAI,GAAGQ,aAAAA,GAAgBd,UAAAA,GAAaO,KAAAA;QAExC,OAAOF,GAAAA;AACT,IAAA,CAAA,EAAG,EAAC,CAAA;AACN;;;;;"}
|
|
@@ -6,24 +6,49 @@ import { isObject } from '../../../../../utils/objects.mjs';
|
|
|
6
6
|
* of an object.
|
|
7
7
|
* This utility is very helpful when dealing with parent<>children checkboxes
|
|
8
8
|
*/ const updateValues = (obj, valueToSet, isFieldUpdate = false)=>{
|
|
9
|
-
return Object.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
// @ts-expect-error – TODO: type better
|
|
13
|
-
acc[current] = currentValue;
|
|
9
|
+
return Object.entries(obj).reduce((acc, [key, value])=>{
|
|
10
|
+
if (key === 'conditions' && !isFieldUpdate) {
|
|
11
|
+
acc[key] = value;
|
|
14
12
|
return acc;
|
|
15
13
|
}
|
|
16
|
-
if (isObject(
|
|
14
|
+
if (isObject(value)) {
|
|
17
15
|
return {
|
|
18
16
|
...acc,
|
|
19
|
-
[
|
|
17
|
+
[key]: updateValues(value, valueToSet, key === 'fields')
|
|
20
18
|
};
|
|
21
19
|
}
|
|
22
|
-
|
|
23
|
-
acc
|
|
20
|
+
acc[key] = valueToSet;
|
|
21
|
+
return acc;
|
|
22
|
+
}, {});
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Permission-aware version of updateValues.
|
|
26
|
+
* When permissionChecker is undefined (Role editing), behaves like updateValues.
|
|
27
|
+
* When permissionChecker is provided (Admin Token editing), filters leaf updates based on permissions.
|
|
28
|
+
*/ const updateValuesWithPermissions = (obj, valueToSet, permissionChecker, currentPath = [], isFieldUpdate = false)=>{
|
|
29
|
+
if (permissionChecker === undefined) {
|
|
30
|
+
return updateValues(obj, valueToSet, isFieldUpdate);
|
|
31
|
+
}
|
|
32
|
+
return Object.entries(obj).reduce((acc, [key, value])=>{
|
|
33
|
+
const newPath = [
|
|
34
|
+
...currentPath,
|
|
35
|
+
key
|
|
36
|
+
];
|
|
37
|
+
if (key === 'conditions' && !isFieldUpdate) {
|
|
38
|
+
acc[key] = value;
|
|
39
|
+
return acc;
|
|
40
|
+
}
|
|
41
|
+
if (isObject(value)) {
|
|
42
|
+
return {
|
|
43
|
+
...acc,
|
|
44
|
+
[key]: updateValuesWithPermissions(value, valueToSet, permissionChecker, newPath, key === 'fields')
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
const hasPermission = permissionChecker(newPath);
|
|
48
|
+
acc[key] = hasPermission ? valueToSet : value;
|
|
24
49
|
return acc;
|
|
25
50
|
}, {});
|
|
26
51
|
};
|
|
27
52
|
|
|
28
|
-
export { updateValues };
|
|
53
|
+
export { updateValues, updateValuesWithPermissions };
|
|
29
54
|
//# sourceMappingURL=updateValues.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateValues.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/utils/updateValues.ts"],"sourcesContent":["import { isObject } from '../../../../../utils/objects';\n\n/**\n * Sets all the none object values of an object to the given one\n * It preserves the shape of the object, it only modifies the leafs\n * of an object.\n * This utility is very helpful when dealing with parent<>children checkboxes\n */\nconst updateValues = (obj: object
|
|
1
|
+
{"version":3,"file":"updateValues.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/utils/updateValues.ts"],"sourcesContent":["import { isObject } from '../../../../../utils/objects';\n\n/**\n * Sets all the none object values of an object to the given one\n * It preserves the shape of the object, it only modifies the leafs\n * of an object.\n * This utility is very helpful when dealing with parent<>children checkboxes\n */\nconst updateValues = (\n obj: object,\n valueToSet: boolean,\n isFieldUpdate = false\n): Record<string, unknown> => {\n return Object.entries(obj).reduce<Record<string, unknown>>((acc, [key, value]) => {\n if (key === 'conditions' && !isFieldUpdate) {\n acc[key] = value;\n\n return acc;\n }\n\n if (isObject(value)) {\n return { ...acc, [key]: updateValues(value, valueToSet, key === 'fields') };\n }\n\n acc[key] = valueToSet;\n\n return acc;\n }, {});\n};\n\n/**\n * Permission-aware version of updateValues.\n * When permissionChecker is undefined (Role editing), behaves like updateValues.\n * When permissionChecker is provided (Admin Token editing), filters leaf updates based on permissions.\n */\nconst updateValuesWithPermissions = (\n obj: object,\n valueToSet: boolean,\n permissionChecker?: (path: string[]) => boolean,\n currentPath: string[] = [],\n isFieldUpdate = false\n): Record<string, unknown> => {\n if (permissionChecker === undefined) {\n return updateValues(obj, valueToSet, isFieldUpdate);\n }\n\n return Object.entries(obj).reduce<Record<string, unknown>>((acc, [key, value]) => {\n const newPath = [...currentPath, key];\n\n if (key === 'conditions' && !isFieldUpdate) {\n acc[key] = value;\n return acc;\n }\n\n if (isObject(value)) {\n return {\n ...acc,\n [key]: updateValuesWithPermissions(\n value,\n valueToSet,\n permissionChecker,\n newPath,\n key === 'fields'\n ),\n };\n }\n\n const hasPermission = permissionChecker(newPath);\n acc[key] = hasPermission ? valueToSet : value;\n\n return acc;\n }, {});\n};\n\nexport { updateValues, updateValuesWithPermissions };\n"],"names":["updateValues","obj","valueToSet","isFieldUpdate","Object","entries","reduce","acc","key","value","isObject","updateValuesWithPermissions","permissionChecker","currentPath","undefined","newPath","hasPermission"],"mappings":";;AAEA;;;;;AAKC,UACKA,YAAAA,GAAe,CACnBC,GAAAA,EACAC,UAAAA,EACAC,gBAAgB,KAAK,GAAA;IAErB,OAAOC,MAAAA,CAAOC,OAAO,CAACJ,GAAAA,CAAAA,CAAKK,MAAM,CAA0B,CAACC,GAAAA,EAAK,CAACC,GAAAA,EAAKC,KAAAA,CAAM,GAAA;QAC3E,IAAID,GAAAA,KAAQ,YAAA,IAAgB,CAACL,aAAAA,EAAe;YAC1CI,GAAG,CAACC,IAAI,GAAGC,KAAAA;YAEX,OAAOF,GAAAA;AACT,QAAA;AAEA,QAAA,IAAIG,SAASD,KAAAA,CAAAA,EAAQ;YACnB,OAAO;AAAE,gBAAA,GAAGF,GAAG;AAAE,gBAAA,CAACC,GAAAA,GAAMR,YAAAA,CAAaS,KAAAA,EAAOP,YAAYM,GAAAA,KAAQ,QAAA;AAAU,aAAA;AAC5E,QAAA;QAEAD,GAAG,CAACC,IAAI,GAAGN,UAAAA;QAEX,OAAOK,GAAAA;AACT,IAAA,CAAA,EAAG,EAAC,CAAA;AACN;AAEA;;;;IAKA,MAAMI,2BAAAA,GAA8B,CAClCV,GAAAA,EACAC,UAAAA,EACAU,mBACAC,WAAAA,GAAwB,EAAE,EAC1BV,aAAAA,GAAgB,KAAK,GAAA;AAErB,IAAA,IAAIS,sBAAsBE,SAAAA,EAAW;QACnC,OAAOd,YAAAA,CAAaC,KAAKC,UAAAA,EAAYC,aAAAA,CAAAA;AACvC,IAAA;IAEA,OAAOC,MAAAA,CAAOC,OAAO,CAACJ,GAAAA,CAAAA,CAAKK,MAAM,CAA0B,CAACC,GAAAA,EAAK,CAACC,GAAAA,EAAKC,KAAAA,CAAM,GAAA;AAC3E,QAAA,MAAMM,OAAAA,GAAU;AAAIF,YAAAA,GAAAA,WAAAA;AAAaL,YAAAA;AAAI,SAAA;QAErC,IAAIA,GAAAA,KAAQ,YAAA,IAAgB,CAACL,aAAAA,EAAe;YAC1CI,GAAG,CAACC,IAAI,GAAGC,KAAAA;YACX,OAAOF,GAAAA;AACT,QAAA;AAEA,QAAA,IAAIG,SAASD,KAAAA,CAAAA,EAAQ;YACnB,OAAO;AACL,gBAAA,GAAGF,GAAG;AACN,gBAAA,CAACC,MAAMG,2BAAAA,CACLF,OACAP,UAAAA,EACAU,iBAAAA,EACAG,SACAP,GAAAA,KAAQ,QAAA;AAEZ,aAAA;AACF,QAAA;AAEA,QAAA,MAAMQ,gBAAgBJ,iBAAAA,CAAkBG,OAAAA,CAAAA;AACxCR,QAAAA,GAAG,CAACC,GAAAA,CAAI,GAAGQ,aAAAA,GAAgBd,UAAAA,GAAaO,KAAAA;QAExC,OAAOF,GAAAA;AACT,IAAA,CAAA,EAAG,EAAC,CAAA;AACN;;;;"}
|
|
@@ -24,7 +24,8 @@ const renderAdmin = async (mountNode, { plugins, customisations, features })=>{
|
|
|
24
24
|
return features?.future?.[name] === true;
|
|
25
25
|
}
|
|
26
26
|
},
|
|
27
|
-
//
|
|
27
|
+
// eslint-disable-next-line
|
|
28
|
+
// @ts-ignore – there's pollution from the global scope of Node. Cannot use @ts-expect-error because of build:code and build:types context collision. Cannot use @ts-expect-error because of build:code and build:types context collision.
|
|
28
29
|
features: {
|
|
29
30
|
SSO: 'sso',
|
|
30
31
|
AUDIT_LOGS: 'audit-logs',
|
|
@@ -39,7 +40,8 @@ const renderAdmin = async (mountNode, { plugins, customisations, features })=>{
|
|
|
39
40
|
nps: false,
|
|
40
41
|
promoteEE: true
|
|
41
42
|
},
|
|
42
|
-
//
|
|
43
|
+
// eslint-disable-next-line
|
|
44
|
+
// @ts-ignore – there's pollution from the global scope of Node. Cannot use @ts-expect-error because of build:code and build:types context collision.
|
|
43
45
|
ai: {
|
|
44
46
|
enabled: true
|
|
45
47
|
}
|
|
@@ -55,7 +57,8 @@ const renderAdmin = async (mountNode, { plugins, customisations, features })=>{
|
|
|
55
57
|
isEnabled: (featureName)=>features.some((feature)=>feature.name === featureName)
|
|
56
58
|
};
|
|
57
59
|
window.strapi.projectType = isEE ? 'Enterprise' : 'Community';
|
|
58
|
-
//
|
|
60
|
+
// eslint-disable-next-line
|
|
61
|
+
// @ts-ignore – there's pollution from the global scope of Node. Cannot use @ts-expect-error because of build:code and build:types context collision.
|
|
59
62
|
window.strapi.ai = ai;
|
|
60
63
|
} catch (err) {
|
|
61
64
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sources":["../../../../admin/src/render.ts"],"sourcesContent":["/* eslint-disable no-undef */\nimport { createRoot } from 'react-dom/client';\n\nimport { StrapiApp, StrapiAppConstructorArgs } from './StrapiApp';\nimport { getFetchClient } from './utils/getFetchClient';\nimport { createAbsoluteUrl } from './utils/urls';\n\nimport type { Modules } from '@strapi/types';\n\ninterface RenderAdminArgs {\n customisations: {\n register?: (app: StrapiApp) => Promise<void> | void;\n bootstrap?: (app: StrapiApp) => Promise<void> | void;\n config?: StrapiAppConstructorArgs['config'];\n };\n plugins: StrapiAppConstructorArgs['appPlugins'];\n features?: Modules.Features.FeaturesService['config'];\n}\n\nconst renderAdmin = async (\n mountNode: HTMLElement | null,\n { plugins, customisations, features }: RenderAdminArgs\n) => {\n if (!mountNode) {\n throw new Error('[@strapi/admin]: Could not find the root element to mount the admin app');\n }\n\n window.strapi = {\n /**\n * This ENV variable is passed from the strapi instance, by default no url is set\n * in the config and therefore the instance returns you an empty string so URLs are relative.\n *\n * To ensure that the backendURL is always set, we use the window.location.origin as a fallback.\n */\n backendURL: createAbsoluteUrl(process.env.STRAPI_ADMIN_BACKEND_URL),\n isEE: false,\n isTrial: false,\n telemetryDisabled: process.env.STRAPI_TELEMETRY_DISABLED === 'true',\n future: {\n isEnabled: (name: keyof NonNullable<Modules.Features.FeaturesConfig['future']>) => {\n return features?.future?.[name] === true;\n },\n },\n // @ts-
|
|
1
|
+
{"version":3,"file":"render.js","sources":["../../../../admin/src/render.ts"],"sourcesContent":["/* eslint-disable no-undef */\nimport { createRoot } from 'react-dom/client';\n\nimport { StrapiApp, StrapiAppConstructorArgs } from './StrapiApp';\nimport { getFetchClient } from './utils/getFetchClient';\nimport { createAbsoluteUrl } from './utils/urls';\n\nimport type { Modules } from '@strapi/types';\n\ninterface RenderAdminArgs {\n customisations: {\n register?: (app: StrapiApp) => Promise<void> | void;\n bootstrap?: (app: StrapiApp) => Promise<void> | void;\n config?: StrapiAppConstructorArgs['config'];\n };\n plugins: StrapiAppConstructorArgs['appPlugins'];\n features?: Modules.Features.FeaturesService['config'];\n}\n\nconst renderAdmin = async (\n mountNode: HTMLElement | null,\n { plugins, customisations, features }: RenderAdminArgs\n) => {\n if (!mountNode) {\n throw new Error('[@strapi/admin]: Could not find the root element to mount the admin app');\n }\n\n window.strapi = {\n /**\n * This ENV variable is passed from the strapi instance, by default no url is set\n * in the config and therefore the instance returns you an empty string so URLs are relative.\n *\n * To ensure that the backendURL is always set, we use the window.location.origin as a fallback.\n */\n backendURL: createAbsoluteUrl(process.env.STRAPI_ADMIN_BACKEND_URL),\n isEE: false,\n isTrial: false,\n telemetryDisabled: process.env.STRAPI_TELEMETRY_DISABLED === 'true',\n future: {\n isEnabled: (name: keyof NonNullable<Modules.Features.FeaturesConfig['future']>) => {\n return features?.future?.[name] === true;\n },\n },\n // eslint-disable-next-line\n // @ts-ignore – there's pollution from the global scope of Node. Cannot use @ts-expect-error because of build:code and build:types context collision. Cannot use @ts-expect-error because of build:code and build:types context collision.\n features: {\n SSO: 'sso',\n AUDIT_LOGS: 'audit-logs',\n REVIEW_WORKFLOWS: 'review-workflows',\n /**\n * If we don't get the license then we know it's not EE\n * so no feature is enabled.\n */\n isEnabled: () => false,\n },\n projectType: 'Community',\n flags: {\n nps: false,\n promoteEE: true,\n },\n // eslint-disable-next-line\n // @ts-ignore – there's pollution from the global scope of Node. Cannot use @ts-expect-error because of build:code and build:types context collision.\n ai: {\n enabled: true,\n },\n };\n\n const { get } = getFetchClient();\n\n interface ProjectType extends Pick<Window['strapi'], 'flags'> {\n isEE: boolean;\n isTrial: boolean;\n features: {\n name: string;\n }[];\n ai: {\n enabled: boolean;\n };\n }\n\n try {\n const {\n data: {\n data: { isEE, isTrial, features, flags, ai },\n },\n } = await get<{ data: ProjectType }>('/admin/project-type');\n\n window.strapi.isEE = isEE;\n window.strapi.isTrialLicense = isTrial;\n window.strapi.flags = flags;\n window.strapi.features = {\n ...window.strapi.features,\n isEnabled: (featureName: string | undefined) =>\n features.some((feature) => feature.name === featureName),\n };\n window.strapi.projectType = isEE ? 'Enterprise' : 'Community';\n // eslint-disable-next-line\n // @ts-ignore – there's pollution from the global scope of Node. Cannot use @ts-expect-error because of build:code and build:types context collision.\n window.strapi.ai = ai;\n } catch (err) {\n /**\n * If this fails, we simply don't activate any EE features.\n * Should we warn clearer in the UI?\n */\n console.error(err);\n }\n\n const app = new StrapiApp({\n config: customisations?.config,\n appPlugins: plugins,\n });\n\n await app.register(customisations?.register);\n await app.bootstrap(customisations?.bootstrap);\n await app.loadTrads(customisations?.config?.translations);\n\n createRoot(mountNode).render(app.render());\n\n if (\n typeof module !== 'undefined' &&\n module &&\n 'hot' in module &&\n typeof module.hot === 'object' &&\n module.hot !== null &&\n 'accept' in module.hot &&\n typeof module.hot.accept === 'function'\n ) {\n module.hot.accept();\n }\n\n if (typeof import.meta.hot?.accept === 'function') {\n import.meta.hot.accept();\n }\n};\n\nexport { renderAdmin };\nexport type { RenderAdminArgs };\n"],"names":["renderAdmin","mountNode","plugins","customisations","features","Error","window","strapi","backendURL","createAbsoluteUrl","process","env","STRAPI_ADMIN_BACKEND_URL","isEE","isTrial","telemetryDisabled","STRAPI_TELEMETRY_DISABLED","future","isEnabled","name","SSO","AUDIT_LOGS","REVIEW_WORKFLOWS","projectType","flags","nps","promoteEE","ai","enabled","get","getFetchClient","data","isTrialLicense","featureName","some","feature","err","console","error","app","StrapiApp","config","appPlugins","register","bootstrap","loadTrads","translations","createRoot","render","module","hot","accept"],"mappings":"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"}
|
|
@@ -22,7 +22,8 @@ const renderAdmin = async (mountNode, { plugins, customisations, features })=>{
|
|
|
22
22
|
return features?.future?.[name] === true;
|
|
23
23
|
}
|
|
24
24
|
},
|
|
25
|
-
//
|
|
25
|
+
// eslint-disable-next-line
|
|
26
|
+
// @ts-ignore – there's pollution from the global scope of Node. Cannot use @ts-expect-error because of build:code and build:types context collision. Cannot use @ts-expect-error because of build:code and build:types context collision.
|
|
26
27
|
features: {
|
|
27
28
|
SSO: 'sso',
|
|
28
29
|
AUDIT_LOGS: 'audit-logs',
|
|
@@ -37,7 +38,8 @@ const renderAdmin = async (mountNode, { plugins, customisations, features })=>{
|
|
|
37
38
|
nps: false,
|
|
38
39
|
promoteEE: true
|
|
39
40
|
},
|
|
40
|
-
//
|
|
41
|
+
// eslint-disable-next-line
|
|
42
|
+
// @ts-ignore – there's pollution from the global scope of Node. Cannot use @ts-expect-error because of build:code and build:types context collision.
|
|
41
43
|
ai: {
|
|
42
44
|
enabled: true
|
|
43
45
|
}
|
|
@@ -53,7 +55,8 @@ const renderAdmin = async (mountNode, { plugins, customisations, features })=>{
|
|
|
53
55
|
isEnabled: (featureName)=>features.some((feature)=>feature.name === featureName)
|
|
54
56
|
};
|
|
55
57
|
window.strapi.projectType = isEE ? 'Enterprise' : 'Community';
|
|
56
|
-
//
|
|
58
|
+
// eslint-disable-next-line
|
|
59
|
+
// @ts-ignore – there's pollution from the global scope of Node. Cannot use @ts-expect-error because of build:code and build:types context collision.
|
|
57
60
|
window.strapi.ai = ai;
|
|
58
61
|
} catch (err) {
|
|
59
62
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.mjs","sources":["../../../../admin/src/render.ts"],"sourcesContent":["/* eslint-disable no-undef */\nimport { createRoot } from 'react-dom/client';\n\nimport { StrapiApp, StrapiAppConstructorArgs } from './StrapiApp';\nimport { getFetchClient } from './utils/getFetchClient';\nimport { createAbsoluteUrl } from './utils/urls';\n\nimport type { Modules } from '@strapi/types';\n\ninterface RenderAdminArgs {\n customisations: {\n register?: (app: StrapiApp) => Promise<void> | void;\n bootstrap?: (app: StrapiApp) => Promise<void> | void;\n config?: StrapiAppConstructorArgs['config'];\n };\n plugins: StrapiAppConstructorArgs['appPlugins'];\n features?: Modules.Features.FeaturesService['config'];\n}\n\nconst renderAdmin = async (\n mountNode: HTMLElement | null,\n { plugins, customisations, features }: RenderAdminArgs\n) => {\n if (!mountNode) {\n throw new Error('[@strapi/admin]: Could not find the root element to mount the admin app');\n }\n\n window.strapi = {\n /**\n * This ENV variable is passed from the strapi instance, by default no url is set\n * in the config and therefore the instance returns you an empty string so URLs are relative.\n *\n * To ensure that the backendURL is always set, we use the window.location.origin as a fallback.\n */\n backendURL: createAbsoluteUrl(process.env.STRAPI_ADMIN_BACKEND_URL),\n isEE: false,\n isTrial: false,\n telemetryDisabled: process.env.STRAPI_TELEMETRY_DISABLED === 'true',\n future: {\n isEnabled: (name: keyof NonNullable<Modules.Features.FeaturesConfig['future']>) => {\n return features?.future?.[name] === true;\n },\n },\n // @ts-
|
|
1
|
+
{"version":3,"file":"render.mjs","sources":["../../../../admin/src/render.ts"],"sourcesContent":["/* eslint-disable no-undef */\nimport { createRoot } from 'react-dom/client';\n\nimport { StrapiApp, StrapiAppConstructorArgs } from './StrapiApp';\nimport { getFetchClient } from './utils/getFetchClient';\nimport { createAbsoluteUrl } from './utils/urls';\n\nimport type { Modules } from '@strapi/types';\n\ninterface RenderAdminArgs {\n customisations: {\n register?: (app: StrapiApp) => Promise<void> | void;\n bootstrap?: (app: StrapiApp) => Promise<void> | void;\n config?: StrapiAppConstructorArgs['config'];\n };\n plugins: StrapiAppConstructorArgs['appPlugins'];\n features?: Modules.Features.FeaturesService['config'];\n}\n\nconst renderAdmin = async (\n mountNode: HTMLElement | null,\n { plugins, customisations, features }: RenderAdminArgs\n) => {\n if (!mountNode) {\n throw new Error('[@strapi/admin]: Could not find the root element to mount the admin app');\n }\n\n window.strapi = {\n /**\n * This ENV variable is passed from the strapi instance, by default no url is set\n * in the config and therefore the instance returns you an empty string so URLs are relative.\n *\n * To ensure that the backendURL is always set, we use the window.location.origin as a fallback.\n */\n backendURL: createAbsoluteUrl(process.env.STRAPI_ADMIN_BACKEND_URL),\n isEE: false,\n isTrial: false,\n telemetryDisabled: process.env.STRAPI_TELEMETRY_DISABLED === 'true',\n future: {\n isEnabled: (name: keyof NonNullable<Modules.Features.FeaturesConfig['future']>) => {\n return features?.future?.[name] === true;\n },\n },\n // eslint-disable-next-line\n // @ts-ignore – there's pollution from the global scope of Node. Cannot use @ts-expect-error because of build:code and build:types context collision. Cannot use @ts-expect-error because of build:code and build:types context collision.\n features: {\n SSO: 'sso',\n AUDIT_LOGS: 'audit-logs',\n REVIEW_WORKFLOWS: 'review-workflows',\n /**\n * If we don't get the license then we know it's not EE\n * so no feature is enabled.\n */\n isEnabled: () => false,\n },\n projectType: 'Community',\n flags: {\n nps: false,\n promoteEE: true,\n },\n // eslint-disable-next-line\n // @ts-ignore – there's pollution from the global scope of Node. Cannot use @ts-expect-error because of build:code and build:types context collision.\n ai: {\n enabled: true,\n },\n };\n\n const { get } = getFetchClient();\n\n interface ProjectType extends Pick<Window['strapi'], 'flags'> {\n isEE: boolean;\n isTrial: boolean;\n features: {\n name: string;\n }[];\n ai: {\n enabled: boolean;\n };\n }\n\n try {\n const {\n data: {\n data: { isEE, isTrial, features, flags, ai },\n },\n } = await get<{ data: ProjectType }>('/admin/project-type');\n\n window.strapi.isEE = isEE;\n window.strapi.isTrialLicense = isTrial;\n window.strapi.flags = flags;\n window.strapi.features = {\n ...window.strapi.features,\n isEnabled: (featureName: string | undefined) =>\n features.some((feature) => feature.name === featureName),\n };\n window.strapi.projectType = isEE ? 'Enterprise' : 'Community';\n // eslint-disable-next-line\n // @ts-ignore – there's pollution from the global scope of Node. Cannot use @ts-expect-error because of build:code and build:types context collision.\n window.strapi.ai = ai;\n } catch (err) {\n /**\n * If this fails, we simply don't activate any EE features.\n * Should we warn clearer in the UI?\n */\n console.error(err);\n }\n\n const app = new StrapiApp({\n config: customisations?.config,\n appPlugins: plugins,\n });\n\n await app.register(customisations?.register);\n await app.bootstrap(customisations?.bootstrap);\n await app.loadTrads(customisations?.config?.translations);\n\n createRoot(mountNode).render(app.render());\n\n if (\n typeof module !== 'undefined' &&\n module &&\n 'hot' in module &&\n typeof module.hot === 'object' &&\n module.hot !== null &&\n 'accept' in module.hot &&\n typeof module.hot.accept === 'function'\n ) {\n module.hot.accept();\n }\n\n if (typeof import.meta.hot?.accept === 'function') {\n import.meta.hot.accept();\n }\n};\n\nexport { renderAdmin };\nexport type { RenderAdminArgs };\n"],"names":["renderAdmin","mountNode","plugins","customisations","features","Error","window","strapi","backendURL","createAbsoluteUrl","process","env","STRAPI_ADMIN_BACKEND_URL","isEE","isTrial","telemetryDisabled","STRAPI_TELEMETRY_DISABLED","future","isEnabled","name","SSO","AUDIT_LOGS","REVIEW_WORKFLOWS","projectType","flags","nps","promoteEE","ai","enabled","get","getFetchClient","data","isTrialLicense","featureName","some","feature","err","console","error","app","StrapiApp","config","appPlugins","register","bootstrap","loadTrads","translations","createRoot","render","module","hot","accept"],"mappings":"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"}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
var constants$2 = require('../../ee/admin/src/constants.js');
|
|
5
|
-
var constants
|
|
5
|
+
var constants = require('../../ee/admin/src/pages/SettingsPage/constants.js');
|
|
6
6
|
var AuthPage = require('./pages/Auth/AuthPage.js');
|
|
7
|
-
var constants = require('./pages/Settings/constants.js');
|
|
7
|
+
var constants$1 = require('./pages/Settings/constants.js');
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* These are routes we don't want to be able to be changed by plugins.
|
|
@@ -73,8 +73,8 @@ const getInitialRoutes = ()=>[
|
|
|
73
73
|
// }))
|
|
74
74
|
// ),
|
|
75
75
|
...[
|
|
76
|
-
...constants
|
|
77
|
-
...constants.ROUTES_CE
|
|
76
|
+
...constants.getEERoutes(),
|
|
77
|
+
...constants$1.ROUTES_CE()
|
|
78
78
|
].filter((route, index, refArray)=>refArray.findIndex((obj)=>obj.path === route.path) === index)
|
|
79
79
|
]
|
|
80
80
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sources":["../../../../admin/src/router.tsx"],"sourcesContent":["/* eslint-disable check-file/filename-naming-convention */\n\nimport { RouteObject } from 'react-router-dom';\n\nimport { getEERoutes as getBaseEERoutes } from '../../ee/admin/src/constants';\nimport { getEERoutes as getSettingsEERoutes } from '../../ee/admin/src/pages/SettingsPage/constants';\n\nimport { AuthPage } from './pages/Auth/AuthPage';\nimport { ROUTES_CE } from './pages/Settings/constants';\n\n/**\n * These are routes we don't want to be able to be changed by plugins.\n */\nconst getImmutableRoutes = (): RouteObject[] => [\n {\n path: 'usecase',\n lazy: async () => {\n const { PrivateUseCasePage } = await import('./pages/UseCasePage');\n\n return {\n Component: PrivateUseCasePage,\n };\n },\n },\n // this needs to go before auth/:authType because otherwise it won't match the route\n ...getBaseEERoutes(),\n {\n path: 'auth/:authType',\n element: <AuthPage />,\n },\n];\n\nconst getInitialRoutes = (): RouteObject[] => [\n {\n index: true,\n lazy: async () => {\n const { HomePage } = await import('./pages/Home/HomePage');\n\n return {\n Component: HomePage,\n };\n },\n },\n {\n path: 'me',\n lazy: async () => {\n const { ProfilePage } = await import('./pages/ProfilePage');\n\n return {\n Component: ProfilePage,\n };\n },\n },\n {\n path: 'settings/*',\n lazy: async () => {\n const { Layout } = await import('./pages/Settings/Layout');\n\n return {\n Component: Layout,\n };\n },\n children: [\n {\n path: 'application-infos',\n lazy: async () => {\n const { ApplicationInfoPage } = await import(\n './pages/Settings/pages/ApplicationInfo/ApplicationInfoPage'\n );\n\n return {\n Component: ApplicationInfoPage,\n };\n },\n },\n // ...Object.values(this.settings).flatMap(({ links }) =>\n // links.map(({ to, Component }) => ({\n // path: `${to}/*`,\n // element: (\n // <React.Suspense fallback={<Page.Loading />}>\n // <Component />\n // </React.Suspense>\n // ),\n // }))\n // ),\n ...[...getSettingsEERoutes(), ...ROUTES_CE].filter(\n (route, index, refArray) => refArray.findIndex((obj) => obj.path === route.path) === index\n ),\n ],\n },\n];\n\nexport { getImmutableRoutes, getInitialRoutes };\n"],"names":["getImmutableRoutes","path","lazy","PrivateUseCasePage","Component","getBaseEERoutes","element","_jsx","AuthPage","getInitialRoutes","index","HomePage","ProfilePage","Layout","children","ApplicationInfoPage","getSettingsEERoutes","ROUTES_CE","filter","route","refArray","findIndex","obj"],"mappings":";;;;;;;;AAUA;;IAGA,MAAMA,qBAAqB,IAAqB;AAC9C,QAAA;YACEC,IAAAA,EAAM,SAAA;YACNC,IAAAA,EAAM,UAAA;AACJ,gBAAA,MAAM,EAAEC,kBAAkB,EAAE,GAAG,MAAM,oDAAO,wBAAA,KAAA;gBAE5C,OAAO;oBACLC,SAAAA,EAAWD;AACb,iBAAA;AACF,YAAA;AACF,SAAA;;AAEGE,QAAAA,GAAAA,uBAAAA,EAAAA;AACH,QAAA;YACEJ,IAAAA,EAAM,gBAAA;AACNK,YAAAA,OAAAA,gBAASC,cAAA,CAACC,iBAAAA,EAAAA,EAAAA;AACZ;AACD;AAED,MAAMC,mBAAmB,IAAqB;AAC5C,QAAA;YACEC,KAAAA,EAAO,IAAA;YACPR,IAAAA,EAAM,UAAA;AACJ,gBAAA,MAAM,EAAES,QAAQ,EAAE,GAAG,MAAM,oDAAO,0BAAA,KAAA;gBAElC,OAAO;oBACLP,SAAAA,EAAWO;AACb,iBAAA;AACF,YAAA;AACF,SAAA;AACA,QAAA;YACEV,IAAAA,EAAM,IAAA;YACNC,IAAAA,EAAM,UAAA;AACJ,gBAAA,MAAM,EAAEU,WAAW,EAAE,GAAG,MAAM,oDAAO,wBAAA,KAAA;gBAErC,OAAO;oBACLR,SAAAA,EAAWQ;AACb,iBAAA;AACF,YAAA;AACF,SAAA;AACA,QAAA;YACEX,IAAAA,EAAM,YAAA;YACNC,IAAAA,EAAM,UAAA;AACJ,gBAAA,MAAM,EAAEW,MAAM,EAAE,GAAG,MAAM,oDAAO,4BAAA,KAAA;gBAEhC,OAAO;oBACLT,SAAAA,EAAWS;AACb,iBAAA;AACF,YAAA,CAAA;YACAC,QAAAA,EAAU;AACR,gBAAA;oBACEb,IAAAA,EAAM,mBAAA;oBACNC,IAAAA,EAAM,UAAA;AACJ,wBAAA,MAAM,EAAEa,mBAAmB,EAAE,GAAG,MAAM,oDACpC,+DAAA,KAAA;wBAGF,OAAO;4BACLX,SAAAA,EAAWW;AACb,yBAAA;AACF,oBAAA;AACF,iBAAA;;;;;;;;;;;AAWG,gBAAA,GAAA;AAAIC,oBAAAA,GAAAA,
|
|
1
|
+
{"version":3,"file":"router.js","sources":["../../../../admin/src/router.tsx"],"sourcesContent":["/* eslint-disable check-file/filename-naming-convention */\n\nimport { RouteObject } from 'react-router-dom';\n\nimport { getEERoutes as getBaseEERoutes } from '../../ee/admin/src/constants';\nimport { getEERoutes as getSettingsEERoutes } from '../../ee/admin/src/pages/SettingsPage/constants';\n\nimport { AuthPage } from './pages/Auth/AuthPage';\nimport { ROUTES_CE } from './pages/Settings/constants';\n\n/**\n * These are routes we don't want to be able to be changed by plugins.\n */\nconst getImmutableRoutes = (): RouteObject[] => [\n {\n path: 'usecase',\n lazy: async () => {\n const { PrivateUseCasePage } = await import('./pages/UseCasePage');\n\n return {\n Component: PrivateUseCasePage,\n };\n },\n },\n // this needs to go before auth/:authType because otherwise it won't match the route\n ...getBaseEERoutes(),\n {\n path: 'auth/:authType',\n element: <AuthPage />,\n },\n];\n\nconst getInitialRoutes = (): RouteObject[] => [\n {\n index: true,\n lazy: async () => {\n const { HomePage } = await import('./pages/Home/HomePage');\n\n return {\n Component: HomePage,\n };\n },\n },\n {\n path: 'me',\n lazy: async () => {\n const { ProfilePage } = await import('./pages/ProfilePage');\n\n return {\n Component: ProfilePage,\n };\n },\n },\n {\n path: 'settings/*',\n lazy: async () => {\n const { Layout } = await import('./pages/Settings/Layout');\n\n return {\n Component: Layout,\n };\n },\n children: [\n {\n path: 'application-infos',\n lazy: async () => {\n const { ApplicationInfoPage } = await import(\n './pages/Settings/pages/ApplicationInfo/ApplicationInfoPage'\n );\n\n return {\n Component: ApplicationInfoPage,\n };\n },\n },\n // ...Object.values(this.settings).flatMap(({ links }) =>\n // links.map(({ to, Component }) => ({\n // path: `${to}/*`,\n // element: (\n // <React.Suspense fallback={<Page.Loading />}>\n // <Component />\n // </React.Suspense>\n // ),\n // }))\n // ),\n ...[...getSettingsEERoutes(), ...ROUTES_CE()].filter(\n (route, index, refArray) => refArray.findIndex((obj) => obj.path === route.path) === index\n ),\n ],\n },\n];\n\nexport { getImmutableRoutes, getInitialRoutes };\n"],"names":["getImmutableRoutes","path","lazy","PrivateUseCasePage","Component","getBaseEERoutes","element","_jsx","AuthPage","getInitialRoutes","index","HomePage","ProfilePage","Layout","children","ApplicationInfoPage","getSettingsEERoutes","ROUTES_CE","filter","route","refArray","findIndex","obj"],"mappings":";;;;;;;;AAUA;;IAGA,MAAMA,qBAAqB,IAAqB;AAC9C,QAAA;YACEC,IAAAA,EAAM,SAAA;YACNC,IAAAA,EAAM,UAAA;AACJ,gBAAA,MAAM,EAAEC,kBAAkB,EAAE,GAAG,MAAM,oDAAO,wBAAA,KAAA;gBAE5C,OAAO;oBACLC,SAAAA,EAAWD;AACb,iBAAA;AACF,YAAA;AACF,SAAA;;AAEGE,QAAAA,GAAAA,uBAAAA,EAAAA;AACH,QAAA;YACEJ,IAAAA,EAAM,gBAAA;AACNK,YAAAA,OAAAA,gBAASC,cAAA,CAACC,iBAAAA,EAAAA,EAAAA;AACZ;AACD;AAED,MAAMC,mBAAmB,IAAqB;AAC5C,QAAA;YACEC,KAAAA,EAAO,IAAA;YACPR,IAAAA,EAAM,UAAA;AACJ,gBAAA,MAAM,EAAES,QAAQ,EAAE,GAAG,MAAM,oDAAO,0BAAA,KAAA;gBAElC,OAAO;oBACLP,SAAAA,EAAWO;AACb,iBAAA;AACF,YAAA;AACF,SAAA;AACA,QAAA;YACEV,IAAAA,EAAM,IAAA;YACNC,IAAAA,EAAM,UAAA;AACJ,gBAAA,MAAM,EAAEU,WAAW,EAAE,GAAG,MAAM,oDAAO,wBAAA,KAAA;gBAErC,OAAO;oBACLR,SAAAA,EAAWQ;AACb,iBAAA;AACF,YAAA;AACF,SAAA;AACA,QAAA;YACEX,IAAAA,EAAM,YAAA;YACNC,IAAAA,EAAM,UAAA;AACJ,gBAAA,MAAM,EAAEW,MAAM,EAAE,GAAG,MAAM,oDAAO,4BAAA,KAAA;gBAEhC,OAAO;oBACLT,SAAAA,EAAWS;AACb,iBAAA;AACF,YAAA,CAAA;YACAC,QAAAA,EAAU;AACR,gBAAA;oBACEb,IAAAA,EAAM,mBAAA;oBACNC,IAAAA,EAAM,UAAA;AACJ,wBAAA,MAAM,EAAEa,mBAAmB,EAAE,GAAG,MAAM,oDACpC,+DAAA,KAAA;wBAGF,OAAO;4BACLX,SAAAA,EAAWW;AACb,yBAAA;AACF,oBAAA;AACF,iBAAA;;;;;;;;;;;AAWG,gBAAA,GAAA;AAAIC,oBAAAA,GAAAA,qBAAAA,EAAAA;AAA0BC,oBAAAA,GAAAA,qBAAAA;AAAY,iBAAA,CAACC,MAAM,CAClD,CAACC,KAAAA,EAAOT,KAAAA,EAAOU,WAAaA,QAAAA,CAASC,SAAS,CAAC,CAACC,MAAQA,GAAAA,CAAIrB,IAAI,KAAKkB,KAAAA,CAAMlB,IAAI,CAAA,KAAMS,KAAAA;AAExF;AACH;AACD;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.mjs","sources":["../../../../admin/src/router.tsx"],"sourcesContent":["/* eslint-disable check-file/filename-naming-convention */\n\nimport { RouteObject } from 'react-router-dom';\n\nimport { getEERoutes as getBaseEERoutes } from '../../ee/admin/src/constants';\nimport { getEERoutes as getSettingsEERoutes } from '../../ee/admin/src/pages/SettingsPage/constants';\n\nimport { AuthPage } from './pages/Auth/AuthPage';\nimport { ROUTES_CE } from './pages/Settings/constants';\n\n/**\n * These are routes we don't want to be able to be changed by plugins.\n */\nconst getImmutableRoutes = (): RouteObject[] => [\n {\n path: 'usecase',\n lazy: async () => {\n const { PrivateUseCasePage } = await import('./pages/UseCasePage');\n\n return {\n Component: PrivateUseCasePage,\n };\n },\n },\n // this needs to go before auth/:authType because otherwise it won't match the route\n ...getBaseEERoutes(),\n {\n path: 'auth/:authType',\n element: <AuthPage />,\n },\n];\n\nconst getInitialRoutes = (): RouteObject[] => [\n {\n index: true,\n lazy: async () => {\n const { HomePage } = await import('./pages/Home/HomePage');\n\n return {\n Component: HomePage,\n };\n },\n },\n {\n path: 'me',\n lazy: async () => {\n const { ProfilePage } = await import('./pages/ProfilePage');\n\n return {\n Component: ProfilePage,\n };\n },\n },\n {\n path: 'settings/*',\n lazy: async () => {\n const { Layout } = await import('./pages/Settings/Layout');\n\n return {\n Component: Layout,\n };\n },\n children: [\n {\n path: 'application-infos',\n lazy: async () => {\n const { ApplicationInfoPage } = await import(\n './pages/Settings/pages/ApplicationInfo/ApplicationInfoPage'\n );\n\n return {\n Component: ApplicationInfoPage,\n };\n },\n },\n // ...Object.values(this.settings).flatMap(({ links }) =>\n // links.map(({ to, Component }) => ({\n // path: `${to}/*`,\n // element: (\n // <React.Suspense fallback={<Page.Loading />}>\n // <Component />\n // </React.Suspense>\n // ),\n // }))\n // ),\n ...[...getSettingsEERoutes(), ...ROUTES_CE].filter(\n (route, index, refArray) => refArray.findIndex((obj) => obj.path === route.path) === index\n ),\n ],\n },\n];\n\nexport { getImmutableRoutes, getInitialRoutes };\n"],"names":["getImmutableRoutes","path","lazy","PrivateUseCasePage","Component","getBaseEERoutes","element","_jsx","AuthPage","getInitialRoutes","index","HomePage","ProfilePage","Layout","children","ApplicationInfoPage","getSettingsEERoutes","ROUTES_CE","filter","route","refArray","findIndex","obj"],"mappings":";;;;;;AAUA;;IAGA,MAAMA,qBAAqB,IAAqB;AAC9C,QAAA;YACEC,IAAAA,EAAM,SAAA;YACNC,IAAAA,EAAM,UAAA;AACJ,gBAAA,MAAM,EAAEC,kBAAkB,EAAE,GAAG,MAAM,OAAO,yBAAA,CAAA;gBAE5C,OAAO;oBACLC,SAAAA,EAAWD;AACb,iBAAA;AACF,YAAA;AACF,SAAA;;AAEGE,QAAAA,GAAAA,aAAAA,EAAAA;AACH,QAAA;YACEJ,IAAAA,EAAM,gBAAA;AACNK,YAAAA,OAAAA,gBAASC,GAAA,CAACC,QAAAA,EAAAA,EAAAA;AACZ;AACD;AAED,MAAMC,mBAAmB,IAAqB;AAC5C,QAAA;YACEC,KAAAA,EAAO,IAAA;YACPR,IAAAA,EAAM,UAAA;AACJ,gBAAA,MAAM,EAAES,QAAQ,EAAE,GAAG,MAAM,OAAO,2BAAA,CAAA;gBAElC,OAAO;oBACLP,SAAAA,EAAWO;AACb,iBAAA;AACF,YAAA;AACF,SAAA;AACA,QAAA;YACEV,IAAAA,EAAM,IAAA;YACNC,IAAAA,EAAM,UAAA;AACJ,gBAAA,MAAM,EAAEU,WAAW,EAAE,GAAG,MAAM,OAAO,yBAAA,CAAA;gBAErC,OAAO;oBACLR,SAAAA,EAAWQ;AACb,iBAAA;AACF,YAAA;AACF,SAAA;AACA,QAAA;YACEX,IAAAA,EAAM,YAAA;YACNC,IAAAA,EAAM,UAAA;AACJ,gBAAA,MAAM,EAAEW,MAAM,EAAE,GAAG,MAAM,OAAO,6BAAA,CAAA;gBAEhC,OAAO;oBACLT,SAAAA,EAAWS;AACb,iBAAA;AACF,YAAA,CAAA;YACAC,QAAAA,EAAU;AACR,gBAAA;oBACEb,IAAAA,EAAM,mBAAA;oBACNC,IAAAA,EAAM,UAAA;AACJ,wBAAA,MAAM,EAAEa,mBAAmB,EAAE,GAAG,MAAM,OACpC,gEAAA,CAAA;wBAGF,OAAO;4BACLX,SAAAA,EAAWW;AACb,yBAAA;AACF,oBAAA;AACF,iBAAA;;;;;;;;;;;AAWG,gBAAA,GAAA;AAAIC,oBAAAA,GAAAA,WAAAA,EAAAA;AAA0BC,oBAAAA,GAAAA;
|
|
1
|
+
{"version":3,"file":"router.mjs","sources":["../../../../admin/src/router.tsx"],"sourcesContent":["/* eslint-disable check-file/filename-naming-convention */\n\nimport { RouteObject } from 'react-router-dom';\n\nimport { getEERoutes as getBaseEERoutes } from '../../ee/admin/src/constants';\nimport { getEERoutes as getSettingsEERoutes } from '../../ee/admin/src/pages/SettingsPage/constants';\n\nimport { AuthPage } from './pages/Auth/AuthPage';\nimport { ROUTES_CE } from './pages/Settings/constants';\n\n/**\n * These are routes we don't want to be able to be changed by plugins.\n */\nconst getImmutableRoutes = (): RouteObject[] => [\n {\n path: 'usecase',\n lazy: async () => {\n const { PrivateUseCasePage } = await import('./pages/UseCasePage');\n\n return {\n Component: PrivateUseCasePage,\n };\n },\n },\n // this needs to go before auth/:authType because otherwise it won't match the route\n ...getBaseEERoutes(),\n {\n path: 'auth/:authType',\n element: <AuthPage />,\n },\n];\n\nconst getInitialRoutes = (): RouteObject[] => [\n {\n index: true,\n lazy: async () => {\n const { HomePage } = await import('./pages/Home/HomePage');\n\n return {\n Component: HomePage,\n };\n },\n },\n {\n path: 'me',\n lazy: async () => {\n const { ProfilePage } = await import('./pages/ProfilePage');\n\n return {\n Component: ProfilePage,\n };\n },\n },\n {\n path: 'settings/*',\n lazy: async () => {\n const { Layout } = await import('./pages/Settings/Layout');\n\n return {\n Component: Layout,\n };\n },\n children: [\n {\n path: 'application-infos',\n lazy: async () => {\n const { ApplicationInfoPage } = await import(\n './pages/Settings/pages/ApplicationInfo/ApplicationInfoPage'\n );\n\n return {\n Component: ApplicationInfoPage,\n };\n },\n },\n // ...Object.values(this.settings).flatMap(({ links }) =>\n // links.map(({ to, Component }) => ({\n // path: `${to}/*`,\n // element: (\n // <React.Suspense fallback={<Page.Loading />}>\n // <Component />\n // </React.Suspense>\n // ),\n // }))\n // ),\n ...[...getSettingsEERoutes(), ...ROUTES_CE()].filter(\n (route, index, refArray) => refArray.findIndex((obj) => obj.path === route.path) === index\n ),\n ],\n },\n];\n\nexport { getImmutableRoutes, getInitialRoutes };\n"],"names":["getImmutableRoutes","path","lazy","PrivateUseCasePage","Component","getBaseEERoutes","element","_jsx","AuthPage","getInitialRoutes","index","HomePage","ProfilePage","Layout","children","ApplicationInfoPage","getSettingsEERoutes","ROUTES_CE","filter","route","refArray","findIndex","obj"],"mappings":";;;;;;AAUA;;IAGA,MAAMA,qBAAqB,IAAqB;AAC9C,QAAA;YACEC,IAAAA,EAAM,SAAA;YACNC,IAAAA,EAAM,UAAA;AACJ,gBAAA,MAAM,EAAEC,kBAAkB,EAAE,GAAG,MAAM,OAAO,yBAAA,CAAA;gBAE5C,OAAO;oBACLC,SAAAA,EAAWD;AACb,iBAAA;AACF,YAAA;AACF,SAAA;;AAEGE,QAAAA,GAAAA,aAAAA,EAAAA;AACH,QAAA;YACEJ,IAAAA,EAAM,gBAAA;AACNK,YAAAA,OAAAA,gBAASC,GAAA,CAACC,QAAAA,EAAAA,EAAAA;AACZ;AACD;AAED,MAAMC,mBAAmB,IAAqB;AAC5C,QAAA;YACEC,KAAAA,EAAO,IAAA;YACPR,IAAAA,EAAM,UAAA;AACJ,gBAAA,MAAM,EAAES,QAAQ,EAAE,GAAG,MAAM,OAAO,2BAAA,CAAA;gBAElC,OAAO;oBACLP,SAAAA,EAAWO;AACb,iBAAA;AACF,YAAA;AACF,SAAA;AACA,QAAA;YACEV,IAAAA,EAAM,IAAA;YACNC,IAAAA,EAAM,UAAA;AACJ,gBAAA,MAAM,EAAEU,WAAW,EAAE,GAAG,MAAM,OAAO,yBAAA,CAAA;gBAErC,OAAO;oBACLR,SAAAA,EAAWQ;AACb,iBAAA;AACF,YAAA;AACF,SAAA;AACA,QAAA;YACEX,IAAAA,EAAM,YAAA;YACNC,IAAAA,EAAM,UAAA;AACJ,gBAAA,MAAM,EAAEW,MAAM,EAAE,GAAG,MAAM,OAAO,6BAAA,CAAA;gBAEhC,OAAO;oBACLT,SAAAA,EAAWS;AACb,iBAAA;AACF,YAAA,CAAA;YACAC,QAAAA,EAAU;AACR,gBAAA;oBACEb,IAAAA,EAAM,mBAAA;oBACNC,IAAAA,EAAM,UAAA;AACJ,wBAAA,MAAM,EAAEa,mBAAmB,EAAE,GAAG,MAAM,OACpC,gEAAA,CAAA;wBAGF,OAAO;4BACLX,SAAAA,EAAWW;AACb,yBAAA;AACF,oBAAA;AACF,iBAAA;;;;;;;;;;;AAWG,gBAAA,GAAA;AAAIC,oBAAAA,GAAAA,WAAAA,EAAAA;AAA0BC,oBAAAA,GAAAA,SAAAA;AAAY,iBAAA,CAACC,MAAM,CAClD,CAACC,KAAAA,EAAOT,KAAAA,EAAOU,WAAaA,QAAAA,CAASC,SAAS,CAAC,CAACC,MAAQA,GAAAA,CAAIrB,IAAI,KAAKkB,KAAAA,CAAMlB,IAAI,CAAA,KAAMS,KAAAA;AAExF;AACH;AACD;;;;"}
|
|
@@ -9,7 +9,10 @@ const apiTokensService = api.adminApi.enhanceEndpoints({
|
|
|
9
9
|
}).injectEndpoints({
|
|
10
10
|
endpoints: (builder)=>({
|
|
11
11
|
getAPITokens: builder.query({
|
|
12
|
-
query: ()=>
|
|
12
|
+
query: ()=>({
|
|
13
|
+
url: '/admin/api-tokens',
|
|
14
|
+
method: 'GET'
|
|
15
|
+
}),
|
|
13
16
|
transformResponse: (response)=>response.data,
|
|
14
17
|
providesTags: (res, _err)=>[
|
|
15
18
|
...res?.map(({ id })=>({
|
|
@@ -74,14 +77,94 @@ const apiTokensService = api.adminApi.enhanceEndpoints({
|
|
|
74
77
|
id
|
|
75
78
|
}
|
|
76
79
|
]
|
|
80
|
+
}),
|
|
81
|
+
getAPITokenOwnerPermissions: builder.query({
|
|
82
|
+
query: (id)=>`/admin/admin-tokens/${id}/owner-permissions`,
|
|
83
|
+
transformResponse: (response)=>response.data
|
|
84
|
+
}),
|
|
85
|
+
getAdminTokens: builder.query({
|
|
86
|
+
query: ()=>({
|
|
87
|
+
url: '/admin/admin-tokens',
|
|
88
|
+
method: 'GET'
|
|
89
|
+
}),
|
|
90
|
+
transformResponse: (response)=>response.data,
|
|
91
|
+
providesTags: (res, _err)=>[
|
|
92
|
+
...res?.map(({ id })=>({
|
|
93
|
+
type: 'ApiToken',
|
|
94
|
+
id
|
|
95
|
+
})) ?? [],
|
|
96
|
+
{
|
|
97
|
+
type: 'ApiToken',
|
|
98
|
+
id: 'ADMIN_LIST'
|
|
99
|
+
}
|
|
100
|
+
]
|
|
101
|
+
}),
|
|
102
|
+
getAdminToken: builder.query({
|
|
103
|
+
query: (id)=>`/admin/admin-tokens/${id}`,
|
|
104
|
+
transformResponse: (response)=>response.data,
|
|
105
|
+
providesTags: (res, _err, id)=>[
|
|
106
|
+
{
|
|
107
|
+
type: 'ApiToken',
|
|
108
|
+
id
|
|
109
|
+
}
|
|
110
|
+
]
|
|
111
|
+
}),
|
|
112
|
+
createAdminToken: builder.mutation({
|
|
113
|
+
query: (body)=>({
|
|
114
|
+
url: '/admin/admin-tokens',
|
|
115
|
+
method: 'POST',
|
|
116
|
+
data: body
|
|
117
|
+
}),
|
|
118
|
+
transformResponse: (response)=>response.data,
|
|
119
|
+
invalidatesTags: [
|
|
120
|
+
{
|
|
121
|
+
type: 'ApiToken',
|
|
122
|
+
id: 'ADMIN_LIST'
|
|
123
|
+
},
|
|
124
|
+
'HomepageKeyStatistics'
|
|
125
|
+
]
|
|
126
|
+
}),
|
|
127
|
+
deleteAdminToken: builder.mutation({
|
|
128
|
+
query: (id)=>({
|
|
129
|
+
url: `/admin/admin-tokens/${id}`,
|
|
130
|
+
method: 'DELETE'
|
|
131
|
+
}),
|
|
132
|
+
transformResponse: (response)=>response.data,
|
|
133
|
+
invalidatesTags: (_res, _err, id)=>[
|
|
134
|
+
{
|
|
135
|
+
type: 'ApiToken',
|
|
136
|
+
id
|
|
137
|
+
},
|
|
138
|
+
'HomepageKeyStatistics'
|
|
139
|
+
]
|
|
140
|
+
}),
|
|
141
|
+
updateAdminToken: builder.mutation({
|
|
142
|
+
query: ({ id, ...body })=>({
|
|
143
|
+
url: `/admin/admin-tokens/${id}`,
|
|
144
|
+
method: 'PUT',
|
|
145
|
+
data: body
|
|
146
|
+
}),
|
|
147
|
+
transformResponse: (response)=>response.data,
|
|
148
|
+
invalidatesTags: (_res, _err, { id })=>[
|
|
149
|
+
{
|
|
150
|
+
type: 'ApiToken',
|
|
151
|
+
id
|
|
152
|
+
}
|
|
153
|
+
]
|
|
77
154
|
})
|
|
78
155
|
})
|
|
79
156
|
});
|
|
80
|
-
const { useGetAPITokensQuery, useGetAPITokenQuery, useCreateAPITokenMutation, useDeleteAPITokenMutation, useUpdateAPITokenMutation } = apiTokensService;
|
|
157
|
+
const { useGetAPITokensQuery, useGetAPITokenQuery, useCreateAPITokenMutation, useDeleteAPITokenMutation, useUpdateAPITokenMutation, useGetAPITokenOwnerPermissionsQuery, useGetAdminTokensQuery, useGetAdminTokenQuery, useCreateAdminTokenMutation, useDeleteAdminTokenMutation, useUpdateAdminTokenMutation } = apiTokensService;
|
|
81
158
|
|
|
82
159
|
exports.useCreateAPITokenMutation = useCreateAPITokenMutation;
|
|
160
|
+
exports.useCreateAdminTokenMutation = useCreateAdminTokenMutation;
|
|
83
161
|
exports.useDeleteAPITokenMutation = useDeleteAPITokenMutation;
|
|
162
|
+
exports.useDeleteAdminTokenMutation = useDeleteAdminTokenMutation;
|
|
163
|
+
exports.useGetAPITokenOwnerPermissionsQuery = useGetAPITokenOwnerPermissionsQuery;
|
|
84
164
|
exports.useGetAPITokenQuery = useGetAPITokenQuery;
|
|
85
165
|
exports.useGetAPITokensQuery = useGetAPITokensQuery;
|
|
166
|
+
exports.useGetAdminTokenQuery = useGetAdminTokenQuery;
|
|
167
|
+
exports.useGetAdminTokensQuery = useGetAdminTokensQuery;
|
|
86
168
|
exports.useUpdateAPITokenMutation = useUpdateAPITokenMutation;
|
|
169
|
+
exports.useUpdateAdminTokenMutation = useUpdateAdminTokenMutation;
|
|
87
170
|
//# sourceMappingURL=apiTokens.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiTokens.js","sources":["../../../../../admin/src/services/apiTokens.ts"],"sourcesContent":["import * as ApiToken from '../../../shared/contracts/api-token';\n\nimport { adminApi } from './api';\n\nconst apiTokensService = adminApi\n .enhanceEndpoints({\n addTagTypes: ['ApiToken'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n getAPITokens: builder.query<ApiToken.List.Response['data'], void>({\n query: () => '/admin/api-tokens',\n transformResponse: (response: ApiToken.List.Response) => response.data,\n providesTags: (res, _err) => [\n ...(res?.map(({ id }) => ({ type: 'ApiToken' as const, id })) ?? []),\n { type: 'ApiToken' as const, id: 'LIST' },\n ],\n }),\n getAPIToken: builder.query<ApiToken.Get.Response['data'], ApiToken.Get.Params['id']>({\n query: (id) => `/admin/api-tokens/${id}`,\n transformResponse: (response: ApiToken.Get.Response) => response.data,\n providesTags: (res, _err, id) => [{ type: 'ApiToken' as const, id }],\n }),\n createAPIToken: builder.mutation<\n ApiToken.Create.Response['data'],\n ApiToken.Create.Request['body']\n >({\n query: (body) => ({\n url: '/admin/api-tokens',\n method: 'POST',\n data: body,\n }),\n transformResponse: (response: ApiToken.Create.Response) => response.data,\n invalidatesTags: [{ type: 'ApiToken' as const, id: 'LIST' }, 'HomepageKeyStatistics'],\n }),\n deleteAPIToken: builder.mutation<\n ApiToken.Revoke.Response['data'],\n ApiToken.Revoke.Params['id']\n >({\n query: (id) => ({\n url: `/admin/api-tokens/${id}`,\n method: 'DELETE',\n }),\n transformResponse: (response: ApiToken.Revoke.Response) => response.data,\n invalidatesTags: (_res, _err, id) => [\n { type: 'ApiToken' as const, id },\n 'HomepageKeyStatistics',\n ],\n }),\n updateAPIToken: builder.mutation<\n ApiToken.Update.Response['data'],\n ApiToken.Update.Params & ApiToken.Update.Request['body']\n >({\n query: ({ id, ...body }) => ({\n url: `/admin/api-tokens/${id}`,\n method: 'PUT',\n data: body,\n }),\n transformResponse: (response: ApiToken.Update.Response) => response.data,\n invalidatesTags: (_res, _err, { id }) => [{ type: 'ApiToken' as const, id }],\n }),\n }),\n });\n\nconst {\n useGetAPITokensQuery,\n useGetAPITokenQuery,\n useCreateAPITokenMutation,\n useDeleteAPITokenMutation,\n useUpdateAPITokenMutation,\n} = apiTokensService;\n\nexport {\n useGetAPITokensQuery,\n useGetAPITokenQuery,\n useCreateAPITokenMutation,\n useDeleteAPITokenMutation,\n useUpdateAPITokenMutation,\n};\n"],"names":["apiTokensService","adminApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","getAPITokens","query","transformResponse","response","data","providesTags","res","_err","map","id","type","getAPIToken","createAPIToken","mutation","body","url","method","invalidatesTags","deleteAPIToken","_res","updateAPIToken","useGetAPITokensQuery","useGetAPITokenQuery","useCreateAPITokenMutation","useDeleteAPITokenMutation","useUpdateAPITokenMutation"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"apiTokens.js","sources":["../../../../../admin/src/services/apiTokens.ts"],"sourcesContent":["import * as AdminToken from '../../../shared/contracts/admin-token';\nimport * as ApiToken from '../../../shared/contracts/api-token';\n\nimport { adminApi } from './api';\n\nconst apiTokensService = adminApi\n .enhanceEndpoints({\n addTagTypes: ['ApiToken'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n getAPITokens: builder.query<\n ApiToken.List.Response['data'],\n ApiToken.List.Request['query'] | void\n >({\n query: () => ({\n url: '/admin/api-tokens',\n method: 'GET',\n }),\n transformResponse: (response: ApiToken.List.Response) => response.data,\n providesTags: (res, _err) => [\n ...(res?.map(({ id }) => ({ type: 'ApiToken' as const, id })) ?? []),\n { type: 'ApiToken' as const, id: 'LIST' },\n ],\n }),\n getAPIToken: builder.query<ApiToken.Get.Response['data'], ApiToken.Get.Params['id']>({\n query: (id) => `/admin/api-tokens/${id}`,\n transformResponse: (response: ApiToken.Get.Response) => response.data,\n providesTags: (res, _err, id) => [{ type: 'ApiToken' as const, id }],\n }),\n createAPIToken: builder.mutation<\n ApiToken.Create.Response['data'],\n ApiToken.Create.Request['body']\n >({\n query: (body) => ({\n url: '/admin/api-tokens',\n method: 'POST',\n data: body,\n }),\n transformResponse: (response: ApiToken.Create.Response) => response.data,\n invalidatesTags: [{ type: 'ApiToken' as const, id: 'LIST' }, 'HomepageKeyStatistics'],\n }),\n deleteAPIToken: builder.mutation<\n ApiToken.Revoke.Response['data'],\n ApiToken.Revoke.Params['id']\n >({\n query: (id) => ({\n url: `/admin/api-tokens/${id}`,\n method: 'DELETE',\n }),\n transformResponse: (response: ApiToken.Revoke.Response) => response.data,\n invalidatesTags: (_res, _err, id) => [\n { type: 'ApiToken' as const, id },\n 'HomepageKeyStatistics',\n ],\n }),\n updateAPIToken: builder.mutation<\n ApiToken.Update.Response['data'],\n ApiToken.Update.Params & ApiToken.Update.Request['body']\n >({\n query: ({ id, ...body }) => ({\n url: `/admin/api-tokens/${id}`,\n method: 'PUT',\n data: body,\n }),\n transformResponse: (response: ApiToken.Update.Response) => response.data,\n invalidatesTags: (_res, _err, { id }) => [{ type: 'ApiToken' as const, id }],\n }),\n getAPITokenOwnerPermissions: builder.query<\n AdminToken.GetOwnerPermissions.Response['data'],\n string\n >({\n query: (id) => `/admin/admin-tokens/${id}/owner-permissions`,\n transformResponse: (response: AdminToken.GetOwnerPermissions.Response) => response.data,\n }),\n getAdminTokens: builder.query<AdminToken.List.Response['data'], void>({\n query: () => ({\n url: '/admin/admin-tokens',\n method: 'GET',\n }),\n transformResponse: (response: AdminToken.List.Response) => response.data,\n providesTags: (res, _err) => [\n ...(res?.map(({ id }) => ({ type: 'ApiToken' as const, id })) ?? []),\n { type: 'ApiToken' as const, id: 'ADMIN_LIST' },\n ],\n }),\n getAdminToken: builder.query<AdminToken.Get.Response['data'], AdminToken.Get.Params['id']>({\n query: (id) => `/admin/admin-tokens/${id}`,\n transformResponse: (response: AdminToken.Get.Response) => response.data,\n providesTags: (res, _err, id) => [{ type: 'ApiToken' as const, id }],\n }),\n createAdminToken: builder.mutation<\n AdminToken.Create.Response['data'],\n AdminToken.Create.Request['body']\n >({\n query: (body) => ({\n url: '/admin/admin-tokens',\n method: 'POST',\n data: body,\n }),\n transformResponse: (response: AdminToken.Create.Response) => response.data,\n invalidatesTags: [{ type: 'ApiToken' as const, id: 'ADMIN_LIST' }, 'HomepageKeyStatistics'],\n }),\n deleteAdminToken: builder.mutation<\n AdminToken.Revoke.Response['data'],\n AdminToken.Revoke.Params['id']\n >({\n query: (id) => ({\n url: `/admin/admin-tokens/${id}`,\n method: 'DELETE',\n }),\n transformResponse: (response: AdminToken.Revoke.Response) => response.data,\n invalidatesTags: (_res, _err, id) => [\n { type: 'ApiToken' as const, id },\n 'HomepageKeyStatistics',\n ],\n }),\n updateAdminToken: builder.mutation<\n AdminToken.Update.Response['data'],\n AdminToken.Update.Params & AdminToken.Update.Request['body']\n >({\n query: ({ id, ...body }) => ({\n url: `/admin/admin-tokens/${id}`,\n method: 'PUT',\n data: body,\n }),\n transformResponse: (response: AdminToken.Update.Response) => response.data,\n invalidatesTags: (_res, _err, { id }) => [{ type: 'ApiToken' as const, id }],\n }),\n }),\n });\n\nconst {\n useGetAPITokensQuery,\n useGetAPITokenQuery,\n useCreateAPITokenMutation,\n useDeleteAPITokenMutation,\n useUpdateAPITokenMutation,\n useGetAPITokenOwnerPermissionsQuery,\n useGetAdminTokensQuery,\n useGetAdminTokenQuery,\n useCreateAdminTokenMutation,\n useDeleteAdminTokenMutation,\n useUpdateAdminTokenMutation,\n} = apiTokensService;\n\nexport {\n useGetAPITokensQuery,\n useGetAPITokenQuery,\n useCreateAPITokenMutation,\n useDeleteAPITokenMutation,\n useUpdateAPITokenMutation,\n useGetAPITokenOwnerPermissionsQuery,\n useGetAdminTokensQuery,\n useGetAdminTokenQuery,\n useCreateAdminTokenMutation,\n useDeleteAdminTokenMutation,\n useUpdateAdminTokenMutation,\n};\n"],"names":["apiTokensService","adminApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","getAPITokens","query","url","method","transformResponse","response","data","providesTags","res","_err","map","id","type","getAPIToken","createAPIToken","mutation","body","invalidatesTags","deleteAPIToken","_res","updateAPIToken","getAPITokenOwnerPermissions","getAdminTokens","getAdminToken","createAdminToken","deleteAdminToken","updateAdminToken","useGetAPITokensQuery","useGetAPITokenQuery","useCreateAPITokenMutation","useDeleteAPITokenMutation","useUpdateAPITokenMutation","useGetAPITokenOwnerPermissionsQuery","useGetAdminTokensQuery","useGetAdminTokenQuery","useCreateAdminTokenMutation","useDeleteAdminTokenMutation","useUpdateAdminTokenMutation"],"mappings":"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"}
|