@webiny/api-headless-cms 6.4.0-beta.2 → 6.4.0-beta.4

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 (58) hide show
  1. package/context.js +2 -0
  2. package/context.js.map +1 -1
  3. package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/CreateEntryDataFactory.js +5 -1
  4. package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/CreateEntryDataFactory.js.map +1 -1
  5. package/features/contentEntry/entryDataFactories/CreateEntryRevisionFromDataFactory/CreateEntryRevisionFromDataFactory.js +2 -1
  6. package/features/contentEntry/entryDataFactories/CreateEntryRevisionFromDataFactory/CreateEntryRevisionFromDataFactory.js.map +1 -1
  7. package/features/contentEntry/entryDataFactories/UpdateEntryDataFactory/UpdateEntryDataFactory.js +5 -1
  8. package/features/contentEntry/entryDataFactories/UpdateEntryDataFactory/UpdateEntryDataFactory.js.map +1 -1
  9. package/features/contentEntry/entryDataFactories/expiresAt.d.ts +5 -0
  10. package/features/contentEntry/entryDataFactories/expiresAt.js +9 -0
  11. package/features/contentEntry/entryDataFactories/expiresAt.js.map +1 -0
  12. package/features/modelBuilder/fields/TextFieldType.d.ts +11 -1
  13. package/features/modelBuilder/fields/TextFieldType.js +20 -2
  14. package/features/modelBuilder/fields/TextFieldType.js.map +1 -1
  15. package/features/modelBuilder/index.d.ts +1 -0
  16. package/features/modelBuilder/index.js +2 -2
  17. package/features/storage/feature.js +2 -0
  18. package/features/storage/feature.js.map +1 -1
  19. package/features/storage/fields/CompressedTextStorageTransform.d.ts +2 -1
  20. package/features/storage/fields/CompressedTextStorageTransform.js +2 -1
  21. package/features/storage/fields/CompressedTextStorageTransform.js.map +1 -1
  22. package/features/storage/fields/EncryptedTextStorageTransform.d.ts +14 -0
  23. package/features/storage/fields/EncryptedTextStorageTransform.js +36 -0
  24. package/features/storage/fields/EncryptedTextStorageTransform.js.map +1 -0
  25. package/features/webhooks/CmsWebhookFactory.d.ts +11 -0
  26. package/features/webhooks/CmsWebhookFactory.js +44 -0
  27. package/features/webhooks/CmsWebhookFactory.js.map +1 -0
  28. package/features/webhooks/feature.d.ts +4 -0
  29. package/features/webhooks/feature.js +25 -0
  30. package/features/webhooks/feature.js.map +1 -0
  31. package/features/webhooks/handlers/OnEntryCreatedHandler.d.ts +11 -0
  32. package/features/webhooks/handlers/OnEntryCreatedHandler.js +22 -0
  33. package/features/webhooks/handlers/OnEntryCreatedHandler.js.map +1 -0
  34. package/features/webhooks/handlers/OnEntryDeletedHandler.d.ts +11 -0
  35. package/features/webhooks/handlers/OnEntryDeletedHandler.js +23 -0
  36. package/features/webhooks/handlers/OnEntryDeletedHandler.js.map +1 -0
  37. package/features/webhooks/handlers/OnEntryPublishedHandler.d.ts +11 -0
  38. package/features/webhooks/handlers/OnEntryPublishedHandler.js +22 -0
  39. package/features/webhooks/handlers/OnEntryPublishedHandler.js.map +1 -0
  40. package/features/webhooks/handlers/OnEntryRestoredHandler.d.ts +11 -0
  41. package/features/webhooks/handlers/OnEntryRestoredHandler.js +22 -0
  42. package/features/webhooks/handlers/OnEntryRestoredHandler.js.map +1 -0
  43. package/features/webhooks/handlers/OnEntryTrashedHandler.d.ts +11 -0
  44. package/features/webhooks/handlers/OnEntryTrashedHandler.js +23 -0
  45. package/features/webhooks/handlers/OnEntryTrashedHandler.js.map +1 -0
  46. package/features/webhooks/handlers/OnEntryUnpublishedHandler.d.ts +11 -0
  47. package/features/webhooks/handlers/OnEntryUnpublishedHandler.js +22 -0
  48. package/features/webhooks/handlers/OnEntryUnpublishedHandler.js.map +1 -0
  49. package/features/webhooks/handlers/OnEntryUpdatedHandler.d.ts +11 -0
  50. package/features/webhooks/handlers/OnEntryUpdatedHandler.js +23 -0
  51. package/features/webhooks/handlers/OnEntryUpdatedHandler.js.map +1 -0
  52. package/graphql/schema/createSingularSDL.js +2 -0
  53. package/graphql/schema/createSingularSDL.js.map +1 -1
  54. package/package.json +27 -25
  55. package/types/types.d.ts +6 -0
  56. package/types/types.js.map +1 -1
  57. package/utils/entryStorage.js +6 -6
  58. package/utils/entryStorage.js.map +1 -1
@@ -0,0 +1,36 @@
1
+ import { StorageTransform } from "../abstractions/StorageTransform.js";
2
+ import { Encryption } from "@webiny/api-core/features/encryption/index.js";
3
+ import { TextFieldTypes } from "../../modelBuilder/index.js";
4
+ class EncryptedTextStorageTransformImpl {
5
+ constructor(encryption){
6
+ this.encryption = encryption;
7
+ this.fieldType = TextFieldTypes.ENCRYPTED;
8
+ }
9
+ async fromStorage(params) {
10
+ const { value } = params;
11
+ if (!value || "string" != typeof value || 0 === value.length) return value;
12
+ try {
13
+ return await this.encryption.decrypt(value);
14
+ } catch {
15
+ return value;
16
+ }
17
+ }
18
+ async toStorage(params) {
19
+ const { value } = params;
20
+ if (!value || "string" != typeof value || 0 === value.length) return value;
21
+ try {
22
+ return await this.encryption.encrypt(value);
23
+ } catch {
24
+ return value;
25
+ }
26
+ }
27
+ }
28
+ const EncryptedTextStorageTransform = StorageTransform.createImplementation({
29
+ implementation: EncryptedTextStorageTransformImpl,
30
+ dependencies: [
31
+ Encryption
32
+ ]
33
+ });
34
+ export { EncryptedTextStorageTransform };
35
+
36
+ //# sourceMappingURL=EncryptedTextStorageTransform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/storage/fields/EncryptedTextStorageTransform.js","sources":["../../../../src/features/storage/fields/EncryptedTextStorageTransform.ts"],"sourcesContent":["import { StorageTransform } from \"../abstractions/StorageTransform.js\";\nimport { Encryption } from \"@webiny/api-core/features/encryption/index.js\";\nimport { TextFieldTypes } from \"~/features/modelBuilder/index.js\";\n\nclass EncryptedTextStorageTransformImpl implements StorageTransform.Interface<string, string> {\n public readonly fieldType = TextFieldTypes.ENCRYPTED;\n\n public constructor(private readonly encryption: Encryption.Interface) {}\n\n public async fromStorage(\n params: StorageTransform.FromStorageParams<unknown, string>\n ): StorageTransform.FromStorageResponse<string> {\n const { value } = params;\n if (!value || typeof value !== \"string\" || value.length === 0) {\n return value as string;\n }\n try {\n return await this.encryption.decrypt(value);\n } catch {\n return value;\n }\n }\n\n public async toStorage(\n params: StorageTransform.ToStorageParams<unknown, string>\n ): StorageTransform.ToStorageResponse<string> {\n const { value } = params;\n if (!value || typeof value !== \"string\" || value.length === 0) {\n return value as string;\n }\n\n try {\n return await this.encryption.encrypt(value);\n } catch {\n return value;\n }\n }\n}\n\nexport const EncryptedTextStorageTransform = StorageTransform.createImplementation({\n implementation: EncryptedTextStorageTransformImpl,\n dependencies: [Encryption]\n});\n"],"names":["EncryptedTextStorageTransformImpl","encryption","TextFieldTypes","params","value","EncryptedTextStorageTransform","StorageTransform","Encryption"],"mappings":";;;AAIA,MAAMA;IAGF,YAAoCC,UAAgC,CAAE;aAAlCA,UAAU,GAAVA;aAFpB,SAAS,GAAGC,eAAe,SAAS;IAEmB;IAEvE,MAAa,YACTC,MAA2D,EACf;QAC5C,MAAM,EAAEC,KAAK,EAAE,GAAGD;QAClB,IAAI,CAACC,SAAS,AAAiB,YAAjB,OAAOA,SAAsBA,AAAiB,MAAjBA,MAAM,MAAM,EACnD,OAAOA;QAEX,IAAI;YACA,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACA;QACzC,EAAE,OAAM;YACJ,OAAOA;QACX;IACJ;IAEA,MAAa,UACTD,MAAyD,EACf;QAC1C,MAAM,EAAEC,KAAK,EAAE,GAAGD;QAClB,IAAI,CAACC,SAAS,AAAiB,YAAjB,OAAOA,SAAsBA,AAAiB,MAAjBA,MAAM,MAAM,EACnD,OAAOA;QAGX,IAAI;YACA,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACA;QACzC,EAAE,OAAM;YACJ,OAAOA;QACX;IACJ;AACJ;AAEO,MAAMC,gCAAgCC,iBAAiB,oBAAoB,CAAC;IAC/E,gBAAgBN;IAChB,cAAc;QAACO;KAAW;AAC9B"}
@@ -0,0 +1,11 @@
1
+ import { WebhookFactory as WebhookFactoryAbstraction } from "@webiny/api-core/features/webhooks/index.js";
2
+ import { ListModelsUseCase } from "../../features/contentModel/ListModels/abstractions.js";
3
+ declare class CmsWebhookFactoryImpl implements WebhookFactoryAbstraction.Interface {
4
+ private listModels;
5
+ constructor(listModels: ListModelsUseCase.Interface);
6
+ execute(): Promise<WebhookFactoryAbstraction.Definition[]>;
7
+ }
8
+ export declare const CmsWebhookFactory: typeof CmsWebhookFactoryImpl & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/webhooks/Webhook/abstractions/WebhookFactory").IWebhookFactory>;
10
+ };
11
+ export {};
@@ -0,0 +1,44 @@
1
+ import { WebhookFactory } from "@webiny/api-core/features/webhooks/index.js";
2
+ import { ListModelsUseCase } from "../contentModel/ListModels/abstractions.js";
3
+ const ACTIONS = [
4
+ "created",
5
+ "updated",
6
+ "deleted",
7
+ "published",
8
+ "unpublished",
9
+ "trashed",
10
+ "restored"
11
+ ];
12
+ class CmsWebhookFactoryImpl {
13
+ constructor(listModels){
14
+ this.listModels = listModels;
15
+ }
16
+ async execute() {
17
+ const result = await this.listModels.execute({
18
+ includePrivate: false,
19
+ includePlugins: true
20
+ });
21
+ if (result.isFail()) return [];
22
+ return result.value.reduce((events, model)=>{
23
+ if (model.tags?.includes("$hidden:true")) return events;
24
+ for (const action of ACTIONS)events.push({
25
+ app: "cms",
26
+ appLabel: "Headless CMS",
27
+ entity: model.modelId,
28
+ entityLabel: model.name,
29
+ eventName: `cms.entry.${model.modelId}.${action}`,
30
+ label: `Entry ${action.charAt(0).toUpperCase() + action.slice(1)}`
31
+ });
32
+ return events;
33
+ }, []);
34
+ }
35
+ }
36
+ const CmsWebhookFactory = WebhookFactory.createImplementation({
37
+ implementation: CmsWebhookFactoryImpl,
38
+ dependencies: [
39
+ ListModelsUseCase
40
+ ]
41
+ });
42
+ export { CmsWebhookFactory };
43
+
44
+ //# sourceMappingURL=CmsWebhookFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/webhooks/CmsWebhookFactory.js","sources":["../../../src/features/webhooks/CmsWebhookFactory.ts"],"sourcesContent":["import { WebhookFactory as WebhookFactoryAbstraction } from \"@webiny/api-core/features/webhooks/index.js\";\nimport { ListModelsUseCase } from \"~/features/contentModel/ListModels/abstractions.js\";\n\nconst ACTIONS = [\n \"created\",\n \"updated\",\n \"deleted\",\n \"published\",\n \"unpublished\",\n \"trashed\",\n \"restored\"\n] as const;\n\nclass CmsWebhookFactoryImpl implements WebhookFactoryAbstraction.Interface {\n constructor(private listModels: ListModelsUseCase.Interface) {}\n\n public async execute(): Promise<WebhookFactoryAbstraction.Definition[]> {\n const result = await this.listModels.execute({\n includePrivate: false,\n includePlugins: true\n });\n if (result.isFail()) {\n return [];\n }\n\n return result.value.reduce<WebhookFactoryAbstraction.Definition[]>((events, model) => {\n if (model.tags?.includes(\"$hidden:true\")) {\n return events;\n }\n\n for (const action of ACTIONS) {\n events.push({\n app: \"cms\",\n appLabel: \"Headless CMS\",\n entity: model.modelId,\n entityLabel: model.name,\n eventName: `cms.entry.${model.modelId}.${action}`,\n label: `Entry ${action.charAt(0).toUpperCase() + action.slice(1)}`\n });\n }\n return events;\n }, []);\n }\n}\n\nexport const CmsWebhookFactory = WebhookFactoryAbstraction.createImplementation({\n implementation: CmsWebhookFactoryImpl,\n dependencies: [ListModelsUseCase]\n});\n"],"names":["ACTIONS","CmsWebhookFactoryImpl","listModels","result","events","model","action","CmsWebhookFactory","WebhookFactoryAbstraction","ListModelsUseCase"],"mappings":";;AAGA,MAAMA,UAAU;IACZ;IACA;IACA;IACA;IACA;IACA;IACA;CACH;AAED,MAAMC;IACF,YAAoBC,UAAuC,CAAE;aAAzCA,UAAU,GAAVA;IAA0C;IAE9D,MAAa,UAA2D;QACpE,MAAMC,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YACzC,gBAAgB;YAChB,gBAAgB;QACpB;QACA,IAAIA,OAAO,MAAM,IACb,OAAO,EAAE;QAGb,OAAOA,OAAO,KAAK,CAAC,MAAM,CAAyC,CAACC,QAAQC;YACxE,IAAIA,MAAM,IAAI,EAAE,SAAS,iBACrB,OAAOD;YAGX,KAAK,MAAME,UAAUN,QACjBI,OAAO,IAAI,CAAC;gBACR,KAAK;gBACL,UAAU;gBACV,QAAQC,MAAM,OAAO;gBACrB,aAAaA,MAAM,IAAI;gBACvB,WAAW,CAAC,UAAU,EAAEA,MAAM,OAAO,CAAC,CAAC,EAAEC,QAAQ;gBACjD,OAAO,CAAC,MAAM,EAAEA,OAAO,MAAM,CAAC,GAAG,WAAW,KAAKA,OAAO,KAAK,CAAC,IAAI;YACtE;YAEJ,OAAOF;QACX,GAAG,EAAE;IACT;AACJ;AAEO,MAAMG,oBAAoBC,eAAAA,oBAA8C,CAAC;IAC5E,gBAAgBP;IAChB,cAAc;QAACQ;KAAkB;AACrC"}
@@ -0,0 +1,4 @@
1
+ export declare const CmsWebhooksFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,25 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { CmsWebhookFactory } from "./CmsWebhookFactory.js";
3
+ import { OnEntryCreatedHandler } from "./handlers/OnEntryCreatedHandler.js";
4
+ import { OnEntryUpdatedHandler } from "./handlers/OnEntryUpdatedHandler.js";
5
+ import { OnEntryDeletedHandler } from "./handlers/OnEntryDeletedHandler.js";
6
+ import { OnEntryPublishedHandler } from "./handlers/OnEntryPublishedHandler.js";
7
+ import { OnEntryUnpublishedHandler } from "./handlers/OnEntryUnpublishedHandler.js";
8
+ import { OnEntryTrashedHandler } from "./handlers/OnEntryTrashedHandler.js";
9
+ import { OnEntryRestoredHandler } from "./handlers/OnEntryRestoredHandler.js";
10
+ const CmsWebhooksFeature = createFeature({
11
+ name: "CmsWebhooks",
12
+ register (container) {
13
+ container.register(CmsWebhookFactory).inSingletonScope();
14
+ container.register(OnEntryCreatedHandler);
15
+ container.register(OnEntryUpdatedHandler);
16
+ container.register(OnEntryDeletedHandler);
17
+ container.register(OnEntryPublishedHandler);
18
+ container.register(OnEntryUnpublishedHandler);
19
+ container.register(OnEntryTrashedHandler);
20
+ container.register(OnEntryRestoredHandler);
21
+ }
22
+ });
23
+ export { CmsWebhooksFeature };
24
+
25
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/webhooks/feature.js","sources":["../../../src/features/webhooks/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { CmsWebhookFactory } from \"./CmsWebhookFactory.js\";\nimport { OnEntryCreatedHandler } from \"./handlers/OnEntryCreatedHandler.js\";\nimport { OnEntryUpdatedHandler } from \"./handlers/OnEntryUpdatedHandler.js\";\nimport { OnEntryDeletedHandler } from \"./handlers/OnEntryDeletedHandler.js\";\nimport { OnEntryPublishedHandler } from \"./handlers/OnEntryPublishedHandler.js\";\nimport { OnEntryUnpublishedHandler } from \"./handlers/OnEntryUnpublishedHandler.js\";\nimport { OnEntryTrashedHandler } from \"./handlers/OnEntryTrashedHandler.js\";\nimport { OnEntryRestoredHandler } from \"./handlers/OnEntryRestoredHandler.js\";\n\nexport const CmsWebhooksFeature = createFeature({\n name: \"CmsWebhooks\",\n register(container) {\n container.register(CmsWebhookFactory).inSingletonScope();\n container.register(OnEntryCreatedHandler);\n container.register(OnEntryUpdatedHandler);\n container.register(OnEntryDeletedHandler);\n container.register(OnEntryPublishedHandler);\n container.register(OnEntryUnpublishedHandler);\n container.register(OnEntryTrashedHandler);\n container.register(OnEntryRestoredHandler);\n }\n});\n"],"names":["CmsWebhooksFeature","createFeature","container","CmsWebhookFactory","OnEntryCreatedHandler","OnEntryUpdatedHandler","OnEntryDeletedHandler","OnEntryPublishedHandler","OnEntryUnpublishedHandler","OnEntryTrashedHandler","OnEntryRestoredHandler"],"mappings":";;;;;;;;;AAUO,MAAMA,qBAAqBC,cAAc;IAC5C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC,mBAAmB,gBAAgB;QACtDD,UAAU,QAAQ,CAACE;QACnBF,UAAU,QAAQ,CAACG;QACnBH,UAAU,QAAQ,CAACI;QACnBJ,UAAU,QAAQ,CAACK;QACnBL,UAAU,QAAQ,CAACM;QACnBN,UAAU,QAAQ,CAACO;QACnBP,UAAU,QAAQ,CAACQ;IACvB;AACJ"}
@@ -0,0 +1,11 @@
1
+ import { EntryAfterCreateEventHandler } from "../../../features/contentEntry/CreateEntry/events.js";
2
+ import { WebhookDispatcher } from "@webiny/api-core/features/webhooks/index.js";
3
+ declare class OnEntryCreatedHandlerImpl implements EntryAfterCreateEventHandler.Interface {
4
+ private dispatcher;
5
+ constructor(dispatcher: WebhookDispatcher.Interface);
6
+ handle(event: EntryAfterCreateEventHandler.Event): Promise<void>;
7
+ }
8
+ export declare const OnEntryCreatedHandler: typeof OnEntryCreatedHandlerImpl & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher").IEventHandler<import("~/features/contentEntry/CreateEntry/events.js").EntryAfterCreateEvent>>;
10
+ };
11
+ export {};
@@ -0,0 +1,22 @@
1
+ import { EntryAfterCreateEventHandler } from "../../contentEntry/CreateEntry/events.js";
2
+ import { WebhookDispatcher } from "@webiny/api-core/features/webhooks/index.js";
3
+ class OnEntryCreatedHandlerImpl {
4
+ constructor(dispatcher){
5
+ this.dispatcher = dispatcher;
6
+ }
7
+ async handle(event) {
8
+ const { entry, model } = event.payload;
9
+ await this.dispatcher.dispatch(`cms.entry.${model.modelId}.created`, {
10
+ entry
11
+ });
12
+ }
13
+ }
14
+ const OnEntryCreatedHandler = EntryAfterCreateEventHandler.createImplementation({
15
+ implementation: OnEntryCreatedHandlerImpl,
16
+ dependencies: [
17
+ WebhookDispatcher
18
+ ]
19
+ });
20
+ export { OnEntryCreatedHandler };
21
+
22
+ //# sourceMappingURL=OnEntryCreatedHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/webhooks/handlers/OnEntryCreatedHandler.js","sources":["../../../../src/features/webhooks/handlers/OnEntryCreatedHandler.ts"],"sourcesContent":["import { EntryAfterCreateEventHandler } from \"~/features/contentEntry/CreateEntry/events.js\";\nimport { WebhookDispatcher } from \"@webiny/api-core/features/webhooks/index.js\";\n\nclass OnEntryCreatedHandlerImpl implements EntryAfterCreateEventHandler.Interface {\n constructor(private dispatcher: WebhookDispatcher.Interface) {}\n\n async handle(event: EntryAfterCreateEventHandler.Event): Promise<void> {\n const { entry, model } = event.payload;\n await this.dispatcher.dispatch(`cms.entry.${model.modelId}.created`, { entry });\n }\n}\n\nexport const OnEntryCreatedHandler = EntryAfterCreateEventHandler.createImplementation({\n implementation: OnEntryCreatedHandlerImpl,\n dependencies: [WebhookDispatcher]\n});\n"],"names":["OnEntryCreatedHandlerImpl","dispatcher","event","entry","model","OnEntryCreatedHandler","EntryAfterCreateEventHandler","WebhookDispatcher"],"mappings":";;AAGA,MAAMA;IACF,YAAoBC,UAAuC,CAAE;aAAzCA,UAAU,GAAVA;IAA0C;IAE9D,MAAM,OAAOC,KAAyC,EAAiB;QACnE,MAAM,EAAEC,KAAK,EAAEC,KAAK,EAAE,GAAGF,MAAM,OAAO;QACtC,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAEE,MAAM,OAAO,CAAC,QAAQ,CAAC,EAAE;YAAED;QAAM;IACjF;AACJ;AAEO,MAAME,wBAAwBC,6BAA6B,oBAAoB,CAAC;IACnF,gBAAgBN;IAChB,cAAc;QAACO;KAAkB;AACrC"}
@@ -0,0 +1,11 @@
1
+ import { EntryAfterDeleteEventHandler } from "../../../features/contentEntry/DeleteEntry/events.js";
2
+ import { WebhookDispatcher } from "@webiny/api-core/features/webhooks/index.js";
3
+ declare class OnEntryDeletedHandlerImpl implements EntryAfterDeleteEventHandler.Interface {
4
+ private readonly dispatcher;
5
+ constructor(dispatcher: WebhookDispatcher.Interface);
6
+ handle(event: EntryAfterDeleteEventHandler.Event): Promise<void>;
7
+ }
8
+ export declare const OnEntryDeletedHandler: typeof OnEntryDeletedHandlerImpl & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher").IEventHandler<import("~/features/contentEntry/DeleteEntry/events.js").EntryAfterDeleteEvent>>;
10
+ };
11
+ export {};
@@ -0,0 +1,23 @@
1
+ import { EntryAfterDeleteEventHandler } from "../../contentEntry/DeleteEntry/events.js";
2
+ import { WebhookDispatcher } from "@webiny/api-core/features/webhooks/index.js";
3
+ class OnEntryDeletedHandlerImpl {
4
+ constructor(dispatcher){
5
+ this.dispatcher = dispatcher;
6
+ }
7
+ async handle(event) {
8
+ const { entry, model, permanent } = event.payload;
9
+ if (!permanent) return;
10
+ await this.dispatcher.dispatch(`cms.entry.${model.modelId}.deleted`, {
11
+ entry
12
+ });
13
+ }
14
+ }
15
+ const OnEntryDeletedHandler = EntryAfterDeleteEventHandler.createImplementation({
16
+ implementation: OnEntryDeletedHandlerImpl,
17
+ dependencies: [
18
+ WebhookDispatcher
19
+ ]
20
+ });
21
+ export { OnEntryDeletedHandler };
22
+
23
+ //# sourceMappingURL=OnEntryDeletedHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/webhooks/handlers/OnEntryDeletedHandler.js","sources":["../../../../src/features/webhooks/handlers/OnEntryDeletedHandler.ts"],"sourcesContent":["import { EntryAfterDeleteEventHandler } from \"~/features/contentEntry/DeleteEntry/events.js\";\nimport { WebhookDispatcher } from \"@webiny/api-core/features/webhooks/index.js\";\n\nclass OnEntryDeletedHandlerImpl implements EntryAfterDeleteEventHandler.Interface {\n constructor(private readonly dispatcher: WebhookDispatcher.Interface) {}\n\n async handle(event: EntryAfterDeleteEventHandler.Event): Promise<void> {\n const { entry, model, permanent } = event.payload;\n if (!permanent) {\n return;\n }\n await this.dispatcher.dispatch(`cms.entry.${model.modelId}.deleted`, { entry });\n }\n}\n\nexport const OnEntryDeletedHandler = EntryAfterDeleteEventHandler.createImplementation({\n implementation: OnEntryDeletedHandlerImpl,\n dependencies: [WebhookDispatcher]\n});\n"],"names":["OnEntryDeletedHandlerImpl","dispatcher","event","entry","model","permanent","OnEntryDeletedHandler","EntryAfterDeleteEventHandler","WebhookDispatcher"],"mappings":";;AAGA,MAAMA;IACF,YAA6BC,UAAuC,CAAE;aAAzCA,UAAU,GAAVA;IAA0C;IAEvE,MAAM,OAAOC,KAAyC,EAAiB;QACnE,MAAM,EAAEC,KAAK,EAAEC,KAAK,EAAEC,SAAS,EAAE,GAAGH,MAAM,OAAO;QACjD,IAAI,CAACG,WACD;QAEJ,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAED,MAAM,OAAO,CAAC,QAAQ,CAAC,EAAE;YAAED;QAAM;IACjF;AACJ;AAEO,MAAMG,wBAAwBC,6BAA6B,oBAAoB,CAAC;IACnF,gBAAgBP;IAChB,cAAc;QAACQ;KAAkB;AACrC"}
@@ -0,0 +1,11 @@
1
+ import { EntryAfterPublishEventHandler } from "../../../features/contentEntry/PublishEntry/events.js";
2
+ import { WebhookDispatcher } from "@webiny/api-core/features/webhooks/index.js";
3
+ declare class OnEntryPublishedHandlerImpl implements EntryAfterPublishEventHandler.Interface {
4
+ private dispatcher;
5
+ constructor(dispatcher: WebhookDispatcher.Interface);
6
+ handle(event: EntryAfterPublishEventHandler.Event): Promise<void>;
7
+ }
8
+ export declare const OnEntryPublishedHandler: typeof OnEntryPublishedHandlerImpl & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher").IEventHandler<import("~/features/contentEntry/PublishEntry/events.js").EntryAfterPublishEvent>>;
10
+ };
11
+ export {};
@@ -0,0 +1,22 @@
1
+ import { EntryAfterPublishEventHandler } from "../../contentEntry/PublishEntry/events.js";
2
+ import { WebhookDispatcher } from "@webiny/api-core/features/webhooks/index.js";
3
+ class OnEntryPublishedHandlerImpl {
4
+ constructor(dispatcher){
5
+ this.dispatcher = dispatcher;
6
+ }
7
+ async handle(event) {
8
+ const { entry, model } = event.payload;
9
+ await this.dispatcher.dispatch(`cms.entry.${model.modelId}.published`, {
10
+ entry
11
+ });
12
+ }
13
+ }
14
+ const OnEntryPublishedHandler = EntryAfterPublishEventHandler.createImplementation({
15
+ implementation: OnEntryPublishedHandlerImpl,
16
+ dependencies: [
17
+ WebhookDispatcher
18
+ ]
19
+ });
20
+ export { OnEntryPublishedHandler };
21
+
22
+ //# sourceMappingURL=OnEntryPublishedHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/webhooks/handlers/OnEntryPublishedHandler.js","sources":["../../../../src/features/webhooks/handlers/OnEntryPublishedHandler.ts"],"sourcesContent":["import { EntryAfterPublishEventHandler } from \"~/features/contentEntry/PublishEntry/events.js\";\nimport { WebhookDispatcher } from \"@webiny/api-core/features/webhooks/index.js\";\n\nclass OnEntryPublishedHandlerImpl implements EntryAfterPublishEventHandler.Interface {\n constructor(private dispatcher: WebhookDispatcher.Interface) {}\n\n async handle(event: EntryAfterPublishEventHandler.Event): Promise<void> {\n const { entry, model } = event.payload;\n await this.dispatcher.dispatch(`cms.entry.${model.modelId}.published`, { entry });\n }\n}\n\nexport const OnEntryPublishedHandler = EntryAfterPublishEventHandler.createImplementation({\n implementation: OnEntryPublishedHandlerImpl,\n dependencies: [WebhookDispatcher]\n});\n"],"names":["OnEntryPublishedHandlerImpl","dispatcher","event","entry","model","OnEntryPublishedHandler","EntryAfterPublishEventHandler","WebhookDispatcher"],"mappings":";;AAGA,MAAMA;IACF,YAAoBC,UAAuC,CAAE;aAAzCA,UAAU,GAAVA;IAA0C;IAE9D,MAAM,OAAOC,KAA0C,EAAiB;QACpE,MAAM,EAAEC,KAAK,EAAEC,KAAK,EAAE,GAAGF,MAAM,OAAO;QACtC,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAEE,MAAM,OAAO,CAAC,UAAU,CAAC,EAAE;YAAED;QAAM;IACnF;AACJ;AAEO,MAAME,0BAA0BC,8BAA8B,oBAAoB,CAAC;IACtF,gBAAgBN;IAChB,cAAc;QAACO;KAAkB;AACrC"}
@@ -0,0 +1,11 @@
1
+ import { EntryAfterRestoreFromBinEventHandler } from "../../../features/contentEntry/RestoreEntryFromBin/events.js";
2
+ import { WebhookDispatcher } from "@webiny/api-core/features/webhooks/index.js";
3
+ declare class OnEntryRestoredHandlerImpl implements EntryAfterRestoreFromBinEventHandler.Interface {
4
+ private readonly dispatcher;
5
+ constructor(dispatcher: WebhookDispatcher.Interface);
6
+ handle(event: EntryAfterRestoreFromBinEventHandler.Event): Promise<void>;
7
+ }
8
+ export declare const OnEntryRestoredHandler: typeof OnEntryRestoredHandlerImpl & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher").IEventHandler<import("~/features/contentEntry/RestoreEntryFromBin/events.js").EntryAfterRestoreFromBinEvent>>;
10
+ };
11
+ export {};
@@ -0,0 +1,22 @@
1
+ import { EntryAfterRestoreFromBinEventHandler } from "../../contentEntry/RestoreEntryFromBin/events.js";
2
+ import { WebhookDispatcher } from "@webiny/api-core/features/webhooks/index.js";
3
+ class OnEntryRestoredHandlerImpl {
4
+ constructor(dispatcher){
5
+ this.dispatcher = dispatcher;
6
+ }
7
+ async handle(event) {
8
+ const { entry, model } = event.payload;
9
+ await this.dispatcher.dispatch(`cms.entry.${model.modelId}.restored`, {
10
+ entry
11
+ });
12
+ }
13
+ }
14
+ const OnEntryRestoredHandler = EntryAfterRestoreFromBinEventHandler.createImplementation({
15
+ implementation: OnEntryRestoredHandlerImpl,
16
+ dependencies: [
17
+ WebhookDispatcher
18
+ ]
19
+ });
20
+ export { OnEntryRestoredHandler };
21
+
22
+ //# sourceMappingURL=OnEntryRestoredHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/webhooks/handlers/OnEntryRestoredHandler.js","sources":["../../../../src/features/webhooks/handlers/OnEntryRestoredHandler.ts"],"sourcesContent":["import { EntryAfterRestoreFromBinEventHandler } from \"~/features/contentEntry/RestoreEntryFromBin/events.js\";\nimport { WebhookDispatcher } from \"@webiny/api-core/features/webhooks/index.js\";\n\nclass OnEntryRestoredHandlerImpl implements EntryAfterRestoreFromBinEventHandler.Interface {\n constructor(private readonly dispatcher: WebhookDispatcher.Interface) {}\n\n async handle(event: EntryAfterRestoreFromBinEventHandler.Event): Promise<void> {\n const { entry, model } = event.payload;\n await this.dispatcher.dispatch(`cms.entry.${model.modelId}.restored`, { entry });\n }\n}\n\nexport const OnEntryRestoredHandler = EntryAfterRestoreFromBinEventHandler.createImplementation({\n implementation: OnEntryRestoredHandlerImpl,\n dependencies: [WebhookDispatcher]\n});\n"],"names":["OnEntryRestoredHandlerImpl","dispatcher","event","entry","model","OnEntryRestoredHandler","EntryAfterRestoreFromBinEventHandler","WebhookDispatcher"],"mappings":";;AAGA,MAAMA;IACF,YAA6BC,UAAuC,CAAE;aAAzCA,UAAU,GAAVA;IAA0C;IAEvE,MAAM,OAAOC,KAAiD,EAAiB;QAC3E,MAAM,EAAEC,KAAK,EAAEC,KAAK,EAAE,GAAGF,MAAM,OAAO;QACtC,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAEE,MAAM,OAAO,CAAC,SAAS,CAAC,EAAE;YAAED;QAAM;IAClF;AACJ;AAEO,MAAME,yBAAyBC,qCAAqC,oBAAoB,CAAC;IAC5F,gBAAgBN;IAChB,cAAc;QAACO;KAAkB;AACrC"}
@@ -0,0 +1,11 @@
1
+ import { EntryAfterDeleteEventHandler } from "../../../features/contentEntry/DeleteEntry/events.js";
2
+ import { WebhookDispatcher } from "@webiny/api-core/features/webhooks/index.js";
3
+ declare class OnEntryTrashedHandlerImpl implements EntryAfterDeleteEventHandler.Interface {
4
+ private readonly dispatcher;
5
+ constructor(dispatcher: WebhookDispatcher.Interface);
6
+ handle(event: EntryAfterDeleteEventHandler.Event): Promise<void>;
7
+ }
8
+ export declare const OnEntryTrashedHandler: typeof OnEntryTrashedHandlerImpl & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher").IEventHandler<import("~/features/contentEntry/DeleteEntry/events.js").EntryAfterDeleteEvent>>;
10
+ };
11
+ export {};
@@ -0,0 +1,23 @@
1
+ import { EntryAfterDeleteEventHandler } from "../../contentEntry/DeleteEntry/events.js";
2
+ import { WebhookDispatcher } from "@webiny/api-core/features/webhooks/index.js";
3
+ class OnEntryTrashedHandlerImpl {
4
+ constructor(dispatcher){
5
+ this.dispatcher = dispatcher;
6
+ }
7
+ async handle(event) {
8
+ const { entry, model, permanent } = event.payload;
9
+ if (permanent) return;
10
+ await this.dispatcher.dispatch(`cms.entry.${model.modelId}.trashed`, {
11
+ entry
12
+ });
13
+ }
14
+ }
15
+ const OnEntryTrashedHandler = EntryAfterDeleteEventHandler.createImplementation({
16
+ implementation: OnEntryTrashedHandlerImpl,
17
+ dependencies: [
18
+ WebhookDispatcher
19
+ ]
20
+ });
21
+ export { OnEntryTrashedHandler };
22
+
23
+ //# sourceMappingURL=OnEntryTrashedHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/webhooks/handlers/OnEntryTrashedHandler.js","sources":["../../../../src/features/webhooks/handlers/OnEntryTrashedHandler.ts"],"sourcesContent":["import { EntryAfterDeleteEventHandler } from \"~/features/contentEntry/DeleteEntry/events.js\";\nimport { WebhookDispatcher } from \"@webiny/api-core/features/webhooks/index.js\";\n\nclass OnEntryTrashedHandlerImpl implements EntryAfterDeleteEventHandler.Interface {\n constructor(private readonly dispatcher: WebhookDispatcher.Interface) {}\n\n async handle(event: EntryAfterDeleteEventHandler.Event): Promise<void> {\n const { entry, model, permanent } = event.payload;\n if (permanent) {\n return;\n }\n await this.dispatcher.dispatch(`cms.entry.${model.modelId}.trashed`, { entry });\n }\n}\n\nexport const OnEntryTrashedHandler = EntryAfterDeleteEventHandler.createImplementation({\n implementation: OnEntryTrashedHandlerImpl,\n dependencies: [WebhookDispatcher]\n});\n"],"names":["OnEntryTrashedHandlerImpl","dispatcher","event","entry","model","permanent","OnEntryTrashedHandler","EntryAfterDeleteEventHandler","WebhookDispatcher"],"mappings":";;AAGA,MAAMA;IACF,YAA6BC,UAAuC,CAAE;aAAzCA,UAAU,GAAVA;IAA0C;IAEvE,MAAM,OAAOC,KAAyC,EAAiB;QACnE,MAAM,EAAEC,KAAK,EAAEC,KAAK,EAAEC,SAAS,EAAE,GAAGH,MAAM,OAAO;QACjD,IAAIG,WACA;QAEJ,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAED,MAAM,OAAO,CAAC,QAAQ,CAAC,EAAE;YAAED;QAAM;IACjF;AACJ;AAEO,MAAMG,wBAAwBC,6BAA6B,oBAAoB,CAAC;IACnF,gBAAgBP;IAChB,cAAc;QAACQ;KAAkB;AACrC"}
@@ -0,0 +1,11 @@
1
+ import { EntryAfterUnpublishEventHandler } from "../../../features/contentEntry/UnpublishEntry/events.js";
2
+ import { WebhookDispatcher } from "@webiny/api-core/features/webhooks/index.js";
3
+ declare class OnEntryUnpublishedHandlerImpl implements EntryAfterUnpublishEventHandler.Interface {
4
+ private dispatcher;
5
+ constructor(dispatcher: WebhookDispatcher.Interface);
6
+ handle(event: EntryAfterUnpublishEventHandler.Event): Promise<void>;
7
+ }
8
+ export declare const OnEntryUnpublishedHandler: typeof OnEntryUnpublishedHandlerImpl & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher").IEventHandler<import("~/features/contentEntry/UnpublishEntry/events.js").EntryAfterUnpublishEvent>>;
10
+ };
11
+ export {};
@@ -0,0 +1,22 @@
1
+ import { EntryAfterUnpublishEventHandler } from "../../contentEntry/UnpublishEntry/events.js";
2
+ import { WebhookDispatcher } from "@webiny/api-core/features/webhooks/index.js";
3
+ class OnEntryUnpublishedHandlerImpl {
4
+ constructor(dispatcher){
5
+ this.dispatcher = dispatcher;
6
+ }
7
+ async handle(event) {
8
+ const { entry, model } = event.payload;
9
+ await this.dispatcher.dispatch(`cms.entry.${model.modelId}.unpublished`, {
10
+ entry
11
+ });
12
+ }
13
+ }
14
+ const OnEntryUnpublishedHandler = EntryAfterUnpublishEventHandler.createImplementation({
15
+ implementation: OnEntryUnpublishedHandlerImpl,
16
+ dependencies: [
17
+ WebhookDispatcher
18
+ ]
19
+ });
20
+ export { OnEntryUnpublishedHandler };
21
+
22
+ //# sourceMappingURL=OnEntryUnpublishedHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/webhooks/handlers/OnEntryUnpublishedHandler.js","sources":["../../../../src/features/webhooks/handlers/OnEntryUnpublishedHandler.ts"],"sourcesContent":["import { EntryAfterUnpublishEventHandler } from \"~/features/contentEntry/UnpublishEntry/events.js\";\nimport { WebhookDispatcher } from \"@webiny/api-core/features/webhooks/index.js\";\n\nclass OnEntryUnpublishedHandlerImpl implements EntryAfterUnpublishEventHandler.Interface {\n constructor(private dispatcher: WebhookDispatcher.Interface) {}\n\n async handle(event: EntryAfterUnpublishEventHandler.Event): Promise<void> {\n const { entry, model } = event.payload;\n await this.dispatcher.dispatch(`cms.entry.${model.modelId}.unpublished`, { entry });\n }\n}\n\nexport const OnEntryUnpublishedHandler = EntryAfterUnpublishEventHandler.createImplementation({\n implementation: OnEntryUnpublishedHandlerImpl,\n dependencies: [WebhookDispatcher]\n});\n"],"names":["OnEntryUnpublishedHandlerImpl","dispatcher","event","entry","model","OnEntryUnpublishedHandler","EntryAfterUnpublishEventHandler","WebhookDispatcher"],"mappings":";;AAGA,MAAMA;IACF,YAAoBC,UAAuC,CAAE;aAAzCA,UAAU,GAAVA;IAA0C;IAE9D,MAAM,OAAOC,KAA4C,EAAiB;QACtE,MAAM,EAAEC,KAAK,EAAEC,KAAK,EAAE,GAAGF,MAAM,OAAO;QACtC,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAEE,MAAM,OAAO,CAAC,YAAY,CAAC,EAAE;YAAED;QAAM;IACrF;AACJ;AAEO,MAAME,4BAA4BC,gCAAgC,oBAAoB,CAAC;IAC1F,gBAAgBN;IAChB,cAAc;QAACO;KAAkB;AACrC"}
@@ -0,0 +1,11 @@
1
+ import { EntryAfterUpdateEventHandler } from "../../../features/contentEntry/UpdateEntry/events.js";
2
+ import { WebhookDispatcher } from "@webiny/api-core/features/webhooks/index.js";
3
+ declare class OnEntryUpdatedHandlerImpl implements EntryAfterUpdateEventHandler.Interface {
4
+ private dispatcher;
5
+ constructor(dispatcher: WebhookDispatcher.Interface);
6
+ handle(event: EntryAfterUpdateEventHandler.Event): Promise<void>;
7
+ }
8
+ export declare const OnEntryUpdatedHandler: typeof OnEntryUpdatedHandlerImpl & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher").IEventHandler<import("~/features/contentEntry/UpdateEntry/events.js").EntryAfterUpdateEvent>>;
10
+ };
11
+ export {};
@@ -0,0 +1,23 @@
1
+ import { EntryAfterUpdateEventHandler } from "../../contentEntry/UpdateEntry/events.js";
2
+ import { WebhookDispatcher } from "@webiny/api-core/features/webhooks/index.js";
3
+ class OnEntryUpdatedHandlerImpl {
4
+ constructor(dispatcher){
5
+ this.dispatcher = dispatcher;
6
+ }
7
+ async handle(event) {
8
+ const { entry, model, original } = event.payload;
9
+ await this.dispatcher.dispatch(`cms.entry.${model.modelId}.updated`, {
10
+ entry,
11
+ original
12
+ });
13
+ }
14
+ }
15
+ const OnEntryUpdatedHandler = EntryAfterUpdateEventHandler.createImplementation({
16
+ implementation: OnEntryUpdatedHandlerImpl,
17
+ dependencies: [
18
+ WebhookDispatcher
19
+ ]
20
+ });
21
+ export { OnEntryUpdatedHandler };
22
+
23
+ //# sourceMappingURL=OnEntryUpdatedHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/webhooks/handlers/OnEntryUpdatedHandler.js","sources":["../../../../src/features/webhooks/handlers/OnEntryUpdatedHandler.ts"],"sourcesContent":["import { EntryAfterUpdateEventHandler } from \"~/features/contentEntry/UpdateEntry/events.js\";\nimport { WebhookDispatcher } from \"@webiny/api-core/features/webhooks/index.js\";\n\nclass OnEntryUpdatedHandlerImpl implements EntryAfterUpdateEventHandler.Interface {\n constructor(private dispatcher: WebhookDispatcher.Interface) {}\n\n async handle(event: EntryAfterUpdateEventHandler.Event): Promise<void> {\n const { entry, model, original } = event.payload;\n await this.dispatcher.dispatch(`cms.entry.${model.modelId}.updated`, { entry, original });\n }\n}\n\nexport const OnEntryUpdatedHandler = EntryAfterUpdateEventHandler.createImplementation({\n implementation: OnEntryUpdatedHandlerImpl,\n dependencies: [WebhookDispatcher]\n});\n"],"names":["OnEntryUpdatedHandlerImpl","dispatcher","event","entry","model","original","OnEntryUpdatedHandler","EntryAfterUpdateEventHandler","WebhookDispatcher"],"mappings":";;AAGA,MAAMA;IACF,YAAoBC,UAAuC,CAAE;aAAzCA,UAAU,GAAVA;IAA0C;IAE9D,MAAM,OAAOC,KAAyC,EAAiB;QACnE,MAAM,EAAEC,KAAK,EAAEC,KAAK,EAAEC,QAAQ,EAAE,GAAGH,MAAM,OAAO;QAChD,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAEE,MAAM,OAAO,CAAC,QAAQ,CAAC,EAAE;YAAED;YAAOE;QAAS;IAC3F;AACJ;AAEO,MAAMC,wBAAwBC,6BAA6B,oBAAoB,CAAC;IACnF,gBAAgBP;IAChB,cAAc;QAACQ;KAAkB;AACrC"}
@@ -40,6 +40,8 @@ const createSingularSDL = ({ models, model, fieldRegistry, type })=>{
40
40
  ${onByMetaGqlFields}
41
41
  values: ${singularName}Values
42
42
  live: CmsEntryLive
43
+
44
+ revisionDescription: String
43
45
  }
44
46
 
45
47
  ${fields.map((f)=>f.typeDefs).join("\n")}
@@ -1 +1 @@
1
- {"version":3,"file":"graphql/schema/createSingularSDL.js","sources":["../../../src/graphql/schema/createSingularSDL.ts"],"sourcesContent":["import type { ApiEndpoint, CmsModel } from \"~/types/index.js\";\nimport { renderInputFields } from \"~/utils/renderInputFields.js\";\nimport { renderFields } from \"~/utils/renderFields.js\";\nimport { ENTRY_META_FIELDS, isDateTimeEntryMetaField } from \"~/constants.js\";\nimport type { CmsModelFieldToGraphQLRegistry } from \"~/features/graphql/index.js\";\n\ninterface CreateSingularSDLParams {\n models: CmsModel[];\n model: CmsModel;\n fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;\n type: ApiEndpoint;\n}\n\ninterface CreateSingularSDL {\n (params: CreateSingularSDLParams): string;\n}\n\nexport const createSingularSDL: CreateSingularSDL = ({\n models,\n model,\n fieldRegistry,\n type\n}): string => {\n const inputFields = renderInputFields({\n models,\n model,\n fields: model.fields,\n fieldRegistry\n });\n if (inputFields.length === 0) {\n return \"\";\n }\n\n const fields = renderFields({\n models,\n model,\n fields: model.fields,\n type,\n fieldRegistry\n });\n\n const { singularApiName: singularName } = model;\n\n const inputGqlFields = inputFields.map(f => f.fields).join(\"\\n\");\n\n const onByMetaInputGqlFields = ENTRY_META_FIELDS.map(field => {\n const fieldType = isDateTimeEntryMetaField(field) ? \"DateTime\" : \"CmsIdentityInput\";\n\n return `${field}: ${fieldType}`;\n }).join(\"\\n\");\n\n const onByMetaGqlFields = ENTRY_META_FIELDS.map(field => {\n const fieldType = isDateTimeEntryMetaField(field) ? \"DateTime\" : \"CmsIdentity\";\n\n return `${field}: ${fieldType}`;\n }).join(\"\\n\");\n\n // Had to remove /* GraphQL */ because it causes issues with oxfmt formatting.\n const read = `\n \"\"\"${model.description || singularName}\"\"\"\n \n type ${singularName}Values {\n ${fields.map(f => f.fields).join(\"\\n\") || \"_empty: String\"}\n }\n \n type ${singularName} {\n id: ID!\n entryId: String!\n \n ${onByMetaGqlFields}\n values: ${singularName}Values\n live: CmsEntryLive\n }\n\n ${fields.map(f => f.typeDefs).join(\"\\n\")}\n \n input ${singularName}ListWhereInput {\n id: String\n }\n\n type ${singularName}Response {\n data: ${singularName}\n error: CmsError\n }\n \n extend type Query {\n get${singularName}: ${singularName}Response\n }\n\n `;\n if (type !== \"manage\") {\n return read;\n }\n return `\n ${read}\n \n ${inputFields.map(f => f.typeDefs).join(\"\\n\")}\n \n input ${singularName}InputValues {\n ${inputGqlFields || \"_empty: String\"}\n }\n \n input ${singularName}Input {\n ${onByMetaInputGqlFields}\n values: ${singularName}InputValues!\n }\n \n extend type Mutation {\n update${singularName}(data: ${singularName}Input!, options: UpdateCmsEntryOptionsInput): ${singularName}Response\n }\n `;\n};\n"],"names":["createSingularSDL","models","model","fieldRegistry","type","inputFields","renderInputFields","fields","renderFields","singularName","inputGqlFields","f","onByMetaInputGqlFields","ENTRY_META_FIELDS","field","fieldType","isDateTimeEntryMetaField","onByMetaGqlFields","read"],"mappings":";;;AAiBO,MAAMA,oBAAuC,CAAC,EACjDC,MAAM,EACNC,KAAK,EACLC,aAAa,EACbC,IAAI,EACP;IACG,MAAMC,cAAcC,kBAAkB;QAClCL;QACAC;QACA,QAAQA,MAAM,MAAM;QACpBC;IACJ;IACA,IAAIE,AAAuB,MAAvBA,YAAY,MAAM,EAClB,OAAO;IAGX,MAAME,SAASC,aAAa;QACxBP;QACAC;QACA,QAAQA,MAAM,MAAM;QACpBE;QACAD;IACJ;IAEA,MAAM,EAAE,iBAAiBM,YAAY,EAAE,GAAGP;IAE1C,MAAMQ,iBAAiBL,YAAY,GAAG,CAACM,CAAAA,IAAKA,EAAE,MAAM,EAAE,IAAI,CAAC;IAE3D,MAAMC,yBAAyBC,kBAAkB,GAAG,CAACC,CAAAA;QACjD,MAAMC,YAAYC,yBAAyBF,SAAS,aAAa;QAEjE,OAAO,GAAGA,MAAM,EAAE,EAAEC,WAAW;IACnC,GAAG,IAAI,CAAC;IAER,MAAME,oBAAoBJ,kBAAkB,GAAG,CAACC,CAAAA;QAC5C,MAAMC,YAAYC,yBAAyBF,SAAS,aAAa;QAEjE,OAAO,GAAGA,MAAM,EAAE,EAAEC,WAAW;IACnC,GAAG,IAAI,CAAC;IAGR,MAAMG,OAAO,CAAC;WACP,EAAEhB,MAAM,WAAW,IAAIO,aAAa;;aAElC,EAAEA,aAAa;YAChB,EAAEF,OAAO,GAAG,CAACI,CAAAA,IAAKA,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,iBAAiB;;;aAG1D,EAAEF,aAAa;;;;YAIhB,EAAEQ,kBAAkB;oBACZ,EAAER,aAAa;;;;QAI3B,EAAEF,OAAO,GAAG,CAACI,CAAAA,IAAKA,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM;;cAEnC,EAAEF,aAAa;;;;aAIhB,EAAEA,aAAa;kBACV,EAAEA,aAAa;;;;;eAKlB,EAAEA,aAAa,EAAE,EAAEA,aAAa;;;IAG3C,CAAC;IACD,IAAIL,AAAS,aAATA,MACA,OAAOc;IAEX,OAAO,CAAC;QACJ,EAAEA,KAAK;;QAEP,EAAEb,YAAY,GAAG,CAACM,CAAAA,IAAKA,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM;;cAExC,EAAEF,aAAa;YACjB,EAAEC,kBAAkB,iBAAiB;;;cAGnC,EAAED,aAAa;YACjB,EAAEG,uBAAuB;oBACjB,EAAEH,aAAa;;;;kBAIjB,EAAEA,aAAa,OAAO,EAAEA,aAAa,8CAA8C,EAAEA,aAAa;;IAEhH,CAAC;AACL"}
1
+ {"version":3,"file":"graphql/schema/createSingularSDL.js","sources":["../../../src/graphql/schema/createSingularSDL.ts"],"sourcesContent":["import type { ApiEndpoint, CmsModel } from \"~/types/index.js\";\nimport { renderInputFields } from \"~/utils/renderInputFields.js\";\nimport { renderFields } from \"~/utils/renderFields.js\";\nimport { ENTRY_META_FIELDS, isDateTimeEntryMetaField } from \"~/constants.js\";\nimport type { CmsModelFieldToGraphQLRegistry } from \"~/features/graphql/index.js\";\n\ninterface CreateSingularSDLParams {\n models: CmsModel[];\n model: CmsModel;\n fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;\n type: ApiEndpoint;\n}\n\ninterface CreateSingularSDL {\n (params: CreateSingularSDLParams): string;\n}\n\nexport const createSingularSDL: CreateSingularSDL = ({\n models,\n model,\n fieldRegistry,\n type\n}): string => {\n const inputFields = renderInputFields({\n models,\n model,\n fields: model.fields,\n fieldRegistry\n });\n if (inputFields.length === 0) {\n return \"\";\n }\n\n const fields = renderFields({\n models,\n model,\n fields: model.fields,\n type,\n fieldRegistry\n });\n\n const { singularApiName: singularName } = model;\n\n const inputGqlFields = inputFields.map(f => f.fields).join(\"\\n\");\n\n const onByMetaInputGqlFields = ENTRY_META_FIELDS.map(field => {\n const fieldType = isDateTimeEntryMetaField(field) ? \"DateTime\" : \"CmsIdentityInput\";\n\n return `${field}: ${fieldType}`;\n }).join(\"\\n\");\n\n const onByMetaGqlFields = ENTRY_META_FIELDS.map(field => {\n const fieldType = isDateTimeEntryMetaField(field) ? \"DateTime\" : \"CmsIdentity\";\n\n return `${field}: ${fieldType}`;\n }).join(\"\\n\");\n\n // Had to remove /* GraphQL */ because it causes issues with oxfmt formatting.\n const read = `\n \"\"\"${model.description || singularName}\"\"\"\n \n type ${singularName}Values {\n ${fields.map(f => f.fields).join(\"\\n\") || \"_empty: String\"}\n }\n \n type ${singularName} {\n id: ID!\n entryId: String!\n \n ${onByMetaGqlFields}\n values: ${singularName}Values\n live: CmsEntryLive\n \n revisionDescription: String\n }\n\n ${fields.map(f => f.typeDefs).join(\"\\n\")}\n \n input ${singularName}ListWhereInput {\n id: String\n }\n\n type ${singularName}Response {\n data: ${singularName}\n error: CmsError\n }\n \n extend type Query {\n get${singularName}: ${singularName}Response\n }\n\n `;\n if (type !== \"manage\") {\n return read;\n }\n return `\n ${read}\n \n ${inputFields.map(f => f.typeDefs).join(\"\\n\")}\n \n input ${singularName}InputValues {\n ${inputGqlFields || \"_empty: String\"}\n }\n \n input ${singularName}Input {\n ${onByMetaInputGqlFields}\n values: ${singularName}InputValues!\n }\n \n extend type Mutation {\n update${singularName}(data: ${singularName}Input!, options: UpdateCmsEntryOptionsInput): ${singularName}Response\n }\n `;\n};\n"],"names":["createSingularSDL","models","model","fieldRegistry","type","inputFields","renderInputFields","fields","renderFields","singularName","inputGqlFields","f","onByMetaInputGqlFields","ENTRY_META_FIELDS","field","fieldType","isDateTimeEntryMetaField","onByMetaGqlFields","read"],"mappings":";;;AAiBO,MAAMA,oBAAuC,CAAC,EACjDC,MAAM,EACNC,KAAK,EACLC,aAAa,EACbC,IAAI,EACP;IACG,MAAMC,cAAcC,kBAAkB;QAClCL;QACAC;QACA,QAAQA,MAAM,MAAM;QACpBC;IACJ;IACA,IAAIE,AAAuB,MAAvBA,YAAY,MAAM,EAClB,OAAO;IAGX,MAAME,SAASC,aAAa;QACxBP;QACAC;QACA,QAAQA,MAAM,MAAM;QACpBE;QACAD;IACJ;IAEA,MAAM,EAAE,iBAAiBM,YAAY,EAAE,GAAGP;IAE1C,MAAMQ,iBAAiBL,YAAY,GAAG,CAACM,CAAAA,IAAKA,EAAE,MAAM,EAAE,IAAI,CAAC;IAE3D,MAAMC,yBAAyBC,kBAAkB,GAAG,CAACC,CAAAA;QACjD,MAAMC,YAAYC,yBAAyBF,SAAS,aAAa;QAEjE,OAAO,GAAGA,MAAM,EAAE,EAAEC,WAAW;IACnC,GAAG,IAAI,CAAC;IAER,MAAME,oBAAoBJ,kBAAkB,GAAG,CAACC,CAAAA;QAC5C,MAAMC,YAAYC,yBAAyBF,SAAS,aAAa;QAEjE,OAAO,GAAGA,MAAM,EAAE,EAAEC,WAAW;IACnC,GAAG,IAAI,CAAC;IAGR,MAAMG,OAAO,CAAC;WACP,EAAEhB,MAAM,WAAW,IAAIO,aAAa;;aAElC,EAAEA,aAAa;YAChB,EAAEF,OAAO,GAAG,CAACI,CAAAA,IAAKA,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,iBAAiB;;;aAG1D,EAAEF,aAAa;;;;YAIhB,EAAEQ,kBAAkB;oBACZ,EAAER,aAAa;;;;;;QAM3B,EAAEF,OAAO,GAAG,CAACI,CAAAA,IAAKA,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM;;cAEnC,EAAEF,aAAa;;;;aAIhB,EAAEA,aAAa;kBACV,EAAEA,aAAa;;;;;eAKlB,EAAEA,aAAa,EAAE,EAAEA,aAAa;;;IAG3C,CAAC;IACD,IAAIL,AAAS,aAATA,MACA,OAAOc;IAEX,OAAO,CAAC;QACJ,EAAEA,KAAK;;QAEP,EAAEb,YAAY,GAAG,CAACM,CAAAA,IAAKA,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM;;cAExC,EAAEF,aAAa;YACjB,EAAEC,kBAAkB,iBAAiB;;;cAGnC,EAAED,aAAa;YACjB,EAAEG,uBAAuB;oBACjB,EAAEH,aAAa;;;;kBAIjB,EAAEA,aAAa,OAAO,EAAEA,aAAa,8CAA8C,EAAEA,aAAa;;IAEhH,CAAC;AACL"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-headless-cms",
3
- "version": "6.4.0-beta.2",
3
+ "version": "6.4.0-beta.4",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./index.js",
@@ -25,19 +25,19 @@
25
25
  "@babel/code-frame": "7.29.0",
26
26
  "@graphql-tools/merge": "9.1.9",
27
27
  "@graphql-tools/schema": "10.0.33",
28
- "@webiny/api": "6.4.0-beta.2",
29
- "@webiny/api-core": "6.4.0-beta.2",
28
+ "@webiny/api": "6.4.0-beta.4",
29
+ "@webiny/api-core": "6.4.0-beta.4",
30
30
  "@webiny/di": "1.0.1",
31
- "@webiny/error": "6.4.0-beta.2",
32
- "@webiny/feature": "6.4.0-beta.2",
33
- "@webiny/handler": "6.4.0-beta.2",
34
- "@webiny/handler-aws": "6.4.0-beta.2",
35
- "@webiny/handler-db": "6.4.0-beta.2",
36
- "@webiny/handler-graphql": "6.4.0-beta.2",
37
- "@webiny/plugins": "6.4.0-beta.2",
38
- "@webiny/project": "6.4.0-beta.2",
39
- "@webiny/utils": "6.4.0-beta.2",
40
- "@webiny/validation": "6.4.0-beta.2",
31
+ "@webiny/error": "6.4.0-beta.4",
32
+ "@webiny/feature": "6.4.0-beta.4",
33
+ "@webiny/handler": "6.4.0-beta.4",
34
+ "@webiny/handler-aws": "6.4.0-beta.4",
35
+ "@webiny/handler-db": "6.4.0-beta.4",
36
+ "@webiny/handler-graphql": "6.4.0-beta.4",
37
+ "@webiny/plugins": "6.4.0-beta.4",
38
+ "@webiny/project": "6.4.0-beta.4",
39
+ "@webiny/utils": "6.4.0-beta.4",
40
+ "@webiny/validation": "6.4.0-beta.4",
41
41
  "dot-prop-immutable": "2.1.1",
42
42
  "graphql": "16.14.0",
43
43
  "graphql-tag": "2.12.6",
@@ -51,24 +51,26 @@
51
51
  "devDependencies": {
52
52
  "@types/babel__code-frame": "7.27.0",
53
53
  "@types/pluralize": "0.0.33",
54
- "@webiny/aws-sdk": "6.4.0-beta.2",
55
- "@webiny/build-tools": "6.4.0-beta.2",
56
- "@webiny/db-dynamodb": "6.4.0-beta.2",
57
- "@webiny/handler-db": "0.0.0",
58
- "@webiny/project-utils": "6.4.0-beta.2",
59
- "@webiny/sdk": "6.4.0-beta.2",
60
- "@webiny/wcp": "6.4.0-beta.2",
54
+ "@webiny/aws-sdk": "6.4.0-beta.4",
55
+ "@webiny/build-tools": "6.4.0-beta.4",
56
+ "@webiny/db-dynamodb": "6.4.0-beta.4",
57
+ "@webiny/handler-db": "6.4.0-beta.4",
58
+ "@webiny/project-utils": "6.4.0-beta.4",
59
+ "@webiny/sdk": "6.4.0-beta.4",
60
+ "@webiny/wcp": "6.4.0-beta.4",
61
61
  "apollo-graphql": "0.9.7",
62
62
  "graphql": "16.14.0",
63
- "oxfmt": "0.49.0",
63
+ "oxfmt": "0.51.0",
64
64
  "rimraf": "6.1.3",
65
65
  "typescript": "6.0.3",
66
- "vitest": "4.1.6",
66
+ "vitest": "4.1.7",
67
67
  "write-json-file": "7.0.0"
68
68
  },
69
69
  "publishConfig": {
70
- "access": "public",
71
- "directory": "dist"
70
+ "access": "public"
72
71
  },
73
- "gitHead": "872f9f50baa1ff6915a5f338216f84bf0b6dfd24"
72
+ "gitHead": "b8aec8a1be3f25c3b428b357fe1e352c7cbff9ae",
73
+ "webiny": {
74
+ "publishFrom": "dist"
75
+ }
74
76
  }
package/types/types.d.ts CHANGED
@@ -402,6 +402,10 @@ export interface CmsEntry<TValues extends CmsEntryValues = CmsEntryValues> {
402
402
  * A revision description.
403
403
  */
404
404
  revisionDescription: string | undefined;
405
+ /**
406
+ * A timestamp of when the entry should be automatically deleted from the database.
407
+ */
408
+ expiresAt: number | null;
405
409
  }
406
410
  export interface CmsStorageEntry<T extends CmsEntryValues = CmsEntryValues> extends CmsEntry<T> {
407
411
  [key: string]: any;
@@ -640,6 +644,7 @@ export interface CreateCmsEntryInput<TValues extends CmsEntryValues = CmsEntryVa
640
644
  };
641
645
  system?: Partial<ICmsEntrySystem>;
642
646
  values: TValues | undefined;
647
+ expiresAt?: Date | undefined;
643
648
  }
644
649
  export interface CreateCmsEntryOptionsInput {
645
650
  skipValidators?: string[];
@@ -728,6 +733,7 @@ export interface UpdateCmsEntryInput<TValues extends CmsEntryValues = CmsEntryVa
728
733
  };
729
734
  system?: Partial<ICmsEntrySystem>;
730
735
  values?: Partial<TValues>;
736
+ expiresAt?: Date | number | null | undefined;
731
737
  }
732
738
  export interface UpdateCmsEntryOptionsInput {
733
739
  skipValidators?: string[];