strapi-plugin-navigation 3.0.0-beta.0 → 3.0.0-beta.2
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/README.md +23 -28
- package/dist/_chunks/ca-Bjfh0w36.js +480 -0
- package/dist/_chunks/ca-DIZHA0OL.mjs +480 -0
- package/dist/_chunks/en-BPYZYsnc.mjs +490 -0
- package/dist/_chunks/en-CT7eKHZS.js +490 -0
- package/dist/_chunks/fr-BTVWPkax.mjs +490 -0
- package/dist/_chunks/fr-ybbSdjZO.js +490 -0
- package/dist/admin/index.js +55426 -0
- package/dist/admin/index.mjs +55408 -0
- package/dist/admin/src/api/client.d.ts +192 -0
- package/dist/admin/src/api/validators.d.ts +1828 -0
- package/dist/admin/src/components/ConfirmationDialog/index.d.ts +20 -0
- package/dist/admin/src/components/Initializer.d.ts +5 -0
- package/dist/admin/src/components/RestartAlert/index.d.ts +2 -0
- package/dist/admin/src/components/TextArrayInput/index.d.ts +12 -0
- package/dist/admin/src/components/icons/navigation.d.ts +4 -0
- package/dist/admin/src/components/icons/pluginIcon.d.ts +7 -0
- package/dist/admin/src/index.d.ts +10 -0
- package/dist/admin/src/pages/App.d.ts +2 -0
- package/dist/admin/src/pages/HomePage/components/AdditionalFieldInput/index.d.ts +12 -0
- package/dist/admin/src/pages/HomePage/components/CollapseButton/index.d.ts +8 -0
- package/dist/admin/src/pages/HomePage/components/DragButton/index.d.ts +5 -0
- package/dist/admin/src/pages/HomePage/components/I18nCopyNavigationItems/index.d.ts +13 -0
- package/dist/admin/src/pages/HomePage/components/NavigationContentHeader/index.d.ts +7 -0
- package/dist/admin/src/pages/HomePage/components/NavigationHeader/hooks.d.ts +5 -0
- package/dist/admin/src/pages/HomePage/components/NavigationHeader/index.d.ts +23 -0
- package/dist/admin/src/pages/HomePage/components/NavigationHeader/styles.d.ts +2 -0
- package/dist/admin/src/pages/HomePage/components/NavigationItemForm/index.d.ts +22 -0
- package/dist/admin/src/pages/HomePage/components/NavigationItemForm/types.d.ts +45 -0
- package/dist/admin/src/pages/HomePage/components/NavigationItemForm/utils/form.d.ts +184 -0
- package/dist/admin/src/pages/HomePage/components/NavigationItemForm/utils/hooks.d.ts +1 -0
- package/dist/admin/src/pages/HomePage/components/NavigationItemForm/utils/properties.d.ts +33 -0
- package/dist/admin/src/pages/HomePage/components/NavigationItemList/Wrapper.d.ts +5 -0
- package/dist/admin/src/pages/HomePage/components/NavigationItemList/index.d.ts +25 -0
- package/dist/admin/src/pages/HomePage/components/NavigationItemListItem/ItemCardBadge/index.d.ts +2 -0
- package/dist/admin/src/pages/HomePage/components/NavigationItemListItem/ItemCardHeader/Wrapper.d.ts +2 -0
- package/dist/admin/src/pages/HomePage/components/NavigationItemListItem/ItemCardHeader/icons.d.ts +5 -0
- package/dist/admin/src/pages/HomePage/components/NavigationItemListItem/ItemCardHeader/index.d.ts +16 -0
- package/dist/admin/src/pages/HomePage/components/NavigationItemListItem/ItemCardRemovedOverlay/index.d.ts +2 -0
- package/dist/admin/src/pages/HomePage/components/NavigationItemListItem/Wrapper.d.ts +6 -0
- package/dist/admin/src/pages/HomePage/components/NavigationItemListItem/index.d.ts +44 -0
- package/dist/admin/src/pages/HomePage/components/NavigationItemPopup/NavigationItemPopupFooter.d.ts +10 -0
- package/dist/admin/src/pages/HomePage/components/NavigationItemPopup/NavigationItemPopupHeader.d.ts +4 -0
- package/dist/admin/src/pages/HomePage/components/NavigationItemPopup/index.d.ts +19 -0
- package/dist/admin/src/pages/HomePage/components/NavigationManager/AllNavigations/icons.d.ts +3 -0
- package/dist/admin/src/pages/HomePage/components/NavigationManager/AllNavigations/index.d.ts +7 -0
- package/dist/admin/src/pages/HomePage/components/NavigationManager/DeletionConfirm/index.d.ts +7 -0
- package/dist/admin/src/pages/HomePage/components/NavigationManager/ErrorDetails/index.d.ts +7 -0
- package/dist/admin/src/pages/HomePage/components/NavigationManager/Footer/index.d.ts +26 -0
- package/dist/admin/src/pages/HomePage/components/NavigationManager/Form/hooks.d.ts +13 -0
- package/dist/admin/src/pages/HomePage/components/NavigationManager/Form/index.d.ts +10 -0
- package/dist/admin/src/pages/HomePage/components/NavigationManager/NavigationUpdate/index.d.ts +7 -0
- package/dist/admin/src/pages/HomePage/components/NavigationManager/NewNavigation/index.d.ts +8 -0
- package/dist/admin/src/pages/HomePage/components/NavigationManager/PurgeCacheConfirm/index.d.ts +7 -0
- package/dist/admin/src/pages/HomePage/components/NavigationManager/index.d.ts +9 -0
- package/dist/admin/src/pages/HomePage/components/NavigationManager/types.d.ts +46 -0
- package/dist/admin/src/pages/HomePage/components/Search/index.d.ts +11 -0
- package/dist/admin/src/pages/HomePage/hooks/index.d.ts +144 -0
- package/dist/admin/src/pages/HomePage/index.d.ts +2 -0
- package/dist/admin/src/pages/HomePage/utils/index.d.ts +5 -0
- package/dist/admin/src/pages/HomePage/utils/parsers.d.ts +46 -0
- package/dist/admin/src/pages/SettingsPage/common/const.d.ts +1 -0
- package/dist/admin/src/pages/SettingsPage/components/CustomFieldForm/index.d.ts +11 -0
- package/dist/admin/src/pages/SettingsPage/components/CustomFieldModal/index.d.ts +11 -0
- package/dist/admin/src/pages/SettingsPage/components/CustomFieldTable/index.d.ts +11 -0
- package/dist/admin/src/pages/SettingsPage/hooks/index.d.ts +369 -0
- package/dist/admin/src/pages/SettingsPage/index.d.ts +1 -0
- package/dist/admin/src/pages/SettingsPage/types.d.ts +7 -0
- package/dist/admin/src/pages/SettingsPage/utils/index.d.ts +9 -0
- package/dist/admin/src/pluginId.d.ts +1 -0
- package/dist/admin/src/schemas/config.d.ts +453 -0
- package/dist/admin/src/schemas/content-type.d.ts +49 -0
- package/dist/admin/src/translations/ca.d.ts +478 -0
- package/dist/admin/src/translations/en.d.ts +489 -0
- package/dist/admin/src/translations/fr.d.ts +488 -0
- package/dist/admin/src/translations/index.d.ts +14 -0
- package/dist/admin/src/types.d.ts +6 -0
- package/dist/admin/src/utils/constants.d.ts +1 -0
- package/dist/admin/src/utils/getTranslation.d.ts +3 -0
- package/dist/admin/src/utils/permissions.d.ts +15 -0
- package/dist/admin/src/utils/prefixPluginTranslations.d.ts +3 -0
- package/dist/assets/configuration.png +0 -0
- package/dist/assets/logo.png +0 -0
- package/dist/assets/manager-view.png +0 -0
- package/dist/assets/marketplace.png +0 -0
- package/dist/assets/preview.png +0 -0
- package/dist/server/index.js +16171 -0
- package/dist/server/index.mjs +16135 -0
- package/dist/server/src/app-errors.d.ts +11 -0
- package/dist/server/src/bootstrap.d.ts +5 -0
- package/dist/server/src/cache/index.d.ts +4 -0
- package/dist/server/src/config/index.d.ts +20 -0
- package/dist/server/src/config/setup.d.ts +41 -0
- package/dist/server/src/content-types/audience/index.d.ts +26 -0
- package/dist/server/src/content-types/audience/schema.d.ts +24 -0
- package/dist/server/src/content-types/index.d.ts +190 -0
- package/dist/server/src/content-types/navigation/index.d.ts +56 -0
- package/dist/server/src/content-types/navigation/lifecycles.d.ts +2 -0
- package/dist/server/src/content-types/navigation/schema.d.ts +53 -0
- package/dist/server/src/content-types/navigation-item/index.d.ts +108 -0
- package/dist/server/src/content-types/navigation-item/lifecycles.d.ts +2 -0
- package/dist/server/src/content-types/navigation-item/schema.d.ts +105 -0
- package/dist/server/src/controllers/admin.d.ts +241 -0
- package/dist/server/src/controllers/client.d.ts +192 -0
- package/dist/server/src/controllers/index.d.ts +7 -0
- package/dist/server/src/controllers/utils.d.ts +4 -0
- package/dist/server/src/controllers/validators.d.ts +62 -0
- package/dist/server/src/destroy.d.ts +5 -0
- package/dist/server/src/dtos/config.d.ts +28 -0
- package/dist/server/src/dtos/index.d.ts +3 -0
- package/dist/server/src/dtos/navigation-item.d.ts +52 -0
- package/dist/server/src/dtos/navigation.d.ts +5 -0
- package/dist/server/src/graphql/config.d.ts +5 -0
- package/dist/server/src/graphql/index.d.ts +1 -0
- package/dist/server/src/graphql/queries/index.d.ts +1 -0
- package/dist/server/src/graphql/queries/render-navigation-child.d.ts +31 -0
- package/dist/server/src/graphql/queries/render-navigation.d.ts +32 -0
- package/dist/server/src/graphql/resolvers-config.d.ts +8 -0
- package/dist/server/src/graphql/setup.d.ts +4 -0
- package/dist/server/src/graphql/types/content-types-name-fields.d.ts +2 -0
- package/dist/server/src/graphql/types/content-types.d.ts +2 -0
- package/dist/server/src/graphql/types/create-navigation-item.d.ts +2 -0
- package/dist/server/src/graphql/types/create-navigation-related.d.ts +2 -0
- package/dist/server/src/graphql/types/create-navigation.d.ts +2 -0
- package/dist/server/src/graphql/types/index.d.ts +1 -0
- package/dist/server/src/graphql/types/navigation-config.d.ts +2 -0
- package/dist/server/src/graphql/types/navigation-details.d.ts +2 -0
- package/dist/server/src/graphql/types/navigation-item-additional-field-media.d.ts +2 -0
- package/dist/server/src/graphql/types/navigation-item-additional-fields.d.ts +2 -0
- package/dist/server/src/graphql/types/navigation-item-related-data.d.ts +2 -0
- package/dist/server/src/graphql/types/navigation-item-related.d.ts +2 -0
- package/dist/server/src/graphql/types/navigation-item.d.ts +2 -0
- package/dist/server/src/graphql/types/navigation-render-type.d.ts +2 -0
- package/dist/server/src/graphql/types/navigation.d.ts +2 -0
- package/dist/server/src/i18n/index.d.ts +4 -0
- package/dist/server/src/index.d.ts +582 -0
- package/dist/server/src/middlewares/index.d.ts +2 -0
- package/dist/server/src/permissions/index.d.ts +3 -0
- package/dist/server/src/permissions/permissions.d.ts +9 -0
- package/dist/server/src/permissions/setup.d.ts +4 -0
- package/dist/server/src/permissions.d.ts +13 -0
- package/dist/server/src/policies/index.d.ts +2 -0
- package/dist/server/src/register.d.ts +5 -0
- package/dist/server/src/repositories/audience.d.ts +11 -0
- package/dist/server/src/repositories/generic.d.ts +23 -0
- package/dist/server/src/repositories/index.d.ts +4 -0
- package/dist/server/src/repositories/navigation-item.d.ts +24 -0
- package/dist/server/src/repositories/navigation.d.ts +47 -0
- package/dist/server/src/routes/admin.d.ts +24 -0
- package/dist/server/src/routes/client.d.ts +17 -0
- package/dist/server/src/routes/index.d.ts +37 -0
- package/dist/server/src/schemas/config.d.ts +424 -0
- package/dist/server/src/schemas/content-type.d.ts +918 -0
- package/dist/server/src/schemas/index.d.ts +3 -0
- package/dist/server/src/schemas/navigation.d.ts +237 -0
- package/dist/server/src/services/admin/admin.d.ts +32 -0
- package/dist/server/src/services/admin/index.d.ts +3 -0
- package/dist/server/src/services/admin/types.d.ts +47 -0
- package/dist/server/src/services/admin/utils.d.ts +32 -0
- package/dist/server/src/services/client/client.d.ts +93 -0
- package/dist/server/src/services/client/index.d.ts +3 -0
- package/dist/server/src/services/client/types.d.ts +66 -0
- package/dist/server/src/services/client/utils.d.ts +12 -0
- package/dist/server/src/services/common/common.d.ts +31 -0
- package/dist/server/src/services/common/index.d.ts +3 -0
- package/dist/server/src/services/common/types.d.ts +68 -0
- package/dist/server/src/services/common/utils.d.ts +12 -0
- package/dist/server/src/services/index.d.ts +320 -0
- package/dist/server/src/services/migration/index.d.ts +3 -0
- package/dist/server/src/services/migration/migration.d.ts +8 -0
- package/dist/server/src/types.d.ts +40 -0
- package/dist/server/src/utils/constants.d.ts +13 -0
- package/dist/server/src/utils/functions.d.ts +30 -0
- package/dist/server/src/utils/index.d.ts +2 -0
- package/package.json +116 -35
- package/admin/api/client.js +0 -107
- package/admin/api/validators.js +0 -248
- package/admin/components/ConfirmationDialog/index.js +0 -21
- package/admin/components/Initializer.js +0 -10
- package/admin/components/RestartAlert/index.js +0 -7
- package/admin/components/TextArrayInput/index.js +0 -18
- package/admin/components/icons/navigation.js +0 -9
- package/admin/components/icons/pluginIcon.js +0 -9
- package/admin/index.js +0 -48
- package/admin/pages/App.js +0 -10
- package/admin/pages/HomePage/components/AdditionalFieldInput/index.js +0 -58
- package/admin/pages/HomePage/components/CollapseButton/index.js +0 -15
- package/admin/pages/HomePage/components/DragButton/index.js +0 -55
- package/admin/pages/HomePage/components/I18nCopyNavigationItems/index.js +0 -9
- package/admin/pages/HomePage/components/NavigationContentHeader/index.js +0 -5
- package/admin/pages/HomePage/components/NavigationHeader/hooks.js +0 -14
- package/admin/pages/HomePage/components/NavigationHeader/index.js +0 -29
- package/admin/pages/HomePage/components/NavigationHeader/styles.js +0 -11
- package/admin/pages/HomePage/components/NavigationItemForm/index.js +0 -277
- package/admin/pages/HomePage/components/NavigationItemForm/types.js +0 -1
- package/admin/pages/HomePage/components/NavigationItemForm/utils/form.js +0 -105
- package/admin/pages/HomePage/components/NavigationItemForm/utils/hooks.js +0 -12
- package/admin/pages/HomePage/components/NavigationItemForm/utils/properties.js +0 -51
- package/admin/pages/HomePage/components/NavigationItemList/Wrapper.js +0 -21
- package/admin/pages/HomePage/components/NavigationItemList/index.js +0 -6
- package/admin/pages/HomePage/components/NavigationItemListItem/ItemCardBadge/index.js +0 -20
- package/admin/pages/HomePage/components/NavigationItemListItem/ItemCardHeader/Wrapper.js +0 -14
- package/admin/pages/HomePage/components/NavigationItemListItem/ItemCardHeader/icons.js +0 -6
- package/admin/pages/HomePage/components/NavigationItemListItem/ItemCardHeader/index.js +0 -19
- package/admin/pages/HomePage/components/NavigationItemListItem/ItemCardRemovedOverlay/index.js +0 -11
- package/admin/pages/HomePage/components/NavigationItemListItem/Wrapper.js +0 -38
- package/admin/pages/HomePage/components/NavigationItemListItem/index.js +0 -165
- package/admin/pages/HomePage/components/NavigationItemPopup/NavigationItemPopupFooter.js +0 -11
- package/admin/pages/HomePage/components/NavigationItemPopup/NavigationItemPopupHeader.js +0 -12
- package/admin/pages/HomePage/components/NavigationItemPopup/index.js +0 -34
- package/admin/pages/HomePage/components/NavigationManager/AllNavigations/icons.js +0 -5
- package/admin/pages/HomePage/components/NavigationManager/AllNavigations/index.js +0 -79
- package/admin/pages/HomePage/components/NavigationManager/DeletionConfirm/index.js +0 -25
- package/admin/pages/HomePage/components/NavigationManager/ErrorDetails/index.js +0 -29
- package/admin/pages/HomePage/components/NavigationManager/Footer/index.js +0 -6
- package/admin/pages/HomePage/components/NavigationManager/Form/hooks.js +0 -19
- package/admin/pages/HomePage/components/NavigationManager/Form/index.js +0 -26
- package/admin/pages/HomePage/components/NavigationManager/NavigationUpdate/index.js +0 -32
- package/admin/pages/HomePage/components/NavigationManager/NewNavigation/index.js +0 -35
- package/admin/pages/HomePage/components/NavigationManager/PurgeCacheConfirm/index.js +0 -25
- package/admin/pages/HomePage/components/NavigationManager/index.js +0 -236
- package/admin/pages/HomePage/components/NavigationManager/types.js +0 -1
- package/admin/pages/HomePage/components/Search/index.js +0 -58
- package/admin/pages/HomePage/hooks/index.js +0 -165
- package/admin/pages/HomePage/index.js +0 -231
- package/admin/pages/HomePage/utils/index.js +0 -16
- package/admin/pages/HomePage/utils/parsers.js +0 -187
- package/admin/pages/SettingsPage/common/const.js +0 -1
- package/admin/pages/SettingsPage/components/CustomFieldForm/hooks/index.js +0 -10
- package/admin/pages/SettingsPage/components/CustomFieldForm/index.js +0 -36
- package/admin/pages/SettingsPage/components/CustomFieldModal/index.js +0 -16
- package/admin/pages/SettingsPage/components/CustomFieldTable/index.js +0 -45
- package/admin/pages/SettingsPage/hooks/index.js +0 -111
- package/admin/pages/SettingsPage/index.js +0 -189
- package/admin/pages/SettingsPage/types.js +0 -1
- package/admin/pages/SettingsPage/utils/index.js +0 -25
- package/admin/pluginId.js +0 -1
- package/admin/schemas/config.js +0 -53
- package/admin/schemas/content-type.js +0 -14
- package/admin/translations/ca.json +0 -199
- package/admin/translations/en.json +0 -218
- package/admin/translations/fr.json +0 -48
- package/admin/translations/index.js +0 -15
- package/admin/types.js +0 -1
- package/admin/utils/constants.js +0 -1
- package/admin/utils/getTranslation.js +0 -4
- package/admin/utils/permissions.js +0 -16
- package/admin/utils/prefixPluginTranslations.js +0 -3
- package/server/app-errors.js +0 -20
- package/server/bootstrap.js +0 -13
- package/server/cache/index.js +0 -37
- package/server/config/index.js +0 -39
- package/server/config/setup.js +0 -59
- package/server/content-types/audience/index.js +0 -9
- package/server/content-types/audience/schema.js +0 -25
- package/server/content-types/index.js +0 -13
- package/server/content-types/navigation/index.js +0 -11
- package/server/content-types/navigation/lifecycles.js +0 -6
- package/server/content-types/navigation/schema.js +0 -54
- package/server/content-types/navigation-item/index.js +0 -11
- package/server/content-types/navigation-item/lifecycles.js +0 -6
- package/server/content-types/navigation-item/schema.js +0 -106
- package/server/controllers/admin.js +0 -125
- package/server/controllers/client.js +0 -86
- package/server/controllers/index.js +0 -11
- package/server/controllers/utils.js +0 -22
- package/server/controllers/validators.js +0 -48
- package/server/destroy.js +0 -6
- package/server/dtos/config.js +0 -2
- package/server/dtos/index.js +0 -19
- package/server/dtos/navigation-item.js +0 -2
- package/server/dtos/navigation.js +0 -2
- package/server/graphql/config.js +0 -26
- package/server/graphql/index.js +0 -17
- package/server/graphql/queries/index.js +0 -21
- package/server/graphql/queries/render-navigation-child.js +0 -36
- package/server/graphql/queries/render-navigation.js +0 -48
- package/server/graphql/resolvers-config.js +0 -8
- package/server/graphql/setup.js +0 -14
- package/server/graphql/types/content-types-name-fields.js +0 -15
- package/server/graphql/types/content-types.js +0 -18
- package/server/graphql/types/create-navigation-item.js +0 -19
- package/server/graphql/types/create-navigation-related.js +0 -10
- package/server/graphql/types/create-navigation.js +0 -9
- package/server/graphql/types/index.js +0 -38
- package/server/graphql/types/navigation-config.js +0 -11
- package/server/graphql/types/navigation-details.js +0 -12
- package/server/graphql/types/navigation-item-additional-field-media.js +0 -13
- package/server/graphql/types/navigation-item-related-data.js +0 -9
- package/server/graphql/types/navigation-item-related.js +0 -25
- package/server/graphql/types/navigation-item.js +0 -58
- package/server/graphql/types/navigation-render-type.js +0 -6
- package/server/graphql/types/navigation.js +0 -11
- package/server/i18n/index.js +0 -32
- package/server/index.js +0 -33
- package/server/middlewares/index.js +0 -3
- package/server/permissions/index.js +0 -10
- package/server/permissions/permissions.js +0 -12
- package/server/permissions/setup.js +0 -32
- package/server/permissions.js +0 -39
- package/server/policies/index.js +0 -3
- package/server/register.js +0 -6
- package/server/repositories/audience.js +0 -12
- package/server/repositories/generic.js +0 -20
- package/server/repositories/index.js +0 -11
- package/server/repositories/navigation-item.js +0 -51
- package/server/repositories/navigation.js +0 -65
- package/server/routes/admin.js +0 -216
- package/server/routes/client.js +0 -32
- package/server/routes/index.js +0 -12
- package/server/schemas/config.js +0 -68
- package/server/schemas/content-type.js +0 -140
- package/server/schemas/index.js +0 -19
- package/server/schemas/navigation.js +0 -107
- package/server/services/admin/admin.js +0 -483
- package/server/services/admin/index.js +0 -7
- package/server/services/admin/types.js +0 -2
- package/server/services/admin/utils.js +0 -84
- package/server/services/client/client.js +0 -397
- package/server/services/client/index.js +0 -7
- package/server/services/client/types.js +0 -2
- package/server/services/client/utils.js +0 -88
- package/server/services/common/common.js +0 -307
- package/server/services/common/index.js +0 -7
- package/server/services/common/types.js +0 -2
- package/server/services/common/utils.js +0 -24
- package/server/services/index.js +0 -13
- package/server/types.js +0 -2
- package/server/utils/constants.js +0 -35
- package/server/utils/functions.js +0 -111
- package/server/utils/index.js +0 -18
- package/strapi-admin.js +0 -5
- package/strapi-server.js +0 -3
- package/tsconfig.tsbuildinfo +0 -1
- /package/{admin/api/index.js → dist/admin/src/api/index.d.ts} +0 -0
- /package/{admin/components/icons/index.js → dist/admin/src/components/icons/index.d.ts} +0 -0
- /package/{admin/pages/HomePage/components/index.js → dist/admin/src/pages/HomePage/components/index.d.ts} +0 -0
- /package/{admin/pages/SettingsPage/common/index.js → dist/admin/src/pages/SettingsPage/common/index.d.ts} +0 -0
- /package/{admin/schemas/index.js → dist/admin/src/schemas/index.d.ts} +0 -0
|
@@ -1,483 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const utils_1 = require("@strapi/utils");
|
|
7
|
-
const lodash_1 = require("lodash");
|
|
8
|
-
const pluralize_1 = __importDefault(require("pluralize"));
|
|
9
|
-
const app_errors_1 = require("../../app-errors");
|
|
10
|
-
const repositories_1 = require("../../repositories");
|
|
11
|
-
const schemas_1 = require("../../schemas");
|
|
12
|
-
const utils_2 = require("../../utils");
|
|
13
|
-
const utils_3 = require("./utils");
|
|
14
|
-
const adminService = (context) => ({
|
|
15
|
-
async config({ viaSettingsPage = false }) {
|
|
16
|
-
const commonService = (0, utils_2.getPluginService)(context, 'common');
|
|
17
|
-
const cacheStatus = await (0, utils_3.getCacheStatus)(context);
|
|
18
|
-
const pluginStore = await commonService.getPluginStore();
|
|
19
|
-
const config = await pluginStore
|
|
20
|
-
.get({
|
|
21
|
-
key: 'config',
|
|
22
|
-
})
|
|
23
|
-
.then(schemas_1.configSchema.parse);
|
|
24
|
-
const { additionalFields, cascadeMenuAttached, contentTypesPopulate, contentTypesNameFields, pathDefaultFields, allowedLevels, preferCustomContentTypes, } = config;
|
|
25
|
-
const isGQLPluginEnabled = !!strapi.plugin('graphql');
|
|
26
|
-
let extendedResult = {
|
|
27
|
-
allowedContentTypes: utils_2.ALLOWED_CONTENT_TYPES,
|
|
28
|
-
restrictedContentTypes: utils_2.RESTRICTED_CONTENT_TYPES,
|
|
29
|
-
availableAudience: [],
|
|
30
|
-
};
|
|
31
|
-
const configContentTypes = await this.configContentTypes({});
|
|
32
|
-
const result = {
|
|
33
|
-
contentTypes: await this.configContentTypes({ viaSettingsPage }),
|
|
34
|
-
contentTypesNameFields: {
|
|
35
|
-
default: utils_2.CONTENT_TYPES_NAME_FIELDS_DEFAULTS,
|
|
36
|
-
...((0, lodash_1.isObject)(contentTypesNameFields) ? contentTypesNameFields : {}),
|
|
37
|
-
},
|
|
38
|
-
contentTypesPopulate: (0, lodash_1.isObject)(contentTypesPopulate) ? contentTypesPopulate : {},
|
|
39
|
-
pathDefaultFields: (0, lodash_1.isObject)(pathDefaultFields) ? pathDefaultFields : {},
|
|
40
|
-
allowedLevels,
|
|
41
|
-
additionalFields: viaSettingsPage
|
|
42
|
-
? additionalFields
|
|
43
|
-
: additionalFields.filter((field) => typeof field === 'string' || !!field.enabled),
|
|
44
|
-
gql: {
|
|
45
|
-
navigationItemRelated: configContentTypes.map(({ labelSingular }) => labelSingular.replace(/\s+/g, '')),
|
|
46
|
-
},
|
|
47
|
-
isGQLPluginEnabled: viaSettingsPage ? isGQLPluginEnabled : undefined,
|
|
48
|
-
cascadeMenuAttached,
|
|
49
|
-
preferCustomContentTypes,
|
|
50
|
-
};
|
|
51
|
-
if (additionalFields.includes('audience')) {
|
|
52
|
-
const audienceItems = await (0, repositories_1.getAudienceRepository)(context).find({}, Number.MAX_SAFE_INTEGER);
|
|
53
|
-
extendedResult = {
|
|
54
|
-
...extendedResult,
|
|
55
|
-
availableAudience: audienceItems,
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
return {
|
|
59
|
-
...result,
|
|
60
|
-
...extendedResult,
|
|
61
|
-
isCacheEnabled: cacheStatus.enabled,
|
|
62
|
-
isCachePluginEnabled: cacheStatus.hasCachePlugin,
|
|
63
|
-
};
|
|
64
|
-
},
|
|
65
|
-
async configContentTypes({ viaSettingsPage = false, }) {
|
|
66
|
-
const commonService = (0, utils_2.getPluginService)(context, 'common');
|
|
67
|
-
const pluginStore = await commonService.getPluginStore();
|
|
68
|
-
const config = await pluginStore.get({ key: 'config' }).then(schemas_1.configSchema.parse);
|
|
69
|
-
const eligibleContentTypes = await Promise.all(config.contentTypes
|
|
70
|
-
.filter((contentType) => !!context.strapi.contentTypes[contentType] && (0, utils_2.isContentTypeEligible)(contentType))
|
|
71
|
-
.map(async (key) => {
|
|
72
|
-
const item = schemas_1.contentTypeFullSchema.parse(strapi.contentTypes[key]);
|
|
73
|
-
const { kind, options, uid } = item;
|
|
74
|
-
const draftAndPublish = options?.draftAndPublish;
|
|
75
|
-
const isSingleType = kind === utils_2.KIND_TYPES.SINGLE;
|
|
76
|
-
const isSingleTypeWithPublishFlow = isSingleType && draftAndPublish;
|
|
77
|
-
const returnType = (available) => ({
|
|
78
|
-
key,
|
|
79
|
-
available,
|
|
80
|
-
});
|
|
81
|
-
if (isSingleType) {
|
|
82
|
-
const repository = (0, repositories_1.getGenericRepository)(context, uid);
|
|
83
|
-
if (isSingleTypeWithPublishFlow) {
|
|
84
|
-
const itemsCountOrBypass = isSingleTypeWithPublishFlow
|
|
85
|
-
? await repository.count({
|
|
86
|
-
publishedAt: {
|
|
87
|
-
$notNull: true,
|
|
88
|
-
},
|
|
89
|
-
})
|
|
90
|
-
: true;
|
|
91
|
-
return returnType(itemsCountOrBypass !== 0);
|
|
92
|
-
}
|
|
93
|
-
const isAvailable = await repository.count({});
|
|
94
|
-
return isAvailable !== 0
|
|
95
|
-
? returnType(true)
|
|
96
|
-
: viaSettingsPage
|
|
97
|
-
? returnType(false)
|
|
98
|
-
: undefined;
|
|
99
|
-
}
|
|
100
|
-
return returnType(true);
|
|
101
|
-
}));
|
|
102
|
-
return eligibleContentTypes.reduce((acc, current) => {
|
|
103
|
-
if (!current?.key) {
|
|
104
|
-
return acc;
|
|
105
|
-
}
|
|
106
|
-
const { key, available } = current;
|
|
107
|
-
const item = schemas_1.contentTypeFullSchema.parse(context.strapi.contentTypes[key]);
|
|
108
|
-
const relatedField = (item.associations || []).find(({ model }) => model === 'navigationitem');
|
|
109
|
-
const { uid, options, info, collectionName, modelName, apiName, plugin, kind, pluginOptions = {}, } = item;
|
|
110
|
-
const isAvailable = available && !options?.hidden;
|
|
111
|
-
if (!isAvailable) {
|
|
112
|
-
return acc;
|
|
113
|
-
}
|
|
114
|
-
const { visible = true } = pluginOptions['content-manager'] || {};
|
|
115
|
-
const { name = '', description = '' } = info;
|
|
116
|
-
const findRouteConfig = (0, lodash_1.find)((0, lodash_1.get)(context.strapi.api, `[${modelName}].config.routes`, []), (route) => route.handler.includes('.find'));
|
|
117
|
-
const findRoutePath = findRouteConfig && findRouteConfig.path.split('/')[1];
|
|
118
|
-
const apiPath = findRoutePath && findRoutePath !== apiName ? findRoutePath : apiName || modelName;
|
|
119
|
-
const isSingle = kind === utils_2.KIND_TYPES.SINGLE;
|
|
120
|
-
const endpoint = isSingle ? apiPath : (0, pluralize_1.default)(apiPath);
|
|
121
|
-
const relationName = (0, utils_2.singularize)(modelName);
|
|
122
|
-
const relationNameParts = typeof uid === 'string' ? (0, lodash_1.last)(uid.split('.')).split('-') : [];
|
|
123
|
-
const contentTypeName = relationNameParts.length > 1
|
|
124
|
-
? relationNameParts.reduce((prev, curr) => `${prev}${(0, lodash_1.upperFirst)(curr)}`, '')
|
|
125
|
-
: (0, lodash_1.upperFirst)(modelName);
|
|
126
|
-
const labelSingular = name ||
|
|
127
|
-
(0, lodash_1.upperFirst)(relationNameParts.length > 1 ? relationNameParts.join(' ') : relationName);
|
|
128
|
-
acc.push({
|
|
129
|
-
uid,
|
|
130
|
-
name: relationName,
|
|
131
|
-
draftAndPublish: options?.draftAndPublish,
|
|
132
|
-
isSingle,
|
|
133
|
-
description,
|
|
134
|
-
collectionName,
|
|
135
|
-
contentTypeName,
|
|
136
|
-
label: isSingle ? labelSingular : (0, pluralize_1.default)(name || labelSingular),
|
|
137
|
-
relatedField: relatedField ? relatedField.alias : undefined,
|
|
138
|
-
labelSingular: (0, utils_2.singularize)(labelSingular),
|
|
139
|
-
endpoint: endpoint,
|
|
140
|
-
plugin,
|
|
141
|
-
available: isAvailable,
|
|
142
|
-
visible,
|
|
143
|
-
templateName: options?.templateName,
|
|
144
|
-
});
|
|
145
|
-
return acc;
|
|
146
|
-
}, []);
|
|
147
|
-
},
|
|
148
|
-
async get({ ids, localeCode }) {
|
|
149
|
-
let where = {};
|
|
150
|
-
if (ids && ids.length) {
|
|
151
|
-
where.id = { $in: ids };
|
|
152
|
-
}
|
|
153
|
-
if (localeCode) {
|
|
154
|
-
where.localeCode = localeCode;
|
|
155
|
-
}
|
|
156
|
-
const dbResults = await (0, repositories_1.getNavigationRepository)(context).find({
|
|
157
|
-
where,
|
|
158
|
-
limit: Number.MAX_SAFE_INTEGER,
|
|
159
|
-
populate: ['items', 'items.parent', 'items.audience'],
|
|
160
|
-
});
|
|
161
|
-
const buildItemsStructure = ({ allItems, item, parent, }) => {
|
|
162
|
-
const children = allItems.filter((child) => child.parent?.id === item.id);
|
|
163
|
-
return {
|
|
164
|
-
...item,
|
|
165
|
-
parent,
|
|
166
|
-
items: children
|
|
167
|
-
.map((child) => buildItemsStructure({
|
|
168
|
-
parent: item,
|
|
169
|
-
item: child,
|
|
170
|
-
allItems,
|
|
171
|
-
}))
|
|
172
|
-
.sort((a, b) => a.order - b.order),
|
|
173
|
-
};
|
|
174
|
-
};
|
|
175
|
-
return dbResults.map((navigation) => ({
|
|
176
|
-
...navigation,
|
|
177
|
-
items: navigation.items
|
|
178
|
-
?.filter((item) => !item.parent)
|
|
179
|
-
.map((item) => buildItemsStructure({
|
|
180
|
-
allItems: navigation.items ?? [],
|
|
181
|
-
item,
|
|
182
|
-
})),
|
|
183
|
-
}));
|
|
184
|
-
},
|
|
185
|
-
async getById({ id }) {
|
|
186
|
-
const commonService = (0, utils_2.getPluginService)(context, 'common');
|
|
187
|
-
const navigation = await (0, repositories_1.getNavigationRepository)(context).findOne({
|
|
188
|
-
where: { id },
|
|
189
|
-
});
|
|
190
|
-
const dbNavigationItems = await (0, repositories_1.getNavigationItemRepository)(context).find({
|
|
191
|
-
where: { master: navigation.id },
|
|
192
|
-
limit: Number.MAX_SAFE_INTEGER,
|
|
193
|
-
order: [{ order: 'asc' }],
|
|
194
|
-
populate: ['parent', 'audience'],
|
|
195
|
-
});
|
|
196
|
-
return {
|
|
197
|
-
...navigation,
|
|
198
|
-
items: commonService
|
|
199
|
-
.buildNestedStructure({
|
|
200
|
-
navigationItems: dbNavigationItems,
|
|
201
|
-
})
|
|
202
|
-
.filter(({ parent }) => !parent),
|
|
203
|
-
};
|
|
204
|
-
},
|
|
205
|
-
async post({ auditLog, payload }) {
|
|
206
|
-
const { masterModel } = (0, utils_2.getPluginModels)(context);
|
|
207
|
-
const commonService = (0, utils_2.getPluginService)(context, 'common');
|
|
208
|
-
const { defaultLocale, restLocale } = await commonService.readLocale();
|
|
209
|
-
const repository = (0, repositories_1.getNavigationRepository)(context);
|
|
210
|
-
const navigationSummary = [];
|
|
211
|
-
const { name, visible } = payload;
|
|
212
|
-
const slug = await commonService.getSlug({ query: name });
|
|
213
|
-
const mainNavigation = await repository.save({
|
|
214
|
-
name,
|
|
215
|
-
visible,
|
|
216
|
-
localeCode: defaultLocale,
|
|
217
|
-
slug,
|
|
218
|
-
});
|
|
219
|
-
navigationSummary.push(await this.getById({ id: mainNavigation.id }));
|
|
220
|
-
for (const localeCode of restLocale) {
|
|
221
|
-
const newLocaleNavigation = await repository.save({
|
|
222
|
-
name,
|
|
223
|
-
visible,
|
|
224
|
-
localeCode,
|
|
225
|
-
slug: `${slug}-${localeCode}`,
|
|
226
|
-
documentId: mainNavigation.documentId,
|
|
227
|
-
});
|
|
228
|
-
navigationSummary.push(await this.getById({ id: newLocaleNavigation.id }));
|
|
229
|
-
}
|
|
230
|
-
navigationSummary.map((navigation) => {
|
|
231
|
-
(0, utils_3.sendAuditLog)(auditLog, 'onChangeNavigation', {
|
|
232
|
-
actionType: 'CREATE',
|
|
233
|
-
oldEntity: navigation,
|
|
234
|
-
newEntity: navigation,
|
|
235
|
-
});
|
|
236
|
-
});
|
|
237
|
-
await commonService.emitEvent({
|
|
238
|
-
entity: mainNavigation,
|
|
239
|
-
event: 'entry.create',
|
|
240
|
-
uid: masterModel.uid,
|
|
241
|
-
});
|
|
242
|
-
return {
|
|
243
|
-
...mainNavigation,
|
|
244
|
-
items: [],
|
|
245
|
-
};
|
|
246
|
-
},
|
|
247
|
-
async put({ auditLog, payload }) {
|
|
248
|
-
const { masterModel } = (0, utils_2.getPluginModels)(context);
|
|
249
|
-
const commonService = (0, utils_2.getPluginService)(context, 'common');
|
|
250
|
-
const { defaultLocale } = await commonService.readLocale();
|
|
251
|
-
const repository = (0, repositories_1.getNavigationRepository)(context);
|
|
252
|
-
const { name, visible, items } = payload;
|
|
253
|
-
const currentNavigation = await repository.findOne({
|
|
254
|
-
where: { id: payload.id },
|
|
255
|
-
populate: true,
|
|
256
|
-
});
|
|
257
|
-
const currentNavigationAsDTO = await this.getById({ id: payload.id });
|
|
258
|
-
const detailsHaveChanged = currentNavigation.name !== name || currentNavigation.visible !== visible;
|
|
259
|
-
if (detailsHaveChanged) {
|
|
260
|
-
const allNavigations = await repository.find({
|
|
261
|
-
where: { documentId: currentNavigation.documentId },
|
|
262
|
-
});
|
|
263
|
-
for (const navigation of allNavigations) {
|
|
264
|
-
const newSlug = name
|
|
265
|
-
? await commonService.getSlug({
|
|
266
|
-
query: `${name}${navigation.localeCode !== defaultLocale ? ` ${navigation.localeCode}` : ''}`,
|
|
267
|
-
})
|
|
268
|
-
: currentNavigation.slug;
|
|
269
|
-
await repository.save({
|
|
270
|
-
id: navigation.id,
|
|
271
|
-
slug: newSlug,
|
|
272
|
-
name,
|
|
273
|
-
visible,
|
|
274
|
-
});
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
const updatedNavigationAsDTO = await commonService
|
|
278
|
-
.analyzeBranch({
|
|
279
|
-
navigationItems: items ?? [],
|
|
280
|
-
masterEntity: currentNavigation,
|
|
281
|
-
prevAction: {},
|
|
282
|
-
})
|
|
283
|
-
.then(utils_3.prepareAuditLog)
|
|
284
|
-
.then(async (actionType) => {
|
|
285
|
-
const newEntity = await this.getById({ id: currentNavigation.id });
|
|
286
|
-
(0, utils_3.sendAuditLog)(auditLog, 'onChangeNavigation', {
|
|
287
|
-
actionType,
|
|
288
|
-
oldEntity: currentNavigationAsDTO,
|
|
289
|
-
newEntity,
|
|
290
|
-
});
|
|
291
|
-
return newEntity;
|
|
292
|
-
});
|
|
293
|
-
await commonService.emitEvent({
|
|
294
|
-
entity: await repository.findOne({ where: { id: payload.id }, populate: true }),
|
|
295
|
-
event: 'entry.update',
|
|
296
|
-
uid: masterModel.uid,
|
|
297
|
-
});
|
|
298
|
-
return updatedNavigationAsDTO;
|
|
299
|
-
},
|
|
300
|
-
async delete({ auditLog, id }) {
|
|
301
|
-
const navigationRepository = (0, repositories_1.getNavigationRepository)(context);
|
|
302
|
-
const navigationItemRepository = (0, repositories_1.getNavigationItemRepository)(context);
|
|
303
|
-
const navigationAsDTO = await this.getById({ id });
|
|
304
|
-
// TODO: remove when cascade deletion is present
|
|
305
|
-
// NOTE: Delete many with relation `where` crashes ORM
|
|
306
|
-
const cleanNavigationItems = async (masterIds) => {
|
|
307
|
-
if (masterIds.length < 1) {
|
|
308
|
-
return;
|
|
309
|
-
}
|
|
310
|
-
await navigationItemRepository.removeForIds(await navigationItemRepository.findForMasterIds(masterIds).then((_) => _.reduce((acc, { id }) => {
|
|
311
|
-
if (id) {
|
|
312
|
-
acc.push(id);
|
|
313
|
-
}
|
|
314
|
-
return acc;
|
|
315
|
-
}, [])));
|
|
316
|
-
};
|
|
317
|
-
const navigation = await navigationRepository.findOne({ where: { id }, populate: true });
|
|
318
|
-
const allNavigations = await navigationRepository.find({
|
|
319
|
-
where: { documentId: navigation.documentId },
|
|
320
|
-
populate: true,
|
|
321
|
-
});
|
|
322
|
-
await cleanNavigationItems(allNavigations.map(({ id }) => id));
|
|
323
|
-
await navigationRepository.remove({ documentId: navigation.documentId });
|
|
324
|
-
(0, utils_3.sendAuditLog)(auditLog, 'onNavigationDeletion', {
|
|
325
|
-
entity: navigationAsDTO,
|
|
326
|
-
actionType: 'DELETE',
|
|
327
|
-
});
|
|
328
|
-
},
|
|
329
|
-
async restart() {
|
|
330
|
-
setImmediate(() => context.strapi.reload());
|
|
331
|
-
},
|
|
332
|
-
async restoreConfig() {
|
|
333
|
-
const commonService = (0, utils_2.getPluginService)(context, 'common');
|
|
334
|
-
const pluginStore = await commonService.getPluginStore();
|
|
335
|
-
await pluginStore.delete({ key: 'config' });
|
|
336
|
-
await commonService.setDefaultConfig();
|
|
337
|
-
},
|
|
338
|
-
async updateConfig({ config: newConfig }) {
|
|
339
|
-
const commonService = (0, utils_2.getPluginService)(context, 'common');
|
|
340
|
-
const pluginStore = await commonService.getPluginStore();
|
|
341
|
-
const config = await pluginStore
|
|
342
|
-
.get({
|
|
343
|
-
key: 'config',
|
|
344
|
-
})
|
|
345
|
-
.then(schemas_1.configSchema.parse);
|
|
346
|
-
(0, utils_2.validateAdditionalFields)(newConfig.additionalFields);
|
|
347
|
-
await pluginStore.set({ key: 'config', value: newConfig });
|
|
348
|
-
const removedFields = (0, lodash_1.differenceBy)(config.additionalFields, newConfig.additionalFields, 'name').reduce((acc, field) => {
|
|
349
|
-
if (typeof field === 'string') {
|
|
350
|
-
return acc;
|
|
351
|
-
}
|
|
352
|
-
acc.push(field);
|
|
353
|
-
return acc;
|
|
354
|
-
}, []);
|
|
355
|
-
if (!(0, lodash_1.isEmpty)(removedFields)) {
|
|
356
|
-
await commonService.pruneCustomFields({ removedFields });
|
|
357
|
-
}
|
|
358
|
-
},
|
|
359
|
-
async fillFromOtherLocale({ auditLog, source, target, }) {
|
|
360
|
-
const targetEntity = await this.getById({ id: target });
|
|
361
|
-
return await this.i18nNavigationContentsCopy({
|
|
362
|
-
source: await this.getById({ id: source }),
|
|
363
|
-
target: targetEntity,
|
|
364
|
-
})
|
|
365
|
-
.then(() => this.getById({ id: target }))
|
|
366
|
-
.then((newEntity) => {
|
|
367
|
-
(0, utils_3.sendAuditLog)(auditLog, 'onChangeNavigation', {
|
|
368
|
-
actionType: 'UPDATE',
|
|
369
|
-
oldEntity: targetEntity,
|
|
370
|
-
newEntity,
|
|
371
|
-
});
|
|
372
|
-
return newEntity;
|
|
373
|
-
});
|
|
374
|
-
},
|
|
375
|
-
async i18nNavigationContentsCopy({ source, target, }) {
|
|
376
|
-
const commonService = (0, utils_2.getPluginService)(context, 'common');
|
|
377
|
-
const sourceItems = source.items ?? [];
|
|
378
|
-
const navigationRepository = (0, repositories_1.getNavigationRepository)(context);
|
|
379
|
-
if (target.items?.length) {
|
|
380
|
-
throw new app_errors_1.FillNavigationError('Current navigation is non-empty');
|
|
381
|
-
}
|
|
382
|
-
if (!target.localeCode) {
|
|
383
|
-
throw new app_errors_1.FillNavigationError('Current navigation does not have specified locale');
|
|
384
|
-
}
|
|
385
|
-
if (!sourceItems.length) {
|
|
386
|
-
throw new app_errors_1.FillNavigationError('Source navigation is empty');
|
|
387
|
-
}
|
|
388
|
-
const entities = new Map();
|
|
389
|
-
const itemProcessor = (0, utils_3.processItems)({
|
|
390
|
-
master: target,
|
|
391
|
-
localeCode: target.localeCode,
|
|
392
|
-
strapi,
|
|
393
|
-
entities,
|
|
394
|
-
});
|
|
395
|
-
await commonService.createBranch({
|
|
396
|
-
action: { create: true },
|
|
397
|
-
masterEntity: await navigationRepository.findOne({
|
|
398
|
-
where: { id: target.id },
|
|
399
|
-
populate: true,
|
|
400
|
-
}),
|
|
401
|
-
navigationItems: await Promise.all(sourceItems.map(itemProcessor)),
|
|
402
|
-
parentItem: undefined,
|
|
403
|
-
});
|
|
404
|
-
},
|
|
405
|
-
async readNavigationItemFromLocale({ path, source, target, }) {
|
|
406
|
-
const sourceNavigation = await this.getById({ id: source });
|
|
407
|
-
const targetNavigation = await this.getById({ id: target });
|
|
408
|
-
if (!sourceNavigation) {
|
|
409
|
-
throw new utils_1.errors.NotFoundError('Unable to find source navigation for specified query');
|
|
410
|
-
}
|
|
411
|
-
if (!targetNavigation) {
|
|
412
|
-
throw new utils_1.errors.NotFoundError('Unable to find target navigation for specified query');
|
|
413
|
-
}
|
|
414
|
-
const requiredFields = [
|
|
415
|
-
'path',
|
|
416
|
-
'related',
|
|
417
|
-
'type',
|
|
418
|
-
'uiRouterKey',
|
|
419
|
-
'title',
|
|
420
|
-
'externalPath',
|
|
421
|
-
];
|
|
422
|
-
const structurePath = path.split('.').map((p) => parseInt(p, 10));
|
|
423
|
-
if (!structurePath.some(Number.isNaN) || !structurePath.length) {
|
|
424
|
-
new app_errors_1.InvalidParamNavigationError('Path is invalid');
|
|
425
|
-
}
|
|
426
|
-
let result = (0, lodash_1.get)(sourceNavigation.items, (0, utils_3.intercalate)('items', structurePath.map(lodash_1.toString)));
|
|
427
|
-
if (!result) {
|
|
428
|
-
throw new utils_1.errors.NotFoundError('Unable to find navigation item');
|
|
429
|
-
}
|
|
430
|
-
return schemas_1.readNavigationItemFromLocaleSchema.parse((0, lodash_1.pick)(result, requiredFields));
|
|
431
|
-
},
|
|
432
|
-
async getContentTypeItems({ query, uid }) {
|
|
433
|
-
const commonService = (0, utils_2.getPluginService)(context, 'common');
|
|
434
|
-
const pluginStore = await commonService.getPluginStore();
|
|
435
|
-
const config = await pluginStore.get({ key: 'config' }).then(schemas_1.configSchema.parse);
|
|
436
|
-
const where = {
|
|
437
|
-
publishedAt: {
|
|
438
|
-
$notNull: true,
|
|
439
|
-
},
|
|
440
|
-
};
|
|
441
|
-
if (query.localeCode) {
|
|
442
|
-
where.locale = query.localeCode;
|
|
443
|
-
}
|
|
444
|
-
const repository = (0, repositories_1.getGenericRepository)(context, uid);
|
|
445
|
-
try {
|
|
446
|
-
const contentTypeItems = await repository.findMany(where, config.contentTypesPopulate[uid] || []);
|
|
447
|
-
return contentTypeItems;
|
|
448
|
-
}
|
|
449
|
-
catch (err) {
|
|
450
|
-
return [];
|
|
451
|
-
}
|
|
452
|
-
},
|
|
453
|
-
async purgeNavigationCache(id, clearLocalisations) {
|
|
454
|
-
const navigationRepository = (0, repositories_1.getNavigationRepository)(context);
|
|
455
|
-
const entity = await navigationRepository.findOne({ where: { id } });
|
|
456
|
-
if (!entity) {
|
|
457
|
-
throw new utils_1.errors.NotFoundError('Navigation is not defined');
|
|
458
|
-
}
|
|
459
|
-
const mapToRegExp = (id) => new RegExp(`/api/navigation/render/${id}`);
|
|
460
|
-
let regexps = [mapToRegExp(entity.id)];
|
|
461
|
-
if (clearLocalisations) {
|
|
462
|
-
const navigations = await navigationRepository.find({
|
|
463
|
-
where: {
|
|
464
|
-
documentId: entity.documentId,
|
|
465
|
-
},
|
|
466
|
-
});
|
|
467
|
-
regexps = navigations.map(({ id }) => mapToRegExp(id));
|
|
468
|
-
}
|
|
469
|
-
const restCachePlugin = strapi.plugin('rest-cache');
|
|
470
|
-
const cacheStore = restCachePlugin.service('cacheStore');
|
|
471
|
-
regexps.push(mapToRegExp(id));
|
|
472
|
-
await cacheStore.clearByRegexp(regexps);
|
|
473
|
-
return { success: true };
|
|
474
|
-
},
|
|
475
|
-
async purgeNavigationsCache() {
|
|
476
|
-
const restCachePlugin = strapi.plugin('rest-cache');
|
|
477
|
-
const cacheStore = restCachePlugin.service('cacheStore');
|
|
478
|
-
const regex = new RegExp('/api/navigation/render(.*)');
|
|
479
|
-
await cacheStore.clearByRegexp([regex]);
|
|
480
|
-
return { success: true };
|
|
481
|
-
},
|
|
482
|
-
});
|
|
483
|
-
exports.default = adminService;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const admin_1 = __importDefault(require("./admin"));
|
|
7
|
-
exports.default = admin_1.default;
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getCacheStatus = exports.intercalate = exports.processItems = exports.prepareAuditLog = exports.sendAuditLog = void 0;
|
|
4
|
-
const repositories_1 = require("../../repositories");
|
|
5
|
-
const schemas_1 = require("../../schemas");
|
|
6
|
-
const utils_1 = require("../../utils");
|
|
7
|
-
const sendAuditLog = (auditLogInstance, event, data) => {
|
|
8
|
-
if (auditLogInstance && auditLogInstance.emit) {
|
|
9
|
-
auditLogInstance.emit(event, data);
|
|
10
|
-
}
|
|
11
|
-
};
|
|
12
|
-
exports.sendAuditLog = sendAuditLog;
|
|
13
|
-
const prepareAuditLog = (actions) => {
|
|
14
|
-
return [
|
|
15
|
-
...new Set(actions
|
|
16
|
-
.filter((_) => !!_)
|
|
17
|
-
.flatMap(({ remove, create, update }) => {
|
|
18
|
-
return [create ? 'CREATE' : '', update ? 'UPDATE' : '', remove ? 'REMOVE' : ''].filter((_) => !!_);
|
|
19
|
-
})),
|
|
20
|
-
].join('_');
|
|
21
|
-
};
|
|
22
|
-
exports.prepareAuditLog = prepareAuditLog;
|
|
23
|
-
const processItems = (context) => async (item) => {
|
|
24
|
-
const { related } = item;
|
|
25
|
-
let nextRelated = related;
|
|
26
|
-
if (related && !context.entities.has(related)) {
|
|
27
|
-
const [uid, id] = related.split(utils_1.RELATED_ITEM_SEPARATOR);
|
|
28
|
-
const entity = await (0, repositories_1.getGenericRepository)(context, uid).findById(parseInt(id, 10), true);
|
|
29
|
-
if (!context.entities.has(related)) {
|
|
30
|
-
context.entities.set(related, {
|
|
31
|
-
...entity,
|
|
32
|
-
uid,
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
if (related && context.entities.has(related)) {
|
|
37
|
-
const entity = context.entities.get(related);
|
|
38
|
-
const localeVersion = await strapi.documents(entity.uid).findOne({
|
|
39
|
-
documentId: entity.documentId,
|
|
40
|
-
locale: context.localeCode,
|
|
41
|
-
status: 'published',
|
|
42
|
-
});
|
|
43
|
-
if (localeVersion) {
|
|
44
|
-
nextRelated = [entity.uid, localeVersion.id].join(utils_1.RELATED_ITEM_SEPARATOR);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
return {
|
|
48
|
-
title: item.title,
|
|
49
|
-
path: item.path,
|
|
50
|
-
audience: item.audience,
|
|
51
|
-
type: item.type,
|
|
52
|
-
uiRouterKey: item.uiRouterKey,
|
|
53
|
-
order: item.order,
|
|
54
|
-
collapsed: item.collapsed,
|
|
55
|
-
menuAttached: item.menuAttached,
|
|
56
|
-
removed: false,
|
|
57
|
-
updated: true,
|
|
58
|
-
externalPath: item.externalPath,
|
|
59
|
-
items: item.items
|
|
60
|
-
? await Promise.all(item.items.map((0, exports.processItems)(context)))
|
|
61
|
-
: [],
|
|
62
|
-
master: context.master,
|
|
63
|
-
parent: undefined,
|
|
64
|
-
related: nextRelated,
|
|
65
|
-
};
|
|
66
|
-
};
|
|
67
|
-
exports.processItems = processItems;
|
|
68
|
-
const intercalate = (glue, arr) => arr.slice(1).reduce((acc, element) => acc.concat([glue, element]), arr.slice(0, 1));
|
|
69
|
-
exports.intercalate = intercalate;
|
|
70
|
-
const getCacheStatus = async ({ strapi, }) => {
|
|
71
|
-
const cachePlugin = strapi.plugin('rest-cache');
|
|
72
|
-
const hasCachePlugin = !!cachePlugin;
|
|
73
|
-
const pluginStore = strapi.store({
|
|
74
|
-
type: 'plugin',
|
|
75
|
-
name: 'navigation',
|
|
76
|
-
});
|
|
77
|
-
const config = schemas_1.configSchema.parse(await pluginStore.get({
|
|
78
|
-
key: 'config',
|
|
79
|
-
}));
|
|
80
|
-
return hasCachePlugin
|
|
81
|
-
? { hasCachePlugin, enabled: !!config.isCacheEnabled }
|
|
82
|
-
: { hasCachePlugin, enabled: false };
|
|
83
|
-
};
|
|
84
|
-
exports.getCacheStatus = getCacheStatus;
|