sitero 0.5.0 → 0.7.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/export/cms/client/components/index.js +6 -2
- package/dist/export/cms/client/index.js +2 -0
- package/dist/export/cms/client/pages/index.js +1 -3
- package/dist/export/cms/server/index.js +1 -0
- package/dist/export/core/server/index.js +2 -0
- package/dist/export/index.js +1 -0
- package/dist/export/web/server/index.js +1 -0
- package/dist/prisma/generated/internal/class.js +4 -4
- package/dist/src/cms/client/applications/create-applications.js +5 -0
- package/dist/src/cms/client/applications/resources/page/form-data.js +56 -0
- package/dist/src/cms/client/applications/resources/page/use-page-update-form-data.js +30 -0
- package/dist/src/cms/client/applications/resources/post/use-create-form-data.js +5 -5
- package/dist/src/cms/client/applications/resources/post/use-update-form-data.js +1 -1
- package/dist/src/cms/client/applications/resources/seo-metadata/build-seo-metadata-translations.js +35 -0
- package/dist/src/cms/client/applications/resources/seo-metadata/use-upsert-form-data.js +15 -31
- package/dist/src/cms/client/applications/ui/use-nav-items.js +28 -39
- package/dist/src/cms/client/infrastructure/i18n/messages/en-US/resources/file.js +5 -4
- package/dist/src/cms/client/infrastructure/i18n/messages/en-US/resources/index.js +7 -0
- package/dist/src/cms/client/infrastructure/i18n/messages/en-US/resources/post.js +32 -1
- package/dist/src/cms/client/infrastructure/i18n/messages/en-US/ui/index.js +8 -1
- package/dist/src/cms/client/infrastructure/i18n/messages/zh-TW/resources/file.js +6 -5
- package/dist/src/cms/client/infrastructure/i18n/messages/zh-TW/resources/index.js +7 -0
- package/dist/src/cms/client/infrastructure/i18n/messages/zh-TW/resources/post.js +18 -1
- package/dist/src/cms/client/infrastructure/i18n/messages/zh-TW/ui/index.js +7 -2
- package/dist/src/cms/client/infrastructure/operation-result/presentation/message.js +15 -0
- package/dist/src/cms/client/interfaces/components/create-components.js +4 -8
- package/dist/src/cms/client/interfaces/components/create-page-contents.js +28 -0
- package/dist/src/cms/client/interfaces/components/resources/page/content/field-groups.js +16 -0
- package/dist/src/cms/client/interfaces/components/resources/page/content/page-edit-content.js +216 -0
- package/dist/src/cms/client/interfaces/components/resources/page/content/page-show-content.js +114 -0
- package/dist/src/cms/client/interfaces/components/resources/page/content/types.js +12 -0
- package/dist/src/cms/client/interfaces/components/resources/post/category/category-card.js +5 -3
- package/dist/src/cms/client/interfaces/components/resources/post/category/category-table.js +6 -4
- package/dist/src/cms/client/interfaces/components/resources/post/content/post-create-content.js +13 -8
- package/dist/src/cms/client/interfaces/components/resources/post/content/post-edit-content.js +11 -7
- package/dist/src/cms/client/interfaces/components/resources/post/content/post-show-content.js +7 -2
- package/dist/src/cms/client/interfaces/components/resources/post/post-card.js +5 -3
- package/dist/src/cms/client/interfaces/components/resources/post/post-list.js +45 -10
- package/dist/src/cms/client/interfaces/components/resources/post/post-state-icons.js +17 -1
- package/dist/src/cms/client/interfaces/components/resources/post/post-table.js +8 -4
- package/dist/src/cms/client/interfaces/components/resources/post/search/control-fields-filters.js +5 -1
- package/dist/src/cms/client/interfaces/components/resources/seo-metadata/seo-form/seo-form.js +90 -67
- package/dist/src/cms/client/interfaces/components/resources/seo-metadata/seo-metadata-dialog.js +11 -1
- package/dist/src/cms/client/interfaces/components/ui/blocks/list-container/list-container.js +1 -1
- package/dist/src/cms/client/interfaces/components/ui/blocks/list-container/pagination.js +9 -9
- package/dist/src/cms/client/interfaces/components/ui/features/accordion/accordion-header.js +15 -3
- package/dist/src/cms/client/interfaces/components/ui/features/accordion/accordion.js +5 -7
- package/dist/src/cms/client/interfaces/components/ui/form/control-fields/control-fields-display.js +1 -1
- package/dist/src/cms/client/interfaces/components/ui/form/control-fields/control-fields-input.js +1 -1
- package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/_topicSlug_/category/_id_/edit/page.js +11 -11
- package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/_topicSlug_/category/_id_/page.js +12 -16
- package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/_topicSlug_/category/_id_/relations/page.js +6 -2
- package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/_topicSlug_/category/create/page.js +15 -16
- package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/_topicSlug_/page.js +18 -41
- package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/_topicSlug_/post/_id_/edit/page.js +10 -11
- package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/_topicSlug_/post/_id_/page.js +11 -16
- package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/_topicSlug_/post/_id_/relations/page.js +1 -0
- package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/_topicSlug_/post/create/page.js +14 -16
- package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/_topicSlug_/subcategory/_id_/edit/page.js +11 -11
- package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/_topicSlug_/subcategory/_id_/page.js +12 -16
- package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/_topicSlug_/subcategory/_id_/relations/page.js +1 -0
- package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/_topicSlug_/subcategory/create/page.js +15 -16
- package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/page.js +18 -32
- package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/tag/_id_/edit/page.js +2 -2
- package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/tag/_id_/page.js +9 -9
- package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/tag/_id_/relations/page.js +6 -2
- package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/tag/create/page.js +2 -2
- package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/trash/page.js +204 -0
- package/dist/src/cms/client/interfaces/pages/dashboard/system/access/admin/_id_/admin-refresh-token/page.js +1 -0
- package/dist/src/cms/client/interfaces/pages/dashboard/system/access/admin/_id_/page.js +1 -0
- package/dist/src/cms/client/interfaces/pages/dashboard/system/access/admin/_id_/relations/page.js +8 -3
- package/dist/src/cms/client/interfaces/pages/dashboard/system/storage/file/_id_/page.js +3 -2
- package/dist/src/cms/client/interfaces/pages/dashboard/system/storage/file/_id_/relations/page.js +41 -30
- package/dist/src/cms/client/interfaces/pages/dashboard/system/storage/file/delete-many/page.js +3 -3
- package/dist/src/cms/client/interfaces/pages/dashboard/system/storage/file/page.js +1 -1
- package/dist/src/cms/client/interfaces/pages/dashboard/system/storage/trash/page.js +3 -2
- package/dist/src/cms/client/interfaces/pages/dashboard/website/website-page/_slug_/edit/page.js +19 -11
- package/dist/src/cms/client/interfaces/pages/dashboard/website/website-page/_slug_/page.js +23 -10
- package/dist/src/cms/client/interfaces/pages/dashboard/website/website-page/page.js +7 -7
- package/dist/src/cms/server/create-cms-server.js +2 -0
- package/dist/src/cms/server/resources/page/actions.js +31 -0
- package/dist/src/cms/server/resources/post/actions.js +27 -6
- package/dist/src/cms/server/resources/seo-metadata/actions.js +7 -16
- package/dist/src/config/content-ui.js +24 -0
- package/dist/src/config/topics.js +1 -1
- package/dist/src/constants/paths/cms-paths.js +2 -2
- package/dist/src/core/infrastructure/prisma/file/include.js +44 -0
- package/dist/src/core/infrastructure/prisma/file/mappers.js +51 -3
- package/dist/src/core/infrastructure/prisma/helpers/active-file-references.js +2 -1
- package/dist/src/core/infrastructure/prisma/page/include.js +20 -0
- package/dist/src/core/infrastructure/prisma/page/mappers.js +44 -0
- package/dist/src/core/infrastructure/prisma/page/page-prisma-ports.js +91 -0
- package/dist/src/core/infrastructure/prisma/post/include.js +10 -10
- package/dist/src/core/infrastructure/prisma/post/lifecycle.js +108 -0
- package/dist/src/core/infrastructure/prisma/post/mappers.js +9 -6
- package/dist/src/core/infrastructure/prisma/post/post-prisma-ports.js +76 -24
- package/dist/src/core/infrastructure/prisma/post/read-scope.js +45 -0
- package/dist/src/core/infrastructure/prisma/seo-metadata/mappers.js +6 -1
- package/dist/src/core/infrastructure/prisma/seo-metadata/seo-metadata-prisma-ports.js +32 -11
- package/dist/src/core/seeders/page/seeder.js +9 -29
- package/dist/src/core/seeders/seed.js +0 -3
- package/dist/src/core/sitero-server/create-sitero-server.js +10 -0
- package/dist/src/web/server/create-web-server.js +5 -1
- package/dist/src/web/server/resources/page/actions.js +20 -0
- package/dist/src/web/server/resources/post/actions.js +7 -37
- package/dist/src/web/server/seo/sitemap/get-page-items.js +7 -6
- package/dist/src/web/server/seo/sitemap/get-post-items.js +2 -2
- package/dist/src/web/server/seo/sitemap/get-subcategory-items.js +1 -1
- package/dist/types/export/cms/client/components/index.d.ts +3 -0
- package/dist/types/export/cms/client/components/index.d.ts.map +1 -1
- package/dist/types/export/cms/client/index.d.ts +2 -0
- package/dist/types/export/cms/client/index.d.ts.map +1 -1
- package/dist/types/export/cms/client/pages/index.d.ts +2 -1
- package/dist/types/export/cms/client/pages/index.d.ts.map +1 -1
- package/dist/types/export/cms/server/index.d.ts +2 -1
- package/dist/types/export/cms/server/index.d.ts.map +1 -1
- package/dist/types/export/index.d.ts +1 -1
- package/dist/types/export/index.d.ts.map +1 -1
- package/dist/types/export/web/server/index.d.ts +2 -1
- package/dist/types/export/web/server/index.d.ts.map +1 -1
- package/dist/types/src/cms/client/applications/create-applications.d.ts.map +1 -1
- package/dist/types/src/cms/client/applications/index.d.ts +1 -0
- package/dist/types/src/cms/client/applications/index.d.ts.map +1 -1
- package/dist/types/src/cms/client/applications/resources/index.d.ts +1 -0
- package/dist/types/src/cms/client/applications/resources/index.d.ts.map +1 -1
- package/dist/types/src/cms/client/applications/resources/page/form-data.d.ts +21 -0
- package/dist/types/src/cms/client/applications/resources/page/form-data.d.ts.map +1 -0
- package/dist/types/src/cms/client/applications/resources/page/index.d.ts +3 -0
- package/dist/types/src/cms/client/applications/resources/page/index.d.ts.map +1 -0
- package/dist/types/src/cms/client/applications/resources/page/use-page-update-form-data.d.ts +12 -0
- package/dist/types/src/cms/client/applications/resources/page/use-page-update-form-data.d.ts.map +1 -0
- package/dist/types/src/cms/client/applications/resources/post/use-create-form-data.d.ts +3 -5
- package/dist/types/src/cms/client/applications/resources/post/use-create-form-data.d.ts.map +1 -1
- package/dist/types/src/cms/client/applications/resources/post/use-update-form-data.d.ts.map +1 -1
- package/dist/types/src/cms/client/applications/resources/seo-metadata/build-seo-metadata-translations.d.ts +6 -0
- package/dist/types/src/cms/client/applications/resources/seo-metadata/build-seo-metadata-translations.d.ts.map +1 -0
- package/dist/types/src/cms/client/applications/resources/seo-metadata/use-upsert-form-data.d.ts +5 -4
- package/dist/types/src/cms/client/applications/resources/seo-metadata/use-upsert-form-data.d.ts.map +1 -1
- package/dist/types/src/cms/client/applications/types.d.ts +2 -1
- package/dist/types/src/cms/client/applications/types.d.ts.map +1 -1
- package/dist/types/src/cms/client/applications/ui/use-nav-items.d.ts +3 -4
- package/dist/types/src/cms/client/applications/ui/use-nav-items.d.ts.map +1 -1
- package/dist/types/src/cms/client/infrastructure/i18n/messages/en-US/index.d.ts +86 -0
- package/dist/types/src/cms/client/infrastructure/i18n/messages/en-US/index.d.ts.map +1 -1
- package/dist/types/src/cms/client/infrastructure/i18n/messages/en-US/resources/file.d.ts +3 -0
- package/dist/types/src/cms/client/infrastructure/i18n/messages/en-US/resources/file.d.ts.map +1 -1
- package/dist/types/src/cms/client/infrastructure/i18n/messages/en-US/resources/index.d.ts +71 -0
- package/dist/types/src/cms/client/infrastructure/i18n/messages/en-US/resources/index.d.ts.map +1 -1
- package/dist/types/src/cms/client/infrastructure/i18n/messages/en-US/resources/post.d.ts +51 -0
- package/dist/types/src/cms/client/infrastructure/i18n/messages/en-US/resources/post.d.ts.map +1 -1
- package/dist/types/src/cms/client/infrastructure/i18n/messages/en-US/ui/index.d.ts +15 -0
- package/dist/types/src/cms/client/infrastructure/i18n/messages/en-US/ui/index.d.ts.map +1 -1
- package/dist/types/src/cms/client/infrastructure/i18n/messages/index.d.ts +172 -0
- package/dist/types/src/cms/client/infrastructure/i18n/messages/index.d.ts.map +1 -1
- package/dist/types/src/cms/client/infrastructure/i18n/messages/zh-TW/index.d.ts +86 -0
- package/dist/types/src/cms/client/infrastructure/i18n/messages/zh-TW/index.d.ts.map +1 -1
- package/dist/types/src/cms/client/infrastructure/i18n/messages/zh-TW/resources/file.d.ts +3 -0
- package/dist/types/src/cms/client/infrastructure/i18n/messages/zh-TW/resources/file.d.ts.map +1 -1
- package/dist/types/src/cms/client/infrastructure/i18n/messages/zh-TW/resources/index.d.ts +71 -0
- package/dist/types/src/cms/client/infrastructure/i18n/messages/zh-TW/resources/index.d.ts.map +1 -1
- package/dist/types/src/cms/client/infrastructure/i18n/messages/zh-TW/resources/post.d.ts +51 -0
- package/dist/types/src/cms/client/infrastructure/i18n/messages/zh-TW/resources/post.d.ts.map +1 -1
- package/dist/types/src/cms/client/infrastructure/i18n/messages/zh-TW/ui/index.d.ts +15 -0
- package/dist/types/src/cms/client/infrastructure/i18n/messages/zh-TW/ui/index.d.ts.map +1 -1
- package/dist/types/src/cms/client/infrastructure/operation-result/presentation/message.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/components/create-components.d.ts +6 -3
- package/dist/types/src/cms/client/interfaces/components/create-components.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/components/create-page-contents.d.ts +30 -0
- package/dist/types/src/cms/client/interfaces/components/create-page-contents.d.ts.map +1 -0
- package/dist/types/src/cms/client/interfaces/components/resources/index.d.ts +1 -1
- package/dist/types/src/cms/client/interfaces/components/resources/index.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/components/resources/page/content/field-groups.d.ts +3 -0
- package/dist/types/src/cms/client/interfaces/components/resources/page/content/field-groups.d.ts.map +1 -0
- package/dist/types/src/cms/client/interfaces/components/resources/page/content/page-edit-content.d.ts +14 -0
- package/dist/types/src/cms/client/interfaces/components/resources/page/content/page-edit-content.d.ts.map +1 -0
- package/dist/types/src/cms/client/interfaces/components/resources/page/content/page-show-content.d.ts +7 -0
- package/dist/types/src/cms/client/interfaces/components/resources/page/content/page-show-content.d.ts.map +1 -0
- package/dist/types/src/cms/client/interfaces/components/resources/page/content/types.d.ts +27 -0
- package/dist/types/src/cms/client/interfaces/components/resources/page/content/types.d.ts.map +1 -0
- package/dist/types/src/cms/client/interfaces/components/resources/page/index.d.ts +4 -0
- package/dist/types/src/cms/client/interfaces/components/resources/page/index.d.ts.map +1 -0
- package/dist/types/src/cms/client/interfaces/components/resources/post/category/category-card.d.ts +3 -1
- package/dist/types/src/cms/client/interfaces/components/resources/post/category/category-card.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/components/resources/post/category/category-table.d.ts +1 -1
- package/dist/types/src/cms/client/interfaces/components/resources/post/category/category-table.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/components/resources/post/content/post-create-content.d.ts +3 -5
- package/dist/types/src/cms/client/interfaces/components/resources/post/content/post-create-content.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/components/resources/post/content/post-edit-content.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/components/resources/post/content/post-show-content.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/components/resources/post/content/types.d.ts +1 -1
- package/dist/types/src/cms/client/interfaces/components/resources/post/content/types.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/components/resources/post/post-card.d.ts +3 -1
- package/dist/types/src/cms/client/interfaces/components/resources/post/post-card.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/components/resources/post/post-list.d.ts +6 -3
- package/dist/types/src/cms/client/interfaces/components/resources/post/post-list.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/components/resources/post/post-state-icons.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/components/resources/post/post-table.d.ts +3 -1
- package/dist/types/src/cms/client/interfaces/components/resources/post/post-table.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/components/resources/post/search/control-fields-filters.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/components/resources/seo-metadata/seo-form/seo-form.d.ts +5 -2
- package/dist/types/src/cms/client/interfaces/components/resources/seo-metadata/seo-form/seo-form.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/components/resources/seo-metadata/seo-metadata-dialog.d.ts +2 -1
- package/dist/types/src/cms/client/interfaces/components/resources/seo-metadata/seo-metadata-dialog.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/components/ui/blocks/list-container/list-container.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/components/ui/features/accordion/accordion-header.d.ts +3 -1
- package/dist/types/src/cms/client/interfaces/components/ui/features/accordion/accordion-header.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/components/ui/features/accordion/accordion.d.ts +2 -1
- package/dist/types/src/cms/client/interfaces/components/ui/features/accordion/accordion.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/components/ui/form/control-fields/control-fields-display.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/components/ui/form/control-fields/control-fields-input.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/category/[id]/edit/page.d.ts +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/category/[id]/edit/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/category/[id]/page.d.ts +3 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/category/[id]/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/category/[id]/relations/page.d.ts +3 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/category/[id]/relations/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/category/create/page.d.ts +4 -7
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/category/create/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/page.d.ts +1 -4
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/post/[id]/edit/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/post/[id]/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/post/[id]/relations/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/post/create/page.d.ts +4 -7
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/post/create/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/subcategory/[id]/edit/page.d.ts +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/subcategory/[id]/edit/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/subcategory/[id]/page.d.ts +3 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/subcategory/[id]/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/subcategory/[id]/relations/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/subcategory/create/page.d.ts +4 -7
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/subcategory/create/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/page.d.ts +1 -3
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/tag/[id]/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/tag/[id]/relations/page.d.ts +3 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/tag/[id]/relations/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/trash/index.d.ts +2 -0
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/trash/index.d.ts.map +1 -0
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/trash/page.d.ts +18 -0
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/trash/page.d.ts.map +1 -0
- package/dist/types/src/cms/client/interfaces/pages/dashboard/system/access/admin/[id]/relations/page.d.ts +3 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/system/access/admin/[id]/relations/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/system/storage/file/[id]/relations/page.d.ts +5 -6
- package/dist/types/src/cms/client/interfaces/pages/dashboard/system/storage/file/[id]/relations/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/system/storage/trash/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/website/website-page/[slug]/edit/page.d.ts +7 -9
- package/dist/types/src/cms/client/interfaces/pages/dashboard/website/website-page/[slug]/edit/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/website/website-page/[slug]/page.d.ts +7 -9
- package/dist/types/src/cms/client/interfaces/pages/dashboard/website/website-page/[slug]/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/website/website-page/page.d.ts +3 -3
- package/dist/types/src/cms/client/interfaces/pages/dashboard/website/website-page/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/index.d.ts +1 -1
- package/dist/types/src/cms/client/interfaces/pages/index.d.ts.map +1 -1
- package/dist/types/src/cms/contracts/resources/page/actions.d.ts +7 -0
- package/dist/types/src/cms/contracts/resources/page/actions.d.ts.map +1 -0
- package/dist/types/src/cms/contracts/resources/post/actions.d.ts +2 -0
- package/dist/types/src/cms/contracts/resources/post/actions.d.ts.map +1 -1
- package/dist/types/src/cms/contracts/resources/post/form-data.d.ts +1 -1
- package/dist/types/src/cms/contracts/resources/post/form-data.d.ts.map +1 -1
- package/dist/types/src/cms/contracts/resources/seo-metadata/form-data.d.ts +2 -2
- package/dist/types/src/cms/contracts/resources/seo-metadata/form-data.d.ts.map +1 -1
- package/dist/types/src/cms/server/create-cms-server.d.ts +7 -0
- package/dist/types/src/cms/server/create-cms-server.d.ts.map +1 -1
- package/dist/types/src/cms/server/index.d.ts +1 -1
- package/dist/types/src/cms/server/index.d.ts.map +1 -1
- package/dist/types/src/cms/server/resources/index.d.ts +1 -0
- package/dist/types/src/cms/server/resources/index.d.ts.map +1 -1
- package/dist/types/src/cms/server/resources/page/actions.d.ts +8 -0
- package/dist/types/src/cms/server/resources/page/actions.d.ts.map +1 -0
- package/dist/types/src/cms/server/resources/post/actions.d.ts +2 -0
- package/dist/types/src/cms/server/resources/post/actions.d.ts.map +1 -1
- package/dist/types/src/cms/server/resources/seo-metadata/actions.d.ts.map +1 -1
- package/dist/types/src/config/content-ui.d.ts +14 -0
- package/dist/types/src/config/content-ui.d.ts.map +1 -0
- package/dist/types/src/config/index.d.ts +2 -0
- package/dist/types/src/config/index.d.ts.map +1 -1
- package/dist/types/src/config/page.d.ts +4 -0
- package/dist/types/src/config/page.d.ts.map +1 -0
- package/dist/types/src/config/topics.d.ts +2 -2
- package/dist/types/src/config/topics.d.ts.map +1 -1
- package/dist/types/src/constants/paths/cms-paths.d.ts +3 -3
- package/dist/types/src/core/infrastructure/index.d.ts +1 -0
- package/dist/types/src/core/infrastructure/index.d.ts.map +1 -1
- package/dist/types/src/core/infrastructure/prisma/file/include.d.ts +121 -0
- package/dist/types/src/core/infrastructure/prisma/file/include.d.ts.map +1 -1
- package/dist/types/src/core/infrastructure/prisma/file/mappers.d.ts.map +1 -1
- package/dist/types/src/core/infrastructure/prisma/helpers/active-file-references.d.ts +1 -1
- package/dist/types/src/core/infrastructure/prisma/helpers/active-file-references.d.ts.map +1 -1
- package/dist/types/src/core/infrastructure/prisma/index.d.ts +1 -0
- package/dist/types/src/core/infrastructure/prisma/index.d.ts.map +1 -1
- package/dist/types/src/core/infrastructure/prisma/page/include.d.ts +63 -0
- package/dist/types/src/core/infrastructure/prisma/page/include.d.ts.map +1 -0
- package/dist/types/src/core/infrastructure/prisma/page/index.d.ts +4 -0
- package/dist/types/src/core/infrastructure/prisma/page/index.d.ts.map +1 -0
- package/dist/types/src/core/infrastructure/prisma/page/mappers.d.ts +9 -0
- package/dist/types/src/core/infrastructure/prisma/page/mappers.d.ts.map +1 -0
- package/dist/types/src/core/infrastructure/prisma/page/page-prisma-ports.d.ts +7 -0
- package/dist/types/src/core/infrastructure/prisma/page/page-prisma-ports.d.ts.map +1 -0
- package/dist/types/src/core/infrastructure/prisma/page/types.d.ts +10 -0
- package/dist/types/src/core/infrastructure/prisma/page/types.d.ts.map +1 -0
- package/dist/types/src/core/infrastructure/prisma/post/include.d.ts +37 -23
- package/dist/types/src/core/infrastructure/prisma/post/include.d.ts.map +1 -1
- package/dist/types/src/core/infrastructure/prisma/post/lifecycle.d.ts +66 -0
- package/dist/types/src/core/infrastructure/prisma/post/lifecycle.d.ts.map +1 -0
- package/dist/types/src/core/infrastructure/prisma/post/mappers.d.ts +3 -2
- package/dist/types/src/core/infrastructure/prisma/post/mappers.d.ts.map +1 -1
- package/dist/types/src/core/infrastructure/prisma/post/post-prisma-ports.d.ts.map +1 -1
- package/dist/types/src/core/infrastructure/prisma/post/read-scope.d.ts +271 -0
- package/dist/types/src/core/infrastructure/prisma/post/read-scope.d.ts.map +1 -0
- package/dist/types/src/core/infrastructure/prisma/post/types.d.ts +4 -1
- package/dist/types/src/core/infrastructure/prisma/post/types.d.ts.map +1 -1
- package/dist/types/src/core/infrastructure/prisma/seo-metadata/mappers.d.ts +1 -1
- package/dist/types/src/core/infrastructure/prisma/seo-metadata/mappers.d.ts.map +1 -1
- package/dist/types/src/core/infrastructure/prisma/seo-metadata/seo-metadata-prisma-ports.d.ts +2 -2
- package/dist/types/src/core/infrastructure/prisma/seo-metadata/seo-metadata-prisma-ports.d.ts.map +1 -1
- package/dist/types/src/core/seeders/page/seeder.d.ts +3 -3
- package/dist/types/src/core/seeders/page/seeder.d.ts.map +1 -1
- package/dist/types/src/core/seeders/seed.d.ts +2 -3
- package/dist/types/src/core/seeders/seed.d.ts.map +1 -1
- package/dist/types/src/core/sitero-server/create-sitero-server.d.ts.map +1 -1
- package/dist/types/src/core/sitero-server/types.d.ts +2 -0
- package/dist/types/src/core/sitero-server/types.d.ts.map +1 -1
- package/dist/types/src/shared/list-item.d.ts +1 -0
- package/dist/types/src/shared/list-item.d.ts.map +1 -1
- package/dist/types/src/web/contracts/index.d.ts +1 -0
- package/dist/types/src/web/contracts/index.d.ts.map +1 -1
- package/dist/types/src/web/contracts/resources/page/actions.d.ts +5 -0
- package/dist/types/src/web/contracts/resources/page/actions.d.ts.map +1 -0
- package/dist/types/src/web/contracts/resources/post/actions.d.ts +2 -3
- package/dist/types/src/web/contracts/resources/post/actions.d.ts.map +1 -1
- package/dist/types/src/web/server/create-web-server.d.ts.map +1 -1
- package/dist/types/src/web/server/index.d.ts +1 -1
- package/dist/types/src/web/server/index.d.ts.map +1 -1
- package/dist/types/src/web/server/resources/index.d.ts +1 -0
- package/dist/types/src/web/server/resources/index.d.ts.map +1 -1
- package/dist/types/src/web/server/resources/page/actions.d.ts +17 -0
- package/dist/types/src/web/server/resources/page/actions.d.ts.map +1 -0
- package/dist/types/src/web/server/resources/post/actions.d.ts +1 -6
- package/dist/types/src/web/server/resources/post/actions.d.ts.map +1 -1
- package/dist/types/src/web/server/seo/metadata/build-metadata.d.ts +5 -2
- package/dist/types/src/web/server/seo/metadata/build-metadata.d.ts.map +1 -1
- package/dist/types/src/web/server/seo/sitemap/build-entries.d.ts +2 -2
- package/dist/types/src/web/server/seo/sitemap/build-entries.d.ts.map +1 -1
- package/dist/types/src/web/server/seo/sitemap/get-page-items.d.ts +6 -2
- package/dist/types/src/web/server/seo/sitemap/get-page-items.d.ts.map +1 -1
- package/dist/types/src/web/server/seo/sitemap/get-post-items.d.ts.map +1 -1
- package/dist/types/src/web/server/seo/sitemap/get-subcategory-items.d.ts.map +1 -1
- package/dist/types/src/web/server/types.d.ts +6 -2
- package/dist/types/src/web/server/types.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/src/cms/client/interfaces/components/resources/post/topic/topic-card.js +0 -81
- package/dist/src/cms/client/interfaces/components/resources/post/topic/topic-table.js +0 -120
- package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/topic/_id_/edit/page.js +0 -110
- package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/topic/_id_/page.js +0 -161
- package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/topic/page.js +0 -103
- package/dist/src/core/seeders/topic/seeder.js +0 -47
- package/dist/types/src/cms/client/interfaces/components/resources/post/topic/index.d.ts +0 -3
- package/dist/types/src/cms/client/interfaces/components/resources/post/topic/index.d.ts.map +0 -1
- package/dist/types/src/cms/client/interfaces/components/resources/post/topic/topic-card.d.ts +0 -5
- package/dist/types/src/cms/client/interfaces/components/resources/post/topic/topic-card.d.ts.map +0 -1
- package/dist/types/src/cms/client/interfaces/components/resources/post/topic/topic-table.d.ts +0 -3
- package/dist/types/src/cms/client/interfaces/components/resources/post/topic/topic-table.d.ts.map +0 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/topic/[id]/edit/page.d.ts +0 -20
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/topic/[id]/edit/page.d.ts.map +0 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/topic/[id]/page.d.ts +0 -20
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/topic/[id]/page.d.ts.map +0 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/topic/index.d.ts +0 -4
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/topic/index.d.ts.map +0 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/topic/page.d.ts +0 -14
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/topic/page.d.ts.map +0 -1
- package/dist/types/src/core/seeders/topic/seeder.d.ts +0 -10
- package/dist/types/src/core/seeders/topic/seeder.d.ts.map +0 -1
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
3
3
|
import { useTranslator } from 'intor/react';
|
|
4
4
|
import { AppWindow } from 'lucide-react';
|
|
5
|
-
import { POST_TYPES } from 'sitero-domain';
|
|
6
5
|
import { CMS_PATHS } from '../../../../../../../constants/paths/cms-paths.js';
|
|
7
6
|
import '../../../../../../../constants/paths/redirect.js';
|
|
8
7
|
import '../../../../../../../constants/cms-locale.js';
|
|
9
8
|
import 'mime-types';
|
|
9
|
+
import 'sitero-domain';
|
|
10
10
|
import 'react';
|
|
11
11
|
import 'ua-parser-js';
|
|
12
12
|
import '../../../../../../../shared/client/react-query/client.js';
|
|
@@ -48,14 +48,14 @@ import { ContentContainer } from '../../../../components/ui/layouts/content-cont
|
|
|
48
48
|
|
|
49
49
|
function createWebsitePagePage({
|
|
50
50
|
pages: staticPages,
|
|
51
|
-
|
|
51
|
+
pageFindManyAction
|
|
52
52
|
}) {
|
|
53
53
|
return function WebsitePagePage() {
|
|
54
54
|
const { t, locale } = useTranslator();
|
|
55
55
|
const { data: pages } = useQuery(
|
|
56
|
-
() =>
|
|
57
|
-
["
|
|
58
|
-
{ select: (data) => data?.
|
|
56
|
+
() => pageFindManyAction({ keys: Object.keys(staticPages) }),
|
|
57
|
+
["pageFindManyAction", Object.keys(staticPages)],
|
|
58
|
+
{ select: (data) => data?.pages }
|
|
59
59
|
);
|
|
60
60
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
61
61
|
/* @__PURE__ */ jsx(
|
|
@@ -69,10 +69,10 @@ function createWebsitePagePage({
|
|
|
69
69
|
}
|
|
70
70
|
),
|
|
71
71
|
/* @__PURE__ */ jsx(ContentContainer, { children: /* @__PURE__ */ jsx("div", { className: "flex flex-wrap max-lg:gap-3 lg:gap-6", children: ensureArray(pages).map((page, index) => {
|
|
72
|
-
const staticPage = staticPages[page.
|
|
72
|
+
const staticPage = staticPages[page.key];
|
|
73
73
|
const href = joinUrl(
|
|
74
74
|
CMS_PATHS.website["website-page"].pathname,
|
|
75
|
-
page.
|
|
75
|
+
page.key
|
|
76
76
|
);
|
|
77
77
|
return /* @__PURE__ */ jsx(
|
|
78
78
|
FeatureCard,
|
|
@@ -13,6 +13,7 @@ import { createFileActions } from './resources/file/actions.js';
|
|
|
13
13
|
import { createInquiryActions } from './resources/inquiry/actions.js';
|
|
14
14
|
import { createPostActions } from './resources/post/actions.js';
|
|
15
15
|
import { createSeoMetadataActions } from './resources/seo-metadata/actions.js';
|
|
16
|
+
import { createPageActions } from './resources/page/actions.js';
|
|
16
17
|
import { createAdminSessionRuntime } from './sessions/admin/admin-session-runtime.js';
|
|
17
18
|
|
|
18
19
|
function createCmsServer({
|
|
@@ -53,6 +54,7 @@ function createCmsServer({
|
|
|
53
54
|
...actionInput
|
|
54
55
|
}),
|
|
55
56
|
adminRefreshToken: createAdminRefreshTokenActions(actionInput),
|
|
57
|
+
page: createPageActions(actionInput),
|
|
56
58
|
config: createConfigActions(actionInput),
|
|
57
59
|
file: createFileActions(actionInput),
|
|
58
60
|
inquiry: createInquiryActions(actionInput),
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { operationResult, PageUnavailableError } from 'sitero-server';
|
|
2
|
+
|
|
3
|
+
function createPageActions({
|
|
4
|
+
resolveExecutionContext,
|
|
5
|
+
siteroServer
|
|
6
|
+
}) {
|
|
7
|
+
const findDetail = async (input) => {
|
|
8
|
+
const context = await resolveExecutionContext();
|
|
9
|
+
if (!context.success) return context;
|
|
10
|
+
const page = siteroServer.resources.page;
|
|
11
|
+
if (!page) return operationResult.failure(new PageUnavailableError());
|
|
12
|
+
return siteroServer.executor.execute(page.findDetail, input, context.data);
|
|
13
|
+
};
|
|
14
|
+
const findMany = async (input) => {
|
|
15
|
+
const context = await resolveExecutionContext();
|
|
16
|
+
if (!context.success) return context;
|
|
17
|
+
const page = siteroServer.resources.page;
|
|
18
|
+
if (!page) return operationResult.failure(new PageUnavailableError());
|
|
19
|
+
return siteroServer.executor.execute(page.findMany, input, context.data);
|
|
20
|
+
};
|
|
21
|
+
const update = async (input) => {
|
|
22
|
+
const context = await resolveExecutionContext();
|
|
23
|
+
if (!context.success) return context;
|
|
24
|
+
const page = siteroServer.resources.page;
|
|
25
|
+
if (!page) return operationResult.failure(new PageUnavailableError());
|
|
26
|
+
return siteroServer.executor.execute(page.update, input, context.data);
|
|
27
|
+
};
|
|
28
|
+
return { findDetail, findMany, update };
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export { createPageActions };
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import { operationResult } from 'sitero-server';
|
|
2
2
|
|
|
3
|
-
function toItem(id) {
|
|
4
|
-
return id ? { id } : null;
|
|
5
|
-
}
|
|
6
3
|
function toItems(items) {
|
|
7
4
|
return items?.map(({ id }) => ({ id })) ?? [];
|
|
8
5
|
}
|
|
@@ -54,7 +51,7 @@ function toPostCreateInput({
|
|
|
54
51
|
parents,
|
|
55
52
|
relatedPosts,
|
|
56
53
|
tags,
|
|
57
|
-
|
|
54
|
+
topicKey
|
|
58
55
|
} = formData;
|
|
59
56
|
return {
|
|
60
57
|
author: author ? { id: author.id } : null,
|
|
@@ -108,7 +105,7 @@ function toPostCreateInput({
|
|
|
108
105
|
text8: formData.text8,
|
|
109
106
|
text9: formData.text9,
|
|
110
107
|
text10: formData.text10,
|
|
111
|
-
|
|
108
|
+
topicKey,
|
|
112
109
|
translations: formData.translations.map(toPostTranslationWriteInput),
|
|
113
110
|
type: formData.type
|
|
114
111
|
};
|
|
@@ -117,7 +114,11 @@ function toPostUpdateInput({
|
|
|
117
114
|
formData,
|
|
118
115
|
id
|
|
119
116
|
}) {
|
|
120
|
-
const {
|
|
117
|
+
const {
|
|
118
|
+
type: _type,
|
|
119
|
+
topicKey: _topicKey,
|
|
120
|
+
...createInput
|
|
121
|
+
} = toPostCreateInput({
|
|
121
122
|
formData
|
|
122
123
|
});
|
|
123
124
|
return {
|
|
@@ -156,6 +157,24 @@ function createPostActions({
|
|
|
156
157
|
contextResult.data
|
|
157
158
|
);
|
|
158
159
|
};
|
|
160
|
+
const postRestoreAction = async (input) => {
|
|
161
|
+
const context = await resolveExecutionContext();
|
|
162
|
+
if (!context.success) return context;
|
|
163
|
+
return siteroServer.executor.execute(
|
|
164
|
+
siteroServer.resources.post.restore,
|
|
165
|
+
input,
|
|
166
|
+
context.data
|
|
167
|
+
);
|
|
168
|
+
};
|
|
169
|
+
const postPurgeAction = async (input) => {
|
|
170
|
+
const context = await resolveExecutionContext();
|
|
171
|
+
if (!context.success) return context;
|
|
172
|
+
return siteroServer.executor.execute(
|
|
173
|
+
siteroServer.resources.post.purge,
|
|
174
|
+
input,
|
|
175
|
+
context.data
|
|
176
|
+
);
|
|
177
|
+
};
|
|
159
178
|
const postFindDetailAction = async (input) => {
|
|
160
179
|
const contextResult = await resolveExecutionContext();
|
|
161
180
|
if (!contextResult.success) return contextResult;
|
|
@@ -201,6 +220,8 @@ function createPostActions({
|
|
|
201
220
|
return {
|
|
202
221
|
create: postCreateAction,
|
|
203
222
|
delete: postDeleteAction,
|
|
223
|
+
restore: postRestoreAction,
|
|
224
|
+
purge: postPurgeAction,
|
|
204
225
|
findDetail: postFindDetailAction,
|
|
205
226
|
findRelations: postFindRelationsAction,
|
|
206
227
|
findListCards: postFindListCardsAction,
|
|
@@ -45,7 +45,7 @@ function createSeoMetadataActions({
|
|
|
45
45
|
ogArticleModifiedTime: normalizeDatetime(
|
|
46
46
|
translation.ogArticleModifiedTime
|
|
47
47
|
),
|
|
48
|
-
//
|
|
48
|
+
// Invalid JSON is rejected below before the command can write.
|
|
49
49
|
jsonLd: jsonLd ?? []
|
|
50
50
|
};
|
|
51
51
|
}
|
|
@@ -54,31 +54,22 @@ function createSeoMetadataActions({
|
|
|
54
54
|
...input.formData,
|
|
55
55
|
translations
|
|
56
56
|
};
|
|
57
|
-
const result = await siteroServer.executor.execute(
|
|
58
|
-
siteroServer.resources.seoMetadata.upsert,
|
|
59
|
-
formData,
|
|
60
|
-
contextResult.data
|
|
61
|
-
);
|
|
62
57
|
const jsonLdFields = invalidJsonLdIndexes.map((index) => ({
|
|
63
58
|
path: ["translations", index, "jsonLd"],
|
|
64
59
|
kind: "custom",
|
|
65
60
|
code: "validation.json.invalid"
|
|
66
61
|
}));
|
|
67
|
-
if (jsonLdFields.length
|
|
68
|
-
if (result.success) {
|
|
62
|
+
if (jsonLdFields.length > 0) {
|
|
69
63
|
return {
|
|
70
64
|
success: false,
|
|
71
65
|
error: { code: "VALIDATION_FAILED", fields: jsonLdFields }
|
|
72
66
|
};
|
|
73
67
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
fields: [...result.error.fields ?? [], ...jsonLdFields]
|
|
80
|
-
}
|
|
81
|
-
};
|
|
68
|
+
return siteroServer.executor.execute(
|
|
69
|
+
siteroServer.resources.seoMetadata.upsert,
|
|
70
|
+
formData,
|
|
71
|
+
contextResult.data
|
|
72
|
+
);
|
|
82
73
|
};
|
|
83
74
|
return {
|
|
84
75
|
upsert: seoMetadataUpsertAction
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { hasTopicRole } from './topics.js';
|
|
2
|
+
|
|
3
|
+
function deriveContentUiCapabilities(topics, features) {
|
|
4
|
+
const byTopic = Object.fromEntries(
|
|
5
|
+
Object.keys(topics).map((key) => [
|
|
6
|
+
key,
|
|
7
|
+
{
|
|
8
|
+
hasCategory: hasTopicRole(topics, key, "CATEGORY"),
|
|
9
|
+
hasSubcategory: hasTopicRole(topics, key, "SUBCATEGORY"),
|
|
10
|
+
hasTag: features.tag
|
|
11
|
+
}
|
|
12
|
+
])
|
|
13
|
+
);
|
|
14
|
+
return {
|
|
15
|
+
hasCategory: Object.values(byTopic).some((flags) => flags.hasCategory),
|
|
16
|
+
hasSubcategory: Object.values(byTopic).some(
|
|
17
|
+
(flags) => flags.hasSubcategory
|
|
18
|
+
),
|
|
19
|
+
hasTag: features.tag,
|
|
20
|
+
byTopic
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export { deriveContentUiCapabilities };
|
|
@@ -5,7 +5,7 @@ function getTopicItemsByRole(topics, slug, items, role) {
|
|
|
5
5
|
return (items ?? []).filter((item) => item.type === role);
|
|
6
6
|
}
|
|
7
7
|
function hasTopicRole(topics, slug, role) {
|
|
8
|
-
return topics[slug]?.roles.includes(role) ?? false;
|
|
8
|
+
return Object.hasOwn(topics, slug) && (topics[slug]?.roles.includes(role) ?? false);
|
|
9
9
|
}
|
|
10
10
|
function isContentTopic(topics, slug) {
|
|
11
11
|
return hasTopicRole(topics, slug, POST_TYPES.POST) && !hasTopicRole(topics, slug, POST_TYPES.PRODUCT);
|
|
@@ -53,8 +53,8 @@ const CMS_PATHS = {
|
|
|
53
53
|
subcategory: {
|
|
54
54
|
pathname: (topicSlug = "") => `${DB}/content/content-management/${topicSlug}/subcategory`
|
|
55
55
|
},
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
tag: { pathname: `${DB}/content/content-management/tag` },
|
|
57
|
+
trash: { pathname: `${DB}/content/content-management/trash` }
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
};
|
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
const FILE_USAGE_INCLUDE = {
|
|
2
|
+
pagesAsCoverMedia: true,
|
|
3
|
+
pagesAsSection1CoverMedia: true,
|
|
4
|
+
pagesAsSection2CoverMedia: true,
|
|
5
|
+
pagesAsSection3CoverMedia: true,
|
|
6
|
+
pagesAsSection4CoverMedia: true,
|
|
7
|
+
pagesAsSection5CoverMedia: true,
|
|
8
|
+
pagesAsSection6CoverMedia: true,
|
|
9
|
+
pagesAsSection7CoverMedia: true,
|
|
10
|
+
pagesAsSection8CoverMedia: true,
|
|
11
|
+
pagesAsSection9CoverMedia: true,
|
|
12
|
+
pagesAsSection10CoverMedia: true,
|
|
2
13
|
adminAsAvatarImage: true,
|
|
3
14
|
postsAsCoverImage: true,
|
|
4
15
|
postsAsContentImage: true,
|
|
@@ -16,6 +27,17 @@ const FILE_USAGE_INCLUDE = {
|
|
|
16
27
|
configsAsFile4: true
|
|
17
28
|
};
|
|
18
29
|
const FILE_USAGE_COUNT_SELECT = {
|
|
30
|
+
pagesAsCoverMedia: true,
|
|
31
|
+
pagesAsSection1CoverMedia: true,
|
|
32
|
+
pagesAsSection2CoverMedia: true,
|
|
33
|
+
pagesAsSection3CoverMedia: true,
|
|
34
|
+
pagesAsSection4CoverMedia: true,
|
|
35
|
+
pagesAsSection5CoverMedia: true,
|
|
36
|
+
pagesAsSection6CoverMedia: true,
|
|
37
|
+
pagesAsSection7CoverMedia: true,
|
|
38
|
+
pagesAsSection8CoverMedia: true,
|
|
39
|
+
pagesAsSection9CoverMedia: true,
|
|
40
|
+
pagesAsSection10CoverMedia: true,
|
|
19
41
|
adminAsAvatarImage: true,
|
|
20
42
|
postsAsCoverImage: true,
|
|
21
43
|
postsAsContentImage: true,
|
|
@@ -33,6 +55,17 @@ const FILE_USAGE_COUNT_SELECT = {
|
|
|
33
55
|
configsAsFile4: true
|
|
34
56
|
};
|
|
35
57
|
const FILE_NOT_IN_USE_WHERE = {
|
|
58
|
+
pagesAsCoverMedia: { none: {} },
|
|
59
|
+
pagesAsSection1CoverMedia: { none: {} },
|
|
60
|
+
pagesAsSection2CoverMedia: { none: {} },
|
|
61
|
+
pagesAsSection3CoverMedia: { none: {} },
|
|
62
|
+
pagesAsSection4CoverMedia: { none: {} },
|
|
63
|
+
pagesAsSection5CoverMedia: { none: {} },
|
|
64
|
+
pagesAsSection6CoverMedia: { none: {} },
|
|
65
|
+
pagesAsSection7CoverMedia: { none: {} },
|
|
66
|
+
pagesAsSection8CoverMedia: { none: {} },
|
|
67
|
+
pagesAsSection9CoverMedia: { none: {} },
|
|
68
|
+
pagesAsSection10CoverMedia: { none: {} },
|
|
36
69
|
adminAsAvatarImage: { none: {} },
|
|
37
70
|
postsAsCoverImage: { none: {} },
|
|
38
71
|
postsAsContentImage: { none: {} },
|
|
@@ -54,6 +87,17 @@ const FILE_DETAIL_INCLUDE = {
|
|
|
54
87
|
translations: true
|
|
55
88
|
};
|
|
56
89
|
const FILE_RELATIONS_INCLUDE = {
|
|
90
|
+
pagesAsCoverMedia: { select: { key: true } },
|
|
91
|
+
pagesAsSection1CoverMedia: { select: { key: true } },
|
|
92
|
+
pagesAsSection2CoverMedia: { select: { key: true } },
|
|
93
|
+
pagesAsSection3CoverMedia: { select: { key: true } },
|
|
94
|
+
pagesAsSection4CoverMedia: { select: { key: true } },
|
|
95
|
+
pagesAsSection5CoverMedia: { select: { key: true } },
|
|
96
|
+
pagesAsSection6CoverMedia: { select: { key: true } },
|
|
97
|
+
pagesAsSection7CoverMedia: { select: { key: true } },
|
|
98
|
+
pagesAsSection8CoverMedia: { select: { key: true } },
|
|
99
|
+
pagesAsSection9CoverMedia: { select: { key: true } },
|
|
100
|
+
pagesAsSection10CoverMedia: { select: { key: true } },
|
|
57
101
|
adminAsAvatarImage: { select: { id: true } },
|
|
58
102
|
postsAsCoverImage: { select: { id: true } },
|
|
59
103
|
postsAsContentImage: { select: { id: true } },
|
|
@@ -9,6 +9,7 @@ import 'clsx';
|
|
|
9
9
|
import 'tailwind-merge';
|
|
10
10
|
import { adminToSafe } from '../admin/base-mappers.js';
|
|
11
11
|
import { configToDomain } from '../config/mappers.js';
|
|
12
|
+
import { pageToDomain } from '../page/mappers.js';
|
|
12
13
|
import { postToDomain } from '../post/base-mappers.js';
|
|
13
14
|
import { fileToDomain } from './base-mappers.js';
|
|
14
15
|
|
|
@@ -26,9 +27,39 @@ function toFileContentData(input) {
|
|
|
26
27
|
};
|
|
27
28
|
}
|
|
28
29
|
function fileDetailToDomain(file) {
|
|
30
|
+
const {
|
|
31
|
+
pagesAsCoverMedia,
|
|
32
|
+
pagesAsSection1CoverMedia,
|
|
33
|
+
pagesAsSection2CoverMedia,
|
|
34
|
+
pagesAsSection3CoverMedia,
|
|
35
|
+
pagesAsSection4CoverMedia,
|
|
36
|
+
pagesAsSection5CoverMedia,
|
|
37
|
+
pagesAsSection6CoverMedia,
|
|
38
|
+
pagesAsSection7CoverMedia,
|
|
39
|
+
pagesAsSection8CoverMedia,
|
|
40
|
+
pagesAsSection9CoverMedia,
|
|
41
|
+
pagesAsSection10CoverMedia,
|
|
42
|
+
...base
|
|
43
|
+
} = file;
|
|
44
|
+
const pageReferences = [
|
|
45
|
+
...pagesAsCoverMedia,
|
|
46
|
+
...pagesAsSection1CoverMedia,
|
|
47
|
+
...pagesAsSection2CoverMedia,
|
|
48
|
+
...pagesAsSection3CoverMedia,
|
|
49
|
+
...pagesAsSection4CoverMedia,
|
|
50
|
+
...pagesAsSection5CoverMedia,
|
|
51
|
+
...pagesAsSection6CoverMedia,
|
|
52
|
+
...pagesAsSection7CoverMedia,
|
|
53
|
+
...pagesAsSection8CoverMedia,
|
|
54
|
+
...pagesAsSection9CoverMedia,
|
|
55
|
+
...pagesAsSection10CoverMedia
|
|
56
|
+
];
|
|
29
57
|
return {
|
|
30
|
-
...fileToDomain(
|
|
31
|
-
isInUse: file.adminAsAvatarImage.length > 0 || file.postsAsCoverImage.length > 0 || file.postsAsContentImage.length > 0 || file.postsAsFiles1.length > 0 || file.postsAsFiles2.length > 0 || file.postsAsFile1.length > 0 || file.postsAsFile2.length > 0 || file.postsAsFile3.length > 0 || file.postsAsFile4.length > 0 || file.configsAsFiles1.length > 0 || file.configsAsFiles2.length > 0 || file.configsAsFile1.length > 0 || file.configsAsFile2.length > 0 || file.configsAsFile3.length > 0 || file.configsAsFile4.length > 0,
|
|
58
|
+
...fileToDomain(base),
|
|
59
|
+
isInUse: pageReferences.length > 0 || file.adminAsAvatarImage.length > 0 || file.postsAsCoverImage.length > 0 || file.postsAsContentImage.length > 0 || file.postsAsFiles1.length > 0 || file.postsAsFiles2.length > 0 || file.postsAsFile1.length > 0 || file.postsAsFile2.length > 0 || file.postsAsFile3.length > 0 || file.postsAsFile4.length > 0 || file.configsAsFiles1.length > 0 || file.configsAsFiles2.length > 0 || file.configsAsFile1.length > 0 || file.configsAsFile2.length > 0 || file.configsAsFile3.length > 0 || file.configsAsFile4.length > 0,
|
|
60
|
+
pages: [
|
|
61
|
+
...new Map(pageReferences.map((page) => [page.id, page])).values()
|
|
62
|
+
].map(pageToDomain),
|
|
32
63
|
translations: file.translations,
|
|
33
64
|
adminAsAvatarImage: file.adminAsAvatarImage.map(adminToSafe),
|
|
34
65
|
postsAsCoverImage: file.postsAsCoverImage.map(postToDomain),
|
|
@@ -75,7 +106,24 @@ function fileRelationsToDomain(file) {
|
|
|
75
106
|
return {
|
|
76
107
|
adminIds: file.adminAsAvatarImage.map((admin) => admin.id),
|
|
77
108
|
postIds: [...postIds],
|
|
78
|
-
configSlugs: [...configSlugs]
|
|
109
|
+
configSlugs: [...configSlugs],
|
|
110
|
+
pageKeys: [
|
|
111
|
+
...new Set(
|
|
112
|
+
[
|
|
113
|
+
...file.pagesAsCoverMedia,
|
|
114
|
+
...file.pagesAsSection1CoverMedia,
|
|
115
|
+
...file.pagesAsSection2CoverMedia,
|
|
116
|
+
...file.pagesAsSection3CoverMedia,
|
|
117
|
+
...file.pagesAsSection4CoverMedia,
|
|
118
|
+
...file.pagesAsSection5CoverMedia,
|
|
119
|
+
...file.pagesAsSection6CoverMedia,
|
|
120
|
+
...file.pagesAsSection7CoverMedia,
|
|
121
|
+
...file.pagesAsSection8CoverMedia,
|
|
122
|
+
...file.pagesAsSection9CoverMedia,
|
|
123
|
+
...file.pagesAsSection10CoverMedia
|
|
124
|
+
].map((page) => page.key)
|
|
125
|
+
)
|
|
126
|
+
]
|
|
79
127
|
};
|
|
80
128
|
}
|
|
81
129
|
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { FileNotFoundError } from 'sitero-server';
|
|
2
2
|
|
|
3
|
-
async function withActiveFileReferences(prisma, items, write) {
|
|
3
|
+
async function withActiveFileReferences(prisma, items, write, beforeLock) {
|
|
4
4
|
return prisma.$transaction(async (transaction) => {
|
|
5
|
+
await beforeLock?.(transaction);
|
|
5
6
|
const ids = [
|
|
6
7
|
...new Set(items.flatMap((item) => item ? [item.id] : []))
|
|
7
8
|
].sort();
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const PAGE_REFERENCE_INCLUDE = {
|
|
2
|
+
translations: true
|
|
3
|
+
};
|
|
4
|
+
const PAGE_DETAIL_INCLUDE = {
|
|
5
|
+
...PAGE_REFERENCE_INCLUDE,
|
|
6
|
+
seoMetadatas: true,
|
|
7
|
+
coverMedia: { include: { translations: true } },
|
|
8
|
+
section1CoverMedia: { include: { translations: true } },
|
|
9
|
+
section2CoverMedia: { include: { translations: true } },
|
|
10
|
+
section3CoverMedia: { include: { translations: true } },
|
|
11
|
+
section4CoverMedia: { include: { translations: true } },
|
|
12
|
+
section5CoverMedia: { include: { translations: true } },
|
|
13
|
+
section6CoverMedia: { include: { translations: true } },
|
|
14
|
+
section7CoverMedia: { include: { translations: true } },
|
|
15
|
+
section8CoverMedia: { include: { translations: true } },
|
|
16
|
+
section9CoverMedia: { include: { translations: true } },
|
|
17
|
+
section10CoverMedia: { include: { translations: true } }
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export { PAGE_DETAIL_INCLUDE, PAGE_REFERENCE_INCLUDE };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { fileToCard } from '../file/base-mappers.js';
|
|
2
|
+
import { seoMetadataToDomain } from '../seo-metadata/mappers.js';
|
|
3
|
+
|
|
4
|
+
function pageToDomain(page) {
|
|
5
|
+
return {
|
|
6
|
+
id: page.id,
|
|
7
|
+
key: page.key,
|
|
8
|
+
createdAt: page.createdAt,
|
|
9
|
+
updatedAt: page.updatedAt,
|
|
10
|
+
coverMediaId: page.coverMediaId,
|
|
11
|
+
section1CoverMediaId: page.section1CoverMediaId,
|
|
12
|
+
section2CoverMediaId: page.section2CoverMediaId,
|
|
13
|
+
section3CoverMediaId: page.section3CoverMediaId,
|
|
14
|
+
section4CoverMediaId: page.section4CoverMediaId,
|
|
15
|
+
section5CoverMediaId: page.section5CoverMediaId,
|
|
16
|
+
section6CoverMediaId: page.section6CoverMediaId,
|
|
17
|
+
section7CoverMediaId: page.section7CoverMediaId,
|
|
18
|
+
section8CoverMediaId: page.section8CoverMediaId,
|
|
19
|
+
section9CoverMediaId: page.section9CoverMediaId,
|
|
20
|
+
section10CoverMediaId: page.section10CoverMediaId
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
function pageReferenceToDomain(page) {
|
|
24
|
+
return { ...pageToDomain(page), translations: page.translations };
|
|
25
|
+
}
|
|
26
|
+
function pageDetailToDomain(page) {
|
|
27
|
+
return {
|
|
28
|
+
...pageReferenceToDomain(page),
|
|
29
|
+
seoMetadatas: page.seoMetadatas.map(seoMetadataToDomain),
|
|
30
|
+
coverMedia: page.coverMedia ? fileToCard(page.coverMedia) : null,
|
|
31
|
+
section1CoverMedia: page.section1CoverMedia ? fileToCard(page.section1CoverMedia) : null,
|
|
32
|
+
section2CoverMedia: page.section2CoverMedia ? fileToCard(page.section2CoverMedia) : null,
|
|
33
|
+
section3CoverMedia: page.section3CoverMedia ? fileToCard(page.section3CoverMedia) : null,
|
|
34
|
+
section4CoverMedia: page.section4CoverMedia ? fileToCard(page.section4CoverMedia) : null,
|
|
35
|
+
section5CoverMedia: page.section5CoverMedia ? fileToCard(page.section5CoverMedia) : null,
|
|
36
|
+
section6CoverMedia: page.section6CoverMedia ? fileToCard(page.section6CoverMedia) : null,
|
|
37
|
+
section7CoverMedia: page.section7CoverMedia ? fileToCard(page.section7CoverMedia) : null,
|
|
38
|
+
section8CoverMedia: page.section8CoverMedia ? fileToCard(page.section8CoverMedia) : null,
|
|
39
|
+
section9CoverMedia: page.section9CoverMedia ? fileToCard(page.section9CoverMedia) : null,
|
|
40
|
+
section10CoverMedia: page.section10CoverMedia ? fileToCard(page.section10CoverMedia) : null
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export { pageDetailToDomain, pageReferenceToDomain, pageToDomain };
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { PAGE_MEDIA_FIELDS, PAGE_TEXT_FIELDS } from 'sitero-domain';
|
|
2
|
+
import { PageMediaTypeInvalidError } from 'sitero-server';
|
|
3
|
+
import { withActiveFileReferences } from '../helpers/active-file-references.js';
|
|
4
|
+
import { PAGE_REFERENCE_INCLUDE, PAGE_DETAIL_INCLUDE } from './include.js';
|
|
5
|
+
import { pageReferenceToDomain, pageDetailToDomain, pageToDomain } from './mappers.js';
|
|
6
|
+
|
|
7
|
+
function createPagePrismaPorts(prisma) {
|
|
8
|
+
return {
|
|
9
|
+
pageQueryPort: {
|
|
10
|
+
async findDetail(input) {
|
|
11
|
+
const page = await prisma.page.findUnique({
|
|
12
|
+
where: input.id !== void 0 ? { id: input.id } : { key: input.key },
|
|
13
|
+
include: PAGE_DETAIL_INCLUDE
|
|
14
|
+
});
|
|
15
|
+
return page ? pageDetailToDomain(page) : null;
|
|
16
|
+
},
|
|
17
|
+
async findMany(input) {
|
|
18
|
+
if (input?.keys?.length === 0) return [];
|
|
19
|
+
const pages = await prisma.page.findMany({
|
|
20
|
+
...input?.keys ? { where: { key: { in: input.keys } } } : {},
|
|
21
|
+
include: PAGE_REFERENCE_INCLUDE,
|
|
22
|
+
orderBy: { key: "asc" }
|
|
23
|
+
});
|
|
24
|
+
return pages.map(pageReferenceToDomain);
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
pageCommandPort: {
|
|
28
|
+
async update({ id, page }) {
|
|
29
|
+
const mediaIds = [
|
|
30
|
+
...new Set(
|
|
31
|
+
PAGE_MEDIA_FIELDS.flatMap((field) => {
|
|
32
|
+
const id2 = page[`${field}Id`];
|
|
33
|
+
return id2 ? [id2] : [];
|
|
34
|
+
})
|
|
35
|
+
)
|
|
36
|
+
].sort();
|
|
37
|
+
return withActiveFileReferences(
|
|
38
|
+
prisma,
|
|
39
|
+
mediaIds.map((id2) => ({ id: id2 })),
|
|
40
|
+
async (transaction) => {
|
|
41
|
+
for (const id2 of mediaIds) {
|
|
42
|
+
const file = await transaction.file.findUnique({
|
|
43
|
+
where: { id: id2 },
|
|
44
|
+
select: { type: true }
|
|
45
|
+
});
|
|
46
|
+
if (!file || file.type !== "IMAGE" && file.type !== "VIDEO")
|
|
47
|
+
throw new PageMediaTypeInvalidError();
|
|
48
|
+
}
|
|
49
|
+
const media = {};
|
|
50
|
+
for (const field of PAGE_MEDIA_FIELDS) {
|
|
51
|
+
const key = `${field}Id`;
|
|
52
|
+
const value = page[key];
|
|
53
|
+
if (value !== void 0) media[key] = value;
|
|
54
|
+
}
|
|
55
|
+
const updated = await transaction.page.update({
|
|
56
|
+
where: { id },
|
|
57
|
+
data: {
|
|
58
|
+
...media,
|
|
59
|
+
updatedAt: /* @__PURE__ */ new Date(),
|
|
60
|
+
translations: {
|
|
61
|
+
upsert: page.translations.map((translation) => {
|
|
62
|
+
const update = {};
|
|
63
|
+
const create = { locale: translation.locale };
|
|
64
|
+
for (const key of PAGE_TEXT_FIELDS) {
|
|
65
|
+
const value = translation[key];
|
|
66
|
+
create[key] = value ?? null;
|
|
67
|
+
if (value !== void 0) update[key] = value;
|
|
68
|
+
}
|
|
69
|
+
return {
|
|
70
|
+
where: {
|
|
71
|
+
pageId_locale: {
|
|
72
|
+
pageId: id,
|
|
73
|
+
locale: translation.locale
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
update,
|
|
77
|
+
create
|
|
78
|
+
};
|
|
79
|
+
})
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
return pageToDomain(updated);
|
|
84
|
+
}
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export { createPagePrismaPorts };
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
const POST_REFERENCE_INCLUDE = {
|
|
2
2
|
translations: true
|
|
3
3
|
};
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
topic: { include: POST_REFERENCE_INCLUDE },
|
|
4
|
+
const POST_REFERENCE_WITH_COVER_INCLUDE = {
|
|
5
|
+
...POST_REFERENCE_INCLUDE,
|
|
7
6
|
coverImage: { include: { translations: true } }
|
|
8
7
|
};
|
|
8
|
+
const POST_LIST_CARD_INCLUDE = {
|
|
9
|
+
...POST_REFERENCE_WITH_COVER_INCLUDE,
|
|
10
|
+
parents: { include: POST_REFERENCE_WITH_COVER_INCLUDE }
|
|
11
|
+
};
|
|
9
12
|
const POST_DETAIL_INCLUDE = {
|
|
10
13
|
...POST_LIST_CARD_INCLUDE,
|
|
11
14
|
author: {
|
|
@@ -14,12 +17,10 @@ const POST_DETAIL_INCLUDE = {
|
|
|
14
17
|
avatarImage: { include: { translations: true } }
|
|
15
18
|
}
|
|
16
19
|
},
|
|
17
|
-
postsInTopic: { include: POST_REFERENCE_INCLUDE },
|
|
18
|
-
parents: { include: POST_REFERENCE_INCLUDE },
|
|
19
20
|
children: { include: POST_REFERENCE_INCLUDE },
|
|
20
21
|
tags: { include: POST_REFERENCE_INCLUDE },
|
|
21
22
|
taggedPosts: { include: POST_REFERENCE_INCLUDE },
|
|
22
|
-
relatedPosts: { include:
|
|
23
|
+
relatedPosts: { include: POST_LIST_CARD_INCLUDE },
|
|
23
24
|
referencingPosts: { include: POST_REFERENCE_INCLUDE },
|
|
24
25
|
contentImages: { include: { translations: true } },
|
|
25
26
|
files1: { include: { translations: true } },
|
|
@@ -31,12 +32,11 @@ const POST_DETAIL_INCLUDE = {
|
|
|
31
32
|
seoMetadatas: true
|
|
32
33
|
};
|
|
33
34
|
const POST_RELATIONS_INCLUDE = {
|
|
34
|
-
children: {
|
|
35
|
-
taggedPosts: {
|
|
35
|
+
children: { select: { id: true, type: true } },
|
|
36
|
+
taggedPosts: { select: { id: true, type: true } },
|
|
36
37
|
referencingPosts: {
|
|
37
|
-
where: { deletedAt: null },
|
|
38
38
|
select: { id: true, type: true }
|
|
39
39
|
}
|
|
40
40
|
};
|
|
41
41
|
|
|
42
|
-
export { POST_DETAIL_INCLUDE, POST_LIST_CARD_INCLUDE, POST_REFERENCE_INCLUDE, POST_RELATIONS_INCLUDE };
|
|
42
|
+
export { POST_DETAIL_INCLUDE, POST_LIST_CARD_INCLUDE, POST_REFERENCE_INCLUDE, POST_REFERENCE_WITH_COVER_INCLUDE, POST_RELATIONS_INCLUDE };
|