@webiny/api-website-builder-scheduler 0.0.0-unstable.7be00a75a9

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.
Files changed (76) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +11 -0
  3. package/constants.d.ts +4 -0
  4. package/constants.js +10 -0
  5. package/constants.js.map +1 -0
  6. package/context.d.ts +2 -0
  7. package/context.js +28 -0
  8. package/context.js.map +1 -0
  9. package/exports/api/website-builder/scheduler.d.ts +4 -0
  10. package/exports/api/website-builder/scheduler.js +4 -0
  11. package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPageDeleteEventHandler.d.ts +18 -0
  12. package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPageDeleteEventHandler.js +35 -0
  13. package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPageDeleteEventHandler.js.map +1 -0
  14. package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPagePublishEventHandler.d.ts +19 -0
  15. package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPagePublishEventHandler.js +35 -0
  16. package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPagePublishEventHandler.js.map +1 -0
  17. package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPageUnpublishEventHandler.d.ts +19 -0
  18. package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPageUnpublishEventHandler.js +35 -0
  19. package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPageUnpublishEventHandler.js.map +1 -0
  20. package/features/CancelScheduledActionOnChange/CancelScheduledActionOnRedirectDeleteEventHandler.d.ts +19 -0
  21. package/features/CancelScheduledActionOnChange/CancelScheduledActionOnRedirectDeleteEventHandler.js +34 -0
  22. package/features/CancelScheduledActionOnChange/CancelScheduledActionOnRedirectDeleteEventHandler.js.map +1 -0
  23. package/features/CancelScheduledActionOnChange/feature.d.ts +11 -0
  24. package/features/CancelScheduledActionOnChange/feature.js +17 -0
  25. package/features/CancelScheduledActionOnChange/feature.js.map +1 -0
  26. package/features/NamespaceHandler/PageNamespaceHandler.d.ts +14 -0
  27. package/features/NamespaceHandler/PageNamespaceHandler.js +39 -0
  28. package/features/NamespaceHandler/PageNamespaceHandler.js.map +1 -0
  29. package/features/NamespaceHandler/RedirectNamespaceHandler.d.ts +14 -0
  30. package/features/NamespaceHandler/RedirectNamespaceHandler.js +39 -0
  31. package/features/NamespaceHandler/RedirectNamespaceHandler.js.map +1 -0
  32. package/features/PublishActionHandler/PublishPageActionHandler.d.ts +16 -0
  33. package/features/PublishActionHandler/PublishPageActionHandler.js +30 -0
  34. package/features/PublishActionHandler/PublishPageActionHandler.js.map +1 -0
  35. package/features/PublishActionHandler/PublishRedirectActionHandler.d.ts +17 -0
  36. package/features/PublishActionHandler/PublishRedirectActionHandler.js +30 -0
  37. package/features/PublishActionHandler/PublishRedirectActionHandler.js.map +1 -0
  38. package/features/SchedulePublishPageUseCase/SchedulePublishPageUseCase.d.ts +11 -0
  39. package/features/SchedulePublishPageUseCase/SchedulePublishPageUseCase.js +31 -0
  40. package/features/SchedulePublishPageUseCase/SchedulePublishPageUseCase.js.map +1 -0
  41. package/features/SchedulePublishPageUseCase/abstractions.d.ts +21 -0
  42. package/features/SchedulePublishPageUseCase/abstractions.js +5 -0
  43. package/features/SchedulePublishPageUseCase/abstractions.js.map +1 -0
  44. package/features/SchedulePublishRedirectUseCase/SchedulePublishRedirectUseCase.d.ts +11 -0
  45. package/features/SchedulePublishRedirectUseCase/SchedulePublishRedirectUseCase.js +31 -0
  46. package/features/SchedulePublishRedirectUseCase/SchedulePublishRedirectUseCase.js.map +1 -0
  47. package/features/SchedulePublishRedirectUseCase/abstractions.d.ts +21 -0
  48. package/features/SchedulePublishRedirectUseCase/abstractions.js +5 -0
  49. package/features/SchedulePublishRedirectUseCase/abstractions.js.map +1 -0
  50. package/features/ScheduleUnpublishPageUseCase/ScheduleUnpublishPageUseCase.d.ts +11 -0
  51. package/features/ScheduleUnpublishPageUseCase/ScheduleUnpublishPageUseCase.js +31 -0
  52. package/features/ScheduleUnpublishPageUseCase/ScheduleUnpublishPageUseCase.js.map +1 -0
  53. package/features/ScheduleUnpublishPageUseCase/abstractions.d.ts +21 -0
  54. package/features/ScheduleUnpublishPageUseCase/abstractions.js +5 -0
  55. package/features/ScheduleUnpublishPageUseCase/abstractions.js.map +1 -0
  56. package/features/ScheduleUnpublishRedirectUseCase/ScheduleUnpublishRedirectUseCase.d.ts +11 -0
  57. package/features/ScheduleUnpublishRedirectUseCase/ScheduleUnpublishRedirectUseCase.js +31 -0
  58. package/features/ScheduleUnpublishRedirectUseCase/ScheduleUnpublishRedirectUseCase.js.map +1 -0
  59. package/features/ScheduleUnpublishRedirectUseCase/abstractions.d.ts +21 -0
  60. package/features/ScheduleUnpublishRedirectUseCase/abstractions.js +5 -0
  61. package/features/ScheduleUnpublishRedirectUseCase/abstractions.js.map +1 -0
  62. package/features/UnpublishActionHandler/UnpublishPageActionHandler.d.ts +17 -0
  63. package/features/UnpublishActionHandler/UnpublishPageActionHandler.js +30 -0
  64. package/features/UnpublishActionHandler/UnpublishPageActionHandler.js.map +1 -0
  65. package/features/UnpublishActionHandler/UnpublishRedirectActionHandler.d.ts +18 -0
  66. package/features/UnpublishActionHandler/UnpublishRedirectActionHandler.js +30 -0
  67. package/features/UnpublishActionHandler/UnpublishRedirectActionHandler.js.map +1 -0
  68. package/index.d.ts +2 -0
  69. package/index.js +7 -0
  70. package/index.js.map +1 -0
  71. package/package.json +47 -0
  72. package/types.d.ts +6 -0
  73. package/types.js +0 -0
  74. package/utils/namespace.d.ts +3 -0
  75. package/utils/namespace.js +11 -0
  76. package/utils/namespace.js.map +1 -0
@@ -0,0 +1,17 @@
1
+ import { ScheduledActionHandler, ScheduledActionType, type IScheduledAction } from "@webiny/api-scheduler/exports/api/scheduler.js";
2
+ import { UpdateRedirectUseCase } from "@webiny/api-website-builder/exports/api/website-builder/redirect.js";
3
+ import type { IScheduledActionPayload } from "../../types.js";
4
+ /**
5
+ * Handles the scheduled "publish" action for Website Builder redirects.
6
+ * Publishing a redirect means enabling it (isEnabled: true).
7
+ */
8
+ declare class PublishRedirectActionHandlerImpl implements ScheduledActionHandler.Interface {
9
+ private updateRedirectUseCase;
10
+ constructor(updateRedirectUseCase: UpdateRedirectUseCase.Interface);
11
+ canHandle(namespace: string, actionType: ScheduledActionType): boolean;
12
+ handle(action: IScheduledAction<IScheduledActionPayload>): Promise<void>;
13
+ }
14
+ export declare const PublishRedirectActionHandler: typeof PublishRedirectActionHandlerImpl & {
15
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-scheduler/shared/abstractions").IScheduledActionHandler>;
16
+ };
17
+ export {};
@@ -0,0 +1,30 @@
1
+ import { ScheduledActionHandler, ScheduledActionTypePublish } from "@webiny/api-scheduler/exports/api/scheduler.js";
2
+ import { UpdateRedirectUseCase } from "@webiny/api-website-builder/exports/api/website-builder/redirect.js";
3
+ import { extractModelIdFromNamespace } from "../../utils/namespace.js";
4
+ import { SCHEDULED_ACTION_TYPE_REDIRECT } from "../../constants.js";
5
+ class PublishRedirectActionHandlerImpl {
6
+ constructor(updateRedirectUseCase){
7
+ this.updateRedirectUseCase = updateRedirectUseCase;
8
+ }
9
+ canHandle(namespace, actionType) {
10
+ return extractModelIdFromNamespace(namespace) === SCHEDULED_ACTION_TYPE_REDIRECT && actionType === ScheduledActionTypePublish;
11
+ }
12
+ async handle(action) {
13
+ const result = await this.updateRedirectUseCase.execute(action.targetId, {
14
+ isEnabled: true
15
+ });
16
+ if (result.isFail()) {
17
+ console.error(`Failed to enable redirect "${action.targetId}":`, result.error);
18
+ throw new Error(`Failed to enable redirect: ${action.targetId}`);
19
+ }
20
+ }
21
+ }
22
+ const PublishRedirectActionHandler = ScheduledActionHandler.createImplementation({
23
+ implementation: PublishRedirectActionHandlerImpl,
24
+ dependencies: [
25
+ UpdateRedirectUseCase
26
+ ]
27
+ });
28
+ export { PublishRedirectActionHandler };
29
+
30
+ //# sourceMappingURL=PublishRedirectActionHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/PublishActionHandler/PublishRedirectActionHandler.js","sources":["../../../src/features/PublishActionHandler/PublishRedirectActionHandler.ts"],"sourcesContent":["import {\n ScheduledActionHandler,\n ScheduledActionType,\n type IScheduledAction,\n ScheduledActionTypePublish\n} from \"@webiny/api-scheduler/exports/api/scheduler.js\";\nimport { UpdateRedirectUseCase } from \"@webiny/api-website-builder/exports/api/website-builder/redirect.js\";\nimport type { IScheduledActionPayload } from \"~/types.js\";\nimport { extractModelIdFromNamespace } from \"~/utils/namespace.js\";\nimport { SCHEDULED_ACTION_TYPE_REDIRECT } from \"~/constants.js\";\n\n/**\n * Handles the scheduled \"publish\" action for Website Builder redirects.\n * Publishing a redirect means enabling it (isEnabled: true).\n */\nclass PublishRedirectActionHandlerImpl implements ScheduledActionHandler.Interface {\n constructor(private updateRedirectUseCase: UpdateRedirectUseCase.Interface) {}\n\n public canHandle(namespace: string, actionType: ScheduledActionType): boolean {\n return (\n extractModelIdFromNamespace(namespace) === SCHEDULED_ACTION_TYPE_REDIRECT &&\n actionType === ScheduledActionTypePublish\n );\n }\n\n public async handle(action: IScheduledAction<IScheduledActionPayload>): Promise<void> {\n const result = await this.updateRedirectUseCase.execute(action.targetId, {\n isEnabled: true\n });\n if (result.isFail()) {\n console.error(`Failed to enable redirect \"${action.targetId}\":`, result.error);\n throw new Error(`Failed to enable redirect: ${action.targetId}`);\n }\n }\n}\n\nexport const PublishRedirectActionHandler = ScheduledActionHandler.createImplementation({\n implementation: PublishRedirectActionHandlerImpl,\n dependencies: [UpdateRedirectUseCase]\n});\n"],"names":["PublishRedirectActionHandlerImpl","updateRedirectUseCase","namespace","actionType","extractModelIdFromNamespace","SCHEDULED_ACTION_TYPE_REDIRECT","ScheduledActionTypePublish","action","result","console","Error","PublishRedirectActionHandler","ScheduledActionHandler","UpdateRedirectUseCase"],"mappings":";;;;AAeA,MAAMA;IACF,YAAoBC,qBAAsD,CAAE;aAAxDA,qBAAqB,GAArBA;IAAyD;IAEtE,UAAUC,SAAiB,EAAEC,UAA+B,EAAW;QAC1E,OACIC,4BAA4BF,eAAeG,kCAC3CF,eAAeG;IAEvB;IAEA,MAAa,OAAOC,MAAiD,EAAiB;QAClF,MAAMC,SAAS,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAACD,OAAO,QAAQ,EAAE;YACrE,WAAW;QACf;QACA,IAAIC,OAAO,MAAM,IAAI;YACjBC,QAAQ,KAAK,CAAC,CAAC,2BAA2B,EAAEF,OAAO,QAAQ,CAAC,EAAE,CAAC,EAAEC,OAAO,KAAK;YAC7E,MAAM,IAAIE,MAAM,CAAC,2BAA2B,EAAEH,OAAO,QAAQ,EAAE;QACnE;IACJ;AACJ;AAEO,MAAMI,+BAA+BC,uBAAuB,oBAAoB,CAAC;IACpF,gBAAgBZ;IAChB,cAAc;QAACa;KAAsB;AACzC"}
@@ -0,0 +1,11 @@
1
+ import { SchedulePublishPageUseCase as UseCaseAbstraction } from "./abstractions.js";
2
+ import { ScheduleActionUseCase } from "@webiny/api-scheduler/exports/api/scheduler.js";
3
+ declare class SchedulePublishPageUseCaseImpl implements UseCaseAbstraction.Interface {
4
+ private scheduleAction;
5
+ constructor(scheduleAction: ScheduleActionUseCase.Interface);
6
+ execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Result;
7
+ }
8
+ export declare const SchedulePublishPageUseCase: typeof SchedulePublishPageUseCaseImpl & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").ISchedulePublishPageUseCase>;
10
+ };
11
+ export {};
@@ -0,0 +1,31 @@
1
+ import { SchedulePublishPageUseCase } from "./abstractions.js";
2
+ import { ScheduleActionUseCase, ScheduledActionTypePublish } from "@webiny/api-scheduler/exports/api/scheduler.js";
3
+ import { createNamespace } from "../../utils/namespace.js";
4
+ import { Result } from "@webiny/feature/exports/api.js";
5
+ import { SCHEDULED_ACTION_TYPE_PAGE } from "../../constants.js";
6
+ class SchedulePublishPageUseCaseImpl {
7
+ constructor(scheduleAction){
8
+ this.scheduleAction = scheduleAction;
9
+ }
10
+ async execute(params) {
11
+ const scheduleResult = await this.scheduleAction.execute({
12
+ namespace: createNamespace(SCHEDULED_ACTION_TYPE_PAGE),
13
+ actionType: ScheduledActionTypePublish,
14
+ scheduleFor: params.scheduleFor,
15
+ targetId: params.id
16
+ });
17
+ if (scheduleResult.isFail()) return Result.fail(scheduleResult.error);
18
+ return Result.ok({
19
+ scheduledAction: scheduleResult.value
20
+ });
21
+ }
22
+ }
23
+ const SchedulePublishPageUseCase_SchedulePublishPageUseCase = SchedulePublishPageUseCase.createImplementation({
24
+ implementation: SchedulePublishPageUseCaseImpl,
25
+ dependencies: [
26
+ ScheduleActionUseCase
27
+ ]
28
+ });
29
+ export { SchedulePublishPageUseCase_SchedulePublishPageUseCase as SchedulePublishPageUseCase };
30
+
31
+ //# sourceMappingURL=SchedulePublishPageUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/SchedulePublishPageUseCase/SchedulePublishPageUseCase.js","sources":["../../../src/features/SchedulePublishPageUseCase/SchedulePublishPageUseCase.ts"],"sourcesContent":["import { SchedulePublishPageUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport {\n ScheduleActionUseCase,\n ScheduledActionTypePublish\n} from \"@webiny/api-scheduler/exports/api/scheduler.js\";\nimport { createNamespace } from \"~/utils/namespace.js\";\nimport { Result } from \"@webiny/feature/exports/api.js\";\nimport { SCHEDULED_ACTION_TYPE_PAGE } from \"~/constants.js\";\n\nclass SchedulePublishPageUseCaseImpl implements UseCaseAbstraction.Interface {\n public constructor(private scheduleAction: ScheduleActionUseCase.Interface) {}\n\n public async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Result {\n const scheduleResult = await this.scheduleAction.execute({\n namespace: createNamespace(SCHEDULED_ACTION_TYPE_PAGE),\n actionType: ScheduledActionTypePublish,\n scheduleFor: params.scheduleFor,\n targetId: params.id\n });\n if (scheduleResult.isFail()) {\n return Result.fail(scheduleResult.error);\n }\n return Result.ok({ scheduledAction: scheduleResult.value });\n }\n}\n\nexport const SchedulePublishPageUseCase = UseCaseAbstraction.createImplementation({\n implementation: SchedulePublishPageUseCaseImpl,\n dependencies: [ScheduleActionUseCase]\n});\n"],"names":["SchedulePublishPageUseCaseImpl","scheduleAction","params","scheduleResult","createNamespace","SCHEDULED_ACTION_TYPE_PAGE","ScheduledActionTypePublish","Result","SchedulePublishPageUseCase","UseCaseAbstraction","ScheduleActionUseCase"],"mappings":";;;;;AASA,MAAMA;IACF,YAA2BC,cAA+C,CAAE;aAAjDA,cAAc,GAAdA;IAAkD;IAE7E,MAAa,QAAQC,MAAiC,EAA6B;QAC/E,MAAMC,iBAAiB,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YACrD,WAAWC,gBAAgBC;YAC3B,YAAYC;YACZ,aAAaJ,OAAO,WAAW;YAC/B,UAAUA,OAAO,EAAE;QACvB;QACA,IAAIC,eAAe,MAAM,IACrB,OAAOI,OAAO,IAAI,CAACJ,eAAe,KAAK;QAE3C,OAAOI,OAAO,EAAE,CAAC;YAAE,iBAAiBJ,eAAe,KAAK;QAAC;IAC7D;AACJ;AAEO,MAAMK,wDAA6BC,2BAAAA,oBAAuC,CAAC;IAC9E,gBAAgBT;IAChB,cAAc;QAACU;KAAsB;AACzC"}
@@ -0,0 +1,21 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import type { IScheduledAction, ScheduleActionError } from "@webiny/api-scheduler/exports/api/scheduler.js";
3
+ export interface ISchedulePublishPageUseCaseParams {
4
+ id: string;
5
+ scheduleFor: Date;
6
+ }
7
+ export interface ISchedulePublishPageUseCaseResult {
8
+ scheduledAction: IScheduledAction;
9
+ }
10
+ export type ISchedulePublishPageUseCaseResponse = Promise<Result<ISchedulePublishPageUseCaseResult, ScheduleActionError>>;
11
+ export interface ISchedulePublishPageUseCase {
12
+ execute(params: ISchedulePublishPageUseCaseParams): ISchedulePublishPageUseCaseResponse;
13
+ }
14
+ /** Schedule a page for future publishing. */
15
+ export declare const SchedulePublishPageUseCase: import("@webiny/di").Abstraction<ISchedulePublishPageUseCase>;
16
+ export declare namespace SchedulePublishPageUseCase {
17
+ type Interface = ISchedulePublishPageUseCase;
18
+ type Error = ScheduleActionError;
19
+ type Params = ISchedulePublishPageUseCaseParams;
20
+ type Result = ISchedulePublishPageUseCaseResponse;
21
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const SchedulePublishPageUseCase = createAbstraction("WbScheduler/SchedulePublishPageUseCase");
3
+ export { SchedulePublishPageUseCase };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/SchedulePublishPageUseCase/abstractions.js","sources":["../../../src/features/SchedulePublishPageUseCase/abstractions.ts"],"sourcesContent":["import { createAbstraction, Result } from \"@webiny/feature/api\";\nimport type {\n IScheduledAction,\n ScheduleActionError\n} from \"@webiny/api-scheduler/exports/api/scheduler.js\";\n\nexport interface ISchedulePublishPageUseCaseParams {\n id: string;\n scheduleFor: Date;\n}\n\nexport interface ISchedulePublishPageUseCaseResult {\n scheduledAction: IScheduledAction;\n}\n\nexport type ISchedulePublishPageUseCaseResponse = Promise<\n Result<ISchedulePublishPageUseCaseResult, ScheduleActionError>\n>;\n\nexport interface ISchedulePublishPageUseCase {\n execute(params: ISchedulePublishPageUseCaseParams): ISchedulePublishPageUseCaseResponse;\n}\n\n/** Schedule a page for future publishing. */\nexport const SchedulePublishPageUseCase = createAbstraction<ISchedulePublishPageUseCase>(\n \"WbScheduler/SchedulePublishPageUseCase\"\n);\n\nexport namespace SchedulePublishPageUseCase {\n export type Interface = ISchedulePublishPageUseCase;\n export type Error = ScheduleActionError;\n export type Params = ISchedulePublishPageUseCaseParams;\n export type Result = ISchedulePublishPageUseCaseResponse;\n}\n"],"names":["SchedulePublishPageUseCase","createAbstraction"],"mappings":";AAwBO,MAAMA,6BAA6BC,kBACtC"}
@@ -0,0 +1,11 @@
1
+ import { SchedulePublishRedirectUseCase as UseCaseAbstraction } from "./abstractions.js";
2
+ import { ScheduleActionUseCase } from "@webiny/api-scheduler/exports/api/scheduler.js";
3
+ declare class SchedulePublishRedirectUseCaseImpl implements UseCaseAbstraction.Interface {
4
+ private scheduleAction;
5
+ constructor(scheduleAction: ScheduleActionUseCase.Interface);
6
+ execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Result;
7
+ }
8
+ export declare const SchedulePublishRedirectUseCase: typeof SchedulePublishRedirectUseCaseImpl & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").ISchedulePublishRedirectUseCase>;
10
+ };
11
+ export {};
@@ -0,0 +1,31 @@
1
+ import { SchedulePublishRedirectUseCase } from "./abstractions.js";
2
+ import { ScheduleActionUseCase, ScheduledActionTypePublish } from "@webiny/api-scheduler/exports/api/scheduler.js";
3
+ import { createNamespace } from "../../utils/namespace.js";
4
+ import { Result } from "@webiny/feature/exports/api.js";
5
+ import { SCHEDULED_ACTION_TYPE_REDIRECT } from "../../constants.js";
6
+ class SchedulePublishRedirectUseCaseImpl {
7
+ constructor(scheduleAction){
8
+ this.scheduleAction = scheduleAction;
9
+ }
10
+ async execute(params) {
11
+ const scheduleResult = await this.scheduleAction.execute({
12
+ namespace: createNamespace(SCHEDULED_ACTION_TYPE_REDIRECT),
13
+ actionType: ScheduledActionTypePublish,
14
+ scheduleFor: params.scheduleFor,
15
+ targetId: params.id
16
+ });
17
+ if (scheduleResult.isFail()) return Result.fail(scheduleResult.error);
18
+ return Result.ok({
19
+ scheduledAction: scheduleResult.value
20
+ });
21
+ }
22
+ }
23
+ const SchedulePublishRedirectUseCase_SchedulePublishRedirectUseCase = SchedulePublishRedirectUseCase.createImplementation({
24
+ implementation: SchedulePublishRedirectUseCaseImpl,
25
+ dependencies: [
26
+ ScheduleActionUseCase
27
+ ]
28
+ });
29
+ export { SchedulePublishRedirectUseCase_SchedulePublishRedirectUseCase as SchedulePublishRedirectUseCase };
30
+
31
+ //# sourceMappingURL=SchedulePublishRedirectUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/SchedulePublishRedirectUseCase/SchedulePublishRedirectUseCase.js","sources":["../../../src/features/SchedulePublishRedirectUseCase/SchedulePublishRedirectUseCase.ts"],"sourcesContent":["import { SchedulePublishRedirectUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport {\n ScheduleActionUseCase,\n ScheduledActionTypePublish\n} from \"@webiny/api-scheduler/exports/api/scheduler.js\";\nimport { createNamespace } from \"~/utils/namespace.js\";\nimport { Result } from \"@webiny/feature/exports/api.js\";\nimport { SCHEDULED_ACTION_TYPE_REDIRECT } from \"~/constants.js\";\n\nclass SchedulePublishRedirectUseCaseImpl implements UseCaseAbstraction.Interface {\n public constructor(private scheduleAction: ScheduleActionUseCase.Interface) {}\n\n public async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Result {\n const scheduleResult = await this.scheduleAction.execute({\n namespace: createNamespace(SCHEDULED_ACTION_TYPE_REDIRECT),\n actionType: ScheduledActionTypePublish,\n scheduleFor: params.scheduleFor,\n targetId: params.id\n });\n if (scheduleResult.isFail()) {\n return Result.fail(scheduleResult.error);\n }\n return Result.ok({ scheduledAction: scheduleResult.value });\n }\n}\n\nexport const SchedulePublishRedirectUseCase = UseCaseAbstraction.createImplementation({\n implementation: SchedulePublishRedirectUseCaseImpl,\n dependencies: [ScheduleActionUseCase]\n});\n"],"names":["SchedulePublishRedirectUseCaseImpl","scheduleAction","params","scheduleResult","createNamespace","SCHEDULED_ACTION_TYPE_REDIRECT","ScheduledActionTypePublish","Result","SchedulePublishRedirectUseCase","UseCaseAbstraction","ScheduleActionUseCase"],"mappings":";;;;;AASA,MAAMA;IACF,YAA2BC,cAA+C,CAAE;aAAjDA,cAAc,GAAdA;IAAkD;IAE7E,MAAa,QAAQC,MAAiC,EAA6B;QAC/E,MAAMC,iBAAiB,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YACrD,WAAWC,gBAAgBC;YAC3B,YAAYC;YACZ,aAAaJ,OAAO,WAAW;YAC/B,UAAUA,OAAO,EAAE;QACvB;QACA,IAAIC,eAAe,MAAM,IACrB,OAAOI,OAAO,IAAI,CAACJ,eAAe,KAAK;QAE3C,OAAOI,OAAO,EAAE,CAAC;YAAE,iBAAiBJ,eAAe,KAAK;QAAC;IAC7D;AACJ;AAEO,MAAMK,gEAAiCC,+BAAAA,oBAAuC,CAAC;IAClF,gBAAgBT;IAChB,cAAc;QAACU;KAAsB;AACzC"}
@@ -0,0 +1,21 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import type { IScheduledAction, ScheduleActionError } from "@webiny/api-scheduler/exports/api/scheduler.js";
3
+ export interface ISchedulePublishRedirectUseCaseParams {
4
+ id: string;
5
+ scheduleFor: Date;
6
+ }
7
+ export interface ISchedulePublishRedirectUseCaseResult {
8
+ scheduledAction: IScheduledAction;
9
+ }
10
+ export type ISchedulePublishRedirectUseCaseResponse = Promise<Result<ISchedulePublishRedirectUseCaseResult, ScheduleActionError>>;
11
+ export interface ISchedulePublishRedirectUseCase {
12
+ execute(params: ISchedulePublishRedirectUseCaseParams): ISchedulePublishRedirectUseCaseResponse;
13
+ }
14
+ /** Schedule a redirect for future publishing. */
15
+ export declare const SchedulePublishRedirectUseCase: import("@webiny/di").Abstraction<ISchedulePublishRedirectUseCase>;
16
+ export declare namespace SchedulePublishRedirectUseCase {
17
+ type Interface = ISchedulePublishRedirectUseCase;
18
+ type Error = ScheduleActionError;
19
+ type Params = ISchedulePublishRedirectUseCaseParams;
20
+ type Result = ISchedulePublishRedirectUseCaseResponse;
21
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const SchedulePublishRedirectUseCase = createAbstraction("WbScheduler/SchedulePublishRedirectUseCase");
3
+ export { SchedulePublishRedirectUseCase };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/SchedulePublishRedirectUseCase/abstractions.js","sources":["../../../src/features/SchedulePublishRedirectUseCase/abstractions.ts"],"sourcesContent":["import { createAbstraction, Result } from \"@webiny/feature/api\";\nimport type {\n IScheduledAction,\n ScheduleActionError\n} from \"@webiny/api-scheduler/exports/api/scheduler.js\";\n\nexport interface ISchedulePublishRedirectUseCaseParams {\n id: string;\n scheduleFor: Date;\n}\n\nexport interface ISchedulePublishRedirectUseCaseResult {\n scheduledAction: IScheduledAction;\n}\n\nexport type ISchedulePublishRedirectUseCaseResponse = Promise<\n Result<ISchedulePublishRedirectUseCaseResult, ScheduleActionError>\n>;\n\nexport interface ISchedulePublishRedirectUseCase {\n execute(params: ISchedulePublishRedirectUseCaseParams): ISchedulePublishRedirectUseCaseResponse;\n}\n\n/** Schedule a redirect for future publishing. */\nexport const SchedulePublishRedirectUseCase = createAbstraction<ISchedulePublishRedirectUseCase>(\n \"WbScheduler/SchedulePublishRedirectUseCase\"\n);\n\nexport namespace SchedulePublishRedirectUseCase {\n export type Interface = ISchedulePublishRedirectUseCase;\n export type Error = ScheduleActionError;\n export type Params = ISchedulePublishRedirectUseCaseParams;\n export type Result = ISchedulePublishRedirectUseCaseResponse;\n}\n"],"names":["SchedulePublishRedirectUseCase","createAbstraction"],"mappings":";AAwBO,MAAMA,iCAAiCC,kBAC1C"}
@@ -0,0 +1,11 @@
1
+ import { ScheduleUnpublishPageUseCase as UseCaseAbstraction } from "./abstractions.js";
2
+ import { ScheduleActionUseCase } from "@webiny/api-scheduler/exports/api/scheduler.js";
3
+ declare class ScheduleUnpublishPageUseCaseImpl implements UseCaseAbstraction.Interface {
4
+ private scheduleAction;
5
+ constructor(scheduleAction: ScheduleActionUseCase.Interface);
6
+ execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Result;
7
+ }
8
+ export declare const ScheduleUnpublishPageUseCase: typeof ScheduleUnpublishPageUseCaseImpl & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IScheduleUnpublishPageUseCase>;
10
+ };
11
+ export {};
@@ -0,0 +1,31 @@
1
+ import { ScheduleUnpublishPageUseCase } from "./abstractions.js";
2
+ import { ScheduleActionUseCase, ScheduledActionTypeUnpublish } from "@webiny/api-scheduler/exports/api/scheduler.js";
3
+ import { createNamespace } from "../../utils/namespace.js";
4
+ import { Result } from "@webiny/feature/exports/api.js";
5
+ import { SCHEDULED_ACTION_TYPE_PAGE } from "../../constants.js";
6
+ class ScheduleUnpublishPageUseCaseImpl {
7
+ constructor(scheduleAction){
8
+ this.scheduleAction = scheduleAction;
9
+ }
10
+ async execute(params) {
11
+ const scheduleResult = await this.scheduleAction.execute({
12
+ namespace: createNamespace(SCHEDULED_ACTION_TYPE_PAGE),
13
+ actionType: ScheduledActionTypeUnpublish,
14
+ scheduleFor: params.scheduleFor,
15
+ targetId: params.id
16
+ });
17
+ if (scheduleResult.isFail()) return Result.fail(scheduleResult.error);
18
+ return Result.ok({
19
+ scheduledAction: scheduleResult.value
20
+ });
21
+ }
22
+ }
23
+ const ScheduleUnpublishPageUseCase_ScheduleUnpublishPageUseCase = ScheduleUnpublishPageUseCase.createImplementation({
24
+ implementation: ScheduleUnpublishPageUseCaseImpl,
25
+ dependencies: [
26
+ ScheduleActionUseCase
27
+ ]
28
+ });
29
+ export { ScheduleUnpublishPageUseCase_ScheduleUnpublishPageUseCase as ScheduleUnpublishPageUseCase };
30
+
31
+ //# sourceMappingURL=ScheduleUnpublishPageUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/ScheduleUnpublishPageUseCase/ScheduleUnpublishPageUseCase.js","sources":["../../../src/features/ScheduleUnpublishPageUseCase/ScheduleUnpublishPageUseCase.ts"],"sourcesContent":["import { ScheduleUnpublishPageUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport {\n ScheduleActionUseCase,\n ScheduledActionTypeUnpublish\n} from \"@webiny/api-scheduler/exports/api/scheduler.js\";\nimport { createNamespace } from \"~/utils/namespace.js\";\nimport { Result } from \"@webiny/feature/exports/api.js\";\nimport { SCHEDULED_ACTION_TYPE_PAGE } from \"~/constants.js\";\n\nclass ScheduleUnpublishPageUseCaseImpl implements UseCaseAbstraction.Interface {\n public constructor(private scheduleAction: ScheduleActionUseCase.Interface) {}\n\n public async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Result {\n const scheduleResult = await this.scheduleAction.execute({\n namespace: createNamespace(SCHEDULED_ACTION_TYPE_PAGE),\n actionType: ScheduledActionTypeUnpublish,\n scheduleFor: params.scheduleFor,\n targetId: params.id\n });\n if (scheduleResult.isFail()) {\n return Result.fail(scheduleResult.error);\n }\n return Result.ok({ scheduledAction: scheduleResult.value });\n }\n}\n\nexport const ScheduleUnpublishPageUseCase = UseCaseAbstraction.createImplementation({\n implementation: ScheduleUnpublishPageUseCaseImpl,\n dependencies: [ScheduleActionUseCase]\n});\n"],"names":["ScheduleUnpublishPageUseCaseImpl","scheduleAction","params","scheduleResult","createNamespace","SCHEDULED_ACTION_TYPE_PAGE","ScheduledActionTypeUnpublish","Result","ScheduleUnpublishPageUseCase","UseCaseAbstraction","ScheduleActionUseCase"],"mappings":";;;;;AASA,MAAMA;IACF,YAA2BC,cAA+C,CAAE;aAAjDA,cAAc,GAAdA;IAAkD;IAE7E,MAAa,QAAQC,MAAiC,EAA6B;QAC/E,MAAMC,iBAAiB,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YACrD,WAAWC,gBAAgBC;YAC3B,YAAYC;YACZ,aAAaJ,OAAO,WAAW;YAC/B,UAAUA,OAAO,EAAE;QACvB;QACA,IAAIC,eAAe,MAAM,IACrB,OAAOI,OAAO,IAAI,CAACJ,eAAe,KAAK;QAE3C,OAAOI,OAAO,EAAE,CAAC;YAAE,iBAAiBJ,eAAe,KAAK;QAAC;IAC7D;AACJ;AAEO,MAAMK,4DAA+BC,6BAAAA,oBAAuC,CAAC;IAChF,gBAAgBT;IAChB,cAAc;QAACU;KAAsB;AACzC"}
@@ -0,0 +1,21 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import type { IScheduledAction, ScheduleActionError } from "@webiny/api-scheduler/exports/api/scheduler.js";
3
+ export interface IScheduleUnpublishPageUseCaseParams {
4
+ id: string;
5
+ scheduleFor: Date;
6
+ }
7
+ export interface IScheduleUnpublishPageUseCaseResult {
8
+ scheduledAction: IScheduledAction;
9
+ }
10
+ export type IScheduleUnpublishPageUseCaseResponse = Promise<Result<IScheduleUnpublishPageUseCaseResult, ScheduleActionError>>;
11
+ export interface IScheduleUnpublishPageUseCase {
12
+ execute(params: IScheduleUnpublishPageUseCaseParams): IScheduleUnpublishPageUseCaseResponse;
13
+ }
14
+ /** Schedule a page for future unpublishing. */
15
+ export declare const ScheduleUnpublishPageUseCase: import("@webiny/di").Abstraction<IScheduleUnpublishPageUseCase>;
16
+ export declare namespace ScheduleUnpublishPageUseCase {
17
+ type Interface = IScheduleUnpublishPageUseCase;
18
+ type Error = ScheduleActionError;
19
+ type Params = IScheduleUnpublishPageUseCaseParams;
20
+ type Result = IScheduleUnpublishPageUseCaseResponse;
21
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const ScheduleUnpublishPageUseCase = createAbstraction("WbScheduler/ScheduleUnpublishPageUseCase");
3
+ export { ScheduleUnpublishPageUseCase };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/ScheduleUnpublishPageUseCase/abstractions.js","sources":["../../../src/features/ScheduleUnpublishPageUseCase/abstractions.ts"],"sourcesContent":["import { createAbstraction, Result } from \"@webiny/feature/api\";\nimport type {\n IScheduledAction,\n ScheduleActionError\n} from \"@webiny/api-scheduler/exports/api/scheduler.js\";\n\nexport interface IScheduleUnpublishPageUseCaseParams {\n id: string;\n scheduleFor: Date;\n}\n\nexport interface IScheduleUnpublishPageUseCaseResult {\n scheduledAction: IScheduledAction;\n}\n\nexport type IScheduleUnpublishPageUseCaseResponse = Promise<\n Result<IScheduleUnpublishPageUseCaseResult, ScheduleActionError>\n>;\n\nexport interface IScheduleUnpublishPageUseCase {\n execute(params: IScheduleUnpublishPageUseCaseParams): IScheduleUnpublishPageUseCaseResponse;\n}\n\n/** Schedule a page for future unpublishing. */\nexport const ScheduleUnpublishPageUseCase = createAbstraction<IScheduleUnpublishPageUseCase>(\n \"WbScheduler/ScheduleUnpublishPageUseCase\"\n);\n\nexport namespace ScheduleUnpublishPageUseCase {\n export type Interface = IScheduleUnpublishPageUseCase;\n export type Error = ScheduleActionError;\n export type Params = IScheduleUnpublishPageUseCaseParams;\n export type Result = IScheduleUnpublishPageUseCaseResponse;\n}\n"],"names":["ScheduleUnpublishPageUseCase","createAbstraction"],"mappings":";AAwBO,MAAMA,+BAA+BC,kBACxC"}
@@ -0,0 +1,11 @@
1
+ import { ScheduleUnpublishRedirectUseCase as UseCaseAbstraction } from "./abstractions.js";
2
+ import { ScheduleActionUseCase } from "@webiny/api-scheduler/exports/api/scheduler.js";
3
+ declare class ScheduleUnpublishRedirectUseCaseImpl implements UseCaseAbstraction.Interface {
4
+ private scheduleAction;
5
+ constructor(scheduleAction: ScheduleActionUseCase.Interface);
6
+ execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Result;
7
+ }
8
+ export declare const ScheduleUnpublishRedirectUseCase: typeof ScheduleUnpublishRedirectUseCaseImpl & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IScheduleUnpublishRedirectUseCase>;
10
+ };
11
+ export {};
@@ -0,0 +1,31 @@
1
+ import { ScheduleUnpublishRedirectUseCase } from "./abstractions.js";
2
+ import { ScheduleActionUseCase, ScheduledActionTypeUnpublish } from "@webiny/api-scheduler/exports/api/scheduler.js";
3
+ import { createNamespace } from "../../utils/namespace.js";
4
+ import { Result } from "@webiny/feature/exports/api.js";
5
+ import { SCHEDULED_ACTION_TYPE_REDIRECT } from "../../constants.js";
6
+ class ScheduleUnpublishRedirectUseCaseImpl {
7
+ constructor(scheduleAction){
8
+ this.scheduleAction = scheduleAction;
9
+ }
10
+ async execute(params) {
11
+ const scheduleResult = await this.scheduleAction.execute({
12
+ namespace: createNamespace(SCHEDULED_ACTION_TYPE_REDIRECT),
13
+ actionType: ScheduledActionTypeUnpublish,
14
+ scheduleFor: params.scheduleFor,
15
+ targetId: params.id
16
+ });
17
+ if (scheduleResult.isFail()) return Result.fail(scheduleResult.error);
18
+ return Result.ok({
19
+ scheduledAction: scheduleResult.value
20
+ });
21
+ }
22
+ }
23
+ const ScheduleUnpublishRedirectUseCase_ScheduleUnpublishRedirectUseCase = ScheduleUnpublishRedirectUseCase.createImplementation({
24
+ implementation: ScheduleUnpublishRedirectUseCaseImpl,
25
+ dependencies: [
26
+ ScheduleActionUseCase
27
+ ]
28
+ });
29
+ export { ScheduleUnpublishRedirectUseCase_ScheduleUnpublishRedirectUseCase as ScheduleUnpublishRedirectUseCase };
30
+
31
+ //# sourceMappingURL=ScheduleUnpublishRedirectUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/ScheduleUnpublishRedirectUseCase/ScheduleUnpublishRedirectUseCase.js","sources":["../../../src/features/ScheduleUnpublishRedirectUseCase/ScheduleUnpublishRedirectUseCase.ts"],"sourcesContent":["import { ScheduleUnpublishRedirectUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport {\n ScheduleActionUseCase,\n ScheduledActionTypeUnpublish\n} from \"@webiny/api-scheduler/exports/api/scheduler.js\";\nimport { createNamespace } from \"~/utils/namespace.js\";\nimport { Result } from \"@webiny/feature/exports/api.js\";\nimport { SCHEDULED_ACTION_TYPE_REDIRECT } from \"~/constants.js\";\n\nclass ScheduleUnpublishRedirectUseCaseImpl implements UseCaseAbstraction.Interface {\n public constructor(private scheduleAction: ScheduleActionUseCase.Interface) {}\n\n public async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Result {\n const scheduleResult = await this.scheduleAction.execute({\n namespace: createNamespace(SCHEDULED_ACTION_TYPE_REDIRECT),\n actionType: ScheduledActionTypeUnpublish,\n scheduleFor: params.scheduleFor,\n targetId: params.id\n });\n if (scheduleResult.isFail()) {\n return Result.fail(scheduleResult.error);\n }\n return Result.ok({ scheduledAction: scheduleResult.value });\n }\n}\n\nexport const ScheduleUnpublishRedirectUseCase = UseCaseAbstraction.createImplementation({\n implementation: ScheduleUnpublishRedirectUseCaseImpl,\n dependencies: [ScheduleActionUseCase]\n});\n"],"names":["ScheduleUnpublishRedirectUseCaseImpl","scheduleAction","params","scheduleResult","createNamespace","SCHEDULED_ACTION_TYPE_REDIRECT","ScheduledActionTypeUnpublish","Result","ScheduleUnpublishRedirectUseCase","UseCaseAbstraction","ScheduleActionUseCase"],"mappings":";;;;;AASA,MAAMA;IACF,YAA2BC,cAA+C,CAAE;aAAjDA,cAAc,GAAdA;IAAkD;IAE7E,MAAa,QAAQC,MAAiC,EAA6B;QAC/E,MAAMC,iBAAiB,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YACrD,WAAWC,gBAAgBC;YAC3B,YAAYC;YACZ,aAAaJ,OAAO,WAAW;YAC/B,UAAUA,OAAO,EAAE;QACvB;QACA,IAAIC,eAAe,MAAM,IACrB,OAAOI,OAAO,IAAI,CAACJ,eAAe,KAAK;QAE3C,OAAOI,OAAO,EAAE,CAAC;YAAE,iBAAiBJ,eAAe,KAAK;QAAC;IAC7D;AACJ;AAEO,MAAMK,oEAAmCC,iCAAAA,oBAAuC,CAAC;IACpF,gBAAgBT;IAChB,cAAc;QAACU;KAAsB;AACzC"}
@@ -0,0 +1,21 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import type { IScheduledAction, ScheduleActionError } from "@webiny/api-scheduler/exports/api/scheduler.js";
3
+ export interface IScheduleUnpublishRedirectUseCaseParams {
4
+ id: string;
5
+ scheduleFor: Date;
6
+ }
7
+ export interface IScheduleUnpublishRedirectUseCaseResult {
8
+ scheduledAction: IScheduledAction;
9
+ }
10
+ export type IScheduleUnpublishRedirectUseCaseResponse = Promise<Result<IScheduleUnpublishRedirectUseCaseResult, ScheduleActionError>>;
11
+ export interface IScheduleUnpublishRedirectUseCase {
12
+ execute(params: IScheduleUnpublishRedirectUseCaseParams): IScheduleUnpublishRedirectUseCaseResponse;
13
+ }
14
+ /** Schedule a redirect for future unpublishing. */
15
+ export declare const ScheduleUnpublishRedirectUseCase: import("@webiny/di").Abstraction<IScheduleUnpublishRedirectUseCase>;
16
+ export declare namespace ScheduleUnpublishRedirectUseCase {
17
+ type Interface = IScheduleUnpublishRedirectUseCase;
18
+ type Error = ScheduleActionError;
19
+ type Params = IScheduleUnpublishRedirectUseCaseParams;
20
+ type Result = IScheduleUnpublishRedirectUseCaseResponse;
21
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const ScheduleUnpublishRedirectUseCase = createAbstraction("WbScheduler/ScheduleUnpublishRedirectUseCase");
3
+ export { ScheduleUnpublishRedirectUseCase };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/ScheduleUnpublishRedirectUseCase/abstractions.js","sources":["../../../src/features/ScheduleUnpublishRedirectUseCase/abstractions.ts"],"sourcesContent":["import { createAbstraction, Result } from \"@webiny/feature/api\";\nimport type {\n IScheduledAction,\n ScheduleActionError\n} from \"@webiny/api-scheduler/exports/api/scheduler.js\";\n\nexport interface IScheduleUnpublishRedirectUseCaseParams {\n id: string;\n scheduleFor: Date;\n}\n\nexport interface IScheduleUnpublishRedirectUseCaseResult {\n scheduledAction: IScheduledAction;\n}\n\nexport type IScheduleUnpublishRedirectUseCaseResponse = Promise<\n Result<IScheduleUnpublishRedirectUseCaseResult, ScheduleActionError>\n>;\n\nexport interface IScheduleUnpublishRedirectUseCase {\n execute(\n params: IScheduleUnpublishRedirectUseCaseParams\n ): IScheduleUnpublishRedirectUseCaseResponse;\n}\n\n/** Schedule a redirect for future unpublishing. */\nexport const ScheduleUnpublishRedirectUseCase =\n createAbstraction<IScheduleUnpublishRedirectUseCase>(\n \"WbScheduler/ScheduleUnpublishRedirectUseCase\"\n );\n\nexport namespace ScheduleUnpublishRedirectUseCase {\n export type Interface = IScheduleUnpublishRedirectUseCase;\n export type Error = ScheduleActionError;\n export type Params = IScheduleUnpublishRedirectUseCaseParams;\n export type Result = IScheduleUnpublishRedirectUseCaseResponse;\n}\n"],"names":["ScheduleUnpublishRedirectUseCase","createAbstraction"],"mappings":";AA0BO,MAAMA,mCACTC,kBACI"}
@@ -0,0 +1,17 @@
1
+ import { type IScheduledAction, ScheduledActionHandler } from "@webiny/api-scheduler/exports/api/scheduler.js";
2
+ import { UnpublishPageUseCase } from "@webiny/api-website-builder/exports/api/website-builder/page.js";
3
+ import type { IScheduledActionPayload } from "../../types.js";
4
+ import type { ScheduledActionType } from "@webiny/api-scheduler/shared/abstractions.js";
5
+ /**
6
+ * Handles the scheduled "unpublish" action for Website Builder pages.
7
+ */
8
+ declare class UnpublishPageActionHandlerImpl implements ScheduledActionHandler.Interface {
9
+ private unpublishPageUseCase;
10
+ constructor(unpublishPageUseCase: UnpublishPageUseCase.Interface);
11
+ canHandle(namespace: string, actionType: ScheduledActionType): boolean;
12
+ handle(action: IScheduledAction<IScheduledActionPayload>): Promise<void>;
13
+ }
14
+ export declare const UnpublishPageActionHandler: typeof UnpublishPageActionHandlerImpl & {
15
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-scheduler/shared/abstractions.js").IScheduledActionHandler>;
16
+ };
17
+ export {};
@@ -0,0 +1,30 @@
1
+ import { ScheduledActionHandler, ScheduledActionTypeUnpublish } from "@webiny/api-scheduler/exports/api/scheduler.js";
2
+ import { UnpublishPageUseCase } from "@webiny/api-website-builder/exports/api/website-builder/page.js";
3
+ import { extractModelIdFromNamespace } from "../../utils/namespace.js";
4
+ import { SCHEDULED_ACTION_TYPE_PAGE } from "../../constants.js";
5
+ class UnpublishPageActionHandlerImpl {
6
+ constructor(unpublishPageUseCase){
7
+ this.unpublishPageUseCase = unpublishPageUseCase;
8
+ }
9
+ canHandle(namespace, actionType) {
10
+ return extractModelIdFromNamespace(namespace) === SCHEDULED_ACTION_TYPE_PAGE && actionType === ScheduledActionTypeUnpublish;
11
+ }
12
+ async handle(action) {
13
+ const result = await this.unpublishPageUseCase.execute({
14
+ id: action.targetId
15
+ });
16
+ if (result.isFail()) {
17
+ console.error(`Failed to unpublish page "${action.targetId}":`, result.error);
18
+ throw new Error(`Failed to unpublish page: ${action.targetId}`);
19
+ }
20
+ }
21
+ }
22
+ const UnpublishPageActionHandler = ScheduledActionHandler.createImplementation({
23
+ implementation: UnpublishPageActionHandlerImpl,
24
+ dependencies: [
25
+ UnpublishPageUseCase
26
+ ]
27
+ });
28
+ export { UnpublishPageActionHandler };
29
+
30
+ //# sourceMappingURL=UnpublishPageActionHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/UnpublishActionHandler/UnpublishPageActionHandler.js","sources":["../../../src/features/UnpublishActionHandler/UnpublishPageActionHandler.ts"],"sourcesContent":["import {\n type IScheduledAction,\n ScheduledActionHandler,\n ScheduledActionTypeUnpublish\n} from \"@webiny/api-scheduler/exports/api/scheduler.js\";\nimport { UnpublishPageUseCase } from \"@webiny/api-website-builder/exports/api/website-builder/page.js\";\nimport type { IScheduledActionPayload } from \"~/types.js\";\nimport { extractModelIdFromNamespace } from \"~/utils/namespace.js\";\nimport { SCHEDULED_ACTION_TYPE_PAGE } from \"~/constants.js\";\nimport type { ScheduledActionType } from \"@webiny/api-scheduler/shared/abstractions.js\";\n\n/**\n * Handles the scheduled \"unpublish\" action for Website Builder pages.\n */\nclass UnpublishPageActionHandlerImpl implements ScheduledActionHandler.Interface {\n constructor(private unpublishPageUseCase: UnpublishPageUseCase.Interface) {}\n\n canHandle(namespace: string, actionType: ScheduledActionType): boolean {\n return (\n extractModelIdFromNamespace(namespace) === SCHEDULED_ACTION_TYPE_PAGE &&\n actionType === ScheduledActionTypeUnpublish\n );\n }\n\n async handle(action: IScheduledAction<IScheduledActionPayload>): Promise<void> {\n const result = await this.unpublishPageUseCase.execute({ id: action.targetId });\n if (result.isFail()) {\n console.error(`Failed to unpublish page \"${action.targetId}\":`, result.error);\n throw new Error(`Failed to unpublish page: ${action.targetId}`);\n }\n }\n}\n\nexport const UnpublishPageActionHandler = ScheduledActionHandler.createImplementation({\n implementation: UnpublishPageActionHandlerImpl,\n dependencies: [UnpublishPageUseCase]\n});\n"],"names":["UnpublishPageActionHandlerImpl","unpublishPageUseCase","namespace","actionType","extractModelIdFromNamespace","SCHEDULED_ACTION_TYPE_PAGE","ScheduledActionTypeUnpublish","action","result","console","Error","UnpublishPageActionHandler","ScheduledActionHandler","UnpublishPageUseCase"],"mappings":";;;;AAcA,MAAMA;IACF,YAAoBC,oBAAoD,CAAE;aAAtDA,oBAAoB,GAApBA;IAAuD;IAE3E,UAAUC,SAAiB,EAAEC,UAA+B,EAAW;QACnE,OACIC,4BAA4BF,eAAeG,8BAC3CF,eAAeG;IAEvB;IAEA,MAAM,OAAOC,MAAiD,EAAiB;QAC3E,MAAMC,SAAS,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;YAAE,IAAID,OAAO,QAAQ;QAAC;QAC7E,IAAIC,OAAO,MAAM,IAAI;YACjBC,QAAQ,KAAK,CAAC,CAAC,0BAA0B,EAAEF,OAAO,QAAQ,CAAC,EAAE,CAAC,EAAEC,OAAO,KAAK;YAC5E,MAAM,IAAIE,MAAM,CAAC,0BAA0B,EAAEH,OAAO,QAAQ,EAAE;QAClE;IACJ;AACJ;AAEO,MAAMI,6BAA6BC,uBAAuB,oBAAoB,CAAC;IAClF,gBAAgBZ;IAChB,cAAc;QAACa;KAAqB;AACxC"}
@@ -0,0 +1,18 @@
1
+ import { type IScheduledAction, ScheduledActionHandler } from "@webiny/api-scheduler/exports/api/scheduler.js";
2
+ import { UpdateRedirectUseCase } from "@webiny/api-website-builder/exports/api/website-builder/redirect.js";
3
+ import type { IScheduledActionPayload } from "../../types.js";
4
+ import type { ScheduledActionType } from "@webiny/api-scheduler/shared/abstractions.js";
5
+ /**
6
+ * Handles the scheduled "unpublish" action for Website Builder redirects.
7
+ * Unpublishing a redirect means disabling it (isEnabled: false).
8
+ */
9
+ declare class UnpublishRedirectActionHandlerImpl implements ScheduledActionHandler.Interface {
10
+ private updateRedirectUseCase;
11
+ constructor(updateRedirectUseCase: UpdateRedirectUseCase.Interface);
12
+ canHandle(namespace: string, actionType: ScheduledActionType): boolean;
13
+ handle(action: IScheduledAction<IScheduledActionPayload>): Promise<void>;
14
+ }
15
+ export declare const UnpublishRedirectActionHandler: typeof UnpublishRedirectActionHandlerImpl & {
16
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-scheduler/shared/abstractions.js").IScheduledActionHandler>;
17
+ };
18
+ export {};
@@ -0,0 +1,30 @@
1
+ import { ScheduledActionHandler, ScheduledActionTypeUnpublish } from "@webiny/api-scheduler/exports/api/scheduler.js";
2
+ import { UpdateRedirectUseCase } from "@webiny/api-website-builder/exports/api/website-builder/redirect.js";
3
+ import { extractModelIdFromNamespace } from "../../utils/namespace.js";
4
+ import { SCHEDULED_ACTION_TYPE_REDIRECT } from "../../constants.js";
5
+ class UnpublishRedirectActionHandlerImpl {
6
+ constructor(updateRedirectUseCase){
7
+ this.updateRedirectUseCase = updateRedirectUseCase;
8
+ }
9
+ canHandle(namespace, actionType) {
10
+ return extractModelIdFromNamespace(namespace) === SCHEDULED_ACTION_TYPE_REDIRECT && actionType === ScheduledActionTypeUnpublish;
11
+ }
12
+ async handle(action) {
13
+ const result = await this.updateRedirectUseCase.execute(action.targetId, {
14
+ isEnabled: false
15
+ });
16
+ if (result.isFail()) {
17
+ console.error(`Failed to disable redirect "${action.targetId}":`, result.error);
18
+ throw new Error(`Failed to disable redirect: ${action.targetId}`);
19
+ }
20
+ }
21
+ }
22
+ const UnpublishRedirectActionHandler = ScheduledActionHandler.createImplementation({
23
+ implementation: UnpublishRedirectActionHandlerImpl,
24
+ dependencies: [
25
+ UpdateRedirectUseCase
26
+ ]
27
+ });
28
+ export { UnpublishRedirectActionHandler };
29
+
30
+ //# sourceMappingURL=UnpublishRedirectActionHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/UnpublishActionHandler/UnpublishRedirectActionHandler.js","sources":["../../../src/features/UnpublishActionHandler/UnpublishRedirectActionHandler.ts"],"sourcesContent":["import {\n type IScheduledAction,\n ScheduledActionHandler,\n ScheduledActionTypeUnpublish\n} from \"@webiny/api-scheduler/exports/api/scheduler.js\";\nimport { UpdateRedirectUseCase } from \"@webiny/api-website-builder/exports/api/website-builder/redirect.js\";\nimport type { IScheduledActionPayload } from \"~/types.js\";\nimport { extractModelIdFromNamespace } from \"~/utils/namespace.js\";\nimport { SCHEDULED_ACTION_TYPE_REDIRECT } from \"~/constants.js\";\nimport type { ScheduledActionType } from \"@webiny/api-scheduler/shared/abstractions.js\";\n\n/**\n * Handles the scheduled \"unpublish\" action for Website Builder redirects.\n * Unpublishing a redirect means disabling it (isEnabled: false).\n */\nclass UnpublishRedirectActionHandlerImpl implements ScheduledActionHandler.Interface {\n constructor(private updateRedirectUseCase: UpdateRedirectUseCase.Interface) {}\n\n canHandle(namespace: string, actionType: ScheduledActionType): boolean {\n return (\n extractModelIdFromNamespace(namespace) === SCHEDULED_ACTION_TYPE_REDIRECT &&\n actionType === ScheduledActionTypeUnpublish\n );\n }\n\n async handle(action: IScheduledAction<IScheduledActionPayload>): Promise<void> {\n const result = await this.updateRedirectUseCase.execute(action.targetId, {\n isEnabled: false\n });\n if (result.isFail()) {\n console.error(`Failed to disable redirect \"${action.targetId}\":`, result.error);\n throw new Error(`Failed to disable redirect: ${action.targetId}`);\n }\n }\n}\n\nexport const UnpublishRedirectActionHandler = ScheduledActionHandler.createImplementation({\n implementation: UnpublishRedirectActionHandlerImpl,\n dependencies: [UpdateRedirectUseCase]\n});\n"],"names":["UnpublishRedirectActionHandlerImpl","updateRedirectUseCase","namespace","actionType","extractModelIdFromNamespace","SCHEDULED_ACTION_TYPE_REDIRECT","ScheduledActionTypeUnpublish","action","result","console","Error","UnpublishRedirectActionHandler","ScheduledActionHandler","UpdateRedirectUseCase"],"mappings":";;;;AAeA,MAAMA;IACF,YAAoBC,qBAAsD,CAAE;aAAxDA,qBAAqB,GAArBA;IAAyD;IAE7E,UAAUC,SAAiB,EAAEC,UAA+B,EAAW;QACnE,OACIC,4BAA4BF,eAAeG,kCAC3CF,eAAeG;IAEvB;IAEA,MAAM,OAAOC,MAAiD,EAAiB;QAC3E,MAAMC,SAAS,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAACD,OAAO,QAAQ,EAAE;YACrE,WAAW;QACf;QACA,IAAIC,OAAO,MAAM,IAAI;YACjBC,QAAQ,KAAK,CAAC,CAAC,4BAA4B,EAAEF,OAAO,QAAQ,CAAC,EAAE,CAAC,EAAEC,OAAO,KAAK;YAC9E,MAAM,IAAIE,MAAM,CAAC,4BAA4B,EAAEH,OAAO,QAAQ,EAAE;QACpE;IACJ;AACJ;AAEO,MAAMI,iCAAiCC,uBAAuB,oBAAoB,CAAC;IACtF,gBAAgBZ;IAChB,cAAc;QAACa;KAAsB;AACzC"}
package/index.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ import { ContextPlugin } from "@webiny/api";
2
+ export declare const createWebsiteBuilderScheduler: () => ContextPlugin[];
package/index.js ADDED
@@ -0,0 +1,7 @@
1
+ import { createWebsiteBuilderScheduleContext } from "./context.js";
2
+ const createWebsiteBuilderScheduler = ()=>[
3
+ createWebsiteBuilderScheduleContext()
4
+ ];
5
+ export { createWebsiteBuilderScheduler };
6
+
7
+ //# sourceMappingURL=index.js.map
package/index.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import { createWebsiteBuilderScheduleContext } from \"~/context.js\";\nimport { ContextPlugin } from \"@webiny/api\";\n\nexport const createWebsiteBuilderScheduler = (): ContextPlugin[] => {\n return [createWebsiteBuilderScheduleContext()];\n};\n"],"names":["createWebsiteBuilderScheduler","createWebsiteBuilderScheduleContext"],"mappings":";AAGO,MAAMA,gCAAgC,IAClC;QAACC;KAAsC"}
package/package.json ADDED
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "@webiny/api-website-builder-scheduler",
3
+ "version": "0.0.0-unstable.7be00a75a9",
4
+ "type": "module",
5
+ "exports": {
6
+ ".": "./index.js",
7
+ "./*": "./*"
8
+ },
9
+ "description": "Schedule for Webiny Website Builder",
10
+ "keywords": [
11
+ "api-website-builder-scheduler:base"
12
+ ],
13
+ "repository": {
14
+ "type": "git",
15
+ "url": "https://github.com/webiny/webiny-js.git",
16
+ "directory": "packages/api-website-builder-scheduler"
17
+ },
18
+ "license": "MIT",
19
+ "dependencies": {
20
+ "@webiny/api": "0.0.0-unstable.7be00a75a9",
21
+ "@webiny/api-scheduler": "0.0.0-unstable.7be00a75a9",
22
+ "@webiny/api-website-builder": "0.0.0-unstable.7be00a75a9",
23
+ "@webiny/feature": "0.0.0-unstable.7be00a75a9",
24
+ "@webiny/handler-graphql": "0.0.0-unstable.7be00a75a9"
25
+ },
26
+ "devDependencies": {
27
+ "@webiny/api-core": "0.0.0-unstable.7be00a75a9",
28
+ "@webiny/api-headless-cms": "0.0.0-unstable.7be00a75a9",
29
+ "@webiny/aws-sdk": "0.0.0-unstable.7be00a75a9",
30
+ "@webiny/build-tools": "0.0.0-unstable.7be00a75a9",
31
+ "@webiny/handler": "0.0.0-unstable.7be00a75a9",
32
+ "@webiny/handler-aws": "0.0.0-unstable.7be00a75a9",
33
+ "@webiny/plugins": "0.0.0-unstable.7be00a75a9",
34
+ "@webiny/project-utils": "0.0.0-unstable.7be00a75a9",
35
+ "@webiny/tasks": "0.0.0-unstable.7be00a75a9",
36
+ "@webiny/wcp": "0.0.0-unstable.7be00a75a9",
37
+ "aws-sdk-client-mock": "4.1.0",
38
+ "typescript": "6.0.3",
39
+ "vitest": "4.1.7"
40
+ },
41
+ "publishConfig": {
42
+ "access": "public"
43
+ },
44
+ "webiny": {
45
+ "publishFrom": "dist"
46
+ }
47
+ }
package/types.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ import type { INamespaceHandlerResult } from "@webiny/api-scheduler/features/NamespaceHandler/abstractions.js";
2
+ import { SCHEDULED_ACTION_TYPE_PAGE, SCHEDULED_ACTION_TYPE_REDIRECT } from "./constants.js";
3
+ export type IScheduledActionPayloadType = typeof SCHEDULED_ACTION_TYPE_PAGE | typeof SCHEDULED_ACTION_TYPE_REDIRECT;
4
+ export interface IScheduledActionPayload extends INamespaceHandlerResult {
5
+ type: IScheduledActionPayloadType;
6
+ }
package/types.js ADDED
File without changes
@@ -0,0 +1,3 @@
1
+ import type { IScheduledActionPayloadType } from "../types.js";
2
+ export declare const createNamespace: (type: IScheduledActionPayloadType) => string;
3
+ export declare const extractModelIdFromNamespace: (namespace: string) => IScheduledActionPayloadType | null;