@webiny/api-headless-cms-scheduler 0.0.0-unstable.6f45466a1d → 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 (89) hide show
  1. package/context.js +14 -9
  2. package/context.js.map +1 -1
  3. package/exports/api/cms/scheduler.d.ts +2 -0
  4. package/exports/api/cms/scheduler.js +2 -0
  5. package/features/CancelScheduledActionOnEntryChange/CancelScheduledActionOnEntryDeleteEventHandler.d.ts +4 -4
  6. package/features/CancelScheduledActionOnEntryChange/CancelScheduledActionOnEntryDeleteEventHandler.js +32 -43
  7. package/features/CancelScheduledActionOnEntryChange/CancelScheduledActionOnEntryDeleteEventHandler.js.map +1 -1
  8. package/features/CancelScheduledActionOnEntryChange/CancelScheduledActionOnPublishEventHandler.d.ts +4 -4
  9. package/features/CancelScheduledActionOnEntryChange/CancelScheduledActionOnPublishEventHandler.js +27 -40
  10. package/features/CancelScheduledActionOnEntryChange/CancelScheduledActionOnPublishEventHandler.js.map +1 -1
  11. package/features/CancelScheduledActionOnEntryChange/CancelScheduledActionOnRevisionDeleteEventHandler.d.ts +4 -4
  12. package/features/CancelScheduledActionOnEntryChange/CancelScheduledActionOnRevisionDeleteEventHandler.js +26 -39
  13. package/features/CancelScheduledActionOnEntryChange/CancelScheduledActionOnRevisionDeleteEventHandler.js.map +1 -1
  14. package/features/CancelScheduledActionOnEntryChange/CancelScheduledActionOnUnpublishEventHandler.d.ts +4 -4
  15. package/features/CancelScheduledActionOnEntryChange/CancelScheduledActionOnUnpublishEventHandler.js +27 -40
  16. package/features/CancelScheduledActionOnEntryChange/CancelScheduledActionOnUnpublishEventHandler.js.map +1 -1
  17. package/features/CancelScheduledActionOnEntryChange/feature.d.ts +4 -1
  18. package/features/CancelScheduledActionOnEntryChange/feature.js +9 -16
  19. package/features/CancelScheduledActionOnEntryChange/feature.js.map +1 -1
  20. package/features/NamespaceHandler/NamespaceHandler.d.ts +15 -0
  21. package/features/NamespaceHandler/NamespaceHandler.js +44 -0
  22. package/features/NamespaceHandler/NamespaceHandler.js.map +1 -0
  23. package/features/{ScheduleEntryAction/actionHandlers → PublishActionHandler}/PublishEntryActionHandler.d.ts +4 -4
  24. package/features/PublishActionHandler/PublishEntryActionHandler.js +92 -0
  25. package/features/PublishActionHandler/PublishEntryActionHandler.js.map +1 -0
  26. package/features/SchedulePublishEntryUseCase/SchedulePublishEntryUseCase.d.ts +15 -0
  27. package/features/SchedulePublishEntryUseCase/SchedulePublishEntryUseCase.js +46 -0
  28. package/features/SchedulePublishEntryUseCase/SchedulePublishEntryUseCase.js.map +1 -0
  29. package/features/SchedulePublishEntryUseCase/abstractions.d.ts +23 -0
  30. package/features/SchedulePublishEntryUseCase/abstractions.js +5 -0
  31. package/features/SchedulePublishEntryUseCase/abstractions.js.map +1 -0
  32. package/features/ScheduleUnpublishEntryUseCase/ScheduleUnpublishEntryUseCase.d.ts +15 -0
  33. package/features/ScheduleUnpublishEntryUseCase/ScheduleUnpublishEntryUseCase.js +46 -0
  34. package/features/ScheduleUnpublishEntryUseCase/ScheduleUnpublishEntryUseCase.js.map +1 -0
  35. package/features/ScheduleUnpublishEntryUseCase/abstractions.d.ts +23 -0
  36. package/features/ScheduleUnpublishEntryUseCase/abstractions.js +5 -0
  37. package/features/ScheduleUnpublishEntryUseCase/abstractions.js.map +1 -0
  38. package/features/{ScheduleEntryAction/actionHandlers → UnpublishActionHandler}/UnpublishEntryActionHandler.d.ts +6 -5
  39. package/features/UnpublishActionHandler/UnpublishEntryActionHandler.js +69 -0
  40. package/features/UnpublishActionHandler/UnpublishEntryActionHandler.js.map +1 -0
  41. package/index.d.ts +2 -6
  42. package/index.js +4 -9
  43. package/index.js.map +1 -1
  44. package/package.json +24 -22
  45. package/types.d.ts +4 -0
  46. package/types.js +0 -0
  47. package/utils/namespace.d.ts +4 -0
  48. package/utils/namespace.js +9 -0
  49. package/utils/namespace.js.map +1 -0
  50. package/features/CancelScheduledEntryAction/CancelScheduledEntryActionUseCase.d.ts +0 -15
  51. package/features/CancelScheduledEntryAction/CancelScheduledEntryActionUseCase.js +0 -25
  52. package/features/CancelScheduledEntryAction/CancelScheduledEntryActionUseCase.js.map +0 -1
  53. package/features/CancelScheduledEntryAction/abstractions.d.ts +0 -22
  54. package/features/CancelScheduledEntryAction/abstractions.js +0 -11
  55. package/features/CancelScheduledEntryAction/abstractions.js.map +0 -1
  56. package/features/CancelScheduledEntryAction/feature.d.ts +0 -6
  57. package/features/CancelScheduledEntryAction/feature.js +0 -16
  58. package/features/CancelScheduledEntryAction/feature.js.map +0 -1
  59. package/features/CancelScheduledEntryAction/index.d.ts +0 -1
  60. package/features/CancelScheduledEntryAction/index.js +0 -3
  61. package/features/CancelScheduledEntryAction/index.js.map +0 -1
  62. package/features/ScheduleEntryAction/ScheduleEntryActionUseCase.d.ts +0 -27
  63. package/features/ScheduleEntryAction/ScheduleEntryActionUseCase.js +0 -83
  64. package/features/ScheduleEntryAction/ScheduleEntryActionUseCase.js.map +0 -1
  65. package/features/ScheduleEntryAction/abstractions.d.ts +0 -45
  66. package/features/ScheduleEntryAction/abstractions.js +0 -15
  67. package/features/ScheduleEntryAction/abstractions.js.map +0 -1
  68. package/features/ScheduleEntryAction/actionHandlers/PublishEntryActionHandler.js +0 -109
  69. package/features/ScheduleEntryAction/actionHandlers/PublishEntryActionHandler.js.map +0 -1
  70. package/features/ScheduleEntryAction/actionHandlers/UnpublishEntryActionHandler.js +0 -92
  71. package/features/ScheduleEntryAction/actionHandlers/UnpublishEntryActionHandler.js.map +0 -1
  72. package/features/ScheduleEntryAction/feature.d.ts +0 -7
  73. package/features/ScheduleEntryAction/feature.js +0 -21
  74. package/features/ScheduleEntryAction/feature.js.map +0 -1
  75. package/features/ScheduleEntryAction/index.d.ts +0 -1
  76. package/features/ScheduleEntryAction/index.js +0 -3
  77. package/features/ScheduleEntryAction/index.js.map +0 -1
  78. package/graphql/ActionMapper.d.ts +0 -15
  79. package/graphql/ActionMapper.js +0 -18
  80. package/graphql/ActionMapper.js.map +0 -1
  81. package/graphql/dates.d.ts +0 -6
  82. package/graphql/dates.js +0 -9
  83. package/graphql/dates.js.map +0 -1
  84. package/graphql/index.d.ts +0 -3
  85. package/graphql/index.js +0 -246
  86. package/graphql/index.js.map +0 -1
  87. package/graphql/schema.d.ts +0 -162
  88. package/graphql/schema.js +0 -83
  89. package/graphql/schema.js.map +0 -1
@@ -1,92 +0,0 @@
1
- import { ScheduledActionHandler } from "@webiny/api-scheduler";
2
- import { GetModelUseCase } from "@webiny/api-headless-cms/features/contentModel/GetModel";
3
- import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById";
4
- import { GetPublishedEntriesByIdsUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetPublishedEntriesByIds";
5
- import { UnpublishEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/UnpublishEntry";
6
- /**
7
- * Handler for unpublishing CMS entries
8
- *
9
- * Handles the "Unpublish" action for CMS entries with namespace pattern: Cms/Entry/{modelId}
10
- *
11
- * Unpublishing logic:
12
- * 1. If entry is not published -> nothing to do (warn)
13
- * 2. If target entry is published (same revision) -> unpublish it
14
- * 3. If a different revision is published -> unpublish it anyway
15
- */
16
- class UnpublishEntryActionHandlerImpl {
17
- constructor(getModelUseCase, getEntryByIdUseCase, getPublishedEntriesByIdsUseCase, unpublishEntryUseCase) {
18
- this.getModelUseCase = getModelUseCase;
19
- this.getEntryByIdUseCase = getEntryByIdUseCase;
20
- this.getPublishedEntriesByIdsUseCase = getPublishedEntriesByIdsUseCase;
21
- this.unpublishEntryUseCase = unpublishEntryUseCase;
22
- }
23
- canHandle(namespace, actionType) {
24
- return namespace.startsWith("Cms/Entry/") && actionType === "Unpublish";
25
- }
26
- async handle(action) {
27
- const {
28
- payload
29
- } = action;
30
- const modelId = payload.modelId;
31
-
32
- // Fetch the model
33
- const modelResult = await this.getModelUseCase.execute(modelId);
34
- if (modelResult.isFail()) {
35
- console.error(`Failed to get model "${modelId}" for scheduled unpublish action:`, modelResult.error);
36
- throw new Error(`Model not found: ${modelId}`);
37
- }
38
- const model = modelResult.value;
39
-
40
- // Fetch the target entry
41
- const targetEntryResult = await this.getEntryByIdUseCase.execute(model, action.targetId);
42
- if (targetEntryResult.isFail()) {
43
- console.error(`Failed to get entry "${action.targetId}" for scheduled unpublish action:`, targetEntryResult.error);
44
- throw new Error(`Entry not found: ${action.targetId}`);
45
- }
46
- const targetEntry = targetEntryResult.value;
47
-
48
- // Get published entries
49
- const publishedEntriesResult = await this.getPublishedEntriesByIdsUseCase.execute(model, [targetEntry.id]);
50
- if (publishedEntriesResult.isFail()) {
51
- console.error(`Failed to get published entries for "${targetEntry.id}":`, publishedEntriesResult.error);
52
- throw new Error(`Failed to check published entries`);
53
- }
54
- const [publishedTargetEntry] = publishedEntriesResult.value;
55
-
56
- /**
57
- * Scenario 1: Entry is not published -> nothing to do
58
- */
59
- if (!publishedTargetEntry) {
60
- console.warn(`Entry "${action.targetId}" is not published, nothing to unpublish.`);
61
- return;
62
- }
63
-
64
- /**
65
- * Scenario 2: Target entry is published (same revision) -> unpublish it
66
- */
67
- if (publishedTargetEntry.id === action.targetId) {
68
- const unpublishResult = await this.unpublishEntryUseCase.execute(model, action.targetId);
69
- if (unpublishResult.isFail()) {
70
- console.error(`Failed to unpublish entry "${action.targetId}":`, unpublishResult.error);
71
- throw new Error(`Failed to unpublish entry: ${action.targetId}`);
72
- }
73
- return;
74
- }
75
-
76
- /**
77
- * Scenario 3: A different revision is published -> unpublish it anyway
78
- * TODO: Determine if we really want to unpublish an entry which does not match the target ID
79
- */
80
- const unpublishResult = await this.unpublishEntryUseCase.execute(model, publishedTargetEntry.id);
81
- if (unpublishResult.isFail()) {
82
- console.error(`Failed to unpublish published revision "${publishedTargetEntry.id}":`, unpublishResult.error);
83
- throw new Error(`Failed to unpublish entry: ${publishedTargetEntry.id}`);
84
- }
85
- }
86
- }
87
- export const UnpublishEntryActionHandler = ScheduledActionHandler.createImplementation({
88
- implementation: UnpublishEntryActionHandlerImpl,
89
- dependencies: [GetModelUseCase, GetEntryByIdUseCase, GetPublishedEntriesByIdsUseCase, UnpublishEntryUseCase]
90
- });
91
-
92
- //# sourceMappingURL=UnpublishEntryActionHandler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["ScheduledActionHandler","GetModelUseCase","GetEntryByIdUseCase","GetPublishedEntriesByIdsUseCase","UnpublishEntryUseCase","UnpublishEntryActionHandlerImpl","constructor","getModelUseCase","getEntryByIdUseCase","getPublishedEntriesByIdsUseCase","unpublishEntryUseCase","canHandle","namespace","actionType","startsWith","handle","action","payload","modelId","modelResult","execute","isFail","console","error","Error","model","value","targetEntryResult","targetId","targetEntry","publishedEntriesResult","id","publishedTargetEntry","warn","unpublishResult","UnpublishEntryActionHandler","createImplementation","implementation","dependencies"],"sources":["UnpublishEntryActionHandler.ts"],"sourcesContent":["import { ScheduledActionHandler } from \"@webiny/api-scheduler\";\nimport { GetModelUseCase } from \"@webiny/api-headless-cms/features/contentModel/GetModel\";\nimport { GetEntryByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntryById\";\nimport { GetPublishedEntriesByIdsUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetPublishedEntriesByIds\";\nimport { UnpublishEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/UnpublishEntry\";\nimport type { IScheduleActionWithPayload } from \"~/features/ScheduleEntryAction/index.js\";\n\n/**\n * Handler for unpublishing CMS entries\n *\n * Handles the \"Unpublish\" action for CMS entries with namespace pattern: Cms/Entry/{modelId}\n *\n * Unpublishing logic:\n * 1. If entry is not published -> nothing to do (warn)\n * 2. If target entry is published (same revision) -> unpublish it\n * 3. If a different revision is published -> unpublish it anyway\n */\nclass UnpublishEntryActionHandlerImpl implements ScheduledActionHandler.Interface {\n constructor(\n private getModelUseCase: GetModelUseCase.Interface,\n private getEntryByIdUseCase: GetEntryByIdUseCase.Interface,\n private getPublishedEntriesByIdsUseCase: GetPublishedEntriesByIdsUseCase.Interface,\n private unpublishEntryUseCase: UnpublishEntryUseCase.Interface\n ) {}\n\n canHandle(namespace: string, actionType: string): boolean {\n return namespace.startsWith(\"Cms/Entry/\") && actionType === \"Unpublish\";\n }\n\n async handle(action: IScheduleActionWithPayload): Promise<void> {\n const { payload } = action;\n\n const modelId = payload.modelId as string;\n\n // Fetch the model\n const modelResult = await this.getModelUseCase.execute(modelId);\n if (modelResult.isFail()) {\n console.error(\n `Failed to get model \"${modelId}\" for scheduled unpublish action:`,\n modelResult.error\n );\n throw new Error(`Model not found: ${modelId}`);\n }\n\n const model = modelResult.value;\n\n // Fetch the target entry\n const targetEntryResult =\n await this.getEntryByIdUseCase.execute<IScheduleActionWithPayload>(\n model,\n action.targetId\n );\n if (targetEntryResult.isFail()) {\n console.error(\n `Failed to get entry \"${action.targetId}\" for scheduled unpublish action:`,\n targetEntryResult.error\n );\n throw new Error(`Entry not found: ${action.targetId}`);\n }\n\n const targetEntry = targetEntryResult.value;\n\n // Get published entries\n const publishedEntriesResult =\n await this.getPublishedEntriesByIdsUseCase.execute<IScheduleActionWithPayload>(model, [\n targetEntry.id\n ]);\n\n if (publishedEntriesResult.isFail()) {\n console.error(\n `Failed to get published entries for \"${targetEntry.id}\":`,\n publishedEntriesResult.error\n );\n throw new Error(`Failed to check published entries`);\n }\n\n const [publishedTargetEntry] = publishedEntriesResult.value;\n\n /**\n * Scenario 1: Entry is not published -> nothing to do\n */\n if (!publishedTargetEntry) {\n console.warn(`Entry \"${action.targetId}\" is not published, nothing to unpublish.`);\n return;\n }\n\n /**\n * Scenario 2: Target entry is published (same revision) -> unpublish it\n */\n if (publishedTargetEntry.id === action.targetId) {\n const unpublishResult =\n await this.unpublishEntryUseCase.execute<IScheduleActionWithPayload>(\n model,\n action.targetId\n );\n if (unpublishResult.isFail()) {\n console.error(\n `Failed to unpublish entry \"${action.targetId}\":`,\n unpublishResult.error\n );\n throw new Error(`Failed to unpublish entry: ${action.targetId}`);\n }\n return;\n }\n\n /**\n * Scenario 3: A different revision is published -> unpublish it anyway\n * TODO: Determine if we really want to unpublish an entry which does not match the target ID\n */\n const unpublishResult =\n await this.unpublishEntryUseCase.execute<IScheduleActionWithPayload>(\n model,\n publishedTargetEntry.id\n );\n if (unpublishResult.isFail()) {\n console.error(\n `Failed to unpublish published revision \"${publishedTargetEntry.id}\":`,\n unpublishResult.error\n );\n throw new Error(`Failed to unpublish entry: ${publishedTargetEntry.id}`);\n }\n }\n}\n\nexport const UnpublishEntryActionHandler = ScheduledActionHandler.createImplementation({\n implementation: UnpublishEntryActionHandlerImpl,\n dependencies: [\n GetModelUseCase,\n GetEntryByIdUseCase,\n GetPublishedEntriesByIdsUseCase,\n UnpublishEntryUseCase\n ]\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1,7 +0,0 @@
1
- /**
2
- * ScheduleEntryAction Feature
3
- *
4
- * Provides the ability to schedule CMS entry actions (publish/unpublish).
5
- * Handles both immediate execution and future scheduling.
6
- */
7
- export declare const ScheduleEntryActionFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
@@ -1,21 +0,0 @@
1
- import { createFeature } from "@webiny/feature/api";
2
- import { ScheduleEntryActionUseCase } from "./ScheduleEntryActionUseCase.js";
3
- import { PublishEntryActionHandler } from "./actionHandlers/PublishEntryActionHandler.js";
4
- import { UnpublishEntryActionHandler } from "./actionHandlers/UnpublishEntryActionHandler.js";
5
-
6
- /**
7
- * ScheduleEntryAction Feature
8
- *
9
- * Provides the ability to schedule CMS entry actions (publish/unpublish).
10
- * Handles both immediate execution and future scheduling.
11
- */
12
- export const ScheduleEntryActionFeature = createFeature({
13
- name: "ScheduleEntryAction",
14
- register(container) {
15
- container.register(ScheduleEntryActionUseCase);
16
- container.register(PublishEntryActionHandler);
17
- container.register(UnpublishEntryActionHandler);
18
- }
19
- });
20
-
21
- //# sourceMappingURL=feature.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["createFeature","ScheduleEntryActionUseCase","PublishEntryActionHandler","UnpublishEntryActionHandler","ScheduleEntryActionFeature","name","register","container"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ScheduleEntryActionUseCase } from \"./ScheduleEntryActionUseCase.js\";\nimport { PublishEntryActionHandler } from \"./actionHandlers/PublishEntryActionHandler.js\";\nimport { UnpublishEntryActionHandler } from \"./actionHandlers/UnpublishEntryActionHandler.js\";\n\n/**\n * ScheduleEntryAction Feature\n *\n * Provides the ability to schedule CMS entry actions (publish/unpublish).\n * Handles both immediate execution and future scheduling.\n */\nexport const ScheduleEntryActionFeature = createFeature({\n name: \"ScheduleEntryAction\",\n register(container) {\n container.register(ScheduleEntryActionUseCase);\n container.register(PublishEntryActionHandler);\n container.register(UnpublishEntryActionHandler);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,0BAA0B;AACnC,SAASC,yBAAyB;AAClC,SAASC,2BAA2B;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,0BAA0B,GAAGJ,aAAa,CAAC;EACpDK,IAAI,EAAE,qBAAqB;EAC3BC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACL,0BAA0B,CAAC;IAC9CM,SAAS,CAACD,QAAQ,CAACJ,yBAAyB,CAAC;IAC7CK,SAAS,CAACD,QAAQ,CAACH,2BAA2B,CAAC;EACnD;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -1 +0,0 @@
1
- export * from "./abstractions.js";
@@ -1,3 +0,0 @@
1
- export * from "./abstractions.js";
2
-
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./abstractions.js\";\n"],"mappings":"AAAA","ignoreList":[]}
@@ -1,15 +0,0 @@
1
- import type { IScheduleActionWithPayload } from "../features/ScheduleEntryAction/index.js";
2
- export declare class ActionMapper {
3
- static fromScheduledAction(action: IScheduleActionWithPayload): {
4
- id: string;
5
- targetId: string;
6
- model: {
7
- modelId: string;
8
- };
9
- scheduledBy: import("@webiny/api-scheduler/shared/abstractions").Identity;
10
- publishOn: string | null;
11
- unpublishOn: string | null;
12
- type: string;
13
- title: string | undefined;
14
- };
15
- }
@@ -1,18 +0,0 @@
1
- export class ActionMapper {
2
- static fromScheduledAction(action) {
3
- return {
4
- id: action.id,
5
- targetId: action.targetId,
6
- model: {
7
- modelId: action.payload?.modelId
8
- },
9
- scheduledBy: action.scheduledBy,
10
- publishOn: action.actionType === "Publish" ? action.scheduledFor : null,
11
- unpublishOn: action.actionType === "Unpublish" ? action.scheduledFor : null,
12
- type: action.actionType.toLowerCase(),
13
- title: action.title
14
- };
15
- }
16
- }
17
-
18
- //# sourceMappingURL=ActionMapper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["ActionMapper","fromScheduledAction","action","id","targetId","model","modelId","payload","scheduledBy","publishOn","actionType","scheduledFor","unpublishOn","type","toLowerCase","title"],"sources":["ActionMapper.ts"],"sourcesContent":["import type { IScheduleActionWithPayload } from \"~/features/ScheduleEntryAction/index.js\";\n\nexport class ActionMapper {\n static fromScheduledAction(action: IScheduleActionWithPayload) {\n return {\n id: action.id,\n targetId: action.targetId,\n model: {\n modelId: action.payload?.modelId\n },\n scheduledBy: action.scheduledBy,\n publishOn: action.actionType === \"Publish\" ? action.scheduledFor : null,\n unpublishOn: action.actionType === \"Unpublish\" ? action.scheduledFor : null,\n type: action.actionType.toLowerCase(),\n title: action.title\n };\n }\n}\n"],"mappings":"AAEA,OAAO,MAAMA,YAAY,CAAC;EACtB,OAAOC,mBAAmBA,CAACC,MAAkC,EAAE;IAC3D,OAAO;MACHC,EAAE,EAAED,MAAM,CAACC,EAAE;MACbC,QAAQ,EAAEF,MAAM,CAACE,QAAQ;MACzBC,KAAK,EAAE;QACHC,OAAO,EAAEJ,MAAM,CAACK,OAAO,EAAED;MAC7B,CAAC;MACDE,WAAW,EAAEN,MAAM,CAACM,WAAW;MAC/BC,SAAS,EAAEP,MAAM,CAACQ,UAAU,KAAK,SAAS,GAAGR,MAAM,CAACS,YAAY,GAAG,IAAI;MACvEC,WAAW,EAAEV,MAAM,CAACQ,UAAU,KAAK,WAAW,GAAGR,MAAM,CAACS,YAAY,GAAG,IAAI;MAC3EE,IAAI,EAAEX,MAAM,CAACQ,UAAU,CAACI,WAAW,CAAC,CAAC;MACrCC,KAAK,EAAEb,MAAM,CAACa;IAClB,CAAC;EACL;AACJ","ignoreList":[]}
@@ -1,6 +0,0 @@
1
- export type DateISOString = `${number}-${number}-${number}T${number}:${number}:${number}.${number}Z`;
2
- /**
3
- * We can safely cast the result of `toISOString()` to `DateISOString` type,
4
- * We need this to ensure that no malformed date strings are used in the scheduler.
5
- */
6
- export declare const dateToISOString: (value: Date) => DateISOString;
package/graphql/dates.js DELETED
@@ -1,9 +0,0 @@
1
- /**
2
- * We can safely cast the result of `toISOString()` to `DateISOString` type,
3
- * We need this to ensure that no malformed date strings are used in the scheduler.
4
- */
5
- export const dateToISOString = value => {
6
- return value.toISOString();
7
- };
8
-
9
- //# sourceMappingURL=dates.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["dateToISOString","value","toISOString"],"sources":["dates.ts"],"sourcesContent":["export type DateISOString =\n `${number}-${number}-${number}T${number}:${number}:${number}.${number}Z`;\n\n/**\n * We can safely cast the result of `toISOString()` to `DateISOString` type,\n * We need this to ensure that no malformed date strings are used in the scheduler.\n */\nexport const dateToISOString = (value: Date): DateISOString => {\n return value.toISOString() as DateISOString;\n};\n"],"mappings":"AAGA;AACA;AACA;AACA;AACA,OAAO,MAAMA,eAAe,GAAIC,KAAW,IAAoB;EAC3D,OAAOA,KAAK,CAACC,WAAW,CAAC,CAAC;AAC9B,CAAC","ignoreList":[]}
@@ -1,3 +0,0 @@
1
- import { CmsGraphQLSchemaPlugin } from "@webiny/api-headless-cms/plugins/index.js";
2
- import type { CmsContext } from "@webiny/api-headless-cms/types/index.js";
3
- export declare const createSchedulerGraphQL: () => CmsGraphQLSchemaPlugin<CmsContext>;
package/graphql/index.js DELETED
@@ -1,246 +0,0 @@
1
- import { CmsGraphQLSchemaPlugin } from "@webiny/api-headless-cms/plugins/index.js";
2
- import { ErrorResponse, ListErrorResponse, ListResponse, Response } from "@webiny/handler-graphql";
3
- import { cancelScheduleSchema, createScheduleSchema, getScheduleSchema, listScheduleSchema, updateScheduleSchema } from "./schema.js";
4
- import { createZodError } from "@webiny/utils";
5
- import { ListScheduledActionsUseCase } from "@webiny/api-scheduler/features/ListScheduledActions";
6
- import { ScheduleEntryActionUseCase } from "../features/ScheduleEntryAction/index.js";
7
- import { CancelScheduledEntryActionUseCase } from "../features/CancelScheduledEntryAction/index.js";
8
- import { ActionMapper } from "./ActionMapper.js";
9
- const typeMap = {
10
- publish: "Publish",
11
- unpublish: "Unpublish"
12
- };
13
- const resolve = async cb => {
14
- try {
15
- const result = await cb();
16
- return new Response(result);
17
- } catch (ex) {
18
- return new ErrorResponse(ex);
19
- }
20
- };
21
- const resolveList = async cb => {
22
- try {
23
- const result = await cb();
24
- return new ListResponse(result.data, result.meta);
25
- } catch (ex) {
26
- return new ListErrorResponse(ex);
27
- }
28
- };
29
- export const createSchedulerGraphQL = () => {
30
- return new CmsGraphQLSchemaPlugin({
31
- typeDefs: /* GraphQL */`
32
- enum CmsScheduleRecordType {
33
- publish
34
- unpublish
35
- }
36
- type CmsScheduleRecord {
37
- id: String!
38
- targetId: String!
39
- model: CmsContentModel!
40
- scheduledBy: CmsIdentity!
41
- publishOn: DateTime
42
- unpublishOn: DateTime
43
- type: CmsScheduleRecordType!
44
- title: String!
45
- }
46
-
47
- type CmsGetScheduleResponse {
48
- data: CmsScheduleRecord
49
- error: CmsError
50
- }
51
-
52
- type CmsListSchedulesResponse {
53
- data: [CmsScheduleRecord!]
54
- error: CmsError
55
- meta: CmsListMeta
56
- }
57
-
58
- type CmsCreateScheduleResponse {
59
- data: CmsScheduleRecord
60
- error: CmsError
61
- }
62
-
63
- type CmsUpdateScheduleResponse {
64
- data: CmsScheduleRecord
65
- error: CmsError
66
- }
67
-
68
- type CmsCancelScheduleResponse {
69
- data: Boolean
70
- error: CmsError
71
- }
72
-
73
- input CmsListSchedulesWhereInput {
74
- targetId: ID
75
- title_contains: String
76
- title_not_contains: String
77
- type: CmsScheduleRecordType
78
- scheduledBy: ID
79
- scheduledFor: DateTime
80
- scheduledFor_gte: DateTime
81
- scheduledFor_lte: DateTime
82
- }
83
-
84
- enum CmsListSchedulesSorter {
85
- title_ASC
86
- title_DESC
87
- scheduledFor_ASC
88
- scheduledFor_DESC
89
- }
90
-
91
- extend type Query {
92
- getCmsSchedule(modelId: String!, id: ID!): CmsGetScheduleResponse!
93
- listCmsSchedules(
94
- modelId: String!
95
- where: CmsListSchedulesWhereInput
96
- sort: [CmsListSchedulesSorter!]
97
- limit: Int
98
- after: String
99
- ): CmsListSchedulesResponse!
100
- }
101
-
102
- extend type Mutation {
103
- createCmsSchedule(
104
- modelId: String!
105
- id: ID!
106
- immediately: Boolean
107
- scheduleFor: DateTime
108
- type: CmsScheduleRecordType!
109
- ): CmsCreateScheduleResponse!
110
- updateCmsSchedule(
111
- modelId: String!
112
- id: ID!
113
- immediately: Boolean
114
- scheduleFor: DateTime
115
- type: CmsScheduleRecordType!
116
- ): CmsUpdateScheduleResponse!
117
- cancelCmsSchedule(modelId: String!, id: ID!): CmsCancelScheduleResponse!
118
- }
119
- `,
120
- resolvers: {
121
- Query: {
122
- async getCmsSchedule(_, args, context) {
123
- return resolve(async () => {
124
- const validated = await getScheduleSchema.safeParseAsync(args);
125
- if (validated.error) {
126
- throw createZodError(validated.error);
127
- }
128
- const listActions = context.container.resolve(ListScheduledActionsUseCase);
129
- const actions = await listActions.execute({
130
- where: {
131
- namespace: `Cms/Entry/${args.modelId}`,
132
- targetId: args.id
133
- }
134
- });
135
- if (actions.isFail()) {
136
- return new ErrorResponse({
137
- code: actions.error.code,
138
- message: actions.error.message
139
- });
140
- }
141
- const {
142
- items
143
- } = actions.value;
144
- if (!items.length) {
145
- return null;
146
- }
147
- return ActionMapper.fromScheduledAction(items[0]);
148
- });
149
- },
150
- async listCmsSchedules(_, args, context) {
151
- return resolveList(async () => {
152
- const validated = await listScheduleSchema.safeParseAsync(args);
153
- if (validated.error) {
154
- throw createZodError(validated.error);
155
- }
156
- const listActions = context.container.resolve(ListScheduledActionsUseCase);
157
- const {
158
- type,
159
- ...where
160
- } = validated.data.where ?? {};
161
- if (type) {
162
- // @ts-expect-error
163
- where["actionType"] = typeMap[type];
164
- }
165
- const actions = await listActions.execute({
166
- where: {
167
- ...where,
168
- namespace: `Cms/Entry/${args.modelId}`
169
- },
170
- sort: validated.data.sort,
171
- limit: validated.data.limit,
172
- after: validated.data.after
173
- });
174
- if (actions.isFail()) {
175
- throw actions.error;
176
- }
177
- return {
178
- data: actions.value.items.map(item => ActionMapper.fromScheduledAction(item)),
179
- meta: actions.value.meta
180
- };
181
- });
182
- }
183
- },
184
- Mutation: {
185
- async createCmsSchedule(_, args, context) {
186
- return resolve(async () => {
187
- const validated = await createScheduleSchema.safeParseAsync(args);
188
- if (validated.error) {
189
- throw createZodError(validated.error);
190
- }
191
- const data = validated.data;
192
- const scheduleEntry = context.container.resolve(ScheduleEntryActionUseCase);
193
- const result = await scheduleEntry.execute({
194
- modelId: data.modelId,
195
- targetId: data.id,
196
- scheduleFor: data.scheduleFor?.toISOString(),
197
- immediately: data.immediately,
198
- actionType: typeMap[data.type]
199
- });
200
- if (result.isFail()) {
201
- throw result.error;
202
- }
203
- return ActionMapper.fromScheduledAction(result.value);
204
- });
205
- },
206
- async updateCmsSchedule(_, args, context) {
207
- return resolve(async () => {
208
- const validated = await updateScheduleSchema.safeParseAsync(args);
209
- if (validated.error) {
210
- throw createZodError(validated.error);
211
- }
212
- const data = validated.data;
213
- const scheduleEntry = context.container.resolve(ScheduleEntryActionUseCase);
214
- const result = await scheduleEntry.execute({
215
- modelId: data.modelId,
216
- targetId: data.id,
217
- scheduleFor: data.scheduleFor?.toISOString(),
218
- immediately: data.immediately,
219
- actionType: typeMap[data.type]
220
- });
221
- if (result.isFail()) {
222
- throw result.error;
223
- }
224
- return ActionMapper.fromScheduledAction(result.value);
225
- });
226
- },
227
- async cancelCmsSchedule(_, args, context) {
228
- return resolve(async () => {
229
- const validated = await cancelScheduleSchema.safeParseAsync(args);
230
- if (validated.error) {
231
- throw createZodError(validated.error);
232
- }
233
- const cancelEntryAction = context.container.resolve(CancelScheduledEntryActionUseCase);
234
- const res = await cancelEntryAction.execute(validated.data.id);
235
- if (res.isFail()) {
236
- throw res.error;
237
- }
238
- return true;
239
- });
240
- }
241
- }
242
- }
243
- });
244
- };
245
-
246
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["CmsGraphQLSchemaPlugin","ErrorResponse","ListErrorResponse","ListResponse","Response","cancelScheduleSchema","createScheduleSchema","getScheduleSchema","listScheduleSchema","updateScheduleSchema","createZodError","ListScheduledActionsUseCase","ScheduleEntryActionUseCase","CancelScheduledEntryActionUseCase","ActionMapper","typeMap","publish","unpublish","resolve","cb","result","ex","resolveList","data","meta","createSchedulerGraphQL","typeDefs","resolvers","Query","getCmsSchedule","_","args","context","validated","safeParseAsync","error","listActions","container","actions","execute","where","namespace","modelId","targetId","id","isFail","code","message","items","value","length","fromScheduledAction","listCmsSchedules","type","sort","limit","after","map","item","Mutation","createCmsSchedule","scheduleEntry","scheduleFor","toISOString","immediately","actionType","updateCmsSchedule","cancelCmsSchedule","cancelEntryAction","res"],"sources":["index.ts"],"sourcesContent":["import { CmsGraphQLSchemaPlugin } from \"@webiny/api-headless-cms/plugins/index.js\";\nimport { ErrorResponse, ListErrorResponse, ListResponse, Response } from \"@webiny/handler-graphql\";\nimport type { CmsContext, CmsEntryMeta } from \"@webiny/api-headless-cms/types/index.js\";\nimport {\n cancelScheduleSchema,\n createScheduleSchema,\n getScheduleSchema,\n listScheduleSchema,\n updateScheduleSchema\n} from \"~/graphql/schema.js\";\nimport { createZodError } from \"@webiny/utils\";\nimport { ListScheduledActionsUseCase } from \"@webiny/api-scheduler/features/ListScheduledActions\";\nimport {\n type IScheduleActionPayload,\n ScheduleEntryActionUseCase\n} from \"~/features/ScheduleEntryAction/index.js\";\nimport { CancelScheduledEntryActionUseCase } from \"~/features/CancelScheduledEntryAction/index.js\";\nimport { ActionMapper } from \"~/graphql/ActionMapper.js\";\n\nconst typeMap = {\n publish: \"Publish\",\n unpublish: \"Unpublish\"\n} as const;\n\nconst resolve = async (cb: () => Promise<unknown>) => {\n try {\n const result = await cb();\n\n return new Response(result);\n } catch (ex) {\n return new ErrorResponse(ex);\n }\n};\n\ninterface IResolveListCallableResponse {\n data: unknown[];\n meta: CmsEntryMeta;\n}\n\nconst resolveList = async (cb: () => Promise<IResolveListCallableResponse>) => {\n try {\n const result = await cb();\n\n return new ListResponse(result.data, result.meta);\n } catch (ex) {\n return new ListErrorResponse(ex);\n }\n};\n\nexport const createSchedulerGraphQL = () => {\n return new CmsGraphQLSchemaPlugin<CmsContext>({\n typeDefs: /* GraphQL */ `\n enum CmsScheduleRecordType {\n publish\n unpublish\n }\n type CmsScheduleRecord {\n id: String!\n targetId: String!\n model: CmsContentModel!\n scheduledBy: CmsIdentity!\n publishOn: DateTime\n unpublishOn: DateTime\n type: CmsScheduleRecordType!\n title: String!\n }\n\n type CmsGetScheduleResponse {\n data: CmsScheduleRecord\n error: CmsError\n }\n\n type CmsListSchedulesResponse {\n data: [CmsScheduleRecord!]\n error: CmsError\n meta: CmsListMeta\n }\n\n type CmsCreateScheduleResponse {\n data: CmsScheduleRecord\n error: CmsError\n }\n\n type CmsUpdateScheduleResponse {\n data: CmsScheduleRecord\n error: CmsError\n }\n\n type CmsCancelScheduleResponse {\n data: Boolean\n error: CmsError\n }\n\n input CmsListSchedulesWhereInput {\n targetId: ID\n title_contains: String\n title_not_contains: String\n type: CmsScheduleRecordType\n scheduledBy: ID\n scheduledFor: DateTime\n scheduledFor_gte: DateTime\n scheduledFor_lte: DateTime\n }\n\n enum CmsListSchedulesSorter {\n title_ASC\n title_DESC\n scheduledFor_ASC\n scheduledFor_DESC\n }\n\n extend type Query {\n getCmsSchedule(modelId: String!, id: ID!): CmsGetScheduleResponse!\n listCmsSchedules(\n modelId: String!\n where: CmsListSchedulesWhereInput\n sort: [CmsListSchedulesSorter!]\n limit: Int\n after: String\n ): CmsListSchedulesResponse!\n }\n\n extend type Mutation {\n createCmsSchedule(\n modelId: String!\n id: ID!\n immediately: Boolean\n scheduleFor: DateTime\n type: CmsScheduleRecordType!\n ): CmsCreateScheduleResponse!\n updateCmsSchedule(\n modelId: String!\n id: ID!\n immediately: Boolean\n scheduleFor: DateTime\n type: CmsScheduleRecordType!\n ): CmsUpdateScheduleResponse!\n cancelCmsSchedule(modelId: String!, id: ID!): CmsCancelScheduleResponse!\n }\n `,\n resolvers: {\n Query: {\n async getCmsSchedule(_, args, context) {\n return resolve(async () => {\n const validated = await getScheduleSchema.safeParseAsync(args);\n if (validated.error) {\n throw createZodError(validated.error);\n }\n\n const listActions = context.container.resolve(ListScheduledActionsUseCase);\n\n const actions = await listActions.execute<IScheduleActionPayload>({\n where: { namespace: `Cms/Entry/${args.modelId}`, targetId: args.id }\n });\n\n if (actions.isFail()) {\n return new ErrorResponse({\n code: actions.error.code,\n message: actions.error.message\n });\n }\n\n const { items } = actions.value;\n\n if (!items.length) {\n return null;\n }\n\n return ActionMapper.fromScheduledAction(items[0]);\n });\n },\n async listCmsSchedules(_, args, context) {\n return resolveList(async () => {\n const validated = await listScheduleSchema.safeParseAsync(args);\n if (validated.error) {\n throw createZodError(validated.error);\n }\n\n const listActions = context.container.resolve(ListScheduledActionsUseCase);\n\n const { type, ...where } = validated.data.where ?? {};\n\n if (type) {\n // @ts-expect-error\n where[\"actionType\"] = typeMap[type];\n }\n\n const actions = await listActions.execute<IScheduleActionPayload>({\n where: { ...where, namespace: `Cms/Entry/${args.modelId}` },\n sort: validated.data.sort,\n limit: validated.data.limit,\n after: validated.data.after\n });\n\n if (actions.isFail()) {\n throw actions.error;\n }\n\n return {\n data: actions.value.items.map(item =>\n ActionMapper.fromScheduledAction(item)\n ),\n meta: actions.value.meta\n };\n });\n }\n },\n Mutation: {\n async createCmsSchedule(_, args, context) {\n return resolve(async () => {\n const validated = await createScheduleSchema.safeParseAsync(args);\n if (validated.error) {\n throw createZodError(validated.error);\n }\n\n const data = validated.data;\n\n const scheduleEntry = context.container.resolve(ScheduleEntryActionUseCase);\n const result = await scheduleEntry.execute({\n modelId: data.modelId,\n targetId: data.id,\n scheduleFor: data.scheduleFor?.toISOString(),\n immediately: data.immediately,\n actionType: typeMap[data.type]\n });\n\n if (result.isFail()) {\n throw result.error;\n }\n\n return ActionMapper.fromScheduledAction(result.value);\n });\n },\n async updateCmsSchedule(_, args, context) {\n return resolve(async () => {\n const validated = await updateScheduleSchema.safeParseAsync(args);\n if (validated.error) {\n throw createZodError(validated.error);\n }\n\n const data = validated.data;\n\n const scheduleEntry = context.container.resolve(ScheduleEntryActionUseCase);\n const result = await scheduleEntry.execute({\n modelId: data.modelId,\n targetId: data.id,\n scheduleFor: data.scheduleFor?.toISOString(),\n immediately: data.immediately,\n actionType: typeMap[data.type]\n });\n\n if (result.isFail()) {\n throw result.error;\n }\n\n return ActionMapper.fromScheduledAction(result.value);\n });\n },\n async cancelCmsSchedule(_, args, context) {\n return resolve(async () => {\n const validated = await cancelScheduleSchema.safeParseAsync(args);\n if (validated.error) {\n throw createZodError(validated.error);\n }\n\n const cancelEntryAction = context.container.resolve(\n CancelScheduledEntryActionUseCase\n );\n\n const res = await cancelEntryAction.execute(validated.data.id);\n\n if (res.isFail()) {\n throw res.error;\n }\n\n return true;\n });\n }\n }\n }\n });\n};\n"],"mappings":"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","ignoreList":[]}