@webiny/api-headless-cms-tasks 6.4.11 → 6.6.0-alpha.1

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 (46) hide show
  1. package/HcmsTasksFeature.d.ts +4 -0
  2. package/HcmsTasksFeature.js +21 -0
  3. package/HcmsTasksFeature.js.map +1 -0
  4. package/features/DeleteModelTask/DeleteModel.js +19 -11
  5. package/features/DeleteModelTask/DeleteModel.js.map +1 -1
  6. package/features/DeleteModelTask/DeleteModelTask.d.ts +1 -1
  7. package/features/DeleteModelTask/types.d.ts +0 -3
  8. package/features/DeleteModelTask/types.js.map +1 -1
  9. package/features/DisableModel/BlockActionIfModelDisabled.d.ts +17 -4
  10. package/features/DisableModel/BlockActionIfModelDisabled.js +13 -5
  11. package/features/DisableModel/BlockActionIfModelDisabled.js.map +1 -1
  12. package/features/DisableModel/feature.d.ts +1 -5
  13. package/features/DisableModel/feature.js +3 -4
  14. package/features/DisableModel/feature.js.map +1 -1
  15. package/graphql/deleteModel/DeleteModelOperationsImpl.d.ts +43 -0
  16. package/graphql/deleteModel/DeleteModelOperationsImpl.js +91 -0
  17. package/graphql/deleteModel/DeleteModelOperationsImpl.js.map +1 -0
  18. package/graphql/deleteModel/abstractions.d.ts +12 -0
  19. package/graphql/deleteModel/abstractions.js +5 -0
  20. package/graphql/deleteModel/abstractions.js.map +1 -0
  21. package/graphql/deleteModel/assertModelDeletable.d.ts +11 -0
  22. package/graphql/deleteModel/assertModelDeletable.js +17 -0
  23. package/graphql/deleteModel/assertModelDeletable.js.map +1 -0
  24. package/graphql/deleteModel/cancelDeleteModel.d.ts +9 -2
  25. package/graphql/deleteModel/cancelDeleteModel.js +18 -29
  26. package/graphql/deleteModel/cancelDeleteModel.js.map +1 -1
  27. package/graphql/deleteModel/fullyDeleteModel.d.ts +10 -2
  28. package/graphql/deleteModel/fullyDeleteModel.js +15 -21
  29. package/graphql/deleteModel/fullyDeleteModel.js.map +1 -1
  30. package/graphql/deleteModel/getDeleteModelProgress.d.ts +8 -2
  31. package/graphql/deleteModel/getDeleteModelProgress.js +14 -18
  32. package/graphql/deleteModel/getDeleteModelProgress.js.map +1 -1
  33. package/graphql/deleteModel/index.d.ts +21 -2
  34. package/graphql/deleteModel/index.js +37 -19
  35. package/graphql/deleteModel/index.js.map +1 -1
  36. package/helpers/store.d.ts +12 -7
  37. package/helpers/store.js +32 -3
  38. package/helpers/store.js.map +1 -1
  39. package/index.d.ts +1 -2
  40. package/index.js +1 -22
  41. package/package.json +20 -20
  42. package/types.d.ts +0 -10
  43. package/graphql/deleteModel/crud.d.ts +0 -3
  44. package/graphql/deleteModel/crud.js +0 -63
  45. package/graphql/deleteModel/crud.js.map +0 -1
  46. package/index.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-headless-cms-tasks",
3
- "version": "6.4.11",
3
+ "version": "6.6.0-alpha.1",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./index.js",
@@ -17,28 +17,28 @@
17
17
  },
18
18
  "license": "MIT",
19
19
  "dependencies": {
20
- "@webiny/api": "6.4.11",
21
- "@webiny/api-aco": "6.4.11",
22
- "@webiny/api-headless-cms": "6.4.11",
23
- "@webiny/api-headless-cms-bulk-actions": "6.4.11",
24
- "@webiny/background-tasks": "6.4.11",
25
- "@webiny/db": "6.4.11",
26
- "@webiny/error": "6.4.11",
27
- "@webiny/feature": "6.4.11",
28
- "@webiny/handler-graphql": "6.4.11",
29
- "@webiny/utils": "6.4.11",
20
+ "@webiny/api-aco": "6.6.0-alpha.1",
21
+ "@webiny/api-graphql": "6.6.0-alpha.1",
22
+ "@webiny/api-headless-cms": "6.6.0-alpha.1",
23
+ "@webiny/api-headless-cms-bulk-actions": "6.6.0-alpha.1",
24
+ "@webiny/background-tasks": "6.6.0-alpha.1",
25
+ "@webiny/error": "6.6.0-alpha.1",
26
+ "@webiny/feature": "6.6.0-alpha.1",
27
+ "@webiny/utils": "6.6.0-alpha.1",
28
+ "graphql": "16.14.2",
30
29
  "zod": "4.4.3"
31
30
  },
32
31
  "devDependencies": {
33
- "@webiny/api-core": "6.4.11",
34
- "@webiny/build-tools": "6.4.11",
35
- "@webiny/handler": "6.4.11",
36
- "@webiny/handler-aws": "6.4.11",
37
- "@webiny/plugins": "6.4.11",
38
- "@webiny/project-utils": "6.4.11",
39
- "@webiny/wcp": "6.4.11",
40
- "typescript": "6.0.3",
41
- "vitest": "4.1.10"
32
+ "@webiny/api-core": "6.6.0-alpha.1",
33
+ "@webiny/api-headless-cms-testing": "6.6.0-alpha.1",
34
+ "@webiny/api-opensearch": "6.6.0-alpha.1",
35
+ "@webiny/build-tools": "6.6.0-alpha.1",
36
+ "@webiny/event-handler-core": "6.6.0-alpha.1",
37
+ "@webiny/handler": "6.6.0-alpha.1",
38
+ "@webiny/plugins": "6.6.0-alpha.1",
39
+ "@webiny/wcp": "6.6.0-alpha.1",
40
+ "typescript": "7.0.2",
41
+ "vitest": "4.1.11"
42
42
  },
43
43
  "publishConfig": {
44
44
  "access": "public"
package/types.d.ts CHANGED
@@ -1,14 +1,4 @@
1
1
  import type { HcmsBulkActionsContext } from "@webiny/api-headless-cms-bulk-actions/types.js";
2
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
- export interface HeadlessCmsFullyDeleteModel {
6
- fullyDeleteModel: (modelId: string) => Promise<IDeleteCmsModelTask>;
7
- cancelFullyDeleteModel: (modelId: string) => Promise<IDeleteCmsModelTask>;
8
- getDeleteModelProgress: (modelId: string) => Promise<IDeleteCmsModelTask>;
9
- isModelBeingDeleted: (modelId: string) => Promise<boolean>;
10
- listModelsBeingDeleted: () => Promise<IStoreValue[]>;
11
- }
12
3
  export interface HcmsTasksContext extends HcmsBulkActionsContext, AcoContext {
13
- cms: HeadlessCms & HeadlessCmsFullyDeleteModel;
14
4
  }
@@ -1,3 +0,0 @@
1
- import type { HcmsTasksContext } from "../../types.js";
2
- import { ContextPlugin } from "@webiny/api";
3
- export declare const createDeleteModelCrud: () => ContextPlugin<HcmsTasksContext>;
@@ -1,63 +0,0 @@
1
- import { createCacheKey, createMemoryCache } from "@webiny/api-headless-cms/utils/index.js";
2
- import { ContextPlugin } from "@webiny/api";
3
- import { DisableModelFeature } from "../../features/DisableModel/feature.js";
4
- import { createStoreNamespace } from "../../helpers/store.js";
5
- import { fullyDeleteModel } from "./fullyDeleteModel.js";
6
- import { cancelDeleteModel } from "./cancelDeleteModel.js";
7
- import { getDeleteModelProgress } from "./getDeleteModelProgress.js";
8
- const createDeleteModelCrud = ()=>{
9
- const plugin = new ContextPlugin(async (context)=>{
10
- const getTenant = ()=>context.tenancy.getCurrentTenant().id;
11
- const cache = createMemoryCache();
12
- context.cms.listModelsBeingDeleted = async ()=>{
13
- const tenant = getTenant();
14
- const cacheKey = createCacheKey({
15
- tenant: getTenant(),
16
- type: "deleteModel"
17
- });
18
- const result = await cache.getOrSet(cacheKey, async ()=>{
19
- const beginsWith = createStoreNamespace({
20
- tenant
21
- });
22
- return await context.db.store.listValues({
23
- beginsWith
24
- });
25
- });
26
- if (result.error) throw result.error;
27
- if (!result.data) return [];
28
- return Object.values(result.data);
29
- };
30
- context.cms.isModelBeingDeleted = async (modelId)=>{
31
- const items = await context.cms.listModelsBeingDeleted();
32
- return items.some((item)=>item.modelId === modelId);
33
- };
34
- context.cms.fullyDeleteModel = async (modelId)=>{
35
- const result = await fullyDeleteModel({
36
- context,
37
- modelId
38
- });
39
- cache.clear();
40
- return result;
41
- };
42
- context.cms.cancelFullyDeleteModel = async (modelId)=>{
43
- const result = await cancelDeleteModel({
44
- context,
45
- modelId
46
- });
47
- cache.clear();
48
- return result;
49
- };
50
- context.cms.getDeleteModelProgress = async (modelId)=>await getDeleteModelProgress({
51
- context,
52
- modelId
53
- });
54
- DisableModelFeature.register(context.container, {
55
- isModelBeingDeleted: context.cms.isModelBeingDeleted
56
- });
57
- });
58
- plugin.name = "headlessCms.context.cms.fullyDeleteModel";
59
- return plugin;
60
- };
61
- export { createDeleteModelCrud };
62
-
63
- //# sourceMappingURL=crud.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"graphql/deleteModel/crud.js","sources":["../../../src/graphql/deleteModel/crud.ts"],"sourcesContent":["import type { HcmsTasksContext } from \"~/types.js\";\nimport { createCacheKey } from \"@webiny/api-headless-cms/utils/index.js\";\nimport { createMemoryCache } from \"@webiny/api-headless-cms/utils/index.js\";\nimport type { IStoreValue } from \"~/features/DeleteModelTask/types.js\";\nimport type { ListStoreKeysResult } from \"~/features/DeleteModelTask/types.js\";\nimport type { GenericRecord } from \"@webiny/api/types.js\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { DisableModelFeature } from \"~/features/DisableModel/feature.js\";\nimport { createStoreNamespace } from \"~/helpers/store.js\";\nimport { fullyDeleteModel } from \"~/graphql/deleteModel/fullyDeleteModel.js\";\nimport { cancelDeleteModel } from \"~/graphql/deleteModel/cancelDeleteModel.js\";\nimport { getDeleteModelProgress } from \"~/graphql/deleteModel/getDeleteModelProgress.js\";\n\nexport const createDeleteModelCrud = () => {\n const plugin = new ContextPlugin<HcmsTasksContext>(async context => {\n const getTenant = (): string => {\n return context.tenancy.getCurrentTenant().id;\n };\n\n const cache = createMemoryCache<ListStoreKeysResult>();\n\n context.cms.listModelsBeingDeleted = async () => {\n const tenant = getTenant();\n const cacheKey = createCacheKey({\n tenant: getTenant(),\n type: \"deleteModel\"\n });\n\n const result = await cache.getOrSet(cacheKey, async () => {\n const beginsWith = createStoreNamespace({\n tenant\n });\n return await context.db.store.listValues<GenericRecord<string, IStoreValue>>({\n beginsWith\n });\n });\n\n if (result.error) {\n throw result.error;\n } else if (!result.data) {\n return [];\n }\n return Object.values(result.data);\n };\n\n context.cms.isModelBeingDeleted = async (modelId: string) => {\n const items = await context.cms.listModelsBeingDeleted();\n return items.some(item => item.modelId === modelId);\n };\n context.cms.fullyDeleteModel = async (modelId: string) => {\n const result = await fullyDeleteModel({\n context,\n modelId\n });\n cache.clear();\n return result;\n };\n\n context.cms.cancelFullyDeleteModel = async (modelId: string) => {\n const result = await cancelDeleteModel({\n context,\n modelId\n });\n cache.clear();\n return result;\n };\n\n context.cms.getDeleteModelProgress = async (modelId: string) => {\n return await getDeleteModelProgress({\n context,\n modelId\n });\n };\n\n // Register feature\n DisableModelFeature.register(context.container, {\n isModelBeingDeleted: context.cms.isModelBeingDeleted\n });\n });\n\n plugin.name = \"headlessCms.context.cms.fullyDeleteModel\";\n\n return plugin;\n};\n"],"names":["createDeleteModelCrud","plugin","ContextPlugin","context","getTenant","cache","createMemoryCache","tenant","cacheKey","createCacheKey","result","beginsWith","createStoreNamespace","Object","modelId","items","item","fullyDeleteModel","cancelDeleteModel","getDeleteModelProgress","DisableModelFeature"],"mappings":";;;;;;;AAaO,MAAMA,wBAAwB;IACjC,MAAMC,SAAS,IAAIC,cAAgC,OAAMC;QACrD,MAAMC,YAAY,IACPD,QAAQ,OAAO,CAAC,gBAAgB,GAAG,EAAE;QAGhD,MAAME,QAAQC;QAEdH,QAAQ,GAAG,CAAC,sBAAsB,GAAG;YACjC,MAAMI,SAASH;YACf,MAAMI,WAAWC,eAAe;gBAC5B,QAAQL;gBACR,MAAM;YACV;YAEA,MAAMM,SAAS,MAAML,MAAM,QAAQ,CAACG,UAAU;gBAC1C,MAAMG,aAAaC,qBAAqB;oBACpCL;gBACJ;gBACA,OAAO,MAAMJ,QAAQ,EAAE,CAAC,KAAK,CAAC,UAAU,CAAqC;oBACzEQ;gBACJ;YACJ;YAEA,IAAID,OAAO,KAAK,EACZ,MAAMA,OAAO,KAAK;YACf,IAAI,CAACA,OAAO,IAAI,EACnB,OAAO,EAAE;YAEb,OAAOG,OAAO,MAAM,CAACH,OAAO,IAAI;QACpC;QAEAP,QAAQ,GAAG,CAAC,mBAAmB,GAAG,OAAOW;YACrC,MAAMC,QAAQ,MAAMZ,QAAQ,GAAG,CAAC,sBAAsB;YACtD,OAAOY,MAAM,IAAI,CAACC,CAAAA,OAAQA,KAAK,OAAO,KAAKF;QAC/C;QACAX,QAAQ,GAAG,CAAC,gBAAgB,GAAG,OAAOW;YAClC,MAAMJ,SAAS,MAAMO,iBAAiB;gBAClCd;gBACAW;YACJ;YACAT,MAAM,KAAK;YACX,OAAOK;QACX;QAEAP,QAAQ,GAAG,CAAC,sBAAsB,GAAG,OAAOW;YACxC,MAAMJ,SAAS,MAAMQ,kBAAkB;gBACnCf;gBACAW;YACJ;YACAT,MAAM,KAAK;YACX,OAAOK;QACX;QAEAP,QAAQ,GAAG,CAAC,sBAAsB,GAAG,OAAOW,UACjC,MAAMK,uBAAuB;gBAChChB;gBACAW;YACJ;QAIJM,oBAAoB,QAAQ,CAACjB,QAAQ,SAAS,EAAE;YAC5C,qBAAqBA,QAAQ,GAAG,CAAC,mBAAmB;QACxD;IACJ;IAEAF,OAAO,IAAI,GAAG;IAEd,OAAOA;AACX"}
package/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import {\n createEmptyTrashBinsTask,\n createHcmsBulkActions\n} from \"@webiny/api-headless-cms-bulk-actions\";\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 createDeleteModelTask()\n];\n"],"names":["createDeleteModelTask","createDeleteModelCrud","createDeleteModelGraphQl","createContextPlugin","context","DeleteModelTaskFeature","createHcmsTasks","createHcmsBulkActions","createEmptyTrashBinsTask"],"mappings":";;;;;AASO,MAAMA,wBAAwB,IAC1B;QACHC;QACAC;QACAC,oBAAoBC,CAAAA;YAChBC,uBAAuB,QAAQ,CAACD,QAAQ,SAAS;QACrD;KACH;AAGE,MAAME,kBAAkB,IAAM;QACjCC,sBAAsB;YAAE,WAAW;QAAI;QACvCC;QACAR;KACH"}