@webiny/api-headless-cms-scheduler 0.0.0-unstable.eb196ccd2f → 0.0.0-unstable.eb81deee7e

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 (130) hide show
  1. package/CmsSchedulerFeature.d.ts +4 -0
  2. package/CmsSchedulerFeature.js +23 -0
  3. package/CmsSchedulerFeature.js.map +1 -0
  4. package/README.md +11 -15
  5. package/exports/api/cms/scheduler.d.ts +2 -0
  6. package/exports/api/cms/scheduler.js +2 -0
  7. package/features/CancelScheduledActionOnEntryChange/CancelScheduledActionOnEntryDeleteEventHandler.d.ts +20 -0
  8. package/features/CancelScheduledActionOnEntryChange/CancelScheduledActionOnEntryDeleteEventHandler.js +40 -0
  9. package/features/CancelScheduledActionOnEntryChange/CancelScheduledActionOnEntryDeleteEventHandler.js.map +1 -0
  10. package/features/CancelScheduledActionOnEntryChange/CancelScheduledActionOnPublishEventHandler.d.ts +19 -0
  11. package/features/CancelScheduledActionOnEntryChange/CancelScheduledActionOnPublishEventHandler.js +35 -0
  12. package/features/CancelScheduledActionOnEntryChange/CancelScheduledActionOnPublishEventHandler.js.map +1 -0
  13. package/features/CancelScheduledActionOnEntryChange/CancelScheduledActionOnRevisionDeleteEventHandler.d.ts +19 -0
  14. package/features/CancelScheduledActionOnEntryChange/CancelScheduledActionOnRevisionDeleteEventHandler.js +34 -0
  15. package/features/CancelScheduledActionOnEntryChange/CancelScheduledActionOnRevisionDeleteEventHandler.js.map +1 -0
  16. package/features/CancelScheduledActionOnEntryChange/CancelScheduledActionOnUnpublishEventHandler.d.ts +19 -0
  17. package/features/CancelScheduledActionOnEntryChange/CancelScheduledActionOnUnpublishEventHandler.js +35 -0
  18. package/features/CancelScheduledActionOnEntryChange/CancelScheduledActionOnUnpublishEventHandler.js.map +1 -0
  19. package/features/CancelScheduledActionOnEntryChange/feature.d.ts +11 -0
  20. package/features/CancelScheduledActionOnEntryChange/feature.js +17 -0
  21. package/features/CancelScheduledActionOnEntryChange/feature.js.map +1 -0
  22. package/features/NamespaceHandler/NamespaceHandler.d.ts +15 -0
  23. package/features/NamespaceHandler/NamespaceHandler.js +44 -0
  24. package/features/NamespaceHandler/NamespaceHandler.js.map +1 -0
  25. package/features/PublishActionHandler/PublishEntryActionHandler.d.ts +35 -0
  26. package/features/PublishActionHandler/PublishEntryActionHandler.js +92 -0
  27. package/features/PublishActionHandler/PublishEntryActionHandler.js.map +1 -0
  28. package/features/SchedulePublishEntryUseCase/SchedulePublishEntryUseCase.d.ts +15 -0
  29. package/features/SchedulePublishEntryUseCase/SchedulePublishEntryUseCase.js +47 -0
  30. package/features/SchedulePublishEntryUseCase/SchedulePublishEntryUseCase.js.map +1 -0
  31. package/features/SchedulePublishEntryUseCase/abstractions.d.ts +24 -0
  32. package/features/SchedulePublishEntryUseCase/abstractions.js +5 -0
  33. package/features/SchedulePublishEntryUseCase/abstractions.js.map +1 -0
  34. package/features/ScheduleUnpublishEntryUseCase/ScheduleUnpublishEntryUseCase.d.ts +15 -0
  35. package/features/ScheduleUnpublishEntryUseCase/ScheduleUnpublishEntryUseCase.js +47 -0
  36. package/features/ScheduleUnpublishEntryUseCase/ScheduleUnpublishEntryUseCase.js.map +1 -0
  37. package/features/ScheduleUnpublishEntryUseCase/abstractions.d.ts +24 -0
  38. package/features/ScheduleUnpublishEntryUseCase/abstractions.js +5 -0
  39. package/features/ScheduleUnpublishEntryUseCase/abstractions.js.map +1 -0
  40. package/features/UnpublishActionHandler/UnpublishEntryActionHandler.d.ts +30 -0
  41. package/features/UnpublishActionHandler/UnpublishEntryActionHandler.js +69 -0
  42. package/features/UnpublishActionHandler/UnpublishEntryActionHandler.js.map +1 -0
  43. package/features/permissions/CmsSchedulerPermissions.d.ts +13 -0
  44. package/features/permissions/CmsSchedulerPermissions.js +31 -0
  45. package/features/permissions/CmsSchedulerPermissions.js.map +1 -0
  46. package/index.d.ts +1 -10
  47. package/index.js +1 -29
  48. package/package.json +21 -26
  49. package/types.d.ts +3 -10
  50. package/types.js +0 -7
  51. package/utils/namespace.d.ts +4 -0
  52. package/utils/namespace.js +9 -0
  53. package/utils/namespace.js.map +1 -0
  54. package/constants.d.ts +0 -11
  55. package/constants.js +0 -19
  56. package/constants.js.map +0 -1
  57. package/context.d.ts +0 -7
  58. package/context.js +0 -68
  59. package/context.js.map +0 -1
  60. package/graphql/index.d.ts +0 -3
  61. package/graphql/index.js +0 -204
  62. package/graphql/index.js.map +0 -1
  63. package/graphql/schema.d.ts +0 -217
  64. package/graphql/schema.js +0 -87
  65. package/graphql/schema.js.map +0 -1
  66. package/handler/Handler.d.ts +0 -23
  67. package/handler/Handler.js +0 -74
  68. package/handler/Handler.js.map +0 -1
  69. package/handler/actions/PublishHandlerAction.d.ts +0 -13
  70. package/handler/actions/PublishHandlerAction.js +0 -64
  71. package/handler/actions/PublishHandlerAction.js.map +0 -1
  72. package/handler/actions/UnpublishHandlerAction.d.ts +0 -13
  73. package/handler/actions/UnpublishHandlerAction.js +0 -53
  74. package/handler/actions/UnpublishHandlerAction.js.map +0 -1
  75. package/handler/index.d.ts +0 -7
  76. package/handler/index.js +0 -64
  77. package/handler/index.js.map +0 -1
  78. package/handler/types.d.ts +0 -5
  79. package/handler/types.js +0 -7
  80. package/handler/types.js.map +0 -1
  81. package/hooks/index.d.ts +0 -7
  82. package/hooks/index.js +0 -58
  83. package/hooks/index.js.map +0 -1
  84. package/index.js.map +0 -1
  85. package/manifest.d.ts +0 -17
  86. package/manifest.js +0 -47
  87. package/manifest.js.map +0 -1
  88. package/scheduler/ScheduleExecutor.d.ts +0 -16
  89. package/scheduler/ScheduleExecutor.js +0 -55
  90. package/scheduler/ScheduleExecutor.js.map +0 -1
  91. package/scheduler/ScheduleFetcher.d.ts +0 -16
  92. package/scheduler/ScheduleFetcher.js +0 -51
  93. package/scheduler/ScheduleFetcher.js.map +0 -1
  94. package/scheduler/ScheduleRecord.d.ts +0 -31
  95. package/scheduler/ScheduleRecord.js +0 -57
  96. package/scheduler/ScheduleRecord.js.map +0 -1
  97. package/scheduler/Scheduler.d.ts +0 -14
  98. package/scheduler/Scheduler.js +0 -27
  99. package/scheduler/Scheduler.js.map +0 -1
  100. package/scheduler/actions/PublishScheduleAction.d.ts +0 -26
  101. package/scheduler/actions/PublishScheduleAction.js +0 -196
  102. package/scheduler/actions/PublishScheduleAction.js.map +0 -1
  103. package/scheduler/actions/UnpublishScheduleAction.d.ts +0 -26
  104. package/scheduler/actions/UnpublishScheduleAction.js +0 -194
  105. package/scheduler/actions/UnpublishScheduleAction.js.map +0 -1
  106. package/scheduler/createScheduleRecordId.d.ts +0 -2
  107. package/scheduler/createScheduleRecordId.js +0 -33
  108. package/scheduler/createScheduleRecordId.js.map +0 -1
  109. package/scheduler/createScheduler.d.ts +0 -12
  110. package/scheduler/createScheduler.js +0 -65
  111. package/scheduler/createScheduler.js.map +0 -1
  112. package/scheduler/dates.d.ts +0 -7
  113. package/scheduler/dates.js +0 -27
  114. package/scheduler/dates.js.map +0 -1
  115. package/scheduler/model.d.ts +0 -1
  116. package/scheduler/model.js +0 -88
  117. package/scheduler/model.js.map +0 -1
  118. package/scheduler/types.d.ts +0 -88
  119. package/scheduler/types.js +0 -19
  120. package/scheduler/types.js.map +0 -1
  121. package/service/SchedulerService.d.ts +0 -23
  122. package/service/SchedulerService.js +0 -151
  123. package/service/SchedulerService.js.map +0 -1
  124. package/service/types.d.ts +0 -19
  125. package/service/types.js +0 -7
  126. package/service/types.js.map +0 -1
  127. package/types.js.map +0 -1
  128. package/utils/dateInTheFuture.d.ts +0 -6
  129. package/utils/dateInTheFuture.js +0 -19
  130. package/utils/dateInTheFuture.js.map +0 -1
package/context.js DELETED
@@ -1,68 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.createHeadlessCmsScheduleContext = void 0;
7
- var _index = require("@webiny/api/index.js");
8
- var _SchedulerService = require("./service/SchedulerService.js");
9
- var _manifest = require("./manifest.js");
10
- var _utils = require("@webiny/utils");
11
- var _createScheduler = require("./scheduler/createScheduler.js");
12
- var _handlerGraphql = require("@webiny/handler-graphql");
13
- var _constants = require("./constants.js");
14
- var _apiHeadlessCms = require("@webiny/api-headless-cms");
15
- var _index2 = require("./hooks/index.js");
16
- const createHeadlessCmsScheduleContext = params => {
17
- return new _index.ContextPlugin(async context => {
18
- /**
19
- * If the Headless CMS is not ready, it means the system is not fully installed yet.
20
- * We do not want to continue because it would break anyway.
21
- */
22
- const ready = await (0, _apiHeadlessCms.isHeadlessCmsReady)(context);
23
- if (!ready) {
24
- return;
25
- }
26
- const manifest = await (0, _manifest.getManifest)({
27
- client: context.db.driver.getClient()
28
- });
29
- if (manifest.error) {
30
- console.error(manifest.error.message);
31
- console.log((0, _utils.convertException)(manifest.error, ["message"]));
32
- console.info("Scheduler not attached.");
33
- return;
34
- }
35
- const service = (0, _SchedulerService.createSchedulerService)({
36
- getClient: params.getClient,
37
- config: {
38
- lambdaArn: manifest.data.lambdaArn,
39
- roleArn: manifest.data.roleArn
40
- }
41
- });
42
- let schedulerModel;
43
- try {
44
- schedulerModel = await context.cms.getModel(_constants.SCHEDULE_MODEL_ID);
45
- } catch (ex) {
46
- if (ex.code === "NOT_FOUND" || ex instanceof _handlerGraphql.NotFoundError) {
47
- console.error(`Schedule model "${_constants.SCHEDULE_MODEL_ID}" not found.`);
48
- return;
49
- }
50
- console.error(`Error while fetching schedule model "${_constants.SCHEDULE_MODEL_ID}".`);
51
- console.log((0, _utils.convertException)(ex));
52
- return;
53
- }
54
- (0, _index2.attachLifecycleHooks)({
55
- cms: context.cms,
56
- schedulerModel
57
- });
58
- context.cms.scheduler = await (0, _createScheduler.createScheduler)({
59
- cms: context.cms,
60
- security: context.security,
61
- service,
62
- schedulerModel
63
- });
64
- });
65
- };
66
- exports.createHeadlessCmsScheduleContext = createHeadlessCmsScheduleContext;
67
-
68
- //# sourceMappingURL=context.js.map
package/context.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"names":["_index","require","_SchedulerService","_manifest","_utils","_createScheduler","_handlerGraphql","_constants","_apiHeadlessCms","_index2","createHeadlessCmsScheduleContext","params","ContextPlugin","context","ready","isHeadlessCmsReady","manifest","getManifest","client","db","driver","getClient","error","console","message","log","convertException","info","service","createSchedulerService","config","lambdaArn","data","roleArn","schedulerModel","cms","getModel","SCHEDULE_MODEL_ID","ex","code","NotFoundError","attachLifecycleHooks","scheduler","createScheduler","security","exports"],"sources":["context.ts"],"sourcesContent":["import { ContextPlugin } from \"@webiny/api/index.js\";\nimport type {\n SchedulerClient,\n SchedulerClientConfig\n} from \"@webiny/aws-sdk/client-scheduler/index.js\";\nimport { createSchedulerService } from \"~/service/SchedulerService.js\";\nimport { getManifest } from \"~/manifest.js\";\nimport { convertException } from \"@webiny/utils\";\nimport type { ScheduleContext } from \"~/types.js\";\nimport { createScheduler } from \"./scheduler/createScheduler.js\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport { SCHEDULE_MODEL_ID } from \"./constants.js\";\nimport { isHeadlessCmsReady } from \"@webiny/api-headless-cms\";\nimport type { DynamoDBDocument } from \"@webiny/aws-sdk/client-dynamodb/index.js\";\nimport { attachLifecycleHooks } from \"~/hooks/index.js\";\n\nexport interface ICreateHeadlessCmsSchedulerContextParams {\n getClient(config?: SchedulerClientConfig): Pick<SchedulerClient, \"send\">;\n}\n\nexport const createHeadlessCmsScheduleContext = (\n params: ICreateHeadlessCmsSchedulerContextParams\n) => {\n return new ContextPlugin<ScheduleContext>(async context => {\n /**\n * If the Headless CMS is not ready, it means the system is not fully installed yet.\n * We do not want to continue because it would break anyway.\n */\n const ready = await isHeadlessCmsReady(context);\n if (!ready) {\n return;\n }\n const manifest = await getManifest({\n client: context.db.driver.getClient() as DynamoDBDocument\n });\n if (manifest.error) {\n console.error(manifest.error.message);\n console.log(convertException(manifest.error, [\"message\"]));\n console.info(\"Scheduler not attached.\");\n return;\n }\n\n const service = createSchedulerService({\n getClient: params.getClient,\n config: {\n lambdaArn: manifest.data.lambdaArn,\n roleArn: manifest.data.roleArn\n }\n });\n\n let schedulerModel: CmsModel;\n try {\n schedulerModel = await context.cms.getModel(SCHEDULE_MODEL_ID);\n } catch (ex) {\n if (ex.code === \"NOT_FOUND\" || ex instanceof NotFoundError) {\n console.error(`Schedule model \"${SCHEDULE_MODEL_ID}\" not found.`);\n return;\n }\n console.error(`Error while fetching schedule model \"${SCHEDULE_MODEL_ID}\".`);\n console.log(convertException(ex));\n return;\n }\n\n attachLifecycleHooks({\n cms: context.cms,\n schedulerModel\n });\n\n context.cms.scheduler = await createScheduler({\n cms: context.cms,\n security: context.security,\n service,\n schedulerModel\n });\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAKA,IAAAC,iBAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAEA,IAAAI,gBAAA,GAAAJ,OAAA;AAEA,IAAAK,eAAA,GAAAL,OAAA;AACA,IAAAM,UAAA,GAAAN,OAAA;AACA,IAAAO,eAAA,GAAAP,OAAA;AAEA,IAAAQ,OAAA,GAAAR,OAAA;AAMO,MAAMS,gCAAgC,GACzCC,MAAgD,IAC/C;EACD,OAAO,IAAIC,oBAAa,CAAkB,MAAMC,OAAO,IAAI;IACvD;AACR;AACA;AACA;IACQ,MAAMC,KAAK,GAAG,MAAM,IAAAC,kCAAkB,EAACF,OAAO,CAAC;IAC/C,IAAI,CAACC,KAAK,EAAE;MACR;IACJ;IACA,MAAME,QAAQ,GAAG,MAAM,IAAAC,qBAAW,EAAC;MAC/BC,MAAM,EAAEL,OAAO,CAACM,EAAE,CAACC,MAAM,CAACC,SAAS,CAAC;IACxC,CAAC,CAAC;IACF,IAAIL,QAAQ,CAACM,KAAK,EAAE;MAChBC,OAAO,CAACD,KAAK,CAACN,QAAQ,CAACM,KAAK,CAACE,OAAO,CAAC;MACrCD,OAAO,CAACE,GAAG,CAAC,IAAAC,uBAAgB,EAACV,QAAQ,CAACM,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;MAC1DC,OAAO,CAACI,IAAI,CAAC,yBAAyB,CAAC;MACvC;IACJ;IAEA,MAAMC,OAAO,GAAG,IAAAC,wCAAsB,EAAC;MACnCR,SAAS,EAAEV,MAAM,CAACU,SAAS;MAC3BS,MAAM,EAAE;QACJC,SAAS,EAAEf,QAAQ,CAACgB,IAAI,CAACD,SAAS;QAClCE,OAAO,EAAEjB,QAAQ,CAACgB,IAAI,CAACC;MAC3B;IACJ,CAAC,CAAC;IAEF,IAAIC,cAAwB;IAC5B,IAAI;MACAA,cAAc,GAAG,MAAMrB,OAAO,CAACsB,GAAG,CAACC,QAAQ,CAACC,4BAAiB,CAAC;IAClE,CAAC,CAAC,OAAOC,EAAE,EAAE;MACT,IAAIA,EAAE,CAACC,IAAI,KAAK,WAAW,IAAID,EAAE,YAAYE,6BAAa,EAAE;QACxDjB,OAAO,CAACD,KAAK,CAAC,mBAAmBe,4BAAiB,cAAc,CAAC;QACjE;MACJ;MACAd,OAAO,CAACD,KAAK,CAAC,wCAAwCe,4BAAiB,IAAI,CAAC;MAC5Ed,OAAO,CAACE,GAAG,CAAC,IAAAC,uBAAgB,EAACY,EAAE,CAAC,CAAC;MACjC;IACJ;IAEA,IAAAG,4BAAoB,EAAC;MACjBN,GAAG,EAAEtB,OAAO,CAACsB,GAAG;MAChBD;IACJ,CAAC,CAAC;IAEFrB,OAAO,CAACsB,GAAG,CAACO,SAAS,GAAG,MAAM,IAAAC,gCAAe,EAAC;MAC1CR,GAAG,EAAEtB,OAAO,CAACsB,GAAG;MAChBS,QAAQ,EAAE/B,OAAO,CAAC+B,QAAQ;MAC1BhB,OAAO;MACPM;IACJ,CAAC,CAAC;EACN,CAAC,CAAC;AACN,CAAC;AAACW,OAAA,CAAAnC,gCAAA,GAAAA,gCAAA","ignoreList":[]}
@@ -1,3 +0,0 @@
1
- import { CmsGraphQLSchemaPlugin } from "@webiny/api-headless-cms/plugins/index.js";
2
- import type { ScheduleContext } from "../types.js";
3
- export declare const createSchedulerGraphQL: () => CmsGraphQLSchemaPlugin<ScheduleContext>;
package/graphql/index.js DELETED
@@ -1,204 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.createSchedulerGraphQL = void 0;
7
- var _index = require("@webiny/api-headless-cms/plugins/index.js");
8
- var _handlerGraphql = require("@webiny/handler-graphql");
9
- var _schema = require("./schema.js");
10
- var _utils = require("@webiny/utils");
11
- const resolve = async cb => {
12
- try {
13
- const result = await cb();
14
- return new _handlerGraphql.Response(result);
15
- } catch (ex) {
16
- return new _handlerGraphql.ErrorResponse(ex);
17
- }
18
- };
19
- const resolveList = async cb => {
20
- try {
21
- const result = await cb();
22
- return new _handlerGraphql.ListResponse(result.data, result.meta);
23
- } catch (ex) {
24
- return new _handlerGraphql.ListErrorResponse(ex);
25
- }
26
- };
27
- const createSchedulerGraphQL = () => {
28
- return new _index.CmsGraphQLSchemaPlugin({
29
- /**
30
- * Make sure scheduler is available. No point in adding GraphQL if scheduler is unavailable for any reason.
31
- */
32
- isApplicable: context => {
33
- return !!context.cms?.scheduler;
34
- },
35
- typeDefs: /* GraphQL */`
36
- enum CmsScheduleRecordType {
37
- publish
38
- unpublish
39
- }
40
- type CmsScheduleRecord {
41
- id: String!
42
- targetId: String!
43
- model: CmsContentModel!
44
- scheduledBy: CmsIdentity!
45
- publishOn: DateTime
46
- unpublishOn: DateTime
47
- type: CmsScheduleRecordType!
48
- title: String!
49
- }
50
-
51
- type CmsGetScheduleResponse {
52
- data: CmsScheduleRecord
53
- error: CmsError
54
- }
55
-
56
- type CmsListSchedulesResponse {
57
- data: [CmsScheduleRecord!]
58
- error: CmsError
59
- meta: CmsListMeta
60
- }
61
-
62
- input CmsCreateScheduleInput {
63
- immediately: Boolean
64
- scheduleOn: DateTime
65
- type: CmsScheduleRecordType!
66
- }
67
-
68
- type CmsCreateScheduleResponse {
69
- data: CmsScheduleRecord
70
- error: CmsError
71
- }
72
-
73
- input CmsUpdateScheduleInput {
74
- immediately: Boolean
75
- scheduleOn: DateTime
76
- type: CmsScheduleRecordType!
77
- }
78
-
79
- type CmsUpdateScheduleResponse {
80
- data: CmsScheduleRecord
81
- error: CmsError
82
- }
83
-
84
- type CmsCancelScheduleResponse {
85
- data: Boolean
86
- error: CmsError
87
- }
88
-
89
- input CmsListSchedulesWhereInput {
90
- targetId: ID
91
- title_contains: String
92
- title_not_contains: String
93
- targetEntryId: ID
94
- type: CmsScheduleRecordType
95
- scheduledBy: ID
96
- scheduledOn: DateTime
97
- scheduledOn_gte: DateTime
98
- scheduledOn_lte: DateTime
99
- }
100
-
101
- enum CmsListSchedulesSorter {
102
- title_ASC
103
- title_DESC
104
- scheduledOn_ASC
105
- scheduledOn_DESC
106
- }
107
-
108
- extend type Query {
109
- getCmsSchedule(modelId: String!, id: ID!): CmsGetScheduleResponse!
110
- listCmsSchedules(
111
- modelId: String!
112
- where: CmsListSchedulesWhereInput
113
- sort: [CmsListSchedulesSorter!]
114
- limit: Int
115
- after: String
116
- ): CmsListSchedulesResponse!
117
- }
118
-
119
- extend type Mutation {
120
- createCmsSchedule(
121
- modelId: String!
122
- id: ID!
123
- input: CmsCreateScheduleInput!
124
- ): CmsCreateScheduleResponse!
125
- updateCmsSchedule(
126
- modelId: String!
127
- id: ID!
128
- input: CmsUpdateScheduleInput!
129
- ): CmsUpdateScheduleResponse!
130
- cancelCmsSchedule(modelId: String!, id: ID!): CmsCancelScheduleResponse!
131
- }
132
- `,
133
- resolvers: {
134
- Query: {
135
- async getCmsSchedule(_, args, context) {
136
- return resolve(async () => {
137
- const validated = await _schema.getScheduleSchema.safeParseAsync(args);
138
- if (validated.error) {
139
- throw (0, _utils.createZodError)(validated.error);
140
- }
141
- const model = await context.cms.getModel(validated.data.modelId);
142
- const scheduler = context.cms.scheduler(model);
143
- return scheduler.getScheduled(validated.data.id);
144
- });
145
- },
146
- async listCmsSchedules(_, args, context) {
147
- return resolveList(async () => {
148
- const validated = await _schema.listScheduleSchema.safeParseAsync(args);
149
- if (validated.error) {
150
- throw (0, _utils.createZodError)(validated.error);
151
- }
152
- const model = await context.cms.getModel(validated.data.modelId);
153
- const scheduler = context.cms.scheduler(model);
154
- return scheduler.listScheduled({
155
- where: validated.data.where || {},
156
- sort: validated.data.sort,
157
- limit: validated.data.limit,
158
- after: validated.data.after
159
- });
160
- });
161
- }
162
- },
163
- Mutation: {
164
- async createCmsSchedule(_, args, context) {
165
- return resolve(async () => {
166
- const validated = await _schema.createScheduleSchema.safeParseAsync(args);
167
- if (validated.error) {
168
- throw (0, _utils.createZodError)(validated.error);
169
- }
170
- const model = await context.cms.getModel(validated.data.modelId);
171
- const scheduler = context.cms.scheduler(model);
172
- return await scheduler.schedule(validated.data.id, validated.data.input);
173
- });
174
- },
175
- async updateCmsSchedule(_, args, context) {
176
- return resolve(async () => {
177
- const validated = await _schema.updateScheduleSchema.safeParseAsync(args);
178
- if (validated.error) {
179
- throw (0, _utils.createZodError)(validated.error);
180
- }
181
- const model = await context.cms.getModel(validated.data.modelId);
182
- const scheduler = context.cms.scheduler(model);
183
- return scheduler.schedule(validated.data.id, validated.data.input);
184
- });
185
- },
186
- async cancelCmsSchedule(_, args, context) {
187
- return resolve(async () => {
188
- const validated = await _schema.cancelScheduleSchema.safeParseAsync(args);
189
- if (validated.error) {
190
- throw (0, _utils.createZodError)(validated.error);
191
- }
192
- const model = await context.cms.getModel(validated.data.modelId);
193
- const scheduler = context.cms.scheduler(model);
194
- await scheduler.cancel(validated.data.id);
195
- return true;
196
- });
197
- }
198
- }
199
- }
200
- });
201
- };
202
- exports.createSchedulerGraphQL = createSchedulerGraphQL;
203
-
204
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_index","require","_handlerGraphql","_schema","_utils","resolve","cb","result","Response","ex","ErrorResponse","resolveList","ListResponse","data","meta","ListErrorResponse","createSchedulerGraphQL","CmsGraphQLSchemaPlugin","isApplicable","context","cms","scheduler","typeDefs","resolvers","Query","getCmsSchedule","_","args","validated","getScheduleSchema","safeParseAsync","error","createZodError","model","getModel","modelId","getScheduled","id","listCmsSchedules","listScheduleSchema","listScheduled","where","sort","limit","after","Mutation","createCmsSchedule","createScheduleSchema","schedule","input","updateCmsSchedule","updateScheduleSchema","cancelCmsSchedule","cancelScheduleSchema","cancel","exports"],"sources":["index.ts"],"sourcesContent":["import { CmsGraphQLSchemaPlugin } from \"@webiny/api-headless-cms/plugins/index.js\";\nimport type { ScheduleContext } from \"~/types.js\";\nimport { ErrorResponse, ListErrorResponse, ListResponse, Response } from \"@webiny/handler-graphql\";\nimport type { 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\";\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<ScheduleContext>({\n /**\n * Make sure scheduler is available. No point in adding GraphQL if scheduler is unavailable for any reason.\n */\n isApplicable: context => {\n return !!context.cms?.scheduler;\n },\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 input CmsCreateScheduleInput {\n immediately: Boolean\n scheduleOn: DateTime\n type: CmsScheduleRecordType!\n }\n\n type CmsCreateScheduleResponse {\n data: CmsScheduleRecord\n error: CmsError\n }\n\n input CmsUpdateScheduleInput {\n immediately: Boolean\n scheduleOn: DateTime\n type: CmsScheduleRecordType!\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 targetEntryId: ID\n type: CmsScheduleRecordType\n scheduledBy: ID\n scheduledOn: DateTime\n scheduledOn_gte: DateTime\n scheduledOn_lte: DateTime\n }\n\n enum CmsListSchedulesSorter {\n title_ASC\n title_DESC\n scheduledOn_ASC\n scheduledOn_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 input: CmsCreateScheduleInput!\n ): CmsCreateScheduleResponse!\n updateCmsSchedule(\n modelId: String!\n id: ID!\n input: CmsUpdateScheduleInput!\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 const model = await context.cms.getModel(validated.data.modelId);\n const scheduler = context.cms.scheduler(model);\n\n return scheduler.getScheduled(validated.data.id);\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 const model = await context.cms.getModel(validated.data.modelId);\n const scheduler = context.cms.scheduler(model);\n\n return scheduler.listScheduled({\n where: validated.data.where || {},\n sort: validated.data.sort,\n limit: validated.data.limit,\n after: validated.data.after\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 model = await context.cms.getModel(validated.data.modelId);\n const scheduler = context.cms.scheduler(model);\n\n return await scheduler.schedule(validated.data.id, validated.data.input);\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 const model = await context.cms.getModel(validated.data.modelId);\n const scheduler = context.cms.scheduler(model);\n\n return scheduler.schedule(validated.data.id, validated.data.input);\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 const model = await context.cms.getModel(validated.data.modelId);\n const scheduler = context.cms.scheduler(model);\n\n await scheduler.cancel(validated.data.id);\n return true;\n });\n }\n }\n }\n });\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,217 +0,0 @@
1
- import zod from "zod";
2
- import { ScheduleType } from "../scheduler/types.js";
3
- export declare const getScheduleSchema: zod.ZodObject<{
4
- modelId: zod.ZodString;
5
- id: zod.ZodString;
6
- }, "strip", zod.ZodTypeAny, {
7
- id: string;
8
- modelId: string;
9
- }, {
10
- id: string;
11
- modelId: string;
12
- }>;
13
- export declare const listScheduleSchema: zod.ZodObject<{
14
- modelId: zod.ZodString;
15
- where: zod.ZodOptional<zod.ZodObject<{
16
- targetId: zod.ZodOptional<zod.ZodString>;
17
- targetEntryId: zod.ZodOptional<zod.ZodString>;
18
- title_contains: zod.ZodOptional<zod.ZodString>;
19
- title_not_contains: zod.ZodOptional<zod.ZodString>;
20
- type: zod.ZodOptional<zod.ZodNativeEnum<typeof ScheduleType>>;
21
- scheduledBy: zod.ZodOptional<zod.ZodString>;
22
- scheduledOn: zod.ZodEffects<zod.ZodOptional<zod.ZodDate>, `${number}-${number}-${number}T${number}:${number}:${number}.${number}Z` | undefined, Date | undefined>;
23
- scheduledOn_gte: zod.ZodEffects<zod.ZodOptional<zod.ZodDate>, `${number}-${number}-${number}T${number}:${number}:${number}.${number}Z` | undefined, Date | undefined>;
24
- scheduledOn_lte: zod.ZodEffects<zod.ZodOptional<zod.ZodDate>, `${number}-${number}-${number}T${number}:${number}:${number}.${number}Z` | undefined, Date | undefined>;
25
- }, "strip", zod.ZodTypeAny, {
26
- type?: ScheduleType | undefined;
27
- targetId?: string | undefined;
28
- targetEntryId?: string | undefined;
29
- scheduledBy?: string | undefined;
30
- scheduledOn?: `${number}-${number}-${number}T${number}:${number}:${number}.${number}Z` | undefined;
31
- scheduledOn_gte?: `${number}-${number}-${number}T${number}:${number}:${number}.${number}Z` | undefined;
32
- scheduledOn_lte?: `${number}-${number}-${number}T${number}:${number}:${number}.${number}Z` | undefined;
33
- title_contains?: string | undefined;
34
- title_not_contains?: string | undefined;
35
- }, {
36
- type?: ScheduleType | undefined;
37
- targetId?: string | undefined;
38
- targetEntryId?: string | undefined;
39
- scheduledBy?: string | undefined;
40
- scheduledOn?: Date | undefined;
41
- scheduledOn_gte?: Date | undefined;
42
- scheduledOn_lte?: Date | undefined;
43
- title_contains?: string | undefined;
44
- title_not_contains?: string | undefined;
45
- }>>;
46
- sort: zod.ZodOptional<zod.ZodArray<zod.ZodEffects<zod.ZodString, `${string}_ASC` | `${string}_DESC`, string>, "many">>;
47
- limit: zod.ZodOptional<zod.ZodNumber>;
48
- after: zod.ZodOptional<zod.ZodString>;
49
- }, "strip", zod.ZodTypeAny, {
50
- modelId: string;
51
- sort?: (`${string}_ASC` | `${string}_DESC`)[] | undefined;
52
- limit?: number | undefined;
53
- after?: string | undefined;
54
- where?: {
55
- type?: ScheduleType | undefined;
56
- targetId?: string | undefined;
57
- targetEntryId?: string | undefined;
58
- scheduledBy?: string | undefined;
59
- scheduledOn?: `${number}-${number}-${number}T${number}:${number}:${number}.${number}Z` | undefined;
60
- scheduledOn_gte?: `${number}-${number}-${number}T${number}:${number}:${number}.${number}Z` | undefined;
61
- scheduledOn_lte?: `${number}-${number}-${number}T${number}:${number}:${number}.${number}Z` | undefined;
62
- title_contains?: string | undefined;
63
- title_not_contains?: string | undefined;
64
- } | undefined;
65
- }, {
66
- modelId: string;
67
- sort?: string[] | undefined;
68
- limit?: number | undefined;
69
- after?: string | undefined;
70
- where?: {
71
- type?: ScheduleType | undefined;
72
- targetId?: string | undefined;
73
- targetEntryId?: string | undefined;
74
- scheduledBy?: string | undefined;
75
- scheduledOn?: Date | undefined;
76
- scheduledOn_gte?: Date | undefined;
77
- scheduledOn_lte?: Date | undefined;
78
- title_contains?: string | undefined;
79
- title_not_contains?: string | undefined;
80
- } | undefined;
81
- }>;
82
- export declare const createScheduleSchema: zod.ZodObject<{
83
- modelId: zod.ZodString;
84
- id: zod.ZodString;
85
- input: zod.ZodDiscriminatedUnion<"immediately", [zod.ZodObject<{
86
- immediately: zod.ZodLiteral<true>;
87
- scheduleOn: zod.ZodOptional<zod.ZodNever>;
88
- dateOn: zod.ZodOptional<zod.ZodDate>;
89
- type: zod.ZodNativeEnum<typeof ScheduleType>;
90
- }, "strip", zod.ZodTypeAny, {
91
- type: ScheduleType;
92
- immediately: true;
93
- scheduleOn?: undefined;
94
- dateOn?: Date | undefined;
95
- }, {
96
- type: ScheduleType;
97
- immediately: true;
98
- scheduleOn?: undefined;
99
- dateOn?: Date | undefined;
100
- }>, zod.ZodObject<{
101
- immediately: zod.ZodOptional<zod.ZodLiteral<false>>;
102
- scheduleOn: zod.ZodUnion<[zod.ZodDate, zod.ZodEffects<zod.ZodString, Date, string>]>;
103
- dateOn: zod.ZodEffects<zod.ZodOptional<zod.ZodDate>, Date | undefined, Date | undefined>;
104
- type: zod.ZodNativeEnum<typeof ScheduleType>;
105
- }, "strip", zod.ZodTypeAny, {
106
- type: ScheduleType;
107
- scheduleOn: Date;
108
- immediately?: false | undefined;
109
- dateOn?: Date | undefined;
110
- }, {
111
- type: ScheduleType;
112
- scheduleOn: string | Date;
113
- immediately?: false | undefined;
114
- dateOn?: Date | undefined;
115
- }>]>;
116
- }, "strip", zod.ZodTypeAny, {
117
- id: string;
118
- input: {
119
- type: ScheduleType;
120
- immediately: true;
121
- scheduleOn?: undefined;
122
- dateOn?: Date | undefined;
123
- } | {
124
- type: ScheduleType;
125
- scheduleOn: Date;
126
- immediately?: false | undefined;
127
- dateOn?: Date | undefined;
128
- };
129
- modelId: string;
130
- }, {
131
- id: string;
132
- input: {
133
- type: ScheduleType;
134
- immediately: true;
135
- scheduleOn?: undefined;
136
- dateOn?: Date | undefined;
137
- } | {
138
- type: ScheduleType;
139
- scheduleOn: string | Date;
140
- immediately?: false | undefined;
141
- dateOn?: Date | undefined;
142
- };
143
- modelId: string;
144
- }>;
145
- export declare const updateScheduleSchema: zod.ZodObject<{
146
- modelId: zod.ZodString;
147
- id: zod.ZodString;
148
- input: zod.ZodDiscriminatedUnion<"immediately", [zod.ZodObject<{
149
- immediately: zod.ZodLiteral<true>;
150
- scheduleOn: zod.ZodOptional<zod.ZodNever>;
151
- dateOn: zod.ZodOptional<zod.ZodDate>;
152
- type: zod.ZodNativeEnum<typeof ScheduleType>;
153
- }, "strip", zod.ZodTypeAny, {
154
- type: ScheduleType;
155
- immediately: true;
156
- scheduleOn?: undefined;
157
- dateOn?: Date | undefined;
158
- }, {
159
- type: ScheduleType;
160
- immediately: true;
161
- scheduleOn?: undefined;
162
- dateOn?: Date | undefined;
163
- }>, zod.ZodObject<{
164
- immediately: zod.ZodOptional<zod.ZodLiteral<false>>;
165
- scheduleOn: zod.ZodUnion<[zod.ZodDate, zod.ZodEffects<zod.ZodString, Date, string>]>;
166
- dateOn: zod.ZodEffects<zod.ZodOptional<zod.ZodDate>, Date | undefined, Date | undefined>;
167
- type: zod.ZodNativeEnum<typeof ScheduleType>;
168
- }, "strip", zod.ZodTypeAny, {
169
- type: ScheduleType;
170
- scheduleOn: Date;
171
- immediately?: false | undefined;
172
- dateOn?: Date | undefined;
173
- }, {
174
- type: ScheduleType;
175
- scheduleOn: string | Date;
176
- immediately?: false | undefined;
177
- dateOn?: Date | undefined;
178
- }>]>;
179
- }, "strip", zod.ZodTypeAny, {
180
- id: string;
181
- input: {
182
- type: ScheduleType;
183
- immediately: true;
184
- scheduleOn?: undefined;
185
- dateOn?: Date | undefined;
186
- } | {
187
- type: ScheduleType;
188
- scheduleOn: Date;
189
- immediately?: false | undefined;
190
- dateOn?: Date | undefined;
191
- };
192
- modelId: string;
193
- }, {
194
- id: string;
195
- input: {
196
- type: ScheduleType;
197
- immediately: true;
198
- scheduleOn?: undefined;
199
- dateOn?: Date | undefined;
200
- } | {
201
- type: ScheduleType;
202
- scheduleOn: string | Date;
203
- immediately?: false | undefined;
204
- dateOn?: Date | undefined;
205
- };
206
- modelId: string;
207
- }>;
208
- export declare const cancelScheduleSchema: zod.ZodObject<{
209
- modelId: zod.ZodString;
210
- id: zod.ZodString;
211
- }, "strip", zod.ZodTypeAny, {
212
- id: string;
213
- modelId: string;
214
- }, {
215
- id: string;
216
- modelId: string;
217
- }>;
package/graphql/schema.js DELETED
@@ -1,87 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.updateScheduleSchema = exports.listScheduleSchema = exports.getScheduleSchema = exports.createScheduleSchema = exports.cancelScheduleSchema = void 0;
8
- var _zod = _interopRequireDefault(require("zod"));
9
- var _types = require("../scheduler/types.js");
10
- var _dates = require("../scheduler/dates.js");
11
- const getScheduleSchema = exports.getScheduleSchema = _zod.default.object({
12
- modelId: _zod.default.string(),
13
- id: _zod.default.string()
14
- });
15
- const publishAndUnpublishSchemaType = _zod.default.nativeEnum(_types.ScheduleType);
16
- const listScheduleSchema = exports.listScheduleSchema = _zod.default.object({
17
- modelId: _zod.default.string(),
18
- where: _zod.default.object({
19
- targetId: _zod.default.string().optional(),
20
- targetEntryId: _zod.default.string().optional(),
21
- title_contains: _zod.default.string().optional(),
22
- title_not_contains: _zod.default.string().optional(),
23
- type: publishAndUnpublishSchemaType.optional(),
24
- scheduledBy: _zod.default.string().optional(),
25
- scheduledOn: _zod.default.date().optional().transform(value => {
26
- if (!value) {
27
- return undefined;
28
- }
29
- return (0, _dates.dateToISOString)(value);
30
- }),
31
- scheduledOn_gte: _zod.default.date().optional().transform(value => {
32
- if (!value) {
33
- return undefined;
34
- }
35
- return (0, _dates.dateToISOString)(value);
36
- }),
37
- scheduledOn_lte: _zod.default.date().optional().transform(value => {
38
- if (!value) {
39
- return undefined;
40
- }
41
- return (0, _dates.dateToISOString)(value);
42
- })
43
- }).optional(),
44
- sort: _zod.default.array(_zod.default.string().refine(value => {
45
- const [field, direction] = value.split("_");
46
- if (!field) {
47
- return false;
48
- } else if (direction !== "ASC" && direction !== "DESC") {
49
- return false;
50
- }
51
- return true;
52
- })).optional(),
53
- limit: _zod.default.number().optional(),
54
- after: _zod.default.string().optional()
55
- });
56
- const dateOnSchema = _zod.default.date().optional().transform(value => {
57
- return value instanceof Date ? value : undefined;
58
- });
59
- const schedulerInputSchema = _zod.default.discriminatedUnion("immediately", [_zod.default.object({
60
- immediately: _zod.default.literal(true),
61
- scheduleOn: _zod.default.never().optional(),
62
- dateOn: _zod.default.date().optional(),
63
- type: publishAndUnpublishSchemaType
64
- }), _zod.default.object({
65
- immediately: _zod.default.literal(false).optional(),
66
- scheduleOn: _zod.default.date().or(_zod.default.string().transform(value => {
67
- return new Date(value);
68
- })),
69
- dateOn: dateOnSchema,
70
- type: publishAndUnpublishSchemaType
71
- })]);
72
- const createScheduleSchema = exports.createScheduleSchema = _zod.default.object({
73
- modelId: _zod.default.string(),
74
- id: _zod.default.string(),
75
- input: schedulerInputSchema
76
- });
77
- const updateScheduleSchema = exports.updateScheduleSchema = _zod.default.object({
78
- modelId: _zod.default.string(),
79
- id: _zod.default.string(),
80
- input: schedulerInputSchema
81
- });
82
- const cancelScheduleSchema = exports.cancelScheduleSchema = _zod.default.object({
83
- modelId: _zod.default.string(),
84
- id: _zod.default.string()
85
- });
86
-
87
- //# sourceMappingURL=schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_zod","_interopRequireDefault","require","_types","_dates","getScheduleSchema","exports","zod","object","modelId","string","id","publishAndUnpublishSchemaType","nativeEnum","ScheduleType","listScheduleSchema","where","targetId","optional","targetEntryId","title_contains","title_not_contains","type","scheduledBy","scheduledOn","date","transform","value","undefined","dateToISOString","scheduledOn_gte","scheduledOn_lte","sort","array","refine","field","direction","split","limit","number","after","dateOnSchema","Date","schedulerInputSchema","discriminatedUnion","immediately","literal","scheduleOn","never","dateOn","or","createScheduleSchema","input","updateScheduleSchema","cancelScheduleSchema"],"sources":["schema.ts"],"sourcesContent":["import zod from \"zod\";\nimport type {\n CmsEntryListSortAsc,\n CmsEntryListSortDesc\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { type DateOnType, ScheduleType } from \"~/scheduler/types.js\";\nimport { dateToISOString } from \"~/scheduler/dates.js\";\n\nexport const getScheduleSchema = zod.object({\n modelId: zod.string(),\n id: zod.string()\n});\n\nconst publishAndUnpublishSchemaType = zod.nativeEnum(ScheduleType);\n\nexport const listScheduleSchema = zod.object({\n modelId: zod.string(),\n where: zod\n .object({\n targetId: zod.string().optional(),\n targetEntryId: zod.string().optional(),\n title_contains: zod.string().optional(),\n title_not_contains: zod.string().optional(),\n type: publishAndUnpublishSchemaType.optional(),\n scheduledBy: zod.string().optional(),\n scheduledOn: zod\n .date()\n .optional()\n .transform(value => {\n if (!value) {\n return undefined;\n }\n return dateToISOString(value);\n }),\n scheduledOn_gte: zod\n .date()\n .optional()\n .transform(value => {\n if (!value) {\n return undefined;\n }\n return dateToISOString(value);\n }),\n scheduledOn_lte: zod\n .date()\n .optional()\n .transform(value => {\n if (!value) {\n return undefined;\n }\n return dateToISOString(value);\n })\n })\n .optional(),\n sort: zod\n .array(\n zod.string().refine((value): value is CmsEntryListSortAsc | CmsEntryListSortDesc => {\n const [field, direction] = value.split(\"_\");\n if (!field) {\n return false;\n } else if (direction !== \"ASC\" && direction !== \"DESC\") {\n return false;\n }\n return true;\n })\n )\n .optional(),\n limit: zod.number().optional(),\n after: zod.string().optional()\n});\n\nconst dateOnSchema = zod\n .date()\n .optional()\n .transform<DateOnType | undefined>(value => {\n return value instanceof Date ? value : undefined;\n });\n\nconst schedulerInputSchema = zod.discriminatedUnion(\"immediately\", [\n zod.object({\n immediately: zod.literal(true),\n scheduleOn: zod.never().optional(),\n dateOn: zod.date().optional(),\n type: publishAndUnpublishSchemaType\n }),\n zod.object({\n immediately: zod.literal(false).optional(),\n scheduleOn: zod.date().or(\n zod.string().transform(value => {\n return new Date(value);\n })\n ),\n dateOn: dateOnSchema,\n type: publishAndUnpublishSchemaType\n })\n]);\n\nexport const createScheduleSchema = zod.object({\n modelId: zod.string(),\n id: zod.string(),\n input: schedulerInputSchema\n});\n\nexport const updateScheduleSchema = zod.object({\n modelId: zod.string(),\n id: zod.string(),\n input: schedulerInputSchema\n});\n\nexport const cancelScheduleSchema = zod.object({\n modelId: zod.string(),\n id: zod.string()\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1,23 +0,0 @@
1
- import { SCHEDULED_CMS_ACTION_EVENT_IDENTIFIER } from "../constants.js";
2
- import type { IHandlerAction } from "./types.js";
3
- import type { ScheduleContext } from "../types.js";
4
- export interface IHandlerParams {
5
- actions: IHandlerAction[];
6
- }
7
- export interface IHandlerHandleParams {
8
- payload: IWebinyScheduledCmsActionEvent;
9
- cms: Pick<ScheduleContext["cms"], "scheduler" | "getEntryManager" | "getModel">;
10
- security: Pick<ScheduleContext["security"], "setIdentity" | "withoutAuthorization">;
11
- }
12
- export interface IWebinyScheduledCmsActionEventValues {
13
- id: string;
14
- scheduleOn: string;
15
- }
16
- export interface IWebinyScheduledCmsActionEvent {
17
- [SCHEDULED_CMS_ACTION_EVENT_IDENTIFIER]: IWebinyScheduledCmsActionEventValues;
18
- }
19
- export declare class Handler {
20
- private readonly actions;
21
- constructor(params: IHandlerParams);
22
- handle(params: IHandlerHandleParams): Promise<void>;
23
- }