@webiny/api-website-builder 0.0.0-unstable.6f45466a1d → 0.0.0-unstable.7be00a75a9
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/constants.js +4 -3
- package/constants.js.map +1 -1
- package/domain/page/EntryToPageMapper.js +30 -26
- package/domain/page/EntryToPageMapper.js.map +1 -1
- package/domain/page/PagePath.d.ts +7 -0
- package/domain/page/PagePath.js +26 -0
- package/domain/page/PagePath.js.map +1 -0
- package/domain/page/abstractions.d.ts +22 -3
- package/domain/page/abstractions.js +2 -5
- package/domain/page/abstractions.js.map +1 -1
- package/domain/page/errors.d.ts +12 -0
- package/domain/page/errors.js +48 -31
- package/domain/page/errors.js.map +1 -1
- package/domain/page/page.model.d.ts +8 -1
- package/domain/page/page.model.js +25 -30
- package/domain/page/page.model.js.map +1 -1
- package/domain/permissionsSchema.d.ts +29 -0
- package/domain/permissionsSchema.js +53 -0
- package/domain/permissionsSchema.js.map +1 -0
- package/domain/redirect/EntryToRedirectMapper.js +21 -20
- package/domain/redirect/EntryToRedirectMapper.js.map +1 -1
- package/domain/redirect/abstractions.js +2 -9
- package/domain/redirect/abstractions.js.map +1 -1
- package/domain/redirect/errors.js +28 -31
- package/domain/redirect/errors.js.map +1 -1
- package/domain/redirect/redirect.model.d.ts +8 -1
- package/domain/redirect/redirect.model.js +24 -30
- package/domain/redirect/redirect.model.js.map +1 -1
- package/domain/shared/abstractions.js +0 -3
- package/exports/api/website-builder/nextjs.js +0 -2
- package/exports/api/website-builder/page.d.ts +12 -8
- package/exports/api/website-builder/page.js +12 -10
- package/exports/api/website-builder/redirect.d.ts +4 -4
- package/exports/api/website-builder/redirect.js +4 -6
- package/features/installer/ApiKeyInstaller.d.ts +1 -1
- package/features/installer/ApiKeyInstaller.js +34 -28
- package/features/installer/ApiKeyInstaller.js.map +1 -1
- package/features/installer/feature.d.ts +4 -1
- package/features/installer/feature.js +6 -5
- package/features/installer/feature.js.map +1 -1
- package/features/nextjs/MarkdownContentBuilder.js +67 -76
- package/features/nextjs/MarkdownContentBuilder.js.map +1 -1
- package/features/nextjs/MarkdownContentBuilder.test.js +266 -273
- package/features/nextjs/MarkdownContentBuilder.test.js.map +1 -1
- package/features/nextjs/NextjsConfig.js +43 -46
- package/features/nextjs/NextjsConfig.js.map +1 -1
- package/features/nextjs/abstractions.d.ts +1 -0
- package/features/nextjs/abstractions.js +2 -1
- package/features/nextjs/abstractions.js.map +1 -1
- package/features/nextjs/feature.d.ts +4 -1
- package/features/nextjs/feature.js +6 -5
- package/features/nextjs/feature.js.map +1 -1
- package/features/nextjs/index.js +0 -2
- package/features/pages/CreatePage/CreatePageRepository.js +23 -25
- package/features/pages/CreatePage/CreatePageRepository.js.map +1 -1
- package/features/pages/CreatePage/CreatePageUseCase.d.ts +4 -2
- package/features/pages/CreatePage/CreatePageUseCase.js +33 -30
- package/features/pages/CreatePage/CreatePageUseCase.js.map +1 -1
- package/features/pages/CreatePage/abstractions.d.ts +10 -6
- package/features/pages/CreatePage/abstractions.js +5 -27
- package/features/pages/CreatePage/abstractions.js.map +1 -1
- package/features/pages/CreatePage/events.d.ts +3 -3
- package/features/pages/CreatePage/events.js +17 -15
- package/features/pages/CreatePage/events.js.map +1 -1
- package/features/pages/CreatePage/feature.d.ts +4 -1
- package/features/pages/CreatePage/feature.js +7 -6
- package/features/pages/CreatePage/feature.js.map +1 -1
- package/features/pages/CreatePage/index.d.ts +1 -1
- package/features/pages/CreatePage/index.js +1 -3
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromRepository.js +30 -36
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromRepository.js.map +1 -1
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromUseCase.d.ts +6 -2
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromUseCase.js +38 -30
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromUseCase.js.map +1 -1
- package/features/pages/CreatePageRevisionFrom/abstractions.d.ts +11 -7
- package/features/pages/CreatePageRevisionFrom/abstractions.js +5 -27
- package/features/pages/CreatePageRevisionFrom/abstractions.js.map +1 -1
- package/features/pages/CreatePageRevisionFrom/events.d.ts +3 -3
- package/features/pages/CreatePageRevisionFrom/events.js +17 -15
- package/features/pages/CreatePageRevisionFrom/events.js.map +1 -1
- package/features/pages/CreatePageRevisionFrom/feature.d.ts +4 -1
- package/features/pages/CreatePageRevisionFrom/feature.js +7 -6
- package/features/pages/CreatePageRevisionFrom/feature.js.map +1 -1
- package/features/pages/CreatePageRevisionFrom/index.d.ts +1 -1
- package/features/pages/CreatePageRevisionFrom/index.js +1 -3
- package/features/pages/DeletePage/DeletePageRepository.d.ts +1 -3
- package/features/pages/DeletePage/DeletePageRepository.js +18 -28
- package/features/pages/DeletePage/DeletePageRepository.js.map +1 -1
- package/features/pages/DeletePage/DeletePageUseCase.d.ts +7 -5
- package/features/pages/DeletePage/DeletePageUseCase.js +37 -37
- package/features/pages/DeletePage/DeletePageUseCase.js.map +1 -1
- package/features/pages/DeletePage/abstractions.d.ts +12 -7
- package/features/pages/DeletePage/abstractions.js +5 -27
- package/features/pages/DeletePage/abstractions.js.map +1 -1
- package/features/pages/DeletePage/events.d.ts +3 -3
- package/features/pages/DeletePage/events.js +17 -15
- package/features/pages/DeletePage/events.js.map +1 -1
- package/features/pages/DeletePage/feature.d.ts +4 -1
- package/features/pages/DeletePage/feature.js +7 -6
- package/features/pages/DeletePage/feature.js.map +1 -1
- package/features/pages/DeletePage/index.d.ts +1 -1
- package/features/pages/DeletePage/index.js +1 -3
- package/features/pages/DuplicatePage/DuplicatePageRepository.d.ts +2 -2
- package/features/pages/DuplicatePage/DuplicatePageRepository.js +50 -45
- package/features/pages/DuplicatePage/DuplicatePageRepository.js.map +1 -1
- package/features/pages/DuplicatePage/DuplicatePageUseCase.d.ts +4 -2
- package/features/pages/DuplicatePage/DuplicatePageUseCase.js +38 -38
- package/features/pages/DuplicatePage/DuplicatePageUseCase.js.map +1 -1
- package/features/pages/DuplicatePage/abstractions.d.ts +18 -8
- package/features/pages/DuplicatePage/abstractions.js +5 -27
- package/features/pages/DuplicatePage/abstractions.js.map +1 -1
- package/features/pages/DuplicatePage/events.d.ts +3 -3
- package/features/pages/DuplicatePage/events.js +17 -15
- package/features/pages/DuplicatePage/events.js.map +1 -1
- package/features/pages/DuplicatePage/feature.d.ts +4 -1
- package/features/pages/DuplicatePage/feature.js +7 -6
- package/features/pages/DuplicatePage/feature.js.map +1 -1
- package/features/pages/DuplicatePage/index.d.ts +2 -1
- package/features/pages/DuplicatePage/index.js +1 -3
- package/features/pages/GetDeletedPageById/GetDeletedPageByIdRepository.d.ts +13 -0
- package/features/pages/GetDeletedPageById/GetDeletedPageByIdRepository.js +32 -0
- package/features/pages/GetDeletedPageById/GetDeletedPageByIdRepository.js.map +1 -0
- package/features/pages/GetDeletedPageById/GetDeletedPageByIdUseCase.d.ts +12 -0
- package/features/pages/GetDeletedPageById/GetDeletedPageByIdUseCase.js +29 -0
- package/features/pages/GetDeletedPageById/GetDeletedPageByIdUseCase.js.map +1 -0
- package/features/pages/GetDeletedPageById/abstractions.d.ts +42 -0
- package/features/pages/GetDeletedPageById/abstractions.js +6 -0
- package/features/pages/GetDeletedPageById/abstractions.js.map +1 -0
- package/features/pages/GetDeletedPageById/feature.d.ts +4 -0
- package/features/pages/GetDeletedPageById/feature.js +13 -0
- package/features/pages/GetDeletedPageById/feature.js.map +1 -0
- package/features/pages/GetDeletedPageById/index.d.ts +1 -0
- package/features/pages/GetDeletedPageById/index.js +1 -0
- package/features/pages/GetPageById/GetPageByIdRepository.js +20 -18
- package/features/pages/GetPageById/GetPageByIdRepository.js.map +1 -1
- package/features/pages/GetPageById/GetPageByIdUseCase.d.ts +3 -1
- package/features/pages/GetPageById/GetPageByIdUseCase.js +24 -10
- package/features/pages/GetPageById/GetPageByIdUseCase.js.map +1 -1
- package/features/pages/GetPageById/abstractions.d.ts +3 -1
- package/features/pages/GetPageById/abstractions.js +3 -12
- package/features/pages/GetPageById/abstractions.js.map +1 -1
- package/features/pages/GetPageById/feature.d.ts +4 -1
- package/features/pages/GetPageById/feature.js +7 -6
- package/features/pages/GetPageById/feature.js.map +1 -1
- package/features/pages/GetPageById/index.js +0 -2
- package/features/pages/GetPageByPath/GetPageByPathRepository.js +26 -26
- package/features/pages/GetPageByPath/GetPageByPathRepository.js.map +1 -1
- package/features/pages/GetPageByPath/GetPageByPathUseCase.d.ts +3 -1
- package/features/pages/GetPageByPath/GetPageByPathUseCase.js +24 -10
- package/features/pages/GetPageByPath/GetPageByPathUseCase.js.map +1 -1
- package/features/pages/GetPageByPath/abstractions.d.ts +3 -1
- package/features/pages/GetPageByPath/abstractions.js +3 -12
- package/features/pages/GetPageByPath/abstractions.js.map +1 -1
- package/features/pages/GetPageByPath/feature.d.ts +4 -1
- package/features/pages/GetPageByPath/feature.js +7 -6
- package/features/pages/GetPageByPath/feature.js.map +1 -1
- package/features/pages/GetPageByPath/index.js +0 -2
- package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsRepository.d.ts +15 -0
- package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsRepository.js +55 -0
- package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsRepository.js.map +1 -0
- package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsUseCase.d.ts +10 -0
- package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsUseCase.js +21 -0
- package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsUseCase.js.map +1 -0
- package/features/pages/GetPageLanguagePaths/abstractions.d.ts +20 -0
- package/features/pages/GetPageLanguagePaths/abstractions.js +6 -0
- package/features/pages/GetPageLanguagePaths/abstractions.js.map +1 -0
- package/features/pages/GetPageLanguagePaths/feature.d.ts +4 -0
- package/features/pages/GetPageLanguagePaths/feature.js +13 -0
- package/features/pages/GetPageLanguagePaths/feature.js.map +1 -0
- package/features/pages/GetPageLanguagePaths/index.d.ts +1 -0
- package/features/pages/GetPageLanguagePaths/index.js +1 -0
- package/features/pages/GetPageRevisions/GetPageRevisionsRepository.js +17 -15
- package/features/pages/GetPageRevisions/GetPageRevisionsRepository.js.map +1 -1
- package/features/pages/GetPageRevisions/GetPageRevisionsUseCase.d.ts +3 -1
- package/features/pages/GetPageRevisions/GetPageRevisionsUseCase.js +27 -10
- package/features/pages/GetPageRevisions/GetPageRevisionsUseCase.js.map +1 -1
- package/features/pages/GetPageRevisions/abstractions.d.ts +3 -1
- package/features/pages/GetPageRevisions/abstractions.js +3 -12
- package/features/pages/GetPageRevisions/abstractions.js.map +1 -1
- package/features/pages/GetPageRevisions/feature.d.ts +4 -1
- package/features/pages/GetPageRevisions/feature.js +7 -6
- package/features/pages/GetPageRevisions/feature.js.map +1 -1
- package/features/pages/GetPageRevisions/index.js +0 -2
- package/features/pages/ListDeletedPages/ListDeletedPagesRepository.d.ts +17 -0
- package/features/pages/ListDeletedPages/ListDeletedPagesRepository.js +50 -0
- package/features/pages/ListDeletedPages/ListDeletedPagesRepository.js.map +1 -0
- package/features/pages/ListDeletedPages/ListDeletedPagesUseCase.d.ts +14 -0
- package/features/pages/ListDeletedPages/ListDeletedPagesUseCase.js +38 -0
- package/features/pages/ListDeletedPages/ListDeletedPagesUseCase.js.map +1 -0
- package/features/pages/ListDeletedPages/abstractions.d.ts +56 -0
- package/features/pages/ListDeletedPages/abstractions.js +6 -0
- package/features/pages/ListDeletedPages/abstractions.js.map +1 -0
- package/features/pages/ListDeletedPages/feature.d.ts +4 -0
- package/features/pages/ListDeletedPages/feature.js +13 -0
- package/features/pages/ListDeletedPages/feature.js.map +1 -0
- package/features/pages/ListDeletedPages/index.d.ts +1 -0
- package/features/pages/ListDeletedPages/index.js +1 -0
- package/features/pages/ListPages/ListPagesRepository.d.ts +5 -1
- package/features/pages/ListPages/ListPagesRepository.js +39 -28
- package/features/pages/ListPages/ListPagesRepository.js.map +1 -1
- package/features/pages/ListPages/ListPagesUseCase.d.ts +5 -1
- package/features/pages/ListPages/ListPagesUseCase.js +33 -10
- package/features/pages/ListPages/ListPagesUseCase.js.map +1 -1
- package/features/pages/ListPages/abstractions.d.ts +3 -1
- package/features/pages/ListPages/abstractions.js +3 -12
- package/features/pages/ListPages/abstractions.js.map +1 -1
- package/features/pages/ListPages/feature.d.ts +4 -1
- package/features/pages/ListPages/feature.js +7 -6
- package/features/pages/ListPages/feature.js.map +1 -1
- package/features/pages/ListPages/index.js +0 -2
- package/features/pages/MovePage/MovePageRepository.js +25 -27
- package/features/pages/MovePage/MovePageRepository.js.map +1 -1
- package/features/pages/MovePage/MovePageUseCase.d.ts +4 -2
- package/features/pages/MovePage/MovePageUseCase.js +42 -40
- package/features/pages/MovePage/MovePageUseCase.js.map +1 -1
- package/features/pages/MovePage/abstractions.d.ts +11 -7
- package/features/pages/MovePage/abstractions.js +5 -27
- package/features/pages/MovePage/abstractions.js.map +1 -1
- package/features/pages/MovePage/events.d.ts +3 -3
- package/features/pages/MovePage/events.js +17 -15
- package/features/pages/MovePage/events.js.map +1 -1
- package/features/pages/MovePage/feature.d.ts +4 -1
- package/features/pages/MovePage/feature.js +7 -6
- package/features/pages/MovePage/feature.js.map +1 -1
- package/features/pages/MovePage/index.d.ts +1 -1
- package/features/pages/MovePage/index.js +1 -3
- package/features/pages/PublishPage/PublishPageRepository.js +26 -28
- package/features/pages/PublishPage/PublishPageRepository.js.map +1 -1
- package/features/pages/PublishPage/PublishPageUseCase.d.ts +4 -2
- package/features/pages/PublishPage/PublishPageUseCase.js +39 -37
- package/features/pages/PublishPage/PublishPageUseCase.js.map +1 -1
- package/features/pages/PublishPage/abstractions.d.ts +11 -7
- package/features/pages/PublishPage/abstractions.js +5 -27
- package/features/pages/PublishPage/abstractions.js.map +1 -1
- package/features/pages/PublishPage/events.d.ts +3 -3
- package/features/pages/PublishPage/events.js +17 -15
- package/features/pages/PublishPage/events.js.map +1 -1
- package/features/pages/PublishPage/feature.d.ts +4 -1
- package/features/pages/PublishPage/feature.js +7 -6
- package/features/pages/PublishPage/feature.js.map +1 -1
- package/features/pages/PublishPage/index.d.ts +1 -1
- package/features/pages/PublishPage/index.js +1 -3
- package/features/pages/RestorePage/RestorePageRepository.d.ts +13 -0
- package/features/pages/RestorePage/RestorePageRepository.js +31 -0
- package/features/pages/RestorePage/RestorePageRepository.js.map +1 -0
- package/features/pages/RestorePage/RestorePageUseCase.d.ts +16 -0
- package/features/pages/RestorePage/RestorePageUseCase.js +45 -0
- package/features/pages/RestorePage/RestorePageUseCase.js.map +1 -0
- package/features/pages/RestorePage/abstractions.d.ts +59 -0
- package/features/pages/RestorePage/abstractions.js +8 -0
- package/features/pages/RestorePage/abstractions.js.map +1 -0
- package/features/pages/RestorePage/events.d.ts +10 -0
- package/features/pages/RestorePage/events.js +21 -0
- package/features/pages/RestorePage/events.js.map +1 -0
- package/features/pages/RestorePage/feature.d.ts +4 -0
- package/features/pages/RestorePage/feature.js +13 -0
- package/features/pages/RestorePage/feature.js.map +1 -0
- package/features/pages/RestorePage/index.d.ts +1 -0
- package/features/pages/RestorePage/index.js +1 -0
- package/features/pages/TranslatePage/TranslatePageUseCase.d.ts +17 -0
- package/features/pages/TranslatePage/TranslatePageUseCase.js +58 -0
- package/features/pages/TranslatePage/TranslatePageUseCase.js.map +1 -0
- package/features/pages/TranslatePage/abstractions.d.ts +29 -0
- package/features/pages/TranslatePage/abstractions.js +5 -0
- package/features/pages/TranslatePage/abstractions.js.map +1 -0
- package/features/pages/TranslatePage/feature.d.ts +4 -0
- package/features/pages/TranslatePage/feature.js +11 -0
- package/features/pages/TranslatePage/feature.js.map +1 -0
- package/features/pages/TranslatePage/index.d.ts +1 -0
- package/features/pages/TranslatePage/index.js +1 -0
- package/features/pages/TrashPage/TrashPageRepository.d.ts +13 -0
- package/features/pages/TrashPage/TrashPageRepository.js +31 -0
- package/features/pages/TrashPage/TrashPageRepository.js.map +1 -0
- package/features/pages/TrashPage/TrashPageUseCase.d.ts +16 -0
- package/features/pages/TrashPage/TrashPageUseCase.js +45 -0
- package/features/pages/TrashPage/TrashPageUseCase.js.map +1 -0
- package/features/pages/TrashPage/abstractions.d.ts +58 -0
- package/features/pages/TrashPage/abstractions.js +8 -0
- package/features/pages/TrashPage/abstractions.js.map +1 -0
- package/features/pages/TrashPage/events.d.ts +10 -0
- package/features/pages/TrashPage/events.js +21 -0
- package/features/pages/TrashPage/events.js.map +1 -0
- package/features/pages/TrashPage/feature.d.ts +4 -0
- package/features/pages/TrashPage/feature.js +13 -0
- package/features/pages/TrashPage/feature.js.map +1 -0
- package/features/pages/TrashPage/index.d.ts +1 -0
- package/features/pages/TrashPage/index.js +1 -0
- package/features/pages/UnpublishPage/UnpublishPageRepository.js +26 -28
- package/features/pages/UnpublishPage/UnpublishPageRepository.js.map +1 -1
- package/features/pages/UnpublishPage/UnpublishPageUseCase.d.ts +4 -2
- package/features/pages/UnpublishPage/UnpublishPageUseCase.js +38 -36
- package/features/pages/UnpublishPage/UnpublishPageUseCase.js.map +1 -1
- package/features/pages/UnpublishPage/abstractions.d.ts +11 -7
- package/features/pages/UnpublishPage/abstractions.js +5 -27
- package/features/pages/UnpublishPage/abstractions.js.map +1 -1
- package/features/pages/UnpublishPage/events.d.ts +3 -3
- package/features/pages/UnpublishPage/events.js +17 -15
- package/features/pages/UnpublishPage/events.js.map +1 -1
- package/features/pages/UnpublishPage/feature.d.ts +4 -1
- package/features/pages/UnpublishPage/feature.js +7 -6
- package/features/pages/UnpublishPage/feature.js.map +1 -1
- package/features/pages/UnpublishPage/index.d.ts +1 -1
- package/features/pages/UnpublishPage/index.js +1 -3
- package/features/pages/UpdatePage/UpdatePageRepository.js +30 -34
- package/features/pages/UpdatePage/UpdatePageRepository.js.map +1 -1
- package/features/pages/UpdatePage/UpdatePageUseCase.d.ts +4 -2
- package/features/pages/UpdatePage/UpdatePageUseCase.js +47 -45
- package/features/pages/UpdatePage/UpdatePageUseCase.js.map +1 -1
- package/features/pages/UpdatePage/abstractions.d.ts +12 -9
- package/features/pages/UpdatePage/abstractions.js +5 -27
- package/features/pages/UpdatePage/abstractions.js.map +1 -1
- package/features/pages/UpdatePage/events.d.ts +3 -3
- package/features/pages/UpdatePage/events.js +17 -15
- package/features/pages/UpdatePage/events.js.map +1 -1
- package/features/pages/UpdatePage/feature.d.ts +4 -1
- package/features/pages/UpdatePage/feature.js +7 -6
- package/features/pages/UpdatePage/feature.js.map +1 -1
- package/features/pages/UpdatePage/index.d.ts +1 -1
- package/features/pages/UpdatePage/index.js +1 -3
- package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionRepository.d.ts +15 -0
- package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionRepository.js +40 -0
- package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionRepository.js.map +1 -0
- package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionUseCase.d.ts +16 -0
- package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionUseCase.js +56 -0
- package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionUseCase.js.map +1 -0
- package/features/pages/UpdatePageRevisionDescription/abstractions.d.ts +67 -0
- package/features/pages/UpdatePageRevisionDescription/abstractions.js +8 -0
- package/features/pages/UpdatePageRevisionDescription/abstractions.js.map +1 -0
- package/features/pages/UpdatePageRevisionDescription/events.d.ts +10 -0
- package/features/pages/UpdatePageRevisionDescription/events.js +21 -0
- package/features/pages/UpdatePageRevisionDescription/events.js.map +1 -0
- package/features/pages/UpdatePageRevisionDescription/feature.d.ts +4 -0
- package/features/pages/UpdatePageRevisionDescription/feature.js +13 -0
- package/features/pages/UpdatePageRevisionDescription/feature.js.map +1 -0
- package/features/pages/UpdatePageRevisionDescription/index.d.ts +1 -0
- package/features/pages/UpdatePageRevisionDescription/index.js +1 -0
- package/features/permissions/abstractions.d.ts +34 -0
- package/features/permissions/abstractions.js +6 -0
- package/features/permissions/abstractions.js.map +1 -0
- package/features/permissions/feature.d.ts +4 -0
- package/features/permissions/feature.js +7 -0
- package/features/permissions/feature.js.map +1 -0
- package/features/redirects/CreateRedirect/CreateRedirectRepository.js +23 -21
- package/features/redirects/CreateRedirect/CreateRedirectRepository.js.map +1 -1
- package/features/redirects/CreateRedirect/CreateRedirectUseCase.d.ts +4 -2
- package/features/redirects/CreateRedirect/CreateRedirectUseCase.js +33 -30
- package/features/redirects/CreateRedirect/CreateRedirectUseCase.js.map +1 -1
- package/features/redirects/CreateRedirect/abstractions.d.ts +11 -7
- package/features/redirects/CreateRedirect/abstractions.js +5 -27
- package/features/redirects/CreateRedirect/abstractions.js.map +1 -1
- package/features/redirects/CreateRedirect/events.d.ts +3 -3
- package/features/redirects/CreateRedirect/events.js +17 -15
- package/features/redirects/CreateRedirect/events.js.map +1 -1
- package/features/redirects/CreateRedirect/feature.d.ts +4 -1
- package/features/redirects/CreateRedirect/feature.js +7 -6
- package/features/redirects/CreateRedirect/feature.js.map +1 -1
- package/features/redirects/CreateRedirect/index.d.ts +1 -1
- package/features/redirects/CreateRedirect/index.js +1 -3
- package/features/redirects/DeleteRedirect/DeleteRedirectRepository.js +19 -17
- package/features/redirects/DeleteRedirect/DeleteRedirectRepository.js.map +1 -1
- package/features/redirects/DeleteRedirect/DeleteRedirectUseCase.d.ts +4 -2
- package/features/redirects/DeleteRedirect/DeleteRedirectUseCase.js +37 -37
- package/features/redirects/DeleteRedirect/DeleteRedirectUseCase.js.map +1 -1
- package/features/redirects/DeleteRedirect/abstractions.d.ts +11 -7
- package/features/redirects/DeleteRedirect/abstractions.js +5 -27
- package/features/redirects/DeleteRedirect/abstractions.js.map +1 -1
- package/features/redirects/DeleteRedirect/events.d.ts +3 -3
- package/features/redirects/DeleteRedirect/events.js +17 -15
- package/features/redirects/DeleteRedirect/events.js.map +1 -1
- package/features/redirects/DeleteRedirect/feature.d.ts +4 -1
- package/features/redirects/DeleteRedirect/feature.js +7 -6
- package/features/redirects/DeleteRedirect/feature.js.map +1 -1
- package/features/redirects/DeleteRedirect/index.d.ts +1 -1
- package/features/redirects/DeleteRedirect/index.js +1 -3
- package/features/redirects/GetActiveRedirects/GetActiveRedirectsRepository.js +22 -21
- package/features/redirects/GetActiveRedirects/GetActiveRedirectsRepository.js.map +1 -1
- package/features/redirects/GetActiveRedirects/GetActiveRedirectsUseCase.d.ts +3 -1
- package/features/redirects/GetActiveRedirects/GetActiveRedirectsUseCase.js +21 -12
- package/features/redirects/GetActiveRedirects/GetActiveRedirectsUseCase.js.map +1 -1
- package/features/redirects/GetActiveRedirects/abstractions.d.ts +3 -1
- package/features/redirects/GetActiveRedirects/abstractions.js +3 -12
- package/features/redirects/GetActiveRedirects/abstractions.js.map +1 -1
- package/features/redirects/GetActiveRedirects/feature.d.ts +4 -1
- package/features/redirects/GetActiveRedirects/feature.js +7 -6
- package/features/redirects/GetActiveRedirects/feature.js.map +1 -1
- package/features/redirects/GetActiveRedirects/index.js +0 -2
- package/features/redirects/GetRedirectById/GetRedirectByIdRepository.js +20 -18
- package/features/redirects/GetRedirectById/GetRedirectByIdRepository.js.map +1 -1
- package/features/redirects/GetRedirectById/GetRedirectByIdUseCase.d.ts +3 -1
- package/features/redirects/GetRedirectById/GetRedirectByIdUseCase.js +25 -12
- package/features/redirects/GetRedirectById/GetRedirectByIdUseCase.js.map +1 -1
- package/features/redirects/GetRedirectById/abstractions.d.ts +3 -1
- package/features/redirects/GetRedirectById/abstractions.js +3 -12
- package/features/redirects/GetRedirectById/abstractions.js.map +1 -1
- package/features/redirects/GetRedirectById/feature.d.ts +4 -1
- package/features/redirects/GetRedirectById/feature.js +7 -6
- package/features/redirects/GetRedirectById/feature.js.map +1 -1
- package/features/redirects/GetRedirectById/index.js +0 -2
- package/features/redirects/InvalidateRedirectsCache/InvalidateRedirectsCacheUseCase.js +23 -20
- package/features/redirects/InvalidateRedirectsCache/InvalidateRedirectsCacheUseCase.js.map +1 -1
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterCreateHandler.d.ts +3 -3
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterCreateHandler.js +14 -17
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterCreateHandler.js.map +1 -1
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterDeleteHandler.d.ts +3 -3
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterDeleteHandler.js +14 -17
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterDeleteHandler.js.map +1 -1
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterUpdateHandler.d.ts +3 -3
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterUpdateHandler.js +14 -18
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterUpdateHandler.js.map +1 -1
- package/features/redirects/InvalidateRedirectsCache/abstractions.d.ts +1 -0
- package/features/redirects/InvalidateRedirectsCache/abstractions.js +2 -6
- package/features/redirects/InvalidateRedirectsCache/abstractions.js.map +1 -1
- package/features/redirects/InvalidateRedirectsCache/feature.d.ts +4 -1
- package/features/redirects/InvalidateRedirectsCache/feature.js +9 -8
- package/features/redirects/InvalidateRedirectsCache/feature.js.map +1 -1
- package/features/redirects/InvalidateRedirectsCache/index.js +0 -2
- package/features/redirects/ListRedirects/ListRedirectsRepository.js +35 -34
- package/features/redirects/ListRedirects/ListRedirectsRepository.js.map +1 -1
- package/features/redirects/ListRedirects/ListRedirectsUseCase.d.ts +5 -1
- package/features/redirects/ListRedirects/ListRedirectsUseCase.js +34 -12
- package/features/redirects/ListRedirects/ListRedirectsUseCase.js.map +1 -1
- package/features/redirects/ListRedirects/abstractions.d.ts +8 -5
- package/features/redirects/ListRedirects/abstractions.js +3 -16
- package/features/redirects/ListRedirects/abstractions.js.map +1 -1
- package/features/redirects/ListRedirects/feature.d.ts +4 -1
- package/features/redirects/ListRedirects/feature.js +7 -6
- package/features/redirects/ListRedirects/feature.js.map +1 -1
- package/features/redirects/ListRedirects/index.js +0 -2
- package/features/redirects/MoveRedirect/MoveRedirectRepository.js +25 -27
- package/features/redirects/MoveRedirect/MoveRedirectRepository.js.map +1 -1
- package/features/redirects/MoveRedirect/MoveRedirectUseCase.d.ts +4 -2
- package/features/redirects/MoveRedirect/MoveRedirectUseCase.js +42 -40
- package/features/redirects/MoveRedirect/MoveRedirectUseCase.js.map +1 -1
- package/features/redirects/MoveRedirect/abstractions.d.ts +11 -7
- package/features/redirects/MoveRedirect/abstractions.js +5 -27
- package/features/redirects/MoveRedirect/abstractions.js.map +1 -1
- package/features/redirects/MoveRedirect/events.d.ts +3 -3
- package/features/redirects/MoveRedirect/events.js +17 -15
- package/features/redirects/MoveRedirect/events.js.map +1 -1
- package/features/redirects/MoveRedirect/feature.d.ts +4 -1
- package/features/redirects/MoveRedirect/feature.js +7 -6
- package/features/redirects/MoveRedirect/feature.js.map +1 -1
- package/features/redirects/MoveRedirect/index.d.ts +1 -1
- package/features/redirects/MoveRedirect/index.js +1 -3
- package/features/redirects/UpdateRedirect/UpdateRedirectRepository.js +31 -35
- package/features/redirects/UpdateRedirect/UpdateRedirectRepository.js.map +1 -1
- package/features/redirects/UpdateRedirect/UpdateRedirectUseCase.d.ts +4 -2
- package/features/redirects/UpdateRedirect/UpdateRedirectUseCase.js +47 -45
- package/features/redirects/UpdateRedirect/UpdateRedirectUseCase.js.map +1 -1
- package/features/redirects/UpdateRedirect/abstractions.d.ts +11 -7
- package/features/redirects/UpdateRedirect/abstractions.js +5 -27
- package/features/redirects/UpdateRedirect/abstractions.js.map +1 -1
- package/features/redirects/UpdateRedirect/events.d.ts +3 -3
- package/features/redirects/UpdateRedirect/events.js +17 -15
- package/features/redirects/UpdateRedirect/events.js.map +1 -1
- package/features/redirects/UpdateRedirect/feature.d.ts +4 -1
- package/features/redirects/UpdateRedirect/feature.js +7 -6
- package/features/redirects/UpdateRedirect/feature.js.map +1 -1
- package/features/redirects/UpdateRedirect/index.d.ts +1 -1
- package/features/redirects/UpdateRedirect/index.js +1 -3
- package/features/tenantManager/TenantModelExtension.js +52 -32
- package/features/tenantManager/TenantModelExtension.js.map +1 -1
- package/features/tenantManager/feature.d.ts +4 -1
- package/features/tenantManager/feature.js +6 -5
- package/features/tenantManager/feature.js.map +1 -1
- package/features/webhooks/WbWebhookEventProvider.d.ts +8 -0
- package/features/webhooks/WbWebhookEventProvider.js +95 -0
- package/features/webhooks/WbWebhookEventProvider.js.map +1 -0
- package/features/webhooks/constants.d.ts +12 -0
- package/features/webhooks/constants.js +16 -0
- package/features/webhooks/constants.js.map +1 -0
- package/features/webhooks/feature.d.ts +4 -0
- package/features/webhooks/feature.js +31 -0
- package/features/webhooks/feature.js.map +1 -0
- package/features/webhooks/handlers/OnPageCreatedHandler.d.ts +11 -0
- package/features/webhooks/handlers/OnPageCreatedHandler.js +22 -0
- package/features/webhooks/handlers/OnPageCreatedHandler.js.map +1 -0
- package/features/webhooks/handlers/OnPageDeletedHandler.d.ts +11 -0
- package/features/webhooks/handlers/OnPageDeletedHandler.js +22 -0
- package/features/webhooks/handlers/OnPageDeletedHandler.js.map +1 -0
- package/features/webhooks/handlers/OnPagePublishedHandler.d.ts +11 -0
- package/features/webhooks/handlers/OnPagePublishedHandler.js +22 -0
- package/features/webhooks/handlers/OnPagePublishedHandler.js.map +1 -0
- package/features/webhooks/handlers/OnPageRestoredHandler.d.ts +11 -0
- package/features/webhooks/handlers/OnPageRestoredHandler.js +22 -0
- package/features/webhooks/handlers/OnPageRestoredHandler.js.map +1 -0
- package/features/webhooks/handlers/OnPageTrashedHandler.d.ts +11 -0
- package/features/webhooks/handlers/OnPageTrashedHandler.js +22 -0
- package/features/webhooks/handlers/OnPageTrashedHandler.js.map +1 -0
- package/features/webhooks/handlers/OnPageUnpublishedHandler.d.ts +11 -0
- package/features/webhooks/handlers/OnPageUnpublishedHandler.js +22 -0
- package/features/webhooks/handlers/OnPageUnpublishedHandler.js.map +1 -0
- package/features/webhooks/handlers/OnPageUpdatedHandler.d.ts +11 -0
- package/features/webhooks/handlers/OnPageUpdatedHandler.js +23 -0
- package/features/webhooks/handlers/OnPageUpdatedHandler.js.map +1 -0
- package/features/webhooks/handlers/OnRedirectCreatedHandler.d.ts +11 -0
- package/features/webhooks/handlers/OnRedirectCreatedHandler.js +22 -0
- package/features/webhooks/handlers/OnRedirectCreatedHandler.js.map +1 -0
- package/features/webhooks/handlers/OnRedirectDeletedHandler.d.ts +11 -0
- package/features/webhooks/handlers/OnRedirectDeletedHandler.js +22 -0
- package/features/webhooks/handlers/OnRedirectDeletedHandler.js.map +1 -0
- package/features/webhooks/handlers/OnRedirectUpdatedHandler.d.ts +11 -0
- package/features/webhooks/handlers/OnRedirectUpdatedHandler.js +23 -0
- package/features/webhooks/handlers/OnRedirectUpdatedHandler.js.map +1 -0
- package/graphql/createGraphQL.js +15 -12
- package/graphql/createGraphQL.js.map +1 -1
- package/graphql/nextjs/NextjsGraphQLSchema.js +28 -29
- package/graphql/nextjs/NextjsGraphQLSchema.js.map +1 -1
- package/graphql/pages/pages.gql.js +226 -254
- package/graphql/pages/pages.gql.js.map +1 -1
- package/graphql/pages/pages.typeDefs.d.ts +1 -1
- package/graphql/pages/pages.typeDefs.js +24 -2
- package/graphql/pages/pages.typeDefs.js.map +1 -1
- package/graphql/redirects/redirects.gql.js +56 -86
- package/graphql/redirects/redirects.gql.js.map +1 -1
- package/graphql/redirects/redirects.typeDefs.js +3 -4
- package/graphql/redirects/redirects.typeDefs.js.map +1 -1
- package/index.d.ts +1 -1
- package/index.js +73 -55
- package/index.js.map +1 -1
- package/package.json +30 -27
- package/rest/ActiveRedirectDto.js +0 -3
- package/rest/ActiveRedirectRestMapper.js +10 -9
- package/rest/ActiveRedirectRestMapper.js.map +1 -1
- package/rest/getRedirects.js +19 -26
- package/rest/getRedirects.js.map +1 -1
- package/utils/ensureAuthentication.js +6 -9
- package/utils/ensureAuthentication.js.map +1 -1
- package/utils/resolve.js +7 -6
- package/utils/resolve.js.map +1 -1
- package/domain/shared/abstractions.js.map +0 -1
- package/exports/api/website-builder/nextjs.js.map +0 -1
- package/exports/api/website-builder/page.js.map +0 -1
- package/exports/api/website-builder/redirect.js.map +0 -1
- package/features/nextjs/index.js.map +0 -1
- package/features/pages/CreatePage/index.js.map +0 -1
- package/features/pages/CreatePageRevisionFrom/index.js.map +0 -1
- package/features/pages/DeletePage/index.js.map +0 -1
- package/features/pages/DuplicatePage/index.js.map +0 -1
- package/features/pages/GetPageById/index.js.map +0 -1
- package/features/pages/GetPageByPath/index.js.map +0 -1
- package/features/pages/GetPageRevisions/index.js.map +0 -1
- package/features/pages/ListPages/index.js.map +0 -1
- package/features/pages/MovePage/index.js.map +0 -1
- package/features/pages/PagePermissions/feature.d.ts +0 -1
- package/features/pages/PagePermissions/feature.js +0 -53
- package/features/pages/PagePermissions/feature.js.map +0 -1
- package/features/pages/PublishPage/index.js.map +0 -1
- package/features/pages/UnpublishPage/index.js.map +0 -1
- package/features/pages/UpdatePage/index.js.map +0 -1
- package/features/redirects/CreateRedirect/index.js.map +0 -1
- package/features/redirects/DeleteRedirect/index.js.map +0 -1
- package/features/redirects/GetActiveRedirects/index.js.map +0 -1
- package/features/redirects/GetRedirectById/index.js.map +0 -1
- package/features/redirects/InvalidateRedirectsCache/index.js.map +0 -1
- package/features/redirects/ListRedirects/index.js.map +0 -1
- package/features/redirects/MoveRedirect/index.js.map +0 -1
- package/features/redirects/RedirectPermissions/feature.d.ts +0 -1
- package/features/redirects/RedirectPermissions/feature.js +0 -45
- package/features/redirects/RedirectPermissions/feature.js.map +0 -1
- package/features/redirects/UpdateRedirect/index.js.map +0 -1
- package/rest/ActiveRedirectDto.js.map +0 -1
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { DeleteEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/DeleteEntry";
|
|
3
|
+
import { TrashPageRepository } from "./abstractions.js";
|
|
4
|
+
import { PageModel } from "../../../domain/page/abstractions.js";
|
|
5
|
+
import { PageNotFoundError, PagePersistenceError } from "../../../domain/page/errors.js";
|
|
6
|
+
class TrashPageRepositoryImpl {
|
|
7
|
+
constructor(deleteEntry, pageModel){
|
|
8
|
+
this.deleteEntry = deleteEntry;
|
|
9
|
+
this.pageModel = pageModel;
|
|
10
|
+
}
|
|
11
|
+
async execute(params) {
|
|
12
|
+
const result = await this.deleteEntry.execute(this.pageModel, params.id, {
|
|
13
|
+
permanently: false
|
|
14
|
+
});
|
|
15
|
+
if (result.isFail()) {
|
|
16
|
+
if ("Cms/Entry/NotFound" === result.error.code) return Result.fail(new PageNotFoundError(params.id));
|
|
17
|
+
return Result.fail(new PagePersistenceError(result.error));
|
|
18
|
+
}
|
|
19
|
+
return Result.ok();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
const TrashPageRepository_TrashPageRepository = TrashPageRepository.createImplementation({
|
|
23
|
+
implementation: TrashPageRepositoryImpl,
|
|
24
|
+
dependencies: [
|
|
25
|
+
DeleteEntryUseCase,
|
|
26
|
+
PageModel
|
|
27
|
+
]
|
|
28
|
+
});
|
|
29
|
+
export { TrashPageRepository_TrashPageRepository as TrashPageRepository };
|
|
30
|
+
|
|
31
|
+
//# sourceMappingURL=TrashPageRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/pages/TrashPage/TrashPageRepository.js","sources":["../../../../src/features/pages/TrashPage/TrashPageRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { DeleteEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/DeleteEntry\";\nimport { TrashPageRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { PageModel } from \"~/domain/page/abstractions.js\";\nimport { PageNotFoundError, PagePersistenceError } from \"~/domain/page/errors.js\";\n\nclass TrashPageRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private deleteEntry: DeleteEntryUseCase.Interface,\n private pageModel: PageModel.Interface\n ) {}\n\n async execute(params: RepositoryAbstraction.Params): RepositoryAbstraction.Return {\n // Trash the entry\n const result = await this.deleteEntry.execute(this.pageModel, params.id, {\n permanently: false\n });\n\n if (result.isFail()) {\n if (result.error.code === \"Cms/Entry/NotFound\") {\n return Result.fail(new PageNotFoundError(params.id));\n }\n return Result.fail(new PagePersistenceError(result.error));\n }\n\n return Result.ok();\n }\n}\n\nexport const TrashPageRepository = RepositoryAbstraction.createImplementation({\n implementation: TrashPageRepositoryImpl,\n dependencies: [DeleteEntryUseCase, PageModel]\n});\n"],"names":["TrashPageRepositoryImpl","deleteEntry","pageModel","params","result","Result","PageNotFoundError","PagePersistenceError","TrashPageRepository","RepositoryAbstraction","DeleteEntryUseCase","PageModel"],"mappings":";;;;;AAMA,MAAMA;IACF,YACYC,WAAyC,EACzCC,SAA8B,CACxC;aAFUD,WAAW,GAAXA;aACAC,SAAS,GAATA;IACT;IAEH,MAAM,QAAQC,MAAoC,EAAgC;QAE9E,MAAMC,SAAS,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAED,OAAO,EAAE,EAAE;YACrE,aAAa;QACjB;QAEA,IAAIC,OAAO,MAAM,IAAI;YACjB,IAAIA,AAAsB,yBAAtBA,OAAO,KAAK,CAAC,IAAI,EACjB,OAAOC,OAAO,IAAI,CAAC,IAAIC,kBAAkBH,OAAO,EAAE;YAEtD,OAAOE,OAAO,IAAI,CAAC,IAAIE,qBAAqBH,OAAO,KAAK;QAC5D;QAEA,OAAOC,OAAO,EAAE;IACpB;AACJ;AAEO,MAAMG,0CAAsBC,oBAAAA,oBAA0C,CAAC;IAC1E,gBAAgBT;IAChB,cAAc;QAACU;QAAoBC;KAAU;AACjD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { EventPublisher as EventPublisherAbstraction } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
2
|
+
import { TrashPageUseCase as UseCaseAbstraction, TrashPageRepository } from "./abstractions.js";
|
|
3
|
+
import { GetPageByIdUseCase } from "../../../features/pages/GetPageById/index.js";
|
|
4
|
+
import { WbPermissions } from "../../../features/permissions/abstractions.js";
|
|
5
|
+
declare class TrashPageUseCaseImpl implements UseCaseAbstraction.Interface {
|
|
6
|
+
private permissions;
|
|
7
|
+
private eventPublisher;
|
|
8
|
+
private getPageById;
|
|
9
|
+
private repository;
|
|
10
|
+
constructor(permissions: WbPermissions.Interface, eventPublisher: EventPublisherAbstraction.Interface, getPageById: GetPageByIdUseCase.Interface, repository: TrashPageRepository.Interface);
|
|
11
|
+
execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return;
|
|
12
|
+
}
|
|
13
|
+
export declare const TrashPageUseCase: typeof TrashPageUseCaseImpl & {
|
|
14
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").ITrashPageUseCase>;
|
|
15
|
+
};
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
3
|
+
import { TrashPageRepository, TrashPageUseCase } from "./abstractions.js";
|
|
4
|
+
import { PageAfterTrashEvent, PageBeforeTrashEvent } from "./events.js";
|
|
5
|
+
import { GetPageByIdUseCase } from "../GetPageById/index.js";
|
|
6
|
+
import { WbPermissions } from "../../permissions/abstractions.js";
|
|
7
|
+
import { PageNotAuthorizedError } from "../../../domain/page/errors.js";
|
|
8
|
+
class TrashPageUseCaseImpl {
|
|
9
|
+
constructor(permissions, eventPublisher, getPageById, repository){
|
|
10
|
+
this.permissions = permissions;
|
|
11
|
+
this.eventPublisher = eventPublisher;
|
|
12
|
+
this.getPageById = getPageById;
|
|
13
|
+
this.repository = repository;
|
|
14
|
+
}
|
|
15
|
+
async execute(params) {
|
|
16
|
+
const getResult = await this.getPageById.execute(params.id);
|
|
17
|
+
if (getResult.isFail()) return Result.fail(getResult.error);
|
|
18
|
+
const page = getResult.value;
|
|
19
|
+
const canDelete = await this.permissions.canDelete("page", page);
|
|
20
|
+
if (!canDelete) return Result.fail(new PageNotAuthorizedError());
|
|
21
|
+
const beforeEvent = new PageBeforeTrashEvent({
|
|
22
|
+
page
|
|
23
|
+
});
|
|
24
|
+
await this.eventPublisher.publish(beforeEvent);
|
|
25
|
+
const result = await this.repository.execute(params);
|
|
26
|
+
if (result.isFail()) return result;
|
|
27
|
+
const afterEvent = new PageAfterTrashEvent({
|
|
28
|
+
page
|
|
29
|
+
});
|
|
30
|
+
await this.eventPublisher.publish(afterEvent);
|
|
31
|
+
return Result.ok();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
const TrashPageUseCase_TrashPageUseCase = TrashPageUseCase.createImplementation({
|
|
35
|
+
implementation: TrashPageUseCaseImpl,
|
|
36
|
+
dependencies: [
|
|
37
|
+
WbPermissions,
|
|
38
|
+
EventPublisher,
|
|
39
|
+
GetPageByIdUseCase,
|
|
40
|
+
TrashPageRepository
|
|
41
|
+
]
|
|
42
|
+
});
|
|
43
|
+
export { TrashPageUseCase_TrashPageUseCase as TrashPageUseCase };
|
|
44
|
+
|
|
45
|
+
//# sourceMappingURL=TrashPageUseCase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/pages/TrashPage/TrashPageUseCase.js","sources":["../../../../src/features/pages/TrashPage/TrashPageUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { TrashPageUseCase as UseCaseAbstraction, TrashPageRepository } from \"./abstractions.js\";\nimport { PageBeforeTrashEvent, PageAfterTrashEvent } from \"./events.js\";\nimport { GetPageByIdUseCase } from \"~/features/pages/GetPageById/index.js\";\nimport { WbPermissions } from \"~/features/permissions/abstractions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\n\nclass TrashPageUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getPageById: GetPageByIdUseCase.Interface,\n private repository: TrashPageRepository.Interface\n ) {}\n\n public async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n // Get the page first to include in events and for item-level permission check\n const getResult = await this.getPageById.execute(params.id);\n\n if (getResult.isFail()) {\n return Result.fail(getResult.error);\n }\n\n const page = getResult.value;\n\n const canDelete = await this.permissions.canDelete(\"page\", page);\n if (!canDelete) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Publish before delete event\n const beforeEvent = new PageBeforeTrashEvent({\n page\n });\n\n await this.eventPublisher.publish(beforeEvent);\n\n // Execute the delete operation\n const result = await this.repository.execute(params);\n\n if (result.isFail()) {\n return result;\n }\n\n // Publish after delete event\n const afterEvent = new PageAfterTrashEvent({\n page\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return Result.ok();\n }\n}\n\nexport const TrashPageUseCase = UseCaseAbstraction.createImplementation({\n implementation: TrashPageUseCaseImpl,\n dependencies: [WbPermissions, EventPublisher, GetPageByIdUseCase, TrashPageRepository]\n});\n"],"names":["TrashPageUseCaseImpl","permissions","eventPublisher","getPageById","repository","params","getResult","Result","page","canDelete","PageNotAuthorizedError","beforeEvent","PageBeforeTrashEvent","result","afterEvent","PageAfterTrashEvent","TrashPageUseCase","UseCaseAbstraction","WbPermissions","EventPublisher","GetPageByIdUseCase","TrashPageRepository"],"mappings":";;;;;;;AAWA,MAAMA;IACF,YACYC,WAAoC,EACpCC,cAAmD,EACnDC,WAAyC,EACzCC,UAAyC,CACnD;aAJUH,WAAW,GAAXA;aACAC,cAAc,GAAdA;aACAC,WAAW,GAAXA;aACAC,UAAU,GAAVA;IACT;IAEH,MAAa,QAAQC,MAAiC,EAA6B;QAE/E,MAAMC,YAAY,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAACD,OAAO,EAAE;QAE1D,IAAIC,UAAU,MAAM,IAChB,OAAOC,OAAO,IAAI,CAACD,UAAU,KAAK;QAGtC,MAAME,OAAOF,UAAU,KAAK;QAE5B,MAAMG,YAAY,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQD;QAC3D,IAAI,CAACC,WACD,OAAOF,OAAO,IAAI,CAAC,IAAIG;QAI3B,MAAMC,cAAc,IAAIC,qBAAqB;YACzCJ;QACJ;QAEA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAACG;QAGlC,MAAME,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACR;QAE7C,IAAIQ,OAAO,MAAM,IACb,OAAOA;QAIX,MAAMC,aAAa,IAAIC,oBAAoB;YACvCP;QACJ;QAEA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAACM;QAElC,OAAOP,OAAO,EAAE;IACpB;AACJ;AAEO,MAAMS,oCAAmBC,iBAAAA,oBAAuC,CAAC;IACpE,gBAAgBjB;IAChB,cAAc;QAACkB;QAAeC;QAAgBC;QAAoBC;KAAoB;AAC1F"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { type Result } from "@webiny/feature/api";
|
|
2
|
+
import type { IEventHandler } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
3
|
+
import type { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
4
|
+
import type { WbPage } from "../../../domain/page/abstractions.js";
|
|
5
|
+
import { PageNotFoundError, PagePersistenceError, PageNotAuthorizedError } from "../../../domain/page/errors.js";
|
|
6
|
+
export interface ITrashWbPageParams {
|
|
7
|
+
id: string;
|
|
8
|
+
}
|
|
9
|
+
export interface ITrashPageRepository {
|
|
10
|
+
execute(params: ITrashWbPageParams): Promise<Result<void, RepositoryError>>;
|
|
11
|
+
}
|
|
12
|
+
export interface ITrashPageRepositoryErrors {
|
|
13
|
+
notFound: PageNotFoundError;
|
|
14
|
+
persistence: PagePersistenceError;
|
|
15
|
+
}
|
|
16
|
+
type RepositoryError = ITrashPageRepositoryErrors[keyof ITrashPageRepositoryErrors];
|
|
17
|
+
export declare const TrashPageRepository: import("@webiny/di").Abstraction<ITrashPageRepository>;
|
|
18
|
+
export declare namespace TrashPageRepository {
|
|
19
|
+
type Interface = ITrashPageRepository;
|
|
20
|
+
type Params = ITrashWbPageParams;
|
|
21
|
+
type Return = Promise<Result<void, RepositoryError>>;
|
|
22
|
+
type Error = RepositoryError;
|
|
23
|
+
}
|
|
24
|
+
export interface ITrashPageUseCase {
|
|
25
|
+
execute(params: ITrashWbPageParams): Promise<Result<void, UseCaseError>>;
|
|
26
|
+
}
|
|
27
|
+
export interface ITrashPageUseCaseErrors {
|
|
28
|
+
notAuthorized: PageNotAuthorizedError;
|
|
29
|
+
notFound: PageNotFoundError;
|
|
30
|
+
persistence: PagePersistenceError;
|
|
31
|
+
}
|
|
32
|
+
type UseCaseError = ITrashPageUseCaseErrors[keyof ITrashPageUseCaseErrors];
|
|
33
|
+
export declare const TrashPageUseCase: import("@webiny/di").Abstraction<ITrashPageUseCase>;
|
|
34
|
+
export declare namespace TrashPageUseCase {
|
|
35
|
+
type Interface = ITrashPageUseCase;
|
|
36
|
+
type Params = ITrashWbPageParams;
|
|
37
|
+
type Return = Promise<Result<void, UseCaseError>>;
|
|
38
|
+
type Error = UseCaseError;
|
|
39
|
+
}
|
|
40
|
+
export interface PageBeforeTrashPayload {
|
|
41
|
+
page: WbPage;
|
|
42
|
+
}
|
|
43
|
+
export interface PageAfterTrashPayload {
|
|
44
|
+
page: WbPage;
|
|
45
|
+
}
|
|
46
|
+
export declare const PageBeforeTrashEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<PageBeforeTrashPayload>>>;
|
|
47
|
+
export declare namespace PageBeforeTrashEventHandler {
|
|
48
|
+
type Interface = IEventHandler<DomainEvent<PageBeforeTrashPayload>>;
|
|
49
|
+
type Event = DomainEvent<PageBeforeTrashPayload>;
|
|
50
|
+
type Page = WbPage;
|
|
51
|
+
}
|
|
52
|
+
export declare const PageAfterTrashEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<PageAfterTrashPayload>>>;
|
|
53
|
+
export declare namespace PageAfterTrashEventHandler {
|
|
54
|
+
type Interface = IEventHandler<DomainEvent<PageAfterTrashPayload>>;
|
|
55
|
+
type Event = DomainEvent<PageAfterTrashPayload>;
|
|
56
|
+
type Page = WbPage;
|
|
57
|
+
}
|
|
58
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { createAbstraction } from "@webiny/feature/api";
|
|
2
|
+
const TrashPageRepository = createAbstraction("Wb/TrashPageRepository");
|
|
3
|
+
const TrashPageUseCase = createAbstraction("Wb/TrashPageUseCase");
|
|
4
|
+
const PageBeforeTrashEventHandler = createAbstraction("Wb/PageBeforeTrashEventHandler");
|
|
5
|
+
const PageAfterTrashEventHandler = createAbstraction("Wb/PageAfterTrashEventHandler");
|
|
6
|
+
export { PageAfterTrashEventHandler, PageBeforeTrashEventHandler, TrashPageRepository, TrashPageUseCase };
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=abstractions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/pages/TrashPage/abstractions.js","sources":["../../../../src/features/pages/TrashPage/abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { IEventHandler } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport {\n PageNotFoundError,\n PagePersistenceError,\n PageNotAuthorizedError\n} from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface ITrashWbPageParams {\n id: string;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface ITrashPageRepository {\n execute(params: ITrashWbPageParams): Promise<Result<void, RepositoryError>>;\n}\n\nexport interface ITrashPageRepositoryErrors {\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = ITrashPageRepositoryErrors[keyof ITrashPageRepositoryErrors];\n\nexport const TrashPageRepository =\n createAbstraction<ITrashPageRepository>(\"Wb/TrashPageRepository\");\n\nexport namespace TrashPageRepository {\n export type Interface = ITrashPageRepository;\n export type Params = ITrashWbPageParams;\n export type Return = Promise<Result<void, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface ITrashPageUseCase {\n execute(params: ITrashWbPageParams): Promise<Result<void, UseCaseError>>;\n}\n\nexport interface ITrashPageUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = ITrashPageUseCaseErrors[keyof ITrashPageUseCaseErrors];\n\nexport const TrashPageUseCase = createAbstraction<ITrashPageUseCase>(\"Wb/TrashPageUseCase\");\n\nexport namespace TrashPageUseCase {\n export type Interface = ITrashPageUseCase;\n export type Params = ITrashWbPageParams;\n export type Return = Promise<Result<void, UseCaseError>>;\n export type Error = UseCaseError;\n}\n\n// ============================================================================\n// Event Payload Types\n// ============================================================================\n\nexport interface PageBeforeTrashPayload {\n page: WbPage;\n}\n\nexport interface PageAfterTrashPayload {\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\nexport const PageBeforeTrashEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforeTrashPayload>>\n>(\"Wb/PageBeforeTrashEventHandler\");\n\nexport namespace PageBeforeTrashEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforeTrashPayload>>;\n export type Event = DomainEvent<PageBeforeTrashPayload>;\n export type Page = WbPage;\n}\n\nexport const PageAfterTrashEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterTrashPayload>>\n>(\"Wb/PageAfterTrashEventHandler\");\n\nexport namespace PageAfterTrashEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterTrashPayload>>;\n export type Event = DomainEvent<PageAfterTrashPayload>;\n export type Page = WbPage;\n}\n"],"names":["TrashPageRepository","createAbstraction","TrashPageUseCase","PageBeforeTrashEventHandler","PageAfterTrashEventHandler"],"mappings":";AAiCO,MAAMA,sBACTC,kBAAwC;AAyBrC,MAAMC,mBAAmBD,kBAAqC;AAyB9D,MAAME,8BAA8BF,kBAEzC;AAQK,MAAMG,6BAA6BH,kBAExC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
2
|
+
import type { PageBeforeTrashPayload, PageAfterTrashPayload } from "./abstractions.js";
|
|
3
|
+
export declare class PageBeforeTrashEvent extends DomainEvent<PageBeforeTrashPayload> {
|
|
4
|
+
eventType: "page.beforeTrash";
|
|
5
|
+
getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<PageBeforeTrashPayload>>>;
|
|
6
|
+
}
|
|
7
|
+
export declare class PageAfterTrashEvent extends DomainEvent<PageAfterTrashPayload> {
|
|
8
|
+
eventType: "page.afterTrash";
|
|
9
|
+
getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<PageAfterTrashPayload>>>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
2
|
+
import { PageAfterTrashEventHandler, PageBeforeTrashEventHandler } from "./abstractions.js";
|
|
3
|
+
class PageBeforeTrashEvent extends DomainEvent {
|
|
4
|
+
getHandlerAbstraction() {
|
|
5
|
+
return PageBeforeTrashEventHandler;
|
|
6
|
+
}
|
|
7
|
+
constructor(...args){
|
|
8
|
+
super(...args), this.eventType = "page.beforeTrash";
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
class PageAfterTrashEvent extends DomainEvent {
|
|
12
|
+
getHandlerAbstraction() {
|
|
13
|
+
return PageAfterTrashEventHandler;
|
|
14
|
+
}
|
|
15
|
+
constructor(...args){
|
|
16
|
+
super(...args), this.eventType = "page.afterTrash";
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export { PageAfterTrashEvent, PageBeforeTrashEvent };
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/pages/TrashPage/events.js","sources":["../../../../src/features/pages/TrashPage/events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { PageBeforeTrashEventHandler, PageAfterTrashEventHandler } from \"./abstractions.js\";\nimport type { PageBeforeTrashPayload, PageAfterTrashPayload } from \"./abstractions.js\";\n\n// PageBeforeTrash Event\nexport class PageBeforeTrashEvent extends DomainEvent<PageBeforeTrashPayload> {\n eventType = \"page.beforeTrash\" as const;\n\n getHandlerAbstraction() {\n return PageBeforeTrashEventHandler;\n }\n}\n\n// PageAfterTrash Event\nexport class PageAfterTrashEvent extends DomainEvent<PageAfterTrashPayload> {\n eventType = \"page.afterTrash\" as const;\n\n getHandlerAbstraction() {\n return PageAfterTrashEventHandler;\n }\n}\n"],"names":["PageBeforeTrashEvent","DomainEvent","PageBeforeTrashEventHandler","PageAfterTrashEvent","PageAfterTrashEventHandler"],"mappings":";;AAKO,MAAMA,6BAA6BC;IAGtC,wBAAwB;QACpB,OAAOC;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB;AAGO,MAAMC,4BAA4BF;IAGrC,wBAAwB;QACpB,OAAOG;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { TrashPageRepository } from "./TrashPageRepository.js";
|
|
3
|
+
import { TrashPageUseCase } from "./TrashPageUseCase.js";
|
|
4
|
+
const TrashPageFeature = createFeature({
|
|
5
|
+
name: "WebsiteBuilder/TrashPage",
|
|
6
|
+
register (container) {
|
|
7
|
+
container.register(TrashPageRepository).inSingletonScope();
|
|
8
|
+
container.register(TrashPageUseCase);
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
export { TrashPageFeature };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/pages/TrashPage/feature.js","sources":["../../../../src/features/pages/TrashPage/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { TrashPageRepository } from \"./TrashPageRepository.js\";\nimport { TrashPageUseCase } from \"./TrashPageUseCase.js\";\n\nexport const TrashPageFeature = createFeature({\n name: \"WebsiteBuilder/TrashPage\",\n register(container) {\n container.register(TrashPageRepository).inSingletonScope();\n container.register(TrashPageUseCase);\n }\n});\n"],"names":["TrashPageFeature","createFeature","container","TrashPageRepository","TrashPageUseCase"],"mappings":";;;AAIO,MAAMA,mBAAmBC,cAAc;IAC1C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC,qBAAqB,gBAAgB;QACxDD,UAAU,QAAQ,CAACE;IACvB;AACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { PageAfterTrashEventHandler, PageBeforeTrashEventHandler, TrashPageUseCase } from "./abstractions.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { PageAfterTrashEventHandler, PageBeforeTrashEventHandler, TrashPageUseCase } from "./abstractions.js";
|
|
@@ -1,41 +1,39 @@
|
|
|
1
1
|
import { Result } from "@webiny/feature/api";
|
|
2
|
-
import { UnpublishPageRepository
|
|
2
|
+
import { UnpublishPageRepository } from "./abstractions.js";
|
|
3
3
|
import { UnpublishEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/UnpublishEntry";
|
|
4
4
|
import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById";
|
|
5
5
|
import { PageModel } from "../../../domain/page/abstractions.js";
|
|
6
6
|
import { EntryToPageMapper } from "../../../domain/page/EntryToPageMapper.js";
|
|
7
7
|
import { PageNotFoundError, PagePersistenceError } from "../../../domain/page/errors.js";
|
|
8
8
|
class UnpublishPageRepositoryImpl {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
async execute(params) {
|
|
15
|
-
// First, validate the page exists
|
|
16
|
-
const getResult = await this.getEntryById.execute(this.pageModel, params.id);
|
|
17
|
-
if (getResult.isFail()) {
|
|
18
|
-
if (getResult.error.code === "Cms/Entry/NotFound") {
|
|
19
|
-
return Result.fail(new PageNotFoundError(params.id));
|
|
20
|
-
}
|
|
21
|
-
return Result.fail(new PagePersistenceError(getResult.error));
|
|
9
|
+
constructor(unpublishEntry, getEntryById, pageModel){
|
|
10
|
+
this.unpublishEntry = unpublishEntry;
|
|
11
|
+
this.getEntryById = getEntryById;
|
|
12
|
+
this.pageModel = pageModel;
|
|
22
13
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
14
|
+
async execute(params) {
|
|
15
|
+
const getResult = await this.getEntryById.execute(this.pageModel, params.id);
|
|
16
|
+
if (getResult.isFail()) {
|
|
17
|
+
if ("Cms/Entry/NotFound" === getResult.error.code) return Result.fail(new PageNotFoundError(params.id));
|
|
18
|
+
return Result.fail(new PagePersistenceError(getResult.error));
|
|
19
|
+
}
|
|
20
|
+
const result = await this.unpublishEntry.execute(this.pageModel, params.id);
|
|
21
|
+
if (result.isFail()) {
|
|
22
|
+
if ("Cms/Entry/NotFound" === result.error.code) return Result.fail(new PageNotFoundError(params.id));
|
|
23
|
+
return Result.fail(new PagePersistenceError(result.error));
|
|
24
|
+
}
|
|
25
|
+
const page = EntryToPageMapper.toPage(result.value);
|
|
26
|
+
return Result.ok(page);
|
|
31
27
|
}
|
|
32
|
-
const page = EntryToPageMapper.toPage(result.value);
|
|
33
|
-
return Result.ok(page);
|
|
34
|
-
}
|
|
35
28
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
29
|
+
const UnpublishPageRepository_UnpublishPageRepository = UnpublishPageRepository.createImplementation({
|
|
30
|
+
implementation: UnpublishPageRepositoryImpl,
|
|
31
|
+
dependencies: [
|
|
32
|
+
UnpublishEntryUseCase,
|
|
33
|
+
GetEntryByIdUseCase,
|
|
34
|
+
PageModel
|
|
35
|
+
]
|
|
39
36
|
});
|
|
37
|
+
export { UnpublishPageRepository_UnpublishPageRepository as UnpublishPageRepository };
|
|
40
38
|
|
|
41
39
|
//# sourceMappingURL=UnpublishPageRepository.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/pages/UnpublishPage/UnpublishPageRepository.js","sources":["../../../../src/features/pages/UnpublishPage/UnpublishPageRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { UnpublishPageRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { UnpublishEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/UnpublishEntry\";\nimport { GetEntryByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntryById\";\nimport { PageModel } from \"~/domain/page/abstractions.js\";\nimport { EntryToPageMapper } from \"~/domain/page/EntryToPageMapper.js\";\nimport { PageNotFoundError, PagePersistenceError } from \"~/domain/page/errors.js\";\n\nclass UnpublishPageRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private unpublishEntry: UnpublishEntryUseCase.Interface,\n private getEntryById: GetEntryByIdUseCase.Interface,\n private pageModel: PageModel.Interface\n ) {}\n\n async execute(params: RepositoryAbstraction.Params): RepositoryAbstraction.Return {\n // First, validate the page exists\n const getResult = await this.getEntryById.execute(this.pageModel, params.id);\n\n if (getResult.isFail()) {\n if (getResult.error.code === \"Cms/Entry/NotFound\") {\n return Result.fail(new PageNotFoundError(params.id));\n }\n return Result.fail(new PagePersistenceError(getResult.error));\n }\n\n // Unpublish the entry\n const result = await this.unpublishEntry.execute(this.pageModel, params.id);\n\n if (result.isFail()) {\n if (result.error.code === \"Cms/Entry/NotFound\") {\n return Result.fail(new PageNotFoundError(params.id));\n }\n return Result.fail(new PagePersistenceError(result.error));\n }\n\n const page = EntryToPageMapper.toPage(result.value);\n return Result.ok(page);\n }\n}\n\nexport const UnpublishPageRepository = RepositoryAbstraction.createImplementation({\n implementation: UnpublishPageRepositoryImpl,\n dependencies: [UnpublishEntryUseCase, GetEntryByIdUseCase, PageModel]\n});\n"],"names":["UnpublishPageRepositoryImpl","unpublishEntry","getEntryById","pageModel","params","getResult","Result","PageNotFoundError","PagePersistenceError","result","page","EntryToPageMapper","UnpublishPageRepository","RepositoryAbstraction","UnpublishEntryUseCase","GetEntryByIdUseCase","PageModel"],"mappings":";;;;;;;AAQA,MAAMA;IACF,YACYC,cAA+C,EAC/CC,YAA2C,EAC3CC,SAA8B,CACxC;aAHUF,cAAc,GAAdA;aACAC,YAAY,GAAZA;aACAC,SAAS,GAATA;IACT;IAEH,MAAM,QAAQC,MAAoC,EAAgC;QAE9E,MAAMC,YAAY,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAED,OAAO,EAAE;QAE3E,IAAIC,UAAU,MAAM,IAAI;YACpB,IAAIA,AAAyB,yBAAzBA,UAAU,KAAK,CAAC,IAAI,EACpB,OAAOC,OAAO,IAAI,CAAC,IAAIC,kBAAkBH,OAAO,EAAE;YAEtD,OAAOE,OAAO,IAAI,CAAC,IAAIE,qBAAqBH,UAAU,KAAK;QAC/D;QAGA,MAAMI,SAAS,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAEL,OAAO,EAAE;QAE1E,IAAIK,OAAO,MAAM,IAAI;YACjB,IAAIA,AAAsB,yBAAtBA,OAAO,KAAK,CAAC,IAAI,EACjB,OAAOH,OAAO,IAAI,CAAC,IAAIC,kBAAkBH,OAAO,EAAE;YAEtD,OAAOE,OAAO,IAAI,CAAC,IAAIE,qBAAqBC,OAAO,KAAK;QAC5D;QAEA,MAAMC,OAAOC,kBAAkB,MAAM,CAACF,OAAO,KAAK;QAClD,OAAOH,OAAO,EAAE,CAACI;IACrB;AACJ;AAEO,MAAME,kDAA0BC,wBAAAA,oBAA0C,CAAC;IAC9E,gBAAgBb;IAChB,cAAc;QAACc;QAAuBC;QAAqBC;KAAU;AACzE"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import { EventPublisher as EventPublisherAbstraction } from "@webiny/api-core/features/
|
|
1
|
+
import { EventPublisher as EventPublisherAbstraction } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
2
2
|
import { UnpublishPageUseCase as UseCaseAbstraction, UnpublishPageRepository } from "./abstractions.js";
|
|
3
3
|
import { GetPageByIdUseCase } from "../../../features/pages/GetPageById/index.js";
|
|
4
|
+
import { WbPermissions } from "../../../features/permissions/abstractions.js";
|
|
4
5
|
declare class UnpublishPageUseCaseImpl implements UseCaseAbstraction.Interface {
|
|
6
|
+
private permissions;
|
|
5
7
|
private eventPublisher;
|
|
6
8
|
private getPageById;
|
|
7
9
|
private repository;
|
|
8
|
-
constructor(eventPublisher: EventPublisherAbstraction.Interface, getPageById: GetPageByIdUseCase.Interface, repository: UnpublishPageRepository.Interface);
|
|
10
|
+
constructor(permissions: WbPermissions.Interface, eventPublisher: EventPublisherAbstraction.Interface, getPageById: GetPageByIdUseCase.Interface, repository: UnpublishPageRepository.Interface);
|
|
9
11
|
execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return;
|
|
10
12
|
}
|
|
11
13
|
export declare const UnpublishPageUseCase: typeof UnpublishPageUseCaseImpl & {
|
|
@@ -1,45 +1,47 @@
|
|
|
1
1
|
import { Result } from "@webiny/feature/api";
|
|
2
|
-
import { EventPublisher } from "@webiny/api-core/features/
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
3
|
+
import { UnpublishPageRepository, UnpublishPageUseCase } from "./abstractions.js";
|
|
4
|
+
import { PageAfterUnpublishEvent, PageBeforeUnpublishEvent } from "./events.js";
|
|
5
5
|
import { GetPageByIdUseCase } from "../GetPageById/index.js";
|
|
6
|
+
import { WbPermissions } from "../../permissions/abstractions.js";
|
|
7
|
+
import { PageNotAuthorizedError } from "../../../domain/page/errors.js";
|
|
6
8
|
class UnpublishPageUseCaseImpl {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
async execute(params) {
|
|
13
|
-
// Get the page first for the before event
|
|
14
|
-
const getResult = await this.getPageById.execute(params.id);
|
|
15
|
-
if (getResult.isFail()) {
|
|
16
|
-
return getResult;
|
|
9
|
+
constructor(permissions, eventPublisher, getPageById, repository){
|
|
10
|
+
this.permissions = permissions;
|
|
11
|
+
this.eventPublisher = eventPublisher;
|
|
12
|
+
this.getPageById = getPageById;
|
|
13
|
+
this.repository = repository;
|
|
17
14
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
15
|
+
async execute(params) {
|
|
16
|
+
const hasPermission = await this.permissions.canUnpublish("page");
|
|
17
|
+
if (!hasPermission) return Result.fail(new PageNotAuthorizedError());
|
|
18
|
+
const getResult = await this.getPageById.execute(params.id);
|
|
19
|
+
if (getResult.isFail()) return getResult;
|
|
20
|
+
const page = getResult.value;
|
|
21
|
+
const canAccess = await this.permissions.canAccess("page", page);
|
|
22
|
+
if (!canAccess) return Result.fail(new PageNotAuthorizedError());
|
|
23
|
+
const beforeEvent = new PageBeforeUnpublishEvent({
|
|
24
|
+
page
|
|
25
|
+
});
|
|
26
|
+
await this.eventPublisher.publish(beforeEvent);
|
|
27
|
+
const result = await this.repository.execute(params);
|
|
28
|
+
if (result.isFail()) return result;
|
|
29
|
+
const afterEvent = new PageAfterUnpublishEvent({
|
|
30
|
+
page: result.value
|
|
31
|
+
});
|
|
32
|
+
await this.eventPublisher.publish(afterEvent);
|
|
33
|
+
return Result.ok(result.value);
|
|
30
34
|
}
|
|
31
|
-
|
|
32
|
-
// Publish after unpublish event
|
|
33
|
-
const afterEvent = new PageAfterUnpublishEvent({
|
|
34
|
-
page: result.value
|
|
35
|
-
});
|
|
36
|
-
await this.eventPublisher.publish(afterEvent);
|
|
37
|
-
return Result.ok(result.value);
|
|
38
|
-
}
|
|
39
35
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
36
|
+
const UnpublishPageUseCase_UnpublishPageUseCase = UnpublishPageUseCase.createImplementation({
|
|
37
|
+
implementation: UnpublishPageUseCaseImpl,
|
|
38
|
+
dependencies: [
|
|
39
|
+
WbPermissions,
|
|
40
|
+
EventPublisher,
|
|
41
|
+
GetPageByIdUseCase,
|
|
42
|
+
UnpublishPageRepository
|
|
43
|
+
]
|
|
43
44
|
});
|
|
45
|
+
export { UnpublishPageUseCase_UnpublishPageUseCase as UnpublishPageUseCase };
|
|
44
46
|
|
|
45
47
|
//# sourceMappingURL=UnpublishPageUseCase.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/pages/UnpublishPage/UnpublishPageUseCase.js","sources":["../../../../src/features/pages/UnpublishPage/UnpublishPageUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport {\n UnpublishPageUseCase as UseCaseAbstraction,\n UnpublishPageRepository\n} from \"./abstractions.js\";\nimport { PageBeforeUnpublishEvent, PageAfterUnpublishEvent } from \"./events.js\";\nimport { GetPageByIdUseCase } from \"~/features/pages/GetPageById/index.js\";\nimport { WbPermissions } from \"~/features/permissions/abstractions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\n\nclass UnpublishPageUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getPageById: GetPageByIdUseCase.Interface,\n private repository: UnpublishPageRepository.Interface\n ) {}\n\n async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canUnpublish(\"page\");\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Get the page first for the before event\n const getResult = await this.getPageById.execute(params.id);\n\n if (getResult.isFail()) {\n return getResult;\n }\n\n const page = getResult.value;\n\n const canAccess = await this.permissions.canAccess(\"page\", page);\n if (!canAccess) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Publish before unpublish event\n const beforeEvent = new PageBeforeUnpublishEvent({\n page\n });\n\n await this.eventPublisher.publish(beforeEvent);\n\n // Execute the unpublish operation\n const result = await this.repository.execute(params);\n\n if (result.isFail()) {\n return result;\n }\n\n // Publish after unpublish event\n const afterEvent = new PageAfterUnpublishEvent({\n page: result.value\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return Result.ok(result.value);\n }\n}\n\nexport const UnpublishPageUseCase = UseCaseAbstraction.createImplementation({\n implementation: UnpublishPageUseCaseImpl,\n dependencies: [WbPermissions, EventPublisher, GetPageByIdUseCase, UnpublishPageRepository]\n});\n"],"names":["UnpublishPageUseCaseImpl","permissions","eventPublisher","getPageById","repository","params","hasPermission","Result","PageNotAuthorizedError","getResult","page","canAccess","beforeEvent","PageBeforeUnpublishEvent","result","afterEvent","PageAfterUnpublishEvent","UnpublishPageUseCase","UseCaseAbstraction","WbPermissions","EventPublisher","GetPageByIdUseCase","UnpublishPageRepository"],"mappings":";;;;;;;AAcA,MAAMA;IACF,YACYC,WAAoC,EACpCC,cAAmD,EACnDC,WAAyC,EACzCC,UAA6C,CACvD;aAJUH,WAAW,GAAXA;aACAC,cAAc,GAAdA;aACAC,WAAW,GAAXA;aACAC,UAAU,GAAVA;IACT;IAEH,MAAM,QAAQC,MAAiC,EAA6B;QACxE,MAAMC,gBAAgB,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;QAC1D,IAAI,CAACA,eACD,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAI3B,MAAMC,YAAY,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAACJ,OAAO,EAAE;QAE1D,IAAII,UAAU,MAAM,IAChB,OAAOA;QAGX,MAAMC,OAAOD,UAAU,KAAK;QAE5B,MAAME,YAAY,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQD;QAC3D,IAAI,CAACC,WACD,OAAOJ,OAAO,IAAI,CAAC,IAAIC;QAI3B,MAAMI,cAAc,IAAIC,yBAAyB;YAC7CH;QACJ;QAEA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAACE;QAGlC,MAAME,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACT;QAE7C,IAAIS,OAAO,MAAM,IACb,OAAOA;QAIX,MAAMC,aAAa,IAAIC,wBAAwB;YAC3C,MAAMF,OAAO,KAAK;QACtB;QAEA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAACC;QAElC,OAAOR,OAAO,EAAE,CAACO,OAAO,KAAK;IACjC;AACJ;AAEO,MAAMG,4CAAuBC,qBAAAA,oBAAuC,CAAC;IACxE,gBAAgBlB;IAChB,cAAc;QAACmB;QAAeC;QAAgBC;QAAoBC;KAAwB;AAC9F"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { type Result } from "@webiny/feature/api";
|
|
2
|
-
import type { IEventHandler } from "@webiny/api-core/features/
|
|
3
|
-
import type { DomainEvent } from "@webiny/api-core/features/
|
|
2
|
+
import type { IEventHandler } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
3
|
+
import type { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
4
4
|
import type { WbPage } from "../../../domain/page/abstractions.js";
|
|
5
|
-
import { PageNotFoundError, PagePersistenceError } from "../../../domain/page/errors.js";
|
|
5
|
+
import { PageNotFoundError, PagePersistenceError, PageNotAuthorizedError } from "../../../domain/page/errors.js";
|
|
6
6
|
export interface IUnpublishWbPageParams {
|
|
7
7
|
id: string;
|
|
8
8
|
}
|
|
@@ -25,10 +25,12 @@ export interface IUnpublishPageUseCase {
|
|
|
25
25
|
execute(params: IUnpublishWbPageParams): Promise<Result<WbPage, UseCaseError>>;
|
|
26
26
|
}
|
|
27
27
|
export interface IUnpublishPageUseCaseErrors {
|
|
28
|
+
notAuthorized: PageNotAuthorizedError;
|
|
28
29
|
notFound: PageNotFoundError;
|
|
29
30
|
persistence: PagePersistenceError;
|
|
30
31
|
}
|
|
31
32
|
type UseCaseError = IUnpublishPageUseCaseErrors[keyof IUnpublishPageUseCaseErrors];
|
|
33
|
+
/** Unpublish a page. */
|
|
32
34
|
export declare const UnpublishPageUseCase: import("@webiny/di").Abstraction<IUnpublishPageUseCase>;
|
|
33
35
|
export declare namespace UnpublishPageUseCase {
|
|
34
36
|
type Interface = IUnpublishPageUseCase;
|
|
@@ -43,14 +45,16 @@ export interface PageBeforeUnpublishPayload {
|
|
|
43
45
|
export interface PageAfterUnpublishPayload {
|
|
44
46
|
page: WbPage;
|
|
45
47
|
}
|
|
46
|
-
|
|
47
|
-
export declare
|
|
48
|
+
/** Hook into page lifecycle before a page is unpublished. */
|
|
49
|
+
export declare const PageBeforeUnpublishEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<PageBeforeUnpublishPayload>>>;
|
|
50
|
+
export declare namespace PageBeforeUnpublishEventHandler {
|
|
48
51
|
type Interface = IEventHandler<DomainEvent<PageBeforeUnpublishPayload>>;
|
|
49
52
|
type Event = DomainEvent<PageBeforeUnpublishPayload>;
|
|
50
53
|
type Page = WbPage;
|
|
51
54
|
}
|
|
52
|
-
|
|
53
|
-
export declare
|
|
55
|
+
/** Hook into page lifecycle after a page is unpublished. */
|
|
56
|
+
export declare const PageAfterUnpublishEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<PageAfterUnpublishPayload>>>;
|
|
57
|
+
export declare namespace PageAfterUnpublishEventHandler {
|
|
54
58
|
type Interface = IEventHandler<DomainEvent<PageAfterUnpublishPayload>>;
|
|
55
59
|
type Event = DomainEvent<PageAfterUnpublishPayload>;
|
|
56
60
|
type Page = WbPage;
|
|
@@ -1,30 +1,8 @@
|
|
|
1
1
|
import { createAbstraction } from "@webiny/feature/api";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
// ============================================================================
|
|
8
|
-
// Repository Abstraction
|
|
9
|
-
// ============================================================================
|
|
10
|
-
|
|
11
|
-
export const UnpublishPageRepository = createAbstraction("Wb/UnpublishPageRepository");
|
|
12
|
-
|
|
13
|
-
// ============================================================================
|
|
14
|
-
// Use Case Abstraction
|
|
15
|
-
// ============================================================================
|
|
16
|
-
|
|
17
|
-
export const UnpublishPageUseCase = createAbstraction("Wb/UnpublishPageUseCase");
|
|
18
|
-
|
|
19
|
-
// ============================================================================
|
|
20
|
-
// Event Payload Types
|
|
21
|
-
// ============================================================================
|
|
22
|
-
|
|
23
|
-
// ============================================================================
|
|
24
|
-
// Event Handler Abstractions
|
|
25
|
-
// ============================================================================
|
|
26
|
-
|
|
27
|
-
export const PageBeforeUnpublishHandler = createAbstraction("Wb/PageBeforeUnpublishHandler");
|
|
28
|
-
export const PageAfterUnpublishHandler = createAbstraction("Wb/PageAfterUnpublishHandler");
|
|
2
|
+
const UnpublishPageRepository = createAbstraction("Wb/UnpublishPageRepository");
|
|
3
|
+
const UnpublishPageUseCase = createAbstraction("Wb/UnpublishPageUseCase");
|
|
4
|
+
const PageBeforeUnpublishEventHandler = createAbstraction("Wb/PageBeforeUnpublishEventHandler");
|
|
5
|
+
const PageAfterUnpublishEventHandler = createAbstraction("Wb/PageAfterUnpublishEventHandler");
|
|
6
|
+
export { PageAfterUnpublishEventHandler, PageBeforeUnpublishEventHandler, UnpublishPageRepository, UnpublishPageUseCase };
|
|
29
7
|
|
|
30
8
|
//# sourceMappingURL=abstractions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/pages/UnpublishPage/abstractions.js","sources":["../../../../src/features/pages/UnpublishPage/abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { IEventHandler } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport {\n PageNotFoundError,\n PagePersistenceError,\n PageNotAuthorizedError\n} from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface IUnpublishWbPageParams {\n id: string;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IUnpublishPageRepository {\n execute(params: IUnpublishWbPageParams): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface IUnpublishPageRepositoryErrors {\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IUnpublishPageRepositoryErrors[keyof IUnpublishPageRepositoryErrors];\n\nexport const UnpublishPageRepository = createAbstraction<IUnpublishPageRepository>(\n \"Wb/UnpublishPageRepository\"\n);\n\nexport namespace UnpublishPageRepository {\n export type Interface = IUnpublishPageRepository;\n export type Params = IUnpublishWbPageParams;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IUnpublishPageUseCase {\n execute(params: IUnpublishWbPageParams): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface IUnpublishPageUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IUnpublishPageUseCaseErrors[keyof IUnpublishPageUseCaseErrors];\n\n/** Unpublish a page. */\nexport const UnpublishPageUseCase =\n createAbstraction<IUnpublishPageUseCase>(\"Wb/UnpublishPageUseCase\");\n\nexport namespace UnpublishPageUseCase {\n export type Interface = IUnpublishPageUseCase;\n export type Params = IUnpublishWbPageParams;\n export type Return = Promise<Result<WbPage, UseCaseError>>;\n export type Error = UseCaseError;\n export type Page = WbPage;\n}\n\n// ============================================================================\n// Event Payload Types\n// ============================================================================\n\nexport interface PageBeforeUnpublishPayload {\n page: WbPage;\n}\n\nexport interface PageAfterUnpublishPayload {\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\n/** Hook into page lifecycle before a page is unpublished. */\nexport const PageBeforeUnpublishEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforeUnpublishPayload>>\n>(\"Wb/PageBeforeUnpublishEventHandler\");\n\nexport namespace PageBeforeUnpublishEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforeUnpublishPayload>>;\n export type Event = DomainEvent<PageBeforeUnpublishPayload>;\n export type Page = WbPage;\n}\n\n/** Hook into page lifecycle after a page is unpublished. */\nexport const PageAfterUnpublishEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterUnpublishPayload>>\n>(\"Wb/PageAfterUnpublishEventHandler\");\n\nexport namespace PageAfterUnpublishEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterUnpublishPayload>>;\n export type Event = DomainEvent<PageAfterUnpublishPayload>;\n export type Page = WbPage;\n}\n"],"names":["UnpublishPageRepository","createAbstraction","UnpublishPageUseCase","PageBeforeUnpublishEventHandler","PageAfterUnpublishEventHandler"],"mappings":";AAiCO,MAAMA,0BAA0BC,kBACnC;AA2BG,MAAMC,uBACTD,kBAAyC;AA2BtC,MAAME,kCAAkCF,kBAE7C;AASK,MAAMG,iCAAiCH,kBAE5C"}
|