@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 @@
|
|
|
1
|
+
{"version":3,"names":["describe","it","expect","beforeEach","vi","MarkdownContentBuilder","builder","add","build","toBe","before","after","remove","replace","current","toUpperCase","setVariable","result","toContain","s","setVariables","API_KEY","HOST","TENANT","getVariable","toBeUndefined","API_HOST","LINK","DESCRIPTION","BASE_URL","API_PATH","FULL_ENDPOINT","STARTER_KIT_LINK","API_TOKEN","ADMIN_HOST","TENANT_ID","not","NAME","GREETING","LEVEL_1","LEVEL_2","LEVEL_3","LEVEL_4","consoleSpy","spyOn","console","mockImplementation","VAR_A","VAR_B","toHaveBeenCalledWith","stringContaining","mockRestore","DEFINED","HAS_UNDEFINED","CONFIG"],"sources":["MarkdownContentBuilder.test.ts"],"sourcesContent":["import { describe, it, expect, beforeEach, vi } from \"vitest\";\nimport { MarkdownContentBuilder } from \"./MarkdownContentBuilder.js\";\n\ndescribe(\"MarkdownContentBuilder\", () => {\n let builder: MarkdownContentBuilder;\n\n beforeEach(() => {\n builder = new MarkdownContentBuilder();\n });\n\n describe(\"add\", () => {\n it(\"should add sections to the end by default\", () => {\n builder.add(\"section1\", \"First section\").add(\"section2\", \"Second section\");\n\n expect(builder.build()).toBe(\"First section\\nSecond section\");\n });\n\n it(\"should add section before specified id\", () => {\n builder\n .add(\"section1\", \"First\")\n .add(\"section2\", \"Second\")\n .add(\"section-middle\", \"Middle\", { before: \"section2\" });\n\n expect(builder.build()).toBe(\"First\\nMiddle\\nSecond\");\n });\n\n it(\"should add section after specified id\", () => {\n builder\n .add(\"section1\", \"First\")\n .add(\"section2\", \"Second\")\n .add(\"section-middle\", \"Middle\", { after: \"section1\" });\n\n expect(builder.build()).toBe(\"First\\nMiddle\\nSecond\");\n });\n\n it(\"should append to end if before id not found\", () => {\n builder.add(\"section1\", \"First\").add(\"section2\", \"Second\", { before: \"non-existent\" });\n\n expect(builder.build()).toBe(\"First\\nSecond\");\n });\n\n it(\"should append to end if after id not found\", () => {\n builder.add(\"section1\", \"First\").add(\"section2\", \"Second\", { after: \"non-existent\" });\n\n expect(builder.build()).toBe(\"First\\nSecond\");\n });\n });\n\n describe(\"remove\", () => {\n it(\"should remove section by id\", () => {\n builder\n .add(\"section1\", \"First\")\n .add(\"section2\", \"Second\")\n .add(\"section3\", \"Third\")\n .remove(\"section2\");\n\n expect(builder.build()).toBe(\"First\\nThird\");\n });\n\n it(\"should handle removing non-existent id gracefully\", () => {\n builder.add(\"section1\", \"First\").remove(\"non-existent\");\n\n expect(builder.build()).toBe(\"First\");\n });\n\n it(\"should handle removing from empty builder\", () => {\n builder.remove(\"section1\");\n expect(builder.build()).toBe(\"\");\n });\n });\n\n describe(\"replace\", () => {\n it(\"should replace section content with string\", () => {\n builder.add(\"section1\", \"Original content\").replace(\"section1\", \"Replaced content\");\n\n expect(builder.build()).toBe(\"Replaced content\");\n });\n\n it(\"should replace section content with callback\", () => {\n builder\n .add(\"section1\", \"Original content\")\n .replace(\"section1\", current => current.toUpperCase());\n\n expect(builder.build()).toBe(\"ORIGINAL CONTENT\");\n });\n\n it(\"should pass current content to callback\", () => {\n builder.add(\"section1\", \"Hello\").replace(\"section1\", current => `${current} World`);\n\n expect(builder.build()).toBe(\"Hello World\");\n });\n\n it(\"should handle callback that transforms content\", () => {\n builder\n .add(\"code\", '```bash\\necho \"test\"\\n```')\n .replace(\"code\", current => current.replace(\"bash\", \"javascript\"));\n\n expect(builder.build()).toBe('```javascript\\necho \"test\"\\n```');\n });\n\n it(\"should handle callback returning empty string\", () => {\n builder.add(\"section1\", \"Original\").replace(\"section1\", () => \"\");\n\n expect(builder.build()).toBe(\"\");\n });\n\n it(\"should handle replacing non-existent id with callback gracefully\", () => {\n builder\n .add(\"section1\", \"First\")\n .replace(\"non-existent\", current => current + \" modified\");\n\n expect(builder.build()).toBe(\"First\");\n });\n\n it(\"should maintain section position when replacing with callback\", () => {\n builder\n .add(\"section1\", \"First\")\n .add(\"section2\", \"Second\")\n .add(\"section3\", \"Third\")\n .replace(\"section2\", current => current.toUpperCase());\n\n expect(builder.build()).toBe(\"First\\nSECOND\\nThird\");\n });\n });\n\n describe(\"complex scenarios with callbacks\", () => {\n it(\"should support plugin decoration with transformations\", () => {\n builder\n .setVariable(\"API_KEY\", \"wat_12345\")\n .add(\"section1\", \"Key: {API_KEY}\")\n .add(\"code\", \"```bash\\nAPI_KEY={API_KEY}\\n```\");\n\n // Plugin adds warning to code section\n builder.replace(\"code\", current => {\n return `⚠️ **Security Warning**: Keep this private!\\n\\n${current}`;\n });\n\n const result = builder.build();\n expect(result).toContain(\"Security Warning\");\n expect(result).toContain(\"```bash\");\n });\n\n it(\"should chain multiple replace operations\", () => {\n builder\n .add(\"text\", \"hello world\")\n .replace(\"text\", s => s.toUpperCase())\n .replace(\"text\", s => `**${s}**`)\n .replace(\"text\", s => `${s}!!!`);\n\n expect(builder.build()).toBe(\"**HELLO WORLD**!!!\");\n });\n });\n\n describe(\"variables\", () => {\n it(\"should set and substitute single variable\", () => {\n builder\n .setVariable(\"API_KEY\", \"wat_12345\")\n .add(\"section1\", \"Your API key is {API_KEY}\");\n\n expect(builder.build()).toBe(\"Your API key is wat_12345\");\n });\n\n it(\"should set and substitute multiple variables\", () => {\n builder\n .setVariables({\n API_KEY: \"wat_12345\",\n HOST: \"https://api.example.com\",\n TENANT: \"root\"\n })\n .add(\"section1\", \"Key: {API_KEY}, Host: {HOST}, Tenant: {TENANT}\");\n\n expect(builder.build()).toBe(\n \"Key: wat_12345, Host: https://api.example.com, Tenant: root\"\n );\n });\n\n it(\"should substitute variables in multiple sections\", () => {\n builder\n .setVariable(\"API_KEY\", \"wat_12345\")\n .add(\"section1\", \"Section 1: {API_KEY}\")\n .add(\"section2\", \"Section 2: {API_KEY}\");\n\n expect(builder.build()).toBe(\"Section 1: wat_12345\\nSection 2: wat_12345\");\n });\n\n it(\"should handle variable replacement in code blocks\", () => {\n builder\n .setVariables({\n API_KEY: \"wat_12345\",\n HOST: \"https://api.example.com\"\n })\n .add(\"code\", \"```bash\\nAPI_KEY={API_KEY}\\nHOST={HOST}\\n```\");\n\n expect(builder.build()).toBe(\n \"```bash\\nAPI_KEY=wat_12345\\nHOST=https://api.example.com\\n```\"\n );\n });\n\n it(\"should leave unmatched variables unchanged\", () => {\n builder\n .setVariable(\"API_KEY\", \"wat_12345\")\n .add(\"section1\", \"Key: {API_KEY}, Unknown: {UNKNOWN}\");\n\n expect(builder.build()).toBe(\"Key: wat_12345, Unknown: {UNKNOWN}\");\n });\n\n it(\"should handle variables with special regex characters\", () => {\n builder\n .setVariable(\"VAR.NAME\", \"value1\")\n .setVariable(\"VAR$NAME\", \"value2\")\n .add(\"section1\", \"{VAR.NAME} and {VAR$NAME}\");\n\n expect(builder.build()).toBe(\"value1 and value2\");\n });\n\n it(\"should get variable value\", () => {\n builder.setVariable(\"API_KEY\", \"wat_12345\");\n expect(builder.getVariable(\"API_KEY\")).toBe(\"wat_12345\");\n });\n\n it(\"should return undefined for non-existent variable\", () => {\n expect(builder.getVariable(\"NON_EXISTENT\")).toBeUndefined();\n });\n\n it(\"should override variable when set multiple times\", () => {\n builder\n .setVariable(\"API_KEY\", \"old_value\")\n .setVariable(\"API_KEY\", \"new_value\")\n .add(\"section1\", \"{API_KEY}\");\n\n expect(builder.build()).toBe(\"new_value\");\n });\n\n it(\"should handle multiple occurrences of same variable\", () => {\n builder.setVariable(\"NAME\", \"John\").add(\"section1\", \"Hello {NAME}, welcome {NAME}!\");\n\n expect(builder.build()).toBe(\"Hello John, welcome John!\");\n });\n });\n\n describe(\"build\", () => {\n it(\"should use default newline separator\", () => {\n builder.add(\"section1\", \"First\").add(\"section2\", \"Second\");\n\n expect(builder.build()).toBe(\"First\\nSecond\");\n });\n\n it(\"should use custom separator\", () => {\n builder.add(\"section1\", \"First\").add(\"section2\", \"Second\");\n\n expect(builder.build(\"\\n\\n\")).toBe(\"First\\n\\nSecond\");\n });\n\n it(\"should return empty string for empty builder\", () => {\n expect(builder.build()).toBe(\"\");\n });\n\n it(\"should handle single section\", () => {\n builder.add(\"section1\", \"Only section\");\n expect(builder.build()).toBe(\"Only section\");\n });\n });\n\n describe(\"method chaining\", () => {\n it(\"should support fluent interface\", () => {\n const result = builder\n .setVariable(\"NAME\", \"Test\")\n .add(\"section1\", \"Hello {NAME}\")\n .add(\"section2\", \"Second\")\n .remove(\"section2\")\n .add(\"section3\", \"Third\")\n .replace(\"section3\", \"Replaced\")\n .build();\n\n expect(result).toBe(\"Hello Test\\nReplaced\");\n });\n });\n\n describe(\"complex scenarios\", () => {\n it(\"should handle Next.js config example\", () => {\n const result = builder\n .setVariables({\n API_KEY: \"wat_12345678\",\n API_HOST: \"https://example.cloudfront.net\",\n TENANT: \"root\"\n })\n .add(\"description\", \"This is a configuration for **Webiny Next.js starter kit**:\")\n .add(\n \"env-vars\",\n \"```bash\\nNEXT_PUBLIC_WEBSITE_BUILDER_API_KEY={API_KEY}\\nNEXT_PUBLIC_WEBSITE_BUILDER_API_HOST={API_HOST}\\nNEXT_PUBLIC_WEBSITE_BUILDER_API_TENANT={TENANT}\\n```\"\n )\n .build();\n\n expect(result).toContain(\"wat_12345678\");\n expect(result).toContain(\"https://example.cloudfront.net\");\n expect(result).toContain(\"root\");\n expect(result).toContain(\"Webiny Next.js starter kit\");\n });\n\n it(\"should support plugin decoration pattern\", () => {\n // Initial builder\n builder.setVariable(\"API_KEY\", \"original_key\").add(\"section1\", \"Key: {API_KEY}\");\n\n // Plugin modifies\n builder\n .setVariable(\"API_KEY\", \"plugin_key\")\n .add(\"plugin-section\", \"Added by plugin: {API_KEY}\", { after: \"section1\" });\n\n const result = builder.build();\n expect(result).toBe(\"Key: plugin_key\\nAdded by plugin: plugin_key\");\n });\n });\n\n describe(\"deep variable interpolation\", () => {\n it(\"should handle single level nested variables\", () => {\n builder\n .setVariables({\n LINK: \"https://example.com\",\n DESCRIPTION: \"Visit {LINK} for more info\"\n })\n .add(\"section1\", \"{DESCRIPTION}\");\n\n expect(builder.build()).toBe(\"Visit https://example.com for more info\");\n });\n\n it(\"should handle multiple levels of nested variables\", () => {\n builder\n .setVariables({\n BASE_URL: \"https://example.com\",\n API_PATH: \"{BASE_URL}/api\",\n FULL_ENDPOINT: \"{API_PATH}/v1/users\"\n })\n .add(\"section1\", \"Endpoint: {FULL_ENDPOINT}\");\n\n expect(builder.build()).toBe(\"Endpoint: https://example.com/api/v1/users\");\n });\n\n it(\"should handle variables in HTML links\", () => {\n builder\n .setVariables({\n STARTER_KIT_LINK: \"https://github.com/webiny/website-builder-nextjs\",\n DESCRIPTION:\n '<a href=\"{STARTER_KIT_LINK}\" target=\"_blank\">Webiny Next.js starter kit</a>'\n })\n .add(\"section1\", \"{DESCRIPTION}\");\n\n expect(builder.build()).toBe(\n '<a href=\"https://github.com/webiny/website-builder-nextjs\" target=\"_blank\">Webiny Next.js starter kit</a>'\n );\n });\n\n it(\"should handle complex nested scenario from example\", () => {\n builder\n .setVariables({\n DESCRIPTION:\n 'This is a configuration for <a href=\"{STARTER_KIT_LINK}\" target=\"_blank\">Webiny Next.js starter kit:</a>',\n STARTER_KIT_LINK: \"https://github.com/webiny/website-builder-nextjs\",\n API_TOKEN: \"wat_12345\",\n API_HOST: \"https://api.example.com\",\n ADMIN_HOST: \"https://admin.example.com\",\n TENANT_ID: \"root\"\n })\n .add(\"description\", \"{DESCRIPTION}\");\n\n const result = builder.build();\n expect(result).toContain(\"https://github.com/webiny/website-builder-nextjs\");\n expect(result).toContain(\"Webiny Next.js starter kit\");\n expect(result).not.toContain(\"{STARTER_KIT_LINK}\");\n });\n\n it(\"should handle variable that references another variable multiple times\", () => {\n builder\n .setVariables({\n NAME: \"John\",\n GREETING: \"Hello {NAME}, welcome {NAME}!\"\n })\n .add(\"section1\", \"{GREETING}\");\n\n expect(builder.build()).toBe(\"Hello John, welcome John!\");\n });\n\n it(\"should handle deep nesting (3+ levels)\", () => {\n builder\n .setVariables({\n LEVEL_1: \"base\",\n LEVEL_2: \"{LEVEL_1}/path\",\n LEVEL_3: \"{LEVEL_2}/more\",\n LEVEL_4: \"{LEVEL_3}/final\"\n })\n .add(\"section1\", \"{LEVEL_4}\");\n\n expect(builder.build()).toBe(\"base/path/more/final\");\n });\n\n it(\"should handle circular references gracefully\", () => {\n const consoleSpy = vi.spyOn(console, \"warn\").mockImplementation(() => {});\n\n builder\n .setVariables({\n VAR_A: \"Start {VAR_B}\",\n VAR_B: \"{VAR_A} End\"\n })\n .add(\"section1\", \"{VAR_A}\");\n\n builder.build();\n\n expect(consoleSpy).toHaveBeenCalledWith(\n expect.stringContaining(\"Maximum interpolation depth reached\")\n );\n\n consoleSpy.mockRestore();\n });\n\n it(\"should stop at undefined variables and leave them as-is\", () => {\n builder\n .setVariables({\n DEFINED: \"value\",\n HAS_UNDEFINED: \"{DEFINED} and {UNDEFINED}\"\n })\n .add(\"section1\", \"{HAS_UNDEFINED}\");\n\n expect(builder.build()).toBe(\"value and {UNDEFINED}\");\n });\n\n it(\"should handle mixed defined and nested variables\", () => {\n builder\n .setVariables({\n API_KEY: \"key123\",\n HOST: \"example.com\",\n CONFIG: \"API_KEY={API_KEY}\\nHOST={HOST}\\nUNDEFINED={UNKNOWN}\"\n })\n .add(\"section1\", \"{CONFIG}\");\n\n const result = builder.build();\n expect(result).toContain(\"API_KEY=key123\");\n expect(result).toContain(\"HOST=example.com\");\n expect(result).toContain(\"UNDEFINED={UNKNOWN}\");\n });\n });\n});\n"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,EAAE,EAAEC,MAAM,EAAEC,UAAU,EAAEC,EAAE,QAAQ,QAAQ;AAC7D,SAASC,sBAAsB;AAE/BL,QAAQ,CAAC,wBAAwB,EAAE,MAAM;EACrC,IAAIM,OAA+B;EAEnCH,UAAU,CAAC,MAAM;IACbG,OAAO,GAAG,IAAID,sBAAsB,CAAC,CAAC;EAC1C,CAAC,CAAC;EAEFL,QAAQ,CAAC,KAAK,EAAE,MAAM;IAClBC,EAAE,CAAC,2CAA2C,EAAE,MAAM;MAClDK,OAAO,CAACC,GAAG,CAAC,UAAU,EAAE,eAAe,CAAC,CAACA,GAAG,CAAC,UAAU,EAAE,gBAAgB,CAAC;MAE1EL,MAAM,CAACI,OAAO,CAACE,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,+BAA+B,CAAC;IACjE,CAAC,CAAC;IAEFR,EAAE,CAAC,wCAAwC,EAAE,MAAM;MAC/CK,OAAO,CACFC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CACxBA,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CACzBA,GAAG,CAAC,gBAAgB,EAAE,QAAQ,EAAE;QAAEG,MAAM,EAAE;MAAW,CAAC,CAAC;MAE5DR,MAAM,CAACI,OAAO,CAACE,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,uBAAuB,CAAC;IACzD,CAAC,CAAC;IAEFR,EAAE,CAAC,uCAAuC,EAAE,MAAM;MAC9CK,OAAO,CACFC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CACxBA,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CACzBA,GAAG,CAAC,gBAAgB,EAAE,QAAQ,EAAE;QAAEI,KAAK,EAAE;MAAW,CAAC,CAAC;MAE3DT,MAAM,CAACI,OAAO,CAACE,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,uBAAuB,CAAC;IACzD,CAAC,CAAC;IAEFR,EAAE,CAAC,6CAA6C,EAAE,MAAM;MACpDK,OAAO,CAACC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAACA,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE;QAAEG,MAAM,EAAE;MAAe,CAAC,CAAC;MAEtFR,MAAM,CAACI,OAAO,CAACE,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,eAAe,CAAC;IACjD,CAAC,CAAC;IAEFR,EAAE,CAAC,4CAA4C,EAAE,MAAM;MACnDK,OAAO,CAACC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAACA,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE;QAAEI,KAAK,EAAE;MAAe,CAAC,CAAC;MAErFT,MAAM,CAACI,OAAO,CAACE,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,eAAe,CAAC;IACjD,CAAC,CAAC;EACN,CAAC,CAAC;EAEFT,QAAQ,CAAC,QAAQ,EAAE,MAAM;IACrBC,EAAE,CAAC,6BAA6B,EAAE,MAAM;MACpCK,OAAO,CACFC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CACxBA,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CACzBA,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CACxBK,MAAM,CAAC,UAAU,CAAC;MAEvBV,MAAM,CAACI,OAAO,CAACE,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,cAAc,CAAC;IAChD,CAAC,CAAC;IAEFR,EAAE,CAAC,mDAAmD,EAAE,MAAM;MAC1DK,OAAO,CAACC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAACK,MAAM,CAAC,cAAc,CAAC;MAEvDV,MAAM,CAACI,OAAO,CAACE,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,OAAO,CAAC;IACzC,CAAC,CAAC;IAEFR,EAAE,CAAC,2CAA2C,EAAE,MAAM;MAClDK,OAAO,CAACM,MAAM,CAAC,UAAU,CAAC;MAC1BV,MAAM,CAACI,OAAO,CAACE,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,EAAE,CAAC;IACpC,CAAC,CAAC;EACN,CAAC,CAAC;EAEFT,QAAQ,CAAC,SAAS,EAAE,MAAM;IACtBC,EAAE,CAAC,4CAA4C,EAAE,MAAM;MACnDK,OAAO,CAACC,GAAG,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAACM,OAAO,CAAC,UAAU,EAAE,kBAAkB,CAAC;MAEnFX,MAAM,CAACI,OAAO,CAACE,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,kBAAkB,CAAC;IACpD,CAAC,CAAC;IAEFR,EAAE,CAAC,8CAA8C,EAAE,MAAM;MACrDK,OAAO,CACFC,GAAG,CAAC,UAAU,EAAE,kBAAkB,CAAC,CACnCM,OAAO,CAAC,UAAU,EAAEC,OAAO,IAAIA,OAAO,CAACC,WAAW,CAAC,CAAC,CAAC;MAE1Db,MAAM,CAACI,OAAO,CAACE,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,kBAAkB,CAAC;IACpD,CAAC,CAAC;IAEFR,EAAE,CAAC,yCAAyC,EAAE,MAAM;MAChDK,OAAO,CAACC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAACM,OAAO,CAAC,UAAU,EAAEC,OAAO,IAAI,GAAGA,OAAO,QAAQ,CAAC;MAEnFZ,MAAM,CAACI,OAAO,CAACE,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,aAAa,CAAC;IAC/C,CAAC,CAAC;IAEFR,EAAE,CAAC,gDAAgD,EAAE,MAAM;MACvDK,OAAO,CACFC,GAAG,CAAC,MAAM,EAAE,2BAA2B,CAAC,CACxCM,OAAO,CAAC,MAAM,EAAEC,OAAO,IAAIA,OAAO,CAACD,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;MAEtEX,MAAM,CAACI,OAAO,CAACE,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,iCAAiC,CAAC;IACnE,CAAC,CAAC;IAEFR,EAAE,CAAC,+CAA+C,EAAE,MAAM;MACtDK,OAAO,CAACC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAACM,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;MAEjEX,MAAM,CAACI,OAAO,CAACE,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,EAAE,CAAC;IACpC,CAAC,CAAC;IAEFR,EAAE,CAAC,kEAAkE,EAAE,MAAM;MACzEK,OAAO,CACFC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CACxBM,OAAO,CAAC,cAAc,EAAEC,OAAO,IAAIA,OAAO,GAAG,WAAW,CAAC;MAE9DZ,MAAM,CAACI,OAAO,CAACE,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,OAAO,CAAC;IACzC,CAAC,CAAC;IAEFR,EAAE,CAAC,+DAA+D,EAAE,MAAM;MACtEK,OAAO,CACFC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CACxBA,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CACzBA,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CACxBM,OAAO,CAAC,UAAU,EAAEC,OAAO,IAAIA,OAAO,CAACC,WAAW,CAAC,CAAC,CAAC;MAE1Db,MAAM,CAACI,OAAO,CAACE,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,sBAAsB,CAAC;IACxD,CAAC,CAAC;EACN,CAAC,CAAC;EAEFT,QAAQ,CAAC,kCAAkC,EAAE,MAAM;IAC/CC,EAAE,CAAC,uDAAuD,EAAE,MAAM;MAC9DK,OAAO,CACFU,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,CACnCT,GAAG,CAAC,UAAU,EAAE,gBAAgB,CAAC,CACjCA,GAAG,CAAC,MAAM,EAAE,iCAAiC,CAAC;;MAEnD;MACAD,OAAO,CAACO,OAAO,CAAC,MAAM,EAAEC,OAAO,IAAI;QAC/B,OAAO,kDAAkDA,OAAO,EAAE;MACtE,CAAC,CAAC;MAEF,MAAMG,MAAM,GAAGX,OAAO,CAACE,KAAK,CAAC,CAAC;MAC9BN,MAAM,CAACe,MAAM,CAAC,CAACC,SAAS,CAAC,kBAAkB,CAAC;MAC5ChB,MAAM,CAACe,MAAM,CAAC,CAACC,SAAS,CAAC,SAAS,CAAC;IACvC,CAAC,CAAC;IAEFjB,EAAE,CAAC,0CAA0C,EAAE,MAAM;MACjDK,OAAO,CACFC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAC1BM,OAAO,CAAC,MAAM,EAAEM,CAAC,IAAIA,CAAC,CAACJ,WAAW,CAAC,CAAC,CAAC,CACrCF,OAAO,CAAC,MAAM,EAAEM,CAAC,IAAI,KAAKA,CAAC,IAAI,CAAC,CAChCN,OAAO,CAAC,MAAM,EAAEM,CAAC,IAAI,GAAGA,CAAC,KAAK,CAAC;MAEpCjB,MAAM,CAACI,OAAO,CAACE,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,oBAAoB,CAAC;IACtD,CAAC,CAAC;EACN,CAAC,CAAC;EAEFT,QAAQ,CAAC,WAAW,EAAE,MAAM;IACxBC,EAAE,CAAC,2CAA2C,EAAE,MAAM;MAClDK,OAAO,CACFU,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,CACnCT,GAAG,CAAC,UAAU,EAAE,2BAA2B,CAAC;MAEjDL,MAAM,CAACI,OAAO,CAACE,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,2BAA2B,CAAC;IAC7D,CAAC,CAAC;IAEFR,EAAE,CAAC,8CAA8C,EAAE,MAAM;MACrDK,OAAO,CACFc,YAAY,CAAC;QACVC,OAAO,EAAE,WAAW;QACpBC,IAAI,EAAE,yBAAyB;QAC/BC,MAAM,EAAE;MACZ,CAAC,CAAC,CACDhB,GAAG,CAAC,UAAU,EAAE,gDAAgD,CAAC;MAEtEL,MAAM,CAACI,OAAO,CAACE,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CACxB,6DACJ,CAAC;IACL,CAAC,CAAC;IAEFR,EAAE,CAAC,kDAAkD,EAAE,MAAM;MACzDK,OAAO,CACFU,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,CACnCT,GAAG,CAAC,UAAU,EAAE,sBAAsB,CAAC,CACvCA,GAAG,CAAC,UAAU,EAAE,sBAAsB,CAAC;MAE5CL,MAAM,CAACI,OAAO,CAACE,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,4CAA4C,CAAC;IAC9E,CAAC,CAAC;IAEFR,EAAE,CAAC,mDAAmD,EAAE,MAAM;MAC1DK,OAAO,CACFc,YAAY,CAAC;QACVC,OAAO,EAAE,WAAW;QACpBC,IAAI,EAAE;MACV,CAAC,CAAC,CACDf,GAAG,CAAC,MAAM,EAAE,8CAA8C,CAAC;MAEhEL,MAAM,CAACI,OAAO,CAACE,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CACxB,+DACJ,CAAC;IACL,CAAC,CAAC;IAEFR,EAAE,CAAC,4CAA4C,EAAE,MAAM;MACnDK,OAAO,CACFU,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,CACnCT,GAAG,CAAC,UAAU,EAAE,oCAAoC,CAAC;MAE1DL,MAAM,CAACI,OAAO,CAACE,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,oCAAoC,CAAC;IACtE,CAAC,CAAC;IAEFR,EAAE,CAAC,uDAAuD,EAAE,MAAM;MAC9DK,OAAO,CACFU,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC,CACjCA,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC,CACjCT,GAAG,CAAC,UAAU,EAAE,2BAA2B,CAAC;MAEjDL,MAAM,CAACI,OAAO,CAACE,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,mBAAmB,CAAC;IACrD,CAAC,CAAC;IAEFR,EAAE,CAAC,2BAA2B,EAAE,MAAM;MAClCK,OAAO,CAACU,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC;MAC3Cd,MAAM,CAACI,OAAO,CAACkB,WAAW,CAAC,SAAS,CAAC,CAAC,CAACf,IAAI,CAAC,WAAW,CAAC;IAC5D,CAAC,CAAC;IAEFR,EAAE,CAAC,mDAAmD,EAAE,MAAM;MAC1DC,MAAM,CAACI,OAAO,CAACkB,WAAW,CAAC,cAAc,CAAC,CAAC,CAACC,aAAa,CAAC,CAAC;IAC/D,CAAC,CAAC;IAEFxB,EAAE,CAAC,kDAAkD,EAAE,MAAM;MACzDK,OAAO,CACFU,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,CACnCA,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,CACnCT,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC;MAEjCL,MAAM,CAACI,OAAO,CAACE,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,WAAW,CAAC;IAC7C,CAAC,CAAC;IAEFR,EAAE,CAAC,qDAAqD,EAAE,MAAM;MAC5DK,OAAO,CAACU,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAACT,GAAG,CAAC,UAAU,EAAE,+BAA+B,CAAC;MAEpFL,MAAM,CAACI,OAAO,CAACE,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,2BAA2B,CAAC;IAC7D,CAAC,CAAC;EACN,CAAC,CAAC;EAEFT,QAAQ,CAAC,OAAO,EAAE,MAAM;IACpBC,EAAE,CAAC,sCAAsC,EAAE,MAAM;MAC7CK,OAAO,CAACC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAACA,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC;MAE1DL,MAAM,CAACI,OAAO,CAACE,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,eAAe,CAAC;IACjD,CAAC,CAAC;IAEFR,EAAE,CAAC,6BAA6B,EAAE,MAAM;MACpCK,OAAO,CAACC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAACA,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC;MAE1DL,MAAM,CAACI,OAAO,CAACE,KAAK,CAAC,MAAM,CAAC,CAAC,CAACC,IAAI,CAAC,iBAAiB,CAAC;IACzD,CAAC,CAAC;IAEFR,EAAE,CAAC,8CAA8C,EAAE,MAAM;MACrDC,MAAM,CAACI,OAAO,CAACE,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,EAAE,CAAC;IACpC,CAAC,CAAC;IAEFR,EAAE,CAAC,8BAA8B,EAAE,MAAM;MACrCK,OAAO,CAACC,GAAG,CAAC,UAAU,EAAE,cAAc,CAAC;MACvCL,MAAM,CAACI,OAAO,CAACE,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,cAAc,CAAC;IAChD,CAAC,CAAC;EACN,CAAC,CAAC;EAEFT,QAAQ,CAAC,iBAAiB,EAAE,MAAM;IAC9BC,EAAE,CAAC,iCAAiC,EAAE,MAAM;MACxC,MAAMgB,MAAM,GAAGX,OAAO,CACjBU,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAC3BT,GAAG,CAAC,UAAU,EAAE,cAAc,CAAC,CAC/BA,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CACzBK,MAAM,CAAC,UAAU,CAAC,CAClBL,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CACxBM,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,CAC/BL,KAAK,CAAC,CAAC;MAEZN,MAAM,CAACe,MAAM,CAAC,CAACR,IAAI,CAAC,sBAAsB,CAAC;IAC/C,CAAC,CAAC;EACN,CAAC,CAAC;EAEFT,QAAQ,CAAC,mBAAmB,EAAE,MAAM;IAChCC,EAAE,CAAC,sCAAsC,EAAE,MAAM;MAC7C,MAAMgB,MAAM,GAAGX,OAAO,CACjBc,YAAY,CAAC;QACVC,OAAO,EAAE,cAAc;QACvBK,QAAQ,EAAE,gCAAgC;QAC1CH,MAAM,EAAE;MACZ,CAAC,CAAC,CACDhB,GAAG,CAAC,aAAa,EAAE,6DAA6D,CAAC,CACjFA,GAAG,CACA,UAAU,EACV,+JACJ,CAAC,CACAC,KAAK,CAAC,CAAC;MAEZN,MAAM,CAACe,MAAM,CAAC,CAACC,SAAS,CAAC,cAAc,CAAC;MACxChB,MAAM,CAACe,MAAM,CAAC,CAACC,SAAS,CAAC,gCAAgC,CAAC;MAC1DhB,MAAM,CAACe,MAAM,CAAC,CAACC,SAAS,CAAC,MAAM,CAAC;MAChChB,MAAM,CAACe,MAAM,CAAC,CAACC,SAAS,CAAC,4BAA4B,CAAC;IAC1D,CAAC,CAAC;IAEFjB,EAAE,CAAC,0CAA0C,EAAE,MAAM;MACjD;MACAK,OAAO,CAACU,WAAW,CAAC,SAAS,EAAE,cAAc,CAAC,CAACT,GAAG,CAAC,UAAU,EAAE,gBAAgB,CAAC;;MAEhF;MACAD,OAAO,CACFU,WAAW,CAAC,SAAS,EAAE,YAAY,CAAC,CACpCT,GAAG,CAAC,gBAAgB,EAAE,4BAA4B,EAAE;QAAEI,KAAK,EAAE;MAAW,CAAC,CAAC;MAE/E,MAAMM,MAAM,GAAGX,OAAO,CAACE,KAAK,CAAC,CAAC;MAC9BN,MAAM,CAACe,MAAM,CAAC,CAACR,IAAI,CAAC,8CAA8C,CAAC;IACvE,CAAC,CAAC;EACN,CAAC,CAAC;EAEFT,QAAQ,CAAC,6BAA6B,EAAE,MAAM;IAC1CC,EAAE,CAAC,6CAA6C,EAAE,MAAM;MACpDK,OAAO,CACFc,YAAY,CAAC;QACVO,IAAI,EAAE,qBAAqB;QAC3BC,WAAW,EAAE;MACjB,CAAC,CAAC,CACDrB,GAAG,CAAC,UAAU,EAAE,eAAe,CAAC;MAErCL,MAAM,CAACI,OAAO,CAACE,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,yCAAyC,CAAC;IAC3E,CAAC,CAAC;IAEFR,EAAE,CAAC,mDAAmD,EAAE,MAAM;MAC1DK,OAAO,CACFc,YAAY,CAAC;QACVS,QAAQ,EAAE,qBAAqB;QAC/BC,QAAQ,EAAE,gBAAgB;QAC1BC,aAAa,EAAE;MACnB,CAAC,CAAC,CACDxB,GAAG,CAAC,UAAU,EAAE,2BAA2B,CAAC;MAEjDL,MAAM,CAACI,OAAO,CAACE,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,4CAA4C,CAAC;IAC9E,CAAC,CAAC;IAEFR,EAAE,CAAC,uCAAuC,EAAE,MAAM;MAC9CK,OAAO,CACFc,YAAY,CAAC;QACVY,gBAAgB,EAAE,kDAAkD;QACpEJ,WAAW,EACP;MACR,CAAC,CAAC,CACDrB,GAAG,CAAC,UAAU,EAAE,eAAe,CAAC;MAErCL,MAAM,CAACI,OAAO,CAACE,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CACxB,2GACJ,CAAC;IACL,CAAC,CAAC;IAEFR,EAAE,CAAC,oDAAoD,EAAE,MAAM;MAC3DK,OAAO,CACFc,YAAY,CAAC;QACVQ,WAAW,EACP,0GAA0G;QAC9GI,gBAAgB,EAAE,kDAAkD;QACpEC,SAAS,EAAE,WAAW;QACtBP,QAAQ,EAAE,yBAAyB;QACnCQ,UAAU,EAAE,2BAA2B;QACvCC,SAAS,EAAE;MACf,CAAC,CAAC,CACD5B,GAAG,CAAC,aAAa,EAAE,eAAe,CAAC;MAExC,MAAMU,MAAM,GAAGX,OAAO,CAACE,KAAK,CAAC,CAAC;MAC9BN,MAAM,CAACe,MAAM,CAAC,CAACC,SAAS,CAAC,kDAAkD,CAAC;MAC5EhB,MAAM,CAACe,MAAM,CAAC,CAACC,SAAS,CAAC,4BAA4B,CAAC;MACtDhB,MAAM,CAACe,MAAM,CAAC,CAACmB,GAAG,CAAClB,SAAS,CAAC,oBAAoB,CAAC;IACtD,CAAC,CAAC;IAEFjB,EAAE,CAAC,wEAAwE,EAAE,MAAM;MAC/EK,OAAO,CACFc,YAAY,CAAC;QACViB,IAAI,EAAE,MAAM;QACZC,QAAQ,EAAE;MACd,CAAC,CAAC,CACD/B,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC;MAElCL,MAAM,CAACI,OAAO,CAACE,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,2BAA2B,CAAC;IAC7D,CAAC,CAAC;IAEFR,EAAE,CAAC,wCAAwC,EAAE,MAAM;MAC/CK,OAAO,CACFc,YAAY,CAAC;QACVmB,OAAO,EAAE,MAAM;QACfC,OAAO,EAAE,gBAAgB;QACzBC,OAAO,EAAE,gBAAgB;QACzBC,OAAO,EAAE;MACb,CAAC,CAAC,CACDnC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC;MAEjCL,MAAM,CAACI,OAAO,CAACE,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,sBAAsB,CAAC;IACxD,CAAC,CAAC;IAEFR,EAAE,CAAC,8CAA8C,EAAE,MAAM;MACrD,MAAM0C,UAAU,GAAGvC,EAAE,CAACwC,KAAK,CAACC,OAAO,EAAE,MAAM,CAAC,CAACC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;MAEzExC,OAAO,CACFc,YAAY,CAAC;QACV2B,KAAK,EAAE,eAAe;QACtBC,KAAK,EAAE;MACX,CAAC,CAAC,CACDzC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC;MAE/BD,OAAO,CAACE,KAAK,CAAC,CAAC;MAEfN,MAAM,CAACyC,UAAU,CAAC,CAACM,oBAAoB,CACnC/C,MAAM,CAACgD,gBAAgB,CAAC,qCAAqC,CACjE,CAAC;MAEDP,UAAU,CAACQ,WAAW,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEFlD,EAAE,CAAC,yDAAyD,EAAE,MAAM;MAChEK,OAAO,CACFc,YAAY,CAAC;QACVgC,OAAO,EAAE,OAAO;QAChBC,aAAa,EAAE;MACnB,CAAC,CAAC,CACD9C,GAAG,CAAC,UAAU,EAAE,iBAAiB,CAAC;MAEvCL,MAAM,CAACI,OAAO,CAACE,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,uBAAuB,CAAC;IACzD,CAAC,CAAC;IAEFR,EAAE,CAAC,kDAAkD,EAAE,MAAM;MACzDK,OAAO,CACFc,YAAY,CAAC;QACVC,OAAO,EAAE,QAAQ;QACjBC,IAAI,EAAE,aAAa;QACnBgC,MAAM,EAAE;MACZ,CAAC,CAAC,CACD/C,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC;MAEhC,MAAMU,MAAM,GAAGX,OAAO,CAACE,KAAK,CAAC,CAAC;MAC9BN,MAAM,CAACe,MAAM,CAAC,CAACC,SAAS,CAAC,gBAAgB,CAAC;MAC1ChB,MAAM,CAACe,MAAM,CAAC,CAACC,SAAS,CAAC,kBAAkB,CAAC;MAC5ChB,MAAM,CAACe,MAAM,CAAC,CAACC,SAAS,CAAC,qBAAqB,CAAC;IACnD,CAAC,CAAC;EACN,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { NextjsConfig as Abstraction } from "../../features/nextjs/abstractions.js";
|
|
2
|
+
import { TenantContext } from "@webiny/api-core/features/tenancy/TenantContext/index.js";
|
|
3
|
+
import { ApiKeysRepository } from "@webiny/api-core/features/security/apiKeys/shared/abstractions.js";
|
|
4
|
+
declare class NextjsConfigImpl implements Abstraction.Interface {
|
|
5
|
+
private tenantContext;
|
|
6
|
+
private apiKeyRepo;
|
|
7
|
+
constructor(tenantContext: TenantContext.Interface, apiKeyRepo: ApiKeysRepository.Interface);
|
|
8
|
+
execute(): Abstraction.Return;
|
|
9
|
+
private getDomains;
|
|
10
|
+
}
|
|
11
|
+
export declare const NextjsConfig: typeof NextjsConfigImpl & {
|
|
12
|
+
__abstraction: import("@webiny/di").Abstraction<import("~/features/nextjs/abstractions.js").INextjsConfig>;
|
|
13
|
+
};
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { NextjsConfig as Abstraction } from "./abstractions.js";
|
|
2
|
+
import { TenantContext } from "@webiny/api-core/features/tenancy/TenantContext/index.js";
|
|
3
|
+
import { MarkdownContentBuilder } from "./MarkdownContentBuilder.js";
|
|
4
|
+
import { ServiceDiscovery } from "@webiny/api";
|
|
5
|
+
import { ApiKeysRepository } from "@webiny/api-core/features/security/apiKeys/shared/abstractions.js";
|
|
6
|
+
class NextjsConfigImpl {
|
|
7
|
+
constructor(tenantContext, apiKeyRepo) {
|
|
8
|
+
this.tenantContext = tenantContext;
|
|
9
|
+
this.apiKeyRepo = apiKeyRepo;
|
|
10
|
+
}
|
|
11
|
+
async execute() {
|
|
12
|
+
const tenant = this.tenantContext.getTenant();
|
|
13
|
+
const apiKeyResult = await this.apiKeyRepo.getBySlug("website-builder");
|
|
14
|
+
const apiKey = apiKeyResult.isOk() ? apiKeyResult.value : null;
|
|
15
|
+
const domains = await this.getDomains();
|
|
16
|
+
const envVars = [`NEXT_PUBLIC_WEBSITE_BUILDER_API_KEY={API_TOKEN}`, `NEXT_PUBLIC_WEBSITE_BUILDER_API_HOST={API_HOST}`, `NEXT_PUBLIC_WEBSITE_BUILDER_API_TENANT={TENANT_ID}`];
|
|
17
|
+
if (domains.adminHost) {
|
|
18
|
+
envVars.push(`NEXT_PUBLIC_WEBSITE_BUILDER_ADMIN_HOST={ADMIN_HOST}`);
|
|
19
|
+
}
|
|
20
|
+
const builder = new MarkdownContentBuilder();
|
|
21
|
+
builder.setVariables({
|
|
22
|
+
DESCRIPTION: `This is a configuration for <a href="{STARTER_KIT_LINK}" target="_blank">Webiny Next.js starter kit:</a>`,
|
|
23
|
+
STARTER_KIT_LINK: `https://github.com/webiny/website-builder-nextjs`,
|
|
24
|
+
API_TOKEN: apiKey ? apiKey.token : "{API_KEY_TOKEN}",
|
|
25
|
+
API_HOST: domains.apiHost ?? "",
|
|
26
|
+
ADMIN_HOST: domains.adminHost ?? "",
|
|
27
|
+
TENANT_ID: tenant.id
|
|
28
|
+
}).add("description", "{DESCRIPTION}").add("dotEnvStart", "```dotenv").add("dotEnvBody", envVars.join("\n")).add("dotEnvEnd", "```");
|
|
29
|
+
return builder;
|
|
30
|
+
}
|
|
31
|
+
async getDomains() {
|
|
32
|
+
const manifest = await ServiceDiscovery.load();
|
|
33
|
+
const domains = {
|
|
34
|
+
apiHost: null,
|
|
35
|
+
adminHost: null
|
|
36
|
+
};
|
|
37
|
+
if (!manifest) {
|
|
38
|
+
return domains;
|
|
39
|
+
}
|
|
40
|
+
const {
|
|
41
|
+
api,
|
|
42
|
+
admin
|
|
43
|
+
} = manifest;
|
|
44
|
+
if (api?.cloudfront) {
|
|
45
|
+
domains.apiHost = api.cloudfront.domain;
|
|
46
|
+
}
|
|
47
|
+
if (admin?.cloudfront) {
|
|
48
|
+
domains.adminHost = admin.cloudfront.domain;
|
|
49
|
+
}
|
|
50
|
+
return domains;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
export const NextjsConfig = Abstraction.createImplementation({
|
|
54
|
+
implementation: NextjsConfigImpl,
|
|
55
|
+
dependencies: [TenantContext, ApiKeysRepository]
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
//# sourceMappingURL=NextjsConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NextjsConfig","Abstraction","TenantContext","MarkdownContentBuilder","ServiceDiscovery","ApiKeysRepository","NextjsConfigImpl","constructor","tenantContext","apiKeyRepo","execute","tenant","getTenant","apiKeyResult","getBySlug","apiKey","isOk","value","domains","getDomains","envVars","adminHost","push","builder","setVariables","DESCRIPTION","STARTER_KIT_LINK","API_TOKEN","token","API_HOST","apiHost","ADMIN_HOST","TENANT_ID","id","add","join","manifest","load","api","admin","cloudfront","domain","createImplementation","implementation","dependencies"],"sources":["NextjsConfig.ts"],"sourcesContent":["import { NextjsConfig as Abstraction } from \"~/features/nextjs/abstractions.js\";\nimport { TenantContext } from \"@webiny/api-core/features/tenancy/TenantContext/index.js\";\nimport { MarkdownContentBuilder } from \"~/features/nextjs/MarkdownContentBuilder.js\";\nimport { ServiceDiscovery } from \"@webiny/api\";\nimport { ApiKeysRepository } from \"@webiny/api-core/features/security/apiKeys/shared/abstractions.js\";\n\nclass NextjsConfigImpl implements Abstraction.Interface {\n constructor(\n private tenantContext: TenantContext.Interface,\n private apiKeyRepo: ApiKeysRepository.Interface\n ) {}\n\n async execute(): Abstraction.Return {\n const tenant = this.tenantContext.getTenant();\n const apiKeyResult = await this.apiKeyRepo.getBySlug(\"website-builder\");\n const apiKey = apiKeyResult.isOk() ? apiKeyResult.value : null;\n const domains = await this.getDomains();\n\n const envVars = [\n `NEXT_PUBLIC_WEBSITE_BUILDER_API_KEY={API_TOKEN}`,\n `NEXT_PUBLIC_WEBSITE_BUILDER_API_HOST={API_HOST}`,\n `NEXT_PUBLIC_WEBSITE_BUILDER_API_TENANT={TENANT_ID}`\n ];\n\n if (domains.adminHost) {\n envVars.push(`NEXT_PUBLIC_WEBSITE_BUILDER_ADMIN_HOST={ADMIN_HOST}`);\n }\n\n const builder = new MarkdownContentBuilder();\n builder\n .setVariables({\n DESCRIPTION: `This is a configuration for <a href=\"{STARTER_KIT_LINK}\" target=\"_blank\">Webiny Next.js starter kit:</a>`,\n STARTER_KIT_LINK: `https://github.com/webiny/website-builder-nextjs`,\n API_TOKEN: apiKey ? apiKey.token : \"{API_KEY_TOKEN}\",\n API_HOST: domains.apiHost ?? \"\",\n ADMIN_HOST: domains.adminHost ?? \"\",\n TENANT_ID: tenant.id\n })\n .add(\"description\", \"{DESCRIPTION}\")\n .add(\"dotEnvStart\", \"```dotenv\")\n .add(\"dotEnvBody\", envVars.join(\"\\n\"))\n .add(\"dotEnvEnd\", \"```\");\n\n return builder;\n }\n\n private async getDomains() {\n const manifest = await ServiceDiscovery.load();\n\n const domains: Record<string, string | null> = {\n apiHost: null,\n adminHost: null\n };\n\n if (!manifest) {\n return domains;\n }\n\n const { api, admin } = manifest;\n\n if (api?.cloudfront) {\n domains.apiHost = api.cloudfront.domain;\n }\n\n if (admin?.cloudfront) {\n domains.adminHost = admin.cloudfront.domain;\n }\n\n return domains;\n }\n}\n\nexport const NextjsConfig = Abstraction.createImplementation({\n implementation: NextjsConfigImpl,\n dependencies: [TenantContext, ApiKeysRepository]\n});\n"],"mappings":"AAAA,SAASA,YAAY,IAAIC,WAAW;AACpC,SAASC,aAAa,QAAQ,0DAA0D;AACxF,SAASC,sBAAsB;AAC/B,SAASC,gBAAgB,QAAQ,aAAa;AAC9C,SAASC,iBAAiB,QAAQ,mEAAmE;AAErG,MAAMC,gBAAgB,CAAkC;EACpDC,WAAWA,CACCC,aAAsC,EACtCC,UAAuC,EACjD;IAAA,KAFUD,aAAsC,GAAtCA,aAAsC;IAAA,KACtCC,UAAuC,GAAvCA,UAAuC;EAChD;EAEH,MAAMC,OAAOA,CAAA,EAAuB;IAChC,MAAMC,MAAM,GAAG,IAAI,CAACH,aAAa,CAACI,SAAS,CAAC,CAAC;IAC7C,MAAMC,YAAY,GAAG,MAAM,IAAI,CAACJ,UAAU,CAACK,SAAS,CAAC,iBAAiB,CAAC;IACvE,MAAMC,MAAM,GAAGF,YAAY,CAACG,IAAI,CAAC,CAAC,GAAGH,YAAY,CAACI,KAAK,GAAG,IAAI;IAC9D,MAAMC,OAAO,GAAG,MAAM,IAAI,CAACC,UAAU,CAAC,CAAC;IAEvC,MAAMC,OAAO,GAAG,CACZ,iDAAiD,EACjD,iDAAiD,EACjD,oDAAoD,CACvD;IAED,IAAIF,OAAO,CAACG,SAAS,EAAE;MACnBD,OAAO,CAACE,IAAI,CAAC,qDAAqD,CAAC;IACvE;IAEA,MAAMC,OAAO,GAAG,IAAIpB,sBAAsB,CAAC,CAAC;IAC5CoB,OAAO,CACFC,YAAY,CAAC;MACVC,WAAW,EAAE,0GAA0G;MACvHC,gBAAgB,EAAE,kDAAkD;MACpEC,SAAS,EAAEZ,MAAM,GAAGA,MAAM,CAACa,KAAK,GAAG,iBAAiB;MACpDC,QAAQ,EAAEX,OAAO,CAACY,OAAO,IAAI,EAAE;MAC/BC,UAAU,EAAEb,OAAO,CAACG,SAAS,IAAI,EAAE;MACnCW,SAAS,EAAErB,MAAM,CAACsB;IACtB,CAAC,CAAC,CACDC,GAAG,CAAC,aAAa,EAAE,eAAe,CAAC,CACnCA,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAC/BA,GAAG,CAAC,YAAY,EAAEd,OAAO,CAACe,IAAI,CAAC,IAAI,CAAC,CAAC,CACrCD,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC;IAE5B,OAAOX,OAAO;EAClB;EAEA,MAAcJ,UAAUA,CAAA,EAAG;IACvB,MAAMiB,QAAQ,GAAG,MAAMhC,gBAAgB,CAACiC,IAAI,CAAC,CAAC;IAE9C,MAAMnB,OAAsC,GAAG;MAC3CY,OAAO,EAAE,IAAI;MACbT,SAAS,EAAE;IACf,CAAC;IAED,IAAI,CAACe,QAAQ,EAAE;MACX,OAAOlB,OAAO;IAClB;IAEA,MAAM;MAAEoB,GAAG;MAAEC;IAAM,CAAC,GAAGH,QAAQ;IAE/B,IAAIE,GAAG,EAAEE,UAAU,EAAE;MACjBtB,OAAO,CAACY,OAAO,GAAGQ,GAAG,CAACE,UAAU,CAACC,MAAM;IAC3C;IAEA,IAAIF,KAAK,EAAEC,UAAU,EAAE;MACnBtB,OAAO,CAACG,SAAS,GAAGkB,KAAK,CAACC,UAAU,CAACC,MAAM;IAC/C;IAEA,OAAOvB,OAAO;EAClB;AACJ;AAEA,OAAO,MAAMlB,YAAY,GAAGC,WAAW,CAACyC,oBAAoB,CAAC;EACzDC,cAAc,EAAErC,gBAAgB;EAChCsC,YAAY,EAAE,CAAC1C,aAAa,EAAEG,iBAAiB;AACnD,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { IMarkdownContentBuilder } from "../../features/nextjs/MarkdownContentBuilder.js";
|
|
2
|
+
export interface INextjsConfig {
|
|
3
|
+
execute(): Promise<IMarkdownContentBuilder>;
|
|
4
|
+
}
|
|
5
|
+
export declare const NextjsConfig: import("@webiny/di").Abstraction<INextjsConfig>;
|
|
6
|
+
export declare namespace NextjsConfig {
|
|
7
|
+
type Interface = INextjsConfig;
|
|
8
|
+
type Return = Promise<IMarkdownContentBuilder>;
|
|
9
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createAbstraction","NextjsConfig"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { IMarkdownContentBuilder } from \"~/features/nextjs/MarkdownContentBuilder.js\";\n\nexport interface INextjsConfig {\n execute(): Promise<IMarkdownContentBuilder>;\n}\n\nexport const NextjsConfig = createAbstraction<INextjsConfig>(\"Wb/NextjsConfig\");\nexport namespace NextjsConfig {\n export type Interface = INextjsConfig;\n export type Return = Promise<IMarkdownContentBuilder>;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAOvD,OAAO,MAAMC,YAAY,GAAGD,iBAAiB,CAAgB,iBAAiB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const NextjsFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { NextjsConfig } from "./NextjsConfig.js";
|
|
3
|
+
export const NextjsFeature = createFeature({
|
|
4
|
+
name: "WebsiteBuilder/Nextjs",
|
|
5
|
+
register(container) {
|
|
6
|
+
container.register(NextjsConfig);
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createFeature","NextjsConfig","NextjsFeature","name","register","container"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { NextjsConfig } from \"./NextjsConfig.js\";\n\nexport const NextjsFeature = createFeature({\n name: \"WebsiteBuilder/Nextjs\",\n register(container) {\n container.register(NextjsConfig);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,YAAY;AAErB,OAAO,MAAMC,aAAa,GAAGF,aAAa,CAAC;EACvCG,IAAI,EAAE,uBAAuB;EAC7BC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACH,YAAY,CAAC;EACpC;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { NextjsConfig } from "./abstractions.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NextjsConfig"],"sources":["index.ts"],"sourcesContent":["export { NextjsConfig } from \"./abstractions.js\";\n"],"mappings":"AAAA,SAASA,YAAY","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { CreateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry";
|
|
2
|
+
import { CreatePageRepository as RepositoryAbstraction, type ICreatePageRepository } from "./abstractions.js";
|
|
3
|
+
import { PageModel } from "../../../domain/page/abstractions.js";
|
|
4
|
+
declare class CreatePageRepositoryImpl implements ICreatePageRepository {
|
|
5
|
+
private createEntry;
|
|
6
|
+
private pageModel;
|
|
7
|
+
constructor(createEntry: CreateEntryUseCase.Interface, pageModel: PageModel.Interface);
|
|
8
|
+
execute(data: RepositoryAbstraction.Params): RepositoryAbstraction.Return;
|
|
9
|
+
}
|
|
10
|
+
export declare const CreatePageRepository: typeof CreatePageRepositoryImpl & {
|
|
11
|
+
__abstraction: import("@webiny/di").Abstraction<ICreatePageRepository>;
|
|
12
|
+
};
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { CreateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry";
|
|
3
|
+
import { CreatePageRepository as RepositoryAbstraction } from "./abstractions.js";
|
|
4
|
+
import { PageModel } from "../../../domain/page/abstractions.js";
|
|
5
|
+
import { EntryToPageMapper } from "../../../domain/page/EntryToPageMapper.js";
|
|
6
|
+
import { PagePersistenceError, PageValidationError } from "../../../domain/page/errors.js";
|
|
7
|
+
class CreatePageRepositoryImpl {
|
|
8
|
+
constructor(createEntry, pageModel) {
|
|
9
|
+
this.createEntry = createEntry;
|
|
10
|
+
this.pageModel = pageModel;
|
|
11
|
+
}
|
|
12
|
+
async execute(data) {
|
|
13
|
+
// Create the entry using CMS CreateEntry use case
|
|
14
|
+
const result = await this.createEntry.execute(this.pageModel, {
|
|
15
|
+
location: data.location,
|
|
16
|
+
values: data
|
|
17
|
+
});
|
|
18
|
+
if (result.isFail()) {
|
|
19
|
+
// Map CMS errors to domain errors
|
|
20
|
+
if (result.error.code === "Cms/Entry/ValidationError") {
|
|
21
|
+
return Result.fail(new PageValidationError(result.error.message));
|
|
22
|
+
}
|
|
23
|
+
return Result.fail(new PagePersistenceError(result.error));
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// Map CmsEntry to WbPage domain type
|
|
27
|
+
const page = EntryToPageMapper.toPage(result.value);
|
|
28
|
+
return Result.ok(page);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export const CreatePageRepository = RepositoryAbstraction.createImplementation({
|
|
32
|
+
implementation: CreatePageRepositoryImpl,
|
|
33
|
+
dependencies: [CreateEntryUseCase, PageModel]
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
//# sourceMappingURL=CreatePageRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Result","CreateEntryUseCase","CreatePageRepository","RepositoryAbstraction","PageModel","EntryToPageMapper","PagePersistenceError","PageValidationError","CreatePageRepositoryImpl","constructor","createEntry","pageModel","execute","data","result","location","values","isFail","error","code","fail","message","page","toPage","value","ok","createImplementation","implementation","dependencies"],"sources":["CreatePageRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { CreateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/CreateEntry\";\nimport {\n CreatePageRepository as RepositoryAbstraction,\n type ICreatePageRepository\n} from \"./abstractions.js\";\nimport { PageModel } from \"~/domain/page/abstractions.js\";\nimport { EntryToPageMapper } from \"~/domain/page/EntryToPageMapper.js\";\nimport { PagePersistenceError, PageValidationError } from \"~/domain/page/errors.js\";\n\nclass CreatePageRepositoryImpl implements ICreatePageRepository {\n constructor(\n private createEntry: CreateEntryUseCase.Interface,\n private pageModel: PageModel.Interface\n ) {}\n\n async execute(data: RepositoryAbstraction.Params): RepositoryAbstraction.Return {\n // Create the entry using CMS CreateEntry use case\n const result = await this.createEntry.execute(this.pageModel, {\n location: data.location,\n values: data\n });\n\n if (result.isFail()) {\n // Map CMS errors to domain errors\n if (result.error.code === \"Cms/Entry/ValidationError\") {\n return Result.fail(new PageValidationError(result.error.message));\n }\n return Result.fail(new PagePersistenceError(result.error));\n }\n\n // Map CmsEntry to WbPage domain type\n const page = EntryToPageMapper.toPage(result.value);\n return Result.ok(page);\n }\n}\n\nexport const CreatePageRepository = RepositoryAbstraction.createImplementation({\n implementation: CreatePageRepositoryImpl,\n dependencies: [CreateEntryUseCase, PageModel]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,kBAAkB,QAAQ,4DAA4D;AAC/F,SACIC,oBAAoB,IAAIC,qBAAqB;AAGjD,SAASC,SAAS;AAClB,SAASC,iBAAiB;AAC1B,SAASC,oBAAoB,EAAEC,mBAAmB;AAElD,MAAMC,wBAAwB,CAAkC;EAC5DC,WAAWA,CACCC,WAAyC,EACzCC,SAA8B,EACxC;IAAA,KAFUD,WAAyC,GAAzCA,WAAyC;IAAA,KACzCC,SAA8B,GAA9BA,SAA8B;EACvC;EAEH,MAAMC,OAAOA,CAACC,IAAkC,EAAgC;IAC5E;IACA,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACJ,WAAW,CAACE,OAAO,CAAC,IAAI,CAACD,SAAS,EAAE;MAC1DI,QAAQ,EAAEF,IAAI,CAACE,QAAQ;MACvBC,MAAM,EAAEH;IACZ,CAAC,CAAC;IAEF,IAAIC,MAAM,CAACG,MAAM,CAAC,CAAC,EAAE;MACjB;MACA,IAAIH,MAAM,CAACI,KAAK,CAACC,IAAI,KAAK,2BAA2B,EAAE;QACnD,OAAOnB,MAAM,CAACoB,IAAI,CAAC,IAAIb,mBAAmB,CAACO,MAAM,CAACI,KAAK,CAACG,OAAO,CAAC,CAAC;MACrE;MACA,OAAOrB,MAAM,CAACoB,IAAI,CAAC,IAAId,oBAAoB,CAACQ,MAAM,CAACI,KAAK,CAAC,CAAC;IAC9D;;IAEA;IACA,MAAMI,IAAI,GAAGjB,iBAAiB,CAACkB,MAAM,CAACT,MAAM,CAACU,KAAK,CAAC;IACnD,OAAOxB,MAAM,CAACyB,EAAE,CAACH,IAAI,CAAC;EAC1B;AACJ;AAEA,OAAO,MAAMpB,oBAAoB,GAAGC,qBAAqB,CAACuB,oBAAoB,CAAC;EAC3EC,cAAc,EAAEnB,wBAAwB;EACxCoB,YAAY,EAAE,CAAC3B,kBAAkB,EAAEG,SAAS;AAChD,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { EventPublisher as EventPublisherAbstraction } from "@webiny/api-core/features/EventPublisher";
|
|
2
|
+
import { CreatePageUseCase as UseCaseAbstraction, CreatePageRepository } from "./abstractions.js";
|
|
3
|
+
import { WbPermissions } from "../../../domain/permissions.js";
|
|
4
|
+
declare class CreatePageUseCaseImpl implements UseCaseAbstraction.Interface {
|
|
5
|
+
private permissions;
|
|
6
|
+
private eventPublisher;
|
|
7
|
+
private repository;
|
|
8
|
+
constructor(permissions: WbPermissions.Interface, eventPublisher: EventPublisherAbstraction.Interface, repository: CreatePageRepository.Interface);
|
|
9
|
+
execute(data: UseCaseAbstraction.Params): UseCaseAbstraction.Return;
|
|
10
|
+
}
|
|
11
|
+
export declare const CreatePageUseCase: typeof CreatePageUseCaseImpl & {
|
|
12
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").ICreatePageUseCase>;
|
|
13
|
+
};
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { EventPublisher } from "@webiny/api-core/features/EventPublisher";
|
|
3
|
+
import { CreatePageUseCase as UseCaseAbstraction, CreatePageRepository } from "./abstractions.js";
|
|
4
|
+
import { PageBeforeCreateEvent, PageAfterCreateEvent } from "./events.js";
|
|
5
|
+
import { WbPermissions } from "../../../domain/permissions.js";
|
|
6
|
+
import { PageNotAuthorizedError } from "../../../domain/page/errors.js";
|
|
7
|
+
class CreatePageUseCaseImpl {
|
|
8
|
+
constructor(permissions, eventPublisher, repository) {
|
|
9
|
+
this.permissions = permissions;
|
|
10
|
+
this.eventPublisher = eventPublisher;
|
|
11
|
+
this.repository = repository;
|
|
12
|
+
}
|
|
13
|
+
async execute(data) {
|
|
14
|
+
const hasPermission = await this.permissions.canCreate("page");
|
|
15
|
+
if (!hasPermission) {
|
|
16
|
+
return Result.fail(new PageNotAuthorizedError());
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// Publish before create event
|
|
20
|
+
const beforeCreateEvent = new PageBeforeCreateEvent({
|
|
21
|
+
input: data
|
|
22
|
+
});
|
|
23
|
+
await this.eventPublisher.publish(beforeCreateEvent);
|
|
24
|
+
|
|
25
|
+
// Execute the create operation
|
|
26
|
+
const result = await this.repository.execute(data);
|
|
27
|
+
if (result.isFail()) {
|
|
28
|
+
return result;
|
|
29
|
+
}
|
|
30
|
+
const page = result.value;
|
|
31
|
+
|
|
32
|
+
// Publish after create event
|
|
33
|
+
const afterCreateEvent = new PageAfterCreateEvent({
|
|
34
|
+
page
|
|
35
|
+
});
|
|
36
|
+
await this.eventPublisher.publish(afterCreateEvent);
|
|
37
|
+
return Result.ok(page);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
export const CreatePageUseCase = UseCaseAbstraction.createImplementation({
|
|
41
|
+
implementation: CreatePageUseCaseImpl,
|
|
42
|
+
dependencies: [WbPermissions.Abstraction, EventPublisher, CreatePageRepository]
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
//# sourceMappingURL=CreatePageUseCase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Result","EventPublisher","CreatePageUseCase","UseCaseAbstraction","CreatePageRepository","PageBeforeCreateEvent","PageAfterCreateEvent","WbPermissions","PageNotAuthorizedError","CreatePageUseCaseImpl","constructor","permissions","eventPublisher","repository","execute","data","hasPermission","canCreate","fail","beforeCreateEvent","input","publish","result","isFail","page","value","afterCreateEvent","ok","createImplementation","implementation","dependencies","Abstraction"],"sources":["CreatePageUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/EventPublisher\";\nimport { CreatePageUseCase as UseCaseAbstraction, CreatePageRepository } from \"./abstractions.js\";\nimport { PageBeforeCreateEvent, PageAfterCreateEvent } from \"./events.js\";\nimport { WbPermissions } from \"~/domain/permissions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\n\nclass CreatePageUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private repository: CreatePageRepository.Interface\n ) {}\n\n async execute(data: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canCreate(\"page\");\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Publish before create event\n const beforeCreateEvent = new PageBeforeCreateEvent({ input: data });\n\n await this.eventPublisher.publish(beforeCreateEvent);\n\n // Execute the create operation\n const result = await this.repository.execute(data);\n\n if (result.isFail()) {\n return result;\n }\n\n const page = result.value;\n\n // Publish after create event\n const afterCreateEvent = new PageAfterCreateEvent({ page });\n\n await this.eventPublisher.publish(afterCreateEvent);\n\n return Result.ok(page);\n }\n}\n\nexport const CreatePageUseCase = UseCaseAbstraction.createImplementation({\n implementation: CreatePageUseCaseImpl,\n dependencies: [WbPermissions.Abstraction, EventPublisher, CreatePageRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,cAAc,QAEX,0CAA0C;AACjD,SAASC,iBAAiB,IAAIC,kBAAkB,EAAEC,oBAAoB;AACtE,SAASC,qBAAqB,EAAEC,oBAAoB;AACpD,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAE/B,MAAMC,qBAAqB,CAAyC;EAChEC,WAAWA,CACCC,WAAoC,EACpCC,cAAmD,EACnDC,UAA0C,EACpD;IAAA,KAHUF,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,UAA0C,GAA1CA,UAA0C;EACnD;EAEH,MAAMC,OAAOA,CAACC,IAA+B,EAA6B;IACtE,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACL,WAAW,CAACM,SAAS,CAAC,MAAM,CAAC;IAC9D,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOhB,MAAM,CAACkB,IAAI,CAAC,IAAIV,sBAAsB,CAAC,CAAC,CAAC;IACpD;;IAEA;IACA,MAAMW,iBAAiB,GAAG,IAAId,qBAAqB,CAAC;MAAEe,KAAK,EAAEL;IAAK,CAAC,CAAC;IAEpE,MAAM,IAAI,CAACH,cAAc,CAACS,OAAO,CAACF,iBAAiB,CAAC;;IAEpD;IACA,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACT,UAAU,CAACC,OAAO,CAACC,IAAI,CAAC;IAElD,IAAIO,MAAM,CAACC,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOD,MAAM;IACjB;IAEA,MAAME,IAAI,GAAGF,MAAM,CAACG,KAAK;;IAEzB;IACA,MAAMC,gBAAgB,GAAG,IAAIpB,oBAAoB,CAAC;MAAEkB;IAAK,CAAC,CAAC;IAE3D,MAAM,IAAI,CAACZ,cAAc,CAACS,OAAO,CAACK,gBAAgB,CAAC;IAEnD,OAAO1B,MAAM,CAAC2B,EAAE,CAACH,IAAI,CAAC;EAC1B;AACJ;AAEA,OAAO,MAAMtB,iBAAiB,GAAGC,kBAAkB,CAACyB,oBAAoB,CAAC;EACrEC,cAAc,EAAEpB,qBAAqB;EACrCqB,YAAY,EAAE,CAACvB,aAAa,CAACwB,WAAW,EAAE9B,cAAc,EAAEG,oBAAoB;AAClF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { type Result } from "@webiny/feature/api";
|
|
2
|
+
import type { DomainEvent, IEventHandler } from "@webiny/api-core/features/EventPublisher";
|
|
3
|
+
import type { WbPage } from "../../../domain/page/abstractions.js";
|
|
4
|
+
import { PagePersistenceError, PageValidationError, PageNotAuthorizedError } from "../../../domain/page/errors.js";
|
|
5
|
+
export type ICreateWbPageParams = Pick<WbPage, "properties" | "metadata" | "bindings" | "elements" | "location" | "extensions">;
|
|
6
|
+
export interface ICreatePageRepository {
|
|
7
|
+
execute(data: ICreateWbPageParams): Promise<Result<WbPage, RepositoryError>>;
|
|
8
|
+
}
|
|
9
|
+
export interface ICreatePageRepositoryErrors {
|
|
10
|
+
validation: PageValidationError;
|
|
11
|
+
persistence: PagePersistenceError;
|
|
12
|
+
}
|
|
13
|
+
type RepositoryError = ICreatePageRepositoryErrors[keyof ICreatePageRepositoryErrors];
|
|
14
|
+
export declare const CreatePageRepository: import("@webiny/di").Abstraction<ICreatePageRepository>;
|
|
15
|
+
export declare namespace CreatePageRepository {
|
|
16
|
+
type Interface = ICreatePageRepository;
|
|
17
|
+
type Params = ICreateWbPageParams;
|
|
18
|
+
type Return = Promise<Result<WbPage, RepositoryError>>;
|
|
19
|
+
type Error = RepositoryError;
|
|
20
|
+
}
|
|
21
|
+
export interface ICreatePageUseCase {
|
|
22
|
+
execute(data: ICreateWbPageParams): Promise<Result<WbPage, UseCaseError>>;
|
|
23
|
+
}
|
|
24
|
+
export interface ICreatePageUseCaseErrors {
|
|
25
|
+
notAuthorized: PageNotAuthorizedError;
|
|
26
|
+
validation: PageValidationError;
|
|
27
|
+
persistence: PagePersistenceError;
|
|
28
|
+
}
|
|
29
|
+
type UseCaseError = ICreatePageUseCaseErrors[keyof ICreatePageUseCaseErrors];
|
|
30
|
+
export declare const CreatePageUseCase: import("@webiny/di").Abstraction<ICreatePageUseCase>;
|
|
31
|
+
export declare namespace CreatePageUseCase {
|
|
32
|
+
type Interface = ICreatePageUseCase;
|
|
33
|
+
type Params = ICreateWbPageParams;
|
|
34
|
+
type Return = Promise<Result<WbPage, UseCaseError>>;
|
|
35
|
+
type Error = UseCaseError;
|
|
36
|
+
type Page = WbPage;
|
|
37
|
+
}
|
|
38
|
+
export interface PageBeforeCreatePayload {
|
|
39
|
+
input: ICreateWbPageParams;
|
|
40
|
+
}
|
|
41
|
+
export interface PageAfterCreatePayload {
|
|
42
|
+
page: WbPage;
|
|
43
|
+
}
|
|
44
|
+
export declare const PageBeforeCreateHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<PageBeforeCreatePayload>>>;
|
|
45
|
+
export declare namespace PageBeforeCreateHandler {
|
|
46
|
+
type Interface = IEventHandler<DomainEvent<PageBeforeCreatePayload>>;
|
|
47
|
+
type Event = DomainEvent<PageBeforeCreatePayload>;
|
|
48
|
+
type Page = WbPage;
|
|
49
|
+
}
|
|
50
|
+
export declare const PageAfterCreateHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<PageAfterCreatePayload>>>;
|
|
51
|
+
export declare namespace PageAfterCreateHandler {
|
|
52
|
+
type Interface = IEventHandler<DomainEvent<PageAfterCreatePayload>>;
|
|
53
|
+
type Event = DomainEvent<PageAfterCreatePayload>;
|
|
54
|
+
type Page = WbPage;
|
|
55
|
+
}
|
|
56
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { createAbstraction } from "@webiny/feature/api";
|
|
2
|
+
|
|
3
|
+
// ============================================================================
|
|
4
|
+
// Type Definitions
|
|
5
|
+
// ============================================================================
|
|
6
|
+
|
|
7
|
+
// ============================================================================
|
|
8
|
+
// Repository Abstraction
|
|
9
|
+
// ============================================================================
|
|
10
|
+
|
|
11
|
+
export const CreatePageRepository = createAbstraction("Wb/CreatePageRepository");
|
|
12
|
+
|
|
13
|
+
// ============================================================================
|
|
14
|
+
// Use Case Abstraction
|
|
15
|
+
// ============================================================================
|
|
16
|
+
|
|
17
|
+
export const CreatePageUseCase = createAbstraction("Wb/CreatePageUseCase");
|
|
18
|
+
|
|
19
|
+
// ============================================================================
|
|
20
|
+
// Event Payload Types
|
|
21
|
+
// ============================================================================
|
|
22
|
+
|
|
23
|
+
// ============================================================================
|
|
24
|
+
// Event Handler Abstractions
|
|
25
|
+
// ============================================================================
|
|
26
|
+
|
|
27
|
+
export const PageBeforeCreateHandler = createAbstraction("Wb/PageBeforeCreateHandler");
|
|
28
|
+
export const PageAfterCreateHandler = createAbstraction("Wb/PageAfterCreateHandler");
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=abstractions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createAbstraction","CreatePageRepository","CreatePageUseCase","PageBeforeCreateHandler","PageAfterCreateHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { DomainEvent, IEventHandler } from \"@webiny/api-core/features/EventPublisher\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport {\n PagePersistenceError,\n PageValidationError,\n PageNotAuthorizedError\n} from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport type ICreateWbPageParams = Pick<\n WbPage,\n \"properties\" | \"metadata\" | \"bindings\" | \"elements\" | \"location\" | \"extensions\"\n>;\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface ICreatePageRepository {\n execute(data: ICreateWbPageParams): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface ICreatePageRepositoryErrors {\n validation: PageValidationError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = ICreatePageRepositoryErrors[keyof ICreatePageRepositoryErrors];\n\nexport const CreatePageRepository =\n createAbstraction<ICreatePageRepository>(\"Wb/CreatePageRepository\");\n\nexport namespace CreatePageRepository {\n export type Interface = ICreatePageRepository;\n export type Params = ICreateWbPageParams;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface ICreatePageUseCase {\n execute(data: ICreateWbPageParams): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface ICreatePageUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n validation: PageValidationError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = ICreatePageUseCaseErrors[keyof ICreatePageUseCaseErrors];\n\nexport const CreatePageUseCase = createAbstraction<ICreatePageUseCase>(\"Wb/CreatePageUseCase\");\n\nexport namespace CreatePageUseCase {\n export type Interface = ICreatePageUseCase;\n export type Params = ICreateWbPageParams;\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 PageBeforeCreatePayload {\n input: ICreateWbPageParams;\n}\n\nexport interface PageAfterCreatePayload {\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\nexport const PageBeforeCreateHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforeCreatePayload>>\n>(\"Wb/PageBeforeCreateHandler\");\n\nexport namespace PageBeforeCreateHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforeCreatePayload>>;\n export type Event = DomainEvent<PageBeforeCreatePayload>;\n export type Page = WbPage;\n}\n\nexport const PageAfterCreateHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterCreatePayload>>\n>(\"Wb/PageAfterCreateHandler\");\n\nexport namespace PageAfterCreateHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterCreatePayload>>;\n export type Event = DomainEvent<PageAfterCreatePayload>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AASpE;AACA;AACA;;AAOA;AACA;AACA;;AAaA,OAAO,MAAMC,oBAAoB,GAC7BD,iBAAiB,CAAwB,yBAAyB,CAAC;;AASvE;AACA;AACA;;AAcA,OAAO,MAAME,iBAAiB,GAAGF,iBAAiB,CAAqB,sBAAsB,CAAC;;AAU9F;AACA;AACA;;AAUA;AACA;AACA;;AAEA,OAAO,MAAMG,uBAAuB,GAAGH,iBAAiB,CAEtD,4BAA4B,CAAC;AAQ/B,OAAO,MAAMI,sBAAsB,GAAGJ,iBAAiB,CAErD,2BAA2B,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
|
|
2
|
+
import type { PageBeforeCreatePayload, PageAfterCreatePayload } from "./abstractions.js";
|
|
3
|
+
export declare class PageBeforeCreateEvent extends DomainEvent<PageBeforeCreatePayload> {
|
|
4
|
+
eventType: "page.beforeCreate";
|
|
5
|
+
getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<PageBeforeCreatePayload>>>;
|
|
6
|
+
}
|
|
7
|
+
export declare class PageAfterCreateEvent extends DomainEvent<PageAfterCreatePayload> {
|
|
8
|
+
eventType: "page.afterCreate";
|
|
9
|
+
getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<PageAfterCreatePayload>>>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
|
|
2
|
+
import { PageBeforeCreateHandler, PageAfterCreateHandler } from "./abstractions.js";
|
|
3
|
+
// PageBeforeCreate Event
|
|
4
|
+
export class PageBeforeCreateEvent extends DomainEvent {
|
|
5
|
+
eventType = "page.beforeCreate";
|
|
6
|
+
getHandlerAbstraction() {
|
|
7
|
+
return PageBeforeCreateHandler;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// PageAfterCreate Event
|
|
12
|
+
export class PageAfterCreateEvent extends DomainEvent {
|
|
13
|
+
eventType = "page.afterCreate";
|
|
14
|
+
getHandlerAbstraction() {
|
|
15
|
+
return PageAfterCreateHandler;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DomainEvent","PageBeforeCreateHandler","PageAfterCreateHandler","PageBeforeCreateEvent","eventType","getHandlerAbstraction","PageAfterCreateEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport { PageBeforeCreateHandler, PageAfterCreateHandler } from \"./abstractions.js\";\nimport type { PageBeforeCreatePayload, PageAfterCreatePayload } from \"./abstractions.js\";\n\n// PageBeforeCreate Event\nexport class PageBeforeCreateEvent extends DomainEvent<PageBeforeCreatePayload> {\n eventType = \"page.beforeCreate\" as const;\n\n getHandlerAbstraction() {\n return PageBeforeCreateHandler;\n }\n}\n\n// PageAfterCreate Event\nexport class PageAfterCreateEvent extends DomainEvent<PageAfterCreatePayload> {\n eventType = \"page.afterCreate\" as const;\n\n getHandlerAbstraction() {\n return PageAfterCreateHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,0CAA0C;AACtE,SAASC,uBAAuB,EAAEC,sBAAsB;AAGxD;AACA,OAAO,MAAMC,qBAAqB,SAASH,WAAW,CAA0B;EAC5EI,SAAS,GAAG,mBAAmB;EAE/BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,uBAAuB;EAClC;AACJ;;AAEA;AACA,OAAO,MAAMK,oBAAoB,SAASN,WAAW,CAAyB;EAC1EI,SAAS,GAAG,kBAAkB;EAE9BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,sBAAsB;EACjC;AACJ","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const CreatePageFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { CreatePageRepository } from "./CreatePageRepository.js";
|
|
3
|
+
import { CreatePageUseCase } from "./CreatePageUseCase.js";
|
|
4
|
+
export const CreatePageFeature = createFeature({
|
|
5
|
+
name: "WebsiteBuilder/CreatePage",
|
|
6
|
+
register(container) {
|
|
7
|
+
container.register(CreatePageRepository).inSingletonScope();
|
|
8
|
+
container.register(CreatePageUseCase);
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createFeature","CreatePageRepository","CreatePageUseCase","CreatePageFeature","name","register","container","inSingletonScope"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { CreatePageRepository } from \"./CreatePageRepository.js\";\nimport { CreatePageUseCase } from \"./CreatePageUseCase.js\";\n\nexport const CreatePageFeature = createFeature({\n name: \"WebsiteBuilder/CreatePage\",\n register(container) {\n container.register(CreatePageRepository).inSingletonScope();\n container.register(CreatePageUseCase);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,oBAAoB;AAC7B,SAASC,iBAAiB;AAE1B,OAAO,MAAMC,iBAAiB,GAAGH,aAAa,CAAC;EAC3CI,IAAI,EAAE,2BAA2B;EACjCC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACJ,oBAAoB,CAAC,CAACM,gBAAgB,CAAC,CAAC;IAC3DD,SAAS,CAACD,QAAQ,CAACH,iBAAiB,CAAC;EACzC;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,15 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { CreatePageWithEvents } from "./CreatePageWithEvents";
|
|
3
|
-
import type { OnPageAfterCreateTopicParams, OnPageBeforeCreateTopicParams, WbPagesStorageOperations } from "../../../context/pages/pages.types";
|
|
4
|
-
export interface CreatePageUseCasesTopics {
|
|
5
|
-
onPageBeforeCreate: Topic<OnPageBeforeCreateTopicParams>;
|
|
6
|
-
onPageAfterCreate: Topic<OnPageAfterCreateTopicParams>;
|
|
7
|
-
}
|
|
8
|
-
interface CreatePageUseCasesParams {
|
|
9
|
-
createOperation: WbPagesStorageOperations["create"];
|
|
10
|
-
topics: CreatePageUseCasesTopics;
|
|
11
|
-
}
|
|
12
|
-
export declare const getCreatePageUseCase: (params: CreatePageUseCasesParams) => {
|
|
13
|
-
createPageUseCase: CreatePageWithEvents;
|
|
14
|
-
};
|
|
15
|
-
export {};
|
|
1
|
+
export { PageAfterCreateHandler, PageBeforeCreateHandler, CreatePageUseCase } from "./abstractions.js";
|
|
@@ -1,18 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.getCreatePageUseCase = void 0;
|
|
7
|
-
var _CreatePage = require("./CreatePage");
|
|
8
|
-
var _CreatePageWithEvents = require("./CreatePageWithEvents");
|
|
9
|
-
const getCreatePageUseCase = params => {
|
|
10
|
-
const createPage = new _CreatePage.CreatePage(params.createOperation);
|
|
11
|
-
const createPageUseCase = new _CreatePageWithEvents.CreatePageWithEvents(params.topics, createPage);
|
|
12
|
-
return {
|
|
13
|
-
createPageUseCase
|
|
14
|
-
};
|
|
15
|
-
};
|
|
16
|
-
exports.getCreatePageUseCase = getCreatePageUseCase;
|
|
1
|
+
export { PageAfterCreateHandler, PageBeforeCreateHandler, CreatePageUseCase } from "./abstractions.js";
|
|
17
2
|
|
|
18
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["PageAfterCreateHandler","PageBeforeCreateHandler","CreatePageUseCase"],"sources":["index.ts"],"sourcesContent":["export {\n PageAfterCreateHandler,\n PageBeforeCreateHandler,\n CreatePageUseCase\n} from \"./abstractions.js\";\n"],"mappings":"AAAA,SACIA,sBAAsB,EACtBC,uBAAuB,EACvBC,iBAAiB","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { CreateEntryRevisionFromUseCase } from "@webiny/api-headless-cms/features/contentEntry/CreateEntryRevisionFrom/index.js";
|
|
2
|
+
import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById";
|
|
3
|
+
import { PageModel } from "../../../domain/page/abstractions.js";
|
|
4
|
+
import { CreatePageRevisionFromRepository as RepositoryAbstraction } from "./abstractions.js";
|
|
5
|
+
declare class CreatePageRevisionFromRepositoryImpl implements RepositoryAbstraction.Interface {
|
|
6
|
+
private createRevisionFrom;
|
|
7
|
+
private getEntryById;
|
|
8
|
+
private pageModel;
|
|
9
|
+
constructor(createRevisionFrom: CreateEntryRevisionFromUseCase.Interface, getEntryById: GetEntryByIdUseCase.Interface, pageModel: PageModel.Interface);
|
|
10
|
+
execute(params: RepositoryAbstraction.Params): RepositoryAbstraction.Return;
|
|
11
|
+
}
|
|
12
|
+
export declare const CreatePageRevisionFromRepository: typeof CreatePageRevisionFromRepositoryImpl & {
|
|
13
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").ICreatePageRevisionFromRepository>;
|
|
14
|
+
};
|
|
15
|
+
export {};
|