@webiny/api-website-builder 6.0.0 → 6.1.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/domain/page/EntryToPageMapper.js +1 -0
- package/domain/page/EntryToPageMapper.js.map +1 -1
- package/domain/page/abstractions.d.ts +6 -1
- package/domain/page/abstractions.js.map +1 -1
- package/domain/page/errors.d.ts +6 -0
- package/domain/page/errors.js +11 -0
- package/domain/page/errors.js.map +1 -1
- package/exports/api/website-builder/page.d.ts +4 -0
- package/exports/api/website-builder/page.js +4 -0
- package/exports/api/website-builder/page.js.map +1 -1
- package/features/nextjs/abstractions.d.ts +1 -0
- package/features/nextjs/abstractions.js +1 -0
- package/features/nextjs/abstractions.js.map +1 -1
- package/features/pages/CreatePage/abstractions.d.ts +3 -0
- package/features/pages/CreatePage/abstractions.js +3 -0
- package/features/pages/CreatePage/abstractions.js.map +1 -1
- package/features/pages/CreatePageRevisionFrom/abstractions.d.ts +3 -0
- package/features/pages/CreatePageRevisionFrom/abstractions.js +3 -0
- package/features/pages/CreatePageRevisionFrom/abstractions.js.map +1 -1
- package/features/pages/DeletePage/DeletePageRepository.d.ts +1 -3
- package/features/pages/DeletePage/DeletePageRepository.js +2 -13
- package/features/pages/DeletePage/DeletePageRepository.js.map +1 -1
- package/features/pages/DeletePage/DeletePageUseCase.d.ts +4 -4
- package/features/pages/DeletePage/DeletePageUseCase.js +7 -7
- package/features/pages/DeletePage/DeletePageUseCase.js.map +1 -1
- package/features/pages/DeletePage/abstractions.d.ts +5 -1
- package/features/pages/DeletePage/abstractions.js +3 -0
- package/features/pages/DeletePage/abstractions.js.map +1 -1
- package/features/pages/DuplicatePage/abstractions.d.ts +3 -0
- package/features/pages/DuplicatePage/abstractions.js +3 -0
- package/features/pages/DuplicatePage/abstractions.js.map +1 -1
- package/features/pages/GetDeletedPageById/GetDeletedPageByIdRepository.d.ts +13 -0
- package/features/pages/GetDeletedPageById/GetDeletedPageByIdRepository.js +32 -0
- package/features/pages/GetDeletedPageById/GetDeletedPageByIdRepository.js.map +1 -0
- package/features/pages/GetDeletedPageById/GetDeletedPageByIdUseCase.d.ts +12 -0
- package/features/pages/GetDeletedPageById/GetDeletedPageByIdUseCase.js +31 -0
- package/features/pages/GetDeletedPageById/GetDeletedPageByIdUseCase.js.map +1 -0
- package/features/pages/GetDeletedPageById/abstractions.d.ts +42 -0
- package/features/pages/GetDeletedPageById/abstractions.js +15 -0
- package/features/pages/GetDeletedPageById/abstractions.js.map +1 -0
- package/features/pages/GetDeletedPageById/feature.d.ts +1 -0
- package/features/pages/GetDeletedPageById/feature.js +12 -0
- package/features/pages/GetDeletedPageById/feature.js.map +1 -0
- package/features/pages/GetDeletedPageById/index.d.ts +1 -0
- package/features/pages/GetDeletedPageById/index.js +3 -0
- package/features/pages/GetDeletedPageById/index.js.map +1 -0
- package/features/pages/GetPageById/abstractions.d.ts +1 -0
- package/features/pages/GetPageById/abstractions.js +1 -0
- package/features/pages/GetPageById/abstractions.js.map +1 -1
- package/features/pages/GetPageByPath/abstractions.d.ts +1 -0
- package/features/pages/GetPageByPath/abstractions.js +1 -0
- package/features/pages/GetPageByPath/abstractions.js.map +1 -1
- package/features/pages/GetPageRevisions/abstractions.d.ts +1 -0
- package/features/pages/GetPageRevisions/abstractions.js +1 -0
- package/features/pages/GetPageRevisions/abstractions.js.map +1 -1
- package/features/pages/ListDeletedPages/ListDeletedPagesRepository.d.ts +17 -0
- package/features/pages/ListDeletedPages/ListDeletedPagesRepository.js +49 -0
- package/features/pages/ListDeletedPages/ListDeletedPagesRepository.js.map +1 -0
- package/features/pages/ListDeletedPages/ListDeletedPagesUseCase.d.ts +14 -0
- package/features/pages/ListDeletedPages/ListDeletedPagesUseCase.js +35 -0
- package/features/pages/ListDeletedPages/ListDeletedPagesUseCase.js.map +1 -0
- package/features/pages/ListDeletedPages/abstractions.d.ts +56 -0
- package/features/pages/ListDeletedPages/abstractions.js +15 -0
- package/features/pages/ListDeletedPages/abstractions.js.map +1 -0
- package/features/pages/ListDeletedPages/feature.d.ts +1 -0
- package/features/pages/ListDeletedPages/feature.js +12 -0
- package/features/pages/ListDeletedPages/feature.js.map +1 -0
- package/features/pages/ListDeletedPages/index.d.ts +1 -0
- package/features/pages/ListDeletedPages/index.js +3 -0
- package/features/pages/ListDeletedPages/index.js.map +1 -0
- package/features/pages/ListPages/abstractions.d.ts +1 -0
- package/features/pages/ListPages/abstractions.js +1 -0
- package/features/pages/ListPages/abstractions.js.map +1 -1
- package/features/pages/MovePage/abstractions.d.ts +3 -0
- package/features/pages/MovePage/abstractions.js +3 -0
- package/features/pages/MovePage/abstractions.js.map +1 -1
- package/features/pages/PublishPage/abstractions.d.ts +3 -0
- package/features/pages/PublishPage/abstractions.js +3 -0
- package/features/pages/PublishPage/abstractions.js.map +1 -1
- package/features/pages/RestorePage/RestorePageRepository.d.ts +13 -0
- package/features/pages/RestorePage/RestorePageRepository.js +30 -0
- package/features/pages/RestorePage/RestorePageRepository.js.map +1 -0
- package/features/pages/RestorePage/RestorePageUseCase.d.ts +16 -0
- package/features/pages/RestorePage/RestorePageUseCase.js +52 -0
- package/features/pages/RestorePage/RestorePageUseCase.js.map +1 -0
- package/features/pages/RestorePage/abstractions.d.ts +59 -0
- package/features/pages/RestorePage/abstractions.js +30 -0
- package/features/pages/RestorePage/abstractions.js.map +1 -0
- package/features/pages/RestorePage/events.d.ts +10 -0
- package/features/pages/RestorePage/events.js +19 -0
- package/features/pages/RestorePage/events.js.map +1 -0
- package/features/pages/RestorePage/feature.d.ts +1 -0
- package/features/pages/RestorePage/feature.js +12 -0
- package/features/pages/RestorePage/feature.js.map +1 -0
- package/features/pages/RestorePage/index.d.ts +1 -0
- package/features/pages/RestorePage/index.js +3 -0
- package/features/pages/RestorePage/index.js.map +1 -0
- package/features/pages/TrashPage/TrashPageRepository.d.ts +13 -0
- package/features/pages/TrashPage/TrashPageRepository.js +30 -0
- package/features/pages/TrashPage/TrashPageRepository.js.map +1 -0
- package/features/pages/TrashPage/TrashPageUseCase.d.ts +16 -0
- package/features/pages/TrashPage/TrashPageUseCase.js +52 -0
- package/features/pages/TrashPage/TrashPageUseCase.js.map +1 -0
- package/features/pages/TrashPage/abstractions.d.ts +58 -0
- package/features/pages/TrashPage/abstractions.js +30 -0
- package/features/pages/TrashPage/abstractions.js.map +1 -0
- package/features/pages/TrashPage/events.d.ts +10 -0
- package/features/pages/TrashPage/events.js +19 -0
- package/features/pages/TrashPage/events.js.map +1 -0
- package/features/pages/TrashPage/feature.d.ts +1 -0
- package/features/pages/TrashPage/feature.js +12 -0
- package/features/pages/TrashPage/feature.js.map +1 -0
- package/features/pages/TrashPage/index.d.ts +1 -0
- package/features/pages/TrashPage/index.js +3 -0
- package/features/pages/TrashPage/index.js.map +1 -0
- package/features/pages/UnpublishPage/abstractions.d.ts +3 -0
- package/features/pages/UnpublishPage/abstractions.js +3 -0
- package/features/pages/UnpublishPage/abstractions.js.map +1 -1
- package/features/pages/UpdatePage/abstractions.d.ts +3 -0
- package/features/pages/UpdatePage/abstractions.js +3 -0
- package/features/pages/UpdatePage/abstractions.js.map +1 -1
- package/features/redirects/CreateRedirect/abstractions.d.ts +3 -0
- package/features/redirects/CreateRedirect/abstractions.js +3 -0
- package/features/redirects/CreateRedirect/abstractions.js.map +1 -1
- package/features/redirects/DeleteRedirect/abstractions.d.ts +3 -0
- package/features/redirects/DeleteRedirect/abstractions.js +3 -0
- package/features/redirects/DeleteRedirect/abstractions.js.map +1 -1
- package/features/redirects/GetActiveRedirects/abstractions.d.ts +1 -0
- package/features/redirects/GetActiveRedirects/abstractions.js +1 -0
- package/features/redirects/GetActiveRedirects/abstractions.js.map +1 -1
- package/features/redirects/GetRedirectById/abstractions.d.ts +1 -0
- package/features/redirects/GetRedirectById/abstractions.js +1 -0
- package/features/redirects/GetRedirectById/abstractions.js.map +1 -1
- package/features/redirects/InvalidateRedirectsCache/abstractions.d.ts +1 -0
- package/features/redirects/InvalidateRedirectsCache/abstractions.js +1 -0
- package/features/redirects/InvalidateRedirectsCache/abstractions.js.map +1 -1
- package/features/redirects/ListRedirects/abstractions.d.ts +1 -0
- package/features/redirects/ListRedirects/abstractions.js +1 -0
- package/features/redirects/ListRedirects/abstractions.js.map +1 -1
- package/features/redirects/MoveRedirect/abstractions.d.ts +3 -0
- package/features/redirects/MoveRedirect/abstractions.js +3 -0
- package/features/redirects/MoveRedirect/abstractions.js.map +1 -1
- package/features/redirects/UpdateRedirect/abstractions.d.ts +3 -0
- package/features/redirects/UpdateRedirect/abstractions.js +3 -0
- package/features/redirects/UpdateRedirect/abstractions.js.map +1 -1
- package/graphql/pages/pages.gql.js +43 -2
- package/graphql/pages/pages.gql.js.map +1 -1
- package/graphql/pages/pages.typeDefs.d.ts +1 -1
- package/graphql/pages/pages.typeDefs.js +9 -1
- package/graphql/pages/pages.typeDefs.js.map +1 -1
- package/index.js +8 -0
- package/index.js.map +1 -1
- package/package.json +19 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ROOT_FOLDER","EntryToPageMapper","toPage","entry","id","entryId","location","folderId","status","version","locked","createdOn","createdBy","savedOn","savedBy","modifiedOn","modifiedBy","tenant","system","live","properties","values","metadata","bindings","elements","extensions"],"sources":["EntryToPageMapper.ts"],"sourcesContent":["import type { CmsEntry } from \"@webiny/api-headless-cms/types\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\n\nexport class EntryToPageMapper {\n static toPage(entry: CmsEntry): WbPage {\n return {\n id: entry.id,\n entryId: entry.entryId,\n location: {\n folderId: entry.location?.folderId ?? ROOT_FOLDER\n },\n status: entry.status,\n version: entry.version,\n locked: entry.locked,\n createdOn: entry.createdOn,\n createdBy: entry.createdBy,\n savedOn: entry.savedOn,\n savedBy: entry.savedBy,\n modifiedOn: entry.modifiedOn ?? null,\n modifiedBy: entry.modifiedBy ?? null,\n tenant: entry.tenant,\n system: entry.system,\n live: entry.live,\n properties: entry.values.properties,\n metadata: entry.values.metadata,\n bindings: entry.values.bindings,\n elements: entry.values.elements,\n extensions: entry.values.extensions\n };\n }\n}\n"],"mappings":"AAEA,SAASA,WAAW;AAEpB,OAAO,MAAMC,iBAAiB,CAAC;EAC3B,OAAOC,MAAMA,CAACC,KAAe,EAAU;IACnC,OAAO;MACHC,EAAE,EAAED,KAAK,CAACC,EAAE;MACZC,OAAO,EAAEF,KAAK,CAACE,OAAO;MACtBC,QAAQ,EAAE;QACNC,QAAQ,EAAEJ,KAAK,CAACG,QAAQ,EAAEC,QAAQ,IAAIP;MAC1C,CAAC;MACDQ,MAAM,EAAEL,KAAK,CAACK,MAAM;MACpBC,OAAO,EAAEN,KAAK,CAACM,OAAO;MACtBC,MAAM,EAAEP,KAAK,CAACO,MAAM;MACpBC,SAAS,EAAER,KAAK,CAACQ,SAAS;MAC1BC,SAAS,EAAET,KAAK,CAACS,SAAS;MAC1BC,OAAO,EAAEV,KAAK,CAACU,OAAO;MACtBC,OAAO,EAAEX,KAAK,CAACW,OAAO;MACtBC,UAAU,EAAEZ,KAAK,CAACY,UAAU,IAAI,IAAI;MACpCC,UAAU,EAAEb,KAAK,CAACa,UAAU,IAAI,IAAI;MACpCC,MAAM,EAAEd,KAAK,CAACc,MAAM;MACpBC,MAAM,EAAEf,KAAK,CAACe,MAAM;MACpBC,IAAI,EAAEhB,KAAK,CAACgB,IAAI;MAChBC,
|
|
1
|
+
{"version":3,"names":["ROOT_FOLDER","EntryToPageMapper","toPage","entry","id","entryId","location","folderId","status","version","locked","createdOn","createdBy","savedOn","savedBy","modifiedOn","modifiedBy","tenant","system","live","deleted","wbyDeleted","properties","values","metadata","bindings","elements","extensions"],"sources":["EntryToPageMapper.ts"],"sourcesContent":["import type { CmsEntry } from \"@webiny/api-headless-cms/types\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\n\nexport class EntryToPageMapper {\n static toPage(entry: CmsEntry): WbPage {\n return {\n id: entry.id,\n entryId: entry.entryId,\n location: {\n folderId: entry.location?.folderId ?? ROOT_FOLDER\n },\n status: entry.status,\n version: entry.version,\n locked: entry.locked,\n createdOn: entry.createdOn,\n createdBy: entry.createdBy,\n savedOn: entry.savedOn,\n savedBy: entry.savedBy,\n modifiedOn: entry.modifiedOn ?? null,\n modifiedBy: entry.modifiedBy ?? null,\n tenant: entry.tenant,\n system: entry.system,\n live: entry.live,\n deleted: entry.wbyDeleted || false,\n properties: entry.values.properties,\n metadata: entry.values.metadata,\n bindings: entry.values.bindings,\n elements: entry.values.elements,\n extensions: entry.values.extensions\n };\n }\n}\n"],"mappings":"AAEA,SAASA,WAAW;AAEpB,OAAO,MAAMC,iBAAiB,CAAC;EAC3B,OAAOC,MAAMA,CAACC,KAAe,EAAU;IACnC,OAAO;MACHC,EAAE,EAAED,KAAK,CAACC,EAAE;MACZC,OAAO,EAAEF,KAAK,CAACE,OAAO;MACtBC,QAAQ,EAAE;QACNC,QAAQ,EAAEJ,KAAK,CAACG,QAAQ,EAAEC,QAAQ,IAAIP;MAC1C,CAAC;MACDQ,MAAM,EAAEL,KAAK,CAACK,MAAM;MACpBC,OAAO,EAAEN,KAAK,CAACM,OAAO;MACtBC,MAAM,EAAEP,KAAK,CAACO,MAAM;MACpBC,SAAS,EAAER,KAAK,CAACQ,SAAS;MAC1BC,SAAS,EAAET,KAAK,CAACS,SAAS;MAC1BC,OAAO,EAAEV,KAAK,CAACU,OAAO;MACtBC,OAAO,EAAEX,KAAK,CAACW,OAAO;MACtBC,UAAU,EAAEZ,KAAK,CAACY,UAAU,IAAI,IAAI;MACpCC,UAAU,EAAEb,KAAK,CAACa,UAAU,IAAI,IAAI;MACpCC,MAAM,EAAEd,KAAK,CAACc,MAAM;MACpBC,MAAM,EAAEf,KAAK,CAACe,MAAM;MACpBC,IAAI,EAAEhB,KAAK,CAACgB,IAAI;MAChBC,OAAO,EAAEjB,KAAK,CAACkB,UAAU,IAAI,KAAK;MAClCC,UAAU,EAAEnB,KAAK,CAACoB,MAAM,CAACD,UAAU;MACnCE,QAAQ,EAAErB,KAAK,CAACoB,MAAM,CAACC,QAAQ;MAC/BC,QAAQ,EAAEtB,KAAK,CAACoB,MAAM,CAACE,QAAQ;MAC/BC,QAAQ,EAAEvB,KAAK,CAACoB,MAAM,CAACG,QAAQ;MAC/BC,UAAU,EAAExB,KAAK,CAACoB,MAAM,CAACI;IAC7B,CAAC;EACL;AACJ","ignoreList":[]}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import type { CmsModel, ICmsEntryLive, ICmsEntrySystem } from "@webiny/api-headless-cms/types/index.js";
|
|
2
2
|
import type { WbIdentity, WbLocation } from "../../domain/shared/abstractions.js";
|
|
3
|
+
export interface CmsEntryWbPageProperties {
|
|
4
|
+
title: string;
|
|
5
|
+
[key: string]: any;
|
|
6
|
+
}
|
|
3
7
|
export interface CmsEntryWbPage {
|
|
4
|
-
properties:
|
|
8
|
+
properties: CmsEntryWbPageProperties;
|
|
5
9
|
metadata: Record<string, any>;
|
|
6
10
|
bindings: Record<string, any>;
|
|
7
11
|
elements: Record<string, any>;
|
|
@@ -22,6 +26,7 @@ export interface WbPage extends CmsEntryWbPage {
|
|
|
22
26
|
modifiedBy: WbIdentity | null;
|
|
23
27
|
tenant: string;
|
|
24
28
|
system?: ICmsEntrySystem;
|
|
29
|
+
deleted: boolean;
|
|
25
30
|
live: ICmsEntryLive | null;
|
|
26
31
|
}
|
|
27
32
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createAbstraction","PageModel"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type {\n CmsModel,\n ICmsEntryLive,\n ICmsEntrySystem\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport type { WbIdentity, WbLocation } from \"~/domain/shared/abstractions.js\";\n\nexport interface
|
|
1
|
+
{"version":3,"names":["createAbstraction","PageModel"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type {\n CmsModel,\n ICmsEntryLive,\n ICmsEntrySystem\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport type { WbIdentity, WbLocation } from \"~/domain/shared/abstractions.js\";\n\nexport interface CmsEntryWbPageProperties {\n title: string;\n [key: string]: any;\n}\n\nexport interface CmsEntryWbPage {\n properties: CmsEntryWbPageProperties;\n metadata: Record<string, any>;\n bindings: Record<string, any>;\n elements: Record<string, any>;\n extensions?: Record<string, any>;\n}\n\nexport interface WbPage extends CmsEntryWbPage {\n id: string;\n entryId: string;\n location: WbLocation;\n status: string;\n version: number;\n locked: boolean;\n createdOn: string;\n createdBy: WbIdentity;\n savedOn: string;\n savedBy: WbIdentity;\n modifiedOn: string | null;\n modifiedBy: WbIdentity | null;\n tenant: string;\n system?: ICmsEntrySystem;\n deleted: boolean;\n live: ICmsEntryLive | null;\n}\n\n/**\n * PageModel abstraction - represents the Website Builder page CMS model.\n * This will be registered via container.registerInstance in the composite feature.\n */\nexport const PageModel = createAbstraction<CmsModel>(\"Wb/PageModel\");\n\nexport namespace PageModel {\n export type Interface = CmsModel;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAwCvD;AACA;AACA;AACA;AACA,OAAO,MAAMC,SAAS,GAAGD,iBAAiB,CAAW,cAAc,CAAC","ignoreList":[]}
|
package/domain/page/errors.d.ts
CHANGED
|
@@ -5,6 +5,12 @@ export declare class PageNotFoundError extends BaseError<{
|
|
|
5
5
|
readonly code: "WebsiteBuilder/Page/NotFound";
|
|
6
6
|
constructor(id: string);
|
|
7
7
|
}
|
|
8
|
+
export declare class PageNotFoundTrashedError extends BaseError<{
|
|
9
|
+
id: string;
|
|
10
|
+
}> {
|
|
11
|
+
readonly code: "WebsiteBuilder/Page/NotFoundTrashed";
|
|
12
|
+
constructor(id: string);
|
|
13
|
+
}
|
|
8
14
|
export declare class PagePersistenceError extends BaseError {
|
|
9
15
|
readonly code: "WebsiteBuilder/Page/PersistenceError";
|
|
10
16
|
constructor(error: Error);
|
package/domain/page/errors.js
CHANGED
|
@@ -10,6 +10,17 @@ export class PageNotFoundError extends BaseError {
|
|
|
10
10
|
});
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
+
export class PageNotFoundTrashedError extends BaseError {
|
|
14
|
+
code = "WebsiteBuilder/Page/NotFoundTrashed";
|
|
15
|
+
constructor(id) {
|
|
16
|
+
super({
|
|
17
|
+
message: "Trashed page not found!",
|
|
18
|
+
data: {
|
|
19
|
+
id
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
}
|
|
13
24
|
export class PagePersistenceError extends BaseError {
|
|
14
25
|
code = "WebsiteBuilder/Page/PersistenceError";
|
|
15
26
|
constructor(error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BaseError","PageNotFoundError","code","constructor","id","message","data","PagePersistenceError","error","PageValidationError","PageNotAuthorizedError"],"sources":["errors.ts"],"sourcesContent":["import { BaseError } from \"@webiny/feature/api\";\n\nexport class PageNotFoundError extends BaseError<{ id: string }> {\n override readonly code = \"WebsiteBuilder/Page/NotFound\" as const;\n\n constructor(id: string) {\n super({\n message: \"Page not found!\",\n data: {\n id\n }\n });\n }\n}\n\nexport class PagePersistenceError extends BaseError {\n override readonly code = \"WebsiteBuilder/Page/PersistenceError\" as const;\n\n constructor(error: Error) {\n super({ message: error.message });\n }\n}\n\nexport class PageValidationError extends BaseError {\n override readonly code = \"WebsiteBuilder/Page/ValidationError\" as const;\n\n constructor(message: string) {\n super({ message });\n }\n}\n\nexport class PageNotAuthorizedError extends BaseError {\n override readonly code = \"WebsiteBuilder/Page/NotAuthorized\" as const;\n\n constructor() {\n super({ message: \"Not authorized!\" });\n }\n}\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,qBAAqB;AAE/C,OAAO,MAAMC,iBAAiB,SAASD,SAAS,CAAiB;EAC3CE,IAAI,GAAG,8BAA8B;EAEvDC,WAAWA,CAACC,EAAU,EAAE;IACpB,KAAK,CAAC;MACFC,OAAO,EAAE,iBAAiB;MAC1BC,IAAI,EAAE;QACFF;MACJ;IACJ,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMG,
|
|
1
|
+
{"version":3,"names":["BaseError","PageNotFoundError","code","constructor","id","message","data","PageNotFoundTrashedError","PagePersistenceError","error","PageValidationError","PageNotAuthorizedError"],"sources":["errors.ts"],"sourcesContent":["import { BaseError } from \"@webiny/feature/api\";\n\nexport class PageNotFoundError extends BaseError<{ id: string }> {\n override readonly code = \"WebsiteBuilder/Page/NotFound\" as const;\n\n constructor(id: string) {\n super({\n message: \"Page not found!\",\n data: {\n id\n }\n });\n }\n}\n\nexport class PageNotFoundTrashedError extends BaseError<{ id: string }> {\n override readonly code = \"WebsiteBuilder/Page/NotFoundTrashed\" as const;\n\n constructor(id: string) {\n super({\n message: \"Trashed page not found!\",\n data: {\n id\n }\n });\n }\n}\n\nexport class PagePersistenceError extends BaseError {\n override readonly code = \"WebsiteBuilder/Page/PersistenceError\" as const;\n\n constructor(error: Error) {\n super({ message: error.message });\n }\n}\n\nexport class PageValidationError extends BaseError {\n override readonly code = \"WebsiteBuilder/Page/ValidationError\" as const;\n\n constructor(message: string) {\n super({ message });\n }\n}\n\nexport class PageNotAuthorizedError extends BaseError {\n override readonly code = \"WebsiteBuilder/Page/NotAuthorized\" as const;\n\n constructor() {\n super({ message: \"Not authorized!\" });\n }\n}\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,qBAAqB;AAE/C,OAAO,MAAMC,iBAAiB,SAASD,SAAS,CAAiB;EAC3CE,IAAI,GAAG,8BAA8B;EAEvDC,WAAWA,CAACC,EAAU,EAAE;IACpB,KAAK,CAAC;MACFC,OAAO,EAAE,iBAAiB;MAC1BC,IAAI,EAAE;QACFF;MACJ;IACJ,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMG,wBAAwB,SAASP,SAAS,CAAiB;EAClDE,IAAI,GAAG,qCAAqC;EAE9DC,WAAWA,CAACC,EAAU,EAAE;IACpB,KAAK,CAAC;MACFC,OAAO,EAAE,yBAAyB;MAClCC,IAAI,EAAE;QACFF;MACJ;IACJ,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMI,oBAAoB,SAASR,SAAS,CAAC;EAC9BE,IAAI,GAAG,sCAAsC;EAE/DC,WAAWA,CAACM,KAAY,EAAE;IACtB,KAAK,CAAC;MAAEJ,OAAO,EAAEI,KAAK,CAACJ;IAAQ,CAAC,CAAC;EACrC;AACJ;AAEA,OAAO,MAAMK,mBAAmB,SAASV,SAAS,CAAC;EAC7BE,IAAI,GAAG,qCAAqC;EAE9DC,WAAWA,CAACE,OAAe,EAAE;IACzB,KAAK,CAAC;MAAEA;IAAQ,CAAC,CAAC;EACtB;AACJ;AAEA,OAAO,MAAMM,sBAAsB,SAASX,SAAS,CAAC;EAChCE,IAAI,GAAG,mCAAmC;EAE5DC,WAAWA,CAAA,EAAG;IACV,KAAK,CAAC;MAAEE,OAAO,EAAE;IAAkB,CAAC,CAAC;EACzC;AACJ","ignoreList":[]}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
export { CreatePageUseCase, PageAfterCreateEventHandler, PageBeforeCreateEventHandler } from "../../../features/pages/CreatePage/abstractions.js";
|
|
2
2
|
export { CreatePageRevisionFromUseCase, PageAfterCreateRevisionFromEventHandler, PageBeforeCreateRevisionFromEventHandler } from "../../../features/pages/CreatePageRevisionFrom/abstractions.js";
|
|
3
3
|
export { DeletePageUseCase, PageAfterDeleteEventHandler, PageBeforeDeleteEventHandler } from "../../../features/pages/DeletePage/abstractions.js";
|
|
4
|
+
export { TrashPageUseCase, PageAfterTrashEventHandler, PageBeforeTrashEventHandler } from "../../../features/pages/TrashPage/abstractions.js";
|
|
5
|
+
export { RestorePageUseCase, PageAfterRestoreEventHandler, PageBeforeRestoreEventHandler } from "../../../features/pages/RestorePage/abstractions.js";
|
|
4
6
|
export { DuplicatePageUseCase, PageAfterDuplicateEventHandler, PageBeforeDuplicateEventHandler } from "../../../features/pages/DuplicatePage/abstractions.js";
|
|
5
7
|
export { GetPageByIdUseCase } from "../../../features/pages/GetPageById/abstractions.js";
|
|
8
|
+
export { GetDeletedPageByIdUseCase } from "../../../features/pages/GetDeletedPageById/abstractions.js";
|
|
6
9
|
export { GetPageByPathUseCase } from "../../../features/pages/GetPageByPath/abstractions.js";
|
|
7
10
|
export { GetPageRevisionsUseCase } from "../../../features/pages/GetPageRevisions/abstractions.js";
|
|
8
11
|
export { ListPagesUseCase } from "../../../features/pages/ListPages/abstractions.js";
|
|
12
|
+
export { ListDeletedPagesUseCase } from "../../../features/pages/ListDeletedPages/abstractions.js";
|
|
9
13
|
export { MovePageUseCase, PageAfterMoveEventHandler, PageBeforeMoveEventHandler } from "../../../features/pages/MovePage/abstractions.js";
|
|
10
14
|
export { PublishPageUseCase, PageAfterPublishEventHandler, PageBeforePublishEventHandler } from "../../../features/pages/PublishPage/abstractions.js";
|
|
11
15
|
export { UnpublishPageUseCase, PageAfterUnpublishEventHandler, PageBeforeUnpublishEventHandler } from "../../../features/pages/UnpublishPage/abstractions.js";
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
export { CreatePageUseCase, PageAfterCreateEventHandler, PageBeforeCreateEventHandler } from "../../../features/pages/CreatePage/abstractions.js";
|
|
2
2
|
export { CreatePageRevisionFromUseCase, PageAfterCreateRevisionFromEventHandler, PageBeforeCreateRevisionFromEventHandler } from "../../../features/pages/CreatePageRevisionFrom/abstractions.js";
|
|
3
3
|
export { DeletePageUseCase, PageAfterDeleteEventHandler, PageBeforeDeleteEventHandler } from "../../../features/pages/DeletePage/abstractions.js";
|
|
4
|
+
export { TrashPageUseCase, PageAfterTrashEventHandler, PageBeforeTrashEventHandler } from "../../../features/pages/TrashPage/abstractions.js";
|
|
5
|
+
export { RestorePageUseCase, PageAfterRestoreEventHandler, PageBeforeRestoreEventHandler } from "../../../features/pages/RestorePage/abstractions.js";
|
|
4
6
|
export { DuplicatePageUseCase, PageAfterDuplicateEventHandler, PageBeforeDuplicateEventHandler } from "../../../features/pages/DuplicatePage/abstractions.js";
|
|
5
7
|
export { GetPageByIdUseCase } from "../../../features/pages/GetPageById/abstractions.js";
|
|
8
|
+
export { GetDeletedPageByIdUseCase } from "../../../features/pages/GetDeletedPageById/abstractions.js";
|
|
6
9
|
export { GetPageByPathUseCase } from "../../../features/pages/GetPageByPath/abstractions.js";
|
|
7
10
|
export { GetPageRevisionsUseCase } from "../../../features/pages/GetPageRevisions/abstractions.js";
|
|
8
11
|
export { ListPagesUseCase } from "../../../features/pages/ListPages/abstractions.js";
|
|
12
|
+
export { ListDeletedPagesUseCase } from "../../../features/pages/ListDeletedPages/abstractions.js";
|
|
9
13
|
export { MovePageUseCase, PageAfterMoveEventHandler, PageBeforeMoveEventHandler } from "../../../features/pages/MovePage/abstractions.js";
|
|
10
14
|
export { PublishPageUseCase, PageAfterPublishEventHandler, PageBeforePublishEventHandler } from "../../../features/pages/PublishPage/abstractions.js";
|
|
11
15
|
export { UnpublishPageUseCase, PageAfterUnpublishEventHandler, PageBeforeUnpublishEventHandler } from "../../../features/pages/UnpublishPage/abstractions.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CreatePageUseCase","PageAfterCreateEventHandler","PageBeforeCreateEventHandler","CreatePageRevisionFromUseCase","PageAfterCreateRevisionFromEventHandler","PageBeforeCreateRevisionFromEventHandler","DeletePageUseCase","PageAfterDeleteEventHandler","PageBeforeDeleteEventHandler","DuplicatePageUseCase","PageAfterDuplicateEventHandler","PageBeforeDuplicateEventHandler","GetPageByIdUseCase","GetPageByPathUseCase","GetPageRevisionsUseCase","ListPagesUseCase","MovePageUseCase","PageAfterMoveEventHandler","PageBeforeMoveEventHandler","PublishPageUseCase","PageAfterPublishEventHandler","PageBeforePublishEventHandler","UnpublishPageUseCase","PageAfterUnpublishEventHandler","PageBeforeUnpublishEventHandler","UpdatePageUseCase","PageAfterUpdateEventHandler","PageBeforeUpdateEventHandler"],"sources":["page.ts"],"sourcesContent":["export {\n CreatePageUseCase,\n PageAfterCreateEventHandler,\n PageBeforeCreateEventHandler\n} from \"~/features/pages/CreatePage/abstractions.js\";\nexport {\n CreatePageRevisionFromUseCase,\n PageAfterCreateRevisionFromEventHandler,\n PageBeforeCreateRevisionFromEventHandler\n} from \"~/features/pages/CreatePageRevisionFrom/abstractions.js\";\nexport {\n DeletePageUseCase,\n PageAfterDeleteEventHandler,\n PageBeforeDeleteEventHandler\n} from \"~/features/pages/DeletePage/abstractions.js\";\nexport {\n DuplicatePageUseCase,\n PageAfterDuplicateEventHandler,\n PageBeforeDuplicateEventHandler\n} from \"~/features/pages/DuplicatePage/abstractions.js\";\nexport { GetPageByIdUseCase } from \"~/features/pages/GetPageById/abstractions.js\";\nexport { GetPageByPathUseCase } from \"~/features/pages/GetPageByPath/abstractions.js\";\nexport { GetPageRevisionsUseCase } from \"~/features/pages/GetPageRevisions/abstractions.js\";\nexport { ListPagesUseCase } from \"~/features/pages/ListPages/abstractions.js\";\nexport {\n MovePageUseCase,\n PageAfterMoveEventHandler,\n PageBeforeMoveEventHandler\n} from \"~/features/pages/MovePage/abstractions.js\";\nexport {\n PublishPageUseCase,\n PageAfterPublishEventHandler,\n PageBeforePublishEventHandler\n} from \"~/features/pages/PublishPage/abstractions.js\";\nexport {\n UnpublishPageUseCase,\n PageAfterUnpublishEventHandler,\n PageBeforeUnpublishEventHandler\n} from \"~/features/pages/UnpublishPage/abstractions.js\";\nexport {\n UpdatePageUseCase,\n PageAfterUpdateEventHandler,\n PageBeforeUpdateEventHandler\n} from \"~/features/pages/UpdatePage/abstractions.js\";\n"],"mappings":"AAAA,SACIA,iBAAiB,EACjBC,2BAA2B,EAC3BC,4BAA4B;AAEhC,SACIC,6BAA6B,EAC7BC,uCAAuC,EACvCC,wCAAwC;AAE5C,SACIC,iBAAiB,EACjBC,2BAA2B,EAC3BC,4BAA4B;AAEhC,SACIC,oBAAoB,EACpBC,8BAA8B,EAC9BC,+BAA+B;AAEnC,SAASC,kBAAkB;AAC3B,SAASC,oBAAoB;AAC7B,SAASC,uBAAuB;AAChC,SAASC,gBAAgB;AACzB,SACIC,eAAe,EACfC,yBAAyB,EACzBC,0BAA0B;AAE9B,SACIC,kBAAkB,EAClBC,4BAA4B,EAC5BC,6BAA6B;AAEjC,SACIC,oBAAoB,EACpBC,8BAA8B,EAC9BC,+BAA+B;AAEnC,SACIC,iBAAiB,EACjBC,2BAA2B,EAC3BC,4BAA4B","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["CreatePageUseCase","PageAfterCreateEventHandler","PageBeforeCreateEventHandler","CreatePageRevisionFromUseCase","PageAfterCreateRevisionFromEventHandler","PageBeforeCreateRevisionFromEventHandler","DeletePageUseCase","PageAfterDeleteEventHandler","PageBeforeDeleteEventHandler","TrashPageUseCase","PageAfterTrashEventHandler","PageBeforeTrashEventHandler","RestorePageUseCase","PageAfterRestoreEventHandler","PageBeforeRestoreEventHandler","DuplicatePageUseCase","PageAfterDuplicateEventHandler","PageBeforeDuplicateEventHandler","GetPageByIdUseCase","GetDeletedPageByIdUseCase","GetPageByPathUseCase","GetPageRevisionsUseCase","ListPagesUseCase","ListDeletedPagesUseCase","MovePageUseCase","PageAfterMoveEventHandler","PageBeforeMoveEventHandler","PublishPageUseCase","PageAfterPublishEventHandler","PageBeforePublishEventHandler","UnpublishPageUseCase","PageAfterUnpublishEventHandler","PageBeforeUnpublishEventHandler","UpdatePageUseCase","PageAfterUpdateEventHandler","PageBeforeUpdateEventHandler"],"sources":["page.ts"],"sourcesContent":["export {\n CreatePageUseCase,\n PageAfterCreateEventHandler,\n PageBeforeCreateEventHandler\n} from \"~/features/pages/CreatePage/abstractions.js\";\nexport {\n CreatePageRevisionFromUseCase,\n PageAfterCreateRevisionFromEventHandler,\n PageBeforeCreateRevisionFromEventHandler\n} from \"~/features/pages/CreatePageRevisionFrom/abstractions.js\";\nexport {\n DeletePageUseCase,\n PageAfterDeleteEventHandler,\n PageBeforeDeleteEventHandler\n} from \"~/features/pages/DeletePage/abstractions.js\";\nexport {\n TrashPageUseCase,\n PageAfterTrashEventHandler,\n PageBeforeTrashEventHandler\n} from \"~/features/pages/TrashPage/abstractions.js\";\nexport {\n RestorePageUseCase,\n PageAfterRestoreEventHandler,\n PageBeforeRestoreEventHandler\n} from \"~/features/pages/RestorePage/abstractions.js\";\n\nexport {\n DuplicatePageUseCase,\n PageAfterDuplicateEventHandler,\n PageBeforeDuplicateEventHandler\n} from \"~/features/pages/DuplicatePage/abstractions.js\";\nexport { GetPageByIdUseCase } from \"~/features/pages/GetPageById/abstractions.js\";\nexport { GetDeletedPageByIdUseCase } from \"~/features/pages/GetDeletedPageById/abstractions.js\";\nexport { GetPageByPathUseCase } from \"~/features/pages/GetPageByPath/abstractions.js\";\nexport { GetPageRevisionsUseCase } from \"~/features/pages/GetPageRevisions/abstractions.js\";\nexport { ListPagesUseCase } from \"~/features/pages/ListPages/abstractions.js\";\nexport { ListDeletedPagesUseCase } from \"~/features/pages/ListDeletedPages/abstractions.js\";\nexport {\n MovePageUseCase,\n PageAfterMoveEventHandler,\n PageBeforeMoveEventHandler\n} from \"~/features/pages/MovePage/abstractions.js\";\nexport {\n PublishPageUseCase,\n PageAfterPublishEventHandler,\n PageBeforePublishEventHandler\n} from \"~/features/pages/PublishPage/abstractions.js\";\nexport {\n UnpublishPageUseCase,\n PageAfterUnpublishEventHandler,\n PageBeforeUnpublishEventHandler\n} from \"~/features/pages/UnpublishPage/abstractions.js\";\nexport {\n UpdatePageUseCase,\n PageAfterUpdateEventHandler,\n PageBeforeUpdateEventHandler\n} from \"~/features/pages/UpdatePage/abstractions.js\";\n"],"mappings":"AAAA,SACIA,iBAAiB,EACjBC,2BAA2B,EAC3BC,4BAA4B;AAEhC,SACIC,6BAA6B,EAC7BC,uCAAuC,EACvCC,wCAAwC;AAE5C,SACIC,iBAAiB,EACjBC,2BAA2B,EAC3BC,4BAA4B;AAEhC,SACIC,gBAAgB,EAChBC,0BAA0B,EAC1BC,2BAA2B;AAE/B,SACIC,kBAAkB,EAClBC,4BAA4B,EAC5BC,6BAA6B;AAGjC,SACIC,oBAAoB,EACpBC,8BAA8B,EAC9BC,+BAA+B;AAEnC,SAASC,kBAAkB;AAC3B,SAASC,yBAAyB;AAClC,SAASC,oBAAoB;AAC7B,SAASC,uBAAuB;AAChC,SAASC,gBAAgB;AACzB,SAASC,uBAAuB;AAChC,SACIC,eAAe,EACfC,yBAAyB,EACzBC,0BAA0B;AAE9B,SACIC,kBAAkB,EAClBC,4BAA4B,EAC5BC,6BAA6B;AAEjC,SACIC,oBAAoB,EACpBC,8BAA8B,EAC9BC,+BAA+B;AAEnC,SACIC,iBAAiB,EACjBC,2BAA2B,EAC3BC,4BAA4B","ignoreList":[]}
|
|
@@ -2,6 +2,7 @@ import type { IMarkdownContentBuilder } from "../../features/nextjs/MarkdownCont
|
|
|
2
2
|
export interface INextjsConfig {
|
|
3
3
|
execute(): Promise<IMarkdownContentBuilder>;
|
|
4
4
|
}
|
|
5
|
+
/** Configuration for Next.js website rendering. */
|
|
5
6
|
export declare const NextjsConfig: import("@webiny/di").Abstraction<INextjsConfig>;
|
|
6
7
|
export declare namespace NextjsConfig {
|
|
7
8
|
type Interface = INextjsConfig;
|
|
@@ -1 +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":[]}
|
|
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\n/** Configuration for Next.js website rendering. */\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;AACA,OAAO,MAAMC,YAAY,GAAGD,iBAAiB,CAAgB,iBAAiB,CAAC","ignoreList":[]}
|
|
@@ -27,6 +27,7 @@ export interface ICreatePageUseCaseErrors {
|
|
|
27
27
|
persistence: PagePersistenceError;
|
|
28
28
|
}
|
|
29
29
|
type UseCaseError = ICreatePageUseCaseErrors[keyof ICreatePageUseCaseErrors];
|
|
30
|
+
/** Create a new page. */
|
|
30
31
|
export declare const CreatePageUseCase: import("@webiny/di").Abstraction<ICreatePageUseCase>;
|
|
31
32
|
export declare namespace CreatePageUseCase {
|
|
32
33
|
type Interface = ICreatePageUseCase;
|
|
@@ -41,12 +42,14 @@ export interface PageBeforeCreatePayload {
|
|
|
41
42
|
export interface PageAfterCreatePayload {
|
|
42
43
|
page: WbPage;
|
|
43
44
|
}
|
|
45
|
+
/** Hook into page lifecycle before a page is created. */
|
|
44
46
|
export declare const PageBeforeCreateEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<PageBeforeCreatePayload>>>;
|
|
45
47
|
export declare namespace PageBeforeCreateEventHandler {
|
|
46
48
|
type Interface = IEventHandler<DomainEvent<PageBeforeCreatePayload>>;
|
|
47
49
|
type Event = DomainEvent<PageBeforeCreatePayload>;
|
|
48
50
|
type Page = WbPage;
|
|
49
51
|
}
|
|
52
|
+
/** Hook into page lifecycle after a page is created. */
|
|
50
53
|
export declare const PageAfterCreateEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<PageAfterCreatePayload>>>;
|
|
51
54
|
export declare namespace PageAfterCreateEventHandler {
|
|
52
55
|
type Interface = IEventHandler<DomainEvent<PageAfterCreatePayload>>;
|
|
@@ -14,6 +14,7 @@ export const CreatePageRepository = createAbstraction("Wb/CreatePageRepository")
|
|
|
14
14
|
// Use Case Abstraction
|
|
15
15
|
// ============================================================================
|
|
16
16
|
|
|
17
|
+
/** Create a new page. */
|
|
17
18
|
export const CreatePageUseCase = createAbstraction("Wb/CreatePageUseCase");
|
|
18
19
|
|
|
19
20
|
// ============================================================================
|
|
@@ -24,7 +25,9 @@ export const CreatePageUseCase = createAbstraction("Wb/CreatePageUseCase");
|
|
|
24
25
|
// Event Handler Abstractions
|
|
25
26
|
// ============================================================================
|
|
26
27
|
|
|
28
|
+
/** Hook into page lifecycle before a page is created. */
|
|
27
29
|
export const PageBeforeCreateEventHandler = createAbstraction("Wb/PageBeforeCreateEventHandler");
|
|
30
|
+
/** Hook into page lifecycle after a page is created. */
|
|
28
31
|
export const PageAfterCreateEventHandler = createAbstraction("Wb/PageAfterCreateEventHandler");
|
|
29
32
|
|
|
30
33
|
//# sourceMappingURL=abstractions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createAbstraction","CreatePageRepository","CreatePageUseCase","PageBeforeCreateEventHandler","PageAfterCreateEventHandler"],"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 PageBeforeCreateEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforeCreatePayload>>\n>(\"Wb/PageBeforeCreateEventHandler\");\n\nexport namespace PageBeforeCreateEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforeCreatePayload>>;\n export type Event = DomainEvent<PageBeforeCreatePayload>;\n export type Page = WbPage;\n}\n\nexport const PageAfterCreateEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterCreatePayload>>\n>(\"Wb/PageAfterCreateEventHandler\");\n\nexport namespace PageAfterCreateEventHandler {\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,4BAA4B,GAAGH,iBAAiB,CAE3D,iCAAiC,CAAC;AAQpC,OAAO,MAAMI,2BAA2B,GAAGJ,iBAAiB,CAE1D,gCAAgC,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["createAbstraction","CreatePageRepository","CreatePageUseCase","PageBeforeCreateEventHandler","PageAfterCreateEventHandler"],"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\n/** Create a new page. */\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\n/** Hook into page lifecycle before a page is created. */\nexport const PageBeforeCreateEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforeCreatePayload>>\n>(\"Wb/PageBeforeCreateEventHandler\");\n\nexport namespace PageBeforeCreateEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforeCreatePayload>>;\n export type Event = DomainEvent<PageBeforeCreatePayload>;\n export type Page = WbPage;\n}\n\n/** Hook into page lifecycle after a page is created. */\nexport const PageAfterCreateEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterCreatePayload>>\n>(\"Wb/PageAfterCreateEventHandler\");\n\nexport namespace PageAfterCreateEventHandler {\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;AACA,OAAO,MAAME,iBAAiB,GAAGF,iBAAiB,CAAqB,sBAAsB,CAAC;;AAU9F;AACA;AACA;;AAUA;AACA;AACA;;AAEA;AACA,OAAO,MAAMG,4BAA4B,GAAGH,iBAAiB,CAE3D,iCAAiC,CAAC;AAQpC;AACA,OAAO,MAAMI,2BAA2B,GAAGJ,iBAAiB,CAE1D,gCAAgC,CAAC","ignoreList":[]}
|
|
@@ -32,6 +32,7 @@ export interface ICreatePageRevisionFromUseCaseErrors {
|
|
|
32
32
|
persistence: PagePersistenceError;
|
|
33
33
|
}
|
|
34
34
|
type UseCaseError = ICreatePageRevisionFromUseCaseErrors[keyof ICreatePageRevisionFromUseCaseErrors];
|
|
35
|
+
/** Create a page revision from an existing one. */
|
|
35
36
|
export declare const CreatePageRevisionFromUseCase: import("@webiny/di").Abstraction<ICreatePageRevisionFromUseCase>;
|
|
36
37
|
export declare namespace CreatePageRevisionFromUseCase {
|
|
37
38
|
type Interface = ICreatePageRevisionFromUseCase;
|
|
@@ -46,12 +47,14 @@ export interface PageBeforeCreateRevisionFromPayload {
|
|
|
46
47
|
export interface PageAfterCreateRevisionFromPayload {
|
|
47
48
|
page: WbPage;
|
|
48
49
|
}
|
|
50
|
+
/** Hook into page lifecycle before a revision is created from existing. */
|
|
49
51
|
export declare const PageBeforeCreateRevisionFromEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<PageBeforeCreateRevisionFromPayload>>>;
|
|
50
52
|
export declare namespace PageBeforeCreateRevisionFromEventHandler {
|
|
51
53
|
type Interface = IEventHandler<DomainEvent<PageBeforeCreateRevisionFromPayload>>;
|
|
52
54
|
type Event = DomainEvent<PageBeforeCreateRevisionFromPayload>;
|
|
53
55
|
type Page = WbPage;
|
|
54
56
|
}
|
|
57
|
+
/** Hook into page lifecycle after a revision is created from existing. */
|
|
55
58
|
export declare const PageAfterCreateRevisionFromEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<PageAfterCreateRevisionFromPayload>>>;
|
|
56
59
|
export declare namespace PageAfterCreateRevisionFromEventHandler {
|
|
57
60
|
type Interface = IEventHandler<DomainEvent<PageAfterCreateRevisionFromPayload>>;
|
|
@@ -14,6 +14,7 @@ export const CreatePageRevisionFromRepository = createAbstraction("Wb/CreatePage
|
|
|
14
14
|
// Use Case Abstraction
|
|
15
15
|
// ============================================================================
|
|
16
16
|
|
|
17
|
+
/** Create a page revision from an existing one. */
|
|
17
18
|
export const CreatePageRevisionFromUseCase = createAbstraction("Wb/CreatePageRevisionFromUseCase");
|
|
18
19
|
|
|
19
20
|
// ============================================================================
|
|
@@ -24,7 +25,9 @@ export const CreatePageRevisionFromUseCase = createAbstraction("Wb/CreatePageRev
|
|
|
24
25
|
// Event Handler Abstractions
|
|
25
26
|
// ============================================================================
|
|
26
27
|
|
|
28
|
+
/** Hook into page lifecycle before a revision is created from existing. */
|
|
27
29
|
export const PageBeforeCreateRevisionFromEventHandler = createAbstraction("Wb/PageBeforeCreateRevisionFromEventHandler");
|
|
30
|
+
/** Hook into page lifecycle after a revision is created from existing. */
|
|
28
31
|
export const PageAfterCreateRevisionFromEventHandler = createAbstraction("Wb/PageAfterCreateRevisionFromEventHandler");
|
|
29
32
|
|
|
30
33
|
//# sourceMappingURL=abstractions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createAbstraction","CreatePageRevisionFromRepository","CreatePageRevisionFromUseCase","PageBeforeCreateRevisionFromEventHandler","PageAfterCreateRevisionFromEventHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { IEventHandler } from \"@webiny/api-core/features/EventPublisher\";\nimport type { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport {\n PageNotFoundError,\n PagePersistenceError,\n PageValidationError,\n PageNotAuthorizedError\n} from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface ICreateWbPageRevisionFromParams {\n id: string;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface ICreatePageRevisionFromRepository {\n execute(params: ICreateWbPageRevisionFromParams): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface ICreatePageRevisionFromRepositoryErrors {\n validation: PageValidationError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError =\n ICreatePageRevisionFromRepositoryErrors[keyof ICreatePageRevisionFromRepositoryErrors];\n\nexport const CreatePageRevisionFromRepository =\n createAbstraction<ICreatePageRevisionFromRepository>(\"Wb/CreatePageRevisionFromRepository\");\n\nexport namespace CreatePageRevisionFromRepository {\n export type Interface = ICreatePageRevisionFromRepository;\n export type Params = ICreateWbPageRevisionFromParams;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface ICreatePageRevisionFromUseCase {\n execute(params: ICreateWbPageRevisionFromParams): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface ICreatePageRevisionFromUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n validation: PageValidationError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError =\n ICreatePageRevisionFromUseCaseErrors[keyof ICreatePageRevisionFromUseCaseErrors];\n\nexport const CreatePageRevisionFromUseCase = createAbstraction<ICreatePageRevisionFromUseCase>(\n \"Wb/CreatePageRevisionFromUseCase\"\n);\n\nexport namespace CreatePageRevisionFromUseCase {\n export type Interface = ICreatePageRevisionFromUseCase;\n export type Params = ICreateWbPageRevisionFromParams;\n export type Return = Promise<Result<WbPage, UseCaseError>>;\n export type Error = UseCaseError;\n export type Page = WbPage;\n}\n\n// ============================================================================\n// Event Payload Types\n// ============================================================================\n\nexport interface PageBeforeCreateRevisionFromPayload {\n params: ICreateWbPageRevisionFromParams;\n}\n\nexport interface PageAfterCreateRevisionFromPayload {\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\nexport const PageBeforeCreateRevisionFromEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforeCreateRevisionFromPayload>>\n>(\"Wb/PageBeforeCreateRevisionFromEventHandler\");\n\nexport namespace PageBeforeCreateRevisionFromEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforeCreateRevisionFromPayload>>;\n export type Event = DomainEvent<PageBeforeCreateRevisionFromPayload>;\n export type Page = WbPage;\n}\n\nexport const PageAfterCreateRevisionFromEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterCreateRevisionFromPayload>>\n>(\"Wb/PageAfterCreateRevisionFromEventHandler\");\n\nexport namespace PageAfterCreateRevisionFromEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterCreateRevisionFromPayload>>;\n export type Event = DomainEvent<PageAfterCreateRevisionFromPayload>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AAWpE;AACA;AACA;;AAMA;AACA;AACA;;AAeA,OAAO,MAAMC,gCAAgC,GACzCD,iBAAiB,CAAoC,qCAAqC,CAAC;;AAS/F;AACA;AACA;;AAgBA,OAAO,MAAME,6BAA6B,GAAGF,iBAAiB,CAC1D,kCACJ,CAAC;;AAUD;AACA;AACA;;AAUA;AACA;AACA;;AAEA,OAAO,MAAMG,wCAAwC,GAAGH,iBAAiB,CAEvE,6CAA6C,CAAC;AAQhD,OAAO,MAAMI,uCAAuC,GAAGJ,iBAAiB,CAEtE,4CAA4C,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["createAbstraction","CreatePageRevisionFromRepository","CreatePageRevisionFromUseCase","PageBeforeCreateRevisionFromEventHandler","PageAfterCreateRevisionFromEventHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { IEventHandler } from \"@webiny/api-core/features/EventPublisher\";\nimport type { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport {\n PageNotFoundError,\n PagePersistenceError,\n PageValidationError,\n PageNotAuthorizedError\n} from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface ICreateWbPageRevisionFromParams {\n id: string;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface ICreatePageRevisionFromRepository {\n execute(params: ICreateWbPageRevisionFromParams): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface ICreatePageRevisionFromRepositoryErrors {\n validation: PageValidationError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError =\n ICreatePageRevisionFromRepositoryErrors[keyof ICreatePageRevisionFromRepositoryErrors];\n\nexport const CreatePageRevisionFromRepository =\n createAbstraction<ICreatePageRevisionFromRepository>(\"Wb/CreatePageRevisionFromRepository\");\n\nexport namespace CreatePageRevisionFromRepository {\n export type Interface = ICreatePageRevisionFromRepository;\n export type Params = ICreateWbPageRevisionFromParams;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface ICreatePageRevisionFromUseCase {\n execute(params: ICreateWbPageRevisionFromParams): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface ICreatePageRevisionFromUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n validation: PageValidationError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError =\n ICreatePageRevisionFromUseCaseErrors[keyof ICreatePageRevisionFromUseCaseErrors];\n\n/** Create a page revision from an existing one. */\nexport const CreatePageRevisionFromUseCase = createAbstraction<ICreatePageRevisionFromUseCase>(\n \"Wb/CreatePageRevisionFromUseCase\"\n);\n\nexport namespace CreatePageRevisionFromUseCase {\n export type Interface = ICreatePageRevisionFromUseCase;\n export type Params = ICreateWbPageRevisionFromParams;\n export type Return = Promise<Result<WbPage, UseCaseError>>;\n export type Error = UseCaseError;\n export type Page = WbPage;\n}\n\n// ============================================================================\n// Event Payload Types\n// ============================================================================\n\nexport interface PageBeforeCreateRevisionFromPayload {\n params: ICreateWbPageRevisionFromParams;\n}\n\nexport interface PageAfterCreateRevisionFromPayload {\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\n/** Hook into page lifecycle before a revision is created from existing. */\nexport const PageBeforeCreateRevisionFromEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforeCreateRevisionFromPayload>>\n>(\"Wb/PageBeforeCreateRevisionFromEventHandler\");\n\nexport namespace PageBeforeCreateRevisionFromEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforeCreateRevisionFromPayload>>;\n export type Event = DomainEvent<PageBeforeCreateRevisionFromPayload>;\n export type Page = WbPage;\n}\n\n/** Hook into page lifecycle after a revision is created from existing. */\nexport const PageAfterCreateRevisionFromEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterCreateRevisionFromPayload>>\n>(\"Wb/PageAfterCreateRevisionFromEventHandler\");\n\nexport namespace PageAfterCreateRevisionFromEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterCreateRevisionFromPayload>>;\n export type Event = DomainEvent<PageAfterCreateRevisionFromPayload>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AAWpE;AACA;AACA;;AAMA;AACA;AACA;;AAeA,OAAO,MAAMC,gCAAgC,GACzCD,iBAAiB,CAAoC,qCAAqC,CAAC;;AAS/F;AACA;AACA;;AAgBA;AACA,OAAO,MAAME,6BAA6B,GAAGF,iBAAiB,CAC1D,kCACJ,CAAC;;AAUD;AACA;AACA;;AAUA;AACA;AACA;;AAEA;AACA,OAAO,MAAMG,wCAAwC,GAAGH,iBAAiB,CAEvE,6CAA6C,CAAC;AAQhD;AACA,OAAO,MAAMI,uCAAuC,GAAGJ,iBAAiB,CAEtE,4CAA4C,CAAC","ignoreList":[]}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { DeleteEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/DeleteEntry";
|
|
2
|
-
import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById";
|
|
3
2
|
import { DeletePageRepository as RepositoryAbstraction } from "./abstractions.js";
|
|
4
3
|
import { PageModel } from "../../../domain/page/abstractions.js";
|
|
5
4
|
declare class DeletePageRepositoryImpl implements RepositoryAbstraction.Interface {
|
|
6
5
|
private deleteEntry;
|
|
7
|
-
private getEntryById;
|
|
8
6
|
private pageModel;
|
|
9
|
-
constructor(deleteEntry: DeleteEntryUseCase.Interface,
|
|
7
|
+
constructor(deleteEntry: DeleteEntryUseCase.Interface, pageModel: PageModel.Interface);
|
|
10
8
|
execute(params: RepositoryAbstraction.Params): RepositoryAbstraction.Return;
|
|
11
9
|
}
|
|
12
10
|
export declare const DeletePageRepository: typeof DeletePageRepositoryImpl & {
|
|
@@ -1,25 +1,14 @@
|
|
|
1
1
|
import { Result } from "@webiny/feature/api";
|
|
2
2
|
import { DeleteEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/DeleteEntry";
|
|
3
|
-
import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById";
|
|
4
3
|
import { DeletePageRepository as RepositoryAbstraction } from "./abstractions.js";
|
|
5
4
|
import { PageModel } from "../../../domain/page/abstractions.js";
|
|
6
5
|
import { PageNotFoundError, PagePersistenceError } from "../../../domain/page/errors.js";
|
|
7
6
|
class DeletePageRepositoryImpl {
|
|
8
|
-
constructor(deleteEntry,
|
|
7
|
+
constructor(deleteEntry, pageModel) {
|
|
9
8
|
this.deleteEntry = deleteEntry;
|
|
10
|
-
this.getEntryById = getEntryById;
|
|
11
9
|
this.pageModel = pageModel;
|
|
12
10
|
}
|
|
13
11
|
async execute(params) {
|
|
14
|
-
// First, validate the page exists
|
|
15
|
-
const getResult = await this.getEntryById.execute(this.pageModel, params.id);
|
|
16
|
-
if (getResult.isFail()) {
|
|
17
|
-
if (getResult.error.code === "Cms/Entry/NotFound") {
|
|
18
|
-
return Result.fail(new PageNotFoundError(params.id));
|
|
19
|
-
}
|
|
20
|
-
return Result.fail(new PagePersistenceError(getResult.error));
|
|
21
|
-
}
|
|
22
|
-
|
|
23
12
|
// Delete the entry
|
|
24
13
|
const result = await this.deleteEntry.execute(this.pageModel, params.id);
|
|
25
14
|
if (result.isFail()) {
|
|
@@ -33,7 +22,7 @@ class DeletePageRepositoryImpl {
|
|
|
33
22
|
}
|
|
34
23
|
export const DeletePageRepository = RepositoryAbstraction.createImplementation({
|
|
35
24
|
implementation: DeletePageRepositoryImpl,
|
|
36
|
-
dependencies: [DeleteEntryUseCase,
|
|
25
|
+
dependencies: [DeleteEntryUseCase, PageModel]
|
|
37
26
|
});
|
|
38
27
|
|
|
39
28
|
//# sourceMappingURL=DeletePageRepository.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Result","DeleteEntryUseCase","
|
|
1
|
+
{"version":3,"names":["Result","DeleteEntryUseCase","DeletePageRepository","RepositoryAbstraction","PageModel","PageNotFoundError","PagePersistenceError","DeletePageRepositoryImpl","constructor","deleteEntry","pageModel","execute","params","result","id","isFail","error","code","fail","ok","createImplementation","implementation","dependencies"],"sources":["DeletePageRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { DeleteEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/DeleteEntry\";\nimport { DeletePageRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { PageModel } from \"~/domain/page/abstractions.js\";\nimport { PageNotFoundError, PagePersistenceError } from \"~/domain/page/errors.js\";\n\nclass DeletePageRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private deleteEntry: DeleteEntryUseCase.Interface,\n private pageModel: PageModel.Interface\n ) {}\n\n async execute(params: RepositoryAbstraction.Params): RepositoryAbstraction.Return {\n // Delete the entry\n const result = await this.deleteEntry.execute(this.pageModel, params.id);\n\n if (result.isFail()) {\n if (result.error.code === \"Cms/Entry/NotFound\") {\n return Result.fail(new PageNotFoundError(params.id));\n }\n return Result.fail(new PagePersistenceError(result.error));\n }\n\n return Result.ok();\n }\n}\n\nexport const DeletePageRepository = RepositoryAbstraction.createImplementation({\n implementation: DeletePageRepositoryImpl,\n dependencies: [DeleteEntryUseCase, PageModel]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,kBAAkB,QAAQ,4DAA4D;AAC/F,SAASC,oBAAoB,IAAIC,qBAAqB;AACtD,SAASC,SAAS;AAClB,SAASC,iBAAiB,EAAEC,oBAAoB;AAEhD,MAAMC,wBAAwB,CAA4C;EACtEC,WAAWA,CACCC,WAAyC,EACzCC,SAA8B,EACxC;IAAA,KAFUD,WAAyC,GAAzCA,WAAyC;IAAA,KACzCC,SAA8B,GAA9BA,SAA8B;EACvC;EAEH,MAAMC,OAAOA,CAACC,MAAoC,EAAgC;IAC9E;IACA,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACJ,WAAW,CAACE,OAAO,CAAC,IAAI,CAACD,SAAS,EAAEE,MAAM,CAACE,EAAE,CAAC;IAExE,IAAID,MAAM,CAACE,MAAM,CAAC,CAAC,EAAE;MACjB,IAAIF,MAAM,CAACG,KAAK,CAACC,IAAI,KAAK,oBAAoB,EAAE;QAC5C,OAAOjB,MAAM,CAACkB,IAAI,CAAC,IAAIb,iBAAiB,CAACO,MAAM,CAACE,EAAE,CAAC,CAAC;MACxD;MACA,OAAOd,MAAM,CAACkB,IAAI,CAAC,IAAIZ,oBAAoB,CAACO,MAAM,CAACG,KAAK,CAAC,CAAC;IAC9D;IAEA,OAAOhB,MAAM,CAACmB,EAAE,CAAC,CAAC;EACtB;AACJ;AAEA,OAAO,MAAMjB,oBAAoB,GAAGC,qBAAqB,CAACiB,oBAAoB,CAAC;EAC3EC,cAAc,EAAEd,wBAAwB;EACxCe,YAAY,EAAE,CAACrB,kBAAkB,EAAEG,SAAS;AAChD,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { EventPublisher as EventPublisherAbstraction } from "@webiny/api-core/features/EventPublisher";
|
|
2
|
-
import { DeletePageUseCase as UseCaseAbstraction
|
|
3
|
-
import { GetPageByIdUseCase } from "../../../features/pages/GetPageById/index.js";
|
|
2
|
+
import { DeletePageRepository, DeletePageUseCase as UseCaseAbstraction } from "./abstractions.js";
|
|
4
3
|
import { WbPermissions } from "../../../domain/permissions.js";
|
|
4
|
+
import { GetDeletedPageByIdUseCase } from "../../../features/pages/GetDeletedPageById/index.js";
|
|
5
5
|
declare class DeletePageUseCaseImpl implements UseCaseAbstraction.Interface {
|
|
6
6
|
private permissions;
|
|
7
7
|
private eventPublisher;
|
|
8
|
-
private
|
|
8
|
+
private getDeletedPageById;
|
|
9
9
|
private repository;
|
|
10
|
-
constructor(permissions: WbPermissions.Interface, eventPublisher: EventPublisherAbstraction.Interface,
|
|
10
|
+
constructor(permissions: WbPermissions.Interface, eventPublisher: EventPublisherAbstraction.Interface, getDeletedPageById: GetDeletedPageByIdUseCase.Interface, repository: DeletePageRepository.Interface);
|
|
11
11
|
execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return;
|
|
12
12
|
}
|
|
13
13
|
export declare const DeletePageUseCase: typeof DeletePageUseCaseImpl & {
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { Result } from "@webiny/feature/api";
|
|
2
2
|
import { EventPublisher } from "@webiny/api-core/features/EventPublisher";
|
|
3
|
-
import { DeletePageUseCase as UseCaseAbstraction
|
|
4
|
-
import {
|
|
5
|
-
import { GetPageByIdUseCase } from "../GetPageById/index.js";
|
|
3
|
+
import { DeletePageRepository, DeletePageUseCase as UseCaseAbstraction } from "./abstractions.js";
|
|
4
|
+
import { PageAfterDeleteEvent, PageBeforeDeleteEvent } from "./events.js";
|
|
6
5
|
import { WbPermissions } from "../../../domain/permissions.js";
|
|
7
6
|
import { PageNotAuthorizedError } from "../../../domain/page/errors.js";
|
|
7
|
+
import { GetDeletedPageByIdUseCase } from "../GetDeletedPageById/index.js";
|
|
8
8
|
class DeletePageUseCaseImpl {
|
|
9
|
-
constructor(permissions, eventPublisher,
|
|
9
|
+
constructor(permissions, eventPublisher, getDeletedPageById, repository) {
|
|
10
10
|
this.permissions = permissions;
|
|
11
11
|
this.eventPublisher = eventPublisher;
|
|
12
|
-
this.
|
|
12
|
+
this.getDeletedPageById = getDeletedPageById;
|
|
13
13
|
this.repository = repository;
|
|
14
14
|
}
|
|
15
15
|
async execute(params) {
|
|
16
16
|
// Get the page first to include in events and for item-level permission check
|
|
17
|
-
const getResult = await this.
|
|
17
|
+
const getResult = await this.getDeletedPageById.execute(params.id);
|
|
18
18
|
if (getResult.isFail()) {
|
|
19
19
|
return Result.fail(getResult.error);
|
|
20
20
|
}
|
|
@@ -46,7 +46,7 @@ class DeletePageUseCaseImpl {
|
|
|
46
46
|
}
|
|
47
47
|
export const DeletePageUseCase = UseCaseAbstraction.createImplementation({
|
|
48
48
|
implementation: DeletePageUseCaseImpl,
|
|
49
|
-
dependencies: [WbPermissions.Abstraction, EventPublisher,
|
|
49
|
+
dependencies: [WbPermissions.Abstraction, EventPublisher, GetDeletedPageByIdUseCase, DeletePageRepository]
|
|
50
50
|
});
|
|
51
51
|
|
|
52
52
|
//# sourceMappingURL=DeletePageUseCase.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Result","EventPublisher","DeletePageUseCase","UseCaseAbstraction","
|
|
1
|
+
{"version":3,"names":["Result","EventPublisher","DeletePageRepository","DeletePageUseCase","UseCaseAbstraction","PageAfterDeleteEvent","PageBeforeDeleteEvent","WbPermissions","PageNotAuthorizedError","GetDeletedPageByIdUseCase","DeletePageUseCaseImpl","constructor","permissions","eventPublisher","getDeletedPageById","repository","execute","params","getResult","id","isFail","fail","error","page","value","canDelete","beforeEvent","publish","result","afterEvent","ok","createImplementation","implementation","dependencies","Abstraction"],"sources":["DeletePageUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/EventPublisher\";\nimport { DeletePageRepository, DeletePageUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { PageAfterDeleteEvent, PageBeforeDeleteEvent } from \"./events.js\";\nimport { WbPermissions } from \"~/domain/permissions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\nimport { GetDeletedPageByIdUseCase } from \"~/features/pages/GetDeletedPageById/index.js\";\n\nclass DeletePageUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getDeletedPageById: GetDeletedPageByIdUseCase.Interface,\n private repository: DeletePageRepository.Interface\n ) {}\n\n async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n // Get the page first to include in events and for item-level permission check\n const getResult = await this.getDeletedPageById.execute(params.id);\n\n if (getResult.isFail()) {\n return Result.fail(getResult.error);\n }\n\n const page = getResult.value;\n\n const canDelete = await this.permissions.canDelete(\"page\", page);\n if (!canDelete) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Publish before delete event\n const beforeEvent = new PageBeforeDeleteEvent({\n page\n });\n\n await this.eventPublisher.publish(beforeEvent);\n\n // Execute the delete operation\n const result = await this.repository.execute(params);\n\n if (result.isFail()) {\n return result;\n }\n\n // Publish after delete event\n const afterEvent = new PageAfterDeleteEvent({\n page\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return Result.ok();\n }\n}\n\nexport const DeletePageUseCase = UseCaseAbstraction.createImplementation({\n implementation: DeletePageUseCaseImpl,\n dependencies: [\n WbPermissions.Abstraction,\n EventPublisher,\n GetDeletedPageByIdUseCase,\n DeletePageRepository\n ]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,cAAc,QAEX,0CAA0C;AACjD,SAASC,oBAAoB,EAAEC,iBAAiB,IAAIC,kBAAkB;AACtE,SAASC,oBAAoB,EAAEC,qBAAqB;AACpD,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAC/B,SAASC,yBAAyB;AAElC,MAAMC,qBAAqB,CAAyC;EAChEC,WAAWA,CACCC,WAAoC,EACpCC,cAAmD,EACnDC,kBAAuD,EACvDC,UAA0C,EACpD;IAAA,KAJUH,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,kBAAuD,GAAvDA,kBAAuD;IAAA,KACvDC,UAA0C,GAA1CA,UAA0C;EACnD;EAEH,MAAMC,OAAOA,CAACC,MAAiC,EAA6B;IACxE;IACA,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACJ,kBAAkB,CAACE,OAAO,CAACC,MAAM,CAACE,EAAE,CAAC;IAElE,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOpB,MAAM,CAACqB,IAAI,CAACH,SAAS,CAACI,KAAK,CAAC;IACvC;IAEA,MAAMC,IAAI,GAAGL,SAAS,CAACM,KAAK;IAE5B,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACb,WAAW,CAACa,SAAS,CAAC,MAAM,EAAEF,IAAI,CAAC;IAChE,IAAI,CAACE,SAAS,EAAE;MACZ,OAAOzB,MAAM,CAACqB,IAAI,CAAC,IAAIb,sBAAsB,CAAC,CAAC,CAAC;IACpD;;IAEA;IACA,MAAMkB,WAAW,GAAG,IAAIpB,qBAAqB,CAAC;MAC1CiB;IACJ,CAAC,CAAC;IAEF,MAAM,IAAI,CAACV,cAAc,CAACc,OAAO,CAACD,WAAW,CAAC;;IAE9C;IACA,MAAME,MAAM,GAAG,MAAM,IAAI,CAACb,UAAU,CAACC,OAAO,CAACC,MAAM,CAAC;IAEpD,IAAIW,MAAM,CAACR,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOQ,MAAM;IACjB;;IAEA;IACA,MAAMC,UAAU,GAAG,IAAIxB,oBAAoB,CAAC;MACxCkB;IACJ,CAAC,CAAC;IAEF,MAAM,IAAI,CAACV,cAAc,CAACc,OAAO,CAACE,UAAU,CAAC;IAE7C,OAAO7B,MAAM,CAAC8B,EAAE,CAAC,CAAC;EACtB;AACJ;AAEA,OAAO,MAAM3B,iBAAiB,GAAGC,kBAAkB,CAAC2B,oBAAoB,CAAC;EACrEC,cAAc,EAAEtB,qBAAqB;EACrCuB,YAAY,EAAE,CACV1B,aAAa,CAAC2B,WAAW,EACzBjC,cAAc,EACdQ,yBAAyB,EACzBP,oBAAoB;AAE5B,CAAC,CAAC","ignoreList":[]}
|
|
@@ -2,7 +2,7 @@ import { type Result } from "@webiny/feature/api";
|
|
|
2
2
|
import type { IEventHandler } from "@webiny/api-core/features/EventPublisher";
|
|
3
3
|
import type { DomainEvent } from "@webiny/api-core/features/EventPublisher";
|
|
4
4
|
import type { WbPage } from "../../../domain/page/abstractions.js";
|
|
5
|
-
import { PageNotFoundError, PagePersistenceError, PageNotAuthorizedError } from "../../../domain/page/errors.js";
|
|
5
|
+
import type { PageNotFoundError, PagePersistenceError, PageNotAuthorizedError, PageNotFoundTrashedError } from "../../../domain/page/errors.js";
|
|
6
6
|
export interface IDeleteWbPageParams {
|
|
7
7
|
id: string;
|
|
8
8
|
}
|
|
@@ -27,9 +27,11 @@ export interface IDeletePageUseCase {
|
|
|
27
27
|
export interface IDeletePageUseCaseErrors {
|
|
28
28
|
notAuthorized: PageNotAuthorizedError;
|
|
29
29
|
notFound: PageNotFoundError;
|
|
30
|
+
trashedNotFound: PageNotFoundTrashedError;
|
|
30
31
|
persistence: PagePersistenceError;
|
|
31
32
|
}
|
|
32
33
|
type UseCaseError = IDeletePageUseCaseErrors[keyof IDeletePageUseCaseErrors];
|
|
34
|
+
/** Delete a page. */
|
|
33
35
|
export declare const DeletePageUseCase: import("@webiny/di").Abstraction<IDeletePageUseCase>;
|
|
34
36
|
export declare namespace DeletePageUseCase {
|
|
35
37
|
type Interface = IDeletePageUseCase;
|
|
@@ -43,12 +45,14 @@ export interface PageBeforeDeletePayload {
|
|
|
43
45
|
export interface PageAfterDeletePayload {
|
|
44
46
|
page: WbPage;
|
|
45
47
|
}
|
|
48
|
+
/** Hook into page lifecycle before a page is deleted. */
|
|
46
49
|
export declare const PageBeforeDeleteEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<PageBeforeDeletePayload>>>;
|
|
47
50
|
export declare namespace PageBeforeDeleteEventHandler {
|
|
48
51
|
type Interface = IEventHandler<DomainEvent<PageBeforeDeletePayload>>;
|
|
49
52
|
type Event = DomainEvent<PageBeforeDeletePayload>;
|
|
50
53
|
type Page = WbPage;
|
|
51
54
|
}
|
|
55
|
+
/** Hook into page lifecycle after a page is deleted. */
|
|
52
56
|
export declare const PageAfterDeleteEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<PageAfterDeletePayload>>>;
|
|
53
57
|
export declare namespace PageAfterDeleteEventHandler {
|
|
54
58
|
type Interface = IEventHandler<DomainEvent<PageAfterDeletePayload>>;
|
|
@@ -14,6 +14,7 @@ export const DeletePageRepository = createAbstraction("Wb/DeletePageRepository")
|
|
|
14
14
|
// Use Case Abstraction
|
|
15
15
|
// ============================================================================
|
|
16
16
|
|
|
17
|
+
/** Delete a page. */
|
|
17
18
|
export const DeletePageUseCase = createAbstraction("Wb/DeletePageUseCase");
|
|
18
19
|
|
|
19
20
|
// ============================================================================
|
|
@@ -24,7 +25,9 @@ export const DeletePageUseCase = createAbstraction("Wb/DeletePageUseCase");
|
|
|
24
25
|
// Event Handler Abstractions
|
|
25
26
|
// ============================================================================
|
|
26
27
|
|
|
28
|
+
/** Hook into page lifecycle before a page is deleted. */
|
|
27
29
|
export const PageBeforeDeleteEventHandler = createAbstraction("Wb/PageBeforeDeleteEventHandler");
|
|
30
|
+
/** Hook into page lifecycle after a page is deleted. */
|
|
28
31
|
export const PageAfterDeleteEventHandler = createAbstraction("Wb/PageAfterDeleteEventHandler");
|
|
29
32
|
|
|
30
33
|
//# sourceMappingURL=abstractions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createAbstraction","DeletePageRepository","DeletePageUseCase","PageBeforeDeleteEventHandler","PageAfterDeleteEventHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { IEventHandler } from \"@webiny/api-core/features/EventPublisher\";\nimport type { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport {\n PageNotFoundError,\n PagePersistenceError,\n PageNotAuthorizedError\n} from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface IDeleteWbPageParams {\n id: string;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IDeletePageRepository {\n execute(params: IDeleteWbPageParams): Promise<Result<void, RepositoryError>>;\n}\n\nexport interface IDeletePageRepositoryErrors {\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IDeletePageRepositoryErrors[keyof IDeletePageRepositoryErrors];\n\nexport const DeletePageRepository =\n createAbstraction<IDeletePageRepository>(\"Wb/DeletePageRepository\");\n\nexport namespace DeletePageRepository {\n export type Interface = IDeletePageRepository;\n export type Params = IDeleteWbPageParams;\n export type Return = Promise<Result<void, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IDeletePageUseCase {\n execute(params: IDeleteWbPageParams): Promise<Result<void, UseCaseError>>;\n}\n\nexport interface IDeletePageUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IDeletePageUseCaseErrors[keyof IDeletePageUseCaseErrors];\n\nexport const DeletePageUseCase = createAbstraction<IDeletePageUseCase>(\"Wb/DeletePageUseCase\");\n\nexport namespace DeletePageUseCase {\n export type Interface = IDeletePageUseCase;\n export type Params = IDeleteWbPageParams;\n export type Return = Promise<Result<void, UseCaseError>>;\n export type Error = UseCaseError;\n}\n\n// ============================================================================\n// Event Payload Types\n// ============================================================================\n\nexport interface PageBeforeDeletePayload {\n page: WbPage;\n}\n\nexport interface PageAfterDeletePayload {\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\nexport const PageBeforeDeleteEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforeDeletePayload>>\n>(\"Wb/PageBeforeDeleteEventHandler\");\n\nexport namespace PageBeforeDeleteEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforeDeletePayload>>;\n export type Event = DomainEvent<PageBeforeDeletePayload>;\n export type Page = WbPage;\n}\n\nexport const PageAfterDeleteEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterDeletePayload>>\n>(\"Wb/PageAfterDeleteEventHandler\");\n\nexport namespace PageAfterDeleteEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterDeletePayload>>;\n export type Event = DomainEvent<PageAfterDeletePayload>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;
|
|
1
|
+
{"version":3,"names":["createAbstraction","DeletePageRepository","DeletePageUseCase","PageBeforeDeleteEventHandler","PageAfterDeleteEventHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { IEventHandler } from \"@webiny/api-core/features/EventPublisher\";\nimport type { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport type {\n PageNotFoundError,\n PagePersistenceError,\n PageNotAuthorizedError,\n PageNotFoundTrashedError\n} from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface IDeleteWbPageParams {\n id: string;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IDeletePageRepository {\n execute(params: IDeleteWbPageParams): Promise<Result<void, RepositoryError>>;\n}\n\nexport interface IDeletePageRepositoryErrors {\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IDeletePageRepositoryErrors[keyof IDeletePageRepositoryErrors];\n\nexport const DeletePageRepository =\n createAbstraction<IDeletePageRepository>(\"Wb/DeletePageRepository\");\n\nexport namespace DeletePageRepository {\n export type Interface = IDeletePageRepository;\n export type Params = IDeleteWbPageParams;\n export type Return = Promise<Result<void, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IDeletePageUseCase {\n execute(params: IDeleteWbPageParams): Promise<Result<void, UseCaseError>>;\n}\n\nexport interface IDeletePageUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n notFound: PageNotFoundError;\n trashedNotFound: PageNotFoundTrashedError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IDeletePageUseCaseErrors[keyof IDeletePageUseCaseErrors];\n\n/** Delete a page. */\nexport const DeletePageUseCase = createAbstraction<IDeletePageUseCase>(\"Wb/DeletePageUseCase\");\n\nexport namespace DeletePageUseCase {\n export type Interface = IDeletePageUseCase;\n export type Params = IDeleteWbPageParams;\n export type Return = Promise<Result<void, UseCaseError>>;\n export type Error = UseCaseError;\n}\n\n// ============================================================================\n// Event Payload Types\n// ============================================================================\n\nexport interface PageBeforeDeletePayload {\n page: WbPage;\n}\n\nexport interface PageAfterDeletePayload {\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\n/** Hook into page lifecycle before a page is deleted. */\nexport const PageBeforeDeleteEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforeDeletePayload>>\n>(\"Wb/PageBeforeDeleteEventHandler\");\n\nexport namespace PageBeforeDeleteEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforeDeletePayload>>;\n export type Event = DomainEvent<PageBeforeDeletePayload>;\n export type Page = WbPage;\n}\n\n/** Hook into page lifecycle after a page is deleted. */\nexport const PageAfterDeleteEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterDeletePayload>>\n>(\"Wb/PageAfterDeleteEventHandler\");\n\nexport namespace PageAfterDeleteEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterDeletePayload>>;\n export type Event = DomainEvent<PageAfterDeletePayload>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AAWpE;AACA;AACA;;AAMA;AACA;AACA;;AAaA,OAAO,MAAMC,oBAAoB,GAC7BD,iBAAiB,CAAwB,yBAAyB,CAAC;;AASvE;AACA;AACA;;AAeA;AACA,OAAO,MAAME,iBAAiB,GAAGF,iBAAiB,CAAqB,sBAAsB,CAAC;;AAS9F;AACA;AACA;;AAUA;AACA;AACA;;AAEA;AACA,OAAO,MAAMG,4BAA4B,GAAGH,iBAAiB,CAE3D,iCAAiC,CAAC;AAQpC;AACA,OAAO,MAAMI,2BAA2B,GAAGJ,iBAAiB,CAE1D,gCAAgC,CAAC","ignoreList":[]}
|
|
@@ -32,6 +32,7 @@ export interface IDuplicatePageUseCaseErrors {
|
|
|
32
32
|
persistence: PagePersistenceError;
|
|
33
33
|
}
|
|
34
34
|
type UseCaseError = IDuplicatePageUseCaseErrors[keyof IDuplicatePageUseCaseErrors];
|
|
35
|
+
/** Duplicate a page. */
|
|
35
36
|
export declare const DuplicatePageUseCase: import("@webiny/di").Abstraction<IDuplicatePageUseCase>;
|
|
36
37
|
export declare namespace DuplicatePageUseCase {
|
|
37
38
|
type Interface = IDuplicatePageUseCase;
|
|
@@ -47,12 +48,14 @@ export interface PageAfterDuplicatePayload {
|
|
|
47
48
|
original: WbPage;
|
|
48
49
|
page: WbPage;
|
|
49
50
|
}
|
|
51
|
+
/** Hook into page lifecycle before a page is duplicated. */
|
|
50
52
|
export declare const PageBeforeDuplicateEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<PageBeforeDuplicatePayload>>>;
|
|
51
53
|
export declare namespace PageBeforeDuplicateEventHandler {
|
|
52
54
|
type Interface = IEventHandler<DomainEvent<PageBeforeDuplicatePayload>>;
|
|
53
55
|
type Event = DomainEvent<PageBeforeDuplicatePayload>;
|
|
54
56
|
type Page = WbPage;
|
|
55
57
|
}
|
|
58
|
+
/** Hook into page lifecycle after a page is duplicated. */
|
|
56
59
|
export declare const PageAfterDuplicateEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<PageAfterDuplicatePayload>>>;
|
|
57
60
|
export declare namespace PageAfterDuplicateEventHandler {
|
|
58
61
|
type Interface = IEventHandler<DomainEvent<PageAfterDuplicatePayload>>;
|