@webiny/api-website-builder 6.0.0-alpha.5 → 6.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -29
- package/constants.js +3 -9
- package/constants.js.map +1 -1
- package/domain/page/EntryToPageMapper.d.ts +5 -0
- package/domain/page/EntryToPageMapper.js +30 -0
- package/domain/page/EntryToPageMapper.js.map +1 -0
- package/domain/page/abstractions.d.ts +33 -0
- package/domain/page/abstractions.js +8 -0
- package/domain/page/abstractions.js.map +1 -0
- package/domain/page/errors.d.ts +19 -0
- package/domain/page/errors.js +38 -0
- package/domain/page/errors.js.map +1 -0
- package/domain/page/page.model.d.ts +2 -0
- package/domain/page/page.model.js +32 -0
- package/domain/page/page.model.js.map +1 -0
- package/domain/permissions.d.ts +133 -0
- package/domain/permissions.js +35 -0
- package/domain/permissions.js.map +1 -0
- package/domain/redirect/EntryToRedirectMapper.d.ts +5 -0
- package/domain/redirect/EntryToRedirectMapper.js +24 -0
- package/domain/redirect/EntryToRedirectMapper.js.map +1 -0
- package/domain/redirect/abstractions.d.ts +30 -0
- package/domain/redirect/abstractions.js +12 -0
- package/domain/redirect/abstractions.js.map +1 -0
- package/domain/redirect/errors.d.ts +19 -0
- package/domain/redirect/errors.js +38 -0
- package/domain/redirect/errors.js.map +1 -0
- package/domain/redirect/redirect.model.d.ts +2 -0
- package/domain/redirect/redirect.model.js +32 -0
- package/domain/redirect/redirect.model.js.map +1 -0
- package/domain/shared/abstractions.d.ts +5 -0
- package/domain/shared/abstractions.js +3 -0
- package/domain/shared/abstractions.js.map +1 -0
- package/exports/api/website-builder/nextjs.d.ts +1 -0
- package/exports/api/website-builder/nextjs.js +3 -0
- package/exports/api/website-builder/nextjs.js.map +1 -0
- package/exports/api/website-builder/page.d.ts +12 -0
- package/exports/api/website-builder/page.js +14 -0
- package/exports/api/website-builder/page.js.map +1 -0
- package/exports/api/website-builder/redirect.d.ts +8 -0
- package/exports/api/website-builder/redirect.js +10 -0
- package/exports/api/website-builder/redirect.js.map +1 -0
- package/features/installer/ApiKeyInstaller.d.ts +20 -0
- package/features/installer/ApiKeyInstaller.js +44 -0
- package/features/installer/ApiKeyInstaller.js.map +1 -0
- package/features/installer/feature.d.ts +1 -0
- package/features/installer/feature.js +10 -0
- package/features/installer/feature.js.map +1 -0
- package/features/nextjs/MarkdownContentBuilder.d.ts +31 -0
- package/features/nextjs/MarkdownContentBuilder.js +86 -0
- package/features/nextjs/MarkdownContentBuilder.js.map +1 -0
- package/features/nextjs/MarkdownContentBuilder.test.d.ts +1 -0
- package/features/nextjs/MarkdownContentBuilder.test.js +278 -0
- package/features/nextjs/MarkdownContentBuilder.test.js.map +1 -0
- package/features/nextjs/NextjsConfig.d.ts +14 -0
- package/features/nextjs/NextjsConfig.js +58 -0
- package/features/nextjs/NextjsConfig.js.map +1 -0
- package/features/nextjs/abstractions.d.ts +9 -0
- package/features/nextjs/abstractions.js +4 -0
- package/features/nextjs/abstractions.js.map +1 -0
- package/features/nextjs/feature.d.ts +1 -0
- package/features/nextjs/feature.js +10 -0
- package/features/nextjs/feature.js.map +1 -0
- package/features/nextjs/index.d.ts +1 -0
- package/features/nextjs/index.js +3 -0
- package/features/nextjs/index.js.map +1 -0
- package/features/pages/CreatePage/CreatePageRepository.d.ts +13 -0
- package/features/pages/CreatePage/CreatePageRepository.js +36 -0
- package/features/pages/CreatePage/CreatePageRepository.js.map +1 -0
- package/features/pages/CreatePage/CreatePageUseCase.d.ts +14 -0
- package/features/pages/CreatePage/CreatePageUseCase.js +45 -0
- package/features/pages/CreatePage/CreatePageUseCase.js.map +1 -0
- package/features/pages/CreatePage/abstractions.d.ts +56 -0
- package/features/pages/CreatePage/abstractions.js +30 -0
- package/features/pages/CreatePage/abstractions.js.map +1 -0
- package/features/pages/CreatePage/events.d.ts +10 -0
- package/features/pages/CreatePage/events.js +19 -0
- package/features/pages/CreatePage/events.js.map +1 -0
- package/features/pages/CreatePage/feature.d.ts +1 -0
- package/features/pages/CreatePage/feature.js +12 -0
- package/features/pages/CreatePage/feature.js.map +1 -0
- package/features/pages/CreatePage/index.d.ts +1 -15
- package/features/pages/CreatePage/index.js +1 -16
- package/features/pages/CreatePage/index.js.map +1 -1
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromRepository.d.ts +15 -0
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromRepository.js +49 -0
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromRepository.js.map +1 -0
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromUseCase.d.ts +16 -0
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromUseCase.js +53 -0
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromUseCase.js.map +1 -0
- package/features/pages/CreatePageRevisionFrom/abstractions.d.ts +61 -0
- package/features/pages/CreatePageRevisionFrom/abstractions.js +30 -0
- package/features/pages/CreatePageRevisionFrom/abstractions.js.map +1 -0
- package/features/pages/CreatePageRevisionFrom/events.d.ts +10 -0
- package/features/pages/CreatePageRevisionFrom/events.js +19 -0
- package/features/pages/CreatePageRevisionFrom/events.js.map +1 -0
- package/features/pages/CreatePageRevisionFrom/feature.d.ts +1 -0
- package/features/pages/CreatePageRevisionFrom/feature.js +12 -0
- package/features/pages/CreatePageRevisionFrom/feature.js.map +1 -0
- package/features/pages/CreatePageRevisionFrom/index.d.ts +1 -16
- package/features/pages/CreatePageRevisionFrom/index.js +1 -16
- package/features/pages/CreatePageRevisionFrom/index.js.map +1 -1
- package/features/pages/DeletePage/DeletePageRepository.d.ts +15 -0
- package/features/pages/DeletePage/DeletePageRepository.js +39 -0
- package/features/pages/DeletePage/DeletePageRepository.js.map +1 -0
- package/features/pages/DeletePage/DeletePageUseCase.d.ts +16 -0
- package/features/pages/DeletePage/DeletePageUseCase.js +52 -0
- package/features/pages/DeletePage/DeletePageUseCase.js.map +1 -0
- package/features/pages/DeletePage/abstractions.d.ts +58 -0
- package/features/pages/DeletePage/abstractions.js +30 -0
- package/features/pages/DeletePage/abstractions.js.map +1 -0
- package/features/pages/DeletePage/events.d.ts +10 -0
- package/features/pages/DeletePage/events.js +19 -0
- package/features/pages/DeletePage/events.js.map +1 -0
- package/features/pages/DeletePage/feature.d.ts +1 -0
- package/features/pages/DeletePage/feature.js +12 -0
- package/features/pages/DeletePage/feature.js.map +1 -0
- package/features/pages/DeletePage/index.d.ts +1 -16
- package/features/pages/DeletePage/index.js +1 -16
- package/features/pages/DeletePage/index.js.map +1 -1
- package/features/pages/DuplicatePage/DuplicatePageRepository.d.ts +15 -0
- package/features/pages/DuplicatePage/DuplicatePageRepository.js +59 -0
- package/features/pages/DuplicatePage/DuplicatePageRepository.js.map +1 -0
- package/features/pages/DuplicatePage/DuplicatePageUseCase.d.ts +14 -0
- package/features/pages/DuplicatePage/DuplicatePageUseCase.js +55 -0
- package/features/pages/DuplicatePage/DuplicatePageUseCase.js.map +1 -0
- package/features/pages/DuplicatePage/abstractions.d.ts +62 -0
- package/features/pages/DuplicatePage/abstractions.js +30 -0
- package/features/pages/DuplicatePage/abstractions.js.map +1 -0
- package/features/pages/DuplicatePage/events.d.ts +10 -0
- package/features/pages/DuplicatePage/events.js +19 -0
- package/features/pages/DuplicatePage/events.js.map +1 -0
- package/features/pages/DuplicatePage/feature.d.ts +1 -0
- package/features/pages/DuplicatePage/feature.js +12 -0
- package/features/pages/DuplicatePage/feature.js.map +1 -0
- package/features/pages/DuplicatePage/index.d.ts +1 -16
- package/features/pages/DuplicatePage/index.js +1 -16
- package/features/pages/DuplicatePage/index.js.map +1 -1
- package/features/pages/GetPageById/GetPageByIdRepository.d.ts +13 -0
- package/features/pages/GetPageById/GetPageByIdRepository.js +29 -0
- package/features/pages/GetPageById/GetPageByIdRepository.js.map +1 -0
- package/features/pages/GetPageById/GetPageByIdUseCase.d.ts +12 -0
- package/features/pages/GetPageById/GetPageByIdUseCase.js +31 -0
- package/features/pages/GetPageById/GetPageByIdUseCase.js.map +1 -0
- package/features/pages/GetPageById/abstractions.d.ts +40 -0
- package/features/pages/GetPageById/abstractions.js +15 -0
- package/features/pages/GetPageById/abstractions.js.map +1 -0
- package/features/pages/GetPageById/feature.d.ts +1 -0
- package/features/pages/GetPageById/feature.js +12 -0
- package/features/pages/GetPageById/feature.js.map +1 -0
- package/features/pages/GetPageById/index.d.ts +1 -9
- package/features/pages/GetPageById/index.js +1 -14
- package/features/pages/GetPageById/index.js.map +1 -1
- package/features/pages/GetPageByPath/GetPageByPathRepository.d.ts +13 -0
- package/features/pages/GetPageByPath/GetPageByPathRepository.js +38 -0
- package/features/pages/GetPageByPath/GetPageByPathRepository.js.map +1 -0
- package/features/pages/GetPageByPath/GetPageByPathUseCase.d.ts +12 -0
- package/features/pages/GetPageByPath/GetPageByPathUseCase.js +31 -0
- package/features/pages/GetPageByPath/GetPageByPathUseCase.js.map +1 -0
- package/features/pages/GetPageByPath/abstractions.d.ts +40 -0
- package/features/pages/GetPageByPath/abstractions.js +15 -0
- package/features/pages/GetPageByPath/abstractions.js.map +1 -0
- package/features/pages/GetPageByPath/feature.d.ts +1 -0
- package/features/pages/GetPageByPath/feature.js +12 -0
- package/features/pages/GetPageByPath/feature.js.map +1 -0
- package/features/pages/GetPageByPath/index.d.ts +1 -9
- package/features/pages/GetPageByPath/index.js +1 -14
- package/features/pages/GetPageByPath/index.js.map +1 -1
- package/features/pages/GetPageRevisions/GetPageRevisionsRepository.d.ts +13 -0
- package/features/pages/GetPageRevisions/GetPageRevisionsRepository.js +26 -0
- package/features/pages/GetPageRevisions/GetPageRevisionsRepository.js.map +1 -0
- package/features/pages/GetPageRevisions/GetPageRevisionsUseCase.d.ts +12 -0
- package/features/pages/GetPageRevisions/GetPageRevisionsUseCase.js +34 -0
- package/features/pages/GetPageRevisions/GetPageRevisionsUseCase.js.map +1 -0
- package/features/pages/GetPageRevisions/abstractions.d.ts +38 -0
- package/features/pages/GetPageRevisions/abstractions.js +15 -0
- package/features/pages/GetPageRevisions/abstractions.js.map +1 -0
- package/features/pages/GetPageRevisions/feature.d.ts +1 -0
- package/features/pages/GetPageRevisions/feature.js +12 -0
- package/features/pages/GetPageRevisions/feature.js.map +1 -0
- package/features/pages/GetPageRevisions/index.d.ts +1 -9
- package/features/pages/GetPageRevisions/index.js +1 -14
- package/features/pages/GetPageRevisions/index.js.map +1 -1
- package/features/pages/ListPages/ListPagesRepository.d.ts +13 -0
- package/features/pages/ListPages/ListPagesRepository.js +39 -0
- package/features/pages/ListPages/ListPagesRepository.js.map +1 -0
- package/features/pages/ListPages/ListPagesUseCase.d.ts +14 -0
- package/features/pages/ListPages/ListPagesUseCase.js +35 -0
- package/features/pages/ListPages/ListPagesUseCase.js.map +1 -0
- package/features/pages/ListPages/abstractions.d.ts +56 -0
- package/features/pages/ListPages/abstractions.js +15 -0
- package/features/pages/ListPages/abstractions.js.map +1 -0
- package/features/pages/ListPages/feature.d.ts +1 -0
- package/features/pages/ListPages/feature.js +12 -0
- package/features/pages/ListPages/feature.js.map +1 -0
- package/features/pages/ListPages/index.d.ts +1 -9
- package/features/pages/ListPages/index.js +1 -14
- package/features/pages/ListPages/index.js.map +1 -1
- package/features/pages/MovePage/MovePageRepository.d.ts +15 -0
- package/features/pages/MovePage/MovePageRepository.js +39 -0
- package/features/pages/MovePage/MovePageRepository.js.map +1 -0
- package/features/pages/MovePage/MovePageUseCase.d.ts +14 -0
- package/features/pages/MovePage/MovePageUseCase.js +61 -0
- package/features/pages/MovePage/MovePageUseCase.js.map +1 -0
- package/features/pages/MovePage/abstractions.d.ts +63 -0
- package/features/pages/MovePage/abstractions.js +30 -0
- package/features/pages/MovePage/abstractions.js.map +1 -0
- package/features/pages/MovePage/events.d.ts +10 -0
- package/features/pages/MovePage/events.js +19 -0
- package/features/pages/MovePage/events.js.map +1 -0
- package/features/pages/MovePage/feature.d.ts +1 -0
- package/features/pages/MovePage/feature.js +12 -0
- package/features/pages/MovePage/feature.js.map +1 -0
- package/features/pages/MovePage/index.d.ts +1 -16
- package/features/pages/MovePage/index.js +1 -16
- package/features/pages/MovePage/index.js.map +1 -1
- package/features/pages/PublishPage/PublishPageRepository.d.ts +15 -0
- package/features/pages/PublishPage/PublishPageRepository.js +41 -0
- package/features/pages/PublishPage/PublishPageRepository.js.map +1 -0
- package/features/pages/PublishPage/PublishPageUseCase.d.ts +14 -0
- package/features/pages/PublishPage/PublishPageUseCase.js +58 -0
- package/features/pages/PublishPage/PublishPageUseCase.js.map +1 -0
- package/features/pages/PublishPage/abstractions.d.ts +59 -0
- package/features/pages/PublishPage/abstractions.js +30 -0
- package/features/pages/PublishPage/abstractions.js.map +1 -0
- package/features/pages/PublishPage/events.d.ts +10 -0
- package/features/pages/PublishPage/events.js +19 -0
- package/features/pages/PublishPage/events.js.map +1 -0
- package/features/pages/PublishPage/feature.d.ts +1 -0
- package/features/pages/PublishPage/feature.js +12 -0
- package/features/pages/PublishPage/feature.js.map +1 -0
- package/features/pages/PublishPage/index.d.ts +1 -16
- package/features/pages/PublishPage/index.js +1 -16
- package/features/pages/PublishPage/index.js.map +1 -1
- package/features/pages/UnpublishPage/UnpublishPageRepository.d.ts +15 -0
- package/features/pages/UnpublishPage/UnpublishPageRepository.js +41 -0
- package/features/pages/UnpublishPage/UnpublishPageRepository.js.map +1 -0
- package/features/pages/UnpublishPage/UnpublishPageUseCase.d.ts +16 -0
- package/features/pages/UnpublishPage/UnpublishPageUseCase.js +57 -0
- package/features/pages/UnpublishPage/UnpublishPageUseCase.js.map +1 -0
- package/features/pages/UnpublishPage/abstractions.d.ts +59 -0
- package/features/pages/UnpublishPage/abstractions.js +30 -0
- package/features/pages/UnpublishPage/abstractions.js.map +1 -0
- package/features/pages/UnpublishPage/events.d.ts +10 -0
- package/features/pages/UnpublishPage/events.js +19 -0
- package/features/pages/UnpublishPage/events.js.map +1 -0
- package/features/pages/UnpublishPage/feature.d.ts +1 -0
- package/features/pages/UnpublishPage/feature.js +12 -0
- package/features/pages/UnpublishPage/feature.js.map +1 -0
- package/features/pages/UnpublishPage/index.d.ts +1 -16
- package/features/pages/UnpublishPage/index.js +1 -16
- package/features/pages/UnpublishPage/index.js.map +1 -1
- package/features/pages/UpdatePage/UpdatePageRepository.d.ts +15 -0
- package/features/pages/UpdatePage/UpdatePageRepository.js +47 -0
- package/features/pages/UpdatePage/UpdatePageRepository.js.map +1 -0
- package/features/pages/UpdatePage/UpdatePageUseCase.d.ts +16 -0
- package/features/pages/UpdatePage/UpdatePageUseCase.js +66 -0
- package/features/pages/UpdatePage/UpdatePageUseCase.js.map +1 -0
- package/features/pages/UpdatePage/abstractions.d.ts +77 -0
- package/features/pages/UpdatePage/abstractions.js +30 -0
- package/features/pages/UpdatePage/abstractions.js.map +1 -0
- package/features/pages/UpdatePage/events.d.ts +10 -0
- package/features/pages/UpdatePage/events.js +19 -0
- package/features/pages/UpdatePage/events.js.map +1 -0
- package/features/pages/UpdatePage/feature.d.ts +1 -0
- package/features/pages/UpdatePage/feature.js +12 -0
- package/features/pages/UpdatePage/feature.js.map +1 -0
- package/features/pages/UpdatePage/index.d.ts +1 -16
- package/features/pages/UpdatePage/index.js +1 -16
- package/features/pages/UpdatePage/index.js.map +1 -1
- package/features/redirects/CreateRedirect/CreateRedirectRepository.d.ts +13 -0
- package/features/redirects/CreateRedirect/CreateRedirectRepository.js +32 -0
- package/features/redirects/CreateRedirect/CreateRedirectRepository.js.map +1 -0
- package/features/redirects/CreateRedirect/CreateRedirectUseCase.d.ts +12 -0
- package/features/redirects/CreateRedirect/CreateRedirectUseCase.js +45 -0
- package/features/redirects/CreateRedirect/CreateRedirectUseCase.js.map +1 -0
- package/features/redirects/CreateRedirect/abstractions.d.ts +58 -0
- package/features/redirects/CreateRedirect/abstractions.js +30 -0
- package/features/redirects/CreateRedirect/abstractions.js.map +1 -0
- package/features/redirects/CreateRedirect/events.d.ts +10 -0
- package/features/redirects/CreateRedirect/events.js +19 -0
- package/features/redirects/CreateRedirect/events.js.map +1 -0
- package/features/redirects/CreateRedirect/feature.d.ts +1 -0
- package/features/redirects/CreateRedirect/feature.js +12 -0
- package/features/redirects/CreateRedirect/feature.js.map +1 -0
- package/features/redirects/CreateRedirect/index.d.ts +1 -15
- package/features/redirects/CreateRedirect/index.js +1 -16
- package/features/redirects/CreateRedirect/index.js.map +1 -1
- package/features/redirects/DeleteRedirect/DeleteRedirectRepository.d.ts +13 -0
- package/features/redirects/DeleteRedirect/DeleteRedirectRepository.js +27 -0
- package/features/redirects/DeleteRedirect/DeleteRedirectRepository.js.map +1 -0
- package/features/redirects/DeleteRedirect/DeleteRedirectUseCase.d.ts +14 -0
- package/features/redirects/DeleteRedirect/DeleteRedirectUseCase.js +53 -0
- package/features/redirects/DeleteRedirect/DeleteRedirectUseCase.js.map +1 -0
- package/features/redirects/DeleteRedirect/abstractions.d.ts +58 -0
- package/features/redirects/DeleteRedirect/abstractions.js +30 -0
- package/features/redirects/DeleteRedirect/abstractions.js.map +1 -0
- package/features/redirects/DeleteRedirect/events.d.ts +10 -0
- package/features/redirects/DeleteRedirect/events.js +19 -0
- package/features/redirects/DeleteRedirect/events.js.map +1 -0
- package/features/redirects/DeleteRedirect/feature.d.ts +1 -0
- package/features/redirects/DeleteRedirect/feature.js +12 -0
- package/features/redirects/DeleteRedirect/feature.js.map +1 -0
- package/features/redirects/DeleteRedirect/index.d.ts +1 -16
- package/features/redirects/DeleteRedirect/index.js +1 -16
- package/features/redirects/DeleteRedirect/index.js.map +1 -1
- package/features/redirects/GetActiveRedirects/GetActiveRedirectsRepository.d.ts +11 -0
- package/features/redirects/GetActiveRedirects/GetActiveRedirectsRepository.js +30 -0
- package/features/redirects/GetActiveRedirects/GetActiveRedirectsRepository.js.map +1 -0
- package/features/redirects/GetActiveRedirects/GetActiveRedirectsUseCase.d.ts +10 -0
- package/features/redirects/GetActiveRedirects/GetActiveRedirectsUseCase.js +24 -0
- package/features/redirects/GetActiveRedirects/GetActiveRedirectsUseCase.js.map +1 -0
- package/features/redirects/GetActiveRedirects/abstractions.d.ts +39 -0
- package/features/redirects/GetActiveRedirects/abstractions.js +15 -0
- package/features/redirects/GetActiveRedirects/abstractions.js.map +1 -0
- package/features/redirects/GetActiveRedirects/feature.d.ts +1 -0
- package/features/redirects/GetActiveRedirects/feature.js +12 -0
- package/features/redirects/GetActiveRedirects/feature.js.map +1 -0
- package/features/redirects/GetActiveRedirects/index.d.ts +1 -7
- package/features/redirects/GetActiveRedirects/index.js +1 -11
- package/features/redirects/GetActiveRedirects/index.js.map +1 -1
- package/features/redirects/GetRedirectById/GetRedirectByIdRepository.d.ts +13 -0
- package/features/redirects/GetRedirectById/GetRedirectByIdRepository.js +29 -0
- package/features/redirects/GetRedirectById/GetRedirectByIdRepository.js.map +1 -0
- package/features/redirects/GetRedirectById/GetRedirectByIdUseCase.d.ts +10 -0
- package/features/redirects/GetRedirectById/GetRedirectByIdUseCase.js +32 -0
- package/features/redirects/GetRedirectById/GetRedirectByIdUseCase.js.map +1 -0
- package/features/redirects/GetRedirectById/abstractions.d.ts +41 -0
- package/features/redirects/GetRedirectById/abstractions.js +15 -0
- package/features/redirects/GetRedirectById/abstractions.js.map +1 -0
- package/features/redirects/GetRedirectById/feature.d.ts +1 -0
- package/features/redirects/GetRedirectById/feature.js +12 -0
- package/features/redirects/GetRedirectById/feature.js.map +1 -0
- package/features/redirects/GetRedirectById/index.d.ts +1 -9
- package/features/redirects/GetRedirectById/index.js +1 -14
- package/features/redirects/GetRedirectById/index.js.map +1 -1
- package/features/redirects/InvalidateRedirectsCache/InvalidateRedirectsCacheUseCase.d.ts +12 -0
- package/features/redirects/InvalidateRedirectsCache/InvalidateRedirectsCacheUseCase.js +28 -0
- package/features/redirects/InvalidateRedirectsCache/InvalidateRedirectsCacheUseCase.js.map +1 -0
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterCreateHandler.d.ts +9 -0
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterCreateHandler.js +25 -0
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterCreateHandler.js.map +1 -0
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterDeleteHandler.d.ts +9 -0
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterDeleteHandler.js +25 -0
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterDeleteHandler.js.map +1 -0
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterUpdateHandler.d.ts +9 -0
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterUpdateHandler.js +26 -0
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterUpdateHandler.js.map +1 -0
- package/features/redirects/InvalidateRedirectsCache/abstractions.d.ts +15 -0
- package/features/redirects/InvalidateRedirectsCache/abstractions.js +9 -0
- package/features/redirects/InvalidateRedirectsCache/abstractions.js.map +1 -0
- package/features/redirects/InvalidateRedirectsCache/feature.d.ts +1 -0
- package/features/redirects/InvalidateRedirectsCache/feature.js +16 -0
- package/features/redirects/InvalidateRedirectsCache/feature.js.map +1 -0
- package/features/redirects/InvalidateRedirectsCache/index.d.ts +1 -0
- package/features/redirects/InvalidateRedirectsCache/index.js +3 -0
- package/features/redirects/InvalidateRedirectsCache/index.js.map +1 -0
- package/features/redirects/ListRedirects/ListRedirectsRepository.d.ts +16 -0
- package/features/redirects/ListRedirects/ListRedirectsRepository.js +46 -0
- package/features/redirects/ListRedirects/ListRedirectsRepository.js.map +1 -0
- package/features/redirects/ListRedirects/ListRedirectsUseCase.d.ts +12 -0
- package/features/redirects/ListRedirects/ListRedirectsUseCase.js +36 -0
- package/features/redirects/ListRedirects/ListRedirectsUseCase.js.map +1 -0
- package/features/redirects/ListRedirects/abstractions.d.ts +69 -0
- package/features/redirects/ListRedirects/abstractions.js +19 -0
- package/features/redirects/ListRedirects/abstractions.js.map +1 -0
- package/features/redirects/ListRedirects/feature.d.ts +1 -0
- package/features/redirects/ListRedirects/feature.js +12 -0
- package/features/redirects/ListRedirects/feature.js.map +1 -0
- package/features/redirects/ListRedirects/index.d.ts +1 -9
- package/features/redirects/ListRedirects/index.js +1 -14
- package/features/redirects/ListRedirects/index.js.map +1 -1
- package/features/redirects/MoveRedirect/MoveRedirectRepository.d.ts +15 -0
- package/features/redirects/MoveRedirect/MoveRedirectRepository.js +39 -0
- package/features/redirects/MoveRedirect/MoveRedirectRepository.js.map +1 -0
- package/features/redirects/MoveRedirect/MoveRedirectUseCase.d.ts +14 -0
- package/features/redirects/MoveRedirect/MoveRedirectUseCase.js +61 -0
- package/features/redirects/MoveRedirect/MoveRedirectUseCase.js.map +1 -0
- package/features/redirects/MoveRedirect/abstractions.d.ts +64 -0
- package/features/redirects/MoveRedirect/abstractions.js +30 -0
- package/features/redirects/MoveRedirect/abstractions.js.map +1 -0
- package/features/redirects/MoveRedirect/events.d.ts +10 -0
- package/features/redirects/MoveRedirect/events.js +19 -0
- package/features/redirects/MoveRedirect/events.js.map +1 -0
- package/features/redirects/MoveRedirect/feature.d.ts +1 -0
- package/features/redirects/MoveRedirect/feature.js +12 -0
- package/features/redirects/MoveRedirect/feature.js.map +1 -0
- package/features/redirects/MoveRedirect/index.d.ts +1 -16
- package/features/redirects/MoveRedirect/index.js +1 -16
- package/features/redirects/MoveRedirect/index.js.map +1 -1
- package/features/redirects/UpdateRedirect/UpdateRedirectRepository.d.ts +15 -0
- package/features/redirects/UpdateRedirect/UpdateRedirectRepository.js +47 -0
- package/features/redirects/UpdateRedirect/UpdateRedirectRepository.js.map +1 -0
- package/features/redirects/UpdateRedirect/UpdateRedirectUseCase.d.ts +16 -0
- package/features/redirects/UpdateRedirect/UpdateRedirectUseCase.js +66 -0
- package/features/redirects/UpdateRedirect/UpdateRedirectUseCase.js.map +1 -0
- package/features/redirects/UpdateRedirect/abstractions.d.ts +76 -0
- package/features/redirects/UpdateRedirect/abstractions.js +30 -0
- package/features/redirects/UpdateRedirect/abstractions.js.map +1 -0
- package/features/redirects/UpdateRedirect/events.d.ts +10 -0
- package/features/redirects/UpdateRedirect/events.js +19 -0
- package/features/redirects/UpdateRedirect/events.js.map +1 -0
- package/features/redirects/UpdateRedirect/feature.d.ts +1 -0
- package/features/redirects/UpdateRedirect/feature.js +12 -0
- package/features/redirects/UpdateRedirect/feature.js.map +1 -0
- package/features/redirects/UpdateRedirect/index.d.ts +1 -16
- package/features/redirects/UpdateRedirect/index.js +1 -16
- package/features/redirects/UpdateRedirect/index.js.map +1 -1
- package/features/tenantManager/TenantModelExtension.d.ts +8 -0
- package/features/tenantManager/TenantModelExtension.js +36 -0
- package/features/tenantManager/TenantModelExtension.js.map +1 -0
- package/features/tenantManager/feature.d.ts +1 -0
- package/features/tenantManager/feature.js +10 -0
- package/features/tenantManager/feature.js.map +1 -0
- package/graphql/createGraphQL.d.ts +1 -1
- package/graphql/createGraphQL.js +6 -13
- package/graphql/createGraphQL.js.map +1 -1
- package/graphql/nextjs/NextjsGraphQLSchema.d.ts +9 -0
- package/graphql/nextjs/NextjsGraphQLSchema.js +48 -0
- package/graphql/nextjs/NextjsGraphQLSchema.js.map +1 -0
- package/graphql/pages/pages.gql.d.ts +2 -2
- package/graphql/pages/pages.gql.js +164 -85
- package/graphql/pages/pages.gql.js.map +1 -1
- package/graphql/pages/pages.typeDefs.d.ts +1 -1
- package/graphql/pages/pages.typeDefs.js +4 -10
- package/graphql/pages/pages.typeDefs.js.map +1 -1
- package/graphql/redirects/redirects.gql.d.ts +2 -2
- package/graphql/redirects/redirects.gql.js +61 -33
- package/graphql/redirects/redirects.gql.js.map +1 -1
- package/graphql/redirects/redirects.typeDefs.js +5 -10
- package/graphql/redirects/redirects.typeDefs.js.map +1 -1
- package/index.d.ts +1 -3
- package/index.js +81 -14
- package/index.js.map +1 -1
- package/package.json +24 -32
- package/rest/ActiveRedirectDto.js +1 -5
- package/rest/ActiveRedirectRestMapper.d.ts +2 -2
- package/rest/ActiveRedirectRestMapper.js +1 -8
- package/rest/ActiveRedirectRestMapper.js.map +1 -1
- package/rest/getRedirects.d.ts +2 -2
- package/rest/getRedirects.js +10 -15
- package/rest/getRedirects.js.map +1 -1
- package/utils/ensureAuthentication.d.ts +6 -2
- package/utils/ensureAuthentication.js +10 -12
- package/utils/ensureAuthentication.js.map +1 -1
- package/utils/resolve.d.ts +1 -2
- package/utils/resolve.js +4 -20
- package/utils/resolve.js.map +1 -1
- package/context/BaseContext.d.ts +0 -11
- package/context/BaseContext.js +0 -41
- package/context/BaseContext.js.map +0 -1
- package/context/WebsiteBuilder.d.ts +0 -15
- package/context/WebsiteBuilder.js +0 -65
- package/context/WebsiteBuilder.js.map +0 -1
- package/context/pages/PagesStorage.d.ts +0 -33
- package/context/pages/PagesStorage.js +0 -123
- package/context/pages/PagesStorage.js.map +0 -1
- package/context/pages/pages.context.d.ts +0 -11
- package/context/pages/pages.context.js +0 -82
- package/context/pages/pages.context.js.map +0 -1
- package/context/pages/pages.crud.d.ts +0 -3
- package/context/pages/pages.crud.js +0 -208
- package/context/pages/pages.crud.js.map +0 -1
- package/context/pages/pages.types.d.ts +0 -247
- package/context/pages/pages.types.js +0 -7
- package/context/pages/pages.types.js.map +0 -1
- package/context/redirects/RedirectsStorage.d.ts +0 -21
- package/context/redirects/RedirectsStorage.js +0 -88
- package/context/redirects/RedirectsStorage.js.map +0 -1
- package/context/redirects/redirects.context.d.ts +0 -11
- package/context/redirects/redirects.context.js +0 -80
- package/context/redirects/redirects.context.js.map +0 -1
- package/context/redirects/redirects.crud.d.ts +0 -3
- package/context/redirects/redirects.crud.js +0 -116
- package/context/redirects/redirects.crud.js.map +0 -1
- package/context/redirects/redirects.types.d.ts +0 -147
- package/context/redirects/redirects.types.js +0 -7
- package/context/redirects/redirects.types.js.map +0 -1
- package/context/types.d.ts +0 -29
- package/context/types.js +0 -7
- package/context/types.js.map +0 -1
- package/features/pages/CreatePage/CreatePage.d.ts +0 -7
- package/features/pages/CreatePage/CreatePage.js +0 -19
- package/features/pages/CreatePage/CreatePage.js.map +0 -1
- package/features/pages/CreatePage/CreatePageWithEvents.d.ts +0 -9
- package/features/pages/CreatePage/CreatePageWithEvents.js +0 -25
- package/features/pages/CreatePage/CreatePageWithEvents.js.map +0 -1
- package/features/pages/CreatePage/ICreatePage.d.ts +0 -4
- package/features/pages/CreatePage/ICreatePage.js +0 -7
- package/features/pages/CreatePage/ICreatePage.js.map +0 -1
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFrom.d.ts +0 -7
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFrom.js +0 -17
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFrom.js.map +0 -1
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromWithEvents.d.ts +0 -10
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromWithEvents.js +0 -32
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromWithEvents.js.map +0 -1
- package/features/pages/CreatePageRevisionFrom/ICreatePageRevisionFrom.d.ts +0 -4
- package/features/pages/CreatePageRevisionFrom/ICreatePageRevisionFrom.js +0 -7
- package/features/pages/CreatePageRevisionFrom/ICreatePageRevisionFrom.js.map +0 -1
- package/features/pages/DeletePage/DeletePage.d.ts +0 -7
- package/features/pages/DeletePage/DeletePage.js +0 -17
- package/features/pages/DeletePage/DeletePage.js.map +0 -1
- package/features/pages/DeletePage/DeletePageWithEvents.d.ts +0 -10
- package/features/pages/DeletePage/DeletePageWithEvents.js +0 -30
- package/features/pages/DeletePage/DeletePageWithEvents.js.map +0 -1
- package/features/pages/DeletePage/IDeletePage.d.ts +0 -4
- package/features/pages/DeletePage/IDeletePage.js +0 -7
- package/features/pages/DeletePage/IDeletePage.js.map +0 -1
- package/features/pages/DuplicatePage/DuplicatePage.d.ts +0 -9
- package/features/pages/DuplicatePage/DuplicatePage.js +0 -39
- package/features/pages/DuplicatePage/DuplicatePage.js.map +0 -1
- package/features/pages/DuplicatePage/DuplicatePageWithEvents.d.ts +0 -10
- package/features/pages/DuplicatePage/DuplicatePageWithEvents.js +0 -32
- package/features/pages/DuplicatePage/DuplicatePageWithEvents.js.map +0 -1
- package/features/pages/DuplicatePage/IDuplicatePage.d.ts +0 -4
- package/features/pages/DuplicatePage/IDuplicatePage.js +0 -7
- package/features/pages/DuplicatePage/IDuplicatePage.js.map +0 -1
- package/features/pages/GetPageById/GetPageById.d.ts +0 -7
- package/features/pages/GetPageById/GetPageById.js +0 -17
- package/features/pages/GetPageById/GetPageById.js.map +0 -1
- package/features/pages/GetPageById/IGetPageById.d.ts +0 -4
- package/features/pages/GetPageById/IGetPageById.js +0 -7
- package/features/pages/GetPageById/IGetPageById.js.map +0 -1
- package/features/pages/GetPageByPath/GetPageByPath.d.ts +0 -11
- package/features/pages/GetPageByPath/GetPageByPath.js +0 -28
- package/features/pages/GetPageByPath/GetPageByPath.js.map +0 -1
- package/features/pages/GetPageByPath/IGetPageByPath.d.ts +0 -4
- package/features/pages/GetPageByPath/IGetPageByPath.js +0 -7
- package/features/pages/GetPageByPath/IGetPageByPath.js.map +0 -1
- package/features/pages/GetPageRevisions/GetPageRevisions.d.ts +0 -7
- package/features/pages/GetPageRevisions/GetPageRevisions.js +0 -17
- package/features/pages/GetPageRevisions/GetPageRevisions.js.map +0 -1
- package/features/pages/GetPageRevisions/IGetPageById.d.ts +0 -4
- package/features/pages/GetPageRevisions/IGetPageById.js +0 -7
- package/features/pages/GetPageRevisions/IGetPageById.js.map +0 -1
- package/features/pages/ListPages/IListPages.d.ts +0 -17
- package/features/pages/ListPages/IListPages.js +0 -7
- package/features/pages/ListPages/IListPages.js.map +0 -1
- package/features/pages/ListPages/ListPages.d.ts +0 -7
- package/features/pages/ListPages/ListPages.js +0 -17
- package/features/pages/ListPages/ListPages.js.map +0 -1
- package/features/pages/MovePage/IMovePage.d.ts +0 -4
- package/features/pages/MovePage/IMovePage.js +0 -7
- package/features/pages/MovePage/IMovePage.js.map +0 -1
- package/features/pages/MovePage/MovePage.d.ts +0 -7
- package/features/pages/MovePage/MovePage.js +0 -17
- package/features/pages/MovePage/MovePage.js.map +0 -1
- package/features/pages/MovePage/MovePageWithEvents.d.ts +0 -10
- package/features/pages/MovePage/MovePageWithEvents.js +0 -32
- package/features/pages/MovePage/MovePageWithEvents.js.map +0 -1
- package/features/pages/PublishPage/IPublishPage.d.ts +0 -4
- package/features/pages/PublishPage/IPublishPage.js +0 -7
- package/features/pages/PublishPage/IPublishPage.js.map +0 -1
- package/features/pages/PublishPage/PublishPage.d.ts +0 -7
- package/features/pages/PublishPage/PublishPage.js +0 -17
- package/features/pages/PublishPage/PublishPage.js.map +0 -1
- package/features/pages/PublishPage/PublishPageWithEvents.d.ts +0 -10
- package/features/pages/PublishPage/PublishPageWithEvents.js +0 -31
- package/features/pages/PublishPage/PublishPageWithEvents.js.map +0 -1
- package/features/pages/UnpublishPage/IUnpublishPage.d.ts +0 -4
- package/features/pages/UnpublishPage/IUnpublishPage.js +0 -7
- package/features/pages/UnpublishPage/IUnpublishPage.js.map +0 -1
- package/features/pages/UnpublishPage/UnpublishPage.d.ts +0 -7
- package/features/pages/UnpublishPage/UnpublishPage.js +0 -17
- package/features/pages/UnpublishPage/UnpublishPage.js.map +0 -1
- package/features/pages/UnpublishPage/UnpublishPageWithEvents.d.ts +0 -10
- package/features/pages/UnpublishPage/UnpublishPageWithEvents.js +0 -31
- package/features/pages/UnpublishPage/UnpublishPageWithEvents.js.map +0 -1
- package/features/pages/UpdatePage/IUpdatePage.d.ts +0 -4
- package/features/pages/UpdatePage/IUpdatePage.js +0 -7
- package/features/pages/UpdatePage/IUpdatePage.js.map +0 -1
- package/features/pages/UpdatePage/UpdatePage.d.ts +0 -7
- package/features/pages/UpdatePage/UpdatePage.js +0 -20
- package/features/pages/UpdatePage/UpdatePage.js.map +0 -1
- package/features/pages/UpdatePage/UpdatePageWithEvents.d.ts +0 -10
- package/features/pages/UpdatePage/UpdatePageWithEvents.js +0 -40
- package/features/pages/UpdatePage/UpdatePageWithEvents.js.map +0 -1
- package/features/pages/index.d.ts +0 -9
- package/features/pages/index.js +0 -106
- package/features/pages/index.js.map +0 -1
- package/features/redirects/CreateRedirect/CreateRedirectWithEvents.d.ts +0 -9
- package/features/redirects/CreateRedirect/CreateRedirectWithEvents.js +0 -25
- package/features/redirects/CreateRedirect/CreateRedirectWithEvents.js.map +0 -1
- package/features/redirects/CreateRedirect/CreateRevision.d.ts +0 -7
- package/features/redirects/CreateRedirect/CreateRevision.js +0 -19
- package/features/redirects/CreateRedirect/CreateRevision.js.map +0 -1
- package/features/redirects/CreateRedirect/ICreateRedirect.d.ts +0 -4
- package/features/redirects/CreateRedirect/ICreateRedirect.js +0 -7
- package/features/redirects/CreateRedirect/ICreateRedirect.js.map +0 -1
- package/features/redirects/DeleteRedirect/DeleteRedirect.d.ts +0 -7
- package/features/redirects/DeleteRedirect/DeleteRedirect.js +0 -17
- package/features/redirects/DeleteRedirect/DeleteRedirect.js.map +0 -1
- package/features/redirects/DeleteRedirect/DeleteRedirectWithEvents.d.ts +0 -10
- package/features/redirects/DeleteRedirect/DeleteRedirectWithEvents.js +0 -30
- package/features/redirects/DeleteRedirect/DeleteRedirectWithEvents.js.map +0 -1
- package/features/redirects/DeleteRedirect/IDeleteRedirect.d.ts +0 -4
- package/features/redirects/DeleteRedirect/IDeleteRedirect.js +0 -7
- package/features/redirects/DeleteRedirect/IDeleteRedirect.js.map +0 -1
- package/features/redirects/GetActiveRedirects/GetActiveRedirects.d.ts +0 -7
- package/features/redirects/GetActiveRedirects/GetActiveRedirects.js +0 -26
- package/features/redirects/GetActiveRedirects/GetActiveRedirects.js.map +0 -1
- package/features/redirects/GetActiveRedirects/IGetActiveRedirects.d.ts +0 -4
- package/features/redirects/GetActiveRedirects/IGetActiveRedirects.js +0 -7
- package/features/redirects/GetActiveRedirects/IGetActiveRedirects.js.map +0 -1
- package/features/redirects/GetRedirectById/GetRedirectById.d.ts +0 -7
- package/features/redirects/GetRedirectById/GetRedirectById.js +0 -17
- package/features/redirects/GetRedirectById/GetRedirectById.js.map +0 -1
- package/features/redirects/GetRedirectById/IGetRedirectById.d.ts +0 -4
- package/features/redirects/GetRedirectById/IGetRedirectById.js +0 -7
- package/features/redirects/GetRedirectById/IGetRedirectById.js.map +0 -1
- package/features/redirects/InvalidateRedirectsCache.d.ts +0 -7
- package/features/redirects/InvalidateRedirectsCache.js +0 -24
- package/features/redirects/InvalidateRedirectsCache.js.map +0 -1
- package/features/redirects/ListRedirects/IListRedirects.d.ts +0 -17
- package/features/redirects/ListRedirects/IListRedirects.js +0 -7
- package/features/redirects/ListRedirects/IListRedirects.js.map +0 -1
- package/features/redirects/ListRedirects/ListRedirects.d.ts +0 -7
- package/features/redirects/ListRedirects/ListRedirects.js +0 -17
- package/features/redirects/ListRedirects/ListRedirects.js.map +0 -1
- package/features/redirects/MoveRedirect/IMoveRedirect.d.ts +0 -4
- package/features/redirects/MoveRedirect/IMoveRedirect.js +0 -7
- package/features/redirects/MoveRedirect/IMoveRedirect.js.map +0 -1
- package/features/redirects/MoveRedirect/MoveRedirect.d.ts +0 -7
- package/features/redirects/MoveRedirect/MoveRedirect.js +0 -17
- package/features/redirects/MoveRedirect/MoveRedirect.js.map +0 -1
- package/features/redirects/MoveRedirect/MoveRedirectWithEvents.d.ts +0 -10
- package/features/redirects/MoveRedirect/MoveRedirectWithEvents.js +0 -32
- package/features/redirects/MoveRedirect/MoveRedirectWithEvents.js.map +0 -1
- package/features/redirects/UpdateRedirect/IUpdateRedirect.d.ts +0 -4
- package/features/redirects/UpdateRedirect/IUpdateRedirect.js +0 -7
- package/features/redirects/UpdateRedirect/IUpdateRedirect.js.map +0 -1
- package/features/redirects/UpdateRedirect/UpdateRedirect.d.ts +0 -7
- package/features/redirects/UpdateRedirect/UpdateRedirect.js +0 -20
- package/features/redirects/UpdateRedirect/UpdateRedirect.js.map +0 -1
- package/features/redirects/UpdateRedirect/UpdateRedirectWithEvents.d.ts +0 -10
- package/features/redirects/UpdateRedirect/UpdateRedirectWithEvents.js +0 -40
- package/features/redirects/UpdateRedirect/UpdateRedirectWithEvents.js.map +0 -1
- package/features/redirects/index.d.ts +0 -7
- package/features/redirects/index.js +0 -84
- package/features/redirects/index.js.map +0 -1
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { CreateEntryRevisionFromUseCase } from "@webiny/api-headless-cms/features/contentEntry/CreateEntryRevisionFrom/index.js";
|
|
3
|
+
import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById";
|
|
4
|
+
import { PageModel } from "../../../domain/page/abstractions.js";
|
|
5
|
+
import { EntryToPageMapper } from "../../../domain/page/EntryToPageMapper.js";
|
|
6
|
+
import { PageNotFoundError, PagePersistenceError, PageValidationError } from "../../../domain/page/errors.js";
|
|
7
|
+
import { CreatePageRevisionFromRepository as RepositoryAbstraction } from "./abstractions.js";
|
|
8
|
+
class CreatePageRevisionFromRepositoryImpl {
|
|
9
|
+
constructor(createRevisionFrom, getEntryById, pageModel) {
|
|
10
|
+
this.createRevisionFrom = createRevisionFrom;
|
|
11
|
+
this.getEntryById = getEntryById;
|
|
12
|
+
this.pageModel = pageModel;
|
|
13
|
+
}
|
|
14
|
+
async execute(params) {
|
|
15
|
+
// First, get the existing page to validate it 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));
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// Create revision from the existing page
|
|
25
|
+
const result = await this.createRevisionFrom.execute(this.pageModel, params.id, {
|
|
26
|
+
location: getResult.value.location,
|
|
27
|
+
values: {}
|
|
28
|
+
});
|
|
29
|
+
if (result.isFail()) {
|
|
30
|
+
if (result.error.code === "Cms/Entry/ValidationError") {
|
|
31
|
+
return Result.fail(new PageValidationError(result.error.message));
|
|
32
|
+
}
|
|
33
|
+
if (result.error.code === "Cms/Entry/NotFound") {
|
|
34
|
+
return Result.fail(new PageNotFoundError(params.id));
|
|
35
|
+
}
|
|
36
|
+
return Result.fail(new PagePersistenceError(result.error));
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Map CmsEntry to WbPage domain type
|
|
40
|
+
const page = EntryToPageMapper.toPage(result.value);
|
|
41
|
+
return Result.ok(page);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export const CreatePageRevisionFromRepository = RepositoryAbstraction.createImplementation({
|
|
45
|
+
implementation: CreatePageRevisionFromRepositoryImpl,
|
|
46
|
+
dependencies: [CreateEntryRevisionFromUseCase, GetEntryByIdUseCase, PageModel]
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
//# sourceMappingURL=CreatePageRevisionFromRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Result","CreateEntryRevisionFromUseCase","GetEntryByIdUseCase","PageModel","EntryToPageMapper","PageNotFoundError","PagePersistenceError","PageValidationError","CreatePageRevisionFromRepository","RepositoryAbstraction","CreatePageRevisionFromRepositoryImpl","constructor","createRevisionFrom","getEntryById","pageModel","execute","params","getResult","id","isFail","error","code","fail","result","location","value","values","message","page","toPage","ok","createImplementation","implementation","dependencies"],"sources":["CreatePageRevisionFromRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { CreateEntryRevisionFromUseCase } from \"@webiny/api-headless-cms/features/contentEntry/CreateEntryRevisionFrom/index.js\";\nimport { GetEntryByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntryById\";\nimport { PageModel, type WbPage } from \"~/domain/page/abstractions.js\";\nimport { EntryToPageMapper } from \"~/domain/page/EntryToPageMapper.js\";\nimport {\n PageNotFoundError,\n PagePersistenceError,\n PageValidationError\n} from \"~/domain/page/errors.js\";\nimport { CreatePageRevisionFromRepository as RepositoryAbstraction } from \"./abstractions.js\";\n\nclass CreatePageRevisionFromRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private createRevisionFrom: CreateEntryRevisionFromUseCase.Interface,\n private getEntryById: GetEntryByIdUseCase.Interface,\n private pageModel: PageModel.Interface\n ) {}\n\n async execute(params: RepositoryAbstraction.Params): RepositoryAbstraction.Return {\n // First, get the existing page to validate it exists\n const getResult = await this.getEntryById.execute<WbPage>(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 // Create revision from the existing page\n const result = await this.createRevisionFrom.execute(this.pageModel, params.id, {\n location: getResult.value.location,\n values: {}\n });\n\n if (result.isFail()) {\n if (result.error.code === \"Cms/Entry/ValidationError\") {\n return Result.fail(new PageValidationError(result.error.message));\n }\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 // Map CmsEntry to WbPage domain type\n const page = EntryToPageMapper.toPage(result.value);\n return Result.ok(page);\n }\n}\n\nexport const CreatePageRevisionFromRepository = RepositoryAbstraction.createImplementation({\n implementation: CreatePageRevisionFromRepositoryImpl,\n dependencies: [CreateEntryRevisionFromUseCase, GetEntryByIdUseCase, PageModel]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,8BAA8B,QAAQ,iFAAiF;AAChI,SAASC,mBAAmB,QAAQ,6DAA6D;AACjG,SAASC,SAAS;AAClB,SAASC,iBAAiB;AAC1B,SACIC,iBAAiB,EACjBC,oBAAoB,EACpBC,mBAAmB;AAEvB,SAASC,gCAAgC,IAAIC,qBAAqB;AAElE,MAAMC,oCAAoC,CAA4C;EAClFC,WAAWA,CACCC,kBAA4D,EAC5DC,YAA2C,EAC3CC,SAA8B,EACxC;IAAA,KAHUF,kBAA4D,GAA5DA,kBAA4D;IAAA,KAC5DC,YAA2C,GAA3CA,YAA2C;IAAA,KAC3CC,SAA8B,GAA9BA,SAA8B;EACvC;EAEH,MAAMC,OAAOA,CAACC,MAAoC,EAAgC;IAC9E;IACA,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACJ,YAAY,CAACE,OAAO,CAAS,IAAI,CAACD,SAAS,EAAEE,MAAM,CAACE,EAAE,CAAC;IAEpF,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,IAAIF,SAAS,CAACG,KAAK,CAACC,IAAI,KAAK,oBAAoB,EAAE;QAC/C,OAAOrB,MAAM,CAACsB,IAAI,CAAC,IAAIjB,iBAAiB,CAACW,MAAM,CAACE,EAAE,CAAC,CAAC;MACxD;MACA,OAAOlB,MAAM,CAACsB,IAAI,CAAC,IAAIhB,oBAAoB,CAACW,SAAS,CAACG,KAAK,CAAC,CAAC;IACjE;;IAEA;IACA,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACX,kBAAkB,CAACG,OAAO,CAAC,IAAI,CAACD,SAAS,EAAEE,MAAM,CAACE,EAAE,EAAE;MAC5EM,QAAQ,EAAEP,SAAS,CAACQ,KAAK,CAACD,QAAQ;MAClCE,MAAM,EAAE,CAAC;IACb,CAAC,CAAC;IAEF,IAAIH,MAAM,CAACJ,MAAM,CAAC,CAAC,EAAE;MACjB,IAAII,MAAM,CAACH,KAAK,CAACC,IAAI,KAAK,2BAA2B,EAAE;QACnD,OAAOrB,MAAM,CAACsB,IAAI,CAAC,IAAIf,mBAAmB,CAACgB,MAAM,CAACH,KAAK,CAACO,OAAO,CAAC,CAAC;MACrE;MACA,IAAIJ,MAAM,CAACH,KAAK,CAACC,IAAI,KAAK,oBAAoB,EAAE;QAC5C,OAAOrB,MAAM,CAACsB,IAAI,CAAC,IAAIjB,iBAAiB,CAACW,MAAM,CAACE,EAAE,CAAC,CAAC;MACxD;MACA,OAAOlB,MAAM,CAACsB,IAAI,CAAC,IAAIhB,oBAAoB,CAACiB,MAAM,CAACH,KAAK,CAAC,CAAC;IAC9D;;IAEA;IACA,MAAMQ,IAAI,GAAGxB,iBAAiB,CAACyB,MAAM,CAACN,MAAM,CAACE,KAAK,CAAC;IACnD,OAAOzB,MAAM,CAAC8B,EAAE,CAACF,IAAI,CAAC;EAC1B;AACJ;AAEA,OAAO,MAAMpB,gCAAgC,GAAGC,qBAAqB,CAACsB,oBAAoB,CAAC;EACvFC,cAAc,EAAEtB,oCAAoC;EACpDuB,YAAY,EAAE,CAAChC,8BAA8B,EAAEC,mBAAmB,EAAEC,SAAS;AACjF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { EventPublisher as EventPublisherAbstraction } from "@webiny/api-core/features/EventPublisher";
|
|
2
|
+
import { CreatePageRevisionFromUseCase as UseCaseAbstraction, CreatePageRevisionFromRepository } from "./abstractions.js";
|
|
3
|
+
import { GetPageByIdUseCase } from "../../../features/pages/GetPageById/index.js";
|
|
4
|
+
import { WbPermissions } from "../../../domain/permissions.js";
|
|
5
|
+
declare class CreatePageRevisionFromUseCaseImpl 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: CreatePageRevisionFromRepository.Interface);
|
|
11
|
+
execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return;
|
|
12
|
+
}
|
|
13
|
+
export declare const CreatePageRevisionFromUseCase: typeof CreatePageRevisionFromUseCaseImpl & {
|
|
14
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").ICreatePageRevisionFromUseCase>;
|
|
15
|
+
};
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { EventPublisher } from "@webiny/api-core/features/EventPublisher";
|
|
3
|
+
import { CreatePageRevisionFromUseCase as UseCaseAbstraction, CreatePageRevisionFromRepository } from "./abstractions.js";
|
|
4
|
+
import { PageBeforeCreateRevisionFromEvent, PageAfterCreateRevisionFromEvent } from "./events.js";
|
|
5
|
+
import { GetPageByIdUseCase } from "../GetPageById/index.js";
|
|
6
|
+
import { WbPermissions } from "../../../domain/permissions.js";
|
|
7
|
+
import { PageNotAuthorizedError } from "../../../domain/page/errors.js";
|
|
8
|
+
class CreatePageRevisionFromUseCaseImpl {
|
|
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 hasPermission = await this.permissions.canCreate("page");
|
|
17
|
+
if (!hasPermission) {
|
|
18
|
+
return Result.fail(new PageNotAuthorizedError());
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// Verify ownership of the source page
|
|
22
|
+
const getResult = await this.getPageById.execute(params.id);
|
|
23
|
+
if (getResult.isFail()) {
|
|
24
|
+
return getResult;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// Publish before event
|
|
28
|
+
const beforeEvent = new PageBeforeCreateRevisionFromEvent({
|
|
29
|
+
params
|
|
30
|
+
});
|
|
31
|
+
await this.eventPublisher.publish(beforeEvent);
|
|
32
|
+
|
|
33
|
+
// Execute the create revision operation
|
|
34
|
+
const result = await this.repository.execute(params);
|
|
35
|
+
if (result.isFail()) {
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
38
|
+
const page = result.value;
|
|
39
|
+
|
|
40
|
+
// Publish after event
|
|
41
|
+
const afterEvent = new PageAfterCreateRevisionFromEvent({
|
|
42
|
+
page
|
|
43
|
+
});
|
|
44
|
+
await this.eventPublisher.publish(afterEvent);
|
|
45
|
+
return Result.ok(page);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
export const CreatePageRevisionFromUseCase = UseCaseAbstraction.createImplementation({
|
|
49
|
+
implementation: CreatePageRevisionFromUseCaseImpl,
|
|
50
|
+
dependencies: [WbPermissions.Abstraction, EventPublisher, GetPageByIdUseCase, CreatePageRevisionFromRepository]
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
//# sourceMappingURL=CreatePageRevisionFromUseCase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Result","EventPublisher","CreatePageRevisionFromUseCase","UseCaseAbstraction","CreatePageRevisionFromRepository","PageBeforeCreateRevisionFromEvent","PageAfterCreateRevisionFromEvent","GetPageByIdUseCase","WbPermissions","PageNotAuthorizedError","CreatePageRevisionFromUseCaseImpl","constructor","permissions","eventPublisher","getPageById","repository","execute","params","hasPermission","canCreate","fail","getResult","id","isFail","beforeEvent","publish","result","page","value","afterEvent","ok","createImplementation","implementation","dependencies","Abstraction"],"sources":["CreatePageRevisionFromUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/EventPublisher\";\nimport {\n CreatePageRevisionFromUseCase as UseCaseAbstraction,\n CreatePageRevisionFromRepository\n} from \"./abstractions.js\";\nimport { PageBeforeCreateRevisionFromEvent, PageAfterCreateRevisionFromEvent } from \"./events.js\";\nimport { GetPageByIdUseCase } from \"~/features/pages/GetPageById/index.js\";\nimport { WbPermissions } from \"~/domain/permissions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\n\nclass CreatePageRevisionFromUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getPageById: GetPageByIdUseCase.Interface,\n private repository: CreatePageRevisionFromRepository.Interface\n ) {}\n\n async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canCreate(\"page\");\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Verify ownership of the source page\n const getResult = await this.getPageById.execute(params.id);\n if (getResult.isFail()) {\n return getResult;\n }\n\n // Publish before event\n const beforeEvent = new PageBeforeCreateRevisionFromEvent({\n params\n });\n\n await this.eventPublisher.publish(beforeEvent);\n\n // Execute the create revision operation\n const result = await this.repository.execute(params);\n\n if (result.isFail()) {\n return result;\n }\n\n const page = result.value;\n\n // Publish after event\n const afterEvent = new PageAfterCreateRevisionFromEvent({\n page\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return Result.ok(page);\n }\n}\n\nexport const CreatePageRevisionFromUseCase = UseCaseAbstraction.createImplementation({\n implementation: CreatePageRevisionFromUseCaseImpl,\n dependencies: [\n WbPermissions.Abstraction,\n EventPublisher,\n GetPageByIdUseCase,\n CreatePageRevisionFromRepository\n ]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,cAAc,QAEX,0CAA0C;AACjD,SACIC,6BAA6B,IAAIC,kBAAkB,EACnDC,gCAAgC;AAEpC,SAASC,iCAAiC,EAAEC,gCAAgC;AAC5E,SAASC,kBAAkB;AAC3B,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAE/B,MAAMC,iCAAiC,CAAyC;EAC5EC,WAAWA,CACCC,WAAoC,EACpCC,cAAmD,EACnDC,WAAyC,EACzCC,UAAsD,EAChE;IAAA,KAJUH,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,WAAyC,GAAzCA,WAAyC;IAAA,KACzCC,UAAsD,GAAtDA,UAAsD;EAC/D;EAEH,MAAMC,OAAOA,CAACC,MAAiC,EAA6B;IACxE,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACN,WAAW,CAACO,SAAS,CAAC,MAAM,CAAC;IAC9D,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;IAC3D,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOF,SAAS;IACpB;;IAEA;IACA,MAAMG,WAAW,GAAG,IAAInB,iCAAiC,CAAC;MACtDY;IACJ,CAAC,CAAC;IAEF,MAAM,IAAI,CAACJ,cAAc,CAACY,OAAO,CAACD,WAAW,CAAC;;IAE9C;IACA,MAAME,MAAM,GAAG,MAAM,IAAI,CAACX,UAAU,CAACC,OAAO,CAACC,MAAM,CAAC;IAEpD,IAAIS,MAAM,CAACH,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOG,MAAM;IACjB;IAEA,MAAMC,IAAI,GAAGD,MAAM,CAACE,KAAK;;IAEzB;IACA,MAAMC,UAAU,GAAG,IAAIvB,gCAAgC,CAAC;MACpDqB;IACJ,CAAC,CAAC;IAEF,MAAM,IAAI,CAACd,cAAc,CAACY,OAAO,CAACI,UAAU,CAAC;IAE7C,OAAO7B,MAAM,CAAC8B,EAAE,CAACH,IAAI,CAAC;EAC1B;AACJ;AAEA,OAAO,MAAMzB,6BAA6B,GAAGC,kBAAkB,CAAC4B,oBAAoB,CAAC;EACjFC,cAAc,EAAEtB,iCAAiC;EACjDuB,YAAY,EAAE,CACVzB,aAAa,CAAC0B,WAAW,EACzBjC,cAAc,EACdM,kBAAkB,EAClBH,gCAAgC;AAExC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { type Result } from "@webiny/feature/api";
|
|
2
|
+
import type { IEventHandler } from "@webiny/api-core/features/EventPublisher";
|
|
3
|
+
import type { DomainEvent } from "@webiny/api-core/features/EventPublisher";
|
|
4
|
+
import type { WbPage } from "../../../domain/page/abstractions.js";
|
|
5
|
+
import { PageNotFoundError, PagePersistenceError, PageValidationError, PageNotAuthorizedError } from "../../../domain/page/errors.js";
|
|
6
|
+
export interface ICreateWbPageRevisionFromParams {
|
|
7
|
+
id: string;
|
|
8
|
+
}
|
|
9
|
+
export interface ICreatePageRevisionFromRepository {
|
|
10
|
+
execute(params: ICreateWbPageRevisionFromParams): Promise<Result<WbPage, RepositoryError>>;
|
|
11
|
+
}
|
|
12
|
+
export interface ICreatePageRevisionFromRepositoryErrors {
|
|
13
|
+
validation: PageValidationError;
|
|
14
|
+
notFound: PageNotFoundError;
|
|
15
|
+
persistence: PagePersistenceError;
|
|
16
|
+
}
|
|
17
|
+
type RepositoryError = ICreatePageRevisionFromRepositoryErrors[keyof ICreatePageRevisionFromRepositoryErrors];
|
|
18
|
+
export declare const CreatePageRevisionFromRepository: import("@webiny/di").Abstraction<ICreatePageRevisionFromRepository>;
|
|
19
|
+
export declare namespace CreatePageRevisionFromRepository {
|
|
20
|
+
type Interface = ICreatePageRevisionFromRepository;
|
|
21
|
+
type Params = ICreateWbPageRevisionFromParams;
|
|
22
|
+
type Return = Promise<Result<WbPage, RepositoryError>>;
|
|
23
|
+
type Error = RepositoryError;
|
|
24
|
+
}
|
|
25
|
+
export interface ICreatePageRevisionFromUseCase {
|
|
26
|
+
execute(params: ICreateWbPageRevisionFromParams): Promise<Result<WbPage, UseCaseError>>;
|
|
27
|
+
}
|
|
28
|
+
export interface ICreatePageRevisionFromUseCaseErrors {
|
|
29
|
+
notAuthorized: PageNotAuthorizedError;
|
|
30
|
+
validation: PageValidationError;
|
|
31
|
+
notFound: PageNotFoundError;
|
|
32
|
+
persistence: PagePersistenceError;
|
|
33
|
+
}
|
|
34
|
+
type UseCaseError = ICreatePageRevisionFromUseCaseErrors[keyof ICreatePageRevisionFromUseCaseErrors];
|
|
35
|
+
export declare const CreatePageRevisionFromUseCase: import("@webiny/di").Abstraction<ICreatePageRevisionFromUseCase>;
|
|
36
|
+
export declare namespace CreatePageRevisionFromUseCase {
|
|
37
|
+
type Interface = ICreatePageRevisionFromUseCase;
|
|
38
|
+
type Params = ICreateWbPageRevisionFromParams;
|
|
39
|
+
type Return = Promise<Result<WbPage, UseCaseError>>;
|
|
40
|
+
type Error = UseCaseError;
|
|
41
|
+
type Page = WbPage;
|
|
42
|
+
}
|
|
43
|
+
export interface PageBeforeCreateRevisionFromPayload {
|
|
44
|
+
params: ICreateWbPageRevisionFromParams;
|
|
45
|
+
}
|
|
46
|
+
export interface PageAfterCreateRevisionFromPayload {
|
|
47
|
+
page: WbPage;
|
|
48
|
+
}
|
|
49
|
+
export declare const PageBeforeCreateRevisionFromHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<PageBeforeCreateRevisionFromPayload>>>;
|
|
50
|
+
export declare namespace PageBeforeCreateRevisionFromHandler {
|
|
51
|
+
type Interface = IEventHandler<DomainEvent<PageBeforeCreateRevisionFromPayload>>;
|
|
52
|
+
type Event = DomainEvent<PageBeforeCreateRevisionFromPayload>;
|
|
53
|
+
type Page = WbPage;
|
|
54
|
+
}
|
|
55
|
+
export declare const PageAfterCreateRevisionFromHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<PageAfterCreateRevisionFromPayload>>>;
|
|
56
|
+
export declare namespace PageAfterCreateRevisionFromHandler {
|
|
57
|
+
type Interface = IEventHandler<DomainEvent<PageAfterCreateRevisionFromPayload>>;
|
|
58
|
+
type Event = DomainEvent<PageAfterCreateRevisionFromPayload>;
|
|
59
|
+
type Page = WbPage;
|
|
60
|
+
}
|
|
61
|
+
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 CreatePageRevisionFromRepository = createAbstraction("Wb/CreatePageRevisionFromRepository");
|
|
12
|
+
|
|
13
|
+
// ============================================================================
|
|
14
|
+
// Use Case Abstraction
|
|
15
|
+
// ============================================================================
|
|
16
|
+
|
|
17
|
+
export const CreatePageRevisionFromUseCase = createAbstraction("Wb/CreatePageRevisionFromUseCase");
|
|
18
|
+
|
|
19
|
+
// ============================================================================
|
|
20
|
+
// Event Payload Types
|
|
21
|
+
// ============================================================================
|
|
22
|
+
|
|
23
|
+
// ============================================================================
|
|
24
|
+
// Event Handler Abstractions
|
|
25
|
+
// ============================================================================
|
|
26
|
+
|
|
27
|
+
export const PageBeforeCreateRevisionFromHandler = createAbstraction("Wb/PageBeforeCreateRevisionFromHandler");
|
|
28
|
+
export const PageAfterCreateRevisionFromHandler = createAbstraction("Wb/PageAfterCreateRevisionFromHandler");
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=abstractions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createAbstraction","CreatePageRevisionFromRepository","CreatePageRevisionFromUseCase","PageBeforeCreateRevisionFromHandler","PageAfterCreateRevisionFromHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { IEventHandler } from \"@webiny/api-core/features/EventPublisher\";\nimport type { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport {\n PageNotFoundError,\n PagePersistenceError,\n PageValidationError,\n PageNotAuthorizedError\n} from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface ICreateWbPageRevisionFromParams {\n id: string;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface ICreatePageRevisionFromRepository {\n execute(params: ICreateWbPageRevisionFromParams): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface ICreatePageRevisionFromRepositoryErrors {\n validation: PageValidationError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError =\n ICreatePageRevisionFromRepositoryErrors[keyof ICreatePageRevisionFromRepositoryErrors];\n\nexport const CreatePageRevisionFromRepository =\n createAbstraction<ICreatePageRevisionFromRepository>(\"Wb/CreatePageRevisionFromRepository\");\n\nexport namespace CreatePageRevisionFromRepository {\n export type Interface = ICreatePageRevisionFromRepository;\n export type Params = ICreateWbPageRevisionFromParams;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface ICreatePageRevisionFromUseCase {\n execute(params: ICreateWbPageRevisionFromParams): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface ICreatePageRevisionFromUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n validation: PageValidationError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError =\n ICreatePageRevisionFromUseCaseErrors[keyof ICreatePageRevisionFromUseCaseErrors];\n\nexport const CreatePageRevisionFromUseCase = createAbstraction<ICreatePageRevisionFromUseCase>(\n \"Wb/CreatePageRevisionFromUseCase\"\n);\n\nexport namespace CreatePageRevisionFromUseCase {\n export type Interface = ICreatePageRevisionFromUseCase;\n export type Params = ICreateWbPageRevisionFromParams;\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 PageBeforeCreateRevisionFromPayload {\n params: ICreateWbPageRevisionFromParams;\n}\n\nexport interface PageAfterCreateRevisionFromPayload {\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\nexport const PageBeforeCreateRevisionFromHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforeCreateRevisionFromPayload>>\n>(\"Wb/PageBeforeCreateRevisionFromHandler\");\n\nexport namespace PageBeforeCreateRevisionFromHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforeCreateRevisionFromPayload>>;\n export type Event = DomainEvent<PageBeforeCreateRevisionFromPayload>;\n export type Page = WbPage;\n}\n\nexport const PageAfterCreateRevisionFromHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterCreateRevisionFromPayload>>\n>(\"Wb/PageAfterCreateRevisionFromHandler\");\n\nexport namespace PageAfterCreateRevisionFromHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterCreateRevisionFromPayload>>;\n export type Event = DomainEvent<PageAfterCreateRevisionFromPayload>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AAWpE;AACA;AACA;;AAMA;AACA;AACA;;AAeA,OAAO,MAAMC,gCAAgC,GACzCD,iBAAiB,CAAoC,qCAAqC,CAAC;;AAS/F;AACA;AACA;;AAgBA,OAAO,MAAME,6BAA6B,GAAGF,iBAAiB,CAC1D,kCACJ,CAAC;;AAUD;AACA;AACA;;AAUA;AACA;AACA;;AAEA,OAAO,MAAMG,mCAAmC,GAAGH,iBAAiB,CAElE,wCAAwC,CAAC;AAQ3C,OAAO,MAAMI,kCAAkC,GAAGJ,iBAAiB,CAEjE,uCAAuC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
|
|
2
|
+
import type { PageBeforeCreateRevisionFromPayload, PageAfterCreateRevisionFromPayload } from "./abstractions.js";
|
|
3
|
+
export declare class PageBeforeCreateRevisionFromEvent extends DomainEvent<PageBeforeCreateRevisionFromPayload> {
|
|
4
|
+
eventType: "page.beforeCreateRevisionFrom";
|
|
5
|
+
getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<PageBeforeCreateRevisionFromPayload>>>;
|
|
6
|
+
}
|
|
7
|
+
export declare class PageAfterCreateRevisionFromEvent extends DomainEvent<PageAfterCreateRevisionFromPayload> {
|
|
8
|
+
eventType: "page.afterCreateRevisionFrom";
|
|
9
|
+
getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<PageAfterCreateRevisionFromPayload>>>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
|
|
2
|
+
import { PageBeforeCreateRevisionFromHandler, PageAfterCreateRevisionFromHandler } from "./abstractions.js";
|
|
3
|
+
// PageBeforeCreateRevisionFrom Event
|
|
4
|
+
export class PageBeforeCreateRevisionFromEvent extends DomainEvent {
|
|
5
|
+
eventType = "page.beforeCreateRevisionFrom";
|
|
6
|
+
getHandlerAbstraction() {
|
|
7
|
+
return PageBeforeCreateRevisionFromHandler;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// PageAfterCreateRevisionFrom Event
|
|
12
|
+
export class PageAfterCreateRevisionFromEvent extends DomainEvent {
|
|
13
|
+
eventType = "page.afterCreateRevisionFrom";
|
|
14
|
+
getHandlerAbstraction() {
|
|
15
|
+
return PageAfterCreateRevisionFromHandler;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DomainEvent","PageBeforeCreateRevisionFromHandler","PageAfterCreateRevisionFromHandler","PageBeforeCreateRevisionFromEvent","eventType","getHandlerAbstraction","PageAfterCreateRevisionFromEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport {\n PageBeforeCreateRevisionFromHandler,\n PageAfterCreateRevisionFromHandler\n} from \"./abstractions.js\";\nimport type {\n PageBeforeCreateRevisionFromPayload,\n PageAfterCreateRevisionFromPayload\n} from \"./abstractions.js\";\n\n// PageBeforeCreateRevisionFrom Event\nexport class PageBeforeCreateRevisionFromEvent extends DomainEvent<PageBeforeCreateRevisionFromPayload> {\n eventType = \"page.beforeCreateRevisionFrom\" as const;\n\n getHandlerAbstraction() {\n return PageBeforeCreateRevisionFromHandler;\n }\n}\n\n// PageAfterCreateRevisionFrom Event\nexport class PageAfterCreateRevisionFromEvent extends DomainEvent<PageAfterCreateRevisionFromPayload> {\n eventType = \"page.afterCreateRevisionFrom\" as const;\n\n getHandlerAbstraction() {\n return PageAfterCreateRevisionFromHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,0CAA0C;AACtE,SACIC,mCAAmC,EACnCC,kCAAkC;AAOtC;AACA,OAAO,MAAMC,iCAAiC,SAASH,WAAW,CAAsC;EACpGI,SAAS,GAAG,+BAA+B;EAE3CC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,mCAAmC;EAC9C;AACJ;;AAEA;AACA,OAAO,MAAMK,gCAAgC,SAASN,WAAW,CAAqC;EAClGI,SAAS,GAAG,8BAA8B;EAE1CC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,kCAAkC;EAC7C;AACJ","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const CreatePageRevisionFromFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { CreatePageRevisionFromRepository } from "./CreatePageRevisionFromRepository.js";
|
|
3
|
+
import { CreatePageRevisionFromUseCase } from "./CreatePageRevisionFromUseCase.js";
|
|
4
|
+
export const CreatePageRevisionFromFeature = createFeature({
|
|
5
|
+
name: "WebsiteBuilder/CreatePageRevisionFrom",
|
|
6
|
+
register(container) {
|
|
7
|
+
container.register(CreatePageRevisionFromRepository).inSingletonScope();
|
|
8
|
+
container.register(CreatePageRevisionFromUseCase);
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createFeature","CreatePageRevisionFromRepository","CreatePageRevisionFromUseCase","CreatePageRevisionFromFeature","name","register","container","inSingletonScope"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { CreatePageRevisionFromRepository } from \"./CreatePageRevisionFromRepository.js\";\nimport { CreatePageRevisionFromUseCase } from \"./CreatePageRevisionFromUseCase.js\";\n\nexport const CreatePageRevisionFromFeature = createFeature({\n name: \"WebsiteBuilder/CreatePageRevisionFrom\",\n register(container) {\n container.register(CreatePageRevisionFromRepository).inSingletonScope();\n container.register(CreatePageRevisionFromUseCase);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,gCAAgC;AACzC,SAASC,6BAA6B;AAEtC,OAAO,MAAMC,6BAA6B,GAAGH,aAAa,CAAC;EACvDI,IAAI,EAAE,uCAAuC;EAC7CC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACJ,gCAAgC,CAAC,CAACM,gBAAgB,CAAC,CAAC;IACvED,SAAS,CAACD,QAAQ,CAACH,6BAA6B,CAAC;EACrD;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,16 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { CreatePageRevisionFromWithEvents } from "./CreatePageRevisionFromWithEvents";
|
|
3
|
-
import type { OnPageAfterCreateRevisionFromTopicParams, OnPageBeforeCreateRevisionFromTopicParams, WbPagesStorageOperations } from "../../../context/pages/pages.types";
|
|
4
|
-
export interface CreatePageRevisionFromUseCasesTopics {
|
|
5
|
-
onPageBeforeCreateRevisionFrom: Topic<OnPageBeforeCreateRevisionFromTopicParams>;
|
|
6
|
-
onPageAfterCreateRevisionFrom: Topic<OnPageAfterCreateRevisionFromTopicParams>;
|
|
7
|
-
}
|
|
8
|
-
interface CreatePageRevisionFromUseCasesParams {
|
|
9
|
-
createRevisionFromOperation: WbPagesStorageOperations["createRevisionFrom"];
|
|
10
|
-
getOperation: WbPagesStorageOperations["getById"];
|
|
11
|
-
topics: CreatePageRevisionFromUseCasesTopics;
|
|
12
|
-
}
|
|
13
|
-
export declare const getCreatePageRevisionFromUseCase: (params: CreatePageRevisionFromUseCasesParams) => {
|
|
14
|
-
createPageRevisionFromUseCase: CreatePageRevisionFromWithEvents;
|
|
15
|
-
};
|
|
16
|
-
export {};
|
|
1
|
+
export { PageAfterCreateRevisionFromHandler, PageBeforeCreateRevisionFromHandler, CreatePageRevisionFromUseCase } from "./abstractions.js";
|
|
@@ -1,18 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.getCreatePageRevisionFromUseCase = void 0;
|
|
7
|
-
var _CreatePageRevisionFrom = require("./CreatePageRevisionFrom");
|
|
8
|
-
var _CreatePageRevisionFromWithEvents = require("./CreatePageRevisionFromWithEvents");
|
|
9
|
-
const getCreatePageRevisionFromUseCase = params => {
|
|
10
|
-
const createPageRevisionFrom = new _CreatePageRevisionFrom.CreatePageRevisionFrom(params.createRevisionFromOperation);
|
|
11
|
-
const createPageRevisionFromUseCase = new _CreatePageRevisionFromWithEvents.CreatePageRevisionFromWithEvents(params.topics, params.getOperation, createPageRevisionFrom);
|
|
12
|
-
return {
|
|
13
|
-
createPageRevisionFromUseCase
|
|
14
|
-
};
|
|
15
|
-
};
|
|
16
|
-
exports.getCreatePageRevisionFromUseCase = getCreatePageRevisionFromUseCase;
|
|
1
|
+
export { PageAfterCreateRevisionFromHandler, PageBeforeCreateRevisionFromHandler, CreatePageRevisionFromUseCase } from "./abstractions.js";
|
|
17
2
|
|
|
18
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["PageAfterCreateRevisionFromHandler","PageBeforeCreateRevisionFromHandler","CreatePageRevisionFromUseCase"],"sources":["index.ts"],"sourcesContent":["export {\n PageAfterCreateRevisionFromHandler,\n PageBeforeCreateRevisionFromHandler,\n CreatePageRevisionFromUseCase\n} from \"./abstractions.js\";\n"],"mappings":"AAAA,SACIA,kCAAkC,EAClCC,mCAAmC,EACnCC,6BAA6B","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { DeleteEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/DeleteEntry";
|
|
2
|
+
import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById";
|
|
3
|
+
import { DeletePageRepository as RepositoryAbstraction } from "./abstractions.js";
|
|
4
|
+
import { PageModel } from "../../../domain/page/abstractions.js";
|
|
5
|
+
declare class DeletePageRepositoryImpl implements RepositoryAbstraction.Interface {
|
|
6
|
+
private deleteEntry;
|
|
7
|
+
private getEntryById;
|
|
8
|
+
private pageModel;
|
|
9
|
+
constructor(deleteEntry: DeleteEntryUseCase.Interface, getEntryById: GetEntryByIdUseCase.Interface, pageModel: PageModel.Interface);
|
|
10
|
+
execute(params: RepositoryAbstraction.Params): RepositoryAbstraction.Return;
|
|
11
|
+
}
|
|
12
|
+
export declare const DeletePageRepository: typeof DeletePageRepositoryImpl & {
|
|
13
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IDeletePageRepository>;
|
|
14
|
+
};
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { DeleteEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/DeleteEntry";
|
|
3
|
+
import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById";
|
|
4
|
+
import { DeletePageRepository as RepositoryAbstraction } from "./abstractions.js";
|
|
5
|
+
import { PageModel } from "../../../domain/page/abstractions.js";
|
|
6
|
+
import { PageNotFoundError, PagePersistenceError } from "../../../domain/page/errors.js";
|
|
7
|
+
class DeletePageRepositoryImpl {
|
|
8
|
+
constructor(deleteEntry, getEntryById, pageModel) {
|
|
9
|
+
this.deleteEntry = deleteEntry;
|
|
10
|
+
this.getEntryById = getEntryById;
|
|
11
|
+
this.pageModel = pageModel;
|
|
12
|
+
}
|
|
13
|
+
async execute(params) {
|
|
14
|
+
// First, validate the page exists
|
|
15
|
+
const getResult = await this.getEntryById.execute(this.pageModel, params.id);
|
|
16
|
+
if (getResult.isFail()) {
|
|
17
|
+
if (getResult.error.code === "Cms/Entry/NotFound") {
|
|
18
|
+
return Result.fail(new PageNotFoundError(params.id));
|
|
19
|
+
}
|
|
20
|
+
return Result.fail(new PagePersistenceError(getResult.error));
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// Delete the entry
|
|
24
|
+
const result = await this.deleteEntry.execute(this.pageModel, params.id);
|
|
25
|
+
if (result.isFail()) {
|
|
26
|
+
if (result.error.code === "Cms/Entry/NotFound") {
|
|
27
|
+
return Result.fail(new PageNotFoundError(params.id));
|
|
28
|
+
}
|
|
29
|
+
return Result.fail(new PagePersistenceError(result.error));
|
|
30
|
+
}
|
|
31
|
+
return Result.ok();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export const DeletePageRepository = RepositoryAbstraction.createImplementation({
|
|
35
|
+
implementation: DeletePageRepositoryImpl,
|
|
36
|
+
dependencies: [DeleteEntryUseCase, GetEntryByIdUseCase, PageModel]
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
//# sourceMappingURL=DeletePageRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Result","DeleteEntryUseCase","GetEntryByIdUseCase","DeletePageRepository","RepositoryAbstraction","PageModel","PageNotFoundError","PagePersistenceError","DeletePageRepositoryImpl","constructor","deleteEntry","getEntryById","pageModel","execute","params","getResult","id","isFail","error","code","fail","result","ok","createImplementation","implementation","dependencies"],"sources":["DeletePageRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { DeleteEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/DeleteEntry\";\nimport { GetEntryByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntryById\";\nimport { DeletePageRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { PageModel } from \"~/domain/page/abstractions.js\";\nimport { PageNotFoundError, PagePersistenceError } from \"~/domain/page/errors.js\";\n\nclass DeletePageRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private deleteEntry: DeleteEntryUseCase.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 // Delete the entry\n const result = await this.deleteEntry.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 return Result.ok();\n }\n}\n\nexport const DeletePageRepository = RepositoryAbstraction.createImplementation({\n implementation: DeletePageRepositoryImpl,\n dependencies: [DeleteEntryUseCase, GetEntryByIdUseCase, PageModel]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,kBAAkB,QAAQ,4DAA4D;AAC/F,SAASC,mBAAmB,QAAQ,6DAA6D;AACjG,SAASC,oBAAoB,IAAIC,qBAAqB;AACtD,SAASC,SAAS;AAClB,SAASC,iBAAiB,EAAEC,oBAAoB;AAEhD,MAAMC,wBAAwB,CAA4C;EACtEC,WAAWA,CACCC,WAAyC,EACzCC,YAA2C,EAC3CC,SAA8B,EACxC;IAAA,KAHUF,WAAyC,GAAzCA,WAAyC;IAAA,KACzCC,YAA2C,GAA3CA,YAA2C;IAAA,KAC3CC,SAA8B,GAA9BA,SAA8B;EACvC;EAEH,MAAMC,OAAOA,CAACC,MAAoC,EAAgC;IAC9E;IACA,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACJ,YAAY,CAACE,OAAO,CAAC,IAAI,CAACD,SAAS,EAAEE,MAAM,CAACE,EAAE,CAAC;IAE5E,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,IAAIF,SAAS,CAACG,KAAK,CAACC,IAAI,KAAK,oBAAoB,EAAE;QAC/C,OAAOnB,MAAM,CAACoB,IAAI,CAAC,IAAId,iBAAiB,CAACQ,MAAM,CAACE,EAAE,CAAC,CAAC;MACxD;MACA,OAAOhB,MAAM,CAACoB,IAAI,CAAC,IAAIb,oBAAoB,CAACQ,SAAS,CAACG,KAAK,CAAC,CAAC;IACjE;;IAEA;IACA,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACX,WAAW,CAACG,OAAO,CAAC,IAAI,CAACD,SAAS,EAAEE,MAAM,CAACE,EAAE,CAAC;IAExE,IAAIK,MAAM,CAACJ,MAAM,CAAC,CAAC,EAAE;MACjB,IAAII,MAAM,CAACH,KAAK,CAACC,IAAI,KAAK,oBAAoB,EAAE;QAC5C,OAAOnB,MAAM,CAACoB,IAAI,CAAC,IAAId,iBAAiB,CAACQ,MAAM,CAACE,EAAE,CAAC,CAAC;MACxD;MACA,OAAOhB,MAAM,CAACoB,IAAI,CAAC,IAAIb,oBAAoB,CAACc,MAAM,CAACH,KAAK,CAAC,CAAC;IAC9D;IAEA,OAAOlB,MAAM,CAACsB,EAAE,CAAC,CAAC;EACtB;AACJ;AAEA,OAAO,MAAMnB,oBAAoB,GAAGC,qBAAqB,CAACmB,oBAAoB,CAAC;EAC3EC,cAAc,EAAEhB,wBAAwB;EACxCiB,YAAY,EAAE,CAACxB,kBAAkB,EAAEC,mBAAmB,EAAEG,SAAS;AACrE,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { EventPublisher as EventPublisherAbstraction } from "@webiny/api-core/features/EventPublisher";
|
|
2
|
+
import { DeletePageUseCase as UseCaseAbstraction, DeletePageRepository } from "./abstractions.js";
|
|
3
|
+
import { GetPageByIdUseCase } from "../../../features/pages/GetPageById/index.js";
|
|
4
|
+
import { WbPermissions } from "../../../domain/permissions.js";
|
|
5
|
+
declare class DeletePageUseCaseImpl 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: DeletePageRepository.Interface);
|
|
11
|
+
execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return;
|
|
12
|
+
}
|
|
13
|
+
export declare const DeletePageUseCase: typeof DeletePageUseCaseImpl & {
|
|
14
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IDeletePageUseCase>;
|
|
15
|
+
};
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { EventPublisher } from "@webiny/api-core/features/EventPublisher";
|
|
3
|
+
import { DeletePageUseCase as UseCaseAbstraction, DeletePageRepository } from "./abstractions.js";
|
|
4
|
+
import { PageBeforeDeleteEvent, PageAfterDeleteEvent } from "./events.js";
|
|
5
|
+
import { GetPageByIdUseCase } from "../GetPageById/index.js";
|
|
6
|
+
import { WbPermissions } from "../../../domain/permissions.js";
|
|
7
|
+
import { PageNotAuthorizedError } from "../../../domain/page/errors.js";
|
|
8
|
+
class DeletePageUseCaseImpl {
|
|
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
|
+
// Get the page first to include in events and for item-level permission check
|
|
17
|
+
const getResult = await this.getPageById.execute(params.id);
|
|
18
|
+
if (getResult.isFail()) {
|
|
19
|
+
return Result.fail(getResult.error);
|
|
20
|
+
}
|
|
21
|
+
const page = getResult.value;
|
|
22
|
+
const canDelete = await this.permissions.canDelete("page", page);
|
|
23
|
+
if (!canDelete) {
|
|
24
|
+
return Result.fail(new PageNotAuthorizedError());
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// Publish before delete event
|
|
28
|
+
const beforeEvent = new PageBeforeDeleteEvent({
|
|
29
|
+
page
|
|
30
|
+
});
|
|
31
|
+
await this.eventPublisher.publish(beforeEvent);
|
|
32
|
+
|
|
33
|
+
// Execute the delete operation
|
|
34
|
+
const result = await this.repository.execute(params);
|
|
35
|
+
if (result.isFail()) {
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Publish after delete event
|
|
40
|
+
const afterEvent = new PageAfterDeleteEvent({
|
|
41
|
+
page
|
|
42
|
+
});
|
|
43
|
+
await this.eventPublisher.publish(afterEvent);
|
|
44
|
+
return Result.ok();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
export const DeletePageUseCase = UseCaseAbstraction.createImplementation({
|
|
48
|
+
implementation: DeletePageUseCaseImpl,
|
|
49
|
+
dependencies: [WbPermissions.Abstraction, EventPublisher, GetPageByIdUseCase, DeletePageRepository]
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
//# sourceMappingURL=DeletePageUseCase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Result","EventPublisher","DeletePageUseCase","UseCaseAbstraction","DeletePageRepository","PageBeforeDeleteEvent","PageAfterDeleteEvent","GetPageByIdUseCase","WbPermissions","PageNotAuthorizedError","DeletePageUseCaseImpl","constructor","permissions","eventPublisher","getPageById","repository","execute","params","getResult","id","isFail","fail","error","page","value","canDelete","beforeEvent","publish","result","afterEvent","ok","createImplementation","implementation","dependencies","Abstraction"],"sources":["DeletePageUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/EventPublisher\";\nimport { DeletePageUseCase as UseCaseAbstraction, DeletePageRepository } from \"./abstractions.js\";\nimport { PageBeforeDeleteEvent, PageAfterDeleteEvent } from \"./events.js\";\nimport { GetPageByIdUseCase } from \"~/features/pages/GetPageById/index.js\";\nimport { WbPermissions } from \"~/domain/permissions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\n\nclass DeletePageUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getPageById: GetPageByIdUseCase.Interface,\n private repository: DeletePageRepository.Interface\n ) {}\n\n 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 PageBeforeDeleteEvent({\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 PageAfterDeleteEvent({\n page\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return Result.ok();\n }\n}\n\nexport const DeletePageUseCase = UseCaseAbstraction.createImplementation({\n implementation: DeletePageUseCaseImpl,\n dependencies: [\n WbPermissions.Abstraction,\n EventPublisher,\n GetPageByIdUseCase,\n DeletePageRepository\n ]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,cAAc,QAEX,0CAA0C;AACjD,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,MAAiC,EAA6B;IACxE;IACA,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACJ,WAAW,CAACE,OAAO,CAACC,MAAM,CAACE,EAAE,CAAC;IAE3D,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOpB,MAAM,CAACqB,IAAI,CAACH,SAAS,CAACI,KAAK,CAAC;IACvC;IAEA,MAAMC,IAAI,GAAGL,SAAS,CAACM,KAAK;IAE5B,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACb,WAAW,CAACa,SAAS,CAAC,MAAM,EAAEF,IAAI,CAAC;IAChE,IAAI,CAACE,SAAS,EAAE;MACZ,OAAOzB,MAAM,CAACqB,IAAI,CAAC,IAAIZ,sBAAsB,CAAC,CAAC,CAAC;IACpD;;IAEA;IACA,MAAMiB,WAAW,GAAG,IAAIrB,qBAAqB,CAAC;MAC1CkB;IACJ,CAAC,CAAC;IAEF,MAAM,IAAI,CAACV,cAAc,CAACc,OAAO,CAACD,WAAW,CAAC;;IAE9C;IACA,MAAME,MAAM,GAAG,MAAM,IAAI,CAACb,UAAU,CAACC,OAAO,CAACC,MAAM,CAAC;IAEpD,IAAIW,MAAM,CAACR,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOQ,MAAM;IACjB;;IAEA;IACA,MAAMC,UAAU,GAAG,IAAIvB,oBAAoB,CAAC;MACxCiB;IACJ,CAAC,CAAC;IAEF,MAAM,IAAI,CAACV,cAAc,CAACc,OAAO,CAACE,UAAU,CAAC;IAE7C,OAAO7B,MAAM,CAAC8B,EAAE,CAAC,CAAC;EACtB;AACJ;AAEA,OAAO,MAAM5B,iBAAiB,GAAGC,kBAAkB,CAAC4B,oBAAoB,CAAC;EACrEC,cAAc,EAAEtB,qBAAqB;EACrCuB,YAAY,EAAE,CACVzB,aAAa,CAAC0B,WAAW,EACzBjC,cAAc,EACdM,kBAAkB,EAClBH,oBAAoB;AAE5B,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { type Result } from "@webiny/feature/api";
|
|
2
|
+
import type { IEventHandler } from "@webiny/api-core/features/EventPublisher";
|
|
3
|
+
import type { DomainEvent } from "@webiny/api-core/features/EventPublisher";
|
|
4
|
+
import type { WbPage } from "../../../domain/page/abstractions.js";
|
|
5
|
+
import { PageNotFoundError, PagePersistenceError, PageNotAuthorizedError } from "../../../domain/page/errors.js";
|
|
6
|
+
export interface IDeleteWbPageParams {
|
|
7
|
+
id: string;
|
|
8
|
+
}
|
|
9
|
+
export interface IDeletePageRepository {
|
|
10
|
+
execute(params: IDeleteWbPageParams): Promise<Result<void, RepositoryError>>;
|
|
11
|
+
}
|
|
12
|
+
export interface IDeletePageRepositoryErrors {
|
|
13
|
+
notFound: PageNotFoundError;
|
|
14
|
+
persistence: PagePersistenceError;
|
|
15
|
+
}
|
|
16
|
+
type RepositoryError = IDeletePageRepositoryErrors[keyof IDeletePageRepositoryErrors];
|
|
17
|
+
export declare const DeletePageRepository: import("@webiny/di").Abstraction<IDeletePageRepository>;
|
|
18
|
+
export declare namespace DeletePageRepository {
|
|
19
|
+
type Interface = IDeletePageRepository;
|
|
20
|
+
type Params = IDeleteWbPageParams;
|
|
21
|
+
type Return = Promise<Result<void, RepositoryError>>;
|
|
22
|
+
type Error = RepositoryError;
|
|
23
|
+
}
|
|
24
|
+
export interface IDeletePageUseCase {
|
|
25
|
+
execute(params: IDeleteWbPageParams): Promise<Result<void, UseCaseError>>;
|
|
26
|
+
}
|
|
27
|
+
export interface IDeletePageUseCaseErrors {
|
|
28
|
+
notAuthorized: PageNotAuthorizedError;
|
|
29
|
+
notFound: PageNotFoundError;
|
|
30
|
+
persistence: PagePersistenceError;
|
|
31
|
+
}
|
|
32
|
+
type UseCaseError = IDeletePageUseCaseErrors[keyof IDeletePageUseCaseErrors];
|
|
33
|
+
export declare const DeletePageUseCase: import("@webiny/di").Abstraction<IDeletePageUseCase>;
|
|
34
|
+
export declare namespace DeletePageUseCase {
|
|
35
|
+
type Interface = IDeletePageUseCase;
|
|
36
|
+
type Params = IDeleteWbPageParams;
|
|
37
|
+
type Return = Promise<Result<void, UseCaseError>>;
|
|
38
|
+
type Error = UseCaseError;
|
|
39
|
+
}
|
|
40
|
+
export interface PageBeforeDeletePayload {
|
|
41
|
+
page: WbPage;
|
|
42
|
+
}
|
|
43
|
+
export interface PageAfterDeletePayload {
|
|
44
|
+
page: WbPage;
|
|
45
|
+
}
|
|
46
|
+
export declare const PageBeforeDeleteHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<PageBeforeDeletePayload>>>;
|
|
47
|
+
export declare namespace PageBeforeDeleteHandler {
|
|
48
|
+
type Interface = IEventHandler<DomainEvent<PageBeforeDeletePayload>>;
|
|
49
|
+
type Event = DomainEvent<PageBeforeDeletePayload>;
|
|
50
|
+
type Page = WbPage;
|
|
51
|
+
}
|
|
52
|
+
export declare const PageAfterDeleteHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<PageAfterDeletePayload>>>;
|
|
53
|
+
export declare namespace PageAfterDeleteHandler {
|
|
54
|
+
type Interface = IEventHandler<DomainEvent<PageAfterDeletePayload>>;
|
|
55
|
+
type Event = DomainEvent<PageAfterDeletePayload>;
|
|
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 DeletePageRepository = createAbstraction("Wb/DeletePageRepository");
|
|
12
|
+
|
|
13
|
+
// ============================================================================
|
|
14
|
+
// Use Case Abstraction
|
|
15
|
+
// ============================================================================
|
|
16
|
+
|
|
17
|
+
export const DeletePageUseCase = createAbstraction("Wb/DeletePageUseCase");
|
|
18
|
+
|
|
19
|
+
// ============================================================================
|
|
20
|
+
// Event Payload Types
|
|
21
|
+
// ============================================================================
|
|
22
|
+
|
|
23
|
+
// ============================================================================
|
|
24
|
+
// Event Handler Abstractions
|
|
25
|
+
// ============================================================================
|
|
26
|
+
|
|
27
|
+
export const PageBeforeDeleteHandler = createAbstraction("Wb/PageBeforeDeleteHandler");
|
|
28
|
+
export const PageAfterDeleteHandler = createAbstraction("Wb/PageAfterDeleteHandler");
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=abstractions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createAbstraction","DeletePageRepository","DeletePageUseCase","PageBeforeDeleteHandler","PageAfterDeleteHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { IEventHandler } from \"@webiny/api-core/features/EventPublisher\";\nimport type { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\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 IDeleteWbPageParams {\n id: string;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IDeletePageRepository {\n execute(params: IDeleteWbPageParams): Promise<Result<void, RepositoryError>>;\n}\n\nexport interface IDeletePageRepositoryErrors {\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IDeletePageRepositoryErrors[keyof IDeletePageRepositoryErrors];\n\nexport const DeletePageRepository =\n createAbstraction<IDeletePageRepository>(\"Wb/DeletePageRepository\");\n\nexport namespace DeletePageRepository {\n export type Interface = IDeletePageRepository;\n export type Params = IDeleteWbPageParams;\n export type Return = Promise<Result<void, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IDeletePageUseCase {\n execute(params: IDeleteWbPageParams): Promise<Result<void, UseCaseError>>;\n}\n\nexport interface IDeletePageUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IDeletePageUseCaseErrors[keyof IDeletePageUseCaseErrors];\n\nexport const DeletePageUseCase = createAbstraction<IDeletePageUseCase>(\"Wb/DeletePageUseCase\");\n\nexport namespace DeletePageUseCase {\n export type Interface = IDeletePageUseCase;\n export type Params = IDeleteWbPageParams;\n export type Return = Promise<Result<void, UseCaseError>>;\n export type Error = UseCaseError;\n}\n\n// ============================================================================\n// Event Payload Types\n// ============================================================================\n\nexport interface PageBeforeDeletePayload {\n page: WbPage;\n}\n\nexport interface PageAfterDeletePayload {\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\nexport const PageBeforeDeleteHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforeDeletePayload>>\n>(\"Wb/PageBeforeDeleteHandler\");\n\nexport namespace PageBeforeDeleteHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforeDeletePayload>>;\n export type Event = DomainEvent<PageBeforeDeletePayload>;\n export type Page = WbPage;\n}\n\nexport const PageAfterDeleteHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterDeletePayload>>\n>(\"Wb/PageAfterDeleteHandler\");\n\nexport namespace PageAfterDeleteHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterDeletePayload>>;\n export type Event = DomainEvent<PageAfterDeletePayload>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AAUpE;AACA;AACA;;AAMA;AACA;AACA;;AAaA,OAAO,MAAMC,oBAAoB,GAC7BD,iBAAiB,CAAwB,yBAAyB,CAAC;;AASvE;AACA;AACA;;AAcA,OAAO,MAAME,iBAAiB,GAAGF,iBAAiB,CAAqB,sBAAsB,CAAC;;AAS9F;AACA;AACA;;AAUA;AACA;AACA;;AAEA,OAAO,MAAMG,uBAAuB,GAAGH,iBAAiB,CAEtD,4BAA4B,CAAC;AAQ/B,OAAO,MAAMI,sBAAsB,GAAGJ,iBAAiB,CAErD,2BAA2B,CAAC","ignoreList":[]}
|