@webiny/api-website-builder-scheduler 6.3.0 → 6.4.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/constants.js +8 -4
  2. package/constants.js.map +1 -1
  3. package/context.js +14 -15
  4. package/context.js.map +1 -1
  5. package/exports/api/website-builder/scheduler.js +0 -2
  6. package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPageDeleteEventHandler.js +25 -33
  7. package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPageDeleteEventHandler.js.map +1 -1
  8. package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPagePublishEventHandler.js +25 -34
  9. package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPagePublishEventHandler.js.map +1 -1
  10. package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPageUnpublishEventHandler.js +25 -34
  11. package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPageUnpublishEventHandler.js.map +1 -1
  12. package/features/CancelScheduledActionOnChange/CancelScheduledActionOnRedirectDeleteEventHandler.js +24 -33
  13. package/features/CancelScheduledActionOnChange/CancelScheduledActionOnRedirectDeleteEventHandler.js.map +1 -1
  14. package/features/CancelScheduledActionOnChange/feature.js +9 -16
  15. package/features/CancelScheduledActionOnChange/feature.js.map +1 -1
  16. package/features/NamespaceHandler/PageNamespaceHandler.js +29 -28
  17. package/features/NamespaceHandler/PageNamespaceHandler.js.map +1 -1
  18. package/features/NamespaceHandler/RedirectNamespaceHandler.js +29 -28
  19. package/features/NamespaceHandler/RedirectNamespaceHandler.js.map +1 -1
  20. package/features/PublishActionHandler/PublishPageActionHandler.js +20 -21
  21. package/features/PublishActionHandler/PublishPageActionHandler.js.map +1 -1
  22. package/features/PublishActionHandler/PublishRedirectActionHandler.js +20 -22
  23. package/features/PublishActionHandler/PublishRedirectActionHandler.js.map +1 -1
  24. package/features/SchedulePublishPageUseCase/SchedulePublishPageUseCase.js +21 -20
  25. package/features/SchedulePublishPageUseCase/SchedulePublishPageUseCase.js.map +1 -1
  26. package/features/SchedulePublishPageUseCase/abstractions.js +3 -3
  27. package/features/SchedulePublishPageUseCase/abstractions.js.map +1 -1
  28. package/features/SchedulePublishRedirectUseCase/SchedulePublishRedirectUseCase.js +21 -20
  29. package/features/SchedulePublishRedirectUseCase/SchedulePublishRedirectUseCase.js.map +1 -1
  30. package/features/SchedulePublishRedirectUseCase/abstractions.js +3 -3
  31. package/features/SchedulePublishRedirectUseCase/abstractions.js.map +1 -1
  32. package/features/ScheduleUnpublishPageUseCase/ScheduleUnpublishPageUseCase.js +21 -20
  33. package/features/ScheduleUnpublishPageUseCase/ScheduleUnpublishPageUseCase.js.map +1 -1
  34. package/features/ScheduleUnpublishPageUseCase/abstractions.js +3 -3
  35. package/features/ScheduleUnpublishPageUseCase/abstractions.js.map +1 -1
  36. package/features/ScheduleUnpublishRedirectUseCase/ScheduleUnpublishRedirectUseCase.js +21 -20
  37. package/features/ScheduleUnpublishRedirectUseCase/ScheduleUnpublishRedirectUseCase.js.map +1 -1
  38. package/features/ScheduleUnpublishRedirectUseCase/abstractions.js +3 -3
  39. package/features/ScheduleUnpublishRedirectUseCase/abstractions.js.map +1 -1
  40. package/features/UnpublishActionHandler/UnpublishPageActionHandler.js +20 -20
  41. package/features/UnpublishActionHandler/UnpublishPageActionHandler.js.map +1 -1
  42. package/features/UnpublishActionHandler/UnpublishRedirectActionHandler.js +20 -21
  43. package/features/UnpublishActionHandler/UnpublishRedirectActionHandler.js.map +1 -1
  44. package/index.js +4 -3
  45. package/index.js.map +1 -1
  46. package/package.json +18 -18
  47. package/types.js +0 -3
  48. package/utils/namespace.js +7 -12
  49. package/utils/namespace.js.map +1 -1
  50. package/exports/api/website-builder/scheduler.js.map +0 -1
  51. package/types.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","Result","ScheduleUnpublishRedirectUseCase"],"sources":["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"],"mappings":"AAAA,SAASA,iBAAiB,EAAEC,MAAM,QAAQ,qBAAqB;AAyB/D;AACA,OAAO,MAAMC,gCAAgC,GACzCF,iBAAiB,CACb,8CACJ,CAAC","ignoreList":[]}
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"}
@@ -2,29 +2,29 @@ import { ScheduledActionHandler, ScheduledActionTypeUnpublish } from "@webiny/ap
2
2
  import { UnpublishPageUseCase } from "@webiny/api-website-builder/exports/api/website-builder/page.js";
3
3
  import { extractModelIdFromNamespace } from "../../utils/namespace.js";
4
4
  import { SCHEDULED_ACTION_TYPE_PAGE } from "../../constants.js";
5
- /**
6
- * Handles the scheduled "unpublish" action for Website Builder pages.
7
- */
8
5
  class UnpublishPageActionHandlerImpl {
9
- constructor(unpublishPageUseCase) {
10
- this.unpublishPageUseCase = unpublishPageUseCase;
11
- }
12
- canHandle(namespace, actionType) {
13
- return extractModelIdFromNamespace(namespace) === SCHEDULED_ACTION_TYPE_PAGE && actionType === ScheduledActionTypeUnpublish;
14
- }
15
- async handle(action) {
16
- const result = await this.unpublishPageUseCase.execute({
17
- id: action.targetId
18
- });
19
- if (result.isFail()) {
20
- console.error(`Failed to unpublish page "${action.targetId}":`, result.error);
21
- throw new Error(`Failed to unpublish page: ${action.targetId}`);
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
+ }
22
20
  }
23
- }
24
21
  }
25
- export const UnpublishPageActionHandler = ScheduledActionHandler.createImplementation({
26
- implementation: UnpublishPageActionHandlerImpl,
27
- dependencies: [UnpublishPageUseCase]
22
+ const UnpublishPageActionHandler = ScheduledActionHandler.createImplementation({
23
+ implementation: UnpublishPageActionHandlerImpl,
24
+ dependencies: [
25
+ UnpublishPageUseCase
26
+ ]
28
27
  });
28
+ export { UnpublishPageActionHandler };
29
29
 
30
30
  //# sourceMappingURL=UnpublishPageActionHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ScheduledActionHandler","ScheduledActionTypeUnpublish","UnpublishPageUseCase","extractModelIdFromNamespace","SCHEDULED_ACTION_TYPE_PAGE","UnpublishPageActionHandlerImpl","constructor","unpublishPageUseCase","canHandle","namespace","actionType","handle","action","result","execute","id","targetId","isFail","console","error","Error","UnpublishPageActionHandler","createImplementation","implementation","dependencies"],"sources":["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"],"mappings":"AAAA,SAEIA,sBAAsB,EACtBC,4BAA4B,QACzB,gDAAgD;AACvD,SAASC,oBAAoB,QAAQ,iEAAiE;AAEtG,SAASC,2BAA2B;AACpC,SAASC,0BAA0B;AAGnC;AACA;AACA;AACA,MAAMC,8BAA8B,CAA6C;EAC7EC,WAAWA,CAASC,oBAAoD,EAAE;IAAA,KAAtDA,oBAAoD,GAApDA,oBAAoD;EAAG;EAE3EC,SAASA,CAACC,SAAiB,EAAEC,UAA+B,EAAW;IACnE,OACIP,2BAA2B,CAACM,SAAS,CAAC,KAAKL,0BAA0B,IACrEM,UAAU,KAAKT,4BAA4B;EAEnD;EAEA,MAAMU,MAAMA,CAACC,MAAiD,EAAiB;IAC3E,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACN,oBAAoB,CAACO,OAAO,CAAC;MAAEC,EAAE,EAAEH,MAAM,CAACI;IAAS,CAAC,CAAC;IAC/E,IAAIH,MAAM,CAACI,MAAM,CAAC,CAAC,EAAE;MACjBC,OAAO,CAACC,KAAK,CAAC,6BAA6BP,MAAM,CAACI,QAAQ,IAAI,EAAEH,MAAM,CAACM,KAAK,CAAC;MAC7E,MAAM,IAAIC,KAAK,CAAC,6BAA6BR,MAAM,CAACI,QAAQ,EAAE,CAAC;IACnE;EACJ;AACJ;AAEA,OAAO,MAAMK,0BAA0B,GAAGrB,sBAAsB,CAACsB,oBAAoB,CAAC;EAClFC,cAAc,EAAElB,8BAA8B;EAC9CmB,YAAY,EAAE,CAACtB,oBAAoB;AACvC,CAAC,CAAC","ignoreList":[]}
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"}
@@ -2,30 +2,29 @@ import { ScheduledActionHandler, ScheduledActionTypeUnpublish } from "@webiny/ap
2
2
  import { UpdateRedirectUseCase } from "@webiny/api-website-builder/exports/api/website-builder/redirect.js";
3
3
  import { extractModelIdFromNamespace } from "../../utils/namespace.js";
4
4
  import { SCHEDULED_ACTION_TYPE_REDIRECT } from "../../constants.js";
5
- /**
6
- * Handles the scheduled "unpublish" action for Website Builder redirects.
7
- * Unpublishing a redirect means disabling it (isEnabled: false).
8
- */
9
5
  class UnpublishRedirectActionHandlerImpl {
10
- constructor(updateRedirectUseCase) {
11
- this.updateRedirectUseCase = updateRedirectUseCase;
12
- }
13
- canHandle(namespace, actionType) {
14
- return extractModelIdFromNamespace(namespace) === SCHEDULED_ACTION_TYPE_REDIRECT && actionType === ScheduledActionTypeUnpublish;
15
- }
16
- async handle(action) {
17
- const result = await this.updateRedirectUseCase.execute(action.targetId, {
18
- isEnabled: false
19
- });
20
- if (result.isFail()) {
21
- console.error(`Failed to disable redirect "${action.targetId}":`, result.error);
22
- throw new Error(`Failed to disable redirect: ${action.targetId}`);
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
+ }
23
20
  }
24
- }
25
21
  }
26
- export const UnpublishRedirectActionHandler = ScheduledActionHandler.createImplementation({
27
- implementation: UnpublishRedirectActionHandlerImpl,
28
- dependencies: [UpdateRedirectUseCase]
22
+ const UnpublishRedirectActionHandler = ScheduledActionHandler.createImplementation({
23
+ implementation: UnpublishRedirectActionHandlerImpl,
24
+ dependencies: [
25
+ UpdateRedirectUseCase
26
+ ]
29
27
  });
28
+ export { UnpublishRedirectActionHandler };
30
29
 
31
30
  //# sourceMappingURL=UnpublishRedirectActionHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ScheduledActionHandler","ScheduledActionTypeUnpublish","UpdateRedirectUseCase","extractModelIdFromNamespace","SCHEDULED_ACTION_TYPE_REDIRECT","UnpublishRedirectActionHandlerImpl","constructor","updateRedirectUseCase","canHandle","namespace","actionType","handle","action","result","execute","targetId","isEnabled","isFail","console","error","Error","UnpublishRedirectActionHandler","createImplementation","implementation","dependencies"],"sources":["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"],"mappings":"AAAA,SAEIA,sBAAsB,EACtBC,4BAA4B,QACzB,gDAAgD;AACvD,SAASC,qBAAqB,QAAQ,qEAAqE;AAE3G,SAASC,2BAA2B;AACpC,SAASC,8BAA8B;AAGvC;AACA;AACA;AACA;AACA,MAAMC,kCAAkC,CAA6C;EACjFC,WAAWA,CAASC,qBAAsD,EAAE;IAAA,KAAxDA,qBAAsD,GAAtDA,qBAAsD;EAAG;EAE7EC,SAASA,CAACC,SAAiB,EAAEC,UAA+B,EAAW;IACnE,OACIP,2BAA2B,CAACM,SAAS,CAAC,KAAKL,8BAA8B,IACzEM,UAAU,KAAKT,4BAA4B;EAEnD;EAEA,MAAMU,MAAMA,CAACC,MAAiD,EAAiB;IAC3E,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACN,qBAAqB,CAACO,OAAO,CAACF,MAAM,CAACG,QAAQ,EAAE;MACrEC,SAAS,EAAE;IACf,CAAC,CAAC;IACF,IAAIH,MAAM,CAACI,MAAM,CAAC,CAAC,EAAE;MACjBC,OAAO,CAACC,KAAK,CAAC,+BAA+BP,MAAM,CAACG,QAAQ,IAAI,EAAEF,MAAM,CAACM,KAAK,CAAC;MAC/E,MAAM,IAAIC,KAAK,CAAC,+BAA+BR,MAAM,CAACG,QAAQ,EAAE,CAAC;IACrE;EACJ;AACJ;AAEA,OAAO,MAAMM,8BAA8B,GAAGrB,sBAAsB,CAACsB,oBAAoB,CAAC;EACtFC,cAAc,EAAElB,kCAAkC;EAClDmB,YAAY,EAAE,CAACtB,qBAAqB;AACxC,CAAC,CAAC","ignoreList":[]}
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.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { createWebsiteBuilderScheduleContext } from "./context.js";
2
- export const createWebsiteBuilderScheduler = () => {
3
- return [createWebsiteBuilderScheduleContext()];
4
- };
2
+ const createWebsiteBuilderScheduler = ()=>[
3
+ createWebsiteBuilderScheduleContext()
4
+ ];
5
+ export { createWebsiteBuilderScheduler };
5
6
 
6
7
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["createWebsiteBuilderScheduleContext","createWebsiteBuilderScheduler"],"sources":["index.ts"],"sourcesContent":["import { createWebsiteBuilderScheduleContext } from \"~/context.js\";\nimport { ContextPlugin } from \"@webiny/api\";\n\nexport const createWebsiteBuilderScheduler = (): ContextPlugin[] => {\n return [createWebsiteBuilderScheduleContext()];\n};\n"],"mappings":"AAAA,SAASA,mCAAmC;AAG5C,OAAO,MAAMC,6BAA6B,GAAGA,CAAA,KAAuB;EAChE,OAAO,CAACD,mCAAmC,CAAC,CAAC,CAAC;AAClD,CAAC","ignoreList":[]}
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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-website-builder-scheduler",
3
- "version": "6.3.0",
3
+ "version": "6.4.0-beta.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./index.js",
@@ -17,30 +17,30 @@
17
17
  },
18
18
  "license": "MIT",
19
19
  "dependencies": {
20
- "@webiny/api": "6.3.0",
21
- "@webiny/api-scheduler": "6.3.0",
22
- "@webiny/api-website-builder": "6.3.0",
23
- "@webiny/feature": "6.3.0",
24
- "@webiny/handler-graphql": "6.3.0"
20
+ "@webiny/api": "6.4.0-beta.0",
21
+ "@webiny/api-scheduler": "6.4.0-beta.0",
22
+ "@webiny/api-website-builder": "6.4.0-beta.0",
23
+ "@webiny/feature": "6.4.0-beta.0",
24
+ "@webiny/handler-graphql": "6.4.0-beta.0"
25
25
  },
26
26
  "devDependencies": {
27
- "@webiny/api-core": "6.3.0",
28
- "@webiny/api-headless-cms": "6.3.0",
29
- "@webiny/aws-sdk": "6.3.0",
30
- "@webiny/build-tools": "6.3.0",
31
- "@webiny/handler": "6.3.0",
32
- "@webiny/handler-aws": "6.3.0",
33
- "@webiny/plugins": "6.3.0",
34
- "@webiny/project-utils": "6.3.0",
35
- "@webiny/tasks": "6.3.0",
36
- "@webiny/wcp": "6.3.0",
27
+ "@webiny/api-core": "6.4.0-beta.0",
28
+ "@webiny/api-headless-cms": "6.4.0-beta.0",
29
+ "@webiny/aws-sdk": "6.4.0-beta.0",
30
+ "@webiny/build-tools": "6.4.0-beta.0",
31
+ "@webiny/handler": "6.4.0-beta.0",
32
+ "@webiny/handler-aws": "6.4.0-beta.0",
33
+ "@webiny/plugins": "6.4.0-beta.0",
34
+ "@webiny/project-utils": "6.4.0-beta.0",
35
+ "@webiny/tasks": "6.4.0-beta.0",
36
+ "@webiny/wcp": "6.4.0-beta.0",
37
37
  "aws-sdk-client-mock": "4.1.0",
38
38
  "typescript": "6.0.3",
39
- "vitest": "4.1.5"
39
+ "vitest": "4.1.6"
40
40
  },
41
41
  "publishConfig": {
42
42
  "access": "public",
43
43
  "directory": "dist"
44
44
  },
45
- "gitHead": "7cefe15431dbd65504e1f58147dc9e55bcbfa693"
45
+ "gitHead": "a545d7529828af07d08d49c3da1bcb967483b9ce"
46
46
  }
package/types.js CHANGED
@@ -1,3 +0,0 @@
1
- export {};
2
-
3
- //# sourceMappingURL=types.js.map
@@ -1,16 +1,11 @@
1
1
  import { SCHEDULED_ACTION_TYPES, WEBSITE_BUILDER_NAMESPACE } from "../constants.js";
2
- export const createNamespace = type => {
3
- return `${WEBSITE_BUILDER_NAMESPACE}${type}`;
4
- };
5
- export const extractModelIdFromNamespace = namespace => {
6
- if (!namespace.startsWith(WEBSITE_BUILDER_NAMESPACE)) {
7
- return null;
8
- }
9
- const value = namespace.substring(WEBSITE_BUILDER_NAMESPACE.length) || null;
10
- if (!value) {
11
- return null;
12
- }
13
- return SCHEDULED_ACTION_TYPES.includes(value) ? value : null;
2
+ const createNamespace = (type)=>`${WEBSITE_BUILDER_NAMESPACE}${type}`;
3
+ const extractModelIdFromNamespace = (namespace)=>{
4
+ if (!namespace.startsWith(WEBSITE_BUILDER_NAMESPACE)) return null;
5
+ const value = namespace.substring(WEBSITE_BUILDER_NAMESPACE.length) || null;
6
+ if (!value) return null;
7
+ return SCHEDULED_ACTION_TYPES.includes(value) ? value : null;
14
8
  };
9
+ export { createNamespace, extractModelIdFromNamespace };
15
10
 
16
11
  //# sourceMappingURL=namespace.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["SCHEDULED_ACTION_TYPES","WEBSITE_BUILDER_NAMESPACE","createNamespace","type","extractModelIdFromNamespace","namespace","startsWith","value","substring","length","includes"],"sources":["namespace.ts"],"sourcesContent":["import type { IScheduledActionPayloadType } from \"~/types.js\";\nimport { SCHEDULED_ACTION_TYPES, WEBSITE_BUILDER_NAMESPACE } from \"~/constants.js\";\n\nexport const createNamespace = (type: IScheduledActionPayloadType) => {\n return `${WEBSITE_BUILDER_NAMESPACE}${type}`;\n};\n\nexport const extractModelIdFromNamespace = (\n namespace: string\n): IScheduledActionPayloadType | null => {\n if (!namespace.startsWith(WEBSITE_BUILDER_NAMESPACE)) {\n return null;\n }\n const value = namespace.substring(WEBSITE_BUILDER_NAMESPACE.length) || null;\n if (!value) {\n return null;\n }\n return SCHEDULED_ACTION_TYPES.includes(value as IScheduledActionPayloadType)\n ? (value as IScheduledActionPayloadType)\n : null;\n};\n"],"mappings":"AACA,SAASA,sBAAsB,EAAEC,yBAAyB;AAE1D,OAAO,MAAMC,eAAe,GAAIC,IAAiC,IAAK;EAClE,OAAO,GAAGF,yBAAyB,GAAGE,IAAI,EAAE;AAChD,CAAC;AAED,OAAO,MAAMC,2BAA2B,GACpCC,SAAiB,IACoB;EACrC,IAAI,CAACA,SAAS,CAACC,UAAU,CAACL,yBAAyB,CAAC,EAAE;IAClD,OAAO,IAAI;EACf;EACA,MAAMM,KAAK,GAAGF,SAAS,CAACG,SAAS,CAACP,yBAAyB,CAACQ,MAAM,CAAC,IAAI,IAAI;EAC3E,IAAI,CAACF,KAAK,EAAE;IACR,OAAO,IAAI;EACf;EACA,OAAOP,sBAAsB,CAACU,QAAQ,CAACH,KAAoC,CAAC,GACrEA,KAAK,GACN,IAAI;AACd,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"utils/namespace.js","sources":["../../src/utils/namespace.ts"],"sourcesContent":["import type { IScheduledActionPayloadType } from \"~/types.js\";\nimport { SCHEDULED_ACTION_TYPES, WEBSITE_BUILDER_NAMESPACE } from \"~/constants.js\";\n\nexport const createNamespace = (type: IScheduledActionPayloadType) => {\n return `${WEBSITE_BUILDER_NAMESPACE}${type}`;\n};\n\nexport const extractModelIdFromNamespace = (\n namespace: string\n): IScheduledActionPayloadType | null => {\n if (!namespace.startsWith(WEBSITE_BUILDER_NAMESPACE)) {\n return null;\n }\n const value = namespace.substring(WEBSITE_BUILDER_NAMESPACE.length) || null;\n if (!value) {\n return null;\n }\n return SCHEDULED_ACTION_TYPES.includes(value as IScheduledActionPayloadType)\n ? (value as IScheduledActionPayloadType)\n : null;\n};\n"],"names":["createNamespace","type","WEBSITE_BUILDER_NAMESPACE","extractModelIdFromNamespace","namespace","value","SCHEDULED_ACTION_TYPES"],"mappings":";AAGO,MAAMA,kBAAkB,CAACC,OACrB,GAAGC,4BAA4BD,MAAM;AAGzC,MAAME,8BAA8B,CACvCC;IAEA,IAAI,CAACA,UAAU,UAAU,CAACF,4BACtB,OAAO;IAEX,MAAMG,QAAQD,UAAU,SAAS,CAACF,0BAA0B,MAAM,KAAK;IACvE,IAAI,CAACG,OACD,OAAO;IAEX,OAAOC,uBAAuB,QAAQ,CAACD,SAChCA,QACD;AACV"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["SchedulePublishPageUseCase","ScheduleUnpublishPageUseCase","SchedulePublishRedirectUseCase","ScheduleUnpublishRedirectUseCase"],"sources":["scheduler.ts"],"sourcesContent":["export { SchedulePublishPageUseCase } from \"~/features/SchedulePublishPageUseCase/abstractions.js\";\nexport { ScheduleUnpublishPageUseCase } from \"~/features/ScheduleUnpublishPageUseCase/abstractions.js\";\nexport { SchedulePublishRedirectUseCase } from \"~/features/SchedulePublishRedirectUseCase/abstractions.js\";\nexport { ScheduleUnpublishRedirectUseCase } from \"~/features/ScheduleUnpublishRedirectUseCase/abstractions.js\";\n"],"mappings":"AAAA,SAASA,0BAA0B;AACnC,SAASC,4BAA4B;AACrC,SAASC,8BAA8B;AACvC,SAASC,gCAAgC","ignoreList":[]}
package/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { INamespaceHandlerResult } from \"@webiny/api-scheduler/features/NamespaceHandler/abstractions.js\";\nimport { SCHEDULED_ACTION_TYPE_PAGE, SCHEDULED_ACTION_TYPE_REDIRECT } from \"~/constants.js\";\n\nexport type IScheduledActionPayloadType =\n | typeof SCHEDULED_ACTION_TYPE_PAGE\n | typeof SCHEDULED_ACTION_TYPE_REDIRECT;\n\nexport interface IScheduledActionPayload extends INamespaceHandlerResult {\n type: IScheduledActionPayloadType;\n}\n"],"mappings":"","ignoreList":[]}