@webiny/api-website-builder 0.0.0-unstable.e622468070 → 0.0.0-unstable.e6f0dc8ca7
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/domain/page/EntryToPageMapper.js +4 -1
- package/domain/page/EntryToPageMapper.js.map +1 -1
- package/domain/page/PagePath.d.ts +7 -0
- package/domain/page/PagePath.js +36 -0
- package/domain/page/PagePath.js.map +1 -0
- package/domain/page/abstractions.d.ts +22 -3
- package/domain/page/abstractions.js.map +1 -1
- package/domain/page/errors.d.ts +12 -0
- package/domain/page/errors.js +22 -0
- package/domain/page/errors.js.map +1 -1
- package/domain/permissionsSchema.d.ts +29 -0
- package/domain/permissionsSchema.js +32 -0
- package/domain/permissionsSchema.js.map +1 -0
- package/exports/api/website-builder/page.d.ts +12 -8
- package/exports/api/website-builder/page.js +12 -8
- package/exports/api/website-builder/page.js.map +1 -1
- package/exports/api/website-builder/redirect.d.ts +4 -4
- package/exports/api/website-builder/redirect.js +4 -4
- package/exports/api/website-builder/redirect.js.map +1 -1
- package/features/installer/ApiKeyInstaller.d.ts +1 -1
- package/features/installer/ApiKeyInstaller.js +5 -2
- package/features/installer/ApiKeyInstaller.js.map +1 -1
- package/features/installer/feature.d.ts +4 -1
- package/features/nextjs/abstractions.d.ts +1 -0
- package/features/nextjs/abstractions.js +1 -0
- package/features/nextjs/abstractions.js.map +1 -1
- package/features/nextjs/feature.d.ts +4 -1
- package/features/pages/CreatePage/CreatePageUseCase.d.ts +4 -2
- package/features/pages/CreatePage/CreatePageUseCase.js +11 -3
- 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 -2
- package/features/pages/CreatePage/abstractions.js.map +1 -1
- package/features/pages/CreatePage/events.d.ts +3 -3
- package/features/pages/CreatePage/events.js +4 -4
- package/features/pages/CreatePage/events.js.map +1 -1
- package/features/pages/CreatePage/feature.d.ts +4 -1
- package/features/pages/CreatePage/index.d.ts +1 -1
- package/features/pages/CreatePage/index.js +1 -1
- package/features/pages/CreatePage/index.js.map +1 -1
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromUseCase.d.ts +6 -2
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromUseCase.js +19 -3
- 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 -2
- package/features/pages/CreatePageRevisionFrom/abstractions.js.map +1 -1
- package/features/pages/CreatePageRevisionFrom/events.d.ts +3 -3
- package/features/pages/CreatePageRevisionFrom/events.js +4 -4
- package/features/pages/CreatePageRevisionFrom/events.js.map +1 -1
- package/features/pages/CreatePageRevisionFrom/feature.d.ts +4 -1
- package/features/pages/CreatePageRevisionFrom/index.d.ts +1 -1
- package/features/pages/CreatePageRevisionFrom/index.js +1 -1
- package/features/pages/CreatePageRevisionFrom/index.js.map +1 -1
- package/features/pages/DeletePage/DeletePageRepository.d.ts +1 -3
- package/features/pages/DeletePage/DeletePageRepository.js +2 -13
- package/features/pages/DeletePage/DeletePageRepository.js.map +1 -1
- package/features/pages/DeletePage/DeletePageUseCase.d.ts +7 -5
- package/features/pages/DeletePage/DeletePageUseCase.js +16 -9
- 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 -2
- package/features/pages/DeletePage/abstractions.js.map +1 -1
- package/features/pages/DeletePage/events.d.ts +3 -3
- package/features/pages/DeletePage/events.js +4 -4
- package/features/pages/DeletePage/events.js.map +1 -1
- package/features/pages/DeletePage/feature.d.ts +4 -1
- package/features/pages/DeletePage/index.d.ts +1 -1
- package/features/pages/DeletePage/index.js +1 -1
- package/features/pages/DeletePage/index.js.map +1 -1
- package/features/pages/DuplicatePage/DuplicatePageRepository.d.ts +2 -2
- package/features/pages/DuplicatePage/DuplicatePageRepository.js +9 -1
- package/features/pages/DuplicatePage/DuplicatePageRepository.js.map +1 -1
- package/features/pages/DuplicatePage/DuplicatePageUseCase.d.ts +4 -2
- package/features/pages/DuplicatePage/DuplicatePageUseCase.js +11 -3
- 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 -2
- package/features/pages/DuplicatePage/abstractions.js.map +1 -1
- package/features/pages/DuplicatePage/events.d.ts +3 -3
- package/features/pages/DuplicatePage/events.js +4 -4
- package/features/pages/DuplicatePage/events.js.map +1 -1
- package/features/pages/DuplicatePage/feature.d.ts +4 -1
- package/features/pages/DuplicatePage/index.d.ts +2 -1
- package/features/pages/DuplicatePage/index.js +1 -1
- package/features/pages/DuplicatePage/index.js.map +1 -1
- 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 +31 -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 +15 -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 +12 -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 +3 -0
- package/features/pages/GetDeletedPageById/index.js.map +1 -0
- package/features/pages/GetPageById/GetPageByIdUseCase.d.ts +3 -1
- package/features/pages/GetPageById/GetPageByIdUseCase.js +19 -3
- package/features/pages/GetPageById/GetPageByIdUseCase.js.map +1 -1
- package/features/pages/GetPageById/abstractions.d.ts +3 -1
- package/features/pages/GetPageById/abstractions.js +1 -0
- package/features/pages/GetPageById/abstractions.js.map +1 -1
- package/features/pages/GetPageById/feature.d.ts +4 -1
- package/features/pages/GetPageByPath/GetPageByPathUseCase.d.ts +3 -1
- package/features/pages/GetPageByPath/GetPageByPathUseCase.js +19 -3
- package/features/pages/GetPageByPath/GetPageByPathUseCase.js.map +1 -1
- package/features/pages/GetPageByPath/abstractions.d.ts +3 -1
- package/features/pages/GetPageByPath/abstractions.js +1 -0
- package/features/pages/GetPageByPath/abstractions.js.map +1 -1
- package/features/pages/GetPageByPath/feature.d.ts +4 -1
- package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsRepository.d.ts +15 -0
- package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsRepository.js +61 -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 +20 -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 +12 -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 +3 -0
- package/features/pages/GetPageLanguagePaths/index.js.map +1 -0
- package/features/pages/GetPageRevisions/GetPageRevisionsUseCase.d.ts +3 -1
- package/features/pages/GetPageRevisions/GetPageRevisionsUseCase.js +22 -3
- package/features/pages/GetPageRevisions/GetPageRevisionsUseCase.js.map +1 -1
- package/features/pages/GetPageRevisions/abstractions.d.ts +3 -1
- package/features/pages/GetPageRevisions/abstractions.js +1 -0
- package/features/pages/GetPageRevisions/abstractions.js.map +1 -1
- package/features/pages/GetPageRevisions/feature.d.ts +4 -1
- package/features/pages/ListDeletedPages/ListDeletedPagesRepository.d.ts +17 -0
- package/features/pages/ListDeletedPages/ListDeletedPagesRepository.js +49 -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 +35 -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 +15 -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 +12 -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 +3 -0
- package/features/pages/ListDeletedPages/index.js.map +1 -0
- package/features/pages/ListPages/ListPagesRepository.d.ts +5 -1
- package/features/pages/ListPages/ListPagesRepository.js +14 -4
- package/features/pages/ListPages/ListPagesRepository.js.map +1 -1
- package/features/pages/ListPages/ListPagesUseCase.d.ts +5 -1
- package/features/pages/ListPages/ListPagesUseCase.js +24 -4
- package/features/pages/ListPages/ListPagesUseCase.js.map +1 -1
- package/features/pages/ListPages/abstractions.d.ts +3 -1
- package/features/pages/ListPages/abstractions.js +1 -0
- package/features/pages/ListPages/abstractions.js.map +1 -1
- package/features/pages/ListPages/feature.d.ts +4 -1
- package/features/pages/MovePage/MovePageUseCase.d.ts +4 -2
- package/features/pages/MovePage/MovePageUseCase.js +15 -3
- 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 -2
- package/features/pages/MovePage/abstractions.js.map +1 -1
- package/features/pages/MovePage/events.d.ts +3 -3
- package/features/pages/MovePage/events.js +4 -4
- package/features/pages/MovePage/events.js.map +1 -1
- package/features/pages/MovePage/feature.d.ts +4 -1
- package/features/pages/MovePage/index.d.ts +1 -1
- package/features/pages/MovePage/index.js +1 -1
- package/features/pages/MovePage/index.js.map +1 -1
- package/features/pages/PublishPage/PublishPageUseCase.d.ts +4 -2
- package/features/pages/PublishPage/PublishPageUseCase.js +15 -3
- 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 -2
- package/features/pages/PublishPage/abstractions.js.map +1 -1
- package/features/pages/PublishPage/events.d.ts +3 -3
- package/features/pages/PublishPage/events.js +4 -4
- package/features/pages/PublishPage/events.js.map +1 -1
- package/features/pages/PublishPage/feature.d.ts +4 -1
- package/features/pages/PublishPage/index.d.ts +1 -1
- package/features/pages/PublishPage/index.js +1 -1
- package/features/pages/PublishPage/index.js.map +1 -1
- package/features/pages/RestorePage/RestorePageRepository.d.ts +13 -0
- package/features/pages/RestorePage/RestorePageRepository.js +30 -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 +52 -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 +30 -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 +19 -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 +12 -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 +3 -0
- package/features/pages/RestorePage/index.js.map +1 -0
- package/features/pages/TranslatePage/TranslatePageUseCase.d.ts +17 -0
- package/features/pages/TranslatePage/TranslatePageUseCase.js +74 -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 +14 -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 +10 -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 +3 -0
- package/features/pages/TranslatePage/index.js.map +1 -0
- package/features/pages/TrashPage/TrashPageRepository.d.ts +13 -0
- package/features/pages/TrashPage/TrashPageRepository.js +30 -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 +52 -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 +30 -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 +19 -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 +12 -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 +3 -0
- package/features/pages/TrashPage/index.js.map +1 -0
- package/features/pages/UnpublishPage/UnpublishPageUseCase.d.ts +4 -2
- package/features/pages/UnpublishPage/UnpublishPageUseCase.js +15 -3
- 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 -2
- package/features/pages/UnpublishPage/abstractions.js.map +1 -1
- package/features/pages/UnpublishPage/events.d.ts +3 -3
- package/features/pages/UnpublishPage/events.js +4 -4
- package/features/pages/UnpublishPage/events.js.map +1 -1
- package/features/pages/UnpublishPage/feature.d.ts +4 -1
- package/features/pages/UnpublishPage/index.d.ts +1 -1
- package/features/pages/UnpublishPage/index.js +1 -1
- package/features/pages/UnpublishPage/index.js.map +1 -1
- package/features/pages/UpdatePage/UpdatePageUseCase.d.ts +4 -2
- package/features/pages/UpdatePage/UpdatePageUseCase.js +15 -3
- 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 -2
- package/features/pages/UpdatePage/abstractions.js.map +1 -1
- package/features/pages/UpdatePage/events.d.ts +3 -3
- package/features/pages/UpdatePage/events.js +4 -4
- package/features/pages/UpdatePage/events.js.map +1 -1
- package/features/pages/UpdatePage/feature.d.ts +4 -1
- package/features/pages/UpdatePage/index.d.ts +1 -1
- package/features/pages/UpdatePage/index.js +1 -1
- package/features/pages/UpdatePage/index.js.map +1 -1
- package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionRepository.d.ts +15 -0
- package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionRepository.js +44 -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 +66 -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 +29 -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 +19 -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 +12 -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 +3 -0
- package/features/pages/UpdatePageRevisionDescription/index.js.map +1 -0
- package/features/permissions/abstractions.d.ts +34 -0
- package/features/permissions/abstractions.js +5 -0
- package/features/permissions/abstractions.js.map +1 -0
- package/features/permissions/feature.d.ts +4 -0
- package/features/permissions/feature.js +6 -0
- package/features/permissions/feature.js.map +1 -0
- package/features/redirects/CreateRedirect/CreateRedirectUseCase.d.ts +4 -2
- package/features/redirects/CreateRedirect/CreateRedirectUseCase.js +11 -3
- 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 -2
- package/features/redirects/CreateRedirect/abstractions.js.map +1 -1
- package/features/redirects/CreateRedirect/events.d.ts +3 -3
- package/features/redirects/CreateRedirect/events.js +4 -4
- package/features/redirects/CreateRedirect/events.js.map +1 -1
- package/features/redirects/CreateRedirect/feature.d.ts +4 -1
- package/features/redirects/CreateRedirect/index.d.ts +1 -1
- package/features/redirects/CreateRedirect/index.js +1 -1
- package/features/redirects/CreateRedirect/index.js.map +1 -1
- package/features/redirects/DeleteRedirect/DeleteRedirectUseCase.d.ts +4 -2
- package/features/redirects/DeleteRedirect/DeleteRedirectUseCase.js +11 -4
- 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 -2
- package/features/redirects/DeleteRedirect/abstractions.js.map +1 -1
- package/features/redirects/DeleteRedirect/events.d.ts +3 -3
- package/features/redirects/DeleteRedirect/events.js +4 -4
- package/features/redirects/DeleteRedirect/events.js.map +1 -1
- package/features/redirects/DeleteRedirect/feature.d.ts +4 -1
- package/features/redirects/DeleteRedirect/index.d.ts +1 -1
- package/features/redirects/DeleteRedirect/index.js +1 -1
- package/features/redirects/DeleteRedirect/index.js.map +1 -1
- package/features/redirects/GetActiveRedirects/GetActiveRedirectsUseCase.d.ts +3 -1
- package/features/redirects/GetActiveRedirects/GetActiveRedirectsUseCase.js +10 -3
- package/features/redirects/GetActiveRedirects/GetActiveRedirectsUseCase.js.map +1 -1
- package/features/redirects/GetActiveRedirects/abstractions.d.ts +3 -1
- package/features/redirects/GetActiveRedirects/abstractions.js +1 -0
- package/features/redirects/GetActiveRedirects/abstractions.js.map +1 -1
- package/features/redirects/GetActiveRedirects/feature.d.ts +4 -1
- package/features/redirects/GetRedirectById/GetRedirectByIdUseCase.d.ts +3 -1
- package/features/redirects/GetRedirectById/GetRedirectByIdUseCase.js +19 -4
- package/features/redirects/GetRedirectById/GetRedirectByIdUseCase.js.map +1 -1
- package/features/redirects/GetRedirectById/abstractions.d.ts +3 -1
- package/features/redirects/GetRedirectById/abstractions.js +1 -0
- package/features/redirects/GetRedirectById/abstractions.js.map +1 -1
- package/features/redirects/GetRedirectById/feature.d.ts +4 -1
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterCreateHandler.d.ts +3 -3
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterCreateHandler.js +2 -2
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterCreateHandler.js.map +1 -1
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterDeleteHandler.d.ts +3 -3
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterDeleteHandler.js +2 -2
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterDeleteHandler.js.map +1 -1
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterUpdateHandler.d.ts +3 -3
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterUpdateHandler.js +2 -2
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterUpdateHandler.js.map +1 -1
- package/features/redirects/InvalidateRedirectsCache/abstractions.d.ts +1 -0
- package/features/redirects/InvalidateRedirectsCache/abstractions.js +1 -0
- package/features/redirects/InvalidateRedirectsCache/abstractions.js.map +1 -1
- package/features/redirects/InvalidateRedirectsCache/feature.d.ts +4 -1
- package/features/redirects/ListRedirects/ListRedirectsUseCase.d.ts +5 -1
- package/features/redirects/ListRedirects/ListRedirectsUseCase.js +23 -4
- package/features/redirects/ListRedirects/ListRedirectsUseCase.js.map +1 -1
- package/features/redirects/ListRedirects/abstractions.d.ts +4 -1
- package/features/redirects/ListRedirects/abstractions.js +1 -0
- package/features/redirects/ListRedirects/abstractions.js.map +1 -1
- package/features/redirects/ListRedirects/feature.d.ts +4 -1
- package/features/redirects/MoveRedirect/MoveRedirectUseCase.d.ts +4 -2
- package/features/redirects/MoveRedirect/MoveRedirectUseCase.js +15 -3
- 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 -2
- package/features/redirects/MoveRedirect/abstractions.js.map +1 -1
- package/features/redirects/MoveRedirect/events.d.ts +3 -3
- package/features/redirects/MoveRedirect/events.js +4 -4
- package/features/redirects/MoveRedirect/events.js.map +1 -1
- package/features/redirects/MoveRedirect/feature.d.ts +4 -1
- package/features/redirects/MoveRedirect/index.d.ts +1 -1
- package/features/redirects/MoveRedirect/index.js +1 -1
- package/features/redirects/MoveRedirect/index.js.map +1 -1
- package/features/redirects/UpdateRedirect/UpdateRedirectUseCase.d.ts +4 -2
- package/features/redirects/UpdateRedirect/UpdateRedirectUseCase.js +15 -3
- 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 -2
- package/features/redirects/UpdateRedirect/abstractions.js.map +1 -1
- package/features/redirects/UpdateRedirect/events.d.ts +3 -3
- package/features/redirects/UpdateRedirect/events.js +4 -4
- package/features/redirects/UpdateRedirect/events.js.map +1 -1
- package/features/redirects/UpdateRedirect/feature.d.ts +4 -1
- package/features/redirects/UpdateRedirect/index.d.ts +1 -1
- package/features/redirects/UpdateRedirect/index.js +1 -1
- package/features/redirects/UpdateRedirect/index.js.map +1 -1
- package/features/tenantManager/TenantModelExtension.js +5 -5
- package/features/tenantManager/TenantModelExtension.js.map +1 -1
- package/features/tenantManager/feature.d.ts +4 -1
- package/graphql/pages/pages.gql.js +96 -3
- package/graphql/pages/pages.gql.js.map +1 -1
- package/graphql/pages/pages.typeDefs.d.ts +1 -1
- package/graphql/pages/pages.typeDefs.js +22 -1
- package/graphql/pages/pages.typeDefs.js.map +1 -1
- package/index.js +21 -6
- package/index.js.map +1 -1
- package/package.json +27 -25
- 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/redirects/RedirectPermissions/feature.d.ts +0 -1
- package/features/redirects/RedirectPermissions/feature.js +0 -45
- package/features/redirects/RedirectPermissions/feature.js.map +0 -1
|
@@ -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,30 @@
|
|
|
1
|
+
import { createAbstraction } from "@webiny/feature/api";
|
|
2
|
+
|
|
3
|
+
// ============================================================================
|
|
4
|
+
// Type Definitions
|
|
5
|
+
// ============================================================================
|
|
6
|
+
|
|
7
|
+
// ============================================================================
|
|
8
|
+
// Repository Abstraction
|
|
9
|
+
// ============================================================================
|
|
10
|
+
|
|
11
|
+
export const TrashPageRepository = createAbstraction("Wb/TrashPageRepository");
|
|
12
|
+
|
|
13
|
+
// ============================================================================
|
|
14
|
+
// Use Case Abstraction
|
|
15
|
+
// ============================================================================
|
|
16
|
+
|
|
17
|
+
export const TrashPageUseCase = createAbstraction("Wb/TrashPageUseCase");
|
|
18
|
+
|
|
19
|
+
// ============================================================================
|
|
20
|
+
// Event Payload Types
|
|
21
|
+
// ============================================================================
|
|
22
|
+
|
|
23
|
+
// ============================================================================
|
|
24
|
+
// Event Handler Abstractions
|
|
25
|
+
// ============================================================================
|
|
26
|
+
|
|
27
|
+
export const PageBeforeTrashEventHandler = createAbstraction("Wb/PageBeforeTrashEventHandler");
|
|
28
|
+
export const PageAfterTrashEventHandler = createAbstraction("Wb/PageAfterTrashEventHandler");
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=abstractions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createAbstraction","TrashPageRepository","TrashPageUseCase","PageBeforeTrashEventHandler","PageAfterTrashEventHandler"],"sources":["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"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AAUpE;AACA;AACA;;AAMA;AACA;AACA;;AAaA,OAAO,MAAMC,mBAAmB,GAC5BD,iBAAiB,CAAuB,wBAAwB,CAAC;;AASrE;AACA;AACA;;AAcA,OAAO,MAAME,gBAAgB,GAAGF,iBAAiB,CAAoB,qBAAqB,CAAC;;AAS3F;AACA;AACA;;AAUA;AACA;AACA;;AAEA,OAAO,MAAMG,2BAA2B,GAAGH,iBAAiB,CAE1D,gCAAgC,CAAC;AAQnC,OAAO,MAAMI,0BAA0B,GAAGJ,iBAAiB,CAEzD,+BAA+B,CAAC","ignoreList":[]}
|
|
@@ -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,19 @@
|
|
|
1
|
+
import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
2
|
+
import { PageBeforeTrashEventHandler, PageAfterTrashEventHandler } from "./abstractions.js";
|
|
3
|
+
// PageBeforeTrash Event
|
|
4
|
+
export class PageBeforeTrashEvent extends DomainEvent {
|
|
5
|
+
eventType = "page.beforeTrash";
|
|
6
|
+
getHandlerAbstraction() {
|
|
7
|
+
return PageBeforeTrashEventHandler;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// PageAfterTrash Event
|
|
12
|
+
export class PageAfterTrashEvent extends DomainEvent {
|
|
13
|
+
eventType = "page.afterTrash";
|
|
14
|
+
getHandlerAbstraction() {
|
|
15
|
+
return PageAfterTrashEventHandler;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DomainEvent","PageBeforeTrashEventHandler","PageAfterTrashEventHandler","PageBeforeTrashEvent","eventType","getHandlerAbstraction","PageAfterTrashEvent"],"sources":["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"],"mappings":"AAAA,SAASA,WAAW,QAAQ,mDAAmD;AAC/E,SAASC,2BAA2B,EAAEC,0BAA0B;AAGhE;AACA,OAAO,MAAMC,oBAAoB,SAASH,WAAW,CAAyB;EAC1EI,SAAS,GAAG,kBAAkB;EAE9BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,2BAA2B;EACtC;AACJ;;AAEA;AACA,OAAO,MAAMK,mBAAmB,SAASN,WAAW,CAAwB;EACxEI,SAAS,GAAG,iBAAiB;EAE7BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,0BAA0B;EACrC;AACJ","ignoreList":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { TrashPageRepository } from "./TrashPageRepository.js";
|
|
3
|
+
import { TrashPageUseCase } from "./TrashPageUseCase.js";
|
|
4
|
+
export const TrashPageFeature = createFeature({
|
|
5
|
+
name: "WebsiteBuilder/TrashPage",
|
|
6
|
+
register(container) {
|
|
7
|
+
container.register(TrashPageRepository).inSingletonScope();
|
|
8
|
+
container.register(TrashPageUseCase);
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createFeature","TrashPageRepository","TrashPageUseCase","TrashPageFeature","name","register","container","inSingletonScope"],"sources":["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"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,mBAAmB;AAC5B,SAASC,gBAAgB;AAEzB,OAAO,MAAMC,gBAAgB,GAAGH,aAAa,CAAC;EAC1CI,IAAI,EAAE,0BAA0B;EAChCC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACJ,mBAAmB,CAAC,CAACM,gBAAgB,CAAC,CAAC;IAC1DD,SAAS,CAACD,QAAQ,CAACH,gBAAgB,CAAC;EACxC;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { PageAfterTrashEventHandler, PageBeforeTrashEventHandler, TrashPageUseCase } from "./abstractions.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["PageAfterTrashEventHandler","PageBeforeTrashEventHandler","TrashPageUseCase"],"sources":["index.ts"],"sourcesContent":["export {\n PageAfterTrashEventHandler,\n PageBeforeTrashEventHandler,\n TrashPageUseCase\n} from \"./abstractions.js\";\n"],"mappings":"AAAA,SACIA,0BAA0B,EAC1BC,2BAA2B,EAC3BC,gBAAgB","ignoreList":[]}
|
|
@@ -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,21 +1,33 @@
|
|
|
1
1
|
import { Result } from "@webiny/feature/api";
|
|
2
|
-
import { EventPublisher } from "@webiny/api-core/features/
|
|
2
|
+
import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
3
3
|
import { UnpublishPageUseCase as UseCaseAbstraction, UnpublishPageRepository } from "./abstractions.js";
|
|
4
4
|
import { PageBeforeUnpublishEvent, PageAfterUnpublishEvent } 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
|
-
constructor(eventPublisher, getPageById, repository) {
|
|
9
|
+
constructor(permissions, eventPublisher, getPageById, repository) {
|
|
10
|
+
this.permissions = permissions;
|
|
8
11
|
this.eventPublisher = eventPublisher;
|
|
9
12
|
this.getPageById = getPageById;
|
|
10
13
|
this.repository = repository;
|
|
11
14
|
}
|
|
12
15
|
async execute(params) {
|
|
16
|
+
const hasPermission = await this.permissions.canUnpublish("page");
|
|
17
|
+
if (!hasPermission) {
|
|
18
|
+
return Result.fail(new PageNotAuthorizedError());
|
|
19
|
+
}
|
|
20
|
+
|
|
13
21
|
// Get the page first for the before event
|
|
14
22
|
const getResult = await this.getPageById.execute(params.id);
|
|
15
23
|
if (getResult.isFail()) {
|
|
16
24
|
return getResult;
|
|
17
25
|
}
|
|
18
26
|
const page = getResult.value;
|
|
27
|
+
const canAccess = await this.permissions.canAccess("page", page);
|
|
28
|
+
if (!canAccess) {
|
|
29
|
+
return Result.fail(new PageNotAuthorizedError());
|
|
30
|
+
}
|
|
19
31
|
|
|
20
32
|
// Publish before unpublish event
|
|
21
33
|
const beforeEvent = new PageBeforeUnpublishEvent({
|
|
@@ -39,7 +51,7 @@ class UnpublishPageUseCaseImpl {
|
|
|
39
51
|
}
|
|
40
52
|
export const UnpublishPageUseCase = UseCaseAbstraction.createImplementation({
|
|
41
53
|
implementation: UnpublishPageUseCaseImpl,
|
|
42
|
-
dependencies: [EventPublisher, GetPageByIdUseCase, UnpublishPageRepository]
|
|
54
|
+
dependencies: [WbPermissions, EventPublisher, GetPageByIdUseCase, UnpublishPageRepository]
|
|
43
55
|
});
|
|
44
56
|
|
|
45
57
|
//# sourceMappingURL=UnpublishPageUseCase.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Result","EventPublisher","UnpublishPageUseCase","UseCaseAbstraction","UnpublishPageRepository","PageBeforeUnpublishEvent","PageAfterUnpublishEvent","GetPageByIdUseCase","UnpublishPageUseCaseImpl","constructor","eventPublisher","getPageById","repository","execute","params","getResult","id","isFail","page","value","beforeEvent","publish","result","afterEvent","ok","createImplementation","implementation","dependencies"],"sources":["UnpublishPageUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/
|
|
1
|
+
{"version":3,"names":["Result","EventPublisher","UnpublishPageUseCase","UseCaseAbstraction","UnpublishPageRepository","PageBeforeUnpublishEvent","PageAfterUnpublishEvent","GetPageByIdUseCase","WbPermissions","PageNotAuthorizedError","UnpublishPageUseCaseImpl","constructor","permissions","eventPublisher","getPageById","repository","execute","params","hasPermission","canUnpublish","fail","getResult","id","isFail","page","value","canAccess","beforeEvent","publish","result","afterEvent","ok","createImplementation","implementation","dependencies"],"sources":["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"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,cAAc,QAEX,mDAAmD;AAC1D,SACIC,oBAAoB,IAAIC,kBAAkB,EAC1CC,uBAAuB;AAE3B,SAASC,wBAAwB,EAAEC,uBAAuB;AAC1D,SAASC,kBAAkB;AAC3B,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAE/B,MAAMC,wBAAwB,CAAyC;EACnEC,WAAWA,CACCC,WAAoC,EACpCC,cAAmD,EACnDC,WAAyC,EACzCC,UAA6C,EACvD;IAAA,KAJUH,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,WAAyC,GAAzCA,WAAyC;IAAA,KACzCC,UAA6C,GAA7CA,UAA6C;EACtD;EAEH,MAAMC,OAAOA,CAACC,MAAiC,EAA6B;IACxE,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACN,WAAW,CAACO,YAAY,CAAC,MAAM,CAAC;IACjE,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOlB,MAAM,CAACoB,IAAI,CAAC,IAAIX,sBAAsB,CAAC,CAAC,CAAC;IACpD;;IAEA;IACA,MAAMY,SAAS,GAAG,MAAM,IAAI,CAACP,WAAW,CAACE,OAAO,CAACC,MAAM,CAACK,EAAE,CAAC;IAE3D,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOF,SAAS;IACpB;IAEA,MAAMG,IAAI,GAAGH,SAAS,CAACI,KAAK;IAE5B,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACd,WAAW,CAACc,SAAS,CAAC,MAAM,EAAEF,IAAI,CAAC;IAChE,IAAI,CAACE,SAAS,EAAE;MACZ,OAAO1B,MAAM,CAACoB,IAAI,CAAC,IAAIX,sBAAsB,CAAC,CAAC,CAAC;IACpD;;IAEA;IACA,MAAMkB,WAAW,GAAG,IAAItB,wBAAwB,CAAC;MAC7CmB;IACJ,CAAC,CAAC;IAEF,MAAM,IAAI,CAACX,cAAc,CAACe,OAAO,CAACD,WAAW,CAAC;;IAE9C;IACA,MAAME,MAAM,GAAG,MAAM,IAAI,CAACd,UAAU,CAACC,OAAO,CAACC,MAAM,CAAC;IAEpD,IAAIY,MAAM,CAACN,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOM,MAAM;IACjB;;IAEA;IACA,MAAMC,UAAU,GAAG,IAAIxB,uBAAuB,CAAC;MAC3CkB,IAAI,EAAEK,MAAM,CAACJ;IACjB,CAAC,CAAC;IAEF,MAAM,IAAI,CAACZ,cAAc,CAACe,OAAO,CAACE,UAAU,CAAC;IAE7C,OAAO9B,MAAM,CAAC+B,EAAE,CAACF,MAAM,CAACJ,KAAK,CAAC;EAClC;AACJ;AAEA,OAAO,MAAMvB,oBAAoB,GAAGC,kBAAkB,CAAC6B,oBAAoB,CAAC;EACxEC,cAAc,EAAEvB,wBAAwB;EACxCwB,YAAY,EAAE,CAAC1B,aAAa,EAAEP,cAAc,EAAEM,kBAAkB,EAAEH,uBAAuB;AAC7F,CAAC,CAAC","ignoreList":[]}
|
|
@@ -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;
|
|
@@ -14,6 +14,7 @@ export const UnpublishPageRepository = createAbstraction("Wb/UnpublishPageReposi
|
|
|
14
14
|
// Use Case Abstraction
|
|
15
15
|
// ============================================================================
|
|
16
16
|
|
|
17
|
+
/** Unpublish a page. */
|
|
17
18
|
export const UnpublishPageUseCase = createAbstraction("Wb/UnpublishPageUseCase");
|
|
18
19
|
|
|
19
20
|
// ============================================================================
|
|
@@ -24,7 +25,9 @@ export const UnpublishPageUseCase = createAbstraction("Wb/UnpublishPageUseCase")
|
|
|
24
25
|
// Event Handler Abstractions
|
|
25
26
|
// ============================================================================
|
|
26
27
|
|
|
27
|
-
|
|
28
|
-
export const
|
|
28
|
+
/** Hook into page lifecycle before a page is unpublished. */
|
|
29
|
+
export const PageBeforeUnpublishEventHandler = createAbstraction("Wb/PageBeforeUnpublishEventHandler");
|
|
30
|
+
/** Hook into page lifecycle after a page is unpublished. */
|
|
31
|
+
export const PageAfterUnpublishEventHandler = createAbstraction("Wb/PageAfterUnpublishEventHandler");
|
|
29
32
|
|
|
30
33
|
//# sourceMappingURL=abstractions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createAbstraction","UnpublishPageRepository","UnpublishPageUseCase","
|
|
1
|
+
{"version":3,"names":["createAbstraction","UnpublishPageRepository","UnpublishPageUseCase","PageBeforeUnpublishEventHandler","PageAfterUnpublishEventHandler"],"sources":["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"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AAUpE;AACA;AACA;;AAMA;AACA;AACA;;AAaA,OAAO,MAAMC,uBAAuB,GAAGD,iBAAiB,CACpD,4BACJ,CAAC;;AASD;AACA;AACA;;AAcA;AACA,OAAO,MAAME,oBAAoB,GAC7BF,iBAAiB,CAAwB,yBAAyB,CAAC;;AAUvE;AACA;AACA;;AAUA;AACA;AACA;;AAEA;AACA,OAAO,MAAMG,+BAA+B,GAAGH,iBAAiB,CAE9D,oCAAoC,CAAC;AAQvC;AACA,OAAO,MAAMI,8BAA8B,GAAGJ,iBAAiB,CAE7D,mCAAmC,CAAC","ignoreList":[]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { DomainEvent } from "@webiny/api-core/features/
|
|
1
|
+
import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
2
2
|
import type { PageBeforeUnpublishPayload, PageAfterUnpublishPayload } from "./abstractions.js";
|
|
3
3
|
export declare class PageBeforeUnpublishEvent extends DomainEvent<PageBeforeUnpublishPayload> {
|
|
4
4
|
eventType: "page.beforeUnpublish";
|
|
5
|
-
getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/
|
|
5
|
+
getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<PageBeforeUnpublishPayload>>>;
|
|
6
6
|
}
|
|
7
7
|
export declare class PageAfterUnpublishEvent extends DomainEvent<PageAfterUnpublishPayload> {
|
|
8
8
|
eventType: "page.afterUnpublish";
|
|
9
|
-
getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/
|
|
9
|
+
getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<PageAfterUnpublishPayload>>>;
|
|
10
10
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { DomainEvent } from "@webiny/api-core/features/
|
|
2
|
-
import {
|
|
1
|
+
import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
2
|
+
import { PageBeforeUnpublishEventHandler, PageAfterUnpublishEventHandler } from "./abstractions.js";
|
|
3
3
|
// PageBeforeUnpublish Event
|
|
4
4
|
export class PageBeforeUnpublishEvent extends DomainEvent {
|
|
5
5
|
eventType = "page.beforeUnpublish";
|
|
6
6
|
getHandlerAbstraction() {
|
|
7
|
-
return
|
|
7
|
+
return PageBeforeUnpublishEventHandler;
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
10
|
|
|
@@ -12,7 +12,7 @@ export class PageBeforeUnpublishEvent extends DomainEvent {
|
|
|
12
12
|
export class PageAfterUnpublishEvent extends DomainEvent {
|
|
13
13
|
eventType = "page.afterUnpublish";
|
|
14
14
|
getHandlerAbstraction() {
|
|
15
|
-
return
|
|
15
|
+
return PageAfterUnpublishEventHandler;
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DomainEvent","
|
|
1
|
+
{"version":3,"names":["DomainEvent","PageBeforeUnpublishEventHandler","PageAfterUnpublishEventHandler","PageBeforeUnpublishEvent","eventType","getHandlerAbstraction","PageAfterUnpublishEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { PageBeforeUnpublishEventHandler, PageAfterUnpublishEventHandler } from \"./abstractions.js\";\nimport type { PageBeforeUnpublishPayload, PageAfterUnpublishPayload } from \"./abstractions.js\";\n\n// PageBeforeUnpublish Event\nexport class PageBeforeUnpublishEvent extends DomainEvent<PageBeforeUnpublishPayload> {\n eventType = \"page.beforeUnpublish\" as const;\n\n getHandlerAbstraction() {\n return PageBeforeUnpublishEventHandler;\n }\n}\n\n// PageAfterUnpublish Event\nexport class PageAfterUnpublishEvent extends DomainEvent<PageAfterUnpublishPayload> {\n eventType = \"page.afterUnpublish\" as const;\n\n getHandlerAbstraction() {\n return PageAfterUnpublishEventHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,mDAAmD;AAC/E,SAASC,+BAA+B,EAAEC,8BAA8B;AAGxE;AACA,OAAO,MAAMC,wBAAwB,SAASH,WAAW,CAA6B;EAClFI,SAAS,GAAG,sBAAsB;EAElCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,+BAA+B;EAC1C;AACJ;;AAEA;AACA,OAAO,MAAMK,uBAAuB,SAASN,WAAW,CAA4B;EAChFI,SAAS,GAAG,qBAAqB;EAEjCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,8BAA8B;EACzC;AACJ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { PageAfterUnpublishEventHandler, PageBeforeUnpublishEventHandler, UnpublishPageUseCase } from "./abstractions.js";
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { PageAfterUnpublishEventHandler, PageBeforeUnpublishEventHandler, UnpublishPageUseCase } from "./abstractions.js";
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["PageAfterUnpublishEventHandler","PageBeforeUnpublishEventHandler","UnpublishPageUseCase"],"sources":["index.ts"],"sourcesContent":["export {\n PageAfterUnpublishEventHandler,\n PageBeforeUnpublishEventHandler,\n UnpublishPageUseCase\n} from \"./abstractions.js\";\n"],"mappings":"AAAA,SACIA,8BAA8B,EAC9BC,+BAA+B,EAC/BC,oBAAoB","ignoreList":[]}
|
|
@@ -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 { UpdatePageUseCase as UseCaseAbstraction, UpdatePageRepository } 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 UpdatePageUseCaseImpl 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: UpdatePageRepository.Interface);
|
|
10
|
+
constructor(permissions: WbPermissions.Interface, eventPublisher: EventPublisherAbstraction.Interface, getPageById: GetPageByIdUseCase.Interface, repository: UpdatePageRepository.Interface);
|
|
9
11
|
execute(id: string, data: UseCaseAbstraction.UpdateData): UseCaseAbstraction.Return;
|
|
10
12
|
}
|
|
11
13
|
export declare const UpdatePageUseCase: typeof UpdatePageUseCaseImpl & {
|
|
@@ -1,21 +1,33 @@
|
|
|
1
1
|
import { Result } from "@webiny/feature/api";
|
|
2
|
-
import { EventPublisher } from "@webiny/api-core/features/
|
|
2
|
+
import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
3
3
|
import { UpdatePageUseCase as UseCaseAbstraction, UpdatePageRepository } from "./abstractions.js";
|
|
4
4
|
import { PageBeforeUpdateEvent, PageAfterUpdateEvent } 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 UpdatePageUseCaseImpl {
|
|
7
|
-
constructor(eventPublisher, getPageById, repository) {
|
|
9
|
+
constructor(permissions, eventPublisher, getPageById, repository) {
|
|
10
|
+
this.permissions = permissions;
|
|
8
11
|
this.eventPublisher = eventPublisher;
|
|
9
12
|
this.getPageById = getPageById;
|
|
10
13
|
this.repository = repository;
|
|
11
14
|
}
|
|
12
15
|
async execute(id, data) {
|
|
16
|
+
const hasPermission = await this.permissions.canEdit("page");
|
|
17
|
+
if (!hasPermission) {
|
|
18
|
+
return Result.fail(new PageNotAuthorizedError());
|
|
19
|
+
}
|
|
20
|
+
|
|
13
21
|
// Get the original page for events
|
|
14
22
|
const getResult = await this.getPageById.execute(id);
|
|
15
23
|
if (getResult.isFail()) {
|
|
16
24
|
return getResult;
|
|
17
25
|
}
|
|
18
26
|
const original = getResult.value;
|
|
27
|
+
const canEdit = await this.permissions.canEdit("page", original);
|
|
28
|
+
if (!canEdit) {
|
|
29
|
+
return Result.fail(new PageNotAuthorizedError());
|
|
30
|
+
}
|
|
19
31
|
|
|
20
32
|
// Publish before update event
|
|
21
33
|
const beforeEvent = new PageBeforeUpdateEvent({
|
|
@@ -48,7 +60,7 @@ class UpdatePageUseCaseImpl {
|
|
|
48
60
|
}
|
|
49
61
|
export const UpdatePageUseCase = UseCaseAbstraction.createImplementation({
|
|
50
62
|
implementation: UpdatePageUseCaseImpl,
|
|
51
|
-
dependencies: [EventPublisher, GetPageByIdUseCase, UpdatePageRepository]
|
|
63
|
+
dependencies: [WbPermissions, EventPublisher, GetPageByIdUseCase, UpdatePageRepository]
|
|
52
64
|
});
|
|
53
65
|
|
|
54
66
|
//# sourceMappingURL=UpdatePageUseCase.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Result","EventPublisher","UpdatePageUseCase","UseCaseAbstraction","UpdatePageRepository","PageBeforeUpdateEvent","PageAfterUpdateEvent","GetPageByIdUseCase","UpdatePageUseCaseImpl","constructor","eventPublisher","getPageById","repository","execute","id","data","getResult","isFail","original","value","beforeEvent","input","publish","result","afterEvent","page","ok","createImplementation","implementation","dependencies"],"sources":["UpdatePageUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/
|
|
1
|
+
{"version":3,"names":["Result","EventPublisher","UpdatePageUseCase","UseCaseAbstraction","UpdatePageRepository","PageBeforeUpdateEvent","PageAfterUpdateEvent","GetPageByIdUseCase","WbPermissions","PageNotAuthorizedError","UpdatePageUseCaseImpl","constructor","permissions","eventPublisher","getPageById","repository","execute","id","data","hasPermission","canEdit","fail","getResult","isFail","original","value","beforeEvent","input","publish","result","afterEvent","page","ok","createImplementation","implementation","dependencies"],"sources":["UpdatePageUseCase.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 { UpdatePageUseCase as UseCaseAbstraction, UpdatePageRepository } from \"./abstractions.js\";\nimport { PageBeforeUpdateEvent, PageAfterUpdateEvent } 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 UpdatePageUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getPageById: GetPageByIdUseCase.Interface,\n private repository: UpdatePageRepository.Interface\n ) {}\n\n async execute(id: string, data: UseCaseAbstraction.UpdateData): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canEdit(\"page\");\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Get the original page for events\n const getResult = await this.getPageById.execute(id);\n\n if (getResult.isFail()) {\n return getResult;\n }\n\n const original = getResult.value;\n\n const canEdit = await this.permissions.canEdit(\"page\", original);\n if (!canEdit) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Publish before update event\n const beforeEvent = new PageBeforeUpdateEvent({\n original,\n input: { id, data }\n });\n\n await this.eventPublisher.publish(beforeEvent);\n\n // Execute the update operation\n const result = await this.repository.execute(id, data);\n\n if (result.isFail()) {\n return result;\n }\n\n // Publish after update event\n const afterEvent = new PageAfterUpdateEvent({\n original,\n input: { id, data },\n page: result.value\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return Result.ok(result.value);\n }\n}\n\nexport const UpdatePageUseCase = UseCaseAbstraction.createImplementation({\n implementation: UpdatePageUseCaseImpl,\n dependencies: [WbPermissions, EventPublisher, GetPageByIdUseCase, UpdatePageRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,cAAc,QAEX,mDAAmD;AAC1D,SAASC,iBAAiB,IAAIC,kBAAkB,EAAEC,oBAAoB;AACtE,SAASC,qBAAqB,EAAEC,oBAAoB;AACpD,SAASC,kBAAkB;AAC3B,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAE/B,MAAMC,qBAAqB,CAAyC;EAChEC,WAAWA,CACCC,WAAoC,EACpCC,cAAmD,EACnDC,WAAyC,EACzCC,UAA0C,EACpD;IAAA,KAJUH,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,WAAyC,GAAzCA,WAAyC;IAAA,KACzCC,UAA0C,GAA1CA,UAA0C;EACnD;EAEH,MAAMC,OAAOA,CAACC,EAAU,EAAEC,IAAmC,EAA6B;IACtF,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACP,WAAW,CAACQ,OAAO,CAAC,MAAM,CAAC;IAC5D,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOnB,MAAM,CAACqB,IAAI,CAAC,IAAIZ,sBAAsB,CAAC,CAAC,CAAC;IACpD;;IAEA;IACA,MAAMa,SAAS,GAAG,MAAM,IAAI,CAACR,WAAW,CAACE,OAAO,CAACC,EAAE,CAAC;IAEpD,IAAIK,SAAS,CAACC,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOD,SAAS;IACpB;IAEA,MAAME,QAAQ,GAAGF,SAAS,CAACG,KAAK;IAEhC,MAAML,OAAO,GAAG,MAAM,IAAI,CAACR,WAAW,CAACQ,OAAO,CAAC,MAAM,EAAEI,QAAQ,CAAC;IAChE,IAAI,CAACJ,OAAO,EAAE;MACV,OAAOpB,MAAM,CAACqB,IAAI,CAAC,IAAIZ,sBAAsB,CAAC,CAAC,CAAC;IACpD;;IAEA;IACA,MAAMiB,WAAW,GAAG,IAAIrB,qBAAqB,CAAC;MAC1CmB,QAAQ;MACRG,KAAK,EAAE;QAAEV,EAAE;QAAEC;MAAK;IACtB,CAAC,CAAC;IAEF,MAAM,IAAI,CAACL,cAAc,CAACe,OAAO,CAACF,WAAW,CAAC;;IAE9C;IACA,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACd,UAAU,CAACC,OAAO,CAACC,EAAE,EAAEC,IAAI,CAAC;IAEtD,IAAIW,MAAM,CAACN,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOM,MAAM;IACjB;;IAEA;IACA,MAAMC,UAAU,GAAG,IAAIxB,oBAAoB,CAAC;MACxCkB,QAAQ;MACRG,KAAK,EAAE;QAAEV,EAAE;QAAEC;MAAK,CAAC;MACnBa,IAAI,EAAEF,MAAM,CAACJ;IACjB,CAAC,CAAC;IAEF,MAAM,IAAI,CAACZ,cAAc,CAACe,OAAO,CAACE,UAAU,CAAC;IAE7C,OAAO9B,MAAM,CAACgC,EAAE,CAACH,MAAM,CAACJ,KAAK,CAAC;EAClC;AACJ;AAEA,OAAO,MAAMvB,iBAAiB,GAAGC,kBAAkB,CAAC8B,oBAAoB,CAAC;EACrEC,cAAc,EAAExB,qBAAqB;EACrCyB,YAAY,EAAE,CAAC3B,aAAa,EAAEP,cAAc,EAAEM,kBAAkB,EAAEH,oBAAoB;AAC1F,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,17 +1,16 @@
|
|
|
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/EventPublisher";
|
|
2
|
+
import type { DomainEvent, IEventHandler } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
4
3
|
import type { WbPage } from "../../../domain/page/abstractions.js";
|
|
5
4
|
import type { WbLocation } from "../../../domain/shared/abstractions.js";
|
|
6
|
-
import type {
|
|
7
|
-
import {
|
|
5
|
+
import type { ICmsEntrySystem } from "@webiny/api-headless-cms/types/index.js";
|
|
6
|
+
import { PageNotAuthorizedError, PageNotFoundError, PagePersistenceError, PageValidationError } from "../../../domain/page/errors.js";
|
|
8
7
|
export interface IUpdateWbPageData {
|
|
9
8
|
location?: WbLocation;
|
|
10
9
|
properties?: Record<string, any>;
|
|
11
10
|
metadata?: Record<string, any>;
|
|
12
11
|
bindings?: Record<string, any>;
|
|
13
12
|
elements?: Record<string, any>;
|
|
14
|
-
|
|
13
|
+
system?: ICmsEntrySystem;
|
|
15
14
|
}
|
|
16
15
|
export interface IUpdatePageRepository {
|
|
17
16
|
execute(id: string, data: IUpdateWbPageData): Promise<Result<WbPage, RepositoryError>>;
|
|
@@ -33,11 +32,13 @@ export interface IUpdatePageUseCase {
|
|
|
33
32
|
execute(id: string, data: IUpdateWbPageData): Promise<Result<WbPage, UseCaseError>>;
|
|
34
33
|
}
|
|
35
34
|
export interface IUpdatePageUseCaseErrors {
|
|
35
|
+
notAuthorized: PageNotAuthorizedError;
|
|
36
36
|
validation: PageValidationError;
|
|
37
37
|
notFound: PageNotFoundError;
|
|
38
38
|
persistence: PagePersistenceError;
|
|
39
39
|
}
|
|
40
40
|
type UseCaseError = IUpdatePageUseCaseErrors[keyof IUpdatePageUseCaseErrors];
|
|
41
|
+
/** Update a page. */
|
|
41
42
|
export declare const UpdatePageUseCase: import("@webiny/di").Abstraction<IUpdatePageUseCase>;
|
|
42
43
|
export declare namespace UpdatePageUseCase {
|
|
43
44
|
type Interface = IUpdatePageUseCase;
|
|
@@ -61,14 +62,16 @@ export interface PageAfterUpdatePayload {
|
|
|
61
62
|
};
|
|
62
63
|
page: WbPage;
|
|
63
64
|
}
|
|
64
|
-
|
|
65
|
-
export declare
|
|
65
|
+
/** Hook into page lifecycle before a page is updated. */
|
|
66
|
+
export declare const PageBeforeUpdateEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<PageBeforeUpdatePayload>>>;
|
|
67
|
+
export declare namespace PageBeforeUpdateEventHandler {
|
|
66
68
|
type Interface = IEventHandler<DomainEvent<PageBeforeUpdatePayload>>;
|
|
67
69
|
type Event = DomainEvent<PageBeforeUpdatePayload>;
|
|
68
70
|
type Page = WbPage;
|
|
69
71
|
}
|
|
70
|
-
|
|
71
|
-
export declare
|
|
72
|
+
/** Hook into page lifecycle after a page is updated. */
|
|
73
|
+
export declare const PageAfterUpdateEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<PageAfterUpdatePayload>>>;
|
|
74
|
+
export declare namespace PageAfterUpdateEventHandler {
|
|
72
75
|
type Interface = IEventHandler<DomainEvent<PageAfterUpdatePayload>>;
|
|
73
76
|
type Event = DomainEvent<PageAfterUpdatePayload>;
|
|
74
77
|
type Page = WbPage;
|
|
@@ -14,6 +14,7 @@ export const UpdatePageRepository = createAbstraction("Wb/UpdatePageRepository")
|
|
|
14
14
|
// Use Case Abstraction
|
|
15
15
|
// ============================================================================
|
|
16
16
|
|
|
17
|
+
/** Update a page. */
|
|
17
18
|
export const UpdatePageUseCase = createAbstraction("Wb/UpdatePageUseCase");
|
|
18
19
|
|
|
19
20
|
// ============================================================================
|
|
@@ -24,7 +25,9 @@ export const UpdatePageUseCase = createAbstraction("Wb/UpdatePageUseCase");
|
|
|
24
25
|
// Event Handler Abstractions
|
|
25
26
|
// ============================================================================
|
|
26
27
|
|
|
27
|
-
|
|
28
|
-
export const
|
|
28
|
+
/** Hook into page lifecycle before a page is updated. */
|
|
29
|
+
export const PageBeforeUpdateEventHandler = createAbstraction("Wb/PageBeforeUpdateEventHandler");
|
|
30
|
+
/** Hook into page lifecycle after a page is updated. */
|
|
31
|
+
export const PageAfterUpdateEventHandler = createAbstraction("Wb/PageAfterUpdateEventHandler");
|
|
29
32
|
|
|
30
33
|
//# sourceMappingURL=abstractions.js.map
|