@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,26 @@
|
|
|
1
|
+
import { createImplementation } from "@webiny/feature/api";
|
|
2
|
+
import { RedirectAfterUpdateHandler } from "../UpdateRedirect/index.js";
|
|
3
|
+
import { InvalidateRedirectsCacheUseCase } from "./abstractions.js";
|
|
4
|
+
class RedirectAfterUpdateHandlerImpl {
|
|
5
|
+
constructor(invalidateCache) {
|
|
6
|
+
this.invalidateCache = invalidateCache;
|
|
7
|
+
}
|
|
8
|
+
async handle(event) {
|
|
9
|
+
const {
|
|
10
|
+
redirect,
|
|
11
|
+
original
|
|
12
|
+
} = event.payload;
|
|
13
|
+
|
|
14
|
+
// Invalidate cache if any redirect-related field changed or isEnabled changed
|
|
15
|
+
if (redirect.redirectFrom !== original.redirectFrom || redirect.redirectTo !== original.redirectTo || redirect.isEnabled !== original.isEnabled) {
|
|
16
|
+
await this.invalidateCache.execute();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export const RedirectAfterUpdateCacheHandler = createImplementation({
|
|
21
|
+
abstraction: RedirectAfterUpdateHandler,
|
|
22
|
+
implementation: RedirectAfterUpdateHandlerImpl,
|
|
23
|
+
dependencies: [InvalidateRedirectsCacheUseCase]
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
//# sourceMappingURL=RedirectAfterUpdateHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createImplementation","RedirectAfterUpdateHandler","InvalidateRedirectsCacheUseCase","RedirectAfterUpdateHandlerImpl","constructor","invalidateCache","handle","event","redirect","original","payload","redirectFrom","redirectTo","isEnabled","execute","RedirectAfterUpdateCacheHandler","abstraction","implementation","dependencies"],"sources":["RedirectAfterUpdateHandler.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/feature/api\";\nimport { RedirectAfterUpdateHandler } from \"~/features/redirects/UpdateRedirect/index.js\";\nimport { InvalidateRedirectsCacheUseCase } from \"./abstractions.js\";\n\nclass RedirectAfterUpdateHandlerImpl implements RedirectAfterUpdateHandler.Interface {\n constructor(private invalidateCache: InvalidateRedirectsCacheUseCase.Interface) {}\n\n async handle(event: RedirectAfterUpdateHandler.Event): Promise<void> {\n const { redirect, original } = event.payload;\n\n // Invalidate cache if any redirect-related field changed or isEnabled changed\n if (\n redirect.redirectFrom !== original.redirectFrom ||\n redirect.redirectTo !== original.redirectTo ||\n redirect.isEnabled !== original.isEnabled\n ) {\n await this.invalidateCache.execute();\n }\n }\n}\n\nexport const RedirectAfterUpdateCacheHandler = createImplementation({\n abstraction: RedirectAfterUpdateHandler,\n implementation: RedirectAfterUpdateHandlerImpl,\n dependencies: [InvalidateRedirectsCacheUseCase]\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,qBAAqB;AAC1D,SAASC,0BAA0B;AACnC,SAASC,+BAA+B;AAExC,MAAMC,8BAA8B,CAAiD;EACjFC,WAAWA,CAASC,eAA0D,EAAE;IAAA,KAA5DA,eAA0D,GAA1DA,eAA0D;EAAG;EAEjF,MAAMC,MAAMA,CAACC,KAAuC,EAAiB;IACjE,MAAM;MAAEC,QAAQ;MAAEC;IAAS,CAAC,GAAGF,KAAK,CAACG,OAAO;;IAE5C;IACA,IACIF,QAAQ,CAACG,YAAY,KAAKF,QAAQ,CAACE,YAAY,IAC/CH,QAAQ,CAACI,UAAU,KAAKH,QAAQ,CAACG,UAAU,IAC3CJ,QAAQ,CAACK,SAAS,KAAKJ,QAAQ,CAACI,SAAS,EAC3C;MACE,MAAM,IAAI,CAACR,eAAe,CAACS,OAAO,CAAC,CAAC;IACxC;EACJ;AACJ;AAEA,OAAO,MAAMC,+BAA+B,GAAGf,oBAAoB,CAAC;EAChEgB,WAAW,EAAEf,0BAA0B;EACvCgB,cAAc,EAAEd,8BAA8B;EAC9Ce,YAAY,EAAE,CAAChB,+BAA+B;AAClD,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { BaseError, Result } from "@webiny/feature/api";
|
|
2
|
+
export interface IInvalidateRedirectsCacheUseCase {
|
|
3
|
+
execute(): Promise<Result<void, UseCaseError>>;
|
|
4
|
+
}
|
|
5
|
+
export interface IInvalidateRedirectsCacheUseCaseErrors {
|
|
6
|
+
taskError: BaseError;
|
|
7
|
+
}
|
|
8
|
+
type UseCaseError = IInvalidateRedirectsCacheUseCaseErrors[keyof IInvalidateRedirectsCacheUseCaseErrors];
|
|
9
|
+
export declare const InvalidateRedirectsCacheUseCase: import("@webiny/di").Abstraction<IInvalidateRedirectsCacheUseCase>;
|
|
10
|
+
export declare namespace InvalidateRedirectsCacheUseCase {
|
|
11
|
+
type Interface = IInvalidateRedirectsCacheUseCase;
|
|
12
|
+
type Return = Promise<Result<void, UseCaseError>>;
|
|
13
|
+
type Error = UseCaseError;
|
|
14
|
+
}
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { createAbstraction } from "@webiny/feature/api";
|
|
2
|
+
|
|
3
|
+
// ============================================================================
|
|
4
|
+
// Use Case Abstraction
|
|
5
|
+
// ============================================================================
|
|
6
|
+
|
|
7
|
+
export const InvalidateRedirectsCacheUseCase = createAbstraction("Wb/InvalidateRedirectsCacheUseCase");
|
|
8
|
+
|
|
9
|
+
//# sourceMappingURL=abstractions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createAbstraction","InvalidateRedirectsCacheUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { BaseError, Result } from \"@webiny/feature/api\";\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IInvalidateRedirectsCacheUseCase {\n execute(): Promise<Result<void, UseCaseError>>;\n}\n\nexport interface IInvalidateRedirectsCacheUseCaseErrors {\n // Task service errors will be captured as generic errors\n taskError: BaseError;\n}\n\ntype UseCaseError =\n IInvalidateRedirectsCacheUseCaseErrors[keyof IInvalidateRedirectsCacheUseCaseErrors];\n\nexport const InvalidateRedirectsCacheUseCase = createAbstraction<IInvalidateRedirectsCacheUseCase>(\n \"Wb/InvalidateRedirectsCacheUseCase\"\n);\n\nexport namespace InvalidateRedirectsCacheUseCase {\n export type Interface = IInvalidateRedirectsCacheUseCase;\n export type Return = Promise<Result<void, UseCaseError>>;\n export type Error = UseCaseError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAGvD;AACA;AACA;;AAcA,OAAO,MAAMC,+BAA+B,GAAGD,iBAAiB,CAC5D,oCACJ,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const InvalidateRedirectsCacheFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { InvalidateRedirectsCacheUseCase } from "./InvalidateRedirectsCacheUseCase.js";
|
|
3
|
+
import { RedirectAfterCreateCacheHandler } from "./RedirectAfterCreateHandler.js";
|
|
4
|
+
import { RedirectAfterUpdateCacheHandler } from "./RedirectAfterUpdateHandler.js";
|
|
5
|
+
import { RedirectAfterDeleteCacheHandler } from "./RedirectAfterDeleteHandler.js";
|
|
6
|
+
export const InvalidateRedirectsCacheFeature = createFeature({
|
|
7
|
+
name: "WebsiteBuilder/InvalidateRedirectsCache",
|
|
8
|
+
register(container) {
|
|
9
|
+
container.register(InvalidateRedirectsCacheUseCase);
|
|
10
|
+
container.register(RedirectAfterCreateCacheHandler);
|
|
11
|
+
container.register(RedirectAfterUpdateCacheHandler);
|
|
12
|
+
container.register(RedirectAfterDeleteCacheHandler);
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createFeature","InvalidateRedirectsCacheUseCase","RedirectAfterCreateCacheHandler","RedirectAfterUpdateCacheHandler","RedirectAfterDeleteCacheHandler","InvalidateRedirectsCacheFeature","name","register","container"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { InvalidateRedirectsCacheUseCase } from \"./InvalidateRedirectsCacheUseCase.js\";\nimport { RedirectAfterCreateCacheHandler } from \"./RedirectAfterCreateHandler.js\";\nimport { RedirectAfterUpdateCacheHandler } from \"./RedirectAfterUpdateHandler.js\";\nimport { RedirectAfterDeleteCacheHandler } from \"./RedirectAfterDeleteHandler.js\";\n\nexport const InvalidateRedirectsCacheFeature = createFeature({\n name: \"WebsiteBuilder/InvalidateRedirectsCache\",\n register(container) {\n container.register(InvalidateRedirectsCacheUseCase);\n container.register(RedirectAfterCreateCacheHandler);\n container.register(RedirectAfterUpdateCacheHandler);\n container.register(RedirectAfterDeleteCacheHandler);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,+BAA+B;AACxC,SAASC,+BAA+B;AACxC,SAASC,+BAA+B;AACxC,SAASC,+BAA+B;AAExC,OAAO,MAAMC,+BAA+B,GAAGL,aAAa,CAAC;EACzDM,IAAI,EAAE,yCAAyC;EAC/CC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACN,+BAA+B,CAAC;IACnDO,SAAS,CAACD,QAAQ,CAACL,+BAA+B,CAAC;IACnDM,SAAS,CAACD,QAAQ,CAACJ,+BAA+B,CAAC;IACnDK,SAAS,CAACD,QAAQ,CAACH,+BAA+B,CAAC;EACvD;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { InvalidateRedirectsCacheUseCase } from "./abstractions.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["InvalidateRedirectsCacheUseCase"],"sources":["index.ts"],"sourcesContent":["export { InvalidateRedirectsCacheUseCase } from \"./abstractions.js\";\n"],"mappings":"AAAA,SAASA,+BAA+B","ignoreList":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ListRedirectsRepository as RepositoryAbstraction } from "./abstractions.js";
|
|
2
|
+
import { RedirectModel } from "../../../domain/redirect/abstractions.js";
|
|
3
|
+
import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/index.js";
|
|
4
|
+
import { CmsSortMapper, CmsWhereMapper } from "@webiny/api-headless-cms";
|
|
5
|
+
declare class ListRedirectsRepositoryImpl implements RepositoryAbstraction.Interface {
|
|
6
|
+
private redirectModel;
|
|
7
|
+
private listEntries;
|
|
8
|
+
private cmsWhereMapper;
|
|
9
|
+
private cmsSortMapper;
|
|
10
|
+
constructor(redirectModel: RedirectModel.Interface, listEntries: ListLatestEntriesUseCase.Interface, cmsWhereMapper: CmsWhereMapper.Interface, cmsSortMapper: CmsSortMapper.Interface);
|
|
11
|
+
execute(params: RepositoryAbstraction.Params): RepositoryAbstraction.Return;
|
|
12
|
+
}
|
|
13
|
+
export declare const ListRedirectsRepository: typeof ListRedirectsRepositoryImpl & {
|
|
14
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IListRedirectsRepository>;
|
|
15
|
+
};
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { ListRedirectsRepository as RepositoryAbstraction } from "./abstractions.js";
|
|
3
|
+
import { RedirectModel } from "../../../domain/redirect/abstractions.js";
|
|
4
|
+
import { RedirectPersistenceError } from "../../../domain/redirect/errors.js";
|
|
5
|
+
import { EntryToRedirectMapper } from "../../../domain/redirect/EntryToRedirectMapper.js";
|
|
6
|
+
import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/index.js";
|
|
7
|
+
import { CmsSortMapper, CmsWhereMapper } from "@webiny/api-headless-cms";
|
|
8
|
+
class ListRedirectsRepositoryImpl {
|
|
9
|
+
constructor(redirectModel, listEntries, cmsWhereMapper, cmsSortMapper) {
|
|
10
|
+
this.redirectModel = redirectModel;
|
|
11
|
+
this.listEntries = listEntries;
|
|
12
|
+
this.cmsWhereMapper = cmsWhereMapper;
|
|
13
|
+
this.cmsSortMapper = cmsSortMapper;
|
|
14
|
+
}
|
|
15
|
+
async execute(params) {
|
|
16
|
+
const result = await this.listEntries.execute(this.redirectModel, {
|
|
17
|
+
...params,
|
|
18
|
+
sort: this.cmsSortMapper.map({
|
|
19
|
+
input: params.sort,
|
|
20
|
+
fields: this.redirectModel.fields
|
|
21
|
+
}),
|
|
22
|
+
where: this.cmsWhereMapper.map({
|
|
23
|
+
input: params.where,
|
|
24
|
+
fields: this.redirectModel.fields
|
|
25
|
+
})
|
|
26
|
+
});
|
|
27
|
+
if (result.isFail()) {
|
|
28
|
+
return Result.fail(new RedirectPersistenceError(result.error));
|
|
29
|
+
}
|
|
30
|
+
const {
|
|
31
|
+
entries,
|
|
32
|
+
meta
|
|
33
|
+
} = result.value;
|
|
34
|
+
const redirects = entries.map(entry => EntryToRedirectMapper.toRedirect(entry));
|
|
35
|
+
return Result.ok({
|
|
36
|
+
redirects,
|
|
37
|
+
meta
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export const ListRedirectsRepository = RepositoryAbstraction.createImplementation({
|
|
42
|
+
implementation: ListRedirectsRepositoryImpl,
|
|
43
|
+
dependencies: [RedirectModel, ListLatestEntriesUseCase, CmsWhereMapper, CmsSortMapper]
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
//# sourceMappingURL=ListRedirectsRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Result","ListRedirectsRepository","RepositoryAbstraction","RedirectModel","RedirectPersistenceError","EntryToRedirectMapper","ListLatestEntriesUseCase","CmsSortMapper","CmsWhereMapper","ListRedirectsRepositoryImpl","constructor","redirectModel","listEntries","cmsWhereMapper","cmsSortMapper","execute","params","result","sort","map","input","fields","where","isFail","fail","error","entries","meta","value","redirects","entry","toRedirect","ok","createImplementation","implementation","dependencies"],"sources":["ListRedirectsRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { ListRedirectsRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { type CmsEntryWbRedirect, RedirectModel } from \"~/domain/redirect/abstractions.js\";\nimport { RedirectPersistenceError } from \"~/domain/redirect/errors.js\";\nimport { EntryToRedirectMapper } from \"~/domain/redirect/EntryToRedirectMapper.js\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries/index.js\";\nimport { CmsSortMapper, CmsWhereMapper } from \"@webiny/api-headless-cms\";\n\nclass ListRedirectsRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private redirectModel: RedirectModel.Interface,\n private listEntries: ListLatestEntriesUseCase.Interface,\n private cmsWhereMapper: CmsWhereMapper.Interface,\n private cmsSortMapper: CmsSortMapper.Interface\n ) {}\n\n async execute(params: RepositoryAbstraction.Params): RepositoryAbstraction.Return {\n const result = await this.listEntries.execute<CmsEntryWbRedirect>(this.redirectModel, {\n ...params,\n sort: this.cmsSortMapper.map({\n input: params.sort,\n fields: this.redirectModel.fields\n }),\n where: this.cmsWhereMapper.map({\n input: params.where,\n fields: this.redirectModel.fields\n })\n });\n\n if (result.isFail()) {\n return Result.fail(new RedirectPersistenceError(result.error));\n }\n\n const { entries, meta } = result.value;\n const redirects = entries.map(entry => EntryToRedirectMapper.toRedirect(entry));\n\n return Result.ok({ redirects, meta });\n }\n}\n\nexport const ListRedirectsRepository = RepositoryAbstraction.createImplementation({\n implementation: ListRedirectsRepositoryImpl,\n dependencies: [RedirectModel, ListLatestEntriesUseCase, CmsWhereMapper, CmsSortMapper]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,uBAAuB,IAAIC,qBAAqB;AACzD,SAAkCC,aAAa;AAC/C,SAASC,wBAAwB;AACjC,SAASC,qBAAqB;AAC9B,SAASC,wBAAwB,QAAQ,qEAAqE;AAC9G,SAASC,aAAa,EAAEC,cAAc,QAAQ,0BAA0B;AAExE,MAAMC,2BAA2B,CAA4C;EACzEC,WAAWA,CACCC,aAAsC,EACtCC,WAA+C,EAC/CC,cAAwC,EACxCC,aAAsC,EAChD;IAAA,KAJUH,aAAsC,GAAtCA,aAAsC;IAAA,KACtCC,WAA+C,GAA/CA,WAA+C;IAAA,KAC/CC,cAAwC,GAAxCA,cAAwC;IAAA,KACxCC,aAAsC,GAAtCA,aAAsC;EAC/C;EAEH,MAAMC,OAAOA,CAACC,MAAoC,EAAgC;IAC9E,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACL,WAAW,CAACG,OAAO,CAAqB,IAAI,CAACJ,aAAa,EAAE;MAClF,GAAGK,MAAM;MACTE,IAAI,EAAE,IAAI,CAACJ,aAAa,CAACK,GAAG,CAAC;QACzBC,KAAK,EAAEJ,MAAM,CAACE,IAAI;QAClBG,MAAM,EAAE,IAAI,CAACV,aAAa,CAACU;MAC/B,CAAC,CAAC;MACFC,KAAK,EAAE,IAAI,CAACT,cAAc,CAACM,GAAG,CAAC;QAC3BC,KAAK,EAAEJ,MAAM,CAACM,KAAK;QACnBD,MAAM,EAAE,IAAI,CAACV,aAAa,CAACU;MAC/B,CAAC;IACL,CAAC,CAAC;IAEF,IAAIJ,MAAM,CAACM,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOvB,MAAM,CAACwB,IAAI,CAAC,IAAIpB,wBAAwB,CAACa,MAAM,CAACQ,KAAK,CAAC,CAAC;IAClE;IAEA,MAAM;MAAEC,OAAO;MAAEC;IAAK,CAAC,GAAGV,MAAM,CAACW,KAAK;IACtC,MAAMC,SAAS,GAAGH,OAAO,CAACP,GAAG,CAACW,KAAK,IAAIzB,qBAAqB,CAAC0B,UAAU,CAACD,KAAK,CAAC,CAAC;IAE/E,OAAO9B,MAAM,CAACgC,EAAE,CAAC;MAAEH,SAAS;MAAEF;IAAK,CAAC,CAAC;EACzC;AACJ;AAEA,OAAO,MAAM1B,uBAAuB,GAAGC,qBAAqB,CAAC+B,oBAAoB,CAAC;EAC9EC,cAAc,EAAEzB,2BAA2B;EAC3C0B,YAAY,EAAE,CAAChC,aAAa,EAAEG,wBAAwB,EAAEE,cAAc,EAAED,aAAa;AACzF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ListRedirectsUseCase as UseCaseAbstraction, ListRedirectsRepository } from "./abstractions.js";
|
|
2
|
+
import { WbPermissions } from "../../../domain/permissions.js";
|
|
3
|
+
import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
|
|
4
|
+
declare class ListRedirectsUseCaseImpl implements UseCaseAbstraction.Interface {
|
|
5
|
+
private permissions;
|
|
6
|
+
private identityContext;
|
|
7
|
+
private repository;
|
|
8
|
+
constructor(permissions: WbPermissions.Interface, identityContext: IdentityContext.Interface, repository: ListRedirectsRepository.Interface);
|
|
9
|
+
execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return;
|
|
10
|
+
}
|
|
11
|
+
export declare const ListRedirectsUseCase: import("@webiny/di").Implementation<typeof ListRedirectsUseCaseImpl>;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Result, createImplementation } from "@webiny/feature/api";
|
|
2
|
+
import { ListRedirectsUseCase as UseCaseAbstraction, ListRedirectsRepository } from "./abstractions.js";
|
|
3
|
+
import { WbPermissions } from "../../../domain/permissions.js";
|
|
4
|
+
import { RedirectNotAuthorizedError } from "../../../domain/redirect/errors.js";
|
|
5
|
+
import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
|
|
6
|
+
class ListRedirectsUseCaseImpl {
|
|
7
|
+
constructor(permissions, identityContext, repository) {
|
|
8
|
+
this.permissions = permissions;
|
|
9
|
+
this.identityContext = identityContext;
|
|
10
|
+
this.repository = repository;
|
|
11
|
+
}
|
|
12
|
+
async execute(params) {
|
|
13
|
+
const hasPermission = await this.permissions.canRead("redirect");
|
|
14
|
+
if (!hasPermission) {
|
|
15
|
+
return Result.fail(new RedirectNotAuthorizedError());
|
|
16
|
+
}
|
|
17
|
+
const where = {
|
|
18
|
+
...params.where
|
|
19
|
+
};
|
|
20
|
+
if (await this.permissions.onlyOwnRecords("redirect")) {
|
|
21
|
+
const identity = this.identityContext.getIdentity();
|
|
22
|
+
where.createdBy = identity.id;
|
|
23
|
+
}
|
|
24
|
+
return await this.repository.execute({
|
|
25
|
+
...params,
|
|
26
|
+
where
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export const ListRedirectsUseCase = createImplementation({
|
|
31
|
+
abstraction: UseCaseAbstraction,
|
|
32
|
+
implementation: ListRedirectsUseCaseImpl,
|
|
33
|
+
dependencies: [WbPermissions.Abstraction, IdentityContext, ListRedirectsRepository]
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
//# sourceMappingURL=ListRedirectsUseCase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Result","createImplementation","ListRedirectsUseCase","UseCaseAbstraction","ListRedirectsRepository","WbPermissions","RedirectNotAuthorizedError","IdentityContext","ListRedirectsUseCaseImpl","constructor","permissions","identityContext","repository","execute","params","hasPermission","canRead","fail","where","onlyOwnRecords","identity","getIdentity","createdBy","id","abstraction","implementation","dependencies","Abstraction"],"sources":["ListRedirectsUseCase.ts"],"sourcesContent":["import { Result, createImplementation } from \"@webiny/feature/api\";\nimport {\n ListRedirectsUseCase as UseCaseAbstraction,\n ListRedirectsRepository\n} from \"./abstractions.js\";\nimport { WbPermissions } from \"~/domain/permissions.js\";\nimport { RedirectNotAuthorizedError } from \"~/domain/redirect/errors.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\n\nclass ListRedirectsUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private identityContext: IdentityContext.Interface,\n private repository: ListRedirectsRepository.Interface\n ) {}\n\n async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canRead(\"redirect\");\n if (!hasPermission) {\n return Result.fail(new RedirectNotAuthorizedError());\n }\n\n const where = { ...params.where };\n\n if (await this.permissions.onlyOwnRecords(\"redirect\")) {\n const identity = this.identityContext.getIdentity();\n where.createdBy = identity.id;\n }\n\n return await this.repository.execute({ ...params, where });\n }\n}\n\nexport const ListRedirectsUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: ListRedirectsUseCaseImpl,\n dependencies: [WbPermissions.Abstraction, IdentityContext, ListRedirectsRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,EAAEC,oBAAoB,QAAQ,qBAAqB;AAClE,SACIC,oBAAoB,IAAIC,kBAAkB,EAC1CC,uBAAuB;AAE3B,SAASC,aAAa;AACtB,SAASC,0BAA0B;AACnC,SAASC,eAAe,QAAQ,6DAA6D;AAE7F,MAAMC,wBAAwB,CAAyC;EACnEC,WAAWA,CACCC,WAAoC,EACpCC,eAA0C,EAC1CC,UAA6C,EACvD;IAAA,KAHUF,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,UAA6C,GAA7CA,UAA6C;EACtD;EAEH,MAAMC,OAAOA,CAACC,MAAiC,EAA6B;IACxE,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACL,WAAW,CAACM,OAAO,CAAC,UAAU,CAAC;IAChE,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOf,MAAM,CAACiB,IAAI,CAAC,IAAIX,0BAA0B,CAAC,CAAC,CAAC;IACxD;IAEA,MAAMY,KAAK,GAAG;MAAE,GAAGJ,MAAM,CAACI;IAAM,CAAC;IAEjC,IAAI,MAAM,IAAI,CAACR,WAAW,CAACS,cAAc,CAAC,UAAU,CAAC,EAAE;MACnD,MAAMC,QAAQ,GAAG,IAAI,CAACT,eAAe,CAACU,WAAW,CAAC,CAAC;MACnDH,KAAK,CAACI,SAAS,GAAGF,QAAQ,CAACG,EAAE;IACjC;IAEA,OAAO,MAAM,IAAI,CAACX,UAAU,CAACC,OAAO,CAAC;MAAE,GAAGC,MAAM;MAAEI;IAAM,CAAC,CAAC;EAC9D;AACJ;AAEA,OAAO,MAAMhB,oBAAoB,GAAGD,oBAAoB,CAAC;EACrDuB,WAAW,EAAErB,kBAAkB;EAC/BsB,cAAc,EAAEjB,wBAAwB;EACxCkB,YAAY,EAAE,CAACrB,aAAa,CAACsB,WAAW,EAAEpB,eAAe,EAAEH,uBAAuB;AACtF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { Result } from "@webiny/feature/api";
|
|
2
|
+
import type { CmsEntryListSort } from "@webiny/api-headless-cms/types/index.js";
|
|
3
|
+
import type { WbRedirect } from "../../../domain/redirect/abstractions.js";
|
|
4
|
+
import type { RedirectPersistenceError, RedirectNotAuthorizedError } from "../../../domain/redirect/errors.js";
|
|
5
|
+
export interface IListWbRedirectsWhere {
|
|
6
|
+
latest?: boolean;
|
|
7
|
+
createdBy?: string;
|
|
8
|
+
redirectFrom?: string;
|
|
9
|
+
redirectFrom_not?: string;
|
|
10
|
+
redirectFrom_in?: string[];
|
|
11
|
+
redirectFrom_not_in?: string[];
|
|
12
|
+
redirectTo?: string;
|
|
13
|
+
redirectTo_not?: string;
|
|
14
|
+
redirectTo_in?: string[];
|
|
15
|
+
redirectTo_not_in?: string[];
|
|
16
|
+
redirectType?: string;
|
|
17
|
+
redirectType_not?: string;
|
|
18
|
+
redirectType_in?: string[];
|
|
19
|
+
redirectType_not_in?: string[];
|
|
20
|
+
isEnabled?: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface ListWbRedirectsParams {
|
|
23
|
+
where?: IListWbRedirectsWhere;
|
|
24
|
+
sort?: CmsEntryListSort;
|
|
25
|
+
limit?: number;
|
|
26
|
+
after?: string | null;
|
|
27
|
+
search?: string;
|
|
28
|
+
}
|
|
29
|
+
export interface WbListMeta {
|
|
30
|
+
hasMoreItems: boolean;
|
|
31
|
+
totalCount: number;
|
|
32
|
+
cursor: string | null;
|
|
33
|
+
}
|
|
34
|
+
export type ListRedirectsResult = {
|
|
35
|
+
redirects: WbRedirect[];
|
|
36
|
+
meta: WbListMeta;
|
|
37
|
+
};
|
|
38
|
+
export interface IListRedirectsRepository {
|
|
39
|
+
execute(params: ListWbRedirectsParams): Promise<Result<ListRedirectsResult, RepositoryError>>;
|
|
40
|
+
}
|
|
41
|
+
export interface IListRedirectsRepositoryErrors {
|
|
42
|
+
persistence: RedirectPersistenceError;
|
|
43
|
+
}
|
|
44
|
+
type RepositoryError = IListRedirectsRepositoryErrors[keyof IListRedirectsRepositoryErrors];
|
|
45
|
+
export declare const ListRedirectsRepository: import("@webiny/di").Abstraction<IListRedirectsRepository>;
|
|
46
|
+
export declare namespace ListRedirectsRepository {
|
|
47
|
+
type Interface = IListRedirectsRepository;
|
|
48
|
+
type Params = ListWbRedirectsParams;
|
|
49
|
+
type Return = Promise<Result<ListRedirectsResult, RepositoryError>>;
|
|
50
|
+
type Error = RepositoryError;
|
|
51
|
+
type Redirect = WbRedirect;
|
|
52
|
+
}
|
|
53
|
+
export interface IListRedirectsUseCase {
|
|
54
|
+
execute(params: ListWbRedirectsParams): Promise<Result<ListRedirectsResult, UseCaseError>>;
|
|
55
|
+
}
|
|
56
|
+
export interface IListRedirectsUseCaseErrors {
|
|
57
|
+
notAuthorized: RedirectNotAuthorizedError;
|
|
58
|
+
persistence: RedirectPersistenceError;
|
|
59
|
+
}
|
|
60
|
+
type UseCaseError = IListRedirectsUseCaseErrors[keyof IListRedirectsUseCaseErrors];
|
|
61
|
+
export declare const ListRedirectsUseCase: import("@webiny/di").Abstraction<IListRedirectsUseCase>;
|
|
62
|
+
export declare namespace ListRedirectsUseCase {
|
|
63
|
+
type Interface = IListRedirectsUseCase;
|
|
64
|
+
type Params = ListWbRedirectsParams;
|
|
65
|
+
type Return = Promise<Result<ListRedirectsResult, UseCaseError>>;
|
|
66
|
+
type Error = UseCaseError;
|
|
67
|
+
type Redirect = WbRedirect;
|
|
68
|
+
}
|
|
69
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { createAbstraction } from "@webiny/feature/api";
|
|
2
|
+
|
|
3
|
+
// ============================================================================
|
|
4
|
+
// Type Definitions
|
|
5
|
+
// ============================================================================
|
|
6
|
+
|
|
7
|
+
// ============================================================================
|
|
8
|
+
// Repository Abstraction
|
|
9
|
+
// ============================================================================
|
|
10
|
+
|
|
11
|
+
export const ListRedirectsRepository = createAbstraction("Wb/ListRedirectsRepository");
|
|
12
|
+
|
|
13
|
+
// ============================================================================
|
|
14
|
+
// Use Case Abstraction
|
|
15
|
+
// ============================================================================
|
|
16
|
+
|
|
17
|
+
export const ListRedirectsUseCase = createAbstraction("Wb/ListRedirectsUseCase");
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=abstractions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createAbstraction","ListRedirectsRepository","ListRedirectsUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import type { Result } from \"@webiny/feature/api\";\nimport { createAbstraction } from \"@webiny/feature/api\";\nimport type { CmsEntryListSort } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { WbRedirect } from \"~/domain/redirect/abstractions.js\";\nimport type {\n RedirectPersistenceError,\n RedirectNotAuthorizedError\n} from \"~/domain/redirect/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface IListWbRedirectsWhere {\n latest?: boolean;\n createdBy?: string;\n redirectFrom?: string;\n redirectFrom_not?: string;\n redirectFrom_in?: string[];\n redirectFrom_not_in?: string[];\n\n redirectTo?: string;\n redirectTo_not?: string;\n redirectTo_in?: string[];\n redirectTo_not_in?: string[];\n\n redirectType?: string;\n redirectType_not?: string;\n redirectType_in?: string[];\n redirectType_not_in?: string[];\n\n isEnabled?: boolean;\n}\n\nexport interface ListWbRedirectsParams {\n where?: IListWbRedirectsWhere;\n sort?: CmsEntryListSort;\n limit?: number;\n after?: string | null;\n search?: string;\n}\n\nexport interface WbListMeta {\n hasMoreItems: boolean;\n totalCount: number;\n cursor: string | null;\n}\n\nexport type ListRedirectsResult = { redirects: WbRedirect[]; meta: WbListMeta };\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IListRedirectsRepository {\n execute(params: ListWbRedirectsParams): Promise<Result<ListRedirectsResult, RepositoryError>>;\n}\n\nexport interface IListRedirectsRepositoryErrors {\n persistence: RedirectPersistenceError;\n}\n\ntype RepositoryError = IListRedirectsRepositoryErrors[keyof IListRedirectsRepositoryErrors];\n\nexport const ListRedirectsRepository = createAbstraction<IListRedirectsRepository>(\n \"Wb/ListRedirectsRepository\"\n);\n\nexport namespace ListRedirectsRepository {\n export type Interface = IListRedirectsRepository;\n export type Params = ListWbRedirectsParams;\n export type Return = Promise<Result<ListRedirectsResult, RepositoryError>>;\n export type Error = RepositoryError;\n export type Redirect = WbRedirect;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IListRedirectsUseCase {\n execute(params: ListWbRedirectsParams): Promise<Result<ListRedirectsResult, UseCaseError>>;\n}\n\nexport interface IListRedirectsUseCaseErrors {\n notAuthorized: RedirectNotAuthorizedError;\n persistence: RedirectPersistenceError;\n}\n\ntype UseCaseError = IListRedirectsUseCaseErrors[keyof IListRedirectsUseCaseErrors];\n\nexport const ListRedirectsUseCase =\n createAbstraction<IListRedirectsUseCase>(\"Wb/ListRedirectsUseCase\");\n\nexport namespace ListRedirectsUseCase {\n export type Interface = IListRedirectsUseCase;\n export type Params = ListWbRedirectsParams;\n export type Return = Promise<Result<ListRedirectsResult, UseCaseError>>;\n export type Error = UseCaseError;\n export type Redirect = WbRedirect;\n}\n"],"mappings":"AACA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAQvD;AACA;AACA;;AAuCA;AACA;AACA;;AAYA,OAAO,MAAMC,uBAAuB,GAAGD,iBAAiB,CACpD,4BACJ,CAAC;;AAUD;AACA;AACA;;AAaA,OAAO,MAAME,oBAAoB,GAC7BF,iBAAiB,CAAwB,yBAAyB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const ListRedirectsFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { ListRedirectsRepository } from "./ListRedirectsRepository.js";
|
|
3
|
+
import { ListRedirectsUseCase } from "./ListRedirectsUseCase.js";
|
|
4
|
+
export const ListRedirectsFeature = createFeature({
|
|
5
|
+
name: "WebsiteBuilder/ListRedirects",
|
|
6
|
+
register(container) {
|
|
7
|
+
container.register(ListRedirectsRepository).inSingletonScope();
|
|
8
|
+
container.register(ListRedirectsUseCase);
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createFeature","ListRedirectsRepository","ListRedirectsUseCase","ListRedirectsFeature","name","register","container","inSingletonScope"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ListRedirectsRepository } from \"./ListRedirectsRepository.js\";\nimport { ListRedirectsUseCase } from \"./ListRedirectsUseCase.js\";\n\nexport const ListRedirectsFeature = createFeature({\n name: \"WebsiteBuilder/ListRedirects\",\n register(container) {\n container.register(ListRedirectsRepository).inSingletonScope();\n container.register(ListRedirectsUseCase);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,uBAAuB;AAChC,SAASC,oBAAoB;AAE7B,OAAO,MAAMC,oBAAoB,GAAGH,aAAa,CAAC;EAC9CI,IAAI,EAAE,8BAA8B;EACpCC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACJ,uBAAuB,CAAC,CAACM,gBAAgB,CAAC,CAAC;IAC9DD,SAAS,CAACD,QAAQ,CAACH,oBAAoB,CAAC;EAC5C;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,9 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { ListRedirects } from "./ListRedirects";
|
|
3
|
-
interface ListRedirectsUseCasesParams {
|
|
4
|
-
listOperation: WbRedirectsStorageOperations["list"];
|
|
5
|
-
}
|
|
6
|
-
export declare const getListRedirectsUseCase: (params: ListRedirectsUseCasesParams) => {
|
|
7
|
-
listRedirectsUseCase: ListRedirects;
|
|
8
|
-
};
|
|
9
|
-
export {};
|
|
1
|
+
export { ListRedirectsUseCase } from "./abstractions.js";
|
|
@@ -1,16 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.getListRedirectsUseCase = void 0;
|
|
7
|
-
var _ListRedirects = require("./ListRedirects");
|
|
8
|
-
const getListRedirectsUseCase = params => {
|
|
9
|
-
const listRedirectsUseCase = new _ListRedirects.ListRedirects(params.listOperation);
|
|
10
|
-
return {
|
|
11
|
-
listRedirectsUseCase
|
|
12
|
-
};
|
|
13
|
-
};
|
|
14
|
-
exports.getListRedirectsUseCase = getListRedirectsUseCase;
|
|
1
|
+
export { ListRedirectsUseCase } from "./abstractions.js";
|
|
15
2
|
|
|
16
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["ListRedirectsUseCase"],"sources":["index.ts"],"sourcesContent":["export { ListRedirectsUseCase } from \"./abstractions.js\";\n"],"mappings":"AAAA,SAASA,oBAAoB","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { MoveRedirectRepository as RepositoryAbstraction } from "./abstractions.js";
|
|
2
|
+
import { RedirectModel } from "../../../domain/redirect/abstractions.js";
|
|
3
|
+
import { MoveEntryRepository } from "@webiny/api-headless-cms/features/contentEntry/MoveEntry/index.js";
|
|
4
|
+
import { GetRedirectByIdRepository } from "../../../features/redirects/GetRedirectById/abstractions.js";
|
|
5
|
+
declare class MoveRedirectRepositoryImpl implements RepositoryAbstraction.Interface {
|
|
6
|
+
private redirectModel;
|
|
7
|
+
private moveEntry;
|
|
8
|
+
private getRedirectById;
|
|
9
|
+
constructor(redirectModel: RedirectModel.Interface, moveEntry: MoveEntryRepository.Interface, getRedirectById: GetRedirectByIdRepository.Interface);
|
|
10
|
+
execute(params: RepositoryAbstraction.Params): RepositoryAbstraction.Return;
|
|
11
|
+
}
|
|
12
|
+
export declare const MoveRedirectRepository: typeof MoveRedirectRepositoryImpl & {
|
|
13
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IMoveRedirectRepository>;
|
|
14
|
+
};
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { MoveRedirectRepository as RepositoryAbstraction } from "./abstractions.js";
|
|
3
|
+
import { RedirectModel } from "../../../domain/redirect/abstractions.js";
|
|
4
|
+
import { RedirectPersistenceError } from "../../../domain/redirect/errors.js";
|
|
5
|
+
import { MoveEntryRepository } from "@webiny/api-headless-cms/features/contentEntry/MoveEntry/index.js";
|
|
6
|
+
import { GetRedirectByIdRepository } from "../GetRedirectById/abstractions.js";
|
|
7
|
+
class MoveRedirectRepositoryImpl {
|
|
8
|
+
constructor(redirectModel, moveEntry, getRedirectById) {
|
|
9
|
+
this.redirectModel = redirectModel;
|
|
10
|
+
this.moveEntry = moveEntry;
|
|
11
|
+
this.getRedirectById = getRedirectById;
|
|
12
|
+
}
|
|
13
|
+
async execute(params) {
|
|
14
|
+
// First, validate the redirect exists
|
|
15
|
+
const getResult = await this.getRedirectById.execute(params.id);
|
|
16
|
+
if (getResult.isFail()) {
|
|
17
|
+
return Result.fail(getResult.error);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// Update the redirect location with the new folderId
|
|
21
|
+
const result = await this.moveEntry.execute(this.redirectModel, params.id, params.folderId);
|
|
22
|
+
if (result.isFail()) {
|
|
23
|
+
return Result.fail(new RedirectPersistenceError(result.error));
|
|
24
|
+
}
|
|
25
|
+
const movedRedirect = {
|
|
26
|
+
...getResult.value,
|
|
27
|
+
location: {
|
|
28
|
+
folderId: params.folderId
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
return Result.ok(movedRedirect);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export const MoveRedirectRepository = RepositoryAbstraction.createImplementation({
|
|
35
|
+
implementation: MoveRedirectRepositoryImpl,
|
|
36
|
+
dependencies: [RedirectModel, MoveEntryRepository, GetRedirectByIdRepository]
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
//# sourceMappingURL=MoveRedirectRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Result","MoveRedirectRepository","RepositoryAbstraction","RedirectModel","RedirectPersistenceError","MoveEntryRepository","GetRedirectByIdRepository","MoveRedirectRepositoryImpl","constructor","redirectModel","moveEntry","getRedirectById","execute","params","getResult","id","isFail","fail","error","result","folderId","movedRedirect","value","location","ok","createImplementation","implementation","dependencies"],"sources":["MoveRedirectRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { MoveRedirectRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { RedirectModel, type WbRedirect } from \"~/domain/redirect/abstractions.js\";\nimport { RedirectPersistenceError } from \"~/domain/redirect/errors.js\";\nimport { MoveEntryRepository } from \"@webiny/api-headless-cms/features/contentEntry/MoveEntry/index.js\";\nimport { GetRedirectByIdRepository } from \"~/features/redirects/GetRedirectById/abstractions.js\";\n\nclass MoveRedirectRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private redirectModel: RedirectModel.Interface,\n private moveEntry: MoveEntryRepository.Interface,\n private getRedirectById: GetRedirectByIdRepository.Interface\n ) {}\n\n async execute(params: RepositoryAbstraction.Params): RepositoryAbstraction.Return {\n // First, validate the redirect exists\n const getResult = await this.getRedirectById.execute(params.id);\n\n if (getResult.isFail()) {\n return Result.fail(getResult.error);\n }\n\n // Update the redirect location with the new folderId\n const result = await this.moveEntry.execute(this.redirectModel, params.id, params.folderId);\n\n if (result.isFail()) {\n return Result.fail(new RedirectPersistenceError(result.error));\n }\n\n const movedRedirect: WbRedirect = {\n ...getResult.value,\n location: {\n folderId: params.folderId\n }\n };\n return Result.ok(movedRedirect);\n }\n}\n\nexport const MoveRedirectRepository = RepositoryAbstraction.createImplementation({\n implementation: MoveRedirectRepositoryImpl,\n dependencies: [RedirectModel, MoveEntryRepository, GetRedirectByIdRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,sBAAsB,IAAIC,qBAAqB;AACxD,SAASC,aAAa;AACtB,SAASC,wBAAwB;AACjC,SAASC,mBAAmB,QAAQ,mEAAmE;AACvG,SAASC,yBAAyB;AAElC,MAAMC,0BAA0B,CAA4C;EACxEC,WAAWA,CACCC,aAAsC,EACtCC,SAAwC,EACxCC,eAAoD,EAC9D;IAAA,KAHUF,aAAsC,GAAtCA,aAAsC;IAAA,KACtCC,SAAwC,GAAxCA,SAAwC;IAAA,KACxCC,eAAoD,GAApDA,eAAoD;EAC7D;EAEH,MAAMC,OAAOA,CAACC,MAAoC,EAAgC;IAC9E;IACA,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACH,eAAe,CAACC,OAAO,CAACC,MAAM,CAACE,EAAE,CAAC;IAE/D,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOhB,MAAM,CAACiB,IAAI,CAACH,SAAS,CAACI,KAAK,CAAC;IACvC;;IAEA;IACA,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACT,SAAS,CAACE,OAAO,CAAC,IAAI,CAACH,aAAa,EAAEI,MAAM,CAACE,EAAE,EAAEF,MAAM,CAACO,QAAQ,CAAC;IAE3F,IAAID,MAAM,CAACH,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOhB,MAAM,CAACiB,IAAI,CAAC,IAAIb,wBAAwB,CAACe,MAAM,CAACD,KAAK,CAAC,CAAC;IAClE;IAEA,MAAMG,aAAyB,GAAG;MAC9B,GAAGP,SAAS,CAACQ,KAAK;MAClBC,QAAQ,EAAE;QACNH,QAAQ,EAAEP,MAAM,CAACO;MACrB;IACJ,CAAC;IACD,OAAOpB,MAAM,CAACwB,EAAE,CAACH,aAAa,CAAC;EACnC;AACJ;AAEA,OAAO,MAAMpB,sBAAsB,GAAGC,qBAAqB,CAACuB,oBAAoB,CAAC;EAC7EC,cAAc,EAAEnB,0BAA0B;EAC1CoB,YAAY,EAAE,CAACxB,aAAa,EAAEE,mBAAmB,EAAEC,yBAAyB;AAChF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { EventPublisher as EventPublisherAbstraction } from "@webiny/api-core/features/EventPublisher";
|
|
2
|
+
import { MoveRedirectUseCase as UseCaseAbstraction, MoveRedirectRepository } from "./abstractions.js";
|
|
3
|
+
import { GetRedirectByIdUseCase } from "../../../features/redirects/GetRedirectById/index.js";
|
|
4
|
+
import { WbPermissions } from "../../../domain/permissions.js";
|
|
5
|
+
declare class MoveRedirectUseCaseImpl implements UseCaseAbstraction.Interface {
|
|
6
|
+
private permissions;
|
|
7
|
+
private eventPublisher;
|
|
8
|
+
private getRedirectById;
|
|
9
|
+
private repository;
|
|
10
|
+
constructor(permissions: WbPermissions.Interface, eventPublisher: EventPublisherAbstraction.Interface, getRedirectById: GetRedirectByIdUseCase.Interface, repository: MoveRedirectRepository.Interface);
|
|
11
|
+
execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return;
|
|
12
|
+
}
|
|
13
|
+
export declare const MoveRedirectUseCase: import("@webiny/di").Implementation<typeof MoveRedirectUseCaseImpl>;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { Result, createImplementation } from "@webiny/feature/api";
|
|
2
|
+
import { EventPublisher } from "@webiny/api-core/features/EventPublisher";
|
|
3
|
+
import { MoveRedirectUseCase as UseCaseAbstraction, MoveRedirectRepository } from "./abstractions.js";
|
|
4
|
+
import { RedirectBeforeMoveEvent, RedirectAfterMoveEvent } from "./events.js";
|
|
5
|
+
import { GetRedirectByIdUseCase } from "../GetRedirectById/index.js";
|
|
6
|
+
import { WbPermissions } from "../../../domain/permissions.js";
|
|
7
|
+
import { RedirectNotAuthorizedError } from "../../../domain/redirect/errors.js";
|
|
8
|
+
class MoveRedirectUseCaseImpl {
|
|
9
|
+
constructor(permissions, eventPublisher, getRedirectById, repository) {
|
|
10
|
+
this.permissions = permissions;
|
|
11
|
+
this.eventPublisher = eventPublisher;
|
|
12
|
+
this.getRedirectById = getRedirectById;
|
|
13
|
+
this.repository = repository;
|
|
14
|
+
}
|
|
15
|
+
async execute(params) {
|
|
16
|
+
const hasPermission = await this.permissions.canEdit("redirect");
|
|
17
|
+
if (!hasPermission) {
|
|
18
|
+
return Result.fail(new RedirectNotAuthorizedError());
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// Get the original redirect for events
|
|
22
|
+
const getResult = await this.getRedirectById.execute(params.id);
|
|
23
|
+
if (getResult.isFail()) {
|
|
24
|
+
return getResult;
|
|
25
|
+
}
|
|
26
|
+
const original = getResult.value;
|
|
27
|
+
const canEdit = await this.permissions.canEdit("redirect", original);
|
|
28
|
+
if (!canEdit) {
|
|
29
|
+
return Result.fail(new RedirectNotAuthorizedError());
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// Publish before move event
|
|
33
|
+
const beforeEvent = new RedirectBeforeMoveEvent({
|
|
34
|
+
original,
|
|
35
|
+
input: params
|
|
36
|
+
});
|
|
37
|
+
await this.eventPublisher.publish(beforeEvent);
|
|
38
|
+
|
|
39
|
+
// Execute the move operation
|
|
40
|
+
const result = await this.repository.execute(params);
|
|
41
|
+
if (result.isFail()) {
|
|
42
|
+
return result;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// Publish after move event
|
|
46
|
+
const afterEvent = new RedirectAfterMoveEvent({
|
|
47
|
+
original,
|
|
48
|
+
input: params,
|
|
49
|
+
redirect: result.value
|
|
50
|
+
});
|
|
51
|
+
await this.eventPublisher.publish(afterEvent);
|
|
52
|
+
return Result.ok(result.value);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
export const MoveRedirectUseCase = createImplementation({
|
|
56
|
+
abstraction: UseCaseAbstraction,
|
|
57
|
+
implementation: MoveRedirectUseCaseImpl,
|
|
58
|
+
dependencies: [WbPermissions.Abstraction, EventPublisher, GetRedirectByIdUseCase, MoveRedirectRepository]
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
//# sourceMappingURL=MoveRedirectUseCase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Result","createImplementation","EventPublisher","MoveRedirectUseCase","UseCaseAbstraction","MoveRedirectRepository","RedirectBeforeMoveEvent","RedirectAfterMoveEvent","GetRedirectByIdUseCase","WbPermissions","RedirectNotAuthorizedError","MoveRedirectUseCaseImpl","constructor","permissions","eventPublisher","getRedirectById","repository","execute","params","hasPermission","canEdit","fail","getResult","id","isFail","original","value","beforeEvent","input","publish","result","afterEvent","redirect","ok","abstraction","implementation","dependencies","Abstraction"],"sources":["MoveRedirectUseCase.ts"],"sourcesContent":["import { Result, createImplementation } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/EventPublisher\";\nimport {\n MoveRedirectUseCase as UseCaseAbstraction,\n MoveRedirectRepository\n} from \"./abstractions.js\";\nimport { RedirectBeforeMoveEvent, RedirectAfterMoveEvent } from \"./events.js\";\nimport { GetRedirectByIdUseCase } from \"~/features/redirects/GetRedirectById/index.js\";\nimport { WbPermissions } from \"~/domain/permissions.js\";\nimport { RedirectNotAuthorizedError } from \"~/domain/redirect/errors.js\";\n\nclass MoveRedirectUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getRedirectById: GetRedirectByIdUseCase.Interface,\n private repository: MoveRedirectRepository.Interface\n ) {}\n\n async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canEdit(\"redirect\");\n if (!hasPermission) {\n return Result.fail(new RedirectNotAuthorizedError());\n }\n\n // Get the original redirect for events\n const getResult = await this.getRedirectById.execute(params.id);\n\n if (getResult.isFail()) {\n return getResult;\n }\n\n const original = getResult.value;\n\n const canEdit = await this.permissions.canEdit(\"redirect\", original);\n if (!canEdit) {\n return Result.fail(new RedirectNotAuthorizedError());\n }\n\n // Publish before move event\n const beforeEvent = new RedirectBeforeMoveEvent({\n original,\n input: params\n });\n\n await this.eventPublisher.publish(beforeEvent);\n\n // Execute the move operation\n const result = await this.repository.execute(params);\n\n if (result.isFail()) {\n return result;\n }\n\n // Publish after move event\n const afterEvent = new RedirectAfterMoveEvent({\n original,\n input: params,\n redirect: result.value\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return Result.ok(result.value);\n }\n}\n\nexport const MoveRedirectUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: MoveRedirectUseCaseImpl,\n dependencies: [\n WbPermissions.Abstraction,\n EventPublisher,\n GetRedirectByIdUseCase,\n MoveRedirectRepository\n ]\n});\n"],"mappings":"AAAA,SAASA,MAAM,EAAEC,oBAAoB,QAAQ,qBAAqB;AAClE,SACIC,cAAc,QAEX,0CAA0C;AACjD,SACIC,mBAAmB,IAAIC,kBAAkB,EACzCC,sBAAsB;AAE1B,SAASC,uBAAuB,EAAEC,sBAAsB;AACxD,SAASC,sBAAsB;AAC/B,SAASC,aAAa;AACtB,SAASC,0BAA0B;AAEnC,MAAMC,uBAAuB,CAAyC;EAClEC,WAAWA,CACCC,WAAoC,EACpCC,cAAmD,EACnDC,eAAiD,EACjDC,UAA4C,EACtD;IAAA,KAJUH,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,eAAiD,GAAjDA,eAAiD;IAAA,KACjDC,UAA4C,GAA5CA,UAA4C;EACrD;EAEH,MAAMC,OAAOA,CAACC,MAAiC,EAA6B;IACxE,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACN,WAAW,CAACO,OAAO,CAAC,UAAU,CAAC;IAChE,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOnB,MAAM,CAACqB,IAAI,CAAC,IAAIX,0BAA0B,CAAC,CAAC,CAAC;IACxD;;IAEA;IACA,MAAMY,SAAS,GAAG,MAAM,IAAI,CAACP,eAAe,CAACE,OAAO,CAACC,MAAM,CAACK,EAAE,CAAC;IAE/D,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOF,SAAS;IACpB;IAEA,MAAMG,QAAQ,GAAGH,SAAS,CAACI,KAAK;IAEhC,MAAMN,OAAO,GAAG,MAAM,IAAI,CAACP,WAAW,CAACO,OAAO,CAAC,UAAU,EAAEK,QAAQ,CAAC;IACpE,IAAI,CAACL,OAAO,EAAE;MACV,OAAOpB,MAAM,CAACqB,IAAI,CAAC,IAAIX,0BAA0B,CAAC,CAAC,CAAC;IACxD;;IAEA;IACA,MAAMiB,WAAW,GAAG,IAAIrB,uBAAuB,CAAC;MAC5CmB,QAAQ;MACRG,KAAK,EAAEV;IACX,CAAC,CAAC;IAEF,MAAM,IAAI,CAACJ,cAAc,CAACe,OAAO,CAACF,WAAW,CAAC;;IAE9C;IACA,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACd,UAAU,CAACC,OAAO,CAACC,MAAM,CAAC;IAEpD,IAAIY,MAAM,CAACN,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOM,MAAM;IACjB;;IAEA;IACA,MAAMC,UAAU,GAAG,IAAIxB,sBAAsB,CAAC;MAC1CkB,QAAQ;MACRG,KAAK,EAAEV,MAAM;MACbc,QAAQ,EAAEF,MAAM,CAACJ;IACrB,CAAC,CAAC;IAEF,MAAM,IAAI,CAACZ,cAAc,CAACe,OAAO,CAACE,UAAU,CAAC;IAE7C,OAAO/B,MAAM,CAACiC,EAAE,CAACH,MAAM,CAACJ,KAAK,CAAC;EAClC;AACJ;AAEA,OAAO,MAAMvB,mBAAmB,GAAGF,oBAAoB,CAAC;EACpDiC,WAAW,EAAE9B,kBAAkB;EAC/B+B,cAAc,EAAExB,uBAAuB;EACvCyB,YAAY,EAAE,CACV3B,aAAa,CAAC4B,WAAW,EACzBnC,cAAc,EACdM,sBAAsB,EACtBH,sBAAsB;AAE9B,CAAC,CAAC","ignoreList":[]}
|