@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.
- package/HcmsTasksFeature.d.ts +4 -0
- package/HcmsTasksFeature.js +21 -0
- package/HcmsTasksFeature.js.map +1 -0
- package/features/DeleteModelTask/DeleteModel.js +19 -11
- package/features/DeleteModelTask/DeleteModel.js.map +1 -1
- package/features/DeleteModelTask/DeleteModelTask.d.ts +1 -1
- package/features/DeleteModelTask/types.d.ts +0 -3
- package/features/DeleteModelTask/types.js.map +1 -1
- package/features/DisableModel/BlockActionIfModelDisabled.d.ts +17 -4
- package/features/DisableModel/BlockActionIfModelDisabled.js +13 -5
- package/features/DisableModel/BlockActionIfModelDisabled.js.map +1 -1
- package/features/DisableModel/feature.d.ts +1 -5
- package/features/DisableModel/feature.js +3 -4
- package/features/DisableModel/feature.js.map +1 -1
- package/graphql/deleteModel/DeleteModelOperationsImpl.d.ts +43 -0
- package/graphql/deleteModel/DeleteModelOperationsImpl.js +91 -0
- package/graphql/deleteModel/DeleteModelOperationsImpl.js.map +1 -0
- package/graphql/deleteModel/abstractions.d.ts +12 -0
- package/graphql/deleteModel/abstractions.js +5 -0
- package/graphql/deleteModel/abstractions.js.map +1 -0
- package/graphql/deleteModel/assertModelDeletable.d.ts +11 -0
- package/graphql/deleteModel/assertModelDeletable.js +17 -0
- package/graphql/deleteModel/assertModelDeletable.js.map +1 -0
- package/graphql/deleteModel/cancelDeleteModel.d.ts +9 -2
- package/graphql/deleteModel/cancelDeleteModel.js +18 -29
- package/graphql/deleteModel/cancelDeleteModel.js.map +1 -1
- package/graphql/deleteModel/fullyDeleteModel.d.ts +10 -2
- package/graphql/deleteModel/fullyDeleteModel.js +15 -21
- package/graphql/deleteModel/fullyDeleteModel.js.map +1 -1
- package/graphql/deleteModel/getDeleteModelProgress.d.ts +8 -2
- package/graphql/deleteModel/getDeleteModelProgress.js +14 -18
- package/graphql/deleteModel/getDeleteModelProgress.js.map +1 -1
- package/graphql/deleteModel/index.d.ts +21 -2
- package/graphql/deleteModel/index.js +37 -19
- package/graphql/deleteModel/index.js.map +1 -1
- package/helpers/store.d.ts +12 -7
- package/helpers/store.js +32 -3
- package/helpers/store.js.map +1 -1
- package/index.d.ts +1 -2
- package/index.js +1 -22
- package/package.json +20 -20
- package/types.d.ts +0 -10
- package/graphql/deleteModel/crud.d.ts +0 -3
- package/graphql/deleteModel/crud.js +0 -63
- package/graphql/deleteModel/crud.js.map +0 -1
- 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.
|
|
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.
|
|
21
|
-
"@webiny/api-
|
|
22
|
-
"@webiny/api-headless-cms": "6.
|
|
23
|
-
"@webiny/api-headless-cms-bulk-actions": "6.
|
|
24
|
-
"@webiny/background-tasks": "6.
|
|
25
|
-
"@webiny/
|
|
26
|
-
"@webiny/
|
|
27
|
-
"@webiny/
|
|
28
|
-
"
|
|
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.
|
|
34
|
-
"@webiny/
|
|
35
|
-
"@webiny/
|
|
36
|
-
"@webiny/
|
|
37
|
-
"@webiny/
|
|
38
|
-
"@webiny/
|
|
39
|
-
"@webiny/
|
|
40
|
-
"
|
|
41
|
-
"
|
|
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,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"}
|