@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
@@ -1,43 +1,40 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.createDeleteModelGraphQl = void 0;
8
- var _zod = _interopRequireDefault(require("zod"));
9
- var _api = require("@webiny/api");
10
- var _apiHeadlessCms = require("@webiny/api-headless-cms");
11
- var _confirmation = require("../helpers/confirmation");
12
- var _handlerGraphql = require("@webiny/handler-graphql");
13
- var _utils = require("@webiny/utils");
14
- const deleteValidation = _zod.default.object({
15
- modelId: _zod.default.string(),
16
- confirmation: _zod.default.string()
1
+ import zod from "zod";
2
+ import { ContextPlugin } from "@webiny/api";
3
+ import { CmsGraphQLSchemaPlugin } from "@webiny/api-headless-cms";
4
+ import { isHeadlessCmsReady } from "@webiny/api-headless-cms";
5
+ import { createResolverDecorator } from "@webiny/handler-graphql";
6
+ import { ErrorResponse } from "@webiny/handler-graphql";
7
+ import { resolve } from "@webiny/handler-graphql";
8
+ import { Response } from "@webiny/handler-graphql";
9
+ import { createZodError } from "@webiny/utils";
10
+ import { validateConfirmation } from "../../helpers/confirmation.js";
11
+ const deleteValidation = zod.object({
12
+ modelId: zod.string(),
13
+ confirmation: zod.string()
17
14
  }).superRefine((value, context) => {
18
- if ((0, _confirmation.validateConfirmation)(value)) {
15
+ if (validateConfirmation(value)) {
19
16
  return;
20
17
  }
21
18
  context.addIssue({
22
- code: _zod.default.ZodIssueCode.custom,
19
+ code: zod.ZodIssueCode.custom,
23
20
  message: `Confirmation input does not match.`,
24
21
  fatal: true,
25
22
  path: ["confirmation"]
26
23
  });
27
24
  }).readonly();
28
- const cancelValidation = _zod.default.object({
29
- modelId: _zod.default.string()
25
+ const cancelValidation = zod.object({
26
+ modelId: zod.string()
30
27
  }).readonly();
31
- const getValidation = _zod.default.object({
32
- modelId: _zod.default.string()
28
+ const getValidation = zod.object({
29
+ modelId: zod.string()
33
30
  }).readonly();
34
- const createDeleteModelGraphQl = () => {
35
- const contextPlugin = new _api.ContextPlugin(async inputContext => {
36
- const ready = await (0, _apiHeadlessCms.isHeadlessCmsReady)(inputContext);
31
+ export const createDeleteModelGraphQl = () => {
32
+ const contextPlugin = new ContextPlugin(async inputContext => {
33
+ const ready = await isHeadlessCmsReady(inputContext);
37
34
  if (!ready || !inputContext.cms.MANAGE) {
38
35
  return;
39
36
  }
40
- const plugin = new _apiHeadlessCms.CmsGraphQLSchemaPlugin({
37
+ const plugin = new CmsGraphQLSchemaPlugin({
41
38
  typeDefs: /* GraphQL */`
42
39
  enum DeleteCmsModelTaskStatus {
43
40
  running
@@ -99,10 +96,10 @@ const createDeleteModelGraphQl = () => {
99
96
  },
100
97
  Query: {
101
98
  getDeleteModelProgress: async (_, args, context) => {
102
- return (0, _handlerGraphql.resolve)(async () => {
99
+ return resolve(async () => {
103
100
  const input = getValidation.safeParse(args);
104
101
  if (input.error) {
105
- throw (0, _utils.createZodError)(input.error);
102
+ throw createZodError(input.error);
106
103
  }
107
104
  return await context.cms.getDeleteModelProgress(input.data.modelId);
108
105
  });
@@ -110,19 +107,19 @@ const createDeleteModelGraphQl = () => {
110
107
  },
111
108
  Mutation: {
112
109
  fullyDeleteModel: async (_, args, context) => {
113
- return (0, _handlerGraphql.resolve)(async () => {
110
+ return resolve(async () => {
114
111
  const input = deleteValidation.safeParse(args);
115
112
  if (input.error) {
116
- throw (0, _utils.createZodError)(input.error);
113
+ throw createZodError(input.error);
117
114
  }
118
115
  return await context.cms.fullyDeleteModel(input.data.modelId);
119
116
  });
120
117
  },
121
118
  cancelFullyDeleteModel: async (_, args, context) => {
122
- return (0, _handlerGraphql.resolve)(async () => {
119
+ return resolve(async () => {
123
120
  const input = cancelValidation.safeParse(args);
124
121
  if (input.error) {
125
- throw (0, _utils.createZodError)(input.error);
122
+ throw createZodError(input.error);
126
123
  }
127
124
  return await context.cms.cancelFullyDeleteModel(input.data.modelId);
128
125
  });
@@ -130,7 +127,8 @@ const createDeleteModelGraphQl = () => {
130
127
  }
131
128
  },
132
129
  resolverDecorators: {
133
- ["Query.listContentModels"]: [(0, _handlerGraphql.createResolverDecorator)(resolver => async (parent, args, context, info) => {
130
+ ["Query.listContentModels"]: [createResolverDecorator(resolver => async (parent, args, context, info) => {
131
+ // TODO @bruno figure out how to fix these types
134
132
  const result = await resolver(parent, args, context, info);
135
133
  if (result.error || !Array.isArray(result.data)) {
136
134
  return result;
@@ -141,7 +139,7 @@ const createDeleteModelGraphQl = () => {
141
139
  const listed = result.data;
142
140
  try {
143
141
  const beingDeletedList = await context.cms.listModelsBeingDeleted();
144
- return new _handlerGraphql.Response(listed.filter(model => {
142
+ return new Response(listed.filter(model => {
145
143
  if (!model?.modelId) {
146
144
  return false;
147
145
  } else if (beingDeletedList.some(item => item.modelId === model.modelId)) {
@@ -150,7 +148,7 @@ const createDeleteModelGraphQl = () => {
150
148
  return true;
151
149
  }));
152
150
  } catch (ex) {
153
- return new _handlerGraphql.ErrorResponse(ex);
151
+ return new ErrorResponse(ex);
154
152
  }
155
153
  })]
156
154
  }
@@ -161,6 +159,5 @@ const createDeleteModelGraphQl = () => {
161
159
  contextPlugin.name = "headless-cms.context.createDeleteModelGraphQl";
162
160
  return contextPlugin;
163
161
  };
164
- exports.createDeleteModelGraphQl = createDeleteModelGraphQl;
165
162
 
166
163
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["zod","ContextPlugin","CmsGraphQLSchemaPlugin","isHeadlessCmsReady","createResolverDecorator","ErrorResponse","resolve","Response","createZodError","validateConfirmation","deleteValidation","object","modelId","string","confirmation","superRefine","value","context","addIssue","code","ZodIssueCode","custom","message","fatal","path","readonly","cancelValidation","getValidation","createDeleteModelGraphQl","contextPlugin","inputContext","ready","cms","MANAGE","plugin","typeDefs","resolvers","CmsContentModel","isBeingDeleted","model","_","isModelBeingDeleted","ex","console","error","Query","getDeleteModelProgress","args","input","safeParse","data","Mutation","fullyDeleteModel","cancelFullyDeleteModel","resolverDecorators","resolver","parent","info","result","Array","isArray","includeBeingDeleted","listed","beingDeletedList","listModelsBeingDeleted","filter","some","item","name","plugins","register"],"sources":["index.ts"],"sourcesContent":["import zod from \"zod\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { CmsGraphQLSchemaPlugin } from \"@webiny/api-headless-cms\";\nimport { isHeadlessCmsReady } from \"@webiny/api-headless-cms\";\nimport type { HcmsTasksContext } from \"~/types.js\";\nimport { createResolverDecorator } from \"@webiny/handler-graphql\";\nimport { ErrorResponse } from \"@webiny/handler-graphql\";\nimport { resolve } from \"@webiny/handler-graphql\";\nimport { Response } from \"@webiny/handler-graphql\";\nimport { createZodError } from \"@webiny/utils\";\nimport type { IDeleteCmsModelTask } from \"~/features/DeleteModelTask/types.js\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport { validateConfirmation } from \"~/helpers/confirmation.js\";\n\nconst deleteValidation = zod\n .object({\n modelId: zod.string(),\n confirmation: zod.string()\n })\n .superRefine((value, context) => {\n if (validateConfirmation(value)) {\n return;\n }\n context.addIssue({\n code: zod.ZodIssueCode.custom,\n message: `Confirmation input does not match.`,\n fatal: true,\n path: [\"confirmation\"]\n });\n })\n .readonly();\n\nconst cancelValidation = zod\n .object({\n modelId: zod.string()\n })\n .readonly();\n\nconst getValidation = zod\n .object({\n modelId: zod.string()\n })\n .readonly();\n\nexport const createDeleteModelGraphQl = <T extends HcmsTasksContext = HcmsTasksContext>() => {\n const contextPlugin = new ContextPlugin<T>(async inputContext => {\n const ready = await isHeadlessCmsReady(inputContext);\n\n if (!ready || !inputContext.cms.MANAGE) {\n return;\n }\n\n const plugin = new CmsGraphQLSchemaPlugin<T>({\n typeDefs: /* GraphQL */ `\n enum DeleteCmsModelTaskStatus {\n running\n done\n error\n canceled\n }\n type DeleteCmsModelTask {\n id: ID!\n status: DeleteCmsModelTaskStatus!\n deleted: Int!\n total: Int!\n }\n\n type GetDeleteCmsModelProgressResponse {\n data: DeleteCmsModelTask\n error: CmsError\n }\n\n type FullyDeleteCmsModelResponse {\n data: DeleteCmsModelTask\n error: CmsError\n }\n\n type CancelDeleteCmsModelResponse {\n data: DeleteCmsModelTask\n error: CmsError\n }\n\n extend type CmsContentModel {\n isBeingDeleted: Boolean!\n }\n\n extend type Query {\n getDeleteModelProgress(modelId: ID!): GetDeleteCmsModelProgressResponse!\n listContentModels(\n includeBeingDeleted: Boolean = false\n ): CmsContentModelListResponse\n }\n\n extend type Mutation {\n fullyDeleteModel(\n modelId: ID!\n confirmation: String!\n ): FullyDeleteCmsModelResponse!\n cancelFullyDeleteModel(modelId: ID!): CancelDeleteCmsModelResponse!\n }\n `,\n resolvers: {\n CmsContentModel: {\n isBeingDeleted: async (model: CmsModel, _: unknown, context) => {\n try {\n return await context.cms.isModelBeingDeleted(model.modelId);\n } catch (ex) {\n console.error(ex);\n }\n return true;\n }\n },\n Query: {\n getDeleteModelProgress: async (_: unknown, args: unknown, context) => {\n return resolve<IDeleteCmsModelTask>(async () => {\n const input = getValidation.safeParse(args);\n if (input.error) {\n throw createZodError(input.error);\n }\n return await context.cms.getDeleteModelProgress(input.data.modelId);\n });\n }\n },\n Mutation: {\n fullyDeleteModel: async (_: unknown, args: unknown, context) => {\n return resolve<IDeleteCmsModelTask>(async () => {\n const input = deleteValidation.safeParse(args);\n if (input.error) {\n throw createZodError(input.error);\n }\n return await context.cms.fullyDeleteModel(input.data.modelId);\n });\n },\n cancelFullyDeleteModel: async (_: unknown, args: unknown, context) => {\n return resolve<IDeleteCmsModelTask>(async () => {\n const input = cancelValidation.safeParse(args);\n if (input.error) {\n throw createZodError(input.error);\n }\n return await context.cms.cancelFullyDeleteModel(input.data.modelId);\n });\n }\n }\n },\n resolverDecorators: {\n [\"Query.listContentModels\"]: [\n createResolverDecorator<any, any, HcmsTasksContext>(\n resolver => async (parent, args, context, info) => {\n // TODO @bruno figure out how to fix these types\n const result = (await resolver(parent, args, context, info)) as any;\n if (result.error || !Array.isArray(result.data)) {\n return result;\n }\n\n if (args?.includeBeingDeleted !== false) {\n return result;\n }\n\n const listed = result.data as CmsModel[];\n\n try {\n const beingDeletedList = await context.cms.listModelsBeingDeleted();\n\n return new Response(\n listed.filter(model => {\n if (!model?.modelId) {\n return false;\n } else if (\n beingDeletedList.some(\n item => item.modelId === model.modelId\n )\n ) {\n return false;\n }\n return true;\n })\n );\n } catch (ex) {\n return new ErrorResponse(ex);\n }\n }\n )\n ]\n }\n });\n plugin.name = \"headless-cms.graphql.fullyDeleteModel\";\n inputContext.plugins.register(plugin);\n });\n contextPlugin.name = \"headless-cms.context.createDeleteModelGraphQl\";\n return contextPlugin;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import { DeleteCmsModelTaskStatus } from "../../features/DeleteModelTask/types.js";
2
+ import { TaskDataStatus } from "@webiny/api-core/features/task/TaskService/index.js";
3
+ export declare const getStatus: (status: TaskDataStatus) => DeleteCmsModelTaskStatus;
@@ -0,0 +1,17 @@
1
+ import { DeleteCmsModelTaskStatus } from "../../features/DeleteModelTask/types.js";
2
+ import { TaskDataStatus } from "@webiny/api-core/features/task/TaskService/index.js";
3
+ export const getStatus = status => {
4
+ switch (status) {
5
+ case TaskDataStatus.PENDING:
6
+ case TaskDataStatus.RUNNING:
7
+ return DeleteCmsModelTaskStatus.RUNNING;
8
+ case TaskDataStatus.FAILED:
9
+ return DeleteCmsModelTaskStatus.ERROR;
10
+ case TaskDataStatus.ABORTED:
11
+ return DeleteCmsModelTaskStatus.CANCELED;
12
+ case TaskDataStatus.SUCCESS:
13
+ return DeleteCmsModelTaskStatus.DONE;
14
+ }
15
+ };
16
+
17
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DeleteCmsModelTaskStatus","TaskDataStatus","getStatus","status","PENDING","RUNNING","FAILED","ERROR","ABORTED","CANCELED","SUCCESS","DONE"],"sources":["status.ts"],"sourcesContent":["import { DeleteCmsModelTaskStatus } from \"~/features/DeleteModelTask/types.js\";\nimport { TaskDataStatus } from \"@webiny/api-core/features/task/TaskService/index.js\";\n\nexport const getStatus = (status: TaskDataStatus): DeleteCmsModelTaskStatus => {\n switch (status) {\n case TaskDataStatus.PENDING:\n case TaskDataStatus.RUNNING:\n return DeleteCmsModelTaskStatus.RUNNING;\n case TaskDataStatus.FAILED:\n return DeleteCmsModelTaskStatus.ERROR;\n case TaskDataStatus.ABORTED:\n return DeleteCmsModelTaskStatus.CANCELED;\n case TaskDataStatus.SUCCESS:\n return DeleteCmsModelTaskStatus.DONE;\n }\n};\n"],"mappings":"AAAA,SAASA,wBAAwB;AACjC,SAASC,cAAc,QAAQ,qDAAqD;AAEpF,OAAO,MAAMC,SAAS,GAAIC,MAAsB,IAA+B;EAC3E,QAAQA,MAAM;IACV,KAAKF,cAAc,CAACG,OAAO;IAC3B,KAAKH,cAAc,CAACI,OAAO;MACvB,OAAOL,wBAAwB,CAACK,OAAO;IAC3C,KAAKJ,cAAc,CAACK,MAAM;MACtB,OAAON,wBAAwB,CAACO,KAAK;IACzC,KAAKN,cAAc,CAACO,OAAO;MACvB,OAAOR,wBAAwB,CAACS,QAAQ;IAC5C,KAAKR,cAAc,CAACS,OAAO;MACvB,OAAOV,wBAAwB,CAACW,IAAI;EAC5C;AACJ,CAAC","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ export const generateConfirmation = modelId => {
2
+ return `delete ${modelId}`;
3
+ };
4
+ export const validateConfirmation = params => {
5
+ const {
6
+ modelId,
7
+ confirmation
8
+ } = params;
9
+ if (!modelId || !confirmation) {
10
+ return false;
11
+ }
12
+ return confirmation === generateConfirmation(modelId);
13
+ };
14
+
15
+ //# sourceMappingURL=confirmation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["generateConfirmation","modelId","validateConfirmation","params","confirmation"],"sources":["confirmation.ts"],"sourcesContent":["export const generateConfirmation = (modelId: string): string => {\n return `delete ${modelId}`;\n};\n\nexport interface IValidateConfirmationParams {\n modelId?: string;\n confirmation?: string;\n}\nexport const validateConfirmation = (params: IValidateConfirmationParams): boolean => {\n const { modelId, confirmation } = params;\n if (!modelId || !confirmation) {\n return false;\n }\n return confirmation === generateConfirmation(modelId);\n};\n"],"mappings":"AAAA,OAAO,MAAMA,oBAAoB,GAAIC,OAAe,IAAa;EAC7D,OAAO,UAAUA,OAAO,EAAE;AAC9B,CAAC;AAMD,OAAO,MAAMC,oBAAoB,GAAIC,MAAmC,IAAc;EAClF,MAAM;IAAEF,OAAO;IAAEG;EAAa,CAAC,GAAGD,MAAM;EACxC,IAAI,CAACF,OAAO,IAAI,CAACG,YAAY,EAAE;IAC3B,OAAO,KAAK;EAChB;EACA,OAAOA,YAAY,KAAKJ,oBAAoB,CAACC,OAAO,CAAC;AACzD,CAAC","ignoreList":[]}
@@ -1,10 +1,9 @@
1
- import type { IStoreValue } from "../types";
2
- import type { StorageKey } from "@webiny/db/types";
1
+ import type { StorageKey } from "@webiny/db/types.js";
2
+ import type { IStoreValue } from "../features/DeleteModelTask/types.js";
3
3
  export interface ICreateStoreKeyParams {
4
4
  modelId: string;
5
5
  tenant: string;
6
- locale: string;
7
6
  }
8
- export declare const createStoreNamespace: (params: Pick<ICreateStoreKeyParams, "tenant" | "locale">) => string;
7
+ export declare const createStoreNamespace: (params: Pick<ICreateStoreKeyParams, "tenant">) => string;
9
8
  export declare const createStoreKey: (params: ICreateStoreKeyParams) => StorageKey;
10
9
  export declare const createStoreValue: (params: IStoreValue) => IStoreValue;
@@ -0,0 +1,16 @@
1
+ export const createStoreNamespace = params => {
2
+ return `deletingCmsModel#T#${params.tenant}#`;
3
+ };
4
+ export const createStoreKey = params => {
5
+ return `${createStoreNamespace(params)}${params.modelId}`;
6
+ };
7
+ export const createStoreValue = params => {
8
+ return {
9
+ modelId: params.modelId,
10
+ task: params.task,
11
+ identity: params.identity,
12
+ tenant: params.tenant
13
+ };
14
+ };
15
+
16
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createStoreNamespace","params","tenant","createStoreKey","modelId","createStoreValue","task","identity"],"sources":["store.ts"],"sourcesContent":["import type { StorageKey } from \"@webiny/db/types.js\";\nimport type { IStoreValue } from \"~/features/DeleteModelTask/types.js\";\n\nexport interface ICreateStoreKeyParams {\n modelId: string;\n tenant: string;\n}\n\nexport const createStoreNamespace = (params: Pick<ICreateStoreKeyParams, \"tenant\">) => {\n return `deletingCmsModel#T#${params.tenant}#`;\n};\n\nexport const createStoreKey = (params: ICreateStoreKeyParams): StorageKey => {\n return `${createStoreNamespace(params)}${params.modelId}`;\n};\n\nexport const createStoreValue = (params: IStoreValue): IStoreValue => {\n return {\n modelId: params.modelId,\n task: params.task,\n identity: params.identity,\n tenant: params.tenant\n };\n};\n"],"mappings":"AAQA,OAAO,MAAMA,oBAAoB,GAAIC,MAA6C,IAAK;EACnF,OAAO,sBAAsBA,MAAM,CAACC,MAAM,GAAG;AACjD,CAAC;AAED,OAAO,MAAMC,cAAc,GAAIF,MAA6B,IAAiB;EACzE,OAAO,GAAGD,oBAAoB,CAACC,MAAM,CAAC,GAAGA,MAAM,CAACG,OAAO,EAAE;AAC7D,CAAC;AAED,OAAO,MAAMC,gBAAgB,GAAIJ,MAAmB,IAAkB;EAClE,OAAO;IACHG,OAAO,EAAEH,MAAM,CAACG,OAAO;IACvBE,IAAI,EAAEL,MAAM,CAACK,IAAI;IACjBC,QAAQ,EAAEN,MAAM,CAACM,QAAQ;IACzBL,MAAM,EAAED,MAAM,CAACC;EACnB,CAAC;AACL,CAAC","ignoreList":[]}
package/index.d.ts CHANGED
@@ -1,3 +1,2 @@
1
- import { createDeleteModelTask } from "./tasks/deleteModel";
2
- export { createDeleteModelTask };
3
- export declare const createHcmsTasks: () => ((import("@webiny/api").ContextPlugin<import("./types").HcmsTasksContext> | import("@webiny/tasks").TaskDefinitionPlugin<import("./types").HcmsTasksContext, import("./tasks/deleteModel/types").IDeleteModelTaskInput, import("./tasks/deleteModel/types").IDeleteModelTaskOutput>)[] | ((import("@webiny/handler-aws").EventBridgeEventHandler<"WebinyEmptyTrashBin", Record<string, any>, any> | import("@webiny/handler").HandlerOnRequestPlugin<import("@webiny/handler/types").Context>)[] | import("@webiny/api").ContextPlugin<import("@webiny/api-headless-cms-bulk-actions/types").HcmsBulkActionsContext>)[] | (import("@webiny/api").ContextPlugin<import("@webiny/api-headless-cms-bulk-actions/types").HcmsBulkActionsContext> | (import("@webiny/tasks").TaskDefinitionPlugin<import("@webiny/api-headless-cms-bulk-actions/types").HcmsBulkActionsContext, import("@webiny/api-headless-cms-bulk-actions/types").IBulkActionOperationByModelInput, import("@webiny/api-headless-cms-bulk-actions/types").IBulkActionOperationByModelOutput> | import("@webiny/tasks").TaskDefinitionPlugin<import("@webiny/api-headless-cms-bulk-actions/types").HcmsBulkActionsContext, import("@webiny/api-headless-cms-bulk-actions/types").IBulkActionOperationInput, import("@webiny/api-headless-cms-bulk-actions/types").IBulkActionOperationOutput>)[])[][] | import("@webiny/tasks").TaskDefinitionPlugin<import("@webiny/api-headless-cms-bulk-actions/types").HcmsBulkActionsContext, import("@webiny/api-headless-cms-bulk-actions/types").IEmptyTrashBinsInput, import("@webiny/tasks").ITaskResponseDoneResultOutput> | import("@webiny/plugins/types").Plugin[])[];
1
+ export declare const createDeleteModelTask: () => import("@webiny/api").ContextPlugin<import("./types").HcmsTasksContext>[];
2
+ export declare const createHcmsTasks: () => (import("@webiny/api").ContextPlugin<import("@webiny/api/types").Context> | (import("@webiny/api").ContextPlugin<import("@webiny/api/types").Context> | (import("@webiny/handler-aws/eventBridge").EventBridgeEventHandler<"WebinyEmptyTrashBin", Record<string, any>, any> | import("@webiny/handler/index").HandlerOnRequestPlugin<import("@webiny/handler/types").Context>)[] | import("@webiny/handler/index").BeforeHandlerPlugin<import("@webiny/api-headless-cms-bulk-actions/types").HcmsBulkActionsContext>)[] | import("@webiny/plugins/types").Plugin[])[];
package/index.js CHANGED
@@ -1,19 +1,16 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "createDeleteModelTask", {
7
- enumerable: true,
8
- get: function () {
9
- return _deleteModel.createDeleteModelTask;
10
- }
11
- });
12
- exports.createHcmsTasks = void 0;
13
- var _apiHeadlessCmsBulkActions = require("@webiny/api-headless-cms-bulk-actions");
14
- var _apiHeadlessCmsImportExport = require("@webiny/api-headless-cms-import-export");
15
- var _deleteModel = require("./tasks/deleteModel");
16
- const createHcmsTasks = () => [(0, _apiHeadlessCmsBulkActions.createHcmsBulkActions)(), (0, _apiHeadlessCmsBulkActions.createBulkActionEntriesTasks)(), (0, _apiHeadlessCmsBulkActions.createEmptyTrashBinsTask)(), (0, _apiHeadlessCmsImportExport.createHeadlessCmsImportExport)(), (0, _deleteModel.createDeleteModelTask)()];
17
- exports.createHcmsTasks = createHcmsTasks;
1
+ import { createEmptyTrashBinsTask, createHcmsBulkActions } from "@webiny/api-headless-cms-bulk-actions";
2
+ import { createHeadlessCmsImportExport } from "@webiny/api-headless-cms-import-export";
3
+ import { createContextPlugin } from "@webiny/api";
4
+ import { DeleteModelTaskFeature } from "./features/DeleteModelTask/feature.js";
5
+ import { createDeleteModelCrud } from "./graphql/deleteModel/crud.js";
6
+ import { createDeleteModelGraphQl } from "./graphql/deleteModel/index.js";
7
+ export const createDeleteModelTask = () => {
8
+ return [createDeleteModelCrud(), createDeleteModelGraphQl(), createContextPlugin(context => {
9
+ DeleteModelTaskFeature.register(context.container);
10
+ })];
11
+ };
12
+ export const createHcmsTasks = () => [createHcmsBulkActions({
13
+ batchSize: 100
14
+ }), createEmptyTrashBinsTask(), createHeadlessCmsImportExport(), createDeleteModelTask()];
18
15
 
19
16
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["_apiHeadlessCmsBulkActions","require","_apiHeadlessCmsImportExport","_deleteModel","createHcmsTasks","createHcmsBulkActions","createBulkActionEntriesTasks","createEmptyTrashBinsTask","createHeadlessCmsImportExport","createDeleteModelTask","exports"],"sources":["index.ts"],"sourcesContent":["import {\n createBulkActionEntriesTasks,\n createEmptyTrashBinsTask,\n createHcmsBulkActions\n} from \"@webiny/api-headless-cms-bulk-actions\";\nimport { createHeadlessCmsImportExport } from \"@webiny/api-headless-cms-import-export\";\nimport { createDeleteModelTask } from \"~/tasks/deleteModel\";\n\nexport { createDeleteModelTask };\n\nexport const createHcmsTasks = () => [\n createHcmsBulkActions(),\n createBulkActionEntriesTasks(),\n createEmptyTrashBinsTask(),\n createHeadlessCmsImportExport(),\n createDeleteModelTask()\n];\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,0BAAA,GAAAC,OAAA;AAKA,IAAAC,2BAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AAIO,MAAMG,eAAe,GAAGA,CAAA,KAAM,CACjC,IAAAC,gDAAqB,EAAC,CAAC,EACvB,IAAAC,uDAA4B,EAAC,CAAC,EAC9B,IAAAC,mDAAwB,EAAC,CAAC,EAC1B,IAAAC,yDAA6B,EAAC,CAAC,EAC/B,IAAAC,kCAAqB,EAAC,CAAC,CAC1B;AAACC,OAAA,CAAAN,eAAA,GAAAA,eAAA","ignoreList":[]}
1
+ {"version":3,"names":["createEmptyTrashBinsTask","createHcmsBulkActions","createHeadlessCmsImportExport","createContextPlugin","DeleteModelTaskFeature","createDeleteModelCrud","createDeleteModelGraphQl","createDeleteModelTask","context","register","container","createHcmsTasks","batchSize"],"sources":["index.ts"],"sourcesContent":["import {\n createEmptyTrashBinsTask,\n createHcmsBulkActions\n} from \"@webiny/api-headless-cms-bulk-actions\";\nimport { createHeadlessCmsImportExport } from \"@webiny/api-headless-cms-import-export\";\nimport { createContextPlugin } from \"@webiny/api\";\nimport { DeleteModelTaskFeature } from \"~/features/DeleteModelTask/feature.js\";\nimport { createDeleteModelCrud } from \"~/graphql/deleteModel/crud.js\";\nimport { createDeleteModelGraphQl } from \"~/graphql/deleteModel/index.js\";\n\nexport const createDeleteModelTask = () => {\n return [\n createDeleteModelCrud(),\n createDeleteModelGraphQl(),\n createContextPlugin(context => {\n DeleteModelTaskFeature.register(context.container);\n })\n ];\n};\n\nexport const createHcmsTasks = () => [\n createHcmsBulkActions({ batchSize: 100 }),\n createEmptyTrashBinsTask(),\n createHeadlessCmsImportExport(),\n createDeleteModelTask()\n];\n"],"mappings":"AAAA,SACIA,wBAAwB,EACxBC,qBAAqB,QAClB,uCAAuC;AAC9C,SAASC,6BAA6B,QAAQ,wCAAwC;AACtF,SAASC,mBAAmB,QAAQ,aAAa;AACjD,SAASC,sBAAsB;AAC/B,SAASC,qBAAqB;AAC9B,SAASC,wBAAwB;AAEjC,OAAO,MAAMC,qBAAqB,GAAGA,CAAA,KAAM;EACvC,OAAO,CACHF,qBAAqB,CAAC,CAAC,EACvBC,wBAAwB,CAAC,CAAC,EAC1BH,mBAAmB,CAACK,OAAO,IAAI;IAC3BJ,sBAAsB,CAACK,QAAQ,CAACD,OAAO,CAACE,SAAS,CAAC;EACtD,CAAC,CAAC,CACL;AACL,CAAC;AAED,OAAO,MAAMC,eAAe,GAAGA,CAAA,KAAM,CACjCV,qBAAqB,CAAC;EAAEW,SAAS,EAAE;AAAI,CAAC,CAAC,EACzCZ,wBAAwB,CAAC,CAAC,EAC1BE,6BAA6B,CAAC,CAAC,EAC/BK,qBAAqB,CAAC,CAAC,CAC1B","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@webiny/api-headless-cms-tasks",
3
- "version": "6.0.0-alpha.5",
3
+ "version": "6.0.0-rc.0",
4
+ "type": "module",
4
5
  "main": "index.js",
5
6
  "description": "Background tasks for Webiny Headless CMS",
6
7
  "keywords": [
@@ -13,36 +14,33 @@
13
14
  },
14
15
  "license": "MIT",
15
16
  "dependencies": {
16
- "@webiny/api": "6.0.0-alpha.5",
17
- "@webiny/api-aco": "6.0.0-alpha.5",
18
- "@webiny/api-headless-cms": "6.0.0-alpha.5",
19
- "@webiny/api-headless-cms-bulk-actions": "6.0.0-alpha.5",
20
- "@webiny/api-headless-cms-import-export": "6.0.0-alpha.5",
21
- "@webiny/db": "6.0.0-alpha.5",
22
- "@webiny/error": "6.0.0-alpha.5",
23
- "@webiny/handler-graphql": "6.0.0-alpha.5",
24
- "@webiny/tasks": "6.0.0-alpha.5",
25
- "@webiny/utils": "6.0.0-alpha.5",
26
- "zod": "3.23.8"
17
+ "@webiny/api": "6.0.0-rc.0",
18
+ "@webiny/api-aco": "6.0.0-rc.0",
19
+ "@webiny/api-headless-cms": "6.0.0-rc.0",
20
+ "@webiny/api-headless-cms-bulk-actions": "6.0.0-rc.0",
21
+ "@webiny/api-headless-cms-import-export": "6.0.0-rc.0",
22
+ "@webiny/db": "6.0.0-rc.0",
23
+ "@webiny/error": "6.0.0-rc.0",
24
+ "@webiny/feature": "6.0.0-rc.0",
25
+ "@webiny/handler-graphql": "6.0.0-rc.0",
26
+ "@webiny/tasks": "6.0.0-rc.0",
27
+ "@webiny/utils": "6.0.0-rc.0",
28
+ "zod": "3.25.76"
27
29
  },
28
30
  "devDependencies": {
29
- "@webiny/api-i18n": "6.0.0-alpha.5",
30
- "@webiny/api-security": "6.0.0-alpha.5",
31
- "@webiny/api-tenancy": "6.0.0-alpha.5",
32
- "@webiny/api-wcp": "6.0.0-alpha.5",
33
- "@webiny/handler": "6.0.0-alpha.5",
34
- "@webiny/handler-aws": "6.0.0-alpha.5",
35
- "@webiny/plugins": "6.0.0-alpha.5",
36
- "@webiny/project-utils": "6.0.0-alpha.5",
37
- "typescript": "5.3.3"
38
- },
39
- "scripts": {
40
- "build": "node ../cli/bin.js run build",
41
- "watch": "node ../cli/bin.js run watch"
31
+ "@webiny/api-core": "6.0.0-rc.0",
32
+ "@webiny/build-tools": "6.0.0-rc.0",
33
+ "@webiny/handler": "6.0.0-rc.0",
34
+ "@webiny/handler-aws": "6.0.0-rc.0",
35
+ "@webiny/plugins": "6.0.0-rc.0",
36
+ "@webiny/project-utils": "6.0.0-rc.0",
37
+ "@webiny/wcp": "6.0.0-rc.0",
38
+ "typescript": "5.9.3",
39
+ "vitest": "4.0.18"
42
40
  },
43
41
  "publishConfig": {
44
42
  "access": "public",
45
43
  "directory": "dist"
46
44
  },
47
- "gitHead": "b7e120541b093e91f214904a9f13e4c2c4640978"
45
+ "gitHead": "0f2aa699f4642e550ab62c96fcd050e8d02345c9"
48
46
  }
package/types.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import type { HcmsBulkActionsContext } from "@webiny/api-headless-cms-bulk-actions/types";
2
- import type { AcoContext } from "@webiny/api-aco/types";
3
- import type { HeadlessCms } from "@webiny/api-headless-cms/types";
4
- import type { IDeleteCmsModelTask, IStoreValue } from "./tasks/deleteModel/types";
1
+ import type { HcmsBulkActionsContext } from "@webiny/api-headless-cms-bulk-actions/types.js";
2
+ import type { AcoContext } from "@webiny/api-aco/types.js";
3
+ import type { HeadlessCms } from "@webiny/api-headless-cms/types/index.js";
4
+ import type { IDeleteCmsModelTask, IStoreValue } from "./features/DeleteModelTask/types.js";
5
5
  export interface HeadlessCmsFullyDeleteModel {
6
6
  fullyDeleteModel: (modelId: string) => Promise<IDeleteCmsModelTask>;
7
7
  cancelFullyDeleteModel: (modelId: string) => Promise<IDeleteCmsModelTask>;
package/types.js CHANGED
@@ -1,7 +1,3 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
1
+ export {};
6
2
 
7
3
  //# sourceMappingURL=types.js.map
package/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { HcmsBulkActionsContext } from \"@webiny/api-headless-cms-bulk-actions/types\";\nimport type { AcoContext } from \"@webiny/api-aco/types\";\nimport type { HeadlessCms } from \"@webiny/api-headless-cms/types\";\nimport type { IDeleteCmsModelTask, IStoreValue } from \"~/tasks/deleteModel/types\";\n\nexport interface HeadlessCmsFullyDeleteModel {\n fullyDeleteModel: (modelId: string) => Promise<IDeleteCmsModelTask>;\n cancelFullyDeleteModel: (modelId: string) => Promise<IDeleteCmsModelTask>;\n getDeleteModelProgress: (modelId: string) => Promise<IDeleteCmsModelTask>;\n isModelBeingDeleted: (modelId: string) => Promise<boolean>;\n listModelsBeingDeleted: () => Promise<IStoreValue[]>;\n}\n\nexport interface HcmsTasksContext extends HcmsBulkActionsContext, AcoContext {\n cms: HeadlessCms & HeadlessCmsFullyDeleteModel;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { HcmsBulkActionsContext } from \"@webiny/api-headless-cms-bulk-actions/types.js\";\nimport type { AcoContext } from \"@webiny/api-aco/types.js\";\nimport type { HeadlessCms } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { IDeleteCmsModelTask, IStoreValue } from \"~/features/DeleteModelTask/types.js\";\n\nexport interface HeadlessCmsFullyDeleteModel {\n fullyDeleteModel: (modelId: string) => Promise<IDeleteCmsModelTask>;\n cancelFullyDeleteModel: (modelId: string) => Promise<IDeleteCmsModelTask>;\n getDeleteModelProgress: (modelId: string) => Promise<IDeleteCmsModelTask>;\n isModelBeingDeleted: (modelId: string) => Promise<boolean>;\n listModelsBeingDeleted: () => Promise<IStoreValue[]>;\n}\n\nexport interface HcmsTasksContext extends HcmsBulkActionsContext, AcoContext {\n cms: HeadlessCms & HeadlessCmsFullyDeleteModel;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1,19 +0,0 @@
1
- import type { ITaskResponse, ITaskResponseResult, ITaskRunParams } from "@webiny/tasks";
2
- import type { HcmsTasksContext } from "../../types";
3
- import type { IDeleteModelTaskInput, IDeleteModelTaskOutput } from "./types";
4
- export interface IDeleteModelRunnerParams<C extends HcmsTasksContext, I extends IDeleteModelTaskInput, O extends IDeleteModelTaskOutput> {
5
- taskId: string;
6
- context: C;
7
- response: ITaskResponse<I, O>;
8
- }
9
- export type IExecuteParams<C extends HcmsTasksContext, I extends IDeleteModelTaskInput, O extends IDeleteModelTaskOutput> = Omit<ITaskRunParams<C, I, O>, "context" | "response" | "store" | "timer" | "trigger">;
10
- export declare class DeleteModelRunner<C extends HcmsTasksContext, I extends IDeleteModelTaskInput, O extends IDeleteModelTaskOutput> {
11
- private readonly taskId;
12
- private readonly context;
13
- private readonly response;
14
- constructor(params: IDeleteModelRunnerParams<C, I, O>);
15
- execute(params: IExecuteParams<C, I, O>): Promise<ITaskResponseResult<I, O>>;
16
- private getModel;
17
- private removeBeingDeleted;
18
- }
19
- export declare const createDeleteModelRunner: <C extends HcmsTasksContext, I extends IDeleteModelTaskInput, O extends IDeleteModelTaskOutput>(params: IDeleteModelRunnerParams<C, I, O>) => DeleteModelRunner<C, I, O>;
@@ -1 +0,0 @@
1
- {"version":3,"names":["_store","require","DeleteModelRunner","constructor","params","taskId","context","response","execute","input","isCloseToTimeout","isAborted","model","getModel","modelId","hasMoreItems","lastDeletedId","removeBeingDeleted","aborted","continue","where","latest","entryId_gte","items","metaHasMoreItems","cms","storageOperations","entries","list","limit","sort","item","deleteEntry","id","permanently","force","ex","console","error","Error","entryId","length","log","seconds","hasMoreFolders","meta","aco","folder","type","delete","isPlugin","done","deleteModel","message","key","createStoreKey","db","store","removeValue","exports","createDeleteModelRunner"],"sources":["DeleteModelRunner.ts"],"sourcesContent":["import type { ITaskResponse, ITaskResponseResult, ITaskRunParams } from \"@webiny/tasks\";\nimport type { HcmsTasksContext } from \"~/types\";\nimport type { IDeleteModelTaskInput, IDeleteModelTaskOutput } from \"./types\";\nimport type { CmsEntryListWhere, CmsModel } from \"@webiny/api-headless-cms/types\";\nimport { createStoreKey } from \"~/tasks/deleteModel/helpers/store\";\n\nexport interface IDeleteModelRunnerParams<\n C extends HcmsTasksContext,\n I extends IDeleteModelTaskInput,\n O extends IDeleteModelTaskOutput\n> {\n taskId: string;\n context: C;\n response: ITaskResponse<I, O>;\n}\n\nexport type IExecuteParams<\n C extends HcmsTasksContext,\n I extends IDeleteModelTaskInput,\n O extends IDeleteModelTaskOutput\n> = Omit<ITaskRunParams<C, I, O>, \"context\" | \"response\" | \"store\" | \"timer\" | \"trigger\">;\n\nexport class DeleteModelRunner<\n C extends HcmsTasksContext,\n I extends IDeleteModelTaskInput,\n O extends IDeleteModelTaskOutput\n> {\n private readonly taskId: string;\n private readonly context: C;\n private readonly response: ITaskResponse<I, O>;\n\n public constructor(params: IDeleteModelRunnerParams<C, I, O>) {\n this.taskId = params.taskId;\n this.context = params.context;\n this.response = params.response;\n }\n\n public async execute(params: IExecuteParams<C, I, O>): Promise<ITaskResponseResult<I, O>> {\n const { input, isCloseToTimeout, isAborted } = 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 (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 this.response.aborted();\n } else if (isCloseToTimeout()) {\n return this.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 (ex) {\n console.error(\"Failed to delete entry.\", {\n model: model.modelId,\n id: item.id\n });\n return this.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 this.response.continue(\n {\n ...input\n },\n {\n seconds: 5\n }\n );\n }\n\n let hasMoreFolders = false;\n do {\n const [items, meta] = await this.context.aco.folder.list({\n where: {\n type: `cms:${model.modelId}`\n },\n limit: 1000\n });\n for (const item of items) {\n try {\n await this.context.aco.folder.delete(item.id);\n } catch (ex) {\n console.error(`Failed to delete folder \"${item.id}\".`, ex);\n return this.response.error(ex);\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 this.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 this.response.error(ex);\n }\n\n return this.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(\n model: Pick<CmsModel, \"modelId\" | \"tenant\" | \"locale\">\n ): Promise<void> {\n const key = createStoreKey(model);\n await this.context.db.store.removeValue(key);\n }\n}\n\nexport const createDeleteModelRunner = <\n C extends HcmsTasksContext,\n I extends IDeleteModelTaskInput,\n O extends IDeleteModelTaskOutput\n>(\n params: IDeleteModelRunnerParams<C, I, O>\n) => {\n return new DeleteModelRunner<C, I, O>(params);\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,9 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.DELETE_MODEL_TASK = void 0;
7
- const DELETE_MODEL_TASK = exports.DELETE_MODEL_TASK = "deleteModelAndEntries";
8
-
9
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["DELETE_MODEL_TASK","exports"],"sources":["constants.ts"],"sourcesContent":["export const DELETE_MODEL_TASK = \"deleteModelAndEntries\";\n"],"mappings":";;;;;;AAAO,MAAMA,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,uBAAuB","ignoreList":[]}
@@ -1,5 +0,0 @@
1
- import type { HcmsTasksContext } from "../../../types";
2
- export interface IAttachLifecycleEventsParams {
3
- context: HcmsTasksContext;
4
- }
5
- export declare const attachLifecycleEvents: ({ context }: IAttachLifecycleEventsParams) => void;
@@ -1,40 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.attachLifecycleEvents = void 0;
7
- var _error = require("@webiny/error");
8
- const attachLifecycleEvents = ({
9
- context
10
- }) => {
11
- const blockActionOnEvent = async params => {
12
- const {
13
- model
14
- } = params;
15
- const isBeingDeleted = await context.cms.isModelBeingDeleted(model.modelId);
16
- if (!isBeingDeleted) {
17
- return;
18
- }
19
- throw new _error.WebinyError(`Model "${model.name}" is being deleted and you cannot create, update or delete any entries of this model.`);
20
- };
21
- /**
22
- * Entry actions.
23
- */
24
- context.cms.onEntryBeforeCreate.subscribe(blockActionOnEvent);
25
- context.cms.onEntryRevisionBeforeCreate.subscribe(blockActionOnEvent);
26
- context.cms.onEntryBeforeUpdate.subscribe(blockActionOnEvent);
27
- context.cms.onEntryBeforeUnpublish.subscribe(blockActionOnEvent);
28
- context.cms.onEntryBeforePublish.subscribe(blockActionOnEvent);
29
- context.cms.onEntryBeforeRepublish.subscribe(blockActionOnEvent);
30
- context.cms.onEntryBeforeRestoreFromBin.subscribe(blockActionOnEvent);
31
- context.cms.onEntryBeforeMove.subscribe(blockActionOnEvent);
32
- /**
33
- * Model actions.
34
- */
35
- context.cms.onModelBeforeUpdate.subscribe(blockActionOnEvent);
36
- context.cms.onModelBeforeCreateFrom.subscribe(blockActionOnEvent);
37
- };
38
- exports.attachLifecycleEvents = attachLifecycleEvents;
39
-
40
- //# sourceMappingURL=attachLifecycleEvents.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_error","require","attachLifecycleEvents","context","blockActionOnEvent","params","model","isBeingDeleted","cms","isModelBeingDeleted","modelId","WebinyError","name","onEntryBeforeCreate","subscribe","onEntryRevisionBeforeCreate","onEntryBeforeUpdate","onEntryBeforeUnpublish","onEntryBeforePublish","onEntryBeforeRepublish","onEntryBeforeRestoreFromBin","onEntryBeforeMove","onModelBeforeUpdate","onModelBeforeCreateFrom","exports"],"sources":["attachLifecycleEvents.ts"],"sourcesContent":["import type { CmsModel } from \"@webiny/api-headless-cms/types\";\nimport { WebinyError } from \"@webiny/error\";\nimport type { HcmsTasksContext } from \"~/types\";\n\nexport interface IAttachLifecycleEventsParams {\n context: HcmsTasksContext;\n}\n\ninterface ICbParams {\n model: Pick<CmsModel, \"modelId\" | \"name\">;\n}\n\nexport const attachLifecycleEvents = ({ context }: IAttachLifecycleEventsParams): void => {\n const blockActionOnEvent = async (params: ICbParams): Promise<void> => {\n const { model } = params;\n const isBeingDeleted = await context.cms.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 * Entry actions.\n */\n context.cms.onEntryBeforeCreate.subscribe(blockActionOnEvent);\n\n context.cms.onEntryRevisionBeforeCreate.subscribe(blockActionOnEvent);\n\n context.cms.onEntryBeforeUpdate.subscribe(blockActionOnEvent);\n\n context.cms.onEntryBeforeUnpublish.subscribe(blockActionOnEvent);\n\n context.cms.onEntryBeforePublish.subscribe(blockActionOnEvent);\n\n context.cms.onEntryBeforeRepublish.subscribe(blockActionOnEvent);\n\n context.cms.onEntryBeforeRestoreFromBin.subscribe(blockActionOnEvent);\n\n context.cms.onEntryBeforeMove.subscribe(blockActionOnEvent);\n /**\n * Model actions.\n */\n context.cms.onModelBeforeUpdate.subscribe(blockActionOnEvent);\n\n context.cms.onModelBeforeCreateFrom.subscribe(blockActionOnEvent);\n};\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAWO,MAAMC,qBAAqB,GAAGA,CAAC;EAAEC;AAAsC,CAAC,KAAW;EACtF,MAAMC,kBAAkB,GAAG,MAAOC,MAAiB,IAAoB;IACnE,MAAM;MAAEC;IAAM,CAAC,GAAGD,MAAM;IACxB,MAAME,cAAc,GAAG,MAAMJ,OAAO,CAACK,GAAG,CAACC,mBAAmB,CAACH,KAAK,CAACI,OAAO,CAAC;IAC3E,IAAI,CAACH,cAAc,EAAE;MACjB;IACJ;IAEA,MAAM,IAAII,kBAAW,CACjB,UAAUL,KAAK,CAACM,IAAI,uFACxB,CAAC;EACL,CAAC;EACD;AACJ;AACA;EACIT,OAAO,CAACK,GAAG,CAACK,mBAAmB,CAACC,SAAS,CAACV,kBAAkB,CAAC;EAE7DD,OAAO,CAACK,GAAG,CAACO,2BAA2B,CAACD,SAAS,CAACV,kBAAkB,CAAC;EAErED,OAAO,CAACK,GAAG,CAACQ,mBAAmB,CAACF,SAAS,CAACV,kBAAkB,CAAC;EAE7DD,OAAO,CAACK,GAAG,CAACS,sBAAsB,CAACH,SAAS,CAACV,kBAAkB,CAAC;EAEhED,OAAO,CAACK,GAAG,CAACU,oBAAoB,CAACJ,SAAS,CAACV,kBAAkB,CAAC;EAE9DD,OAAO,CAACK,GAAG,CAACW,sBAAsB,CAACL,SAAS,CAACV,kBAAkB,CAAC;EAEhED,OAAO,CAACK,GAAG,CAACY,2BAA2B,CAACN,SAAS,CAACV,kBAAkB,CAAC;EAErED,OAAO,CAACK,GAAG,CAACa,iBAAiB,CAACP,SAAS,CAACV,kBAAkB,CAAC;EAC3D;AACJ;AACA;EACID,OAAO,CAACK,GAAG,CAACc,mBAAmB,CAACR,SAAS,CAACV,kBAAkB,CAAC;EAE7DD,OAAO,CAACK,GAAG,CAACe,uBAAuB,CAACT,SAAS,CAACV,kBAAkB,CAAC;AACrE,CAAC;AAACoB,OAAA,CAAAtB,qBAAA,GAAAA,qBAAA","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["_constants","require","_error","_status","_store","cancelDeleteModel","params","context","modelId","model","cms","getModel","accessControl","ensureCanAccessModel","rwd","ensureCanAccessEntry","storeKey","createStoreKey","result","db","store","getValue","taskId","data","task","removeValue","error","WebinyError","from","code","message","tasks","getTask","definitionId","DELETE_MODEL_TASK","canceledTask","abort","id","status","getStatus","taskStatus","total","output","deleted","exports"],"sources":["cancelDeleteModel.ts"],"sourcesContent":["import type { HcmsTasksContext } from \"~/types\";\nimport type {\n IDeleteCmsModelTask,\n IDeleteModelTaskInput,\n IDeleteModelTaskOutput,\n IStoreValue\n} from \"~/tasks/deleteModel/types\";\nimport { DELETE_MODEL_TASK } from \"~/tasks/deleteModel/constants\";\nimport { WebinyError } from \"@webiny/error\";\nimport { getStatus } from \"~/tasks/deleteModel/graphql/status\";\nimport { createStoreKey } from \"~/tasks/deleteModel/helpers/store\";\n\nexport interface ICancelDeleteModelParams {\n readonly context: Pick<HcmsTasksContext, \"cms\" | \"tasks\" | \"db\">;\n readonly modelId: string;\n}\n\nexport const cancelDeleteModel = async (\n params: ICancelDeleteModelParams\n): Promise<IDeleteCmsModelTask> => {\n const { context, modelId } = params;\n\n const model = await context.cms.getModel(modelId);\n\n await context.cms.accessControl.ensureCanAccessModel({\n model,\n rwd: \"d\"\n });\n\n await context.cms.accessControl.ensureCanAccessEntry({\n model,\n rwd: \"w\"\n });\n\n const storeKey = createStoreKey(model);\n\n const result = await context.db.store.getValue<IStoreValue>(storeKey);\n\n const taskId = result.data?.task;\n\n await context.db.store.removeValue(storeKey);\n if (!taskId) {\n if (result.error) {\n throw WebinyError.from(result.error, {\n code: \"DELETE_MODEL_NO_TASK_DEFINED\"\n });\n }\n throw new WebinyError({\n message: `Model \"${modelId}\" is not being deleted.`,\n code: \"MODEL_NOT_BEING_DELETED\"\n });\n }\n\n const task = await context.tasks.getTask<IDeleteModelTaskInput, IDeleteModelTaskOutput>(taskId);\n if (task?.definitionId !== DELETE_MODEL_TASK) {\n throw new WebinyError({\n message: `The task which is deleting a model cannot be found. Please check Step Functions for more info. Task id: ${taskId}`,\n code: \"DELETE_MODEL_TASK_NOT_FOUND\",\n data: {\n model: model.modelId,\n task: taskId\n }\n });\n }\n\n const canceledTask = await context.tasks.abort<IDeleteModelTaskInput, IDeleteModelTaskOutput>({\n id: task.id,\n message: \"User canceled the task.\"\n });\n\n return {\n id: canceledTask.id,\n status: getStatus(canceledTask.taskStatus),\n total: canceledTask.output?.total || 0,\n deleted: canceledTask.output?.deleted || 0\n };\n};\n"],"mappings":";;;;;;AAOA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAOO,MAAMI,iBAAiB,GAAG,MAC7BC,MAAgC,IACD;EAC/B,MAAM;IAAEC,OAAO;IAAEC;EAAQ,CAAC,GAAGF,MAAM;EAEnC,MAAMG,KAAK,GAAG,MAAMF,OAAO,CAACG,GAAG,CAACC,QAAQ,CAACH,OAAO,CAAC;EAEjD,MAAMD,OAAO,CAACG,GAAG,CAACE,aAAa,CAACC,oBAAoB,CAAC;IACjDJ,KAAK;IACLK,GAAG,EAAE;EACT,CAAC,CAAC;EAEF,MAAMP,OAAO,CAACG,GAAG,CAACE,aAAa,CAACG,oBAAoB,CAAC;IACjDN,KAAK;IACLK,GAAG,EAAE;EACT,CAAC,CAAC;EAEF,MAAME,QAAQ,GAAG,IAAAC,qBAAc,EAACR,KAAK,CAAC;EAEtC,MAAMS,MAAM,GAAG,MAAMX,OAAO,CAACY,EAAE,CAACC,KAAK,CAACC,QAAQ,CAAcL,QAAQ,CAAC;EAErE,MAAMM,MAAM,GAAGJ,MAAM,CAACK,IAAI,EAAEC,IAAI;EAEhC,MAAMjB,OAAO,CAACY,EAAE,CAACC,KAAK,CAACK,WAAW,CAACT,QAAQ,CAAC;EAC5C,IAAI,CAACM,MAAM,EAAE;IACT,IAAIJ,MAAM,CAACQ,KAAK,EAAE;MACd,MAAMC,kBAAW,CAACC,IAAI,CAACV,MAAM,CAACQ,KAAK,EAAE;QACjCG,IAAI,EAAE;MACV,CAAC,CAAC;IACN;IACA,MAAM,IAAIF,kBAAW,CAAC;MAClBG,OAAO,EAAE,UAAUtB,OAAO,yBAAyB;MACnDqB,IAAI,EAAE;IACV,CAAC,CAAC;EACN;EAEA,MAAML,IAAI,GAAG,MAAMjB,OAAO,CAACwB,KAAK,CAACC,OAAO,CAAgDV,MAAM,CAAC;EAC/F,IAAIE,IAAI,EAAES,YAAY,KAAKC,4BAAiB,EAAE;IAC1C,MAAM,IAAIP,kBAAW,CAAC;MAClBG,OAAO,EAAE,2GAA2GR,MAAM,EAAE;MAC5HO,IAAI,EAAE,6BAA6B;MACnCN,IAAI,EAAE;QACFd,KAAK,EAAEA,KAAK,CAACD,OAAO;QACpBgB,IAAI,EAAEF;MACV;IACJ,CAAC,CAAC;EACN;EAEA,MAAMa,YAAY,GAAG,MAAM5B,OAAO,CAACwB,KAAK,CAACK,KAAK,CAAgD;IAC1FC,EAAE,EAAEb,IAAI,CAACa,EAAE;IACXP,OAAO,EAAE;EACb,CAAC,CAAC;EAEF,OAAO;IACHO,EAAE,EAAEF,YAAY,CAACE,EAAE;IACnBC,MAAM,EAAE,IAAAC,iBAAS,EAACJ,YAAY,CAACK,UAAU,CAAC;IAC1CC,KAAK,EAAEN,YAAY,CAACO,MAAM,EAAED,KAAK,IAAI,CAAC;IACtCE,OAAO,EAAER,YAAY,CAACO,MAAM,EAAEC,OAAO,IAAI;EAC7C,CAAC;AACL,CAAC;AAACC,OAAA,CAAAvC,iBAAA,GAAAA,iBAAA","ignoreList":[]}