@webiny/api-headless-cms-bulk-actions 5.41.0-dbt.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/LICENSE +21 -0
  2. package/README.md +15 -0
  3. package/abstractions/IListEntries.d.ts +7 -0
  4. package/abstractions/IListEntries.js +7 -0
  5. package/abstractions/IListEntries.js.map +1 -0
  6. package/abstractions/IProcessEntry.d.ts +4 -0
  7. package/abstractions/IProcessEntry.js +7 -0
  8. package/abstractions/IProcessEntry.js.map +1 -0
  9. package/abstractions/IUseCase.d.ts +3 -0
  10. package/abstractions/IUseCase.js +7 -0
  11. package/abstractions/IUseCase.js.map +1 -0
  12. package/abstractions/index.d.ts +3 -0
  13. package/abstractions/index.js +40 -0
  14. package/abstractions/index.js.map +1 -0
  15. package/handlers/eventBridgeEventHandler.d.ts +1 -0
  16. package/handlers/eventBridgeEventHandler.js +49 -0
  17. package/handlers/eventBridgeEventHandler.js.map +1 -0
  18. package/handlers/index.d.ts +1 -0
  19. package/handlers/index.js +14 -0
  20. package/handlers/index.js.map +1 -0
  21. package/handlers/setupEventsTenant.d.ts +1 -0
  22. package/handlers/setupEventsTenant.js +19 -0
  23. package/handlers/setupEventsTenant.js.map +1 -0
  24. package/index.d.ts +4 -0
  25. package/index.js +51 -0
  26. package/index.js.map +1 -0
  27. package/package.json +52 -0
  28. package/plugins/createBulkAction.d.ts +9 -0
  29. package/plugins/createBulkAction.js +35 -0
  30. package/plugins/createBulkAction.js.map +1 -0
  31. package/plugins/createBulkActionGraphQL.d.ts +7 -0
  32. package/plugins/createBulkActionGraphQL.js +56 -0
  33. package/plugins/createBulkActionGraphQL.js.map +1 -0
  34. package/plugins/createBulkActionTasks.d.ts +8 -0
  35. package/plugins/createBulkActionTasks.js +108 -0
  36. package/plugins/createBulkActionTasks.js.map +1 -0
  37. package/plugins/createDefaultGraphQL.d.ts +3 -0
  38. package/plugins/createDefaultGraphQL.js +57 -0
  39. package/plugins/createDefaultGraphQL.js.map +1 -0
  40. package/plugins/index.d.ts +2 -0
  41. package/plugins/index.js +29 -0
  42. package/plugins/index.js.map +1 -0
  43. package/tasks/createBulkActionEntriesTasks.d.ts +1 -0
  44. package/tasks/createBulkActionEntriesTasks.js +38 -0
  45. package/tasks/createBulkActionEntriesTasks.js.map +1 -0
  46. package/tasks/createEmptyTrashBinsTask.d.ts +2 -0
  47. package/tasks/createEmptyTrashBinsTask.js +84 -0
  48. package/tasks/createEmptyTrashBinsTask.js.map +1 -0
  49. package/tasks/index.d.ts +1 -0
  50. package/tasks/index.js +14 -0
  51. package/tasks/index.js.map +1 -0
  52. package/types.d.ts +41 -0
  53. package/types.js +7 -0
  54. package/types.js.map +1 -0
  55. package/useCases/DeleteEntry.d.ts +10 -0
  56. package/useCases/DeleteEntry.js +26 -0
  57. package/useCases/DeleteEntry.js.map +1 -0
  58. package/useCases/ListDeletedEntries.d.ts +13 -0
  59. package/useCases/ListDeletedEntries.js +28 -0
  60. package/useCases/ListDeletedEntries.js.map +1 -0
  61. package/useCases/ListLatestEntries.d.ts +13 -0
  62. package/useCases/ListLatestEntries.js +28 -0
  63. package/useCases/ListLatestEntries.js.map +1 -0
  64. package/useCases/ListPublishedEntries.d.ts +13 -0
  65. package/useCases/ListPublishedEntries.js +28 -0
  66. package/useCases/ListPublishedEntries.js.map +1 -0
  67. package/useCases/MoveEntryToFolder.d.ts +13 -0
  68. package/useCases/MoveEntryToFolder.js +23 -0
  69. package/useCases/MoveEntryToFolder.js.map +1 -0
  70. package/useCases/MoveEntryToTrash.d.ts +10 -0
  71. package/useCases/MoveEntryToTrash.js +26 -0
  72. package/useCases/MoveEntryToTrash.js.map +1 -0
  73. package/useCases/PublishEntry.d.ts +10 -0
  74. package/useCases/PublishEntry.js +20 -0
  75. package/useCases/PublishEntry.js.map +1 -0
  76. package/useCases/RestoreEntryFromTrash.d.ts +10 -0
  77. package/useCases/RestoreEntryFromTrash.js +24 -0
  78. package/useCases/RestoreEntryFromTrash.js.map +1 -0
  79. package/useCases/UnpublishEntry.d.ts +10 -0
  80. package/useCases/UnpublishEntry.js +20 -0
  81. package/useCases/UnpublishEntry.js.map +1 -0
  82. package/useCases/index.d.ts +9 -0
  83. package/useCases/index.js +106 -0
  84. package/useCases/index.js.map +1 -0
  85. package/useCases/internals/ChildTaskCleanup/ChildTasksCleanup.d.ts +13 -0
  86. package/useCases/internals/ChildTaskCleanup/ChildTasksCleanup.js +63 -0
  87. package/useCases/internals/ChildTaskCleanup/ChildTasksCleanup.js.map +1 -0
  88. package/useCases/internals/ChildTaskCleanup/index.d.ts +1 -0
  89. package/useCases/internals/ChildTaskCleanup/index.js +18 -0
  90. package/useCases/internals/ChildTaskCleanup/index.js.map +1 -0
  91. package/useCases/internals/CreateTasksByModel/CreateTasksByModel.d.ts +12 -0
  92. package/useCases/internals/CreateTasksByModel/CreateTasksByModel.js +107 -0
  93. package/useCases/internals/CreateTasksByModel/CreateTasksByModel.js.map +1 -0
  94. package/useCases/internals/CreateTasksByModel/TaskCache.d.ts +31 -0
  95. package/useCases/internals/CreateTasksByModel/TaskCache.js +68 -0
  96. package/useCases/internals/CreateTasksByModel/TaskCache.js.map +1 -0
  97. package/useCases/internals/CreateTasksByModel/index.d.ts +1 -0
  98. package/useCases/internals/CreateTasksByModel/index.js +18 -0
  99. package/useCases/internals/CreateTasksByModel/index.js.map +1 -0
  100. package/useCases/internals/ProcessTask/ProcessTask.d.ts +14 -0
  101. package/useCases/internals/ProcessTask/ProcessTask.js +92 -0
  102. package/useCases/internals/ProcessTask/ProcessTask.js.map +1 -0
  103. package/useCases/internals/ProcessTask/Result.d.ts +9 -0
  104. package/useCases/internals/ProcessTask/Result.js +29 -0
  105. package/useCases/internals/ProcessTask/Result.js.map +1 -0
  106. package/useCases/internals/ProcessTask/index.d.ts +1 -0
  107. package/useCases/internals/ProcessTask/index.js +18 -0
  108. package/useCases/internals/ProcessTask/index.js.map +1 -0
  109. package/useCases/internals/ProcessTasksByModel/ProcessTasksByModel.d.ts +11 -0
  110. package/useCases/internals/ProcessTasksByModel/ProcessTasksByModel.js +61 -0
  111. package/useCases/internals/ProcessTasksByModel/ProcessTasksByModel.js.map +1 -0
  112. package/useCases/internals/ProcessTasksByModel/index.d.ts +1 -0
  113. package/useCases/internals/ProcessTasksByModel/index.js +18 -0
  114. package/useCases/internals/ProcessTasksByModel/index.js.map +1 -0
  115. package/useCases/internals/index.d.ts +4 -0
  116. package/useCases/internals/index.js +51 -0
  117. package/useCases/internals/index.js.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_tasks","require","_internals","BulkActionTasks","constructor","config","name","dataLoader","dataProcessor","createListTaskDefinition","createPrivateTaskDefinition","id","createListTaskDefinitionName","title","maxIterations","run","params","response","input","context","modelId","error","processing","processTasks","ProcessTasksByModel","createProcessTaskDefinitionName","execute","createTasks","CreateTasksByModel","ex","message","onDone","task","childTasksCleanup","ChildTasksCleanup","console","createProcessTaskDefinition","processTask","ProcessTask","createBulkActionTasks","backgroundTasks","exports"],"sources":["createBulkActionTasks.ts"],"sourcesContent":["import { createPrivateTaskDefinition } from \"@webiny/tasks\";\nimport { IListEntries, IProcessEntry } from \"~/abstractions\";\nimport {\n ChildTasksCleanup,\n CreateTasksByModel,\n ProcessTask,\n ProcessTasksByModel\n} from \"~/useCases/internals\";\nimport {\n HcmsBulkActionsContext,\n IBulkActionOperationByModelInput,\n IBulkActionOperationByModelOutput,\n IBulkActionOperationInput,\n IBulkActionOperationOutput\n} from \"~/types\";\n\nexport interface CreateBackgroundTasksConfig {\n name: string;\n dataLoader: (context: HcmsBulkActionsContext) => IListEntries;\n dataProcessor: (context: HcmsBulkActionsContext) => IProcessEntry;\n}\n\nclass BulkActionTasks {\n private readonly name: string;\n private readonly dataLoader: (context: HcmsBulkActionsContext) => IListEntries;\n private readonly dataProcessor: (context: HcmsBulkActionsContext) => IProcessEntry;\n\n constructor(config: CreateBackgroundTasksConfig) {\n this.name = config.name;\n this.dataLoader = config.dataLoader;\n this.dataProcessor = config.dataProcessor;\n }\n\n public createListTaskDefinition() {\n return createPrivateTaskDefinition<\n HcmsBulkActionsContext,\n IBulkActionOperationByModelInput,\n IBulkActionOperationByModelOutput\n >({\n id: this.createListTaskDefinitionName(),\n title: `Headless CMS: list \"${this.name}\" entries by model`,\n maxIterations: 500,\n run: async params => {\n const { response, input, context } = params;\n\n try {\n if (!input.modelId) {\n return response.error(`Missing \"modelId\" in the input.`);\n }\n\n if (input.processing) {\n const processTasks = new ProcessTasksByModel(\n this.createProcessTaskDefinitionName()\n );\n return await processTasks.execute(params);\n }\n\n const createTasks = new CreateTasksByModel(\n this.createProcessTaskDefinitionName(),\n this.dataLoader(context)\n );\n return await createTasks.execute(params);\n } catch (ex) {\n return response.error(ex.message ?? \"Error while executing list task\");\n }\n },\n onDone: async ({ context, task }) => {\n /**\n * We want to clean all child tasks and logs, which have no errors.\n */\n const childTasksCleanup = new ChildTasksCleanup();\n try {\n await childTasksCleanup.execute({\n context,\n task\n });\n } catch (ex) {\n console.error(\"Error while cleaning list child tasks.\", ex);\n }\n }\n });\n }\n\n public createProcessTaskDefinition() {\n return createPrivateTaskDefinition<\n HcmsBulkActionsContext,\n IBulkActionOperationInput,\n IBulkActionOperationOutput\n >({\n id: this.createProcessTaskDefinitionName(),\n title: `Headless CMS: process \"${this.name}\" entries`,\n maxIterations: 2,\n run: async params => {\n const { response, context } = params;\n\n try {\n const processTask = new ProcessTask(this.dataProcessor(context));\n return await processTask.execute(params);\n } catch (ex) {\n return response.error(ex.message ?? \"Error while executing process task\");\n }\n },\n onDone: async ({ context, task }) => {\n /**\n * We want to clean all child tasks and logs, which have no errors.\n */\n const childTasksCleanup = new ChildTasksCleanup();\n try {\n await childTasksCleanup.execute({\n context,\n task\n });\n } catch (ex) {\n console.error(\"Error while cleaning process child tasks.\", ex);\n }\n }\n });\n }\n\n private createListTaskDefinitionName() {\n return `hcmsBulkList${this.name}Entries`;\n }\n\n private createProcessTaskDefinitionName() {\n return `hcmsBulkProcess${this.name}Entries`;\n }\n}\n\nexport const createBulkActionTasks = (config: CreateBackgroundTasksConfig) => {\n const backgroundTasks = new BulkActionTasks(config);\n\n return [\n backgroundTasks.createListTaskDefinition(),\n backgroundTasks.createProcessTaskDefinition()\n ];\n};\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import { ContextPlugin } from "@webiny/api";
2
+ import { HcmsBulkActionsContext } from "../types";
3
+ export declare const createDefaultGraphQL: () => ContextPlugin<HcmsBulkActionsContext>;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createDefaultGraphQL = void 0;
7
+ var _api = require("@webiny/api");
8
+ var _apiHeadlessCms = require("@webiny/api-headless-cms");
9
+ const createDefaultGraphQL = () => {
10
+ return new _api.ContextPlugin(async context => {
11
+ if (!(await (0, _apiHeadlessCms.isHeadlessCmsReady)(context))) {
12
+ return;
13
+ }
14
+ const defaultPlugin = new _apiHeadlessCms.CmsGraphQLSchemaPlugin({
15
+ typeDefs: /* GraphQL */`
16
+ type BulkActionResponseData {
17
+ id: String
18
+ }
19
+
20
+ type BulkActionResponse {
21
+ data: BulkActionResponseData
22
+ error: CmsError
23
+ }
24
+ `
25
+ });
26
+ defaultPlugin.name = `headless-cms.graphql.schema.bulkAction.default`;
27
+ const models = await context.security.withoutAuthorization(async () => {
28
+ const allModels = await context.cms.listModels();
29
+ return allModels.filter(model => !model.isPrivate);
30
+ });
31
+ const modelPlugins = [];
32
+ models.forEach(model => {
33
+ const plugin = new _apiHeadlessCms.CmsGraphQLSchemaPlugin({
34
+ typeDefs: /* GraphQL */`
35
+ enum BulkAction${model.singularApiName}Name {
36
+ _empty
37
+ }
38
+
39
+ extend type Mutation {
40
+ bulkAction${model.singularApiName}(
41
+ action: BulkAction${model.singularApiName}Name!
42
+ where: ${model.singularApiName}ListWhereInput
43
+ search: String
44
+ data: JSON
45
+ ): BulkActionResponse
46
+ }
47
+ `
48
+ });
49
+ plugin.name = `headless-cms.graphql.schema.bulkAction.default.${model.modelId}`;
50
+ modelPlugins.push(plugin);
51
+ });
52
+ context.plugins.register([defaultPlugin, ...modelPlugins]);
53
+ });
54
+ };
55
+ exports.createDefaultGraphQL = createDefaultGraphQL;
56
+
57
+ //# sourceMappingURL=createDefaultGraphQL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_api","require","_apiHeadlessCms","createDefaultGraphQL","ContextPlugin","context","isHeadlessCmsReady","defaultPlugin","CmsGraphQLSchemaPlugin","typeDefs","name","models","security","withoutAuthorization","allModels","cms","listModels","filter","model","isPrivate","modelPlugins","forEach","plugin","singularApiName","modelId","push","plugins","register","exports"],"sources":["createDefaultGraphQL.ts"],"sourcesContent":["import { ContextPlugin } from \"@webiny/api\";\nimport { HcmsBulkActionsContext } from \"~/types\";\nimport { CmsGraphQLSchemaPlugin, isHeadlessCmsReady } from \"@webiny/api-headless-cms\";\n\nexport const createDefaultGraphQL = () => {\n return new ContextPlugin<HcmsBulkActionsContext>(async context => {\n if (!(await isHeadlessCmsReady(context))) {\n return;\n }\n\n const defaultPlugin = new CmsGraphQLSchemaPlugin({\n typeDefs: /* GraphQL */ `\n type BulkActionResponseData {\n id: String\n }\n\n type BulkActionResponse {\n data: BulkActionResponseData\n error: CmsError\n }\n `\n });\n defaultPlugin.name = `headless-cms.graphql.schema.bulkAction.default`;\n\n const models = await context.security.withoutAuthorization(async () => {\n const allModels = await context.cms.listModels();\n return allModels.filter(model => !model.isPrivate);\n });\n\n const modelPlugins: CmsGraphQLSchemaPlugin<HcmsBulkActionsContext>[] = [];\n\n models.forEach(model => {\n const plugin = new CmsGraphQLSchemaPlugin({\n typeDefs: /* GraphQL */ `\n enum BulkAction${model.singularApiName}Name {\n _empty\n }\n \n extend type Mutation {\n bulkAction${model.singularApiName}(\n action: BulkAction${model.singularApiName}Name!\n where: ${model.singularApiName}ListWhereInput\n search: String\n data: JSON\n ): BulkActionResponse\n }\n `\n });\n\n plugin.name = `headless-cms.graphql.schema.bulkAction.default.${model.modelId}`;\n modelPlugins.push(plugin);\n });\n\n context.plugins.register([defaultPlugin, ...modelPlugins]);\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,IAAA,GAAAC,OAAA;AAEA,IAAAC,eAAA,GAAAD,OAAA;AAEO,MAAME,oBAAoB,GAAGA,CAAA,KAAM;EACtC,OAAO,IAAIC,kBAAa,CAAyB,MAAMC,OAAO,IAAI;IAC9D,IAAI,EAAE,MAAM,IAAAC,kCAAkB,EAACD,OAAO,CAAC,CAAC,EAAE;MACtC;IACJ;IAEA,MAAME,aAAa,GAAG,IAAIC,sCAAsB,CAAC;MAC7CC,QAAQ,EAAE,aAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACQ,CAAC,CAAC;IACFF,aAAa,CAACG,IAAI,GAAI,gDAA+C;IAErE,MAAMC,MAAM,GAAG,MAAMN,OAAO,CAACO,QAAQ,CAACC,oBAAoB,CAAC,YAAY;MACnE,MAAMC,SAAS,GAAG,MAAMT,OAAO,CAACU,GAAG,CAACC,UAAU,CAAC,CAAC;MAChD,OAAOF,SAAS,CAACG,MAAM,CAACC,KAAK,IAAI,CAACA,KAAK,CAACC,SAAS,CAAC;IACtD,CAAC,CAAC;IAEF,MAAMC,YAA8D,GAAG,EAAE;IAEzET,MAAM,CAACU,OAAO,CAACH,KAAK,IAAI;MACpB,MAAMI,MAAM,GAAG,IAAId,sCAAsB,CAAC;QACtCC,QAAQ,EAAE,aAAe;AACzC,qCAAqCS,KAAK,CAACK,eAAgB;AAC3D;AACA;AACA;AACA;AACA,oCAAoCL,KAAK,CAACK,eAAgB;AAC1D,gDAAgDL,KAAK,CAACK,eAAgB;AACtE,qCAAqCL,KAAK,CAACK,eAAgB;AAC3D;AACA;AACA;AACA;AACA;MACY,CAAC,CAAC;MAEFD,MAAM,CAACZ,IAAI,GAAI,kDAAiDQ,KAAK,CAACM,OAAQ,EAAC;MAC/EJ,YAAY,CAACK,IAAI,CAACH,MAAM,CAAC;IAC7B,CAAC,CAAC;IAEFjB,OAAO,CAACqB,OAAO,CAACC,QAAQ,CAAC,CAACpB,aAAa,EAAE,GAAGa,YAAY,CAAC,CAAC;EAC9D,CAAC,CAAC;AACN,CAAC;AAACQ,OAAA,CAAAzB,oBAAA,GAAAA,oBAAA","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export * from "./createBulkAction";
2
+ export * from "./createDefaultGraphQL";
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _createBulkAction = require("./createBulkAction");
7
+ Object.keys(_createBulkAction).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _createBulkAction[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _createBulkAction[key];
14
+ }
15
+ });
16
+ });
17
+ var _createDefaultGraphQL = require("./createDefaultGraphQL");
18
+ Object.keys(_createDefaultGraphQL).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _createDefaultGraphQL[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _createDefaultGraphQL[key];
25
+ }
26
+ });
27
+ });
28
+
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_createBulkAction","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_createDefaultGraphQL"],"sources":["index.ts"],"sourcesContent":["export * from \"./createBulkAction\";\nexport * from \"./createDefaultGraphQL\";\n"],"mappings":";;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,iBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,iBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,iBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,qBAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,qBAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,qBAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,qBAAA,CAAAL,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export declare const createBulkActionEntriesTasks: () => (import("@webiny/api").ContextPlugin<import("../types").HcmsBulkActionsContext> | (import("@webiny/tasks").TaskDefinitionPlugin<import("../types").HcmsBulkActionsContext, import("../types").IBulkActionOperationByModelInput, import("../types").IBulkActionOperationByModelOutput> | import("@webiny/tasks").TaskDefinitionPlugin<import("../types").HcmsBulkActionsContext, import("../types").IBulkActionOperationInput, import("../types").IBulkActionOperationOutput>)[])[][];
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createBulkActionEntriesTasks = void 0;
7
+ var _plugins = require("../plugins");
8
+ var _useCases = require("../useCases");
9
+ const createBulkActionEntriesTasks = () => {
10
+ return [(0, _plugins.createBulkAction)({
11
+ name: "delete",
12
+ dataLoader: _useCases.createListDeletedEntries,
13
+ dataProcessor: _useCases.createDeleteEntry
14
+ }), (0, _plugins.createBulkAction)({
15
+ name: "moveToFolder",
16
+ dataLoader: _useCases.createListLatestEntries,
17
+ dataProcessor: _useCases.createMoveEntryToFolder
18
+ }), (0, _plugins.createBulkAction)({
19
+ name: "moveToTrash",
20
+ dataLoader: _useCases.createListLatestEntries,
21
+ dataProcessor: _useCases.createMoveEntryToTrash
22
+ }), (0, _plugins.createBulkAction)({
23
+ name: "publish",
24
+ dataLoader: _useCases.createListLatestEntries,
25
+ dataProcessor: _useCases.createPublishEntry
26
+ }), (0, _plugins.createBulkAction)({
27
+ name: "unpublish",
28
+ dataLoader: _useCases.createListPublishedEntries,
29
+ dataProcessor: _useCases.createUnpublishEntry
30
+ }), (0, _plugins.createBulkAction)({
31
+ name: "restore",
32
+ dataLoader: _useCases.createListDeletedEntries,
33
+ dataProcessor: _useCases.createRestoreEntryFromTrash
34
+ })];
35
+ };
36
+ exports.createBulkActionEntriesTasks = createBulkActionEntriesTasks;
37
+
38
+ //# sourceMappingURL=createBulkActionEntriesTasks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_plugins","require","_useCases","createBulkActionEntriesTasks","createBulkAction","name","dataLoader","createListDeletedEntries","dataProcessor","createDeleteEntry","createListLatestEntries","createMoveEntryToFolder","createMoveEntryToTrash","createPublishEntry","createListPublishedEntries","createUnpublishEntry","createRestoreEntryFromTrash","exports"],"sources":["createBulkActionEntriesTasks.ts"],"sourcesContent":["import { createBulkAction } from \"~/plugins\";\nimport {\n createDeleteEntry,\n createListDeletedEntries,\n createListLatestEntries,\n createListPublishedEntries,\n createMoveEntryToFolder,\n createMoveEntryToTrash,\n createPublishEntry,\n createRestoreEntryFromTrash,\n createUnpublishEntry\n} from \"~/useCases\";\n\nexport const createBulkActionEntriesTasks = () => {\n return [\n createBulkAction({\n name: \"delete\",\n dataLoader: createListDeletedEntries,\n dataProcessor: createDeleteEntry\n }),\n createBulkAction({\n name: \"moveToFolder\",\n dataLoader: createListLatestEntries,\n dataProcessor: createMoveEntryToFolder\n }),\n createBulkAction({\n name: \"moveToTrash\",\n dataLoader: createListLatestEntries,\n dataProcessor: createMoveEntryToTrash\n }),\n createBulkAction({\n name: \"publish\",\n dataLoader: createListLatestEntries,\n dataProcessor: createPublishEntry\n }),\n createBulkAction({\n name: \"unpublish\",\n dataLoader: createListPublishedEntries,\n dataProcessor: createUnpublishEntry\n }),\n createBulkAction({\n name: \"restore\",\n dataLoader: createListDeletedEntries,\n dataProcessor: createRestoreEntryFromTrash\n })\n ];\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AAYO,MAAME,4BAA4B,GAAGA,CAAA,KAAM;EAC9C,OAAO,CACH,IAAAC,yBAAgB,EAAC;IACbC,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAEC,kCAAwB;IACpCC,aAAa,EAAEC;EACnB,CAAC,CAAC,EACF,IAAAL,yBAAgB,EAAC;IACbC,IAAI,EAAE,cAAc;IACpBC,UAAU,EAAEI,iCAAuB;IACnCF,aAAa,EAAEG;EACnB,CAAC,CAAC,EACF,IAAAP,yBAAgB,EAAC;IACbC,IAAI,EAAE,aAAa;IACnBC,UAAU,EAAEI,iCAAuB;IACnCF,aAAa,EAAEI;EACnB,CAAC,CAAC,EACF,IAAAR,yBAAgB,EAAC;IACbC,IAAI,EAAE,SAAS;IACfC,UAAU,EAAEI,iCAAuB;IACnCF,aAAa,EAAEK;EACnB,CAAC,CAAC,EACF,IAAAT,yBAAgB,EAAC;IACbC,IAAI,EAAE,WAAW;IACjBC,UAAU,EAAEQ,oCAA0B;IACtCN,aAAa,EAAEO;EACnB,CAAC,CAAC,EACF,IAAAX,yBAAgB,EAAC;IACbC,IAAI,EAAE,SAAS;IACfC,UAAU,EAAEC,kCAAwB;IACpCC,aAAa,EAAEQ;EACnB,CAAC,CAAC,CACL;AACL,CAAC;AAACC,OAAA,CAAAd,4BAAA,GAAAA,4BAAA","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import { HcmsBulkActionsContext } from "../types";
2
+ export declare const createEmptyTrashBinsTask: () => import("@webiny/tasks").TaskDefinitionPlugin<HcmsBulkActionsContext, any, import("@webiny/tasks").ITaskResponseDoneResultOutput>;
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createEmptyTrashBinsTask = void 0;
7
+ var _tasks = require("@webiny/tasks");
8
+ var _internals = require("../useCases/internals");
9
+ const calculateDateTimeString = () => {
10
+ // Retrieve the retention period from the environment variable WEBINY_TRASH_BIN_RETENTION_PERIOD_DAYS,
11
+ // or default to 90 days if not set or set to 0.
12
+ const retentionPeriodFromEnv = process.env["WEBINY_TRASH_BIN_RETENTION_PERIOD_DAYS"];
13
+ const retentionPeriod = retentionPeriodFromEnv && Number(retentionPeriodFromEnv) !== 0 ? Number(retentionPeriodFromEnv) : 90;
14
+
15
+ // Calculate the date-time by subtracting the retention period (in days) from the current date.
16
+ const currentDate = new Date();
17
+ currentDate.setDate(currentDate.getDate() - retentionPeriod);
18
+
19
+ // Return the calculated date-time string in ISO 8601 format.
20
+ return currentDate.toISOString();
21
+ };
22
+ const createEmptyTrashBinsTask = () => {
23
+ return (0, _tasks.createTaskDefinition)({
24
+ id: "hcmsEntriesEmptyTrashBins",
25
+ title: "Headless CMS - Empty all trash bins",
26
+ description: "Delete all entries found in the trash bin, for each model found in the system.",
27
+ maxIterations: 1,
28
+ run: async params => {
29
+ const {
30
+ response,
31
+ isAborted,
32
+ context
33
+ } = params;
34
+ try {
35
+ if (isAborted()) {
36
+ return response.aborted();
37
+ }
38
+ const locales = context.i18n.getLocales();
39
+ await context.i18n.withEachLocale(locales, async () => {
40
+ const models = await context.security.withoutAuthorization(async () => {
41
+ return (await context.cms.listModels()).filter(model => !model.isPrivate);
42
+ });
43
+ for (const model of models) {
44
+ await context.tasks.trigger({
45
+ name: `Headless CMS - Empty trash bin for "${model.name}" model.`,
46
+ definition: "hcmsBulkListDeleteEntries",
47
+ parent: params.store.getTask(),
48
+ input: {
49
+ modelId: model.modelId,
50
+ where: {
51
+ deletedOn_lt: calculateDateTimeString()
52
+ }
53
+ }
54
+ });
55
+ }
56
+ return;
57
+ });
58
+ return response.done(`Task done: emptying the trash bin for all registered models.`);
59
+ } catch (ex) {
60
+ return response.error(ex.message ?? "Error while executing EmptyTrashBins task");
61
+ }
62
+ },
63
+ onDone: async ({
64
+ context,
65
+ task
66
+ }) => {
67
+ /**
68
+ * We want to clean all child tasks and logs, which have no errors.
69
+ */
70
+ const childTasksCleanup = new _internals.ChildTasksCleanup();
71
+ try {
72
+ await childTasksCleanup.execute({
73
+ context,
74
+ task
75
+ });
76
+ } catch (ex) {
77
+ console.error("Error while cleaning `EmptyTrashBins` child tasks.", ex);
78
+ }
79
+ }
80
+ });
81
+ };
82
+ exports.createEmptyTrashBinsTask = createEmptyTrashBinsTask;
83
+
84
+ //# sourceMappingURL=createEmptyTrashBinsTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_tasks","require","_internals","calculateDateTimeString","retentionPeriodFromEnv","process","env","retentionPeriod","Number","currentDate","Date","setDate","getDate","toISOString","createEmptyTrashBinsTask","createTaskDefinition","id","title","description","maxIterations","run","params","response","isAborted","context","aborted","locales","i18n","getLocales","withEachLocale","models","security","withoutAuthorization","cms","listModels","filter","model","isPrivate","tasks","trigger","name","definition","parent","store","getTask","input","modelId","where","deletedOn_lt","done","ex","error","message","onDone","task","childTasksCleanup","ChildTasksCleanup","execute","console","exports"],"sources":["createEmptyTrashBinsTask.ts"],"sourcesContent":["import { createTaskDefinition } from \"@webiny/tasks\";\nimport { HcmsBulkActionsContext, IBulkActionOperationByModelInput } from \"~/types\";\nimport { ChildTasksCleanup } from \"~/useCases/internals\";\n\nconst calculateDateTimeString = () => {\n // Retrieve the retention period from the environment variable WEBINY_TRASH_BIN_RETENTION_PERIOD_DAYS,\n // or default to 90 days if not set or set to 0.\n const retentionPeriodFromEnv = process.env[\"WEBINY_TRASH_BIN_RETENTION_PERIOD_DAYS\"];\n const retentionPeriod =\n retentionPeriodFromEnv && Number(retentionPeriodFromEnv) !== 0\n ? Number(retentionPeriodFromEnv)\n : 90;\n\n // Calculate the date-time by subtracting the retention period (in days) from the current date.\n const currentDate = new Date();\n currentDate.setDate(currentDate.getDate() - retentionPeriod);\n\n // Return the calculated date-time string in ISO 8601 format.\n return currentDate.toISOString();\n};\n\nexport const createEmptyTrashBinsTask = () => {\n return createTaskDefinition<HcmsBulkActionsContext>({\n id: \"hcmsEntriesEmptyTrashBins\",\n title: \"Headless CMS - Empty all trash bins\",\n description:\n \"Delete all entries found in the trash bin, for each model found in the system.\",\n maxIterations: 1,\n run: async params => {\n const { response, isAborted, context } = params;\n\n try {\n if (isAborted()) {\n return response.aborted();\n }\n\n const locales = context.i18n.getLocales();\n\n await context.i18n.withEachLocale(locales, async () => {\n const models = await context.security.withoutAuthorization(async () => {\n return (await context.cms.listModels()).filter(model => !model.isPrivate);\n });\n\n for (const model of models) {\n await context.tasks.trigger<IBulkActionOperationByModelInput>({\n name: `Headless CMS - Empty trash bin for \"${model.name}\" model.`,\n definition: \"hcmsBulkListDeleteEntries\",\n parent: params.store.getTask(),\n input: {\n modelId: model.modelId,\n where: {\n deletedOn_lt: calculateDateTimeString()\n }\n }\n });\n }\n return;\n });\n\n return response.done(\n `Task done: emptying the trash bin for all registered models.`\n );\n } catch (ex) {\n return response.error(ex.message ?? \"Error while executing EmptyTrashBins task\");\n }\n },\n onDone: async ({ context, task }) => {\n /**\n * We want to clean all child tasks and logs, which have no errors.\n */\n const childTasksCleanup = new ChildTasksCleanup();\n try {\n await childTasksCleanup.execute({\n context,\n task\n });\n } catch (ex) {\n console.error(\"Error while cleaning `EmptyTrashBins` child tasks.\", ex);\n }\n }\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AAEA,MAAME,uBAAuB,GAAGA,CAAA,KAAM;EAClC;EACA;EACA,MAAMC,sBAAsB,GAAGC,OAAO,CAACC,GAAG,CAAC,wCAAwC,CAAC;EACpF,MAAMC,eAAe,GACjBH,sBAAsB,IAAII,MAAM,CAACJ,sBAAsB,CAAC,KAAK,CAAC,GACxDI,MAAM,CAACJ,sBAAsB,CAAC,GAC9B,EAAE;;EAEZ;EACA,MAAMK,WAAW,GAAG,IAAIC,IAAI,CAAC,CAAC;EAC9BD,WAAW,CAACE,OAAO,CAACF,WAAW,CAACG,OAAO,CAAC,CAAC,GAAGL,eAAe,CAAC;;EAE5D;EACA,OAAOE,WAAW,CAACI,WAAW,CAAC,CAAC;AACpC,CAAC;AAEM,MAAMC,wBAAwB,GAAGA,CAAA,KAAM;EAC1C,OAAO,IAAAC,2BAAoB,EAAyB;IAChDC,EAAE,EAAE,2BAA2B;IAC/BC,KAAK,EAAE,qCAAqC;IAC5CC,WAAW,EACP,gFAAgF;IACpFC,aAAa,EAAE,CAAC;IAChBC,GAAG,EAAE,MAAMC,MAAM,IAAI;MACjB,MAAM;QAAEC,QAAQ;QAAEC,SAAS;QAAEC;MAAQ,CAAC,GAAGH,MAAM;MAE/C,IAAI;QACA,IAAIE,SAAS,CAAC,CAAC,EAAE;UACb,OAAOD,QAAQ,CAACG,OAAO,CAAC,CAAC;QAC7B;QAEA,MAAMC,OAAO,GAAGF,OAAO,CAACG,IAAI,CAACC,UAAU,CAAC,CAAC;QAEzC,MAAMJ,OAAO,CAACG,IAAI,CAACE,cAAc,CAACH,OAAO,EAAE,YAAY;UACnD,MAAMI,MAAM,GAAG,MAAMN,OAAO,CAACO,QAAQ,CAACC,oBAAoB,CAAC,YAAY;YACnE,OAAO,CAAC,MAAMR,OAAO,CAACS,GAAG,CAACC,UAAU,CAAC,CAAC,EAAEC,MAAM,CAACC,KAAK,IAAI,CAACA,KAAK,CAACC,SAAS,CAAC;UAC7E,CAAC,CAAC;UAEF,KAAK,MAAMD,KAAK,IAAIN,MAAM,EAAE;YACxB,MAAMN,OAAO,CAACc,KAAK,CAACC,OAAO,CAAmC;cAC1DC,IAAI,EAAG,uCAAsCJ,KAAK,CAACI,IAAK,UAAS;cACjEC,UAAU,EAAE,2BAA2B;cACvCC,MAAM,EAAErB,MAAM,CAACsB,KAAK,CAACC,OAAO,CAAC,CAAC;cAC9BC,KAAK,EAAE;gBACHC,OAAO,EAAEV,KAAK,CAACU,OAAO;gBACtBC,KAAK,EAAE;kBACHC,YAAY,EAAE7C,uBAAuB,CAAC;gBAC1C;cACJ;YACJ,CAAC,CAAC;UACN;UACA;QACJ,CAAC,CAAC;QAEF,OAAOmB,QAAQ,CAAC2B,IAAI,CACf,8DACL,CAAC;MACL,CAAC,CAAC,OAAOC,EAAE,EAAE;QACT,OAAO5B,QAAQ,CAAC6B,KAAK,CAACD,EAAE,CAACE,OAAO,IAAI,2CAA2C,CAAC;MACpF;IACJ,CAAC;IACDC,MAAM,EAAE,MAAAA,CAAO;MAAE7B,OAAO;MAAE8B;IAAK,CAAC,KAAK;MACjC;AACZ;AACA;MACY,MAAMC,iBAAiB,GAAG,IAAIC,4BAAiB,CAAC,CAAC;MACjD,IAAI;QACA,MAAMD,iBAAiB,CAACE,OAAO,CAAC;UAC5BjC,OAAO;UACP8B;QACJ,CAAC,CAAC;MACN,CAAC,CAAC,OAAOJ,EAAE,EAAE;QACTQ,OAAO,CAACP,KAAK,CAAC,oDAAoD,EAAED,EAAE,CAAC;MAC3E;IACJ;EACJ,CAAC,CAAC;AACN,CAAC;AAACS,OAAA,CAAA7C,wBAAA,GAAAA,wBAAA","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export declare const createTasks: () => ((import("@webiny/api").ContextPlugin<import("../types").HcmsBulkActionsContext> | (import("@webiny/tasks").TaskDefinitionPlugin<import("../types").HcmsBulkActionsContext, import("../types").IBulkActionOperationByModelInput, import("../types").IBulkActionOperationByModelOutput> | import("@webiny/tasks").TaskDefinitionPlugin<import("../types").HcmsBulkActionsContext, import("../types").IBulkActionOperationInput, import("../types").IBulkActionOperationOutput>)[])[][] | import("@webiny/tasks").TaskDefinitionPlugin<import("../types").HcmsBulkActionsContext, any, import("@webiny/tasks").ITaskResponseDoneResultOutput>)[];
package/tasks/index.js ADDED
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createTasks = void 0;
7
+ var _createBulkActionEntriesTasks = require("./createBulkActionEntriesTasks");
8
+ var _createEmptyTrashBinsTask = require("./createEmptyTrashBinsTask");
9
+ const createTasks = () => {
10
+ return [(0, _createBulkActionEntriesTasks.createBulkActionEntriesTasks)(), (0, _createEmptyTrashBinsTask.createEmptyTrashBinsTask)()];
11
+ };
12
+ exports.createTasks = createTasks;
13
+
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_createBulkActionEntriesTasks","require","_createEmptyTrashBinsTask","createTasks","createBulkActionEntriesTasks","createEmptyTrashBinsTask","exports"],"sources":["index.ts"],"sourcesContent":["import { createBulkActionEntriesTasks } from \"./createBulkActionEntriesTasks\";\nimport { createEmptyTrashBinsTask } from \"./createEmptyTrashBinsTask\";\n\nexport const createTasks = () => {\n return [createBulkActionEntriesTasks(), createEmptyTrashBinsTask()];\n};\n"],"mappings":";;;;;;AAAA,IAAAA,6BAAA,GAAAC,OAAA;AACA,IAAAC,yBAAA,GAAAD,OAAA;AAEO,MAAME,WAAW,GAAGA,CAAA,KAAM;EAC7B,OAAO,CAAC,IAAAC,0DAA4B,EAAC,CAAC,EAAE,IAAAC,kDAAwB,EAAC,CAAC,CAAC;AACvE,CAAC;AAACC,OAAA,CAAAH,WAAA,GAAAA,WAAA","ignoreList":[]}
package/types.d.ts ADDED
@@ -0,0 +1,41 @@
1
+ import { CmsContext } from "@webiny/api-headless-cms/types";
2
+ import { Context as BaseContext } from "@webiny/handler/types";
3
+ import { Context as TasksContext, ITaskResponseDoneResultOutput, ITaskRunParams } from "@webiny/tasks/types";
4
+ import { SecurityIdentity } from "@webiny/api-security/types";
5
+ export interface HcmsBulkActionsContext extends BaseContext, CmsContext, TasksContext {
6
+ }
7
+ /**
8
+ * Bulk Action Operation
9
+ */
10
+ export interface IBulkActionOperationInput {
11
+ modelId: string;
12
+ ids: string[];
13
+ data?: Record<string, any>;
14
+ identity: SecurityIdentity;
15
+ done?: string[];
16
+ failed?: string[];
17
+ }
18
+ export interface IBulkActionOperationOutput extends ITaskResponseDoneResultOutput {
19
+ done: string[];
20
+ failed: string[];
21
+ }
22
+ export type IBulkActionOperationTaskParams = ITaskRunParams<HcmsBulkActionsContext, IBulkActionOperationInput, IBulkActionOperationOutput>;
23
+ /**
24
+ * Bulk Action Operation By Model
25
+ */
26
+ export interface IBulkActionOperationByModelInput {
27
+ modelId: string;
28
+ identity?: SecurityIdentity;
29
+ where?: Record<string, any>;
30
+ search?: string;
31
+ data?: Record<string, any>;
32
+ after?: string | null;
33
+ currentBatch?: number;
34
+ processing?: boolean;
35
+ totalCount?: number;
36
+ }
37
+ export interface IBulkActionOperationByModelOutput extends ITaskResponseDoneResultOutput {
38
+ done: string[];
39
+ failed: string[];
40
+ }
41
+ export type IBulkActionOperationByModelTaskParams = ITaskRunParams<HcmsBulkActionsContext, IBulkActionOperationByModelInput, IBulkActionOperationByModelOutput>;
package/types.js ADDED
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ //# sourceMappingURL=types.js.map
package/types.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import { CmsContext } from \"@webiny/api-headless-cms/types\";\nimport { Context as BaseContext } from \"@webiny/handler/types\";\nimport {\n Context as TasksContext,\n ITaskResponseDoneResultOutput,\n ITaskRunParams\n} from \"@webiny/tasks/types\";\nimport { SecurityIdentity } from \"@webiny/api-security/types\";\n\nexport interface HcmsBulkActionsContext extends BaseContext, CmsContext, TasksContext {}\n\n/**\n * Bulk Action Operation\n */\n\nexport interface IBulkActionOperationInput {\n modelId: string;\n ids: string[];\n data?: Record<string, any>;\n identity: SecurityIdentity;\n done?: string[];\n failed?: string[];\n}\n\nexport interface IBulkActionOperationOutput extends ITaskResponseDoneResultOutput {\n done: string[];\n failed: string[];\n}\n\nexport type IBulkActionOperationTaskParams = ITaskRunParams<\n HcmsBulkActionsContext,\n IBulkActionOperationInput,\n IBulkActionOperationOutput\n>;\n\n/**\n * Bulk Action Operation By Model\n */\n\nexport interface IBulkActionOperationByModelInput {\n modelId: string;\n identity?: SecurityIdentity;\n where?: Record<string, any>;\n search?: string;\n data?: Record<string, any>;\n after?: string | null;\n currentBatch?: number;\n processing?: boolean;\n totalCount?: number;\n}\n\nexport interface IBulkActionOperationByModelOutput extends ITaskResponseDoneResultOutput {\n done: string[];\n failed: string[];\n}\n\nexport type IBulkActionOperationByModelTaskParams = ITaskRunParams<\n HcmsBulkActionsContext,\n IBulkActionOperationByModelInput,\n IBulkActionOperationByModelOutput\n>;\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ import { CmsModel } from "@webiny/api-headless-cms/types";
2
+ import { IProcessEntry } from "../abstractions";
3
+ import { HcmsBulkActionsContext } from "../types";
4
+ declare class DeleteEntry implements IProcessEntry {
5
+ private readonly context;
6
+ constructor(context: HcmsBulkActionsContext);
7
+ execute(model: CmsModel, id: string): Promise<void>;
8
+ }
9
+ export declare const createDeleteEntry: (context: HcmsBulkActionsContext) => DeleteEntry;
10
+ export {};
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createDeleteEntry = void 0;
7
+ var _utils = require("@webiny/utils");
8
+ class DeleteEntry {
9
+ constructor(context) {
10
+ this.context = context;
11
+ }
12
+ async execute(model, id) {
13
+ const {
14
+ id: entryId
15
+ } = (0, _utils.parseIdentifier)(id);
16
+ await this.context.cms.deleteEntry(model, entryId, {
17
+ permanently: true
18
+ });
19
+ }
20
+ }
21
+ const createDeleteEntry = context => {
22
+ return new DeleteEntry(context);
23
+ };
24
+ exports.createDeleteEntry = createDeleteEntry;
25
+
26
+ //# sourceMappingURL=DeleteEntry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_utils","require","DeleteEntry","constructor","context","execute","model","id","entryId","parseIdentifier","cms","deleteEntry","permanently","createDeleteEntry","exports"],"sources":["DeleteEntry.ts"],"sourcesContent":["import { parseIdentifier } from \"@webiny/utils\";\nimport { CmsModel } from \"@webiny/api-headless-cms/types\";\nimport { IProcessEntry } from \"~/abstractions\";\nimport { HcmsBulkActionsContext } from \"~/types\";\n\nclass DeleteEntry implements IProcessEntry {\n private readonly context: HcmsBulkActionsContext;\n\n constructor(context: HcmsBulkActionsContext) {\n this.context = context;\n }\n\n async execute(model: CmsModel, id: string): Promise<void> {\n const { id: entryId } = parseIdentifier(id);\n await this.context.cms.deleteEntry(model, entryId, {\n permanently: true\n });\n }\n}\n\nexport const createDeleteEntry = (context: HcmsBulkActionsContext) => {\n return new DeleteEntry(context);\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAKA,MAAMC,WAAW,CAA0B;EAGvCC,WAAWA,CAACC,OAA+B,EAAE;IACzC,IAAI,CAACA,OAAO,GAAGA,OAAO;EAC1B;EAEA,MAAMC,OAAOA,CAACC,KAAe,EAAEC,EAAU,EAAiB;IACtD,MAAM;MAAEA,EAAE,EAAEC;IAAQ,CAAC,GAAG,IAAAC,sBAAe,EAACF,EAAE,CAAC;IAC3C,MAAM,IAAI,CAACH,OAAO,CAACM,GAAG,CAACC,WAAW,CAACL,KAAK,EAAEE,OAAO,EAAE;MAC/CI,WAAW,EAAE;IACjB,CAAC,CAAC;EACN;AACJ;AAEO,MAAMC,iBAAiB,GAAIT,OAA+B,IAAK;EAClE,OAAO,IAAIF,WAAW,CAACE,OAAO,CAAC;AACnC,CAAC;AAACU,OAAA,CAAAD,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ import { CmsEntryListParams } from "@webiny/api-headless-cms/types";
2
+ import { IListEntries } from "../abstractions";
3
+ import { HcmsBulkActionsContext } from "../types";
4
+ declare class ListDeletedEntries implements IListEntries {
5
+ private readonly context;
6
+ constructor(context: HcmsBulkActionsContext);
7
+ execute(modelId: string, params: CmsEntryListParams): Promise<{
8
+ entries: import("@webiny/api-headless-cms/types").CmsEntry<import("@webiny/api-headless-cms/types").CmsEntryValues>[];
9
+ meta: import("@webiny/api-headless-cms/types").CmsEntryMeta;
10
+ }>;
11
+ }
12
+ export declare const createListDeletedEntries: (context: HcmsBulkActionsContext) => ListDeletedEntries;
13
+ export {};
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createListDeletedEntries = void 0;
7
+ class ListDeletedEntries {
8
+ constructor(context) {
9
+ this.context = context;
10
+ }
11
+ async execute(modelId, params) {
12
+ const model = await this.context.cms.getModel(modelId);
13
+ if (!model) {
14
+ throw new Error(`Model with ${modelId} not found!`);
15
+ }
16
+ const [entries, meta] = await this.context.cms.listDeletedEntries(model, params);
17
+ return {
18
+ entries,
19
+ meta
20
+ };
21
+ }
22
+ }
23
+ const createListDeletedEntries = context => {
24
+ return new ListDeletedEntries(context);
25
+ };
26
+ exports.createListDeletedEntries = createListDeletedEntries;
27
+
28
+ //# sourceMappingURL=ListDeletedEntries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ListDeletedEntries","constructor","context","execute","modelId","params","model","cms","getModel","Error","entries","meta","listDeletedEntries","createListDeletedEntries","exports"],"sources":["ListDeletedEntries.ts"],"sourcesContent":["import { CmsEntryListParams } from \"@webiny/api-headless-cms/types\";\nimport { IListEntries } from \"~/abstractions\";\nimport { HcmsBulkActionsContext } from \"~/types\";\n\nclass ListDeletedEntries implements IListEntries {\n private readonly context: HcmsBulkActionsContext;\n\n constructor(context: HcmsBulkActionsContext) {\n this.context = context;\n }\n\n async execute(modelId: string, params: CmsEntryListParams) {\n const model = await this.context.cms.getModel(modelId);\n\n if (!model) {\n throw new Error(`Model with ${modelId} not found!`);\n }\n\n const [entries, meta] = await this.context.cms.listDeletedEntries(model, params);\n\n return {\n entries,\n meta\n };\n }\n}\n\nexport const createListDeletedEntries = (context: HcmsBulkActionsContext) => {\n return new ListDeletedEntries(context);\n};\n"],"mappings":";;;;;;AAIA,MAAMA,kBAAkB,CAAyB;EAG7CC,WAAWA,CAACC,OAA+B,EAAE;IACzC,IAAI,CAACA,OAAO,GAAGA,OAAO;EAC1B;EAEA,MAAMC,OAAOA,CAACC,OAAe,EAAEC,MAA0B,EAAE;IACvD,MAAMC,KAAK,GAAG,MAAM,IAAI,CAACJ,OAAO,CAACK,GAAG,CAACC,QAAQ,CAACJ,OAAO,CAAC;IAEtD,IAAI,CAACE,KAAK,EAAE;MACR,MAAM,IAAIG,KAAK,CAAE,cAAaL,OAAQ,aAAY,CAAC;IACvD;IAEA,MAAM,CAACM,OAAO,EAAEC,IAAI,CAAC,GAAG,MAAM,IAAI,CAACT,OAAO,CAACK,GAAG,CAACK,kBAAkB,CAACN,KAAK,EAAED,MAAM,CAAC;IAEhF,OAAO;MACHK,OAAO;MACPC;IACJ,CAAC;EACL;AACJ;AAEO,MAAME,wBAAwB,GAAIX,OAA+B,IAAK;EACzE,OAAO,IAAIF,kBAAkB,CAACE,OAAO,CAAC;AAC1C,CAAC;AAACY,OAAA,CAAAD,wBAAA,GAAAA,wBAAA","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ import { CmsEntryListParams } from "@webiny/api-headless-cms/types";
2
+ import { IListEntries } from "../abstractions";
3
+ import { HcmsBulkActionsContext } from "../types";
4
+ declare class ListLatestEntries implements IListEntries {
5
+ private readonly context;
6
+ constructor(context: HcmsBulkActionsContext);
7
+ execute(modelId: string, params: CmsEntryListParams): Promise<{
8
+ entries: import("@webiny/api-headless-cms/types").CmsEntry<import("@webiny/api-headless-cms/types").CmsEntryValues>[];
9
+ meta: import("@webiny/api-headless-cms/types").CmsEntryMeta;
10
+ }>;
11
+ }
12
+ export declare const createListLatestEntries: (context: HcmsBulkActionsContext) => ListLatestEntries;
13
+ export {};
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createListLatestEntries = void 0;
7
+ class ListLatestEntries {
8
+ constructor(context) {
9
+ this.context = context;
10
+ }
11
+ async execute(modelId, params) {
12
+ const model = await this.context.cms.getModel(modelId);
13
+ if (!model) {
14
+ throw new Error(`Model with ${modelId} not found!`);
15
+ }
16
+ const [entries, meta] = await this.context.cms.listLatestEntries(model, params);
17
+ return {
18
+ entries,
19
+ meta
20
+ };
21
+ }
22
+ }
23
+ const createListLatestEntries = context => {
24
+ return new ListLatestEntries(context);
25
+ };
26
+ exports.createListLatestEntries = createListLatestEntries;
27
+
28
+ //# sourceMappingURL=ListLatestEntries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ListLatestEntries","constructor","context","execute","modelId","params","model","cms","getModel","Error","entries","meta","listLatestEntries","createListLatestEntries","exports"],"sources":["ListLatestEntries.ts"],"sourcesContent":["import { CmsEntryListParams } from \"@webiny/api-headless-cms/types\";\nimport { IListEntries } from \"~/abstractions\";\nimport { HcmsBulkActionsContext } from \"~/types\";\n\nclass ListLatestEntries implements IListEntries {\n private readonly context: HcmsBulkActionsContext;\n\n constructor(context: HcmsBulkActionsContext) {\n this.context = context;\n }\n\n async execute(modelId: string, params: CmsEntryListParams) {\n const model = await this.context.cms.getModel(modelId);\n\n if (!model) {\n throw new Error(`Model with ${modelId} not found!`);\n }\n\n const [entries, meta] = await this.context.cms.listLatestEntries(model, params);\n\n return {\n entries,\n meta\n };\n }\n}\n\nexport const createListLatestEntries = (context: HcmsBulkActionsContext) => {\n return new ListLatestEntries(context);\n};\n"],"mappings":";;;;;;AAIA,MAAMA,iBAAiB,CAAyB;EAG5CC,WAAWA,CAACC,OAA+B,EAAE;IACzC,IAAI,CAACA,OAAO,GAAGA,OAAO;EAC1B;EAEA,MAAMC,OAAOA,CAACC,OAAe,EAAEC,MAA0B,EAAE;IACvD,MAAMC,KAAK,GAAG,MAAM,IAAI,CAACJ,OAAO,CAACK,GAAG,CAACC,QAAQ,CAACJ,OAAO,CAAC;IAEtD,IAAI,CAACE,KAAK,EAAE;MACR,MAAM,IAAIG,KAAK,CAAE,cAAaL,OAAQ,aAAY,CAAC;IACvD;IAEA,MAAM,CAACM,OAAO,EAAEC,IAAI,CAAC,GAAG,MAAM,IAAI,CAACT,OAAO,CAACK,GAAG,CAACK,iBAAiB,CAACN,KAAK,EAAED,MAAM,CAAC;IAE/E,OAAO;MACHK,OAAO;MACPC;IACJ,CAAC;EACL;AACJ;AAEO,MAAME,uBAAuB,GAAIX,OAA+B,IAAK;EACxE,OAAO,IAAIF,iBAAiB,CAACE,OAAO,CAAC;AACzC,CAAC;AAACY,OAAA,CAAAD,uBAAA,GAAAA,uBAAA","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ import { CmsEntryListParams } from "@webiny/api-headless-cms/types";
2
+ import { IListEntries } from "../abstractions";
3
+ import { HcmsBulkActionsContext } from "../types";
4
+ declare class ListPublishedEntries implements IListEntries {
5
+ private readonly context;
6
+ constructor(context: HcmsBulkActionsContext);
7
+ execute(modelId: string, params: CmsEntryListParams): Promise<{
8
+ entries: import("@webiny/api-headless-cms/types").CmsEntry<import("@webiny/api-headless-cms/types").CmsEntryValues>[];
9
+ meta: import("@webiny/api-headless-cms/types").CmsEntryMeta;
10
+ }>;
11
+ }
12
+ export declare const createListPublishedEntries: (context: HcmsBulkActionsContext) => ListPublishedEntries;
13
+ export {};
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createListPublishedEntries = void 0;
7
+ class ListPublishedEntries {
8
+ constructor(context) {
9
+ this.context = context;
10
+ }
11
+ async execute(modelId, params) {
12
+ const model = await this.context.cms.getModel(modelId);
13
+ if (!model) {
14
+ throw new Error(`Model with ${modelId} not found!`);
15
+ }
16
+ const [entries, meta] = await this.context.cms.listPublishedEntries(model, params);
17
+ return {
18
+ entries,
19
+ meta
20
+ };
21
+ }
22
+ }
23
+ const createListPublishedEntries = context => {
24
+ return new ListPublishedEntries(context);
25
+ };
26
+ exports.createListPublishedEntries = createListPublishedEntries;
27
+
28
+ //# sourceMappingURL=ListPublishedEntries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ListPublishedEntries","constructor","context","execute","modelId","params","model","cms","getModel","Error","entries","meta","listPublishedEntries","createListPublishedEntries","exports"],"sources":["ListPublishedEntries.ts"],"sourcesContent":["import { CmsEntryListParams } from \"@webiny/api-headless-cms/types\";\nimport { IListEntries } from \"~/abstractions\";\nimport { HcmsBulkActionsContext } from \"~/types\";\n\nclass ListPublishedEntries implements IListEntries {\n private readonly context: HcmsBulkActionsContext;\n\n constructor(context: HcmsBulkActionsContext) {\n this.context = context;\n }\n\n async execute(modelId: string, params: CmsEntryListParams) {\n const model = await this.context.cms.getModel(modelId);\n\n if (!model) {\n throw new Error(`Model with ${modelId} not found!`);\n }\n\n const [entries, meta] = await this.context.cms.listPublishedEntries(model, params);\n\n return {\n entries,\n meta\n };\n }\n}\n\nexport const createListPublishedEntries = (context: HcmsBulkActionsContext) => {\n return new ListPublishedEntries(context);\n};\n"],"mappings":";;;;;;AAIA,MAAMA,oBAAoB,CAAyB;EAG/CC,WAAWA,CAACC,OAA+B,EAAE;IACzC,IAAI,CAACA,OAAO,GAAGA,OAAO;EAC1B;EAEA,MAAMC,OAAOA,CAACC,OAAe,EAAEC,MAA0B,EAAE;IACvD,MAAMC,KAAK,GAAG,MAAM,IAAI,CAACJ,OAAO,CAACK,GAAG,CAACC,QAAQ,CAACJ,OAAO,CAAC;IAEtD,IAAI,CAACE,KAAK,EAAE;MACR,MAAM,IAAIG,KAAK,CAAE,cAAaL,OAAQ,aAAY,CAAC;IACvD;IAEA,MAAM,CAACM,OAAO,EAAEC,IAAI,CAAC,GAAG,MAAM,IAAI,CAACT,OAAO,CAACK,GAAG,CAACK,oBAAoB,CAACN,KAAK,EAAED,MAAM,CAAC;IAElF,OAAO;MACHK,OAAO;MACPC;IACJ,CAAC;EACL;AACJ;AAEO,MAAME,0BAA0B,GAAIX,OAA+B,IAAK;EAC3E,OAAO,IAAIF,oBAAoB,CAACE,OAAO,CAAC;AAC5C,CAAC;AAACY,OAAA,CAAAD,0BAAA,GAAAA,0BAAA","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ import { CmsModel } from "@webiny/api-headless-cms/types";
2
+ import { IProcessEntry } from "../abstractions";
3
+ import { HcmsBulkActionsContext } from "../types";
4
+ interface MoveEntryToFolderData {
5
+ folderId?: string;
6
+ }
7
+ declare class MoveEntryToFolder implements IProcessEntry {
8
+ private readonly context;
9
+ constructor(context: HcmsBulkActionsContext);
10
+ execute(model: CmsModel, id: string, data?: MoveEntryToFolderData): Promise<void>;
11
+ }
12
+ export declare const createMoveEntryToFolder: (context: HcmsBulkActionsContext) => MoveEntryToFolder;
13
+ export {};
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createMoveEntryToFolder = void 0;
7
+ class MoveEntryToFolder {
8
+ constructor(context) {
9
+ this.context = context;
10
+ }
11
+ async execute(model, id, data) {
12
+ if (!data?.folderId) {
13
+ throw new Error(`Missing "data.folderId" in the input.`);
14
+ }
15
+ await this.context.cms.moveEntry(model, id, data.folderId);
16
+ }
17
+ }
18
+ const createMoveEntryToFolder = context => {
19
+ return new MoveEntryToFolder(context);
20
+ };
21
+ exports.createMoveEntryToFolder = createMoveEntryToFolder;
22
+
23
+ //# sourceMappingURL=MoveEntryToFolder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["MoveEntryToFolder","constructor","context","execute","model","id","data","folderId","Error","cms","moveEntry","createMoveEntryToFolder","exports"],"sources":["MoveEntryToFolder.ts"],"sourcesContent":["import { CmsModel } from \"@webiny/api-headless-cms/types\";\nimport { IProcessEntry } from \"~/abstractions\";\nimport { HcmsBulkActionsContext } from \"~/types\";\n\ninterface MoveEntryToFolderData {\n folderId?: string;\n}\n\nclass MoveEntryToFolder implements IProcessEntry {\n private readonly context: HcmsBulkActionsContext;\n\n constructor(context: HcmsBulkActionsContext) {\n this.context = context;\n }\n\n async execute(model: CmsModel, id: string, data?: MoveEntryToFolderData): Promise<void> {\n if (!data?.folderId) {\n throw new Error(`Missing \"data.folderId\" in the input.`);\n }\n await this.context.cms.moveEntry(model, id, data.folderId);\n }\n}\n\nexport const createMoveEntryToFolder = (context: HcmsBulkActionsContext) => {\n return new MoveEntryToFolder(context);\n};\n"],"mappings":";;;;;;AAQA,MAAMA,iBAAiB,CAA0B;EAG7CC,WAAWA,CAACC,OAA+B,EAAE;IACzC,IAAI,CAACA,OAAO,GAAGA,OAAO;EAC1B;EAEA,MAAMC,OAAOA,CAACC,KAAe,EAAEC,EAAU,EAAEC,IAA4B,EAAiB;IACpF,IAAI,CAACA,IAAI,EAAEC,QAAQ,EAAE;MACjB,MAAM,IAAIC,KAAK,CAAE,uCAAsC,CAAC;IAC5D;IACA,MAAM,IAAI,CAACN,OAAO,CAACO,GAAG,CAACC,SAAS,CAACN,KAAK,EAAEC,EAAE,EAAEC,IAAI,CAACC,QAAQ,CAAC;EAC9D;AACJ;AAEO,MAAMI,uBAAuB,GAAIT,OAA+B,IAAK;EACxE,OAAO,IAAIF,iBAAiB,CAACE,OAAO,CAAC;AACzC,CAAC;AAACU,OAAA,CAAAD,uBAAA,GAAAA,uBAAA","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ import { CmsModel } from "@webiny/api-headless-cms/types";
2
+ import { IProcessEntry } from "../abstractions";
3
+ import { HcmsBulkActionsContext } from "../types";
4
+ declare class MoveEntryToTrash implements IProcessEntry {
5
+ private readonly context;
6
+ constructor(context: HcmsBulkActionsContext);
7
+ execute(model: CmsModel, id: string): Promise<void>;
8
+ }
9
+ export declare const createMoveEntryToTrash: (context: HcmsBulkActionsContext) => MoveEntryToTrash;
10
+ export {};