@webiny/api-website-builder 0.0.0-unstable.df7a8bb475 → 0.0.0-unstable.e2758ee1cf
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 +2 -1
- package/domain/page/EntryToPageMapper.js.map +1 -1
- package/domain/page/abstractions.d.ts +3 -2
- package/domain/page/abstractions.js.map +1 -1
- package/domain/permissions.d.ts +125 -0
- package/domain/permissions.js +33 -0
- package/domain/permissions.js.map +1 -0
- package/features/installer/ApiKeyInstaller.js +4 -1
- package/features/installer/ApiKeyInstaller.js.map +1 -1
- package/features/pages/CreatePage/CreatePageUseCase.d.ts +3 -1
- package/features/pages/CreatePage/CreatePageUseCase.js +10 -2
- package/features/pages/CreatePage/CreatePageUseCase.js.map +1 -1
- package/features/pages/CreatePage/abstractions.d.ts +2 -1
- package/features/pages/CreatePage/abstractions.js.map +1 -1
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromUseCase.d.ts +5 -1
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromUseCase.js +18 -2
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromUseCase.js.map +1 -1
- package/features/pages/CreatePageRevisionFrom/abstractions.d.ts +2 -1
- package/features/pages/CreatePageRevisionFrom/abstractions.js.map +1 -1
- package/features/pages/DeletePage/DeletePageUseCase.d.ts +3 -1
- package/features/pages/DeletePage/DeletePageUseCase.js +10 -3
- package/features/pages/DeletePage/DeletePageUseCase.js.map +1 -1
- package/features/pages/DeletePage/abstractions.d.ts +2 -1
- package/features/pages/DeletePage/abstractions.js.map +1 -1
- package/features/pages/DuplicatePage/DuplicatePageUseCase.d.ts +3 -1
- package/features/pages/DuplicatePage/DuplicatePageUseCase.js +10 -2
- package/features/pages/DuplicatePage/DuplicatePageUseCase.js.map +1 -1
- package/features/pages/DuplicatePage/abstractions.d.ts +2 -1
- package/features/pages/DuplicatePage/abstractions.js.map +1 -1
- package/features/pages/GetPageById/GetPageByIdUseCase.d.ts +3 -1
- package/features/pages/GetPageById/GetPageByIdUseCase.js +19 -3
- package/features/pages/GetPageById/GetPageByIdUseCase.js.map +1 -1
- package/features/pages/GetPageById/abstractions.d.ts +2 -1
- package/features/pages/GetPageById/abstractions.js.map +1 -1
- package/features/pages/GetPageByPath/GetPageByPathUseCase.d.ts +3 -1
- package/features/pages/GetPageByPath/GetPageByPathUseCase.js +19 -3
- package/features/pages/GetPageByPath/GetPageByPathUseCase.js.map +1 -1
- package/features/pages/GetPageByPath/abstractions.d.ts +2 -1
- package/features/pages/GetPageByPath/abstractions.js.map +1 -1
- package/features/pages/GetPageRevisions/GetPageRevisionsUseCase.d.ts +3 -1
- package/features/pages/GetPageRevisions/GetPageRevisionsUseCase.js +22 -3
- package/features/pages/GetPageRevisions/GetPageRevisionsUseCase.js.map +1 -1
- package/features/pages/GetPageRevisions/abstractions.d.ts +2 -1
- package/features/pages/GetPageRevisions/abstractions.js.map +1 -1
- package/features/pages/ListPages/ListPagesRepository.d.ts +5 -1
- package/features/pages/ListPages/ListPagesRepository.js +14 -4
- package/features/pages/ListPages/ListPagesRepository.js.map +1 -1
- package/features/pages/ListPages/ListPagesUseCase.d.ts +5 -1
- package/features/pages/ListPages/ListPagesUseCase.js +24 -4
- package/features/pages/ListPages/ListPagesUseCase.js.map +1 -1
- package/features/pages/ListPages/abstractions.d.ts +2 -1
- package/features/pages/ListPages/abstractions.js.map +1 -1
- package/features/pages/MovePage/MovePageUseCase.d.ts +3 -1
- package/features/pages/MovePage/MovePageUseCase.js +14 -2
- package/features/pages/MovePage/MovePageUseCase.js.map +1 -1
- package/features/pages/MovePage/abstractions.d.ts +2 -1
- package/features/pages/MovePage/abstractions.js.map +1 -1
- package/features/pages/PublishPage/PublishPageUseCase.d.ts +3 -1
- package/features/pages/PublishPage/PublishPageUseCase.js +14 -2
- package/features/pages/PublishPage/PublishPageUseCase.js.map +1 -1
- package/features/pages/PublishPage/abstractions.d.ts +2 -1
- package/features/pages/PublishPage/abstractions.js.map +1 -1
- package/features/pages/UnpublishPage/UnpublishPageUseCase.d.ts +3 -1
- package/features/pages/UnpublishPage/UnpublishPageUseCase.js +14 -2
- package/features/pages/UnpublishPage/UnpublishPageUseCase.js.map +1 -1
- package/features/pages/UnpublishPage/abstractions.d.ts +2 -1
- package/features/pages/UnpublishPage/abstractions.js.map +1 -1
- package/features/pages/UpdatePage/UpdatePageUseCase.d.ts +3 -1
- package/features/pages/UpdatePage/UpdatePageUseCase.js +14 -2
- package/features/pages/UpdatePage/UpdatePageUseCase.js.map +1 -1
- package/features/pages/UpdatePage/abstractions.d.ts +5 -5
- package/features/pages/UpdatePage/abstractions.js.map +1 -1
- package/features/redirects/CreateRedirect/CreateRedirectUseCase.d.ts +3 -1
- package/features/redirects/CreateRedirect/CreateRedirectUseCase.js +10 -2
- package/features/redirects/CreateRedirect/CreateRedirectUseCase.js.map +1 -1
- package/features/redirects/CreateRedirect/abstractions.d.ts +2 -1
- package/features/redirects/CreateRedirect/abstractions.js.map +1 -1
- package/features/redirects/DeleteRedirect/DeleteRedirectUseCase.d.ts +3 -1
- package/features/redirects/DeleteRedirect/DeleteRedirectUseCase.js +10 -3
- package/features/redirects/DeleteRedirect/DeleteRedirectUseCase.js.map +1 -1
- package/features/redirects/DeleteRedirect/abstractions.d.ts +2 -1
- package/features/redirects/DeleteRedirect/abstractions.js.map +1 -1
- package/features/redirects/GetActiveRedirects/GetActiveRedirectsUseCase.d.ts +3 -1
- package/features/redirects/GetActiveRedirects/GetActiveRedirectsUseCase.js +10 -3
- package/features/redirects/GetActiveRedirects/GetActiveRedirectsUseCase.js.map +1 -1
- package/features/redirects/GetActiveRedirects/abstractions.d.ts +2 -1
- package/features/redirects/GetActiveRedirects/abstractions.js.map +1 -1
- package/features/redirects/GetRedirectById/GetRedirectByIdUseCase.d.ts +3 -1
- package/features/redirects/GetRedirectById/GetRedirectByIdUseCase.js +19 -4
- package/features/redirects/GetRedirectById/GetRedirectByIdUseCase.js.map +1 -1
- package/features/redirects/GetRedirectById/abstractions.d.ts +2 -1
- package/features/redirects/GetRedirectById/abstractions.js.map +1 -1
- package/features/redirects/ListRedirects/ListRedirectsUseCase.d.ts +5 -1
- package/features/redirects/ListRedirects/ListRedirectsUseCase.js +23 -4
- package/features/redirects/ListRedirects/ListRedirectsUseCase.js.map +1 -1
- package/features/redirects/ListRedirects/abstractions.d.ts +3 -1
- package/features/redirects/ListRedirects/abstractions.js.map +1 -1
- package/features/redirects/MoveRedirect/MoveRedirectUseCase.d.ts +3 -1
- package/features/redirects/MoveRedirect/MoveRedirectUseCase.js +14 -2
- package/features/redirects/MoveRedirect/MoveRedirectUseCase.js.map +1 -1
- package/features/redirects/MoveRedirect/abstractions.d.ts +2 -1
- package/features/redirects/MoveRedirect/abstractions.js.map +1 -1
- package/features/redirects/UpdateRedirect/UpdateRedirectUseCase.d.ts +3 -1
- package/features/redirects/UpdateRedirect/UpdateRedirectUseCase.js +14 -2
- package/features/redirects/UpdateRedirect/UpdateRedirectUseCase.js.map +1 -1
- package/features/redirects/UpdateRedirect/abstractions.d.ts +2 -1
- package/features/redirects/UpdateRedirect/abstractions.js.map +1 -1
- package/features/tenantManager/TenantModelExtension.js +5 -5
- package/features/tenantManager/TenantModelExtension.js.map +1 -1
- package/graphql/pages/pages.typeDefs.d.ts +1 -1
- package/graphql/pages/pages.typeDefs.js +6 -0
- package/graphql/pages/pages.typeDefs.js.map +1 -1
- package/index.js +4 -4
- package/index.js.map +1 -1
- package/package.json +19 -20
- package/features/pages/PagePermissions/feature.d.ts +0 -1
- package/features/pages/PagePermissions/feature.js +0 -53
- package/features/pages/PagePermissions/feature.js.map +0 -1
- package/features/redirects/RedirectPermissions/feature.d.ts +0 -1
- package/features/redirects/RedirectPermissions/feature.js +0 -45
- package/features/redirects/RedirectPermissions/feature.js.map +0 -1
|
@@ -3,19 +3,31 @@ import { EventPublisher } from "@webiny/api-core/features/EventPublisher";
|
|
|
3
3
|
import { UpdateRedirectUseCase as UseCaseAbstraction, UpdateRedirectRepository } from "./abstractions.js";
|
|
4
4
|
import { RedirectBeforeUpdateEvent, RedirectAfterUpdateEvent } from "./events.js";
|
|
5
5
|
import { GetRedirectByIdUseCase } from "../GetRedirectById/index.js";
|
|
6
|
+
import { WbPermissions } from "../../../domain/permissions.js";
|
|
7
|
+
import { RedirectNotAuthorizedError } from "../../../domain/redirect/errors.js";
|
|
6
8
|
class UpdateRedirectUseCaseImpl {
|
|
7
|
-
constructor(eventPublisher, getRedirectById, repository) {
|
|
9
|
+
constructor(permissions, eventPublisher, getRedirectById, repository) {
|
|
10
|
+
this.permissions = permissions;
|
|
8
11
|
this.eventPublisher = eventPublisher;
|
|
9
12
|
this.getRedirectById = getRedirectById;
|
|
10
13
|
this.repository = repository;
|
|
11
14
|
}
|
|
12
15
|
async execute(id, data) {
|
|
16
|
+
const hasPermission = await this.permissions.canEdit("redirect");
|
|
17
|
+
if (!hasPermission) {
|
|
18
|
+
return Result.fail(new RedirectNotAuthorizedError());
|
|
19
|
+
}
|
|
20
|
+
|
|
13
21
|
// Get the original redirect for events
|
|
14
22
|
const getResult = await this.getRedirectById.execute(id);
|
|
15
23
|
if (getResult.isFail()) {
|
|
16
24
|
return getResult;
|
|
17
25
|
}
|
|
18
26
|
const original = getResult.value;
|
|
27
|
+
const canEdit = await this.permissions.canEdit("redirect", original);
|
|
28
|
+
if (!canEdit) {
|
|
29
|
+
return Result.fail(new RedirectNotAuthorizedError());
|
|
30
|
+
}
|
|
19
31
|
|
|
20
32
|
// Publish before update event
|
|
21
33
|
const beforeEvent = new RedirectBeforeUpdateEvent({
|
|
@@ -48,7 +60,7 @@ class UpdateRedirectUseCaseImpl {
|
|
|
48
60
|
}
|
|
49
61
|
export const UpdateRedirectUseCase = UseCaseAbstraction.createImplementation({
|
|
50
62
|
implementation: UpdateRedirectUseCaseImpl,
|
|
51
|
-
dependencies: [EventPublisher, GetRedirectByIdUseCase, UpdateRedirectRepository]
|
|
63
|
+
dependencies: [WbPermissions.Abstraction, EventPublisher, GetRedirectByIdUseCase, UpdateRedirectRepository]
|
|
52
64
|
});
|
|
53
65
|
|
|
54
66
|
//# sourceMappingURL=UpdateRedirectUseCase.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Result","EventPublisher","UpdateRedirectUseCase","UseCaseAbstraction","UpdateRedirectRepository","RedirectBeforeUpdateEvent","RedirectAfterUpdateEvent","GetRedirectByIdUseCase","UpdateRedirectUseCaseImpl","constructor","eventPublisher","getRedirectById","repository","execute","id","data","getResult","isFail","original","value","beforeEvent","input","publish","result","afterEvent","redirect","ok","createImplementation","implementation","dependencies"],"sources":["UpdateRedirectUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/EventPublisher\";\nimport {\n UpdateRedirectUseCase as UseCaseAbstraction,\n UpdateRedirectRepository\n} from \"./abstractions.js\";\nimport { RedirectBeforeUpdateEvent, RedirectAfterUpdateEvent } from \"./events.js\";\nimport { GetRedirectByIdUseCase } from \"~/features/redirects/GetRedirectById/index.js\";\n\nclass UpdateRedirectUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getRedirectById: GetRedirectByIdUseCase.Interface,\n private repository: UpdateRedirectRepository.Interface\n ) {}\n\n async execute(id: string, data: UseCaseAbstraction.UpdateData): UseCaseAbstraction.Return {\n // Get the original redirect for events\n const getResult = await this.getRedirectById.execute(id);\n\n if (getResult.isFail()) {\n return getResult;\n }\n\n const original = getResult.value;\n\n // Publish before update event\n const beforeEvent = new RedirectBeforeUpdateEvent({\n original,\n input: { id, data }\n });\n\n await this.eventPublisher.publish(beforeEvent);\n\n // Execute the update operation\n const result = await this.repository.execute(id, data);\n\n if (result.isFail()) {\n return result;\n }\n\n // Publish after update event\n const afterEvent = new RedirectAfterUpdateEvent({\n original,\n input: { id, data },\n redirect: result.value\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return Result.ok(result.value);\n }\n}\n\nexport const UpdateRedirectUseCase = UseCaseAbstraction.createImplementation({\n implementation: UpdateRedirectUseCaseImpl,\n dependencies: [EventPublisher
|
|
1
|
+
{"version":3,"names":["Result","EventPublisher","UpdateRedirectUseCase","UseCaseAbstraction","UpdateRedirectRepository","RedirectBeforeUpdateEvent","RedirectAfterUpdateEvent","GetRedirectByIdUseCase","WbPermissions","RedirectNotAuthorizedError","UpdateRedirectUseCaseImpl","constructor","permissions","eventPublisher","getRedirectById","repository","execute","id","data","hasPermission","canEdit","fail","getResult","isFail","original","value","beforeEvent","input","publish","result","afterEvent","redirect","ok","createImplementation","implementation","dependencies","Abstraction"],"sources":["UpdateRedirectUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/EventPublisher\";\nimport {\n UpdateRedirectUseCase as UseCaseAbstraction,\n UpdateRedirectRepository\n} from \"./abstractions.js\";\nimport { RedirectBeforeUpdateEvent, RedirectAfterUpdateEvent } from \"./events.js\";\nimport { GetRedirectByIdUseCase } from \"~/features/redirects/GetRedirectById/index.js\";\nimport { WbPermissions } from \"~/domain/permissions.js\";\nimport { RedirectNotAuthorizedError } from \"~/domain/redirect/errors.js\";\n\nclass UpdateRedirectUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getRedirectById: GetRedirectByIdUseCase.Interface,\n private repository: UpdateRedirectRepository.Interface\n ) {}\n\n async execute(id: string, data: UseCaseAbstraction.UpdateData): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canEdit(\"redirect\");\n if (!hasPermission) {\n return Result.fail(new RedirectNotAuthorizedError());\n }\n\n // Get the original redirect for events\n const getResult = await this.getRedirectById.execute(id);\n\n if (getResult.isFail()) {\n return getResult;\n }\n\n const original = getResult.value;\n\n const canEdit = await this.permissions.canEdit(\"redirect\", original);\n if (!canEdit) {\n return Result.fail(new RedirectNotAuthorizedError());\n }\n\n // Publish before update event\n const beforeEvent = new RedirectBeforeUpdateEvent({\n original,\n input: { id, data }\n });\n\n await this.eventPublisher.publish(beforeEvent);\n\n // Execute the update operation\n const result = await this.repository.execute(id, data);\n\n if (result.isFail()) {\n return result;\n }\n\n // Publish after update event\n const afterEvent = new RedirectAfterUpdateEvent({\n original,\n input: { id, data },\n redirect: result.value\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return Result.ok(result.value);\n }\n}\n\nexport const UpdateRedirectUseCase = UseCaseAbstraction.createImplementation({\n implementation: UpdateRedirectUseCaseImpl,\n dependencies: [\n WbPermissions.Abstraction,\n EventPublisher,\n GetRedirectByIdUseCase,\n UpdateRedirectRepository\n ]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,cAAc,QAEX,0CAA0C;AACjD,SACIC,qBAAqB,IAAIC,kBAAkB,EAC3CC,wBAAwB;AAE5B,SAASC,yBAAyB,EAAEC,wBAAwB;AAC5D,SAASC,sBAAsB;AAC/B,SAASC,aAAa;AACtB,SAASC,0BAA0B;AAEnC,MAAMC,yBAAyB,CAAyC;EACpEC,WAAWA,CACCC,WAAoC,EACpCC,cAAmD,EACnDC,eAAiD,EACjDC,UAA8C,EACxD;IAAA,KAJUH,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,eAAiD,GAAjDA,eAAiD;IAAA,KACjDC,UAA8C,GAA9CA,UAA8C;EACvD;EAEH,MAAMC,OAAOA,CAACC,EAAU,EAAEC,IAAmC,EAA6B;IACtF,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACP,WAAW,CAACQ,OAAO,CAAC,UAAU,CAAC;IAChE,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOnB,MAAM,CAACqB,IAAI,CAAC,IAAIZ,0BAA0B,CAAC,CAAC,CAAC;IACxD;;IAEA;IACA,MAAMa,SAAS,GAAG,MAAM,IAAI,CAACR,eAAe,CAACE,OAAO,CAACC,EAAE,CAAC;IAExD,IAAIK,SAAS,CAACC,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOD,SAAS;IACpB;IAEA,MAAME,QAAQ,GAAGF,SAAS,CAACG,KAAK;IAEhC,MAAML,OAAO,GAAG,MAAM,IAAI,CAACR,WAAW,CAACQ,OAAO,CAAC,UAAU,EAAEI,QAAQ,CAAC;IACpE,IAAI,CAACJ,OAAO,EAAE;MACV,OAAOpB,MAAM,CAACqB,IAAI,CAAC,IAAIZ,0BAA0B,CAAC,CAAC,CAAC;IACxD;;IAEA;IACA,MAAMiB,WAAW,GAAG,IAAIrB,yBAAyB,CAAC;MAC9CmB,QAAQ;MACRG,KAAK,EAAE;QAAEV,EAAE;QAAEC;MAAK;IACtB,CAAC,CAAC;IAEF,MAAM,IAAI,CAACL,cAAc,CAACe,OAAO,CAACF,WAAW,CAAC;;IAE9C;IACA,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACd,UAAU,CAACC,OAAO,CAACC,EAAE,EAAEC,IAAI,CAAC;IAEtD,IAAIW,MAAM,CAACN,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOM,MAAM;IACjB;;IAEA;IACA,MAAMC,UAAU,GAAG,IAAIxB,wBAAwB,CAAC;MAC5CkB,QAAQ;MACRG,KAAK,EAAE;QAAEV,EAAE;QAAEC;MAAK,CAAC;MACnBa,QAAQ,EAAEF,MAAM,CAACJ;IACrB,CAAC,CAAC;IAEF,MAAM,IAAI,CAACZ,cAAc,CAACe,OAAO,CAACE,UAAU,CAAC;IAE7C,OAAO9B,MAAM,CAACgC,EAAE,CAACH,MAAM,CAACJ,KAAK,CAAC;EAClC;AACJ;AAEA,OAAO,MAAMvB,qBAAqB,GAAGC,kBAAkB,CAAC8B,oBAAoB,CAAC;EACzEC,cAAc,EAAExB,yBAAyB;EACzCyB,YAAY,EAAE,CACV3B,aAAa,CAAC4B,WAAW,EACzBnC,cAAc,EACdM,sBAAsB,EACtBH,wBAAwB;AAEhC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@ import type { IEventHandler } from "@webiny/api-core/features/EventPublisher";
|
|
|
3
3
|
import type { DomainEvent } from "@webiny/api-core/features/EventPublisher";
|
|
4
4
|
import type { WbRedirect } from "../../../domain/redirect/abstractions.js";
|
|
5
5
|
import type { WbLocation } from "../../../domain/shared/abstractions.js";
|
|
6
|
-
import { RedirectNotFoundError, RedirectPersistenceError, RedirectValidationError } from "../../../domain/redirect/errors.js";
|
|
6
|
+
import { RedirectNotFoundError, RedirectPersistenceError, RedirectValidationError, RedirectNotAuthorizedError } from "../../../domain/redirect/errors.js";
|
|
7
7
|
export interface IUpdateWbRedirectData {
|
|
8
8
|
location?: WbLocation;
|
|
9
9
|
redirectFrom?: string;
|
|
@@ -32,6 +32,7 @@ export interface IUpdateRedirectUseCase {
|
|
|
32
32
|
execute(id: string, data: IUpdateWbRedirectData): Promise<Result<WbRedirect, UseCaseError>>;
|
|
33
33
|
}
|
|
34
34
|
export interface IUpdateRedirectUseCaseErrors {
|
|
35
|
+
notAuthorized: RedirectNotAuthorizedError;
|
|
35
36
|
notFound: RedirectNotFoundError;
|
|
36
37
|
validation: RedirectValidationError;
|
|
37
38
|
persistence: RedirectPersistenceError;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createAbstraction","UpdateRedirectRepository","UpdateRedirectUseCase","RedirectBeforeUpdateHandler","RedirectAfterUpdateHandler"],"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 { WbRedirect } from \"~/domain/redirect/abstractions.js\";\nimport type { WbLocation } from \"~/domain/shared/abstractions.js\";\nimport {\n RedirectNotFoundError,\n RedirectPersistenceError,\n RedirectValidationError\n} from \"~/domain/redirect/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface IUpdateWbRedirectData {\n location?: WbLocation;\n redirectFrom?: string;\n redirectTo?: string;\n redirectType?: string;\n isEnabled?: boolean;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IUpdateRedirectRepository {\n execute(id: string, data: IUpdateWbRedirectData): Promise<Result<WbRedirect, RepositoryError>>;\n}\n\nexport interface IUpdateRedirectRepositoryErrors {\n notFound: RedirectNotFoundError;\n validation: RedirectValidationError;\n persistence: RedirectPersistenceError;\n}\n\ntype RepositoryError = IUpdateRedirectRepositoryErrors[keyof IUpdateRedirectRepositoryErrors];\n\nexport const UpdateRedirectRepository = createAbstraction<IUpdateRedirectRepository>(\n \"Wb/UpdateRedirectRepository\"\n);\n\nexport namespace UpdateRedirectRepository {\n export type Interface = IUpdateRedirectRepository;\n export type UpdateData = IUpdateWbRedirectData;\n export type Return = Promise<Result<WbRedirect, RepositoryError>>;\n export type Error = RepositoryError;\n export type Redirect = WbRedirect;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IUpdateRedirectUseCase {\n execute(id: string, data: IUpdateWbRedirectData): Promise<Result<WbRedirect, UseCaseError>>;\n}\n\nexport interface IUpdateRedirectUseCaseErrors {\n notFound: RedirectNotFoundError;\n validation: RedirectValidationError;\n persistence: RedirectPersistenceError;\n}\n\ntype UseCaseError = IUpdateRedirectUseCaseErrors[keyof IUpdateRedirectUseCaseErrors];\n\nexport const UpdateRedirectUseCase = createAbstraction<IUpdateRedirectUseCase>(\n \"Wb/UpdateRedirectUseCase\"\n);\n\nexport namespace UpdateRedirectUseCase {\n export type Interface = IUpdateRedirectUseCase;\n export type UpdateData = IUpdateWbRedirectData;\n export type Return = Promise<Result<WbRedirect, UseCaseError>>;\n export type Error = UseCaseError;\n export type Redirect = WbRedirect;\n}\n\n// ============================================================================\n// Event Payload Types\n// ============================================================================\n\nexport interface RedirectBeforeUpdatePayload {\n original: WbRedirect;\n input: {\n id: string;\n data: IUpdateWbRedirectData;\n };\n}\n\nexport interface RedirectAfterUpdatePayload {\n original: WbRedirect;\n input: {\n id: string;\n data: IUpdateWbRedirectData;\n };\n redirect: WbRedirect;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\nexport const RedirectBeforeUpdateHandler = createAbstraction<\n IEventHandler<DomainEvent<RedirectBeforeUpdatePayload>>\n>(\"Wb/RedirectBeforeUpdateHandler\");\n\nexport namespace RedirectBeforeUpdateHandler {\n export type Interface = IEventHandler<DomainEvent<RedirectBeforeUpdatePayload>>;\n export type Event = DomainEvent<RedirectBeforeUpdatePayload>;\n export type Redirect = WbRedirect;\n}\n\nexport const RedirectAfterUpdateHandler = createAbstraction<\n IEventHandler<DomainEvent<RedirectAfterUpdatePayload>>\n>(\"Wb/RedirectAfterUpdateHandler\");\n\nexport namespace RedirectAfterUpdateHandler {\n export type Interface = IEventHandler<DomainEvent<RedirectAfterUpdatePayload>>;\n export type Event = DomainEvent<RedirectAfterUpdatePayload>;\n export type Redirect = WbRedirect;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;
|
|
1
|
+
{"version":3,"names":["createAbstraction","UpdateRedirectRepository","UpdateRedirectUseCase","RedirectBeforeUpdateHandler","RedirectAfterUpdateHandler"],"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 { WbRedirect } from \"~/domain/redirect/abstractions.js\";\nimport type { WbLocation } from \"~/domain/shared/abstractions.js\";\nimport {\n RedirectNotFoundError,\n RedirectPersistenceError,\n RedirectValidationError,\n RedirectNotAuthorizedError\n} from \"~/domain/redirect/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface IUpdateWbRedirectData {\n location?: WbLocation;\n redirectFrom?: string;\n redirectTo?: string;\n redirectType?: string;\n isEnabled?: boolean;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IUpdateRedirectRepository {\n execute(id: string, data: IUpdateWbRedirectData): Promise<Result<WbRedirect, RepositoryError>>;\n}\n\nexport interface IUpdateRedirectRepositoryErrors {\n notFound: RedirectNotFoundError;\n validation: RedirectValidationError;\n persistence: RedirectPersistenceError;\n}\n\ntype RepositoryError = IUpdateRedirectRepositoryErrors[keyof IUpdateRedirectRepositoryErrors];\n\nexport const UpdateRedirectRepository = createAbstraction<IUpdateRedirectRepository>(\n \"Wb/UpdateRedirectRepository\"\n);\n\nexport namespace UpdateRedirectRepository {\n export type Interface = IUpdateRedirectRepository;\n export type UpdateData = IUpdateWbRedirectData;\n export type Return = Promise<Result<WbRedirect, RepositoryError>>;\n export type Error = RepositoryError;\n export type Redirect = WbRedirect;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IUpdateRedirectUseCase {\n execute(id: string, data: IUpdateWbRedirectData): Promise<Result<WbRedirect, UseCaseError>>;\n}\n\nexport interface IUpdateRedirectUseCaseErrors {\n notAuthorized: RedirectNotAuthorizedError;\n notFound: RedirectNotFoundError;\n validation: RedirectValidationError;\n persistence: RedirectPersistenceError;\n}\n\ntype UseCaseError = IUpdateRedirectUseCaseErrors[keyof IUpdateRedirectUseCaseErrors];\n\nexport const UpdateRedirectUseCase = createAbstraction<IUpdateRedirectUseCase>(\n \"Wb/UpdateRedirectUseCase\"\n);\n\nexport namespace UpdateRedirectUseCase {\n export type Interface = IUpdateRedirectUseCase;\n export type UpdateData = IUpdateWbRedirectData;\n export type Return = Promise<Result<WbRedirect, UseCaseError>>;\n export type Error = UseCaseError;\n export type Redirect = WbRedirect;\n}\n\n// ============================================================================\n// Event Payload Types\n// ============================================================================\n\nexport interface RedirectBeforeUpdatePayload {\n original: WbRedirect;\n input: {\n id: string;\n data: IUpdateWbRedirectData;\n };\n}\n\nexport interface RedirectAfterUpdatePayload {\n original: WbRedirect;\n input: {\n id: string;\n data: IUpdateWbRedirectData;\n };\n redirect: WbRedirect;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\nexport const RedirectBeforeUpdateHandler = createAbstraction<\n IEventHandler<DomainEvent<RedirectBeforeUpdatePayload>>\n>(\"Wb/RedirectBeforeUpdateHandler\");\n\nexport namespace RedirectBeforeUpdateHandler {\n export type Interface = IEventHandler<DomainEvent<RedirectBeforeUpdatePayload>>;\n export type Event = DomainEvent<RedirectBeforeUpdatePayload>;\n export type Redirect = WbRedirect;\n}\n\nexport const RedirectAfterUpdateHandler = createAbstraction<\n IEventHandler<DomainEvent<RedirectAfterUpdatePayload>>\n>(\"Wb/RedirectAfterUpdateHandler\");\n\nexport namespace RedirectAfterUpdateHandler {\n export type Interface = IEventHandler<DomainEvent<RedirectAfterUpdatePayload>>;\n export type Event = DomainEvent<RedirectAfterUpdatePayload>;\n export type Redirect = WbRedirect;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AAYpE;AACA;AACA;;AAUA;AACA;AACA;;AAcA,OAAO,MAAMC,wBAAwB,GAAGD,iBAAiB,CACrD,6BACJ,CAAC;;AAUD;AACA;AACA;;AAeA,OAAO,MAAME,qBAAqB,GAAGF,iBAAiB,CAClD,0BACJ,CAAC;;AAUD;AACA;AACA;;AAmBA;AACA;AACA;;AAEA,OAAO,MAAMG,2BAA2B,GAAGH,iBAAiB,CAE1D,gCAAgC,CAAC;AAQnC,OAAO,MAAMI,0BAA0B,GAAGJ,iBAAiB,CAEzD,+BAA+B,CAAC","ignoreList":[]}
|
|
@@ -2,17 +2,17 @@ import { TenantModelExtension as ModelExtension } from "@webiny/tenant-manager/a
|
|
|
2
2
|
class TenantModelExtension {
|
|
3
3
|
execute(extension) {
|
|
4
4
|
extension.fields(fields => ({
|
|
5
|
-
websiteTheme: fields.object().label("Website Theme").description("Configure a Website Builder theme for this tenant.").renderer("
|
|
5
|
+
websiteTheme: fields.object().label("Website Theme").description("Configure a Website Builder theme for this tenant.").renderer("objectAccordionSingle", {
|
|
6
6
|
open: false
|
|
7
7
|
}).fields(fields => ({
|
|
8
|
-
websiteTitle: fields.text().label("Website Title").description("Enter a website title").renderer("
|
|
9
|
-
primaryColor: fields.text().label("Primary Color").description("Enter a color code (e.g., #000000)").renderer("
|
|
10
|
-
additionalColors: fields.text().list().label("Additional Colors").description("Enter a color code (e.g., #000000)").defaultValue([]).renderer("
|
|
8
|
+
websiteTitle: fields.text().label("Website Title").description("Enter a website title").renderer("textInput"),
|
|
9
|
+
primaryColor: fields.text().label("Primary Color").description("Enter a color code (e.g., #000000)").renderer("textInput").defaultValue(""),
|
|
10
|
+
additionalColors: fields.text().list().label("Additional Colors").description("Enter a color code (e.g., #000000)").defaultValue([]).renderer("textInputs", {
|
|
11
11
|
multiValue: {
|
|
12
12
|
addValueButtonLabel: "Add Color"
|
|
13
13
|
}
|
|
14
14
|
}),
|
|
15
|
-
font: fields.text().label("Font").description("Select a font").renderer("
|
|
15
|
+
font: fields.text().label("Font").description("Select a font").renderer("radioButtons").predefinedValues([{
|
|
16
16
|
value: "InterVariable, sans-serif",
|
|
17
17
|
label: "Inter"
|
|
18
18
|
}, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TenantModelExtension","ModelExtension","execute","extension","fields","websiteTheme","object","label","description","renderer","open","websiteTitle","text","primaryColor","defaultValue","additionalColors","list","multiValue","addValueButtonLabel","font","predefinedValues","value","layout","addRow","createImplementation","implementation","dependencies"],"sources":["TenantModelExtension.ts"],"sourcesContent":["import { TenantModelExtension as ModelExtension } from \"@webiny/tenant-manager/api/domain/TenantModelExtension.js\";\n\nclass TenantModelExtension implements ModelExtension.Interface {\n execute(extension: ModelExtension.Extension) {\n extension\n .fields(fields => ({\n websiteTheme: fields\n .object()\n .label(\"Website Theme\")\n .description(\"Configure a Website Builder theme for this tenant.\")\n .renderer(\"
|
|
1
|
+
{"version":3,"names":["TenantModelExtension","ModelExtension","execute","extension","fields","websiteTheme","object","label","description","renderer","open","websiteTitle","text","primaryColor","defaultValue","additionalColors","list","multiValue","addValueButtonLabel","font","predefinedValues","value","layout","addRow","createImplementation","implementation","dependencies"],"sources":["TenantModelExtension.ts"],"sourcesContent":["import { TenantModelExtension as ModelExtension } from \"@webiny/tenant-manager/api/domain/TenantModelExtension.js\";\n\nclass TenantModelExtension implements ModelExtension.Interface {\n execute(extension: ModelExtension.Extension) {\n extension\n .fields(fields => ({\n websiteTheme: fields\n .object()\n .label(\"Website Theme\")\n .description(\"Configure a Website Builder theme for this tenant.\")\n .renderer(\"objectAccordionSingle\", { open: false })\n .fields(fields => ({\n websiteTitle: fields\n .text()\n .label(\"Website Title\")\n .description(\"Enter a website title\")\n .renderer(\"textInput\"),\n primaryColor: fields\n .text()\n .label(\"Primary Color\")\n .description(\"Enter a color code (e.g., #000000)\")\n .renderer(\"textInput\")\n .defaultValue(\"\"),\n additionalColors: fields\n .text()\n .list()\n .label(\"Additional Colors\")\n .description(\"Enter a color code (e.g., #000000)\")\n .defaultValue([])\n .renderer(\"textInputs\", {\n multiValue: {\n addValueButtonLabel: \"Add Color\"\n }\n }),\n font: fields\n .text()\n .label(\"Font\")\n .description(\"Select a font\")\n .renderer(\"radioButtons\")\n .predefinedValues([\n {\n value: \"InterVariable, sans-serif\",\n label: \"Inter\"\n },\n {\n value: \"Menlo, Consolas, Monaco, monospace\",\n label: \"Menlo\"\n },\n {\n value: \"Roboto, sans-serif\",\n label: \"Roboto\"\n }\n ])\n }))\n .layout([[\"websiteTitle\"], [\"primaryColor\"], [\"additionalColors\"], [\"font\"]])\n }))\n .layout(layout => {\n layout.addRow([\"websiteTheme\"]);\n });\n }\n}\n\nexport default ModelExtension.createImplementation({\n implementation: TenantModelExtension,\n dependencies: []\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,IAAIC,cAAc,QAAQ,2DAA2D;AAElH,MAAMD,oBAAoB,CAAqC;EAC3DE,OAAOA,CAACC,SAAmC,EAAE;IACzCA,SAAS,CACJC,MAAM,CAACA,MAAM,KAAK;MACfC,YAAY,EAAED,MAAM,CACfE,MAAM,CAAC,CAAC,CACRC,KAAK,CAAC,eAAe,CAAC,CACtBC,WAAW,CAAC,oDAAoD,CAAC,CACjEC,QAAQ,CAAC,uBAAuB,EAAE;QAAEC,IAAI,EAAE;MAAM,CAAC,CAAC,CAClDN,MAAM,CAACA,MAAM,KAAK;QACfO,YAAY,EAAEP,MAAM,CACfQ,IAAI,CAAC,CAAC,CACNL,KAAK,CAAC,eAAe,CAAC,CACtBC,WAAW,CAAC,uBAAuB,CAAC,CACpCC,QAAQ,CAAC,WAAW,CAAC;QAC1BI,YAAY,EAAET,MAAM,CACfQ,IAAI,CAAC,CAAC,CACNL,KAAK,CAAC,eAAe,CAAC,CACtBC,WAAW,CAAC,oCAAoC,CAAC,CACjDC,QAAQ,CAAC,WAAW,CAAC,CACrBK,YAAY,CAAC,EAAE,CAAC;QACrBC,gBAAgB,EAAEX,MAAM,CACnBQ,IAAI,CAAC,CAAC,CACNI,IAAI,CAAC,CAAC,CACNT,KAAK,CAAC,mBAAmB,CAAC,CAC1BC,WAAW,CAAC,oCAAoC,CAAC,CACjDM,YAAY,CAAC,EAAE,CAAC,CAChBL,QAAQ,CAAC,YAAY,EAAE;UACpBQ,UAAU,EAAE;YACRC,mBAAmB,EAAE;UACzB;QACJ,CAAC,CAAC;QACNC,IAAI,EAAEf,MAAM,CACPQ,IAAI,CAAC,CAAC,CACNL,KAAK,CAAC,MAAM,CAAC,CACbC,WAAW,CAAC,eAAe,CAAC,CAC5BC,QAAQ,CAAC,cAAc,CAAC,CACxBW,gBAAgB,CAAC,CACd;UACIC,KAAK,EAAE,2BAA2B;UAClCd,KAAK,EAAE;QACX,CAAC,EACD;UACIc,KAAK,EAAE,oCAAoC;UAC3Cd,KAAK,EAAE;QACX,CAAC,EACD;UACIc,KAAK,EAAE,oBAAoB;UAC3Bd,KAAK,EAAE;QACX,CAAC,CACJ;MACT,CAAC,CAAC,CAAC,CACFe,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC,CACFA,MAAM,CAACA,MAAM,IAAI;MACdA,MAAM,CAACC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;IACnC,CAAC,CAAC;EACV;AACJ;AAEA,eAAetB,cAAc,CAACuB,oBAAoB,CAAC;EAC/CC,cAAc,EAAEzB,oBAAoB;EACpC0B,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pagesTypeDefs = "\n type WbPage {\n id: ID!\n entryId: String!\n location: WbLocation\n status: String!\n version: Number!\n locked: Boolean!\n createdOn: DateTime\n modifiedOn: DateTime\n savedOn: DateTime\n deletedOn: DateTime\n restoredOn: DateTime\n firstPublishedOn: DateTime\n lastPublishedOn: DateTime\n createdBy: WbIdentity\n modifiedBy: WbIdentity\n savedBy: WbIdentity\n deletedBy: WbIdentity\n restoredBy: WbIdentity\n firstPublishedBy: WbIdentity\n lastPublishedBy: WbIdentity\n properties: JSON\n metadata: JSON\n bindings: JSON\n elements: JSON\n extensions: JSON\n }\n\n input WbPageCreateInput {\n location: WbLocationInput\n properties: JSON\n metadata: JSON\n bindings: JSON\n elements: JSON\n extensions: JSON\n }\n\n input WbPageUpdateInput {\n properties: JSON\n metadata: JSON\n bindings: JSON\n elements: JSON\n extensions: JSON\n }\n\n input WbPagesListWhereInput {\n location: WbLocationWhereInput\n latest: Boolean\n published: Boolean\n id: ID\n id_not: ID\n id_in: [ID!]\n id_not_in: [ID!]\n entryId: String\n entryId_not: String\n entryId_in: [String!]\n entryId_not_in: [String!]\n createdOn: DateTime\n createdOn_gt: DateTime\n createdOn_gte: DateTime\n createdOn_lt: DateTime\n createdOn_lte: DateTime\n createdOn_between: [DateTime!]\n createdOn_not_between: [DateTime!]\n modifiedOn: DateTime\n modifiedOn_gt: DateTime\n modifiedOn_gte: DateTime\n modifiedOn_lt: DateTime\n modifiedOn_lte: DateTime\n modifiedOn_between: [DateTime!]\n modifiedOn_not_between: [DateTime!]\n savedOn: DateTime\n savedOn_gt: DateTime\n savedOn_gte: DateTime\n savedOn_lt: DateTime\n savedOn_lte: DateTime\n savedOn_between: [DateTime!]\n savedOn_not_between: [DateTime!]\n deletedOn: DateTime\n deletedOn_gt: DateTime\n deletedOn_gte: DateTime\n deletedOn_lt: DateTime\n deletedOn_lte: DateTime\n deletedOn_between: [DateTime!]\n deletedOn_not_between: [DateTime!]\n restoredOn: DateTime\n restoredOn_gt: DateTime\n restoredOn_gte: DateTime\n restoredOn_lt: DateTime\n restoredOn_lte: DateTime\n restoredOn_between: [DateTime!]\n restoredOn_not_between: [DateTime!]\n firstPublishedOn: DateTime\n firstPublishedOn_gt: DateTime\n firstPublishedOn_gte: DateTime\n firstPublishedOn_lt: DateTime\n firstPublishedOn_lte: DateTime\n firstPublishedOn_between: [DateTime!]\n firstPublishedOn_not_between: [DateTime!]\n lastPublishedOn: DateTime\n lastPublishedOn_gt: DateTime\n lastPublishedOn_gte: DateTime\n lastPublishedOn_lt: DateTime\n lastPublishedOn_lte: DateTime\n lastPublishedOn_between: [DateTime!]\n lastPublishedOn_not_between: [DateTime!]\n createdBy: ID\n createdBy_not: ID\n createdBy_in: [ID!]\n createdBy_not_in: [ID!]\n modifiedBy: ID\n modifiedBy_not: ID\n modifiedBy_in: [ID!]\n modifiedBy_not_in: [ID!]\n savedBy: ID\n savedBy_not: ID\n savedBy_in: [ID!]\n savedBy_not_in: [ID!]\n deletedBy: ID\n deletedBy_not: ID\n deletedBy_in: [ID!]\n deletedBy_not_in: [ID!]\n restoredBy: ID\n restoredBy_not: ID\n restoredBy_in: [ID!]\n restoredBy_not_in: [ID!]\n firstPublishedBy: ID\n firstPublishedBy_not: ID\n firstPublishedBy_in: [ID!]\n firstPublishedBy_not_in: [ID!]\n lastPublishedBy: ID\n lastPublishedBy_not: ID\n lastPublishedBy_in: [ID!]\n lastPublishedBy_not_in: [ID!]\n status: String\n status_not: String\n status_in: [String!]\n status_not_in: [String!]\n AND: [WbPagesListWhereInput!]\n OR: [WbPagesListWhereInput!]\n }\n\n type WbSettings {\n previewDomain: String!\n }\n\n type WbPageResponse {\n data: WbPage\n error: WbError\n }\n\n type WbSettingsResponse {\n data: WbSettings\n error: WbError\n }\n\n type WbIntegrationsResponse {\n data: JSON!\n error: WbError\n }\n\n input WbSettingsInput {\n previewDomain: String!\n }\n\n type WbPagesListResponse {\n data: [WbPage]\n error: WbError\n meta: WbMeta\n }\n\n type WbPageModelResponse {\n data: JSON\n error: WbError\n }\n\n enum WbPageListSorter {\n id_ASC\n id_DESC\n createdOn_ASC\n createdOn_DESC\n modifiedOn_ASC\n modifiedOn_DESC\n savedOn_ASC\n savedOn_DESC\n deletedOn_ASC\n deletedOn_DESC\n restoredOn_ASC\n restoredOn_DESC\n firstPublishedOn_ASC\n firstPublishedOn_DESC\n lastPublishedOn_ASC\n lastPublishedOn_DESC\n }\n\n type WbPageRevision {\n id: ID!\n entryId: ID!\n version: Int!\n title: String!\n status: String!\n locked: Boolean!\n savedOn: DateTime!\n }\n\n type WbPageRevisionsResponse {\n data: [WbPageRevision!]\n error: WbError\n }\n\n extend type WbQuery {\n getPageModel: WbPageModelResponse\n getPageByPath(path: String!): WbPageResponse\n getPageById(id: ID!): WbPageResponse\n getPageRevisions(entryId: ID!): WbPageRevisionsResponse\n listPages(\n where: WbPagesListWhereInput\n limit: Int\n after: String\n sort: [WbPageListSorter]\n search: String\n ): WbPagesListResponse\n getSettings: WbSettingsResponse\n getIntegrations: WbIntegrationsResponse\n }\n\n extend type WbMutation {\n createPage(data: WbPageCreateInput!): WbPageResponse\n updatePage(id: ID!, data: WbPageUpdateInput!): WbPageResponse\n publishPage(id: ID!): WbPageResponse\n unpublishPage(id: ID!): WbPageResponse\n duplicatePage(id: ID!): WbPageResponse\n movePage(id: ID!, folderId: ID!): WbBooleanResponse\n createPageRevisionFrom(id: ID!): WbPageResponse\n deletePage(id: ID!): WbBooleanResponse\n updateSettings(data: WbSettingsInput!): BooleanResponse\n updateIntegrations(data: JSON!): BooleanResponse\n }\n";
|
|
1
|
+
export declare const pagesTypeDefs = "\n type WbPage {\n id: ID!\n entryId: String!\n location: WbLocation\n status: String!\n version: Number!\n locked: Boolean!\n createdOn: DateTime\n modifiedOn: DateTime\n savedOn: DateTime\n deletedOn: DateTime\n restoredOn: DateTime\n firstPublishedOn: DateTime\n lastPublishedOn: DateTime\n createdBy: WbIdentity\n modifiedBy: WbIdentity\n savedBy: WbIdentity\n deletedBy: WbIdentity\n restoredBy: WbIdentity\n firstPublishedBy: WbIdentity\n lastPublishedBy: WbIdentity\n system: CmsEntrySystem\n live: CmsEntryLive\n properties: JSON\n metadata: JSON\n bindings: JSON\n elements: JSON\n extensions: JSON\n }\n\n input WbPageCreateInput {\n location: WbLocationInput\n properties: JSON\n metadata: JSON\n bindings: JSON\n elements: JSON\n extensions: JSON\n }\n\n input WbPageUpdateInput {\n properties: JSON\n metadata: JSON\n bindings: JSON\n elements: JSON\n extensions: JSON\n }\n\n input WbPagesListWhereInput {\n location: WbLocationWhereInput\n latest: Boolean\n published: Boolean\n id: ID\n id_not: ID\n id_in: [ID!]\n id_not_in: [ID!]\n entryId: String\n entryId_not: String\n entryId_in: [String!]\n entryId_not_in: [String!]\n createdOn: DateTime\n createdOn_gt: DateTime\n createdOn_gte: DateTime\n createdOn_lt: DateTime\n createdOn_lte: DateTime\n createdOn_between: [DateTime!]\n createdOn_not_between: [DateTime!]\n modifiedOn: DateTime\n modifiedOn_gt: DateTime\n modifiedOn_gte: DateTime\n modifiedOn_lt: DateTime\n modifiedOn_lte: DateTime\n modifiedOn_between: [DateTime!]\n modifiedOn_not_between: [DateTime!]\n savedOn: DateTime\n savedOn_gt: DateTime\n savedOn_gte: DateTime\n savedOn_lt: DateTime\n savedOn_lte: DateTime\n savedOn_between: [DateTime!]\n savedOn_not_between: [DateTime!]\n deletedOn: DateTime\n deletedOn_gt: DateTime\n deletedOn_gte: DateTime\n deletedOn_lt: DateTime\n deletedOn_lte: DateTime\n deletedOn_between: [DateTime!]\n deletedOn_not_between: [DateTime!]\n restoredOn: DateTime\n restoredOn_gt: DateTime\n restoredOn_gte: DateTime\n restoredOn_lt: DateTime\n restoredOn_lte: DateTime\n restoredOn_between: [DateTime!]\n restoredOn_not_between: [DateTime!]\n firstPublishedOn: DateTime\n firstPublishedOn_gt: DateTime\n firstPublishedOn_gte: DateTime\n firstPublishedOn_lt: DateTime\n firstPublishedOn_lte: DateTime\n firstPublishedOn_between: [DateTime!]\n firstPublishedOn_not_between: [DateTime!]\n lastPublishedOn: DateTime\n lastPublishedOn_gt: DateTime\n lastPublishedOn_gte: DateTime\n lastPublishedOn_lt: DateTime\n lastPublishedOn_lte: DateTime\n lastPublishedOn_between: [DateTime!]\n lastPublishedOn_not_between: [DateTime!]\n createdBy: ID\n createdBy_not: ID\n createdBy_in: [ID!]\n createdBy_not_in: [ID!]\n modifiedBy: ID\n modifiedBy_not: ID\n modifiedBy_in: [ID!]\n modifiedBy_not_in: [ID!]\n savedBy: ID\n savedBy_not: ID\n savedBy_in: [ID!]\n savedBy_not_in: [ID!]\n deletedBy: ID\n deletedBy_not: ID\n deletedBy_in: [ID!]\n deletedBy_not_in: [ID!]\n restoredBy: ID\n restoredBy_not: ID\n restoredBy_in: [ID!]\n restoredBy_not_in: [ID!]\n firstPublishedBy: ID\n firstPublishedBy_not: ID\n firstPublishedBy_in: [ID!]\n firstPublishedBy_not_in: [ID!]\n lastPublishedBy: ID\n lastPublishedBy_not: ID\n lastPublishedBy_in: [ID!]\n lastPublishedBy_not_in: [ID!]\n status: String\n status_not: String\n status_in: [String!]\n status_not_in: [String!]\n\n live: CmsEntryLiveWhereInput\n system: ListWhereInputCmsEntrySystem\n\n AND: [WbPagesListWhereInput!]\n OR: [WbPagesListWhereInput!]\n }\n\n type WbSettings {\n previewDomain: String!\n }\n\n type WbPageResponse {\n data: WbPage\n error: WbError\n }\n\n type WbSettingsResponse {\n data: WbSettings\n error: WbError\n }\n\n type WbIntegrationsResponse {\n data: JSON!\n error: WbError\n }\n\n input WbSettingsInput {\n previewDomain: String!\n }\n\n type WbPagesListResponse {\n data: [WbPage]\n error: WbError\n meta: WbMeta\n }\n\n type WbPageModelResponse {\n data: JSON\n error: WbError\n }\n\n enum WbPageListSorter {\n id_ASC\n id_DESC\n createdOn_ASC\n createdOn_DESC\n modifiedOn_ASC\n modifiedOn_DESC\n savedOn_ASC\n savedOn_DESC\n deletedOn_ASC\n deletedOn_DESC\n restoredOn_ASC\n restoredOn_DESC\n firstPublishedOn_ASC\n firstPublishedOn_DESC\n lastPublishedOn_ASC\n lastPublishedOn_DESC\n }\n\n type WbPageRevision {\n id: ID!\n entryId: ID!\n version: Int!\n title: String!\n status: String!\n locked: Boolean!\n savedOn: DateTime!\n }\n\n type WbPageRevisionsResponse {\n data: [WbPageRevision!]\n error: WbError\n }\n\n extend type WbQuery {\n getPageModel: WbPageModelResponse\n getPageByPath(path: String!): WbPageResponse\n getPageById(id: ID!): WbPageResponse\n getPageRevisions(entryId: ID!): WbPageRevisionsResponse\n listPages(\n where: WbPagesListWhereInput\n limit: Int\n after: String\n sort: [WbPageListSorter]\n search: String\n ): WbPagesListResponse\n getSettings: WbSettingsResponse\n getIntegrations: WbIntegrationsResponse\n }\n\n extend type WbMutation {\n createPage(data: WbPageCreateInput!): WbPageResponse\n updatePage(id: ID!, data: WbPageUpdateInput!): WbPageResponse\n publishPage(id: ID!): WbPageResponse\n unpublishPage(id: ID!): WbPageResponse\n duplicatePage(id: ID!): WbPageResponse\n movePage(id: ID!, folderId: ID!): WbBooleanResponse\n createPageRevisionFrom(id: ID!): WbPageResponse\n deletePage(id: ID!): WbBooleanResponse\n updateSettings(data: WbSettingsInput!): BooleanResponse\n updateIntegrations(data: JSON!): BooleanResponse\n }\n";
|
|
@@ -20,6 +20,8 @@ export const pagesTypeDefs = /* GraphQL */`
|
|
|
20
20
|
restoredBy: WbIdentity
|
|
21
21
|
firstPublishedBy: WbIdentity
|
|
22
22
|
lastPublishedBy: WbIdentity
|
|
23
|
+
system: CmsEntrySystem
|
|
24
|
+
live: CmsEntryLive
|
|
23
25
|
properties: JSON
|
|
24
26
|
metadata: JSON
|
|
25
27
|
bindings: JSON
|
|
@@ -137,6 +139,10 @@ export const pagesTypeDefs = /* GraphQL */`
|
|
|
137
139
|
status_not: String
|
|
138
140
|
status_in: [String!]
|
|
139
141
|
status_not_in: [String!]
|
|
142
|
+
|
|
143
|
+
live: CmsEntryLiveWhereInput
|
|
144
|
+
system: ListWhereInputCmsEntrySystem
|
|
145
|
+
|
|
140
146
|
AND: [WbPagesListWhereInput!]
|
|
141
147
|
OR: [WbPagesListWhereInput!]
|
|
142
148
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["pagesTypeDefs"],"sources":["pages.typeDefs.ts"],"sourcesContent":["export const pagesTypeDefs = /* GraphQL */ `\n type WbPage {\n id: ID!\n entryId: String!\n location: WbLocation\n status: String!\n version: Number!\n locked: Boolean!\n createdOn: DateTime\n modifiedOn: DateTime\n savedOn: DateTime\n deletedOn: DateTime\n restoredOn: DateTime\n firstPublishedOn: DateTime\n lastPublishedOn: DateTime\n createdBy: WbIdentity\n modifiedBy: WbIdentity\n savedBy: WbIdentity\n deletedBy: WbIdentity\n restoredBy: WbIdentity\n firstPublishedBy: WbIdentity\n lastPublishedBy: WbIdentity\n properties: JSON\n metadata: JSON\n bindings: JSON\n elements: JSON\n extensions: JSON\n }\n\n input WbPageCreateInput {\n location: WbLocationInput\n properties: JSON\n metadata: JSON\n bindings: JSON\n elements: JSON\n extensions: JSON\n }\n\n input WbPageUpdateInput {\n properties: JSON\n metadata: JSON\n bindings: JSON\n elements: JSON\n extensions: JSON\n }\n\n input WbPagesListWhereInput {\n location: WbLocationWhereInput\n latest: Boolean\n published: Boolean\n id: ID\n id_not: ID\n id_in: [ID!]\n id_not_in: [ID!]\n entryId: String\n entryId_not: String\n entryId_in: [String!]\n entryId_not_in: [String!]\n createdOn: DateTime\n createdOn_gt: DateTime\n createdOn_gte: DateTime\n createdOn_lt: DateTime\n createdOn_lte: DateTime\n createdOn_between: [DateTime!]\n createdOn_not_between: [DateTime!]\n modifiedOn: DateTime\n modifiedOn_gt: DateTime\n modifiedOn_gte: DateTime\n modifiedOn_lt: DateTime\n modifiedOn_lte: DateTime\n modifiedOn_between: [DateTime!]\n modifiedOn_not_between: [DateTime!]\n savedOn: DateTime\n savedOn_gt: DateTime\n savedOn_gte: DateTime\n savedOn_lt: DateTime\n savedOn_lte: DateTime\n savedOn_between: [DateTime!]\n savedOn_not_between: [DateTime!]\n deletedOn: DateTime\n deletedOn_gt: DateTime\n deletedOn_gte: DateTime\n deletedOn_lt: DateTime\n deletedOn_lte: DateTime\n deletedOn_between: [DateTime!]\n deletedOn_not_between: [DateTime!]\n restoredOn: DateTime\n restoredOn_gt: DateTime\n restoredOn_gte: DateTime\n restoredOn_lt: DateTime\n restoredOn_lte: DateTime\n restoredOn_between: [DateTime!]\n restoredOn_not_between: [DateTime!]\n firstPublishedOn: DateTime\n firstPublishedOn_gt: DateTime\n firstPublishedOn_gte: DateTime\n firstPublishedOn_lt: DateTime\n firstPublishedOn_lte: DateTime\n firstPublishedOn_between: [DateTime!]\n firstPublishedOn_not_between: [DateTime!]\n lastPublishedOn: DateTime\n lastPublishedOn_gt: DateTime\n lastPublishedOn_gte: DateTime\n lastPublishedOn_lt: DateTime\n lastPublishedOn_lte: DateTime\n lastPublishedOn_between: [DateTime!]\n lastPublishedOn_not_between: [DateTime!]\n createdBy: ID\n createdBy_not: ID\n createdBy_in: [ID!]\n createdBy_not_in: [ID!]\n modifiedBy: ID\n modifiedBy_not: ID\n modifiedBy_in: [ID!]\n modifiedBy_not_in: [ID!]\n savedBy: ID\n savedBy_not: ID\n savedBy_in: [ID!]\n savedBy_not_in: [ID!]\n deletedBy: ID\n deletedBy_not: ID\n deletedBy_in: [ID!]\n deletedBy_not_in: [ID!]\n restoredBy: ID\n restoredBy_not: ID\n restoredBy_in: [ID!]\n restoredBy_not_in: [ID!]\n firstPublishedBy: ID\n firstPublishedBy_not: ID\n firstPublishedBy_in: [ID!]\n firstPublishedBy_not_in: [ID!]\n lastPublishedBy: ID\n lastPublishedBy_not: ID\n lastPublishedBy_in: [ID!]\n lastPublishedBy_not_in: [ID!]\n status: String\n status_not: String\n status_in: [String!]\n status_not_in: [String!]\n AND: [WbPagesListWhereInput!]\n OR: [WbPagesListWhereInput!]\n }\n\n type WbSettings {\n previewDomain: String!\n }\n\n type WbPageResponse {\n data: WbPage\n error: WbError\n }\n\n type WbSettingsResponse {\n data: WbSettings\n error: WbError\n }\n\n type WbIntegrationsResponse {\n data: JSON!\n error: WbError\n }\n\n input WbSettingsInput {\n previewDomain: String!\n }\n\n type WbPagesListResponse {\n data: [WbPage]\n error: WbError\n meta: WbMeta\n }\n\n type WbPageModelResponse {\n data: JSON\n error: WbError\n }\n\n enum WbPageListSorter {\n id_ASC\n id_DESC\n createdOn_ASC\n createdOn_DESC\n modifiedOn_ASC\n modifiedOn_DESC\n savedOn_ASC\n savedOn_DESC\n deletedOn_ASC\n deletedOn_DESC\n restoredOn_ASC\n restoredOn_DESC\n firstPublishedOn_ASC\n firstPublishedOn_DESC\n lastPublishedOn_ASC\n lastPublishedOn_DESC\n }\n\n type WbPageRevision {\n id: ID!\n entryId: ID!\n version: Int!\n title: String!\n status: String!\n locked: Boolean!\n savedOn: DateTime!\n }\n\n type WbPageRevisionsResponse {\n data: [WbPageRevision!]\n error: WbError\n }\n\n extend type WbQuery {\n getPageModel: WbPageModelResponse\n getPageByPath(path: String!): WbPageResponse\n getPageById(id: ID!): WbPageResponse\n getPageRevisions(entryId: ID!): WbPageRevisionsResponse\n listPages(\n where: WbPagesListWhereInput\n limit: Int\n after: String\n sort: [WbPageListSorter]\n search: String\n ): WbPagesListResponse\n getSettings: WbSettingsResponse\n getIntegrations: WbIntegrationsResponse\n }\n\n extend type WbMutation {\n createPage(data: WbPageCreateInput!): WbPageResponse\n updatePage(id: ID!, data: WbPageUpdateInput!): WbPageResponse\n publishPage(id: ID!): WbPageResponse\n unpublishPage(id: ID!): WbPageResponse\n duplicatePage(id: ID!): WbPageResponse\n movePage(id: ID!, folderId: ID!): WbBooleanResponse\n createPageRevisionFrom(id: ID!): WbPageResponse\n deletePage(id: ID!): WbBooleanResponse\n updateSettings(data: WbSettingsInput!): BooleanResponse\n updateIntegrations(data: JSON!): BooleanResponse\n }\n`;\n"],"mappings":"AAAA,OAAO,MAAMA,aAAa,GAAG,aAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["pagesTypeDefs"],"sources":["pages.typeDefs.ts"],"sourcesContent":["export const pagesTypeDefs = /* GraphQL */ `\n type WbPage {\n id: ID!\n entryId: String!\n location: WbLocation\n status: String!\n version: Number!\n locked: Boolean!\n createdOn: DateTime\n modifiedOn: DateTime\n savedOn: DateTime\n deletedOn: DateTime\n restoredOn: DateTime\n firstPublishedOn: DateTime\n lastPublishedOn: DateTime\n createdBy: WbIdentity\n modifiedBy: WbIdentity\n savedBy: WbIdentity\n deletedBy: WbIdentity\n restoredBy: WbIdentity\n firstPublishedBy: WbIdentity\n lastPublishedBy: WbIdentity\n system: CmsEntrySystem\n live: CmsEntryLive\n properties: JSON\n metadata: JSON\n bindings: JSON\n elements: JSON\n extensions: JSON\n }\n\n input WbPageCreateInput {\n location: WbLocationInput\n properties: JSON\n metadata: JSON\n bindings: JSON\n elements: JSON\n extensions: JSON\n }\n\n input WbPageUpdateInput {\n properties: JSON\n metadata: JSON\n bindings: JSON\n elements: JSON\n extensions: JSON\n }\n\n input WbPagesListWhereInput {\n location: WbLocationWhereInput\n latest: Boolean\n published: Boolean\n id: ID\n id_not: ID\n id_in: [ID!]\n id_not_in: [ID!]\n entryId: String\n entryId_not: String\n entryId_in: [String!]\n entryId_not_in: [String!]\n createdOn: DateTime\n createdOn_gt: DateTime\n createdOn_gte: DateTime\n createdOn_lt: DateTime\n createdOn_lte: DateTime\n createdOn_between: [DateTime!]\n createdOn_not_between: [DateTime!]\n modifiedOn: DateTime\n modifiedOn_gt: DateTime\n modifiedOn_gte: DateTime\n modifiedOn_lt: DateTime\n modifiedOn_lte: DateTime\n modifiedOn_between: [DateTime!]\n modifiedOn_not_between: [DateTime!]\n savedOn: DateTime\n savedOn_gt: DateTime\n savedOn_gte: DateTime\n savedOn_lt: DateTime\n savedOn_lte: DateTime\n savedOn_between: [DateTime!]\n savedOn_not_between: [DateTime!]\n deletedOn: DateTime\n deletedOn_gt: DateTime\n deletedOn_gte: DateTime\n deletedOn_lt: DateTime\n deletedOn_lte: DateTime\n deletedOn_between: [DateTime!]\n deletedOn_not_between: [DateTime!]\n restoredOn: DateTime\n restoredOn_gt: DateTime\n restoredOn_gte: DateTime\n restoredOn_lt: DateTime\n restoredOn_lte: DateTime\n restoredOn_between: [DateTime!]\n restoredOn_not_between: [DateTime!]\n firstPublishedOn: DateTime\n firstPublishedOn_gt: DateTime\n firstPublishedOn_gte: DateTime\n firstPublishedOn_lt: DateTime\n firstPublishedOn_lte: DateTime\n firstPublishedOn_between: [DateTime!]\n firstPublishedOn_not_between: [DateTime!]\n lastPublishedOn: DateTime\n lastPublishedOn_gt: DateTime\n lastPublishedOn_gte: DateTime\n lastPublishedOn_lt: DateTime\n lastPublishedOn_lte: DateTime\n lastPublishedOn_between: [DateTime!]\n lastPublishedOn_not_between: [DateTime!]\n createdBy: ID\n createdBy_not: ID\n createdBy_in: [ID!]\n createdBy_not_in: [ID!]\n modifiedBy: ID\n modifiedBy_not: ID\n modifiedBy_in: [ID!]\n modifiedBy_not_in: [ID!]\n savedBy: ID\n savedBy_not: ID\n savedBy_in: [ID!]\n savedBy_not_in: [ID!]\n deletedBy: ID\n deletedBy_not: ID\n deletedBy_in: [ID!]\n deletedBy_not_in: [ID!]\n restoredBy: ID\n restoredBy_not: ID\n restoredBy_in: [ID!]\n restoredBy_not_in: [ID!]\n firstPublishedBy: ID\n firstPublishedBy_not: ID\n firstPublishedBy_in: [ID!]\n firstPublishedBy_not_in: [ID!]\n lastPublishedBy: ID\n lastPublishedBy_not: ID\n lastPublishedBy_in: [ID!]\n lastPublishedBy_not_in: [ID!]\n status: String\n status_not: String\n status_in: [String!]\n status_not_in: [String!]\n\n live: CmsEntryLiveWhereInput\n system: ListWhereInputCmsEntrySystem\n\n AND: [WbPagesListWhereInput!]\n OR: [WbPagesListWhereInput!]\n }\n\n type WbSettings {\n previewDomain: String!\n }\n\n type WbPageResponse {\n data: WbPage\n error: WbError\n }\n\n type WbSettingsResponse {\n data: WbSettings\n error: WbError\n }\n\n type WbIntegrationsResponse {\n data: JSON!\n error: WbError\n }\n\n input WbSettingsInput {\n previewDomain: String!\n }\n\n type WbPagesListResponse {\n data: [WbPage]\n error: WbError\n meta: WbMeta\n }\n\n type WbPageModelResponse {\n data: JSON\n error: WbError\n }\n\n enum WbPageListSorter {\n id_ASC\n id_DESC\n createdOn_ASC\n createdOn_DESC\n modifiedOn_ASC\n modifiedOn_DESC\n savedOn_ASC\n savedOn_DESC\n deletedOn_ASC\n deletedOn_DESC\n restoredOn_ASC\n restoredOn_DESC\n firstPublishedOn_ASC\n firstPublishedOn_DESC\n lastPublishedOn_ASC\n lastPublishedOn_DESC\n }\n\n type WbPageRevision {\n id: ID!\n entryId: ID!\n version: Int!\n title: String!\n status: String!\n locked: Boolean!\n savedOn: DateTime!\n }\n\n type WbPageRevisionsResponse {\n data: [WbPageRevision!]\n error: WbError\n }\n\n extend type WbQuery {\n getPageModel: WbPageModelResponse\n getPageByPath(path: String!): WbPageResponse\n getPageById(id: ID!): WbPageResponse\n getPageRevisions(entryId: ID!): WbPageRevisionsResponse\n listPages(\n where: WbPagesListWhereInput\n limit: Int\n after: String\n sort: [WbPageListSorter]\n search: String\n ): WbPagesListResponse\n getSettings: WbSettingsResponse\n getIntegrations: WbIntegrationsResponse\n }\n\n extend type WbMutation {\n createPage(data: WbPageCreateInput!): WbPageResponse\n updatePage(id: ID!, data: WbPageUpdateInput!): WbPageResponse\n publishPage(id: ID!): WbPageResponse\n unpublishPage(id: ID!): WbPageResponse\n duplicatePage(id: ID!): WbPageResponse\n movePage(id: ID!, folderId: ID!): WbBooleanResponse\n createPageRevisionFrom(id: ID!): WbPageResponse\n deletePage(id: ID!): WbBooleanResponse\n updateSettings(data: WbSettingsInput!): BooleanResponse\n updateIntegrations(data: JSON!): BooleanResponse\n }\n`;\n"],"mappings":"AAAA,OAAO,MAAMA,aAAa,GAAG,aAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC","ignoreList":[]}
|
package/index.js
CHANGED
|
@@ -27,8 +27,7 @@ import { createRedirectModel, REDIRECT_MODEL_ID } from "./domain/redirect/redire
|
|
|
27
27
|
import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
|
|
28
28
|
import { PageModel } from "./domain/page/abstractions.js";
|
|
29
29
|
import { RedirectModel } from "./domain/redirect/abstractions.js";
|
|
30
|
-
import {
|
|
31
|
-
import { RedirectPermissionsFeature } from "./features/redirects/RedirectPermissions/feature.js";
|
|
30
|
+
import { WbPermissions } from "./domain/permissions.js";
|
|
32
31
|
import { ApiKeyInstallerFeature } from "./features/installer/feature.js";
|
|
33
32
|
import { NextjsGraphQLSchema } from "./graphql/nextjs/NextjsGraphQLSchema.js";
|
|
34
33
|
import { NextjsFeature } from "./features/nextjs/feature.js";
|
|
@@ -50,6 +49,9 @@ const createContext = () => {
|
|
|
50
49
|
container.registerInstance(RedirectModel, redirectModel.value);
|
|
51
50
|
});
|
|
52
51
|
|
|
52
|
+
// Register permissions
|
|
53
|
+
container.register(WbPermissions.Implementation);
|
|
54
|
+
|
|
53
55
|
// Register features
|
|
54
56
|
GetRedirectByIdFeature.register(container);
|
|
55
57
|
ListRedirectsFeature.register(container);
|
|
@@ -71,8 +73,6 @@ const createContext = () => {
|
|
|
71
73
|
UnpublishPageFeature.register(container);
|
|
72
74
|
DuplicatePageFeature.register(container);
|
|
73
75
|
MovePageFeature.register(container);
|
|
74
|
-
PagePermissionsFeature.register(container);
|
|
75
|
-
RedirectPermissionsFeature.register(container);
|
|
76
76
|
ApiKeyInstallerFeature.register(container);
|
|
77
77
|
NextjsFeature.register(container);
|
|
78
78
|
// TenantModelExtensionFeature.register(container);
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createContextPlugin","GetModelUseCase","createGraphQL","createRedirectsRoute","GetRedirectByIdFeature","ListRedirectsFeature","GetActiveRedirectsFeature","CreateRedirectFeature","UpdateRedirectFeature","DeleteRedirectFeature","MoveRedirectFeature","InvalidateRedirectsCacheFeature","GetPageByIdFeature","GetPageByPathFeature","GetPageRevisionsFeature","ListPagesFeature","CreatePageFeature","CreatePageRevisionFromFeature","DeletePageFeature","UpdatePageFeature","PublishPageFeature","UnpublishPageFeature","DuplicatePageFeature","MovePageFeature","createPageModel","PAGE_MODEL_ID","createRedirectModel","REDIRECT_MODEL_ID","IdentityContext","PageModel","RedirectModel","
|
|
1
|
+
{"version":3,"names":["createContextPlugin","GetModelUseCase","createGraphQL","createRedirectsRoute","GetRedirectByIdFeature","ListRedirectsFeature","GetActiveRedirectsFeature","CreateRedirectFeature","UpdateRedirectFeature","DeleteRedirectFeature","MoveRedirectFeature","InvalidateRedirectsCacheFeature","GetPageByIdFeature","GetPageByPathFeature","GetPageRevisionsFeature","ListPagesFeature","CreatePageFeature","CreatePageRevisionFromFeature","DeletePageFeature","UpdatePageFeature","PublishPageFeature","UnpublishPageFeature","DuplicatePageFeature","MovePageFeature","createPageModel","PAGE_MODEL_ID","createRedirectModel","REDIRECT_MODEL_ID","IdentityContext","PageModel","RedirectModel","WbPermissions","ApiKeyInstallerFeature","NextjsGraphQLSchema","NextjsFeature","createContext","context","container","pageModel","redirectModel","plugins","register","identityContext","resolve","getModel","withoutAuthorization","Promise","all","execute","registerInstance","value","Implementation","name","createWebsiteBuilder"],"sources":["index.ts"],"sourcesContent":["import { createContextPlugin } from \"@webiny/api\";\nimport { GetModelUseCase } from \"@webiny/api-headless-cms/features/contentModel/GetModel/index.js\";\nimport { createGraphQL } from \"./graphql/createGraphQL.js\";\nimport { createRedirectsRoute } from \"./rest/getRedirects.js\";\nimport { GetRedirectByIdFeature } from \"./features/redirects/GetRedirectById/feature.js\";\nimport { ListRedirectsFeature } from \"./features/redirects/ListRedirects/feature.js\";\nimport { GetActiveRedirectsFeature } from \"./features/redirects/GetActiveRedirects/feature.js\";\nimport { CreateRedirectFeature } from \"./features/redirects/CreateRedirect/feature.js\";\nimport { UpdateRedirectFeature } from \"./features/redirects/UpdateRedirect/feature.js\";\nimport { DeleteRedirectFeature } from \"./features/redirects/DeleteRedirect/feature.js\";\nimport { MoveRedirectFeature } from \"./features/redirects/MoveRedirect/feature.js\";\nimport { InvalidateRedirectsCacheFeature } from \"./features/redirects/InvalidateRedirectsCache/feature.js\";\nimport { GetPageByIdFeature } from \"./features/pages/GetPageById/feature.js\";\nimport { GetPageByPathFeature } from \"./features/pages/GetPageByPath/feature.js\";\nimport { GetPageRevisionsFeature } from \"./features/pages/GetPageRevisions/feature.js\";\nimport { ListPagesFeature } from \"./features/pages/ListPages/feature.js\";\nimport { CreatePageFeature } from \"./features/pages/CreatePage/feature.js\";\nimport { CreatePageRevisionFromFeature } from \"./features/pages/CreatePageRevisionFrom/feature.js\";\nimport { DeletePageFeature } from \"./features/pages/DeletePage/feature.js\";\nimport { UpdatePageFeature } from \"./features/pages/UpdatePage/feature.js\";\nimport { PublishPageFeature } from \"./features/pages/PublishPage/feature.js\";\nimport { UnpublishPageFeature } from \"./features/pages/UnpublishPage/feature.js\";\nimport { DuplicatePageFeature } from \"./features/pages/DuplicatePage/feature.js\";\nimport { MovePageFeature } from \"./features/pages/MovePage/feature.js\";\nimport { createPageModel, PAGE_MODEL_ID } from \"~/domain/page/page.model.js\";\nimport { createRedirectModel, REDIRECT_MODEL_ID } from \"~/domain/redirect/redirect.model.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { PageModel } from \"~/domain/page/abstractions.js\";\nimport { RedirectModel } from \"~/domain/redirect/abstractions.js\";\nimport { WbPermissions } from \"~/domain/permissions.js\";\nimport { ApiKeyInstallerFeature } from \"~/features/installer/feature.js\";\nimport { NextjsGraphQLSchema } from \"~/graphql/nextjs/NextjsGraphQLSchema.js\";\nimport { NextjsFeature } from \"~/features/nextjs/feature.js\";\n// import { TenantModelExtensionFeature } from \"~/features/tenantManager/feature.js\";\n\nconst createContext = () => {\n return createContextPlugin(\n async context => {\n const container = context.container;\n\n // Register models\n const pageModel = createPageModel();\n const redirectModel = createRedirectModel();\n\n context.plugins.register(pageModel, redirectModel);\n\n const identityContext = container.resolve(IdentityContext);\n const getModel = container.resolve(GetModelUseCase);\n\n await identityContext.withoutAuthorization(async () => {\n const [pageModel, redirectModel] = await Promise.all([\n getModel.execute(PAGE_MODEL_ID),\n getModel.execute(REDIRECT_MODEL_ID)\n ]);\n\n container.registerInstance(PageModel, pageModel.value);\n container.registerInstance(RedirectModel, redirectModel.value);\n });\n\n // Register permissions\n container.register(WbPermissions.Implementation);\n\n // Register features\n GetRedirectByIdFeature.register(container);\n ListRedirectsFeature.register(container);\n GetActiveRedirectsFeature.register(container);\n CreateRedirectFeature.register(container);\n UpdateRedirectFeature.register(container);\n DeleteRedirectFeature.register(container);\n MoveRedirectFeature.register(container);\n InvalidateRedirectsCacheFeature.register(container);\n GetPageByIdFeature.register(container);\n GetPageByPathFeature.register(container);\n GetPageRevisionsFeature.register(container);\n ListPagesFeature.register(container);\n CreatePageFeature.register(container);\n CreatePageRevisionFromFeature.register(container);\n DeletePageFeature.register(container);\n UpdatePageFeature.register(container);\n PublishPageFeature.register(container);\n UnpublishPageFeature.register(container);\n DuplicatePageFeature.register(container);\n MovePageFeature.register(container);\n ApiKeyInstallerFeature.register(container);\n NextjsFeature.register(container);\n // TenantModelExtensionFeature.register(container);\n\n // Register GraphQL\n container.register(NextjsGraphQLSchema);\n },\n { name: \"wb.createContext\" }\n );\n};\n\nexport const createWebsiteBuilder = () => {\n return [createContext(), createGraphQL(), createRedirectsRoute()];\n};\n"],"mappings":"AAAA,SAASA,mBAAmB,QAAQ,aAAa;AACjD,SAASC,eAAe,QAAQ,kEAAkE;AAClG,SAASC,aAAa;AACtB,SAASC,oBAAoB;AAC7B,SAASC,sBAAsB;AAC/B,SAASC,oBAAoB;AAC7B,SAASC,yBAAyB;AAClC,SAASC,qBAAqB;AAC9B,SAASC,qBAAqB;AAC9B,SAASC,qBAAqB;AAC9B,SAASC,mBAAmB;AAC5B,SAASC,+BAA+B;AACxC,SAASC,kBAAkB;AAC3B,SAASC,oBAAoB;AAC7B,SAASC,uBAAuB;AAChC,SAASC,gBAAgB;AACzB,SAASC,iBAAiB;AAC1B,SAASC,6BAA6B;AACtC,SAASC,iBAAiB;AAC1B,SAASC,iBAAiB;AAC1B,SAASC,kBAAkB;AAC3B,SAASC,oBAAoB;AAC7B,SAASC,oBAAoB;AAC7B,SAASC,eAAe;AACxB,SAASC,eAAe,EAAEC,aAAa;AACvC,SAASC,mBAAmB,EAAEC,iBAAiB;AAC/C,SAASC,eAAe,QAAQ,6DAA6D;AAC7F,SAASC,SAAS;AAClB,SAASC,aAAa;AACtB,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAC/B,SAASC,mBAAmB;AAC5B,SAASC,aAAa;AACtB;;AAEA,MAAMC,aAAa,GAAGA,CAAA,KAAM;EACxB,OAAOnC,mBAAmB,CACtB,MAAMoC,OAAO,IAAI;IACb,MAAMC,SAAS,GAAGD,OAAO,CAACC,SAAS;;IAEnC;IACA,MAAMC,SAAS,GAAGd,eAAe,CAAC,CAAC;IACnC,MAAMe,aAAa,GAAGb,mBAAmB,CAAC,CAAC;IAE3CU,OAAO,CAACI,OAAO,CAACC,QAAQ,CAACH,SAAS,EAAEC,aAAa,CAAC;IAElD,MAAMG,eAAe,GAAGL,SAAS,CAACM,OAAO,CAACf,eAAe,CAAC;IAC1D,MAAMgB,QAAQ,GAAGP,SAAS,CAACM,OAAO,CAAC1C,eAAe,CAAC;IAEnD,MAAMyC,eAAe,CAACG,oBAAoB,CAAC,YAAY;MACnD,MAAM,CAACP,SAAS,EAAEC,aAAa,CAAC,GAAG,MAAMO,OAAO,CAACC,GAAG,CAAC,CACjDH,QAAQ,CAACI,OAAO,CAACvB,aAAa,CAAC,EAC/BmB,QAAQ,CAACI,OAAO,CAACrB,iBAAiB,CAAC,CACtC,CAAC;MAEFU,SAAS,CAACY,gBAAgB,CAACpB,SAAS,EAAES,SAAS,CAACY,KAAK,CAAC;MACtDb,SAAS,CAACY,gBAAgB,CAACnB,aAAa,EAAES,aAAa,CAACW,KAAK,CAAC;IAClE,CAAC,CAAC;;IAEF;IACAb,SAAS,CAACI,QAAQ,CAACV,aAAa,CAACoB,cAAc,CAAC;;IAEhD;IACA/C,sBAAsB,CAACqC,QAAQ,CAACJ,SAAS,CAAC;IAC1ChC,oBAAoB,CAACoC,QAAQ,CAACJ,SAAS,CAAC;IACxC/B,yBAAyB,CAACmC,QAAQ,CAACJ,SAAS,CAAC;IAC7C9B,qBAAqB,CAACkC,QAAQ,CAACJ,SAAS,CAAC;IACzC7B,qBAAqB,CAACiC,QAAQ,CAACJ,SAAS,CAAC;IACzC5B,qBAAqB,CAACgC,QAAQ,CAACJ,SAAS,CAAC;IACzC3B,mBAAmB,CAAC+B,QAAQ,CAACJ,SAAS,CAAC;IACvC1B,+BAA+B,CAAC8B,QAAQ,CAACJ,SAAS,CAAC;IACnDzB,kBAAkB,CAAC6B,QAAQ,CAACJ,SAAS,CAAC;IACtCxB,oBAAoB,CAAC4B,QAAQ,CAACJ,SAAS,CAAC;IACxCvB,uBAAuB,CAAC2B,QAAQ,CAACJ,SAAS,CAAC;IAC3CtB,gBAAgB,CAAC0B,QAAQ,CAACJ,SAAS,CAAC;IACpCrB,iBAAiB,CAACyB,QAAQ,CAACJ,SAAS,CAAC;IACrCpB,6BAA6B,CAACwB,QAAQ,CAACJ,SAAS,CAAC;IACjDnB,iBAAiB,CAACuB,QAAQ,CAACJ,SAAS,CAAC;IACrClB,iBAAiB,CAACsB,QAAQ,CAACJ,SAAS,CAAC;IACrCjB,kBAAkB,CAACqB,QAAQ,CAACJ,SAAS,CAAC;IACtChB,oBAAoB,CAACoB,QAAQ,CAACJ,SAAS,CAAC;IACxCf,oBAAoB,CAACmB,QAAQ,CAACJ,SAAS,CAAC;IACxCd,eAAe,CAACkB,QAAQ,CAACJ,SAAS,CAAC;IACnCL,sBAAsB,CAACS,QAAQ,CAACJ,SAAS,CAAC;IAC1CH,aAAa,CAACO,QAAQ,CAACJ,SAAS,CAAC;IACjC;;IAEA;IACAA,SAAS,CAACI,QAAQ,CAACR,mBAAmB,CAAC;EAC3C,CAAC,EACD;IAAEmB,IAAI,EAAE;EAAmB,CAC/B,CAAC;AACL,CAAC;AAED,OAAO,MAAMC,oBAAoB,GAAGA,CAAA,KAAM;EACtC,OAAO,CAAClB,aAAa,CAAC,CAAC,EAAEjC,aAAa,CAAC,CAAC,EAAEC,oBAAoB,CAAC,CAAC,CAAC;AACrE,CAAC","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/api-website-builder",
|
|
3
|
-
"version": "0.0.0-unstable.
|
|
3
|
+
"version": "0.0.0-unstable.e2758ee1cf",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"keywords": [
|
|
@@ -19,30 +19,29 @@
|
|
|
19
19
|
"directory": "dist"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@webiny/api": "0.0.0-unstable.
|
|
23
|
-
"@webiny/api-core": "0.0.0-unstable.
|
|
24
|
-
"@webiny/api-headless-cms": "0.0.0-unstable.
|
|
25
|
-
"@webiny/
|
|
26
|
-
"@webiny/
|
|
27
|
-
"@webiny/handler": "0.0.0-unstable.
|
|
28
|
-
"@webiny/
|
|
29
|
-
"@webiny/tenant-manager": "0.0.0-unstable.df7a8bb475",
|
|
22
|
+
"@webiny/api": "0.0.0-unstable.e2758ee1cf",
|
|
23
|
+
"@webiny/api-core": "0.0.0-unstable.e2758ee1cf",
|
|
24
|
+
"@webiny/api-headless-cms": "0.0.0-unstable.e2758ee1cf",
|
|
25
|
+
"@webiny/feature": "0.0.0-unstable.e2758ee1cf",
|
|
26
|
+
"@webiny/handler": "0.0.0-unstable.e2758ee1cf",
|
|
27
|
+
"@webiny/handler-graphql": "0.0.0-unstable.e2758ee1cf",
|
|
28
|
+
"@webiny/tenant-manager": "0.0.0-unstable.e2758ee1cf",
|
|
30
29
|
"lodash": "4.17.23"
|
|
31
30
|
},
|
|
32
31
|
"devDependencies": {
|
|
33
|
-
"@webiny/api-core-ddb": "0.0.0-unstable.
|
|
34
|
-
"@webiny/api-file-manager-s3": "0.0.0-unstable.
|
|
35
|
-
"@webiny/build-tools": "0.0.0-unstable.
|
|
36
|
-
"@webiny/handler-aws": "0.0.0-unstable.
|
|
37
|
-
"@webiny/plugins": "0.0.0-unstable.
|
|
38
|
-
"@webiny/project-utils": "0.0.0-unstable.
|
|
39
|
-
"@webiny/tasks": "0.0.0-unstable.
|
|
40
|
-
"@webiny/wcp": "0.0.0-unstable.
|
|
41
|
-
"graphql": "16.
|
|
32
|
+
"@webiny/api-core-ddb": "0.0.0-unstable.e2758ee1cf",
|
|
33
|
+
"@webiny/api-file-manager-s3": "0.0.0-unstable.e2758ee1cf",
|
|
34
|
+
"@webiny/build-tools": "0.0.0-unstable.e2758ee1cf",
|
|
35
|
+
"@webiny/handler-aws": "0.0.0-unstable.e2758ee1cf",
|
|
36
|
+
"@webiny/plugins": "0.0.0-unstable.e2758ee1cf",
|
|
37
|
+
"@webiny/project-utils": "0.0.0-unstable.e2758ee1cf",
|
|
38
|
+
"@webiny/tasks": "0.0.0-unstable.e2758ee1cf",
|
|
39
|
+
"@webiny/wcp": "0.0.0-unstable.e2758ee1cf",
|
|
40
|
+
"graphql": "16.13.0",
|
|
42
41
|
"prettier": "3.6.2",
|
|
43
42
|
"rimraf": "6.1.3",
|
|
44
43
|
"typescript": "5.9.3",
|
|
45
|
-
"vitest": "
|
|
44
|
+
"vitest": "4.0.18"
|
|
46
45
|
},
|
|
47
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "e2758ee1cfa3b9a7152e9bb995a90ccabd33266f"
|
|
48
47
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const PagePermissionsFeature: import("@webiny/feature/api/createFeature").FeatureDefinition<unknown>;
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { createFeature, Result } from "@webiny/feature/api";
|
|
2
|
-
import { CreatePageUseCase } from "../CreatePage/index.js";
|
|
3
|
-
import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
|
|
4
|
-
import { PageNotAuthorizedError } from "../../../domain/page/errors.js";
|
|
5
|
-
import { CreatePageRevisionFromUseCase } from "../CreatePageRevisionFrom/index.js";
|
|
6
|
-
import { DeletePageUseCase } from "../DeletePage/index.js";
|
|
7
|
-
import { DuplicatePageUseCase } from "../DuplicatePage/index.js";
|
|
8
|
-
import { GetPageByIdUseCase } from "../GetPageById/index.js";
|
|
9
|
-
import { GetPageByPathUseCase } from "../GetPageByPath/index.js";
|
|
10
|
-
import { GetPageRevisionsUseCase } from "../GetPageRevisions/index.js";
|
|
11
|
-
import { ListPagesUseCase } from "../ListPages/index.js";
|
|
12
|
-
import { MovePageUseCase } from "../MovePage/index.js";
|
|
13
|
-
import { PublishPageUseCase } from "../PublishPage/index.js";
|
|
14
|
-
import { UnpublishPageUseCase } from "../UnpublishPage/index.js";
|
|
15
|
-
import { UpdatePageUseCase } from "../UpdatePage/index.js";
|
|
16
|
-
const createDecorator = abstraction => {
|
|
17
|
-
class PageUseCaseDecorator {
|
|
18
|
-
constructor(identityContext, decoratee) {
|
|
19
|
-
this.identityContext = identityContext;
|
|
20
|
-
this.decoratee = decoratee;
|
|
21
|
-
}
|
|
22
|
-
async execute(...args) {
|
|
23
|
-
const hasPermission = await this.identityContext.getPermission("wb.page");
|
|
24
|
-
if (!hasPermission) {
|
|
25
|
-
return Result.fail(new PageNotAuthorizedError());
|
|
26
|
-
}
|
|
27
|
-
return this.decoratee.execute(...args);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
return abstraction.createDecorator({
|
|
31
|
-
decorator: PageUseCaseDecorator,
|
|
32
|
-
dependencies: [IdentityContext]
|
|
33
|
-
});
|
|
34
|
-
};
|
|
35
|
-
export const PagePermissionsFeature = createFeature({
|
|
36
|
-
name: "WebsiteBuilder/Page/Permissions",
|
|
37
|
-
register(container) {
|
|
38
|
-
container.registerDecorator(createDecorator(CreatePageUseCase));
|
|
39
|
-
container.registerDecorator(createDecorator(CreatePageRevisionFromUseCase));
|
|
40
|
-
container.registerDecorator(createDecorator(UpdatePageUseCase));
|
|
41
|
-
container.registerDecorator(createDecorator(DeletePageUseCase));
|
|
42
|
-
container.registerDecorator(createDecorator(DuplicatePageUseCase));
|
|
43
|
-
container.registerDecorator(createDecorator(GetPageByIdUseCase));
|
|
44
|
-
container.registerDecorator(createDecorator(GetPageByPathUseCase));
|
|
45
|
-
container.registerDecorator(createDecorator(GetPageRevisionsUseCase));
|
|
46
|
-
container.registerDecorator(createDecorator(ListPagesUseCase));
|
|
47
|
-
container.registerDecorator(createDecorator(MovePageUseCase));
|
|
48
|
-
container.registerDecorator(createDecorator(PublishPageUseCase));
|
|
49
|
-
container.registerDecorator(createDecorator(UnpublishPageUseCase));
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
//# sourceMappingURL=feature.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["createFeature","Result","CreatePageUseCase","IdentityContext","PageNotAuthorizedError","CreatePageRevisionFromUseCase","DeletePageUseCase","DuplicatePageUseCase","GetPageByIdUseCase","GetPageByPathUseCase","GetPageRevisionsUseCase","ListPagesUseCase","MovePageUseCase","PublishPageUseCase","UnpublishPageUseCase","UpdatePageUseCase","createDecorator","abstraction","PageUseCaseDecorator","constructor","identityContext","decoratee","execute","args","hasPermission","getPermission","fail","decorator","dependencies","PagePermissionsFeature","name","register","container","registerDecorator"],"sources":["feature.ts"],"sourcesContent":["import { Abstraction } from \"@webiny/di\";\nimport { createFeature, Result } from \"@webiny/feature/api\";\nimport { CreatePageUseCase } from \"~/features/pages/CreatePage/index.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\nimport { CreatePageRevisionFromUseCase } from \"~/features/pages/CreatePageRevisionFrom/index.js\";\nimport { DeletePageUseCase } from \"~/features/pages/DeletePage/index.js\";\nimport { DuplicatePageUseCase } from \"~/features/pages/DuplicatePage/index.js\";\nimport { GetPageByIdUseCase } from \"~/features/pages/GetPageById/index.js\";\nimport { GetPageByPathUseCase } from \"~/features/pages/GetPageByPath/index.js\";\nimport { GetPageRevisionsUseCase } from \"~/features/pages/GetPageRevisions/index.js\";\nimport { ListPagesUseCase } from \"~/features/pages/ListPages/index.js\";\nimport { MovePageUseCase } from \"~/features/pages/MovePage/index.js\";\nimport { PublishPageUseCase } from \"~/features/pages/PublishPage/index.js\";\nimport { UnpublishPageUseCase } from \"~/features/pages/UnpublishPage/index.js\";\nimport { UpdatePageUseCase } from \"~/features/pages/UpdatePage/index.js\";\n\nconst createDecorator = (abstraction: Abstraction<any>) => {\n class PageUseCaseDecorator {\n constructor(\n private identityContext: IdentityContext.Interface,\n private decoratee: any\n ) {}\n\n async execute(...args: any[]) {\n const hasPermission = await this.identityContext.getPermission(\"wb.page\");\n\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n return this.decoratee.execute(...args);\n }\n }\n\n return abstraction.createDecorator({\n decorator: PageUseCaseDecorator,\n dependencies: [IdentityContext]\n });\n};\n\nexport const PagePermissionsFeature = createFeature({\n name: \"WebsiteBuilder/Page/Permissions\",\n register(container) {\n container.registerDecorator(createDecorator(CreatePageUseCase));\n container.registerDecorator(createDecorator(CreatePageRevisionFromUseCase));\n container.registerDecorator(createDecorator(UpdatePageUseCase));\n container.registerDecorator(createDecorator(DeletePageUseCase));\n container.registerDecorator(createDecorator(DuplicatePageUseCase));\n container.registerDecorator(createDecorator(GetPageByIdUseCase));\n container.registerDecorator(createDecorator(GetPageByPathUseCase));\n container.registerDecorator(createDecorator(GetPageRevisionsUseCase));\n container.registerDecorator(createDecorator(ListPagesUseCase));\n container.registerDecorator(createDecorator(MovePageUseCase));\n container.registerDecorator(createDecorator(PublishPageUseCase));\n container.registerDecorator(createDecorator(UnpublishPageUseCase));\n }\n});\n"],"mappings":"AACA,SAASA,aAAa,EAAEC,MAAM,QAAQ,qBAAqB;AAC3D,SAASC,iBAAiB;AAC1B,SAASC,eAAe,QAAQ,6DAA6D;AAC7F,SAASC,sBAAsB;AAC/B,SAASC,6BAA6B;AACtC,SAASC,iBAAiB;AAC1B,SAASC,oBAAoB;AAC7B,SAASC,kBAAkB;AAC3B,SAASC,oBAAoB;AAC7B,SAASC,uBAAuB;AAChC,SAASC,gBAAgB;AACzB,SAASC,eAAe;AACxB,SAASC,kBAAkB;AAC3B,SAASC,oBAAoB;AAC7B,SAASC,iBAAiB;AAE1B,MAAMC,eAAe,GAAIC,WAA6B,IAAK;EACvD,MAAMC,oBAAoB,CAAC;IACvBC,WAAWA,CACCC,eAA0C,EAC1CC,SAAc,EACxB;MAAA,KAFUD,eAA0C,GAA1CA,eAA0C;MAAA,KAC1CC,SAAc,GAAdA,SAAc;IACvB;IAEH,MAAMC,OAAOA,CAAC,GAAGC,IAAW,EAAE;MAC1B,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACJ,eAAe,CAACK,aAAa,CAAC,SAAS,CAAC;MAEzE,IAAI,CAACD,aAAa,EAAE;QAChB,OAAOvB,MAAM,CAACyB,IAAI,CAAC,IAAItB,sBAAsB,CAAC,CAAC,CAAC;MACpD;MAEA,OAAO,IAAI,CAACiB,SAAS,CAACC,OAAO,CAAC,GAAGC,IAAI,CAAC;IAC1C;EACJ;EAEA,OAAON,WAAW,CAACD,eAAe,CAAC;IAC/BW,SAAS,EAAET,oBAAoB;IAC/BU,YAAY,EAAE,CAACzB,eAAe;EAClC,CAAC,CAAC;AACN,CAAC;AAED,OAAO,MAAM0B,sBAAsB,GAAG7B,aAAa,CAAC;EAChD8B,IAAI,EAAE,iCAAiC;EACvCC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACd,iBAAiB,CAAC,CAAC;IAC/D8B,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACX,6BAA6B,CAAC,CAAC;IAC3E2B,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACD,iBAAiB,CAAC,CAAC;IAC/DiB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACV,iBAAiB,CAAC,CAAC;IAC/D0B,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACT,oBAAoB,CAAC,CAAC;IAClEyB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACR,kBAAkB,CAAC,CAAC;IAChEwB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACP,oBAAoB,CAAC,CAAC;IAClEuB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACN,uBAAuB,CAAC,CAAC;IACrEsB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACL,gBAAgB,CAAC,CAAC;IAC9DqB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACJ,eAAe,CAAC,CAAC;IAC7DoB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACH,kBAAkB,CAAC,CAAC;IAChEmB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACF,oBAAoB,CAAC,CAAC;EACtE;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const RedirectPermissionsFeature: import("@webiny/feature/api/createFeature").FeatureDefinition<unknown>;
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { createFeature, Result } from "@webiny/feature/api";
|
|
2
|
-
import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
|
|
3
|
-
import { RedirectNotAuthorizedError } from "../../../domain/redirect/errors.js";
|
|
4
|
-
import { CreateRedirectUseCase } from "../CreateRedirect/index.js";
|
|
5
|
-
import { UpdateRedirectUseCase } from "../UpdateRedirect/index.js";
|
|
6
|
-
import { DeleteRedirectUseCase } from "../DeleteRedirect/index.js";
|
|
7
|
-
import { GetActiveRedirectsUseCase } from "../GetActiveRedirects/index.js";
|
|
8
|
-
import { GetRedirectByIdUseCase } from "../GetRedirectById/index.js";
|
|
9
|
-
import { InvalidateRedirectsCacheUseCase } from "../InvalidateRedirectsCache/index.js";
|
|
10
|
-
import { ListRedirectsUseCase } from "../ListRedirects/index.js";
|
|
11
|
-
import { MoveRedirectUseCase } from "../MoveRedirect/index.js";
|
|
12
|
-
const createDecorator = abstraction => {
|
|
13
|
-
class PageUseCaseDecorator {
|
|
14
|
-
constructor(identityContext, decoratee) {
|
|
15
|
-
this.identityContext = identityContext;
|
|
16
|
-
this.decoratee = decoratee;
|
|
17
|
-
}
|
|
18
|
-
async execute(...args) {
|
|
19
|
-
const hasPermission = await this.identityContext.getPermission("wb.redirect");
|
|
20
|
-
if (!hasPermission) {
|
|
21
|
-
return Result.fail(new RedirectNotAuthorizedError());
|
|
22
|
-
}
|
|
23
|
-
return this.decoratee.execute(...args);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
return abstraction.createDecorator({
|
|
27
|
-
decorator: PageUseCaseDecorator,
|
|
28
|
-
dependencies: [IdentityContext]
|
|
29
|
-
});
|
|
30
|
-
};
|
|
31
|
-
export const RedirectPermissionsFeature = createFeature({
|
|
32
|
-
name: "WebsiteBuilder/Redirect/Permissions",
|
|
33
|
-
register(container) {
|
|
34
|
-
container.registerDecorator(createDecorator(CreateRedirectUseCase));
|
|
35
|
-
container.registerDecorator(createDecorator(UpdateRedirectUseCase));
|
|
36
|
-
container.registerDecorator(createDecorator(DeleteRedirectUseCase));
|
|
37
|
-
container.registerDecorator(createDecorator(GetActiveRedirectsUseCase));
|
|
38
|
-
container.registerDecorator(createDecorator(GetRedirectByIdUseCase));
|
|
39
|
-
container.registerDecorator(createDecorator(InvalidateRedirectsCacheUseCase));
|
|
40
|
-
container.registerDecorator(createDecorator(ListRedirectsUseCase));
|
|
41
|
-
container.registerDecorator(createDecorator(MoveRedirectUseCase));
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
//# sourceMappingURL=feature.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["createFeature","Result","IdentityContext","RedirectNotAuthorizedError","CreateRedirectUseCase","UpdateRedirectUseCase","DeleteRedirectUseCase","GetActiveRedirectsUseCase","GetRedirectByIdUseCase","InvalidateRedirectsCacheUseCase","ListRedirectsUseCase","MoveRedirectUseCase","createDecorator","abstraction","PageUseCaseDecorator","constructor","identityContext","decoratee","execute","args","hasPermission","getPermission","fail","decorator","dependencies","RedirectPermissionsFeature","name","register","container","registerDecorator"],"sources":["feature.ts"],"sourcesContent":["import { Abstraction } from \"@webiny/di\";\nimport { createFeature, Result } from \"@webiny/feature/api\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { RedirectNotAuthorizedError } from \"~/domain/redirect/errors.js\";\nimport { CreateRedirectUseCase } from \"~/features/redirects/CreateRedirect/index.js\";\nimport { UpdateRedirectUseCase } from \"~/features/redirects/UpdateRedirect/index.js\";\nimport { DeleteRedirectUseCase } from \"~/features/redirects/DeleteRedirect/index.js\";\nimport { GetActiveRedirectsUseCase } from \"~/features/redirects/GetActiveRedirects/index.js\";\nimport { GetRedirectByIdUseCase } from \"~/features/redirects/GetRedirectById/index.js\";\nimport { InvalidateRedirectsCacheUseCase } from \"~/features/redirects/InvalidateRedirectsCache/index.js\";\nimport { ListRedirectsUseCase } from \"~/features/redirects/ListRedirects/index.js\";\nimport { MoveRedirectUseCase } from \"~/features/redirects/MoveRedirect/index.js\";\n\nconst createDecorator = (abstraction: Abstraction<any>) => {\n class PageUseCaseDecorator {\n constructor(\n private identityContext: IdentityContext.Interface,\n private decoratee: any\n ) {}\n\n async execute(...args: any[]) {\n const hasPermission = await this.identityContext.getPermission(\"wb.redirect\");\n\n if (!hasPermission) {\n return Result.fail(new RedirectNotAuthorizedError());\n }\n\n return this.decoratee.execute(...args);\n }\n }\n\n return abstraction.createDecorator({\n decorator: PageUseCaseDecorator,\n dependencies: [IdentityContext]\n });\n};\n\nexport const RedirectPermissionsFeature = createFeature({\n name: \"WebsiteBuilder/Redirect/Permissions\",\n register(container) {\n container.registerDecorator(createDecorator(CreateRedirectUseCase));\n container.registerDecorator(createDecorator(UpdateRedirectUseCase));\n container.registerDecorator(createDecorator(DeleteRedirectUseCase));\n container.registerDecorator(createDecorator(GetActiveRedirectsUseCase));\n container.registerDecorator(createDecorator(GetRedirectByIdUseCase));\n container.registerDecorator(createDecorator(InvalidateRedirectsCacheUseCase));\n container.registerDecorator(createDecorator(ListRedirectsUseCase));\n container.registerDecorator(createDecorator(MoveRedirectUseCase));\n }\n});\n"],"mappings":"AACA,SAASA,aAAa,EAAEC,MAAM,QAAQ,qBAAqB;AAC3D,SAASC,eAAe,QAAQ,6DAA6D;AAC7F,SAASC,0BAA0B;AACnC,SAASC,qBAAqB;AAC9B,SAASC,qBAAqB;AAC9B,SAASC,qBAAqB;AAC9B,SAASC,yBAAyB;AAClC,SAASC,sBAAsB;AAC/B,SAASC,+BAA+B;AACxC,SAASC,oBAAoB;AAC7B,SAASC,mBAAmB;AAE5B,MAAMC,eAAe,GAAIC,WAA6B,IAAK;EACvD,MAAMC,oBAAoB,CAAC;IACvBC,WAAWA,CACCC,eAA0C,EAC1CC,SAAc,EACxB;MAAA,KAFUD,eAA0C,GAA1CA,eAA0C;MAAA,KAC1CC,SAAc,GAAdA,SAAc;IACvB;IAEH,MAAMC,OAAOA,CAAC,GAAGC,IAAW,EAAE;MAC1B,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACJ,eAAe,CAACK,aAAa,CAAC,aAAa,CAAC;MAE7E,IAAI,CAACD,aAAa,EAAE;QAChB,OAAOnB,MAAM,CAACqB,IAAI,CAAC,IAAInB,0BAA0B,CAAC,CAAC,CAAC;MACxD;MAEA,OAAO,IAAI,CAACc,SAAS,CAACC,OAAO,CAAC,GAAGC,IAAI,CAAC;IAC1C;EACJ;EAEA,OAAON,WAAW,CAACD,eAAe,CAAC;IAC/BW,SAAS,EAAET,oBAAoB;IAC/BU,YAAY,EAAE,CAACtB,eAAe;EAClC,CAAC,CAAC;AACN,CAAC;AAED,OAAO,MAAMuB,0BAA0B,GAAGzB,aAAa,CAAC;EACpD0B,IAAI,EAAE,qCAAqC;EAC3CC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACR,qBAAqB,CAAC,CAAC;IACnEwB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACP,qBAAqB,CAAC,CAAC;IACnEuB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACN,qBAAqB,CAAC,CAAC;IACnEsB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACL,yBAAyB,CAAC,CAAC;IACvEqB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACJ,sBAAsB,CAAC,CAAC;IACpEoB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACH,+BAA+B,CAAC,CAAC;IAC7EmB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACF,oBAAoB,CAAC,CAAC;IAClEkB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACD,mBAAmB,CAAC,CAAC;EACrE;AACJ,CAAC,CAAC","ignoreList":[]}
|