@webiny/api-website-builder 6.3.0 → 6.4.0-beta.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/constants.js +4 -3
- package/constants.js.map +1 -1
- package/domain/page/EntryToPageMapper.js +30 -28
- package/domain/page/EntryToPageMapper.js.map +1 -1
- package/domain/page/PagePath.js +20 -30
- package/domain/page/PagePath.js.map +1 -1
- package/domain/page/abstractions.d.ts +13 -0
- package/domain/page/abstractions.js +2 -5
- package/domain/page/abstractions.js.map +1 -1
- package/domain/page/errors.js +46 -51
- package/domain/page/errors.js.map +1 -1
- package/domain/page/page.model.d.ts +8 -1
- package/domain/page/page.model.js +25 -30
- package/domain/page/page.model.js.map +1 -1
- package/domain/permissionsSchema.js +49 -28
- package/domain/permissionsSchema.js.map +1 -1
- package/domain/redirect/EntryToRedirectMapper.js +21 -20
- package/domain/redirect/EntryToRedirectMapper.js.map +1 -1
- package/domain/redirect/abstractions.js +2 -9
- package/domain/redirect/abstractions.js.map +1 -1
- package/domain/redirect/errors.js +28 -31
- package/domain/redirect/errors.js.map +1 -1
- package/domain/redirect/redirect.model.d.ts +8 -1
- package/domain/redirect/redirect.model.js +24 -30
- package/domain/redirect/redirect.model.js.map +1 -1
- package/domain/shared/abstractions.js +0 -3
- package/exports/api/website-builder/nextjs.js +0 -2
- package/exports/api/website-builder/page.js +5 -7
- package/exports/api/website-builder/redirect.js +1 -3
- package/features/installer/ApiKeyInstaller.js +33 -30
- package/features/installer/ApiKeyInstaller.js.map +1 -1
- package/features/installer/feature.js +6 -5
- package/features/installer/feature.js.map +1 -1
- package/features/nextjs/MarkdownContentBuilder.js +67 -76
- package/features/nextjs/MarkdownContentBuilder.js.map +1 -1
- package/features/nextjs/MarkdownContentBuilder.test.js +266 -273
- package/features/nextjs/MarkdownContentBuilder.test.js.map +1 -1
- package/features/nextjs/NextjsConfig.js +43 -46
- package/features/nextjs/NextjsConfig.js.map +1 -1
- package/features/nextjs/abstractions.js +2 -2
- package/features/nextjs/abstractions.js.map +1 -1
- package/features/nextjs/feature.js +6 -5
- package/features/nextjs/feature.js.map +1 -1
- package/features/nextjs/index.js +0 -2
- package/features/pages/CreatePage/CreatePageRepository.js +23 -25
- package/features/pages/CreatePage/CreatePageRepository.js.map +1 -1
- package/features/pages/CreatePage/CreatePageUseCase.js +29 -34
- package/features/pages/CreatePage/CreatePageUseCase.js.map +1 -1
- package/features/pages/CreatePage/abstractions.js +5 -30
- package/features/pages/CreatePage/abstractions.js.map +1 -1
- package/features/pages/CreatePage/events.js +16 -14
- package/features/pages/CreatePage/events.js.map +1 -1
- package/features/pages/CreatePage/feature.js +7 -6
- package/features/pages/CreatePage/feature.js.map +1 -1
- package/features/pages/CreatePage/index.js +1 -3
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromRepository.js +30 -36
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromRepository.js.map +1 -1
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromUseCase.js +33 -41
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromUseCase.js.map +1 -1
- package/features/pages/CreatePageRevisionFrom/abstractions.js +5 -30
- package/features/pages/CreatePageRevisionFrom/abstractions.js.map +1 -1
- package/features/pages/CreatePageRevisionFrom/events.js +16 -14
- package/features/pages/CreatePageRevisionFrom/events.js.map +1 -1
- package/features/pages/CreatePageRevisionFrom/feature.js +7 -6
- package/features/pages/CreatePageRevisionFrom/feature.js.map +1 -1
- package/features/pages/CreatePageRevisionFrom/index.js +1 -3
- package/features/pages/DeletePage/DeletePageRepository.js +19 -18
- package/features/pages/DeletePage/DeletePageRepository.js.map +1 -1
- package/features/pages/DeletePage/DeletePageUseCase.js +32 -39
- package/features/pages/DeletePage/DeletePageUseCase.js.map +1 -1
- package/features/pages/DeletePage/abstractions.js +5 -30
- package/features/pages/DeletePage/abstractions.js.map +1 -1
- package/features/pages/DeletePage/events.js +16 -14
- package/features/pages/DeletePage/events.js.map +1 -1
- package/features/pages/DeletePage/feature.js +7 -6
- package/features/pages/DeletePage/feature.js.map +1 -1
- package/features/pages/DeletePage/index.js +1 -3
- package/features/pages/DuplicatePage/DuplicatePageRepository.js +50 -53
- package/features/pages/DuplicatePage/DuplicatePageRepository.js.map +1 -1
- package/features/pages/DuplicatePage/DuplicatePageUseCase.js +35 -43
- package/features/pages/DuplicatePage/DuplicatePageUseCase.js.map +1 -1
- package/features/pages/DuplicatePage/abstractions.js +5 -30
- package/features/pages/DuplicatePage/abstractions.js.map +1 -1
- package/features/pages/DuplicatePage/events.js +16 -14
- package/features/pages/DuplicatePage/events.js.map +1 -1
- package/features/pages/DuplicatePage/feature.js +7 -6
- package/features/pages/DuplicatePage/feature.js.map +1 -1
- package/features/pages/DuplicatePage/index.js +1 -3
- package/features/pages/GetDeletedPageById/GetDeletedPageByIdRepository.js +20 -20
- package/features/pages/GetDeletedPageById/GetDeletedPageByIdRepository.js.map +1 -1
- package/features/pages/GetDeletedPageById/GetDeletedPageByIdUseCase.js +19 -21
- package/features/pages/GetDeletedPageById/GetDeletedPageByIdUseCase.js.map +1 -1
- package/features/pages/GetDeletedPageById/abstractions.js +3 -12
- package/features/pages/GetDeletedPageById/abstractions.js.map +1 -1
- package/features/pages/GetDeletedPageById/feature.js +7 -6
- package/features/pages/GetDeletedPageById/feature.js.map +1 -1
- package/features/pages/GetDeletedPageById/index.js +0 -2
- package/features/pages/GetPageById/GetPageByIdRepository.js +20 -18
- package/features/pages/GetPageById/GetPageByIdRepository.js.map +1 -1
- package/features/pages/GetPageById/GetPageByIdUseCase.js +19 -21
- package/features/pages/GetPageById/GetPageByIdUseCase.js.map +1 -1
- package/features/pages/GetPageById/abstractions.js +3 -13
- package/features/pages/GetPageById/abstractions.js.map +1 -1
- package/features/pages/GetPageById/feature.js +7 -6
- package/features/pages/GetPageById/feature.js.map +1 -1
- package/features/pages/GetPageById/index.js +0 -2
- package/features/pages/GetPageByPath/GetPageByPathRepository.js +26 -26
- package/features/pages/GetPageByPath/GetPageByPathRepository.js.map +1 -1
- package/features/pages/GetPageByPath/GetPageByPathUseCase.js +19 -21
- package/features/pages/GetPageByPath/GetPageByPathUseCase.js.map +1 -1
- package/features/pages/GetPageByPath/abstractions.js +3 -13
- package/features/pages/GetPageByPath/abstractions.js.map +1 -1
- package/features/pages/GetPageByPath/feature.js +7 -6
- package/features/pages/GetPageByPath/feature.js.map +1 -1
- package/features/pages/GetPageByPath/index.js +0 -2
- package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsRepository.js +42 -48
- package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsRepository.js.map +1 -1
- package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsUseCase.js +14 -13
- package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsUseCase.js.map +1 -1
- package/features/pages/GetPageLanguagePaths/abstractions.js +3 -3
- package/features/pages/GetPageLanguagePaths/abstractions.js.map +1 -1
- package/features/pages/GetPageLanguagePaths/feature.js +7 -6
- package/features/pages/GetPageLanguagePaths/feature.js.map +1 -1
- package/features/pages/GetPageLanguagePaths/index.js +0 -2
- package/features/pages/GetPageRevisions/GetPageRevisionsRepository.js +17 -15
- package/features/pages/GetPageRevisions/GetPageRevisionsRepository.js.map +1 -1
- package/features/pages/GetPageRevisions/GetPageRevisionsUseCase.js +22 -24
- package/features/pages/GetPageRevisions/GetPageRevisionsUseCase.js.map +1 -1
- package/features/pages/GetPageRevisions/abstractions.js +3 -13
- package/features/pages/GetPageRevisions/abstractions.js.map +1 -1
- package/features/pages/GetPageRevisions/feature.js +7 -6
- package/features/pages/GetPageRevisions/feature.js.map +1 -1
- package/features/pages/GetPageRevisions/index.js +0 -2
- package/features/pages/ListDeletedPages/ListDeletedPagesRepository.js +37 -36
- package/features/pages/ListDeletedPages/ListDeletedPagesRepository.js.map +1 -1
- package/features/pages/ListDeletedPages/ListDeletedPagesUseCase.js +27 -24
- package/features/pages/ListDeletedPages/ListDeletedPagesUseCase.js.map +1 -1
- package/features/pages/ListDeletedPages/abstractions.js +3 -12
- package/features/pages/ListDeletedPages/abstractions.js.map +1 -1
- package/features/pages/ListDeletedPages/feature.js +7 -6
- package/features/pages/ListDeletedPages/feature.js.map +1 -1
- package/features/pages/ListDeletedPages/index.js +0 -2
- package/features/pages/ListPages/ListPagesRepository.js +37 -36
- package/features/pages/ListPages/ListPagesRepository.js.map +1 -1
- package/features/pages/ListPages/ListPagesUseCase.js +27 -24
- package/features/pages/ListPages/ListPagesUseCase.js.map +1 -1
- package/features/pages/ListPages/abstractions.js +3 -13
- package/features/pages/ListPages/abstractions.js.map +1 -1
- package/features/pages/ListPages/feature.js +7 -6
- package/features/pages/ListPages/feature.js.map +1 -1
- package/features/pages/ListPages/index.js +0 -2
- package/features/pages/MovePage/MovePageRepository.js +25 -27
- package/features/pages/MovePage/MovePageRepository.js.map +1 -1
- package/features/pages/MovePage/MovePageUseCase.js +39 -49
- package/features/pages/MovePage/MovePageUseCase.js.map +1 -1
- package/features/pages/MovePage/abstractions.js +5 -30
- package/features/pages/MovePage/abstractions.js.map +1 -1
- package/features/pages/MovePage/events.js +16 -14
- package/features/pages/MovePage/events.js.map +1 -1
- package/features/pages/MovePage/feature.js +7 -6
- package/features/pages/MovePage/feature.js.map +1 -1
- package/features/pages/MovePage/index.js +1 -3
- package/features/pages/PublishPage/PublishPageRepository.js +26 -28
- package/features/pages/PublishPage/PublishPageRepository.js.map +1 -1
- package/features/pages/PublishPage/PublishPageUseCase.js +36 -46
- package/features/pages/PublishPage/PublishPageUseCase.js.map +1 -1
- package/features/pages/PublishPage/abstractions.js +5 -30
- package/features/pages/PublishPage/abstractions.js.map +1 -1
- package/features/pages/PublishPage/events.js +16 -14
- package/features/pages/PublishPage/events.js.map +1 -1
- package/features/pages/PublishPage/feature.js +7 -6
- package/features/pages/PublishPage/feature.js.map +1 -1
- package/features/pages/PublishPage/index.js +0 -2
- package/features/pages/RestorePage/RestorePageRepository.js +20 -19
- package/features/pages/RestorePage/RestorePageRepository.js.map +1 -1
- package/features/pages/RestorePage/RestorePageUseCase.js +32 -39
- package/features/pages/RestorePage/RestorePageUseCase.js.map +1 -1
- package/features/pages/RestorePage/abstractions.js +5 -27
- package/features/pages/RestorePage/abstractions.js.map +1 -1
- package/features/pages/RestorePage/events.js +16 -14
- package/features/pages/RestorePage/events.js.map +1 -1
- package/features/pages/RestorePage/feature.js +7 -6
- package/features/pages/RestorePage/feature.js.map +1 -1
- package/features/pages/RestorePage/index.js +0 -2
- package/features/pages/TranslatePage/TranslatePageUseCase.js +46 -62
- package/features/pages/TranslatePage/TranslatePageUseCase.js.map +1 -1
- package/features/pages/TranslatePage/abstractions.js +2 -11
- package/features/pages/TranslatePage/abstractions.js.map +1 -1
- package/features/pages/TranslatePage/feature.js +6 -5
- package/features/pages/TranslatePage/feature.js.map +1 -1
- package/features/pages/TranslatePage/index.js +0 -2
- package/features/pages/TrashPage/TrashPageRepository.js +21 -20
- package/features/pages/TrashPage/TrashPageRepository.js.map +1 -1
- package/features/pages/TrashPage/TrashPageUseCase.js +33 -40
- package/features/pages/TrashPage/TrashPageUseCase.js.map +1 -1
- package/features/pages/TrashPage/abstractions.js +5 -27
- package/features/pages/TrashPage/abstractions.js.map +1 -1
- package/features/pages/TrashPage/events.js +16 -14
- package/features/pages/TrashPage/events.js.map +1 -1
- package/features/pages/TrashPage/feature.js +7 -6
- package/features/pages/TrashPage/feature.js.map +1 -1
- package/features/pages/TrashPage/index.js +0 -2
- package/features/pages/UnpublishPage/UnpublishPageRepository.js +26 -28
- package/features/pages/UnpublishPage/UnpublishPageRepository.js.map +1 -1
- package/features/pages/UnpublishPage/UnpublishPageUseCase.js +35 -45
- package/features/pages/UnpublishPage/UnpublishPageUseCase.js.map +1 -1
- package/features/pages/UnpublishPage/abstractions.js +5 -30
- package/features/pages/UnpublishPage/abstractions.js.map +1 -1
- package/features/pages/UnpublishPage/events.js +16 -14
- package/features/pages/UnpublishPage/events.js.map +1 -1
- package/features/pages/UnpublishPage/feature.js +7 -6
- package/features/pages/UnpublishPage/feature.js.map +1 -1
- package/features/pages/UnpublishPage/index.js +0 -2
- package/features/pages/UpdatePage/UpdatePageRepository.js +30 -34
- package/features/pages/UpdatePage/UpdatePageRepository.js.map +1 -1
- package/features/pages/UpdatePage/UpdatePageUseCase.js +44 -54
- package/features/pages/UpdatePage/UpdatePageUseCase.js.map +1 -1
- package/features/pages/UpdatePage/abstractions.js +5 -30
- package/features/pages/UpdatePage/abstractions.js.map +1 -1
- package/features/pages/UpdatePage/events.js +16 -14
- package/features/pages/UpdatePage/events.js.map +1 -1
- package/features/pages/UpdatePage/feature.js +7 -6
- package/features/pages/UpdatePage/feature.js.map +1 -1
- package/features/pages/UpdatePage/index.js +0 -2
- package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionRepository.d.ts +15 -0
- package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionRepository.js +40 -0
- package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionRepository.js.map +1 -0
- package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionUseCase.d.ts +16 -0
- package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionUseCase.js +56 -0
- package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionUseCase.js.map +1 -0
- package/features/pages/UpdatePageRevisionDescription/abstractions.d.ts +67 -0
- package/features/pages/UpdatePageRevisionDescription/abstractions.js +8 -0
- package/features/pages/UpdatePageRevisionDescription/abstractions.js.map +1 -0
- package/features/pages/UpdatePageRevisionDescription/events.d.ts +10 -0
- package/features/pages/UpdatePageRevisionDescription/events.js +21 -0
- package/features/pages/UpdatePageRevisionDescription/events.js.map +1 -0
- package/features/pages/UpdatePageRevisionDescription/feature.d.ts +4 -0
- package/features/pages/UpdatePageRevisionDescription/feature.js +13 -0
- package/features/pages/UpdatePageRevisionDescription/feature.js.map +1 -0
- package/features/pages/UpdatePageRevisionDescription/index.d.ts +1 -0
- package/features/pages/UpdatePageRevisionDescription/index.js +1 -0
- package/features/permissions/abstractions.js +2 -1
- package/features/permissions/abstractions.js.map +1 -1
- package/features/permissions/feature.js +2 -1
- package/features/permissions/feature.js.map +1 -1
- package/features/redirects/CreateRedirect/CreateRedirectRepository.js +23 -21
- package/features/redirects/CreateRedirect/CreateRedirectRepository.js.map +1 -1
- package/features/redirects/CreateRedirect/CreateRedirectUseCase.js +29 -34
- package/features/redirects/CreateRedirect/CreateRedirectUseCase.js.map +1 -1
- package/features/redirects/CreateRedirect/abstractions.js +5 -30
- package/features/redirects/CreateRedirect/abstractions.js.map +1 -1
- package/features/redirects/CreateRedirect/events.js +16 -14
- package/features/redirects/CreateRedirect/events.js.map +1 -1
- package/features/redirects/CreateRedirect/feature.js +7 -6
- package/features/redirects/CreateRedirect/feature.js.map +1 -1
- package/features/redirects/CreateRedirect/index.js +1 -3
- package/features/redirects/DeleteRedirect/DeleteRedirectRepository.js +19 -17
- package/features/redirects/DeleteRedirect/DeleteRedirectRepository.js.map +1 -1
- package/features/redirects/DeleteRedirect/DeleteRedirectUseCase.js +34 -41
- package/features/redirects/DeleteRedirect/DeleteRedirectUseCase.js.map +1 -1
- package/features/redirects/DeleteRedirect/abstractions.js +5 -30
- package/features/redirects/DeleteRedirect/abstractions.js.map +1 -1
- package/features/redirects/DeleteRedirect/events.js +16 -14
- package/features/redirects/DeleteRedirect/events.js.map +1 -1
- package/features/redirects/DeleteRedirect/feature.js +7 -6
- package/features/redirects/DeleteRedirect/feature.js.map +1 -1
- package/features/redirects/DeleteRedirect/index.js +1 -3
- package/features/redirects/GetActiveRedirects/GetActiveRedirectsRepository.js +22 -21
- package/features/redirects/GetActiveRedirects/GetActiveRedirectsRepository.js.map +1 -1
- package/features/redirects/GetActiveRedirects/GetActiveRedirectsUseCase.js +17 -15
- package/features/redirects/GetActiveRedirects/GetActiveRedirectsUseCase.js.map +1 -1
- package/features/redirects/GetActiveRedirects/abstractions.js +3 -13
- package/features/redirects/GetActiveRedirects/abstractions.js.map +1 -1
- package/features/redirects/GetActiveRedirects/feature.js +7 -6
- package/features/redirects/GetActiveRedirects/feature.js.map +1 -1
- package/features/redirects/GetActiveRedirects/index.js +0 -2
- package/features/redirects/GetRedirectById/GetRedirectByIdRepository.js +20 -18
- package/features/redirects/GetRedirectById/GetRedirectByIdRepository.js.map +1 -1
- package/features/redirects/GetRedirectById/GetRedirectByIdUseCase.js +20 -22
- package/features/redirects/GetRedirectById/GetRedirectByIdUseCase.js.map +1 -1
- package/features/redirects/GetRedirectById/abstractions.js +3 -13
- package/features/redirects/GetRedirectById/abstractions.js.map +1 -1
- package/features/redirects/GetRedirectById/feature.js +7 -6
- package/features/redirects/GetRedirectById/feature.js.map +1 -1
- package/features/redirects/GetRedirectById/index.js +0 -2
- package/features/redirects/InvalidateRedirectsCache/InvalidateRedirectsCacheUseCase.js +23 -20
- package/features/redirects/InvalidateRedirectsCache/InvalidateRedirectsCacheUseCase.js.map +1 -1
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterCreateHandler.js +13 -16
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterCreateHandler.js.map +1 -1
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterDeleteHandler.js +13 -16
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterDeleteHandler.js.map +1 -1
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterUpdateHandler.js +13 -17
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterUpdateHandler.js.map +1 -1
- package/features/redirects/InvalidateRedirectsCache/abstractions.js +2 -7
- package/features/redirects/InvalidateRedirectsCache/abstractions.js.map +1 -1
- package/features/redirects/InvalidateRedirectsCache/feature.js +9 -8
- package/features/redirects/InvalidateRedirectsCache/feature.js.map +1 -1
- package/features/redirects/InvalidateRedirectsCache/index.js +0 -2
- package/features/redirects/ListRedirects/ListRedirectsRepository.js +35 -34
- package/features/redirects/ListRedirects/ListRedirectsRepository.js.map +1 -1
- package/features/redirects/ListRedirects/ListRedirectsUseCase.js +28 -25
- package/features/redirects/ListRedirects/ListRedirectsUseCase.js.map +1 -1
- package/features/redirects/ListRedirects/abstractions.js +3 -17
- package/features/redirects/ListRedirects/abstractions.js.map +1 -1
- package/features/redirects/ListRedirects/feature.js +7 -6
- package/features/redirects/ListRedirects/feature.js.map +1 -1
- package/features/redirects/ListRedirects/index.js +0 -2
- package/features/redirects/MoveRedirect/MoveRedirectRepository.js +25 -27
- package/features/redirects/MoveRedirect/MoveRedirectRepository.js.map +1 -1
- package/features/redirects/MoveRedirect/MoveRedirectUseCase.js +39 -49
- package/features/redirects/MoveRedirect/MoveRedirectUseCase.js.map +1 -1
- package/features/redirects/MoveRedirect/abstractions.js +5 -30
- package/features/redirects/MoveRedirect/abstractions.js.map +1 -1
- package/features/redirects/MoveRedirect/events.js +16 -14
- package/features/redirects/MoveRedirect/events.js.map +1 -1
- package/features/redirects/MoveRedirect/feature.js +7 -6
- package/features/redirects/MoveRedirect/feature.js.map +1 -1
- package/features/redirects/MoveRedirect/index.js +1 -3
- package/features/redirects/UpdateRedirect/UpdateRedirectRepository.js +31 -35
- package/features/redirects/UpdateRedirect/UpdateRedirectRepository.js.map +1 -1
- package/features/redirects/UpdateRedirect/UpdateRedirectUseCase.js +44 -54
- package/features/redirects/UpdateRedirect/UpdateRedirectUseCase.js.map +1 -1
- package/features/redirects/UpdateRedirect/abstractions.js +5 -30
- package/features/redirects/UpdateRedirect/abstractions.js.map +1 -1
- package/features/redirects/UpdateRedirect/events.js +16 -14
- package/features/redirects/UpdateRedirect/events.js.map +1 -1
- package/features/redirects/UpdateRedirect/feature.js +7 -6
- package/features/redirects/UpdateRedirect/feature.js.map +1 -1
- package/features/redirects/UpdateRedirect/index.js +0 -2
- package/features/tenantManager/TenantModelExtension.js +52 -32
- package/features/tenantManager/TenantModelExtension.js.map +1 -1
- package/features/tenantManager/feature.js +6 -5
- package/features/tenantManager/feature.js.map +1 -1
- package/graphql/createGraphQL.js +15 -12
- package/graphql/createGraphQL.js.map +1 -1
- package/graphql/nextjs/NextjsGraphQLSchema.js +28 -29
- package/graphql/nextjs/NextjsGraphQLSchema.js.map +1 -1
- package/graphql/pages/pages.gql.js +221 -324
- package/graphql/pages/pages.gql.js.map +1 -1
- package/graphql/pages/pages.typeDefs.d.ts +1 -1
- package/graphql/pages/pages.typeDefs.js +7 -1
- package/graphql/pages/pages.typeDefs.js.map +1 -1
- package/graphql/redirects/redirects.gql.js +56 -86
- package/graphql/redirects/redirects.gql.js.map +1 -1
- package/graphql/redirects/redirects.typeDefs.js +3 -4
- package/graphql/redirects/redirects.typeDefs.js.map +1 -1
- package/index.d.ts +1 -1
- package/index.js +64 -61
- package/index.js.map +1 -1
- package/package.json +20 -20
- package/rest/ActiveRedirectDto.js +0 -3
- package/rest/ActiveRedirectRestMapper.js +10 -9
- package/rest/ActiveRedirectRestMapper.js.map +1 -1
- package/rest/getRedirects.js +19 -26
- package/rest/getRedirects.js.map +1 -1
- package/utils/ensureAuthentication.js +6 -9
- package/utils/ensureAuthentication.js.map +1 -1
- package/utils/resolve.js +7 -6
- package/utils/resolve.js.map +1 -1
- package/domain/shared/abstractions.js.map +0 -1
- package/exports/api/website-builder/nextjs.js.map +0 -1
- package/exports/api/website-builder/page.js.map +0 -1
- package/exports/api/website-builder/redirect.js.map +0 -1
- package/features/nextjs/index.js.map +0 -1
- package/features/pages/CreatePage/index.js.map +0 -1
- package/features/pages/CreatePageRevisionFrom/index.js.map +0 -1
- package/features/pages/DeletePage/index.js.map +0 -1
- package/features/pages/DuplicatePage/index.js.map +0 -1
- package/features/pages/GetDeletedPageById/index.js.map +0 -1
- package/features/pages/GetPageById/index.js.map +0 -1
- package/features/pages/GetPageByPath/index.js.map +0 -1
- package/features/pages/GetPageLanguagePaths/index.js.map +0 -1
- package/features/pages/GetPageRevisions/index.js.map +0 -1
- package/features/pages/ListDeletedPages/index.js.map +0 -1
- package/features/pages/ListPages/index.js.map +0 -1
- package/features/pages/MovePage/index.js.map +0 -1
- package/features/pages/PublishPage/index.js.map +0 -1
- package/features/pages/RestorePage/index.js.map +0 -1
- package/features/pages/TranslatePage/index.js.map +0 -1
- package/features/pages/TrashPage/index.js.map +0 -1
- package/features/pages/UnpublishPage/index.js.map +0 -1
- package/features/pages/UpdatePage/index.js.map +0 -1
- package/features/redirects/CreateRedirect/index.js.map +0 -1
- package/features/redirects/DeleteRedirect/index.js.map +0 -1
- package/features/redirects/GetActiveRedirects/index.js.map +0 -1
- package/features/redirects/GetRedirectById/index.js.map +0 -1
- package/features/redirects/InvalidateRedirectsCache/index.js.map +0 -1
- package/features/redirects/ListRedirects/index.js.map +0 -1
- package/features/redirects/MoveRedirect/index.js.map +0 -1
- package/features/redirects/UpdateRedirect/index.js.map +0 -1
- package/rest/ActiveRedirectDto.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/pages/MovePage/MovePageRepository.js","sources":["../../../../src/features/pages/MovePage/MovePageRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { MovePageRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { PageModel, type WbPage } from \"~/domain/page/abstractions.js\";\nimport { PagePersistenceError } from \"~/domain/page/errors.js\";\nimport { MoveEntryRepository } from \"@webiny/api-headless-cms/features/contentEntry/MoveEntry/index.js\";\nimport { GetPageByIdRepository } from \"~/features/pages/GetPageById/abstractions.js\";\n\nclass MovePageRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private moveEntry: MoveEntryRepository.Interface,\n private getPageById: GetPageByIdRepository.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.getPageById.execute(params.id);\n\n if (getResult.isFail()) {\n return Result.fail(getResult.error);\n }\n\n // Update the page location with the new folderId\n const result = await this.moveEntry.execute(this.pageModel, params.id, params.folderId);\n\n if (result.isFail()) {\n return Result.fail(new PagePersistenceError(result.error));\n }\n\n const movedPage: WbPage = {\n ...getResult.value,\n location: {\n folderId: params.folderId\n }\n };\n\n return Result.ok(movedPage);\n }\n}\n\nexport const MovePageRepository = RepositoryAbstraction.createImplementation({\n implementation: MovePageRepositoryImpl,\n dependencies: [MoveEntryRepository, GetPageByIdRepository, PageModel]\n});\n"],"names":["MovePageRepositoryImpl","moveEntry","getPageById","pageModel","params","getResult","Result","result","PagePersistenceError","movedPage","MovePageRepository","RepositoryAbstraction","MoveEntryRepository","GetPageByIdRepository","PageModel"],"mappings":";;;;;;AAOA,MAAMA;IACF,YACYC,SAAwC,EACxCC,WAA4C,EAC5CC,SAA8B,CACxC;aAHUF,SAAS,GAATA;aACAC,WAAW,GAAXA;aACAC,SAAS,GAATA;IACT;IAEH,MAAM,QAAQC,MAAoC,EAAgC;QAE9E,MAAMC,YAAY,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAACD,OAAO,EAAE;QAE1D,IAAIC,UAAU,MAAM,IAChB,OAAOC,OAAO,IAAI,CAACD,UAAU,KAAK;QAItC,MAAME,SAAS,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAEH,OAAO,EAAE,EAAEA,OAAO,QAAQ;QAEtF,IAAIG,OAAO,MAAM,IACb,OAAOD,OAAO,IAAI,CAAC,IAAIE,qBAAqBD,OAAO,KAAK;QAG5D,MAAME,YAAoB;YACtB,GAAGJ,UAAU,KAAK;YAClB,UAAU;gBACN,UAAUD,OAAO,QAAQ;YAC7B;QACJ;QAEA,OAAOE,OAAO,EAAE,CAACG;IACrB;AACJ;AAEO,MAAMC,wCAAqBC,mBAAAA,oBAA0C,CAAC;IACzE,gBAAgBX;IAChB,cAAc;QAACY;QAAqBC;QAAuBC;KAAU;AACzE"}
|
|
@@ -1,61 +1,51 @@
|
|
|
1
1
|
import { Result, createImplementation } from "@webiny/feature/api";
|
|
2
2
|
import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { MovePageRepository, MovePageUseCase } from "./abstractions.js";
|
|
4
|
+
import { PageAfterMoveEvent, PageBeforeMoveEvent } from "./events.js";
|
|
5
5
|
import { GetPageByIdUseCase } from "../GetPageById/index.js";
|
|
6
6
|
import { WbPermissions } from "../../permissions/abstractions.js";
|
|
7
7
|
import { PageNotAuthorizedError } from "../../../domain/page/errors.js";
|
|
8
8
|
class MovePageUseCaseImpl {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
async execute(params) {
|
|
16
|
-
const hasPermission = await this.permissions.canEdit("page");
|
|
17
|
-
if (!hasPermission) {
|
|
18
|
-
return Result.fail(new PageNotAuthorizedError());
|
|
9
|
+
constructor(permissions, eventPublisher, getPageById, repository){
|
|
10
|
+
this.permissions = permissions;
|
|
11
|
+
this.eventPublisher = eventPublisher;
|
|
12
|
+
this.getPageById = getPageById;
|
|
13
|
+
this.repository = repository;
|
|
19
14
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
return result;
|
|
15
|
+
async execute(params) {
|
|
16
|
+
const hasPermission = await this.permissions.canEdit("page");
|
|
17
|
+
if (!hasPermission) return Result.fail(new PageNotAuthorizedError());
|
|
18
|
+
const getResult = await this.getPageById.execute(params.id);
|
|
19
|
+
if (getResult.isFail()) return getResult;
|
|
20
|
+
const original = getResult.value;
|
|
21
|
+
const canEdit = await this.permissions.canEdit("page", original);
|
|
22
|
+
if (!canEdit) return Result.fail(new PageNotAuthorizedError());
|
|
23
|
+
const beforeEvent = new PageBeforeMoveEvent({
|
|
24
|
+
original,
|
|
25
|
+
input: params
|
|
26
|
+
});
|
|
27
|
+
await this.eventPublisher.publish(beforeEvent);
|
|
28
|
+
const result = await this.repository.execute(params);
|
|
29
|
+
if (result.isFail()) return result;
|
|
30
|
+
const afterEvent = new PageAfterMoveEvent({
|
|
31
|
+
original,
|
|
32
|
+
input: params,
|
|
33
|
+
page: result.value
|
|
34
|
+
});
|
|
35
|
+
await this.eventPublisher.publish(afterEvent);
|
|
36
|
+
return Result.ok(result.value);
|
|
43
37
|
}
|
|
44
|
-
|
|
45
|
-
// Publish after move event
|
|
46
|
-
const afterEvent = new PageAfterMoveEvent({
|
|
47
|
-
original,
|
|
48
|
-
input: params,
|
|
49
|
-
page: result.value
|
|
50
|
-
});
|
|
51
|
-
await this.eventPublisher.publish(afterEvent);
|
|
52
|
-
return Result.ok(result.value);
|
|
53
|
-
}
|
|
54
38
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
39
|
+
const MovePageUseCase_MovePageUseCase = createImplementation({
|
|
40
|
+
abstraction: MovePageUseCase,
|
|
41
|
+
implementation: MovePageUseCaseImpl,
|
|
42
|
+
dependencies: [
|
|
43
|
+
WbPermissions,
|
|
44
|
+
EventPublisher,
|
|
45
|
+
GetPageByIdUseCase,
|
|
46
|
+
MovePageRepository
|
|
47
|
+
]
|
|
59
48
|
});
|
|
49
|
+
export { MovePageUseCase_MovePageUseCase as MovePageUseCase };
|
|
60
50
|
|
|
61
51
|
//# sourceMappingURL=MovePageUseCase.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/pages/MovePage/MovePageUseCase.js","sources":["../../../../src/features/pages/MovePage/MovePageUseCase.ts"],"sourcesContent":["import { Result, createImplementation } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { MovePageUseCase as UseCaseAbstraction, MovePageRepository } from \"./abstractions.js\";\nimport { PageBeforeMoveEvent, PageAfterMoveEvent } from \"./events.js\";\nimport { GetPageByIdUseCase } from \"~/features/pages/GetPageById/index.js\";\nimport { WbPermissions } from \"~/features/permissions/abstractions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\n\nclass MovePageUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getPageById: GetPageByIdUseCase.Interface,\n private repository: MovePageRepository.Interface\n ) {}\n\n async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canEdit(\"page\");\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Get the original page for events\n const getResult = await this.getPageById.execute(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(\"page\", original);\n if (!canEdit) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Publish before move event\n const beforeEvent = new PageBeforeMoveEvent({\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 PageAfterMoveEvent({\n original,\n input: params,\n page: result.value\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return Result.ok(result.value);\n }\n}\n\nexport const MovePageUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: MovePageUseCaseImpl,\n dependencies: [WbPermissions, EventPublisher, GetPageByIdUseCase, MovePageRepository]\n});\n"],"names":["MovePageUseCaseImpl","permissions","eventPublisher","getPageById","repository","params","hasPermission","Result","PageNotAuthorizedError","getResult","original","canEdit","beforeEvent","PageBeforeMoveEvent","result","afterEvent","PageAfterMoveEvent","MovePageUseCase","createImplementation","UseCaseAbstraction","WbPermissions","EventPublisher","GetPageByIdUseCase","MovePageRepository"],"mappings":";;;;;;;AAWA,MAAMA;IACF,YACYC,WAAoC,EACpCC,cAAmD,EACnDC,WAAyC,EACzCC,UAAwC,CAClD;aAJUH,WAAW,GAAXA;aACAC,cAAc,GAAdA;aACAC,WAAW,GAAXA;aACAC,UAAU,GAAVA;IACT;IAEH,MAAM,QAAQC,MAAiC,EAA6B;QACxE,MAAMC,gBAAgB,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;QACrD,IAAI,CAACA,eACD,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAI3B,MAAMC,YAAY,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAACJ,OAAO,EAAE;QAE1D,IAAII,UAAU,MAAM,IAChB,OAAOA;QAGX,MAAMC,WAAWD,UAAU,KAAK;QAEhC,MAAME,UAAU,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQD;QACvD,IAAI,CAACC,SACD,OAAOJ,OAAO,IAAI,CAAC,IAAIC;QAI3B,MAAMI,cAAc,IAAIC,oBAAoB;YACxCH;YACA,OAAOL;QACX;QAEA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAACO;QAGlC,MAAME,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACT;QAE7C,IAAIS,OAAO,MAAM,IACb,OAAOA;QAIX,MAAMC,aAAa,IAAIC,mBAAmB;YACtCN;YACA,OAAOL;YACP,MAAMS,OAAO,KAAK;QACtB;QAEA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAACC;QAElC,OAAOR,OAAO,EAAE,CAACO,OAAO,KAAK;IACjC;AACJ;AAEO,MAAMG,kCAAkBC,qBAAqB;IAChD,aAAaC;IACb,gBAAgBnB;IAChB,cAAc;QAACoB;QAAeC;QAAgBC;QAAoBC;KAAmB;AACzF"}
|
|
@@ -1,33 +1,8 @@
|
|
|
1
1
|
import { createAbstraction } from "@webiny/feature/api";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
// ============================================================================
|
|
8
|
-
// Repository Abstraction
|
|
9
|
-
// ============================================================================
|
|
10
|
-
|
|
11
|
-
export const MovePageRepository = createAbstraction("Wb/MovePageRepository");
|
|
12
|
-
|
|
13
|
-
// ============================================================================
|
|
14
|
-
// Use Case Abstraction
|
|
15
|
-
// ============================================================================
|
|
16
|
-
|
|
17
|
-
/** Move a page to a different folder. */
|
|
18
|
-
export const MovePageUseCase = createAbstraction("Wb/MovePageUseCase");
|
|
19
|
-
|
|
20
|
-
// ============================================================================
|
|
21
|
-
// Event Payload Types
|
|
22
|
-
// ============================================================================
|
|
23
|
-
|
|
24
|
-
// ============================================================================
|
|
25
|
-
// Event Handler Abstractions
|
|
26
|
-
// ============================================================================
|
|
27
|
-
|
|
28
|
-
/** Hook into page lifecycle before a page is moved. */
|
|
29
|
-
export const PageBeforeMoveEventHandler = createAbstraction("Wb/PageBeforeMoveEventHandler");
|
|
30
|
-
/** Hook into page lifecycle after a page is moved. */
|
|
31
|
-
export const PageAfterMoveEventHandler = createAbstraction("Wb/PageAfterMoveEventHandler");
|
|
2
|
+
const MovePageRepository = createAbstraction("Wb/MovePageRepository");
|
|
3
|
+
const MovePageUseCase = createAbstraction("Wb/MovePageUseCase");
|
|
4
|
+
const PageBeforeMoveEventHandler = createAbstraction("Wb/PageBeforeMoveEventHandler");
|
|
5
|
+
const PageAfterMoveEventHandler = createAbstraction("Wb/PageAfterMoveEventHandler");
|
|
6
|
+
export { MovePageRepository, MovePageUseCase, PageAfterMoveEventHandler, PageBeforeMoveEventHandler };
|
|
32
7
|
|
|
33
8
|
//# sourceMappingURL=abstractions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/pages/MovePage/abstractions.js","sources":["../../../../src/features/pages/MovePage/abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { IEventHandler } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport {\n PageNotFoundError,\n PagePersistenceError,\n PageNotAuthorizedError\n} from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface IMoveWbPageParams {\n id: string;\n folderId: string;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IMovePageRepository {\n execute(params: IMoveWbPageParams): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface IMovePageRepositoryErrors {\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IMovePageRepositoryErrors[keyof IMovePageRepositoryErrors];\n\nexport const MovePageRepository = createAbstraction<IMovePageRepository>(\"Wb/MovePageRepository\");\n\nexport namespace MovePageRepository {\n export type Interface = IMovePageRepository;\n export type Params = IMoveWbPageParams;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IMovePageUseCase {\n execute(params: IMoveWbPageParams): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface IMovePageUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IMovePageUseCaseErrors[keyof IMovePageUseCaseErrors];\n\n/** Move a page to a different folder. */\nexport const MovePageUseCase = createAbstraction<IMovePageUseCase>(\"Wb/MovePageUseCase\");\n\nexport namespace MovePageUseCase {\n export type Interface = IMovePageUseCase;\n export type Params = IMoveWbPageParams;\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 PageBeforeMovePayload {\n original: WbPage;\n input: IMoveWbPageParams;\n}\n\nexport interface PageAfterMovePayload {\n original: WbPage;\n input: IMoveWbPageParams;\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\n/** Hook into page lifecycle before a page is moved. */\nexport const PageBeforeMoveEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforeMovePayload>>\n>(\"Wb/PageBeforeMoveEventHandler\");\n\nexport namespace PageBeforeMoveEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforeMovePayload>>;\n export type Event = DomainEvent<PageBeforeMovePayload>;\n export type Page = WbPage;\n}\n\n/** Hook into page lifecycle after a page is moved. */\nexport const PageAfterMoveEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterMovePayload>>\n>(\"Wb/PageAfterMoveEventHandler\");\n\nexport namespace PageAfterMoveEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterMovePayload>>;\n export type Event = DomainEvent<PageAfterMovePayload>;\n export type Page = WbPage;\n}\n"],"names":["MovePageRepository","createAbstraction","MovePageUseCase","PageBeforeMoveEventHandler","PageAfterMoveEventHandler"],"mappings":";AAkCO,MAAMA,qBAAqBC,kBAAuC;AA0BlE,MAAMC,kBAAkBD,kBAAoC;AA8B5D,MAAME,6BAA6BF,kBAExC;AASK,MAAMG,4BAA4BH,kBAEvC"}
|
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
import { PageAfterMoveEventHandler, PageBeforeMoveEventHandler } from "./abstractions.js";
|
|
3
|
+
class PageBeforeMoveEvent extends DomainEvent {
|
|
4
|
+
getHandlerAbstraction() {
|
|
5
|
+
return PageBeforeMoveEventHandler;
|
|
6
|
+
}
|
|
7
|
+
constructor(...args){
|
|
8
|
+
super(...args), this.eventType = "page.beforeMove";
|
|
9
|
+
}
|
|
9
10
|
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
class PageAfterMoveEvent extends DomainEvent {
|
|
12
|
+
getHandlerAbstraction() {
|
|
13
|
+
return PageAfterMoveEventHandler;
|
|
14
|
+
}
|
|
15
|
+
constructor(...args){
|
|
16
|
+
super(...args), this.eventType = "page.afterMove";
|
|
17
|
+
}
|
|
17
18
|
}
|
|
19
|
+
export { PageAfterMoveEvent, PageBeforeMoveEvent };
|
|
18
20
|
|
|
19
21
|
//# sourceMappingURL=events.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/pages/MovePage/events.js","sources":["../../../../src/features/pages/MovePage/events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { PageBeforeMoveEventHandler, PageAfterMoveEventHandler } from \"./abstractions.js\";\nimport type { PageBeforeMovePayload, PageAfterMovePayload } from \"./abstractions.js\";\n\n// PageBeforeMove Event\nexport class PageBeforeMoveEvent extends DomainEvent<PageBeforeMovePayload> {\n eventType = \"page.beforeMove\" as const;\n\n getHandlerAbstraction() {\n return PageBeforeMoveEventHandler;\n }\n}\n\n// PageAfterMove Event\nexport class PageAfterMoveEvent extends DomainEvent<PageAfterMovePayload> {\n eventType = \"page.afterMove\" as const;\n\n getHandlerAbstraction() {\n return PageAfterMoveEventHandler;\n }\n}\n"],"names":["PageBeforeMoveEvent","DomainEvent","PageBeforeMoveEventHandler","PageAfterMoveEvent","PageAfterMoveEventHandler"],"mappings":";;AAKO,MAAMA,4BAA4BC;IAGrC,wBAAwB;QACpB,OAAOC;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB;AAGO,MAAMC,2BAA2BF;IAGpC,wBAAwB;QACpB,OAAOG;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { createFeature } from "@webiny/feature/api";
|
|
2
2
|
import { MovePageRepository } from "./MovePageRepository.js";
|
|
3
3
|
import { MovePageUseCase } from "./MovePageUseCase.js";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
const MovePageFeature = createFeature({
|
|
5
|
+
name: "WebsiteBuilder/MovePage",
|
|
6
|
+
register (container) {
|
|
7
|
+
container.register(MovePageRepository).inSingletonScope();
|
|
8
|
+
container.register(MovePageUseCase);
|
|
9
|
+
}
|
|
10
10
|
});
|
|
11
|
+
export { MovePageFeature };
|
|
11
12
|
|
|
12
13
|
//# sourceMappingURL=feature.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/pages/MovePage/feature.js","sources":["../../../../src/features/pages/MovePage/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { MovePageRepository } from \"./MovePageRepository.js\";\nimport { MovePageUseCase } from \"./MovePageUseCase.js\";\n\nexport const MovePageFeature = createFeature({\n name: \"WebsiteBuilder/MovePage\",\n register(container) {\n container.register(MovePageRepository).inSingletonScope();\n container.register(MovePageUseCase);\n }\n});\n"],"names":["MovePageFeature","createFeature","container","MovePageRepository","MovePageUseCase"],"mappings":";;;AAIO,MAAMA,kBAAkBC,cAAc;IACzC,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC,oBAAoB,gBAAgB;QACvDD,UAAU,QAAQ,CAACE;IACvB;AACJ"}
|
|
@@ -1,41 +1,39 @@
|
|
|
1
1
|
import { Result } from "@webiny/feature/api";
|
|
2
|
-
import { PublishPageRepository
|
|
2
|
+
import { PublishPageRepository } from "./abstractions.js";
|
|
3
3
|
import { PublishEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/PublishEntry";
|
|
4
4
|
import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById";
|
|
5
5
|
import { PageModel } from "../../../domain/page/abstractions.js";
|
|
6
6
|
import { EntryToPageMapper } from "../../../domain/page/EntryToPageMapper.js";
|
|
7
7
|
import { PageNotFoundError, PagePersistenceError } from "../../../domain/page/errors.js";
|
|
8
8
|
class PublishPageRepositoryImpl {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
async execute(params) {
|
|
15
|
-
// First, validate the page exists
|
|
16
|
-
const getResult = await this.getEntryById.execute(this.pageModel, params.id);
|
|
17
|
-
if (getResult.isFail()) {
|
|
18
|
-
if (getResult.error.code === "Cms/Entry/NotFound") {
|
|
19
|
-
return Result.fail(new PageNotFoundError(params.id));
|
|
20
|
-
}
|
|
21
|
-
return Result.fail(new PagePersistenceError(getResult.error));
|
|
9
|
+
constructor(publishEntry, getEntryById, pageModel){
|
|
10
|
+
this.publishEntry = publishEntry;
|
|
11
|
+
this.getEntryById = getEntryById;
|
|
12
|
+
this.pageModel = pageModel;
|
|
22
13
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
14
|
+
async execute(params) {
|
|
15
|
+
const getResult = await this.getEntryById.execute(this.pageModel, params.id);
|
|
16
|
+
if (getResult.isFail()) {
|
|
17
|
+
if ("Cms/Entry/NotFound" === getResult.error.code) return Result.fail(new PageNotFoundError(params.id));
|
|
18
|
+
return Result.fail(new PagePersistenceError(getResult.error));
|
|
19
|
+
}
|
|
20
|
+
const result = await this.publishEntry.execute(this.pageModel, params.id);
|
|
21
|
+
if (result.isFail()) {
|
|
22
|
+
if ("Cms/Entry/NotFound" === result.error.code) return Result.fail(new PageNotFoundError(params.id));
|
|
23
|
+
return Result.fail(new PagePersistenceError(result.error));
|
|
24
|
+
}
|
|
25
|
+
const page = EntryToPageMapper.toPage(result.value);
|
|
26
|
+
return Result.ok(page);
|
|
31
27
|
}
|
|
32
|
-
const page = EntryToPageMapper.toPage(result.value);
|
|
33
|
-
return Result.ok(page);
|
|
34
|
-
}
|
|
35
28
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
29
|
+
const PublishPageRepository_PublishPageRepository = PublishPageRepository.createImplementation({
|
|
30
|
+
implementation: PublishPageRepositoryImpl,
|
|
31
|
+
dependencies: [
|
|
32
|
+
PublishEntryUseCase,
|
|
33
|
+
GetEntryByIdUseCase,
|
|
34
|
+
PageModel
|
|
35
|
+
]
|
|
39
36
|
});
|
|
37
|
+
export { PublishPageRepository_PublishPageRepository as PublishPageRepository };
|
|
40
38
|
|
|
41
39
|
//# sourceMappingURL=PublishPageRepository.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/pages/PublishPage/PublishPageRepository.js","sources":["../../../../src/features/pages/PublishPage/PublishPageRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { PublishPageRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { PublishEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/PublishEntry\";\nimport { GetEntryByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntryById\";\nimport { PageModel } from \"~/domain/page/abstractions.js\";\nimport { EntryToPageMapper } from \"~/domain/page/EntryToPageMapper.js\";\nimport { PageNotFoundError, PagePersistenceError } from \"~/domain/page/errors.js\";\n\nclass PublishPageRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private publishEntry: PublishEntryUseCase.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 // Publish the entry\n const result = await this.publishEntry.execute(this.pageModel, params.id);\n\n if (result.isFail()) {\n if (result.error.code === \"Cms/Entry/NotFound\") {\n return Result.fail(new PageNotFoundError(params.id));\n }\n return Result.fail(new PagePersistenceError(result.error));\n }\n\n const page = EntryToPageMapper.toPage(result.value);\n return Result.ok(page);\n }\n}\n\nexport const PublishPageRepository = RepositoryAbstraction.createImplementation({\n implementation: PublishPageRepositoryImpl,\n dependencies: [PublishEntryUseCase, GetEntryByIdUseCase, PageModel]\n});\n"],"names":["PublishPageRepositoryImpl","publishEntry","getEntryById","pageModel","params","getResult","Result","PageNotFoundError","PagePersistenceError","result","page","EntryToPageMapper","PublishPageRepository","RepositoryAbstraction","PublishEntryUseCase","GetEntryByIdUseCase","PageModel"],"mappings":";;;;;;;AAQA,MAAMA;IACF,YACYC,YAA2C,EAC3CC,YAA2C,EAC3CC,SAA8B,CACxC;aAHUF,YAAY,GAAZA;aACAC,YAAY,GAAZA;aACAC,SAAS,GAATA;IACT;IAEH,MAAM,QAAQC,MAAoC,EAAgC;QAE9E,MAAMC,YAAY,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAED,OAAO,EAAE;QAE3E,IAAIC,UAAU,MAAM,IAAI;YACpB,IAAIA,AAAyB,yBAAzBA,UAAU,KAAK,CAAC,IAAI,EACpB,OAAOC,OAAO,IAAI,CAAC,IAAIC,kBAAkBH,OAAO,EAAE;YAEtD,OAAOE,OAAO,IAAI,CAAC,IAAIE,qBAAqBH,UAAU,KAAK;QAC/D;QAGA,MAAMI,SAAS,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAEL,OAAO,EAAE;QAExE,IAAIK,OAAO,MAAM,IAAI;YACjB,IAAIA,AAAsB,yBAAtBA,OAAO,KAAK,CAAC,IAAI,EACjB,OAAOH,OAAO,IAAI,CAAC,IAAIC,kBAAkBH,OAAO,EAAE;YAEtD,OAAOE,OAAO,IAAI,CAAC,IAAIE,qBAAqBC,OAAO,KAAK;QAC5D;QAEA,MAAMC,OAAOC,kBAAkB,MAAM,CAACF,OAAO,KAAK;QAClD,OAAOH,OAAO,EAAE,CAACI;IACrB;AACJ;AAEO,MAAME,8CAAwBC,sBAAAA,oBAA0C,CAAC;IAC5E,gBAAgBb;IAChB,cAAc;QAACc;QAAqBC;QAAqBC;KAAU;AACvE"}
|
|
@@ -1,58 +1,48 @@
|
|
|
1
1
|
import { Result, createImplementation } from "@webiny/feature/api";
|
|
2
2
|
import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { PublishPageRepository, PublishPageUseCase } from "./abstractions.js";
|
|
4
|
+
import { PageAfterPublishEvent, PageBeforePublishEvent } from "./events.js";
|
|
5
5
|
import { GetPageByIdUseCase } from "../GetPageById/index.js";
|
|
6
6
|
import { WbPermissions } from "../../permissions/abstractions.js";
|
|
7
7
|
import { PageNotAuthorizedError } from "../../../domain/page/errors.js";
|
|
8
8
|
class PublishPageUseCaseImpl {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
async execute(params) {
|
|
16
|
-
const hasPermission = await this.permissions.canPublish("page");
|
|
17
|
-
if (!hasPermission) {
|
|
18
|
-
return Result.fail(new PageNotAuthorizedError());
|
|
9
|
+
constructor(permissions, eventPublisher, getPageById, repository){
|
|
10
|
+
this.permissions = permissions;
|
|
11
|
+
this.eventPublisher = eventPublisher;
|
|
12
|
+
this.getPageById = getPageById;
|
|
13
|
+
this.repository = repository;
|
|
19
14
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
const result = await this.repository.execute(params);
|
|
40
|
-
if (result.isFail()) {
|
|
41
|
-
return result;
|
|
15
|
+
async execute(params) {
|
|
16
|
+
const hasPermission = await this.permissions.canPublish("page");
|
|
17
|
+
if (!hasPermission) return Result.fail(new PageNotAuthorizedError());
|
|
18
|
+
const getResult = await this.getPageById.execute(params.id);
|
|
19
|
+
if (getResult.isFail()) return getResult;
|
|
20
|
+
const page = getResult.value;
|
|
21
|
+
const canAccess = await this.permissions.canAccess("page", page);
|
|
22
|
+
if (!canAccess) return Result.fail(new PageNotAuthorizedError());
|
|
23
|
+
const beforeEvent = new PageBeforePublishEvent({
|
|
24
|
+
page
|
|
25
|
+
});
|
|
26
|
+
await this.eventPublisher.publish(beforeEvent);
|
|
27
|
+
const result = await this.repository.execute(params);
|
|
28
|
+
if (result.isFail()) return result;
|
|
29
|
+
const afterEvent = new PageAfterPublishEvent({
|
|
30
|
+
page: result.value
|
|
31
|
+
});
|
|
32
|
+
await this.eventPublisher.publish(afterEvent);
|
|
33
|
+
return Result.ok(result.value);
|
|
42
34
|
}
|
|
43
|
-
|
|
44
|
-
// Publish after publish event
|
|
45
|
-
const afterEvent = new PageAfterPublishEvent({
|
|
46
|
-
page: result.value
|
|
47
|
-
});
|
|
48
|
-
await this.eventPublisher.publish(afterEvent);
|
|
49
|
-
return Result.ok(result.value);
|
|
50
|
-
}
|
|
51
35
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
36
|
+
const PublishPageUseCase_PublishPageUseCase = createImplementation({
|
|
37
|
+
abstraction: PublishPageUseCase,
|
|
38
|
+
implementation: PublishPageUseCaseImpl,
|
|
39
|
+
dependencies: [
|
|
40
|
+
WbPermissions,
|
|
41
|
+
EventPublisher,
|
|
42
|
+
GetPageByIdUseCase,
|
|
43
|
+
PublishPageRepository
|
|
44
|
+
]
|
|
56
45
|
});
|
|
46
|
+
export { PublishPageUseCase_PublishPageUseCase as PublishPageUseCase };
|
|
57
47
|
|
|
58
48
|
//# sourceMappingURL=PublishPageUseCase.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/pages/PublishPage/PublishPageUseCase.js","sources":["../../../../src/features/pages/PublishPage/PublishPageUseCase.ts"],"sourcesContent":["import { Result, createImplementation } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { PublishPageUseCase as UseCaseAbstraction, PublishPageRepository } from \"./abstractions.js\";\nimport { PageBeforePublishEvent, PageAfterPublishEvent } from \"./events.js\";\nimport { GetPageByIdUseCase } from \"~/features/pages/GetPageById/index.js\";\nimport { WbPermissions } from \"~/features/permissions/abstractions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\n\nclass PublishPageUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getPageById: GetPageByIdUseCase.Interface,\n private repository: PublishPageRepository.Interface\n ) {}\n\n async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canPublish(\"page\");\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Get the page first for the before event\n const getResult = await this.getPageById.execute(params.id);\n\n if (getResult.isFail()) {\n return getResult;\n }\n\n const page = getResult.value;\n\n const canAccess = await this.permissions.canAccess(\"page\", page);\n if (!canAccess) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Publish before publish event\n const beforeEvent = new PageBeforePublishEvent({\n page\n });\n\n await this.eventPublisher.publish(beforeEvent);\n\n // Execute the publish operation\n const result = await this.repository.execute(params);\n\n if (result.isFail()) {\n return result;\n }\n\n // Publish after publish event\n const afterEvent = new PageAfterPublishEvent({\n page: result.value\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return Result.ok(result.value);\n }\n}\n\nexport const PublishPageUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: PublishPageUseCaseImpl,\n dependencies: [WbPermissions, EventPublisher, GetPageByIdUseCase, PublishPageRepository]\n});\n"],"names":["PublishPageUseCaseImpl","permissions","eventPublisher","getPageById","repository","params","hasPermission","Result","PageNotAuthorizedError","getResult","page","canAccess","beforeEvent","PageBeforePublishEvent","result","afterEvent","PageAfterPublishEvent","PublishPageUseCase","createImplementation","UseCaseAbstraction","WbPermissions","EventPublisher","GetPageByIdUseCase","PublishPageRepository"],"mappings":";;;;;;;AAWA,MAAMA;IACF,YACYC,WAAoC,EACpCC,cAAmD,EACnDC,WAAyC,EACzCC,UAA2C,CACrD;aAJUH,WAAW,GAAXA;aACAC,cAAc,GAAdA;aACAC,WAAW,GAAXA;aACAC,UAAU,GAAVA;IACT;IAEH,MAAM,QAAQC,MAAiC,EAA6B;QACxE,MAAMC,gBAAgB,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;QACxD,IAAI,CAACA,eACD,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAI3B,MAAMC,YAAY,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAACJ,OAAO,EAAE;QAE1D,IAAII,UAAU,MAAM,IAChB,OAAOA;QAGX,MAAMC,OAAOD,UAAU,KAAK;QAE5B,MAAME,YAAY,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQD;QAC3D,IAAI,CAACC,WACD,OAAOJ,OAAO,IAAI,CAAC,IAAIC;QAI3B,MAAMI,cAAc,IAAIC,uBAAuB;YAC3CH;QACJ;QAEA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAACE;QAGlC,MAAME,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACT;QAE7C,IAAIS,OAAO,MAAM,IACb,OAAOA;QAIX,MAAMC,aAAa,IAAIC,sBAAsB;YACzC,MAAMF,OAAO,KAAK;QACtB;QAEA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAACC;QAElC,OAAOR,OAAO,EAAE,CAACO,OAAO,KAAK;IACjC;AACJ;AAEO,MAAMG,wCAAqBC,qBAAqB;IACnD,aAAaC;IACb,gBAAgBnB;IAChB,cAAc;QAACoB;QAAeC;QAAgBC;QAAoBC;KAAsB;AAC5F"}
|
|
@@ -1,33 +1,8 @@
|
|
|
1
1
|
import { createAbstraction } from "@webiny/feature/api";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
// ============================================================================
|
|
8
|
-
// Repository Abstraction
|
|
9
|
-
// ============================================================================
|
|
10
|
-
|
|
11
|
-
export const PublishPageRepository = createAbstraction("Wb/PublishPageRepository");
|
|
12
|
-
|
|
13
|
-
// ============================================================================
|
|
14
|
-
// Use Case Abstraction
|
|
15
|
-
// ============================================================================
|
|
16
|
-
|
|
17
|
-
/** Publish a page. */
|
|
18
|
-
export const PublishPageUseCase = createAbstraction("Wb/PublishPageUseCase");
|
|
19
|
-
|
|
20
|
-
// ============================================================================
|
|
21
|
-
// Event Payload Types
|
|
22
|
-
// ============================================================================
|
|
23
|
-
|
|
24
|
-
// ============================================================================
|
|
25
|
-
// Event Handler Abstractions
|
|
26
|
-
// ============================================================================
|
|
27
|
-
|
|
28
|
-
/** Hook into page lifecycle before a page is published. */
|
|
29
|
-
export const PageBeforePublishEventHandler = createAbstraction("Wb/PageBeforePublishEventHandler");
|
|
30
|
-
/** Hook into page lifecycle after a page is published. */
|
|
31
|
-
export const PageAfterPublishEventHandler = createAbstraction("Wb/PageAfterPublishEventHandler");
|
|
2
|
+
const PublishPageRepository = createAbstraction("Wb/PublishPageRepository");
|
|
3
|
+
const PublishPageUseCase = createAbstraction("Wb/PublishPageUseCase");
|
|
4
|
+
const PageBeforePublishEventHandler = createAbstraction("Wb/PageBeforePublishEventHandler");
|
|
5
|
+
const PageAfterPublishEventHandler = createAbstraction("Wb/PageAfterPublishEventHandler");
|
|
6
|
+
export { PageAfterPublishEventHandler, PageBeforePublishEventHandler, PublishPageRepository, PublishPageUseCase };
|
|
32
7
|
|
|
33
8
|
//# sourceMappingURL=abstractions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/pages/PublishPage/abstractions.js","sources":["../../../../src/features/pages/PublishPage/abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { IEventHandler } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport {\n PageNotFoundError,\n PagePersistenceError,\n PageNotAuthorizedError\n} from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface IPublishWbPageParams {\n id: string;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IPublishPageRepository {\n execute(params: IPublishWbPageParams): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface IPublishPageRepositoryErrors {\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IPublishPageRepositoryErrors[keyof IPublishPageRepositoryErrors];\n\nexport const PublishPageRepository = createAbstraction<IPublishPageRepository>(\n \"Wb/PublishPageRepository\"\n);\n\nexport namespace PublishPageRepository {\n export type Interface = IPublishPageRepository;\n export type Params = IPublishWbPageParams;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IPublishPageUseCase {\n execute(params: IPublishWbPageParams): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface IPublishPageUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IPublishPageUseCaseErrors[keyof IPublishPageUseCaseErrors];\n\n/** Publish a page. */\nexport const PublishPageUseCase = createAbstraction<IPublishPageUseCase>(\"Wb/PublishPageUseCase\");\n\nexport namespace PublishPageUseCase {\n export type Interface = IPublishPageUseCase;\n export type Params = IPublishWbPageParams;\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 PageBeforePublishPayload {\n page: WbPage;\n}\n\nexport interface PageAfterPublishPayload {\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\n/** Hook into page lifecycle before a page is published. */\nexport const PageBeforePublishEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforePublishPayload>>\n>(\"Wb/PageBeforePublishEventHandler\");\n\nexport namespace PageBeforePublishEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforePublishPayload>>;\n export type Event = DomainEvent<PageBeforePublishPayload>;\n export type Page = WbPage;\n}\n\n/** Hook into page lifecycle after a page is published. */\nexport const PageAfterPublishEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterPublishPayload>>\n>(\"Wb/PageAfterPublishEventHandler\");\n\nexport namespace PageAfterPublishEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterPublishPayload>>;\n export type Event = DomainEvent<PageAfterPublishPayload>;\n export type Page = WbPage;\n}\n"],"names":["PublishPageRepository","createAbstraction","PublishPageUseCase","PageBeforePublishEventHandler","PageAfterPublishEventHandler"],"mappings":";AAiCO,MAAMA,wBAAwBC,kBACjC;AA2BG,MAAMC,qBAAqBD,kBAAuC;AA2BlE,MAAME,gCAAgCF,kBAE3C;AASK,MAAMG,+BAA+BH,kBAE1C"}
|