@webiny/api-headless-cms-tasks 6.0.0-alpha.5 → 6.0.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/README.md +10 -14
  2. package/constants.js +3 -0
  3. package/constants.js.map +1 -0
  4. package/features/DeleteModelTask/DeleteModel.d.ts +16 -0
  5. package/{tasks/deleteModel/DeleteModelRunner.js → features/DeleteModelTask/DeleteModel.js} +31 -39
  6. package/features/DeleteModelTask/DeleteModel.js.map +1 -0
  7. package/features/DeleteModelTask/DeleteModelTask.d.ts +24 -0
  8. package/features/DeleteModelTask/DeleteModelTask.js +39 -0
  9. package/features/DeleteModelTask/DeleteModelTask.js.map +1 -0
  10. package/features/DeleteModelTask/feature.d.ts +1 -0
  11. package/features/DeleteModelTask/feature.js +10 -0
  12. package/features/DeleteModelTask/feature.js.map +1 -0
  13. package/{tasks/deleteModel → features/DeleteModelTask}/types.d.ts +4 -5
  14. package/features/DeleteModelTask/types.js +9 -0
  15. package/features/DeleteModelTask/types.js.map +1 -0
  16. package/features/DisableModel/BlockActionIfModelDisabled.d.ts +8 -0
  17. package/features/DisableModel/BlockActionIfModelDisabled.js +15 -0
  18. package/features/DisableModel/BlockActionIfModelDisabled.js.map +1 -0
  19. package/features/DisableModel/abstractions.d.ts +8 -0
  20. package/features/DisableModel/abstractions.js +4 -0
  21. package/features/DisableModel/abstractions.js.map +1 -0
  22. package/features/DisableModel/feature.d.ts +5 -0
  23. package/features/DisableModel/feature.js +36 -0
  24. package/features/DisableModel/feature.js.map +1 -0
  25. package/features/DisableModel/handlers/BlockModelActionOnEntryBeforeCreate.d.ts +11 -0
  26. package/features/DisableModel/handlers/BlockModelActionOnEntryBeforeCreate.js +16 -0
  27. package/features/DisableModel/handlers/BlockModelActionOnEntryBeforeCreate.js.map +1 -0
  28. package/features/DisableModel/handlers/BlockModelActionOnEntryBeforeMove.d.ts +11 -0
  29. package/features/DisableModel/handlers/BlockModelActionOnEntryBeforeMove.js +16 -0
  30. package/features/DisableModel/handlers/BlockModelActionOnEntryBeforeMove.js.map +1 -0
  31. package/features/DisableModel/handlers/BlockModelActionOnEntryBeforePublish.d.ts +11 -0
  32. package/features/DisableModel/handlers/BlockModelActionOnEntryBeforePublish.js +16 -0
  33. package/features/DisableModel/handlers/BlockModelActionOnEntryBeforePublish.js.map +1 -0
  34. package/features/DisableModel/handlers/BlockModelActionOnEntryBeforeRepublish.d.ts +11 -0
  35. package/features/DisableModel/handlers/BlockModelActionOnEntryBeforeRepublish.js +16 -0
  36. package/features/DisableModel/handlers/BlockModelActionOnEntryBeforeRepublish.js.map +1 -0
  37. package/features/DisableModel/handlers/BlockModelActionOnEntryBeforeRestoreFromBin.d.ts +11 -0
  38. package/features/DisableModel/handlers/BlockModelActionOnEntryBeforeRestoreFromBin.js +16 -0
  39. package/features/DisableModel/handlers/BlockModelActionOnEntryBeforeRestoreFromBin.js.map +1 -0
  40. package/features/DisableModel/handlers/BlockModelActionOnEntryBeforeUnpublish.d.ts +11 -0
  41. package/features/DisableModel/handlers/BlockModelActionOnEntryBeforeUnpublish.js +16 -0
  42. package/features/DisableModel/handlers/BlockModelActionOnEntryBeforeUnpublish.js.map +1 -0
  43. package/features/DisableModel/handlers/BlockModelActionOnEntryBeforeUpdate.d.ts +11 -0
  44. package/features/DisableModel/handlers/BlockModelActionOnEntryBeforeUpdate.js +16 -0
  45. package/features/DisableModel/handlers/BlockModelActionOnEntryBeforeUpdate.js.map +1 -0
  46. package/features/DisableModel/handlers/BlockModelActionOnEntryRevisionBeforeCreate.d.ts +11 -0
  47. package/features/DisableModel/handlers/BlockModelActionOnEntryRevisionBeforeCreate.js +16 -0
  48. package/features/DisableModel/handlers/BlockModelActionOnEntryRevisionBeforeCreate.js.map +1 -0
  49. package/features/DisableModel/handlers/BlockModelActionOnModelBeforeCreateFrom.d.ts +11 -0
  50. package/features/DisableModel/handlers/BlockModelActionOnModelBeforeCreateFrom.js +16 -0
  51. package/features/DisableModel/handlers/BlockModelActionOnModelBeforeCreateFrom.js.map +1 -0
  52. package/features/DisableModel/handlers/BlockModelActionOnModelBeforeUpdate.d.ts +11 -0
  53. package/features/DisableModel/handlers/BlockModelActionOnModelBeforeUpdate.js +16 -0
  54. package/features/DisableModel/handlers/BlockModelActionOnModelBeforeUpdate.js.map +1 -0
  55. package/features/DisableModel/index.d.ts +1 -0
  56. package/features/DisableModel/index.js +3 -0
  57. package/features/DisableModel/index.js.map +1 -0
  58. package/{tasks/deleteModel/graphql → graphql/deleteModel}/cancelDeleteModel.d.ts +2 -2
  59. package/{tasks/deleteModel/graphql → graphql/deleteModel}/cancelDeleteModel.js +13 -19
  60. package/graphql/deleteModel/cancelDeleteModel.js.map +1 -0
  61. package/{tasks/deleteModel/graphql → graphql/deleteModel}/crud.d.ts +1 -1
  62. package/graphql/deleteModel/crud.js +72 -0
  63. package/graphql/deleteModel/crud.js.map +1 -0
  64. package/{tasks/deleteModel/graphql → graphql/deleteModel}/fullyDeleteModel.d.ts +2 -2
  65. package/{tasks/deleteModel/graphql → graphql/deleteModel}/fullyDeleteModel.js +16 -17
  66. package/graphql/deleteModel/fullyDeleteModel.js.map +1 -0
  67. package/{tasks/deleteModel/graphql → graphql/deleteModel}/getDeleteModelProgress.d.ts +2 -2
  68. package/{tasks/deleteModel/graphql → graphql/deleteModel}/getDeleteModelProgress.js +12 -19
  69. package/graphql/deleteModel/getDeleteModelProgress.js.map +1 -0
  70. package/{tasks/deleteModel/graphql → graphql/deleteModel}/index.d.ts +1 -1
  71. package/{tasks/deleteModel/graphql → graphql/deleteModel}/index.js +33 -36
  72. package/graphql/deleteModel/index.js.map +1 -0
  73. package/graphql/deleteModel/status.d.ts +3 -0
  74. package/graphql/deleteModel/status.js +17 -0
  75. package/graphql/deleteModel/status.js.map +1 -0
  76. package/helpers/confirmation.js +15 -0
  77. package/helpers/confirmation.js.map +1 -0
  78. package/{tasks/deleteModel/helpers → helpers}/store.d.ts +3 -4
  79. package/helpers/store.js +16 -0
  80. package/helpers/store.js.map +1 -0
  81. package/index.d.ts +2 -3
  82. package/index.js +14 -17
  83. package/index.js.map +1 -1
  84. package/package.json +24 -26
  85. package/types.d.ts +4 -4
  86. package/types.js +1 -5
  87. package/types.js.map +1 -1
  88. package/tasks/deleteModel/DeleteModelRunner.d.ts +0 -19
  89. package/tasks/deleteModel/DeleteModelRunner.js.map +0 -1
  90. package/tasks/deleteModel/constants.js +0 -9
  91. package/tasks/deleteModel/constants.js.map +0 -1
  92. package/tasks/deleteModel/graphql/attachLifecycleEvents.d.ts +0 -5
  93. package/tasks/deleteModel/graphql/attachLifecycleEvents.js +0 -40
  94. package/tasks/deleteModel/graphql/attachLifecycleEvents.js.map +0 -1
  95. package/tasks/deleteModel/graphql/cancelDeleteModel.js.map +0 -1
  96. package/tasks/deleteModel/graphql/crud.js +0 -82
  97. package/tasks/deleteModel/graphql/crud.js.map +0 -1
  98. package/tasks/deleteModel/graphql/fullyDeleteModel.js.map +0 -1
  99. package/tasks/deleteModel/graphql/getDeleteModelProgress.js.map +0 -1
  100. package/tasks/deleteModel/graphql/index.js.map +0 -1
  101. package/tasks/deleteModel/graphql/isModelBeingDeleted.d.ts +0 -5
  102. package/tasks/deleteModel/graphql/isModelBeingDeleted.js +0 -15
  103. package/tasks/deleteModel/graphql/isModelBeingDeleted.js.map +0 -1
  104. package/tasks/deleteModel/graphql/status.d.ts +0 -3
  105. package/tasks/deleteModel/graphql/status.js +0 -24
  106. package/tasks/deleteModel/graphql/status.js.map +0 -1
  107. package/tasks/deleteModel/helpers/confirmation.js +0 -23
  108. package/tasks/deleteModel/helpers/confirmation.js.map +0 -1
  109. package/tasks/deleteModel/helpers/store.js +0 -26
  110. package/tasks/deleteModel/helpers/store.js.map +0 -1
  111. package/tasks/deleteModel/index.d.ts +0 -3
  112. package/tasks/deleteModel/index.js +0 -50
  113. package/tasks/deleteModel/index.js.map +0 -1
  114. package/tasks/deleteModel/types.js +0 -15
  115. package/tasks/deleteModel/types.js.map +0 -1
  116. /package/{tasks/deleteModel/constants.d.ts → constants.d.ts} +0 -0
  117. /package/{tasks/deleteModel/helpers → helpers}/confirmation.d.ts +0 -0
package/README.md CHANGED
@@ -1,15 +1,11 @@
1
1
  # @webiny/api-headless-cms-tasks
2
- [![](https://img.shields.io/npm/dw/@webiny/api-headless-cms-tasks.svg)](https://www.npmjs.com/package/@webiny/api-headless-cms-tasks)
3
- [![](https://img.shields.io/npm/v/@webiny/api-headless-cms-tasks.svg)](https://www.npmjs.com/package/@webiny/api-headless-cms-tasks)
4
- [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
5
- [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
6
-
7
- ## Install
8
- ```
9
- npm install --save @webiny/api-headless-cms-tasks
10
- ```
11
-
12
- Or if you prefer yarn:
13
- ```
14
- yarn add @webiny/api-headless-cms-tasks
15
- ```
2
+
3
+ > [!NOTE]
4
+ > This package is part of the [Webiny](https://www.webiny.com) monorepo.
5
+ > It’s **included in every Webiny project by default** and is not meant to be used as a standalone package.
6
+
7
+ 📘 **Documentation:** [https://www.webiny.com/docs](https://www.webiny.com/docs)
8
+
9
+ ---
10
+
11
+ _This README file is automatically generated during the publish process._
package/constants.js ADDED
@@ -0,0 +1,3 @@
1
+ export const DELETE_MODEL_TASK = "deleteModelAndEntries";
2
+
3
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DELETE_MODEL_TASK"],"sources":["constants.ts"],"sourcesContent":["export const DELETE_MODEL_TASK = \"deleteModelAndEntries\";\n"],"mappings":"AAAA,OAAO,MAAMA,iBAAiB,GAAG,uBAAuB","ignoreList":[]}
@@ -0,0 +1,16 @@
1
+ import { CmsContext } from "@webiny/api-headless-cms/features/shared/abstractions.js";
2
+ import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
3
+ import type { IDeleteModelTaskInput } from "./types.js";
4
+ import type { IDeleteModelTaskOutput } from "./types.js";
5
+ type IRunParams = TaskDefinition.RunParams<IDeleteModelTaskInput, IDeleteModelTaskOutput>;
6
+ export interface IDeleteModel {
7
+ run(params: IRunParams): Promise<TaskDefinition.Result<IDeleteModelTaskInput, IDeleteModelTaskOutput>>;
8
+ }
9
+ export declare class DeleteModel implements IDeleteModel {
10
+ private context;
11
+ constructor(context: CmsContext.Interface);
12
+ run(params: IRunParams): Promise<TaskDefinition.Result<IDeleteModelTaskInput, IDeleteModelTaskOutput>>;
13
+ private getModel;
14
+ private removeBeingDeleted;
15
+ }
16
+ export {};
@@ -1,34 +1,27 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.createDeleteModelRunner = exports.DeleteModelRunner = void 0;
7
- var _store = require("./helpers/store");
8
- class DeleteModelRunner {
9
- constructor(params) {
10
- this.taskId = params.taskId;
11
- this.context = params.context;
12
- this.response = params.response;
1
+ import { ListFoldersUseCase } from "@webiny/api-aco/features/folder/ListFolders/index.js";
2
+ import { DeleteFolderUseCase } from "@webiny/api-aco/features/folder/DeleteFolder/index.js";
3
+ import { createStoreKey } from "../../helpers/store.js";
4
+ export class DeleteModel {
5
+ constructor(context) {
6
+ this.context = context;
13
7
  }
14
- async execute(params) {
8
+ async run(params) {
15
9
  const {
16
10
  input,
17
- isCloseToTimeout,
18
- isAborted
11
+ controller
19
12
  } = params;
20
13
  const model = await this.getModel(input.modelId);
21
14
  let hasMoreItems = false;
22
15
  let lastDeletedId = input.lastDeletedId;
23
16
  do {
24
- if (isAborted()) {
17
+ if (controller.runtime.isAborted()) {
25
18
  /**
26
19
  * If the task was aborted, we need to remove the task tag from the model.
27
20
  */
28
21
  await this.removeBeingDeleted(model);
29
- return this.response.aborted();
30
- } else if (isCloseToTimeout()) {
31
- return this.response.continue({
22
+ return controller.response.aborted();
23
+ } else if (controller.runtime.isCloseToTimeout()) {
24
+ return controller.response.continue({
32
25
  ...input,
33
26
  lastDeletedId
34
27
  });
@@ -53,12 +46,12 @@ class DeleteModelRunner {
53
46
  permanently: true,
54
47
  force: true
55
48
  });
56
- } catch (ex) {
49
+ } catch {
57
50
  console.error("Failed to delete entry.", {
58
51
  model: model.modelId,
59
52
  id: item.id
60
53
  });
61
- return this.response.error(new Error(`Failed to delete entry "${item.id}". Cannot continue.`));
54
+ return controller.response.error(new Error(`Failed to delete entry "${item.id}". Cannot continue.`));
62
55
  }
63
56
  lastDeletedId = item.entryId;
64
57
  }
@@ -77,26 +70,30 @@ class DeleteModelRunner {
77
70
  });
78
71
  if (items.length > 0) {
79
72
  console.log("There are still items to be deleted. Continuing the task.");
80
- return this.response.continue({
73
+ return controller.response.continue({
81
74
  ...input
82
75
  }, {
83
76
  seconds: 5
84
77
  });
85
78
  }
86
79
  let hasMoreFolders = false;
80
+ const listFolders = this.context.container.resolve(ListFoldersUseCase);
81
+ const deleteFolder = this.context.container.resolve(DeleteFolderUseCase);
87
82
  do {
88
- const [items, meta] = await this.context.aco.folder.list({
83
+ const listResult = await listFolders.execute({
89
84
  where: {
90
85
  type: `cms:${model.modelId}`
91
86
  },
92
87
  limit: 1000
93
88
  });
94
- for (const item of items) {
95
- try {
96
- await this.context.aco.folder.delete(item.id);
97
- } catch (ex) {
98
- console.error(`Failed to delete folder "${item.id}".`, ex);
99
- return this.response.error(ex);
89
+ const {
90
+ folders,
91
+ meta
92
+ } = listResult.value;
93
+ for (const item of folders) {
94
+ const result = await deleteFolder.execute(item.id);
95
+ if (result.isFail()) {
96
+ return controller.response.error(result.error);
100
97
  }
101
98
  }
102
99
  hasMoreFolders = meta.hasMoreItems;
@@ -107,16 +104,16 @@ class DeleteModelRunner {
107
104
  */
108
105
  await this.removeBeingDeleted(model);
109
106
  if (model.isPlugin) {
110
- return this.response.done();
107
+ return controller.response.done();
111
108
  }
112
109
  try {
113
110
  await this.context.cms.deleteModel(model.modelId);
114
111
  } catch (ex) {
115
112
  const message = `Failed to delete model "${model.modelId}".`;
116
113
  console.error(message);
117
- return this.response.error(ex);
114
+ return controller.response.error(ex);
118
115
  }
119
- return this.response.done();
116
+ return controller.response.done();
120
117
  }
121
118
  async getModel(modelId) {
122
119
  const model = await this.context.cms.getModel(modelId);
@@ -126,14 +123,9 @@ class DeleteModelRunner {
126
123
  return model;
127
124
  }
128
125
  async removeBeingDeleted(model) {
129
- const key = (0, _store.createStoreKey)(model);
126
+ const key = createStoreKey(model);
130
127
  await this.context.db.store.removeValue(key);
131
128
  }
132
129
  }
133
- exports.DeleteModelRunner = DeleteModelRunner;
134
- const createDeleteModelRunner = params => {
135
- return new DeleteModelRunner(params);
136
- };
137
- exports.createDeleteModelRunner = createDeleteModelRunner;
138
130
 
139
- //# sourceMappingURL=DeleteModelRunner.js.map
131
+ //# sourceMappingURL=DeleteModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ListFoldersUseCase","DeleteFolderUseCase","createStoreKey","DeleteModel","constructor","context","run","params","input","controller","model","getModel","modelId","hasMoreItems","lastDeletedId","runtime","isAborted","removeBeingDeleted","response","aborted","isCloseToTimeout","continue","where","latest","entryId_gte","items","metaHasMoreItems","cms","storageOperations","entries","list","limit","sort","item","deleteEntry","id","permanently","force","console","error","Error","entryId","length","log","seconds","hasMoreFolders","listFolders","container","resolve","deleteFolder","listResult","execute","type","folders","meta","value","result","isFail","isPlugin","done","deleteModel","ex","message","key","db","store","removeValue"],"sources":["DeleteModel.ts"],"sourcesContent":["import type { CmsEntryListWhere } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport { ListFoldersUseCase } from \"@webiny/api-aco/features/folder/ListFolders/index.js\";\nimport { DeleteFolderUseCase } from \"@webiny/api-aco/features/folder/DeleteFolder/index.js\";\nimport { CmsContext } from \"@webiny/api-headless-cms/features/shared/abstractions.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport type { IDeleteModelTaskInput } from \"./types.js\";\nimport type { IDeleteModelTaskOutput } from \"./types.js\";\nimport { createStoreKey } from \"~/helpers/store.js\";\n\ntype IRunParams = TaskDefinition.RunParams<IDeleteModelTaskInput, IDeleteModelTaskOutput>;\n\nexport interface IDeleteModel {\n run(\n params: IRunParams\n ): Promise<TaskDefinition.Result<IDeleteModelTaskInput, IDeleteModelTaskOutput>>;\n}\n\nexport class DeleteModel implements IDeleteModel {\n constructor(private context: CmsContext.Interface) {}\n\n public async run(\n params: IRunParams\n ): Promise<TaskDefinition.Result<IDeleteModelTaskInput, IDeleteModelTaskOutput>> {\n const { input, controller } = params;\n\n const model = await this.getModel(input.modelId);\n\n let hasMoreItems = false;\n let lastDeletedId: string | undefined = input.lastDeletedId;\n do {\n if (controller.runtime.isAborted()) {\n /**\n * If the task was aborted, we need to remove the task tag from the model.\n */\n await this.removeBeingDeleted(model);\n return controller.response.aborted();\n } else if (controller.runtime.isCloseToTimeout()) {\n return controller.response.continue({\n ...input,\n lastDeletedId\n });\n }\n const where: CmsEntryListWhere = {\n latest: true\n };\n if (lastDeletedId) {\n where.entryId_gte = lastDeletedId;\n }\n const { items, hasMoreItems: metaHasMoreItems } =\n await this.context.cms.storageOperations.entries.list(model, {\n limit: 1000,\n where,\n sort: [\"entryId_ASC\"]\n });\n for (const item of items) {\n try {\n await this.context.cms.deleteEntry(model, item.id, {\n permanently: true,\n force: true\n });\n } catch {\n console.error(\"Failed to delete entry.\", {\n model: model.modelId,\n id: item.id\n });\n return controller.response.error(\n new Error(`Failed to delete entry \"${item.id}\". Cannot continue.`)\n );\n }\n lastDeletedId = item.entryId;\n }\n\n hasMoreItems = metaHasMoreItems;\n } while (hasMoreItems);\n /**\n * Let's do one more check. If there are items, continue the task with 5 seconds delay.\n */\n const { items } = await this.context.cms.storageOperations.entries.list(model, {\n limit: 1,\n where: {\n latest: true\n }\n });\n if (items.length > 0) {\n console.log(\"There are still items to be deleted. Continuing the task.\");\n return controller.response.continue(\n {\n ...input\n },\n {\n seconds: 5\n }\n );\n }\n\n let hasMoreFolders = false;\n\n const listFolders = this.context.container.resolve(ListFoldersUseCase);\n const deleteFolder = this.context.container.resolve(DeleteFolderUseCase);\n\n do {\n const listResult = await listFolders.execute({\n where: {\n type: `cms:${model.modelId}`\n },\n limit: 1000\n });\n\n const { folders, meta } = listResult.value;\n\n for (const item of folders) {\n const result = await deleteFolder.execute(item.id);\n if (result.isFail()) {\n return controller.response.error(result.error);\n }\n }\n\n hasMoreFolders = meta.hasMoreItems;\n } while (hasMoreFolders);\n\n /**\n * When there is no more records to be deleted, let's delete the model, if it's not a plugin.\n */\n await this.removeBeingDeleted(model);\n if (model.isPlugin) {\n return controller.response.done();\n }\n try {\n await this.context.cms.deleteModel(model.modelId);\n } catch (ex) {\n const message = `Failed to delete model \"${model.modelId}\".`;\n console.error(message);\n return controller.response.error(ex);\n }\n\n return controller.response.done();\n }\n\n private async getModel(modelId: string): Promise<CmsModel> {\n const model = await this.context.cms.getModel(modelId);\n if (!model) {\n throw new Error(`Model \"${modelId}\" not found.`);\n }\n return model;\n }\n\n private async removeBeingDeleted(model: Pick<CmsModel, \"modelId\" | \"tenant\">): Promise<void> {\n const key = createStoreKey(model);\n await this.context.db.store.removeValue(key);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,24 @@
1
+ import type { IDeleteModelTaskInput } from "./types.js";
2
+ import type { IDeleteModelTaskOutput } from "./types.js";
3
+ import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
4
+ import { CmsContext } from "@webiny/api-headless-cms/features/shared/abstractions.js";
5
+ type IRunParams = TaskDefinition.RunParams<IDeleteModelTaskInput, IDeleteModelTaskOutput>;
6
+ declare class DeleteModelTaskDefinition implements TaskDefinition.Interface<IDeleteModelTaskInput, IDeleteModelTaskOutput> {
7
+ private context;
8
+ id: string;
9
+ title: string;
10
+ maxIterations: number;
11
+ isPrivate: boolean;
12
+ databaseLogs: boolean;
13
+ description: string;
14
+ constructor(context: CmsContext.Interface);
15
+ run(params: IRunParams): Promise<TaskDefinition.Result<IDeleteModelTaskInput, IDeleteModelTaskOutput>>;
16
+ createInputValidation({ validator }: TaskDefinition.CreateInputValidationParams): {
17
+ modelId: import("zod").ZodString;
18
+ lastDeletedId: import("zod").ZodOptional<import("zod").ZodString>;
19
+ };
20
+ }
21
+ export declare const DeleteModelTask: typeof DeleteModelTaskDefinition & {
22
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/task/TaskDefinition/abstractions.js").ITaskDefinition<import("@webiny/api-core/features/task/TaskDefinition/abstractions.js").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions.js").ITaskOutput>>;
23
+ };
24
+ export {};
@@ -0,0 +1,39 @@
1
+ import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
2
+ import { CmsContext } from "@webiny/api-headless-cms/features/shared/abstractions.js";
3
+ import { DELETE_MODEL_TASK } from "../../constants.js";
4
+ class DeleteModelTaskDefinition {
5
+ id = DELETE_MODEL_TASK;
6
+ title = "Delete model and all of the entries";
7
+ maxIterations = 50;
8
+ isPrivate = true;
9
+ databaseLogs = false;
10
+ description = "Delete a content model and all associated entries.";
11
+ constructor(context) {
12
+ this.context = context;
13
+ }
14
+ async run(params) {
15
+ const {
16
+ DeleteModel
17
+ } = await import(/* webpackChunkName: "createDeleteModel" */"./DeleteModel.js");
18
+ try {
19
+ const runner = new DeleteModel(this.context);
20
+ return await runner.run(params);
21
+ } catch (ex) {
22
+ return params.controller.response.error(ex);
23
+ }
24
+ }
25
+ createInputValidation({
26
+ validator
27
+ }) {
28
+ return {
29
+ modelId: validator.string(),
30
+ lastDeletedId: validator.string().optional()
31
+ };
32
+ }
33
+ }
34
+ export const DeleteModelTask = TaskDefinition.createImplementation({
35
+ implementation: DeleteModelTaskDefinition,
36
+ dependencies: [CmsContext]
37
+ });
38
+
39
+ //# sourceMappingURL=DeleteModelTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TaskDefinition","CmsContext","DELETE_MODEL_TASK","DeleteModelTaskDefinition","id","title","maxIterations","isPrivate","databaseLogs","description","constructor","context","run","params","DeleteModel","runner","ex","controller","response","error","createInputValidation","validator","modelId","string","lastDeletedId","optional","DeleteModelTask","createImplementation","implementation","dependencies"],"sources":["DeleteModelTask.ts"],"sourcesContent":["import type { IDeleteModelTaskInput } from \"./types.js\";\nimport type { IDeleteModelTaskOutput } from \"./types.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { CmsContext } from \"@webiny/api-headless-cms/features/shared/abstractions.js\";\nimport { DELETE_MODEL_TASK } from \"~/constants.js\";\n\ntype IRunParams = TaskDefinition.RunParams<IDeleteModelTaskInput, IDeleteModelTaskOutput>;\n\nclass DeleteModelTaskDefinition\n implements TaskDefinition.Interface<IDeleteModelTaskInput, IDeleteModelTaskOutput>\n{\n id = DELETE_MODEL_TASK;\n title = \"Delete model and all of the entries\";\n maxIterations = 50;\n isPrivate = true;\n databaseLogs = false;\n description = \"Delete a content model and all associated entries.\";\n\n constructor(private context: CmsContext.Interface) {}\n\n async run(params: IRunParams) {\n const { DeleteModel } = await import(\n /* webpackChunkName: \"createDeleteModel\" */ \"./DeleteModel.js\"\n );\n\n try {\n const runner = new DeleteModel(this.context);\n return await runner.run(params);\n } catch (ex) {\n return params.controller.response.error(ex);\n }\n }\n\n createInputValidation({ validator }: TaskDefinition.CreateInputValidationParams) {\n return {\n modelId: validator.string(),\n lastDeletedId: validator.string().optional()\n };\n }\n}\n\nexport const DeleteModelTask = TaskDefinition.createImplementation({\n implementation: DeleteModelTaskDefinition,\n dependencies: [CmsContext]\n});\n"],"mappings":"AAEA,SAASA,cAAc,QAAQ,wDAAwD;AACvF,SAASC,UAAU,QAAQ,0DAA0D;AACrF,SAASC,iBAAiB;AAI1B,MAAMC,yBAAyB,CAE/B;EACIC,EAAE,GAAGF,iBAAiB;EACtBG,KAAK,GAAG,qCAAqC;EAC7CC,aAAa,GAAG,EAAE;EAClBC,SAAS,GAAG,IAAI;EAChBC,YAAY,GAAG,KAAK;EACpBC,WAAW,GAAG,oDAAoD;EAElEC,WAAWA,CAASC,OAA6B,EAAE;IAAA,KAA/BA,OAA6B,GAA7BA,OAA6B;EAAG;EAEpD,MAAMC,GAAGA,CAACC,MAAkB,EAAE;IAC1B,MAAM;MAAEC;IAAY,CAAC,GAAG,MAAM,MAAM,CAChC,6DACJ,CAAC;IAED,IAAI;MACA,MAAMC,MAAM,GAAG,IAAID,WAAW,CAAC,IAAI,CAACH,OAAO,CAAC;MAC5C,OAAO,MAAMI,MAAM,CAACH,GAAG,CAACC,MAAM,CAAC;IACnC,CAAC,CAAC,OAAOG,EAAE,EAAE;MACT,OAAOH,MAAM,CAACI,UAAU,CAACC,QAAQ,CAACC,KAAK,CAACH,EAAE,CAAC;IAC/C;EACJ;EAEAI,qBAAqBA,CAAC;IAAEC;EAAsD,CAAC,EAAE;IAC7E,OAAO;MACHC,OAAO,EAAED,SAAS,CAACE,MAAM,CAAC,CAAC;MAC3BC,aAAa,EAAEH,SAAS,CAACE,MAAM,CAAC,CAAC,CAACE,QAAQ,CAAC;IAC/C,CAAC;EACL;AACJ;AAEA,OAAO,MAAMC,eAAe,GAAG1B,cAAc,CAAC2B,oBAAoB,CAAC;EAC/DC,cAAc,EAAEzB,yBAAyB;EACzC0B,YAAY,EAAE,CAAC5B,UAAU;AAC7B,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export declare const DeleteModelTaskFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
@@ -0,0 +1,10 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { DeleteModelTask } from "./DeleteModelTask.js";
3
+ export const DeleteModelTaskFeature = createFeature({
4
+ name: "HeadlessCms/Tasks/DeleteModelTask",
5
+ register(container) {
6
+ container.register(DeleteModelTask);
7
+ }
8
+ });
9
+
10
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createFeature","DeleteModelTask","DeleteModelTaskFeature","name","register","container"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { DeleteModelTask } from \"./DeleteModelTask.js\";\n\nexport const DeleteModelTaskFeature = createFeature({\n name: \"HeadlessCms/Tasks/DeleteModelTask\",\n register(container) {\n container.register(DeleteModelTask);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,eAAe;AAExB,OAAO,MAAMC,sBAAsB,GAAGF,aAAa,CAAC;EAChDG,IAAI,EAAE,mCAAmC;EACzCC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACH,eAAe,CAAC;EACvC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -1,12 +1,12 @@
1
- import type { CmsIdentity } from "@webiny/api-headless-cms/types";
2
- import type { ITaskResponseDoneResultOutput } from "@webiny/tasks";
1
+ import type { CmsIdentity } from "@webiny/api-headless-cms/types/index.js";
3
2
  import type { ListValuesResult } from "@webiny/db";
4
- import type { GenericRecord } from "@webiny/api/types";
3
+ import type { GenericRecord } from "@webiny/api/types.js";
4
+ import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
5
5
  export interface IDeleteModelTaskInput {
6
6
  modelId: string;
7
7
  lastDeletedId?: string;
8
8
  }
9
- export interface IDeleteModelTaskOutput extends ITaskResponseDoneResultOutput {
9
+ export interface IDeleteModelTaskOutput extends TaskDefinition.TaskOutput {
10
10
  total?: number;
11
11
  deleted?: number;
12
12
  }
@@ -26,7 +26,6 @@ export interface IDeleteCmsModelTask {
26
26
  export interface IStoreValue {
27
27
  modelId: string;
28
28
  tenant: string;
29
- locale: string;
30
29
  identity: CmsIdentity;
31
30
  task: string;
32
31
  }
@@ -0,0 +1,9 @@
1
+ export let DeleteCmsModelTaskStatus = /*#__PURE__*/function (DeleteCmsModelTaskStatus) {
2
+ DeleteCmsModelTaskStatus["RUNNING"] = "running";
3
+ DeleteCmsModelTaskStatus["DONE"] = "done";
4
+ DeleteCmsModelTaskStatus["ERROR"] = "error";
5
+ DeleteCmsModelTaskStatus["CANCELED"] = "canceled";
6
+ return DeleteCmsModelTaskStatus;
7
+ }({});
8
+
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DeleteCmsModelTaskStatus"],"sources":["types.ts"],"sourcesContent":["import type { CmsIdentity } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { ListValuesResult } from \"@webiny/db\";\nimport type { GenericRecord } from \"@webiny/api/types.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nexport interface IDeleteModelTaskInput {\n modelId: string;\n lastDeletedId?: string;\n}\n\nexport interface IDeleteModelTaskOutput extends TaskDefinition.TaskOutput {\n total?: number;\n deleted?: number;\n}\n\nexport enum DeleteCmsModelTaskStatus {\n RUNNING = \"running\",\n DONE = \"done\",\n ERROR = \"error\",\n CANCELED = \"canceled\"\n}\n\nexport interface IDeleteCmsModelTask {\n id: string;\n status: DeleteCmsModelTaskStatus;\n total: number;\n deleted: number;\n message?: string;\n}\n\nexport interface IStoreValue {\n modelId: string;\n tenant: string;\n identity: CmsIdentity;\n task: string;\n}\n\nexport type ListStoreKeysResult = Promise<ListValuesResult<GenericRecord<string, IStoreValue>>>;\n"],"mappings":"AAeA,WAAYA,wBAAwB,0BAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAA,OAAxBA,wBAAwB;AAAA","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ import type { CmsModel } from "@webiny/api-headless-cms/types/index.js";
2
+ import { BlockActionIfModelDisabled as Abstraction } from "./abstractions.js";
3
+ import type { HeadlessCmsFullyDeleteModel } from "../../types.js";
4
+ export declare class BlockActionIfModelDisabled implements Abstraction.Interface {
5
+ private isModelBeingDeleted;
6
+ constructor(isModelBeingDeleted: HeadlessCmsFullyDeleteModel["isModelBeingDeleted"]);
7
+ execute(model: CmsModel): Promise<void>;
8
+ }
@@ -0,0 +1,15 @@
1
+ import { WebinyError } from "@webiny/error";
2
+ export class BlockActionIfModelDisabled {
3
+ constructor(isModelBeingDeleted) {
4
+ this.isModelBeingDeleted = isModelBeingDeleted;
5
+ }
6
+ async execute(model) {
7
+ const isBeingDeleted = await this.isModelBeingDeleted(model.modelId);
8
+ if (!isBeingDeleted) {
9
+ return;
10
+ }
11
+ throw new WebinyError(`Model "${model.name}" is being deleted and you cannot create, update or delete any entries of this model.`);
12
+ }
13
+ }
14
+
15
+ //# sourceMappingURL=BlockActionIfModelDisabled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["WebinyError","BlockActionIfModelDisabled","constructor","isModelBeingDeleted","execute","model","isBeingDeleted","modelId","name"],"sources":["BlockActionIfModelDisabled.ts"],"sourcesContent":["import { WebinyError } from \"@webiny/error\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport { BlockActionIfModelDisabled as Abstraction } from \"./abstractions.js\";\nimport type { HeadlessCmsFullyDeleteModel } from \"~/types.js\";\n\nexport class BlockActionIfModelDisabled implements Abstraction.Interface {\n constructor(private isModelBeingDeleted: HeadlessCmsFullyDeleteModel[\"isModelBeingDeleted\"]) {}\n\n async execute(model: CmsModel): Promise<void> {\n const isBeingDeleted = await this.isModelBeingDeleted(model.modelId);\n if (!isBeingDeleted) {\n return;\n }\n\n throw new WebinyError(\n `Model \"${model.name}\" is being deleted and you cannot create, update or delete any entries of this model.`\n );\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,eAAe;AAK3C,OAAO,MAAMC,0BAA0B,CAAkC;EACrEC,WAAWA,CAASC,mBAAuE,EAAE;IAAA,KAAzEA,mBAAuE,GAAvEA,mBAAuE;EAAG;EAE9F,MAAMC,OAAOA,CAACC,KAAe,EAAiB;IAC1C,MAAMC,cAAc,GAAG,MAAM,IAAI,CAACH,mBAAmB,CAACE,KAAK,CAACE,OAAO,CAAC;IACpE,IAAI,CAACD,cAAc,EAAE;MACjB;IACJ;IAEA,MAAM,IAAIN,WAAW,CACjB,UAAUK,KAAK,CAACG,IAAI,uFACxB,CAAC;EACL;AACJ","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ import type { CmsModel } from "@webiny/api-headless-cms/types/index.js";
2
+ export interface IBlockActionIfModelDisabled {
3
+ execute(model: CmsModel): Promise<void>;
4
+ }
5
+ export declare const BlockActionIfModelDisabled: import("@webiny/di").Abstraction<IBlockActionIfModelDisabled>;
6
+ export declare namespace BlockActionIfModelDisabled {
7
+ type Interface = IBlockActionIfModelDisabled;
8
+ }
@@ -0,0 +1,4 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ export const BlockActionIfModelDisabled = createAbstraction("BlockActionIfModelDisabled");
3
+
4
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAbstraction","BlockActionIfModelDisabled"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\n\nexport interface IBlockActionIfModelDisabled {\n execute(model: CmsModel): Promise<void>;\n}\n\nexport const BlockActionIfModelDisabled = createAbstraction<IBlockActionIfModelDisabled>(\n \"BlockActionIfModelDisabled\"\n);\n\nexport namespace BlockActionIfModelDisabled {\n export type Interface = IBlockActionIfModelDisabled;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAOvD,OAAO,MAAMC,0BAA0B,GAAGD,iBAAiB,CACvD,4BACJ,CAAC","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ import type { HeadlessCmsFullyDeleteModel } from "../../types.js";
2
+ export interface LegacyDeps {
3
+ isModelBeingDeleted: HeadlessCmsFullyDeleteModel["isModelBeingDeleted"];
4
+ }
5
+ export declare const DisableModelFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<LegacyDeps>;
@@ -0,0 +1,36 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { BlockActionIfModelDisabled as Abstraction } from "./abstractions.js";
3
+ import { BlockActionIfModelDisabled } from "./BlockActionIfModelDisabled.js";
4
+ import { BlockModelActionOnEntryBeforeCreate } from "./handlers/BlockModelActionOnEntryBeforeCreate.js";
5
+ import { BlockModelActionOnEntryRevisionBeforeCreate } from "./handlers/BlockModelActionOnEntryRevisionBeforeCreate.js";
6
+ import { BlockModelActionOnEntryBeforeUpdate } from "./handlers/BlockModelActionOnEntryBeforeUpdate.js";
7
+ import { BlockModelActionOnEntryBeforeUnpublish } from "./handlers/BlockModelActionOnEntryBeforeUnpublish.js";
8
+ import { BlockModelActionOnEntryBeforePublish } from "./handlers/BlockModelActionOnEntryBeforePublish.js";
9
+ import { BlockModelActionOnEntryBeforeRepublish } from "./handlers/BlockModelActionOnEntryBeforeRepublish.js";
10
+ import { BlockModelActionOnEntryBeforeRestoreFromBin } from "./handlers/BlockModelActionOnEntryBeforeRestoreFromBin.js";
11
+ import { BlockModelActionOnEntryBeforeMove } from "./handlers/BlockModelActionOnEntryBeforeMove.js";
12
+ import { BlockModelActionOnModelBeforeUpdate } from "./handlers/BlockModelActionOnModelBeforeUpdate.js";
13
+ import { BlockModelActionOnModelBeforeCreateFrom } from "./handlers/BlockModelActionOnModelBeforeCreateFrom.js";
14
+ export const DisableModelFeature = createFeature({
15
+ name: "DisableModel",
16
+ register(container, params) {
17
+ // Register the blocking service
18
+ container.registerInstance(Abstraction, new BlockActionIfModelDisabled(params.isModelBeingDeleted));
19
+
20
+ // Register entry event handlers
21
+ container.register(BlockModelActionOnEntryBeforeCreate);
22
+ container.register(BlockModelActionOnEntryRevisionBeforeCreate);
23
+ container.register(BlockModelActionOnEntryBeforeUpdate);
24
+ container.register(BlockModelActionOnEntryBeforeUnpublish);
25
+ container.register(BlockModelActionOnEntryBeforePublish);
26
+ container.register(BlockModelActionOnEntryBeforeRepublish);
27
+ container.register(BlockModelActionOnEntryBeforeRestoreFromBin);
28
+ container.register(BlockModelActionOnEntryBeforeMove);
29
+
30
+ // Register model event handlers
31
+ container.register(BlockModelActionOnModelBeforeUpdate);
32
+ container.register(BlockModelActionOnModelBeforeCreateFrom);
33
+ }
34
+ });
35
+
36
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createFeature","BlockActionIfModelDisabled","Abstraction","BlockModelActionOnEntryBeforeCreate","BlockModelActionOnEntryRevisionBeforeCreate","BlockModelActionOnEntryBeforeUpdate","BlockModelActionOnEntryBeforeUnpublish","BlockModelActionOnEntryBeforePublish","BlockModelActionOnEntryBeforeRepublish","BlockModelActionOnEntryBeforeRestoreFromBin","BlockModelActionOnEntryBeforeMove","BlockModelActionOnModelBeforeUpdate","BlockModelActionOnModelBeforeCreateFrom","DisableModelFeature","name","register","container","params","registerInstance","isModelBeingDeleted"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { BlockActionIfModelDisabled as Abstraction } from \"./abstractions.js\";\nimport { BlockActionIfModelDisabled } from \"./BlockActionIfModelDisabled.js\";\nimport type { HeadlessCmsFullyDeleteModel } from \"~/types.js\";\nimport { BlockModelActionOnEntryBeforeCreate } from \"./handlers/BlockModelActionOnEntryBeforeCreate.js\";\nimport { BlockModelActionOnEntryRevisionBeforeCreate } from \"./handlers/BlockModelActionOnEntryRevisionBeforeCreate.js\";\nimport { BlockModelActionOnEntryBeforeUpdate } from \"./handlers/BlockModelActionOnEntryBeforeUpdate.js\";\nimport { BlockModelActionOnEntryBeforeUnpublish } from \"./handlers/BlockModelActionOnEntryBeforeUnpublish.js\";\nimport { BlockModelActionOnEntryBeforePublish } from \"./handlers/BlockModelActionOnEntryBeforePublish.js\";\nimport { BlockModelActionOnEntryBeforeRepublish } from \"./handlers/BlockModelActionOnEntryBeforeRepublish.js\";\nimport { BlockModelActionOnEntryBeforeRestoreFromBin } from \"./handlers/BlockModelActionOnEntryBeforeRestoreFromBin.js\";\nimport { BlockModelActionOnEntryBeforeMove } from \"./handlers/BlockModelActionOnEntryBeforeMove.js\";\nimport { BlockModelActionOnModelBeforeUpdate } from \"./handlers/BlockModelActionOnModelBeforeUpdate.js\";\nimport { BlockModelActionOnModelBeforeCreateFrom } from \"./handlers/BlockModelActionOnModelBeforeCreateFrom.js\";\n\nexport interface LegacyDeps {\n isModelBeingDeleted: HeadlessCmsFullyDeleteModel[\"isModelBeingDeleted\"];\n}\n\nexport const DisableModelFeature = createFeature({\n name: \"DisableModel\",\n register(container, params: LegacyDeps) {\n // Register the blocking service\n container.registerInstance(\n Abstraction,\n new BlockActionIfModelDisabled(params.isModelBeingDeleted)\n );\n\n // Register entry event handlers\n container.register(BlockModelActionOnEntryBeforeCreate);\n container.register(BlockModelActionOnEntryRevisionBeforeCreate);\n container.register(BlockModelActionOnEntryBeforeUpdate);\n container.register(BlockModelActionOnEntryBeforeUnpublish);\n container.register(BlockModelActionOnEntryBeforePublish);\n container.register(BlockModelActionOnEntryBeforeRepublish);\n container.register(BlockModelActionOnEntryBeforeRestoreFromBin);\n container.register(BlockModelActionOnEntryBeforeMove);\n\n // Register model event handlers\n container.register(BlockModelActionOnModelBeforeUpdate);\n container.register(BlockModelActionOnModelBeforeCreateFrom);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,0BAA0B,IAAIC,WAAW;AAClD,SAASD,0BAA0B;AAEnC,SAASE,mCAAmC;AAC5C,SAASC,2CAA2C;AACpD,SAASC,mCAAmC;AAC5C,SAASC,sCAAsC;AAC/C,SAASC,oCAAoC;AAC7C,SAASC,sCAAsC;AAC/C,SAASC,2CAA2C;AACpD,SAASC,iCAAiC;AAC1C,SAASC,mCAAmC;AAC5C,SAASC,uCAAuC;AAMhD,OAAO,MAAMC,mBAAmB,GAAGb,aAAa,CAAC;EAC7Cc,IAAI,EAAE,cAAc;EACpBC,QAAQA,CAACC,SAAS,EAAEC,MAAkB,EAAE;IACpC;IACAD,SAAS,CAACE,gBAAgB,CACtBhB,WAAW,EACX,IAAID,0BAA0B,CAACgB,MAAM,CAACE,mBAAmB,CAC7D,CAAC;;IAED;IACAH,SAAS,CAACD,QAAQ,CAACZ,mCAAmC,CAAC;IACvDa,SAAS,CAACD,QAAQ,CAACX,2CAA2C,CAAC;IAC/DY,SAAS,CAACD,QAAQ,CAACV,mCAAmC,CAAC;IACvDW,SAAS,CAACD,QAAQ,CAACT,sCAAsC,CAAC;IAC1DU,SAAS,CAACD,QAAQ,CAACR,oCAAoC,CAAC;IACxDS,SAAS,CAACD,QAAQ,CAACP,sCAAsC,CAAC;IAC1DQ,SAAS,CAACD,QAAQ,CAACN,2CAA2C,CAAC;IAC/DO,SAAS,CAACD,QAAQ,CAACL,iCAAiC,CAAC;;IAErD;IACAM,SAAS,CAACD,QAAQ,CAACJ,mCAAmC,CAAC;IACvDK,SAAS,CAACD,QAAQ,CAACH,uCAAuC,CAAC;EAC/D;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ import { EntryBeforeCreateEventHandler } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry/events.js";
2
+ import { BlockActionIfModelDisabled } from "../abstractions.js";
3
+ declare class BlockModelActionOnEntryBeforeCreateImpl implements EntryBeforeCreateEventHandler.Interface {
4
+ private blockAction;
5
+ constructor(blockAction: BlockActionIfModelDisabled.Interface);
6
+ handle(event: EntryBeforeCreateEventHandler.Event): Promise<void>;
7
+ }
8
+ export declare const BlockModelActionOnEntryBeforeCreate: typeof BlockModelActionOnEntryBeforeCreateImpl & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<import("@webiny/api-headless-cms/features/contentEntry/CreateEntry/events.js").EntryBeforeCreateEvent>>;
10
+ };
11
+ export {};
@@ -0,0 +1,16 @@
1
+ import { EntryBeforeCreateEventHandler } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry/events.js";
2
+ import { BlockActionIfModelDisabled } from "../abstractions.js";
3
+ class BlockModelActionOnEntryBeforeCreateImpl {
4
+ constructor(blockAction) {
5
+ this.blockAction = blockAction;
6
+ }
7
+ async handle(event) {
8
+ await this.blockAction.execute(event.payload.model);
9
+ }
10
+ }
11
+ export const BlockModelActionOnEntryBeforeCreate = EntryBeforeCreateEventHandler.createImplementation({
12
+ implementation: BlockModelActionOnEntryBeforeCreateImpl,
13
+ dependencies: [BlockActionIfModelDisabled]
14
+ });
15
+
16
+ //# sourceMappingURL=BlockModelActionOnEntryBeforeCreate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["EntryBeforeCreateEventHandler","BlockActionIfModelDisabled","BlockModelActionOnEntryBeforeCreateImpl","constructor","blockAction","handle","event","execute","payload","model","BlockModelActionOnEntryBeforeCreate","createImplementation","implementation","dependencies"],"sources":["BlockModelActionOnEntryBeforeCreate.ts"],"sourcesContent":["import { EntryBeforeCreateEventHandler } from \"@webiny/api-headless-cms/features/contentEntry/CreateEntry/events.js\";\nimport { BlockActionIfModelDisabled } from \"../abstractions.js\";\n\nclass BlockModelActionOnEntryBeforeCreateImpl implements EntryBeforeCreateEventHandler.Interface {\n constructor(private blockAction: BlockActionIfModelDisabled.Interface) {}\n\n async handle(event: EntryBeforeCreateEventHandler.Event): Promise<void> {\n await this.blockAction.execute(event.payload.model);\n }\n}\n\nexport const BlockModelActionOnEntryBeforeCreate =\n EntryBeforeCreateEventHandler.createImplementation({\n implementation: BlockModelActionOnEntryBeforeCreateImpl,\n dependencies: [BlockActionIfModelDisabled]\n });\n"],"mappings":"AAAA,SAASA,6BAA6B,QAAQ,sEAAsE;AACpH,SAASC,0BAA0B;AAEnC,MAAMC,uCAAuC,CAAoD;EAC7FC,WAAWA,CAASC,WAAiD,EAAE;IAAA,KAAnDA,WAAiD,GAAjDA,WAAiD;EAAG;EAExE,MAAMC,MAAMA,CAACC,KAA0C,EAAiB;IACpE,MAAM,IAAI,CAACF,WAAW,CAACG,OAAO,CAACD,KAAK,CAACE,OAAO,CAACC,KAAK,CAAC;EACvD;AACJ;AAEA,OAAO,MAAMC,mCAAmC,GAC5CV,6BAA6B,CAACW,oBAAoB,CAAC;EAC/CC,cAAc,EAAEV,uCAAuC;EACvDW,YAAY,EAAE,CAACZ,0BAA0B;AAC7C,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ import { EntryBeforeMoveEventHandler } from "@webiny/api-headless-cms/features/contentEntry/MoveEntry/events.js";
2
+ import { BlockActionIfModelDisabled } from "../abstractions.js";
3
+ declare class BlockModelActionOnEntryBeforeMoveImpl implements EntryBeforeMoveEventHandler.Interface {
4
+ private blockAction;
5
+ constructor(blockAction: BlockActionIfModelDisabled.Interface);
6
+ handle(event: EntryBeforeMoveEventHandler.Event): Promise<void>;
7
+ }
8
+ export declare const BlockModelActionOnEntryBeforeMove: typeof BlockModelActionOnEntryBeforeMoveImpl & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<import("@webiny/api-headless-cms/features/contentEntry/MoveEntry/events.js").EntryBeforeMoveEvent>>;
10
+ };
11
+ export {};
@@ -0,0 +1,16 @@
1
+ import { EntryBeforeMoveEventHandler } from "@webiny/api-headless-cms/features/contentEntry/MoveEntry/events.js";
2
+ import { BlockActionIfModelDisabled } from "../abstractions.js";
3
+ class BlockModelActionOnEntryBeforeMoveImpl {
4
+ constructor(blockAction) {
5
+ this.blockAction = blockAction;
6
+ }
7
+ async handle(event) {
8
+ await this.blockAction.execute(event.payload.model);
9
+ }
10
+ }
11
+ export const BlockModelActionOnEntryBeforeMove = EntryBeforeMoveEventHandler.createImplementation({
12
+ implementation: BlockModelActionOnEntryBeforeMoveImpl,
13
+ dependencies: [BlockActionIfModelDisabled]
14
+ });
15
+
16
+ //# sourceMappingURL=BlockModelActionOnEntryBeforeMove.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["EntryBeforeMoveEventHandler","BlockActionIfModelDisabled","BlockModelActionOnEntryBeforeMoveImpl","constructor","blockAction","handle","event","execute","payload","model","BlockModelActionOnEntryBeforeMove","createImplementation","implementation","dependencies"],"sources":["BlockModelActionOnEntryBeforeMove.ts"],"sourcesContent":["import { EntryBeforeMoveEventHandler } from \"@webiny/api-headless-cms/features/contentEntry/MoveEntry/events.js\";\nimport { BlockActionIfModelDisabled } from \"../abstractions.js\";\n\nclass BlockModelActionOnEntryBeforeMoveImpl implements EntryBeforeMoveEventHandler.Interface {\n constructor(private blockAction: BlockActionIfModelDisabled.Interface) {}\n\n async handle(event: EntryBeforeMoveEventHandler.Event): Promise<void> {\n await this.blockAction.execute(event.payload.model);\n }\n}\n\nexport const BlockModelActionOnEntryBeforeMove = EntryBeforeMoveEventHandler.createImplementation({\n implementation: BlockModelActionOnEntryBeforeMoveImpl,\n dependencies: [BlockActionIfModelDisabled]\n});\n"],"mappings":"AAAA,SAASA,2BAA2B,QAAQ,oEAAoE;AAChH,SAASC,0BAA0B;AAEnC,MAAMC,qCAAqC,CAAkD;EACzFC,WAAWA,CAASC,WAAiD,EAAE;IAAA,KAAnDA,WAAiD,GAAjDA,WAAiD;EAAG;EAExE,MAAMC,MAAMA,CAACC,KAAwC,EAAiB;IAClE,MAAM,IAAI,CAACF,WAAW,CAACG,OAAO,CAACD,KAAK,CAACE,OAAO,CAACC,KAAK,CAAC;EACvD;AACJ;AAEA,OAAO,MAAMC,iCAAiC,GAAGV,2BAA2B,CAACW,oBAAoB,CAAC;EAC9FC,cAAc,EAAEV,qCAAqC;EACrDW,YAAY,EAAE,CAACZ,0BAA0B;AAC7C,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ import { EntryBeforePublishEventHandler } from "@webiny/api-headless-cms/features/contentEntry/PublishEntry/events.js";
2
+ import { BlockActionIfModelDisabled } from "../abstractions.js";
3
+ declare class BlockModelActionOnEntryBeforePublishImpl implements EntryBeforePublishEventHandler.Interface {
4
+ private blockAction;
5
+ constructor(blockAction: BlockActionIfModelDisabled.Interface);
6
+ handle(event: EntryBeforePublishEventHandler.Event): Promise<void>;
7
+ }
8
+ export declare const BlockModelActionOnEntryBeforePublish: typeof BlockModelActionOnEntryBeforePublishImpl & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<import("@webiny/api-headless-cms/features/contentEntry/PublishEntry/events.js").EntryBeforePublishEvent>>;
10
+ };
11
+ export {};
@@ -0,0 +1,16 @@
1
+ import { EntryBeforePublishEventHandler } from "@webiny/api-headless-cms/features/contentEntry/PublishEntry/events.js";
2
+ import { BlockActionIfModelDisabled } from "../abstractions.js";
3
+ class BlockModelActionOnEntryBeforePublishImpl {
4
+ constructor(blockAction) {
5
+ this.blockAction = blockAction;
6
+ }
7
+ async handle(event) {
8
+ await this.blockAction.execute(event.payload.model);
9
+ }
10
+ }
11
+ export const BlockModelActionOnEntryBeforePublish = EntryBeforePublishEventHandler.createImplementation({
12
+ implementation: BlockModelActionOnEntryBeforePublishImpl,
13
+ dependencies: [BlockActionIfModelDisabled]
14
+ });
15
+
16
+ //# sourceMappingURL=BlockModelActionOnEntryBeforePublish.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["EntryBeforePublishEventHandler","BlockActionIfModelDisabled","BlockModelActionOnEntryBeforePublishImpl","constructor","blockAction","handle","event","execute","payload","model","BlockModelActionOnEntryBeforePublish","createImplementation","implementation","dependencies"],"sources":["BlockModelActionOnEntryBeforePublish.ts"],"sourcesContent":["import { EntryBeforePublishEventHandler } from \"@webiny/api-headless-cms/features/contentEntry/PublishEntry/events.js\";\nimport { BlockActionIfModelDisabled } from \"../abstractions.js\";\n\nclass BlockModelActionOnEntryBeforePublishImpl implements EntryBeforePublishEventHandler.Interface {\n constructor(private blockAction: BlockActionIfModelDisabled.Interface) {}\n\n async handle(event: EntryBeforePublishEventHandler.Event): Promise<void> {\n await this.blockAction.execute(event.payload.model);\n }\n}\n\nexport const BlockModelActionOnEntryBeforePublish =\n EntryBeforePublishEventHandler.createImplementation({\n implementation: BlockModelActionOnEntryBeforePublishImpl,\n dependencies: [BlockActionIfModelDisabled]\n });\n"],"mappings":"AAAA,SAASA,8BAA8B,QAAQ,uEAAuE;AACtH,SAASC,0BAA0B;AAEnC,MAAMC,wCAAwC,CAAqD;EAC/FC,WAAWA,CAASC,WAAiD,EAAE;IAAA,KAAnDA,WAAiD,GAAjDA,WAAiD;EAAG;EAExE,MAAMC,MAAMA,CAACC,KAA2C,EAAiB;IACrE,MAAM,IAAI,CAACF,WAAW,CAACG,OAAO,CAACD,KAAK,CAACE,OAAO,CAACC,KAAK,CAAC;EACvD;AACJ;AAEA,OAAO,MAAMC,oCAAoC,GAC7CV,8BAA8B,CAACW,oBAAoB,CAAC;EAChDC,cAAc,EAAEV,wCAAwC;EACxDW,YAAY,EAAE,CAACZ,0BAA0B;AAC7C,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ import { EntryBeforeRepublishEventHandler } from "@webiny/api-headless-cms/features/contentEntry/RepublishEntry/events.js";
2
+ import { BlockActionIfModelDisabled } from "../abstractions.js";
3
+ declare class BlockModelActionOnEntryBeforeRepublishImpl implements EntryBeforeRepublishEventHandler.Interface {
4
+ private blockAction;
5
+ constructor(blockAction: BlockActionIfModelDisabled.Interface);
6
+ handle(event: EntryBeforeRepublishEventHandler.Event): Promise<void>;
7
+ }
8
+ export declare const BlockModelActionOnEntryBeforeRepublish: typeof BlockModelActionOnEntryBeforeRepublishImpl & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<import("@webiny/api-headless-cms/features/contentEntry/RepublishEntry/events.js").EntryBeforeRepublishEvent>>;
10
+ };
11
+ export {};
@@ -0,0 +1,16 @@
1
+ import { EntryBeforeRepublishEventHandler } from "@webiny/api-headless-cms/features/contentEntry/RepublishEntry/events.js";
2
+ import { BlockActionIfModelDisabled } from "../abstractions.js";
3
+ class BlockModelActionOnEntryBeforeRepublishImpl {
4
+ constructor(blockAction) {
5
+ this.blockAction = blockAction;
6
+ }
7
+ async handle(event) {
8
+ await this.blockAction.execute(event.payload.model);
9
+ }
10
+ }
11
+ export const BlockModelActionOnEntryBeforeRepublish = EntryBeforeRepublishEventHandler.createImplementation({
12
+ implementation: BlockModelActionOnEntryBeforeRepublishImpl,
13
+ dependencies: [BlockActionIfModelDisabled]
14
+ });
15
+
16
+ //# sourceMappingURL=BlockModelActionOnEntryBeforeRepublish.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["EntryBeforeRepublishEventHandler","BlockActionIfModelDisabled","BlockModelActionOnEntryBeforeRepublishImpl","constructor","blockAction","handle","event","execute","payload","model","BlockModelActionOnEntryBeforeRepublish","createImplementation","implementation","dependencies"],"sources":["BlockModelActionOnEntryBeforeRepublish.ts"],"sourcesContent":["import { EntryBeforeRepublishEventHandler } from \"@webiny/api-headless-cms/features/contentEntry/RepublishEntry/events.js\";\nimport { BlockActionIfModelDisabled } from \"../abstractions.js\";\n\nclass BlockModelActionOnEntryBeforeRepublishImpl\n implements EntryBeforeRepublishEventHandler.Interface\n{\n constructor(private blockAction: BlockActionIfModelDisabled.Interface) {}\n\n async handle(event: EntryBeforeRepublishEventHandler.Event): Promise<void> {\n await this.blockAction.execute(event.payload.model);\n }\n}\n\nexport const BlockModelActionOnEntryBeforeRepublish =\n EntryBeforeRepublishEventHandler.createImplementation({\n implementation: BlockModelActionOnEntryBeforeRepublishImpl,\n dependencies: [BlockActionIfModelDisabled]\n });\n"],"mappings":"AAAA,SAASA,gCAAgC,QAAQ,yEAAyE;AAC1H,SAASC,0BAA0B;AAEnC,MAAMC,0CAA0C,CAEhD;EACIC,WAAWA,CAASC,WAAiD,EAAE;IAAA,KAAnDA,WAAiD,GAAjDA,WAAiD;EAAG;EAExE,MAAMC,MAAMA,CAACC,KAA6C,EAAiB;IACvE,MAAM,IAAI,CAACF,WAAW,CAACG,OAAO,CAACD,KAAK,CAACE,OAAO,CAACC,KAAK,CAAC;EACvD;AACJ;AAEA,OAAO,MAAMC,sCAAsC,GAC/CV,gCAAgC,CAACW,oBAAoB,CAAC;EAClDC,cAAc,EAAEV,0CAA0C;EAC1DW,YAAY,EAAE,CAACZ,0BAA0B;AAC7C,CAAC,CAAC","ignoreList":[]}