@webiny/api-headless-cms-bulk-actions 6.0.0-alpha.5 → 6.0.0-rc.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/README.md +10 -14
- package/abstractions/IUseCase.js +1 -5
- package/abstractions/index.d.ts +1 -3
- package/abstractions/index.js +1 -38
- package/abstractions/index.js.map +1 -1
- package/domain/BulkActionName.d.ts +3 -0
- package/domain/BulkActionName.js +20 -0
- package/domain/BulkActionName.js.map +1 -0
- package/features/BulkActionContext/abstractions.d.ts +5 -0
- package/features/BulkActionContext/abstractions.js +6 -0
- package/features/BulkActionContext/abstractions.js.map +1 -0
- package/features/BulkActionContext/index.d.ts +1 -0
- package/features/BulkActionContext/index.js +3 -0
- package/features/BulkActionContext/index.js.map +1 -0
- package/features/DeleteEntriesBulkAction/DeleteEntriesBulkAction.d.ts +15 -0
- package/features/DeleteEntriesBulkAction/DeleteEntriesBulkAction.js +29 -0
- package/features/DeleteEntriesBulkAction/DeleteEntriesBulkAction.js.map +1 -0
- package/features/DeleteEntriesBulkAction/feature.d.ts +1 -0
- package/features/DeleteEntriesBulkAction/feature.js +10 -0
- package/features/DeleteEntriesBulkAction/feature.js.map +1 -0
- package/features/EntriesBulkAction/abstractions.d.ts +38 -0
- package/features/EntriesBulkAction/abstractions.js +5 -0
- package/features/EntriesBulkAction/abstractions.js.map +1 -0
- package/features/EntriesBulkAction/createBulkActionTasks.d.ts +2 -0
- package/features/EntriesBulkAction/createBulkActionTasks.js +147 -0
- package/features/EntriesBulkAction/createBulkActionTasks.js.map +1 -0
- package/{useCases/internals/ChildTaskCleanup → features/EntriesBulkAction/internals}/ChildTasksCleanup.d.ts +1 -1
- package/{useCases/internals/ChildTaskCleanup → features/EntriesBulkAction/internals}/ChildTasksCleanup.js +3 -10
- package/features/EntriesBulkAction/internals/ChildTasksCleanup.js.map +1 -0
- package/features/EntriesBulkAction/internals/CreateTasksByModel.d.ts +16 -0
- package/features/EntriesBulkAction/internals/CreateTasksByModel.js +107 -0
- package/features/EntriesBulkAction/internals/CreateTasksByModel.js.map +1 -0
- package/features/EntriesBulkAction/internals/ProcessTask.d.ts +16 -0
- package/features/EntriesBulkAction/internals/ProcessTask.js +76 -0
- package/features/EntriesBulkAction/internals/ProcessTask.js.map +1 -0
- package/{useCases/internals/ProcessTask/Result.d.ts → features/EntriesBulkAction/internals/ProcessTaskResult.d.ts} +1 -1
- package/{useCases/internals/ProcessTask/Result.js → features/EntriesBulkAction/internals/ProcessTaskResult.js} +2 -9
- package/features/EntriesBulkAction/internals/ProcessTaskResult.js.map +1 -0
- package/features/EntriesBulkAction/internals/ProcessTasksByModel.d.ts +13 -0
- package/features/EntriesBulkAction/internals/ProcessTasksByModel.js +56 -0
- package/features/EntriesBulkAction/internals/ProcessTasksByModel.js.map +1 -0
- package/{useCases/internals/CreateTasksByModel → features/EntriesBulkAction/internals}/TaskCache.d.ts +4 -4
- package/{useCases/internals/CreateTasksByModel → features/EntriesBulkAction/internals}/TaskCache.js +1 -8
- package/features/EntriesBulkAction/internals/TaskCache.js.map +1 -0
- package/features/MoveToFolderBulkAction/MoveToFolderBulkAction.d.ts +15 -0
- package/features/MoveToFolderBulkAction/MoveToFolderBulkAction.js +30 -0
- package/features/MoveToFolderBulkAction/MoveToFolderBulkAction.js.map +1 -0
- package/features/MoveToFolderBulkAction/feature.d.ts +1 -0
- package/features/MoveToFolderBulkAction/feature.js +10 -0
- package/features/MoveToFolderBulkAction/feature.js.map +1 -0
- package/features/MoveToTrashBulkAction/MoveToTrashBulkAction.d.ts +15 -0
- package/features/MoveToTrashBulkAction/MoveToTrashBulkAction.js +29 -0
- package/features/MoveToTrashBulkAction/MoveToTrashBulkAction.js.map +1 -0
- package/features/MoveToTrashBulkAction/feature.d.ts +1 -0
- package/features/MoveToTrashBulkAction/feature.js +10 -0
- package/features/MoveToTrashBulkAction/feature.js.map +1 -0
- package/features/PublishEntriesBulkAction/PublishEntriesBulkAction.d.ts +15 -0
- package/features/PublishEntriesBulkAction/PublishEntriesBulkAction.js +37 -0
- package/features/PublishEntriesBulkAction/PublishEntriesBulkAction.js.map +1 -0
- package/features/PublishEntriesBulkAction/feature.d.ts +1 -0
- package/features/PublishEntriesBulkAction/feature.js +10 -0
- package/features/PublishEntriesBulkAction/feature.js.map +1 -0
- package/features/RestoreEntriesBulkAction/RestoreEntriesBulkAction.d.ts +15 -0
- package/features/RestoreEntriesBulkAction/RestoreEntriesBulkAction.js +27 -0
- package/features/RestoreEntriesBulkAction/RestoreEntriesBulkAction.js.map +1 -0
- package/features/RestoreEntriesBulkAction/feature.d.ts +1 -0
- package/features/RestoreEntriesBulkAction/feature.js +10 -0
- package/features/RestoreEntriesBulkAction/feature.js.map +1 -0
- package/features/UnpublishEntriesBulkAction/UnpublishEntriesBulkAction.d.ts +15 -0
- package/features/UnpublishEntriesBulkAction/UnpublishEntriesBulkAction.js +27 -0
- package/features/UnpublishEntriesBulkAction/UnpublishEntriesBulkAction.js.map +1 -0
- package/features/UnpublishEntriesBulkAction/feature.d.ts +1 -0
- package/features/UnpublishEntriesBulkAction/feature.js +10 -0
- package/features/UnpublishEntriesBulkAction/feature.js.map +1 -0
- package/graphql/createBulkActionGraphQL.d.ts +3 -0
- package/graphql/createBulkActionGraphQL.js +64 -0
- package/graphql/createBulkActionGraphQL.js.map +1 -0
- package/graphql/createDefaultGraphQL.d.ts +3 -0
- package/{plugins → graphql}/createDefaultGraphQL.js +10 -18
- package/graphql/createDefaultGraphQL.js.map +1 -0
- package/handlers/eventBridgeEventHandler.js +3 -10
- package/handlers/eventBridgeEventHandler.js.map +1 -1
- package/handlers/index.d.ts +1 -1
- package/handlers/index.js +4 -11
- package/handlers/index.js.map +1 -1
- package/handlers/setupEventsTenant.js +3 -10
- package/handlers/setupEventsTenant.js.map +1 -1
- package/index.d.ts +8 -6
- package/index.js +46 -69
- package/index.js.map +1 -1
- package/package.json +19 -23
- package/tasks/EmptyTrashBinTaskDefinition.d.ts +26 -0
- package/tasks/EmptyTrashBinTaskDefinition.js +124 -0
- package/tasks/EmptyTrashBinTaskDefinition.js.map +1 -0
- package/tasks/createEmptyTrashBinsTask.d.ts +1 -2
- package/tasks/createEmptyTrashBinsTask.js +5 -114
- package/tasks/createEmptyTrashBinsTask.js.map +1 -1
- package/tasks/index.d.ts +1 -2
- package/tasks/index.js +1 -27
- package/tasks/index.js.map +1 -1
- package/types.d.ts +12 -12
- package/types.js +4 -7
- package/types.js.map +1 -1
- package/abstractions/IListEntries.d.ts +0 -7
- package/abstractions/IListEntries.js +0 -7
- package/abstractions/IListEntries.js.map +0 -1
- package/abstractions/IProcessEntry.d.ts +0 -4
- package/abstractions/IProcessEntry.js +0 -7
- package/abstractions/IProcessEntry.js.map +0 -1
- package/plugins/createBulkAction.d.ts +0 -10
- package/plugins/createBulkAction.js +0 -36
- package/plugins/createBulkAction.js.map +0 -1
- package/plugins/createBulkActionGraphQL.d.ts +0 -7
- package/plugins/createBulkActionGraphQL.js +0 -72
- package/plugins/createBulkActionGraphQL.js.map +0 -1
- package/plugins/createBulkActionTasks.d.ts +0 -9
- package/plugins/createBulkActionTasks.js +0 -135
- package/plugins/createBulkActionTasks.js.map +0 -1
- package/plugins/createDefaultGraphQL.d.ts +0 -3
- package/plugins/createDefaultGraphQL.js.map +0 -1
- package/plugins/index.d.ts +0 -2
- package/plugins/index.js +0 -29
- package/plugins/index.js.map +0 -1
- package/tasks/createBulkActionEntriesTasks.d.ts +0 -1
- package/tasks/createBulkActionEntriesTasks.js +0 -38
- package/tasks/createBulkActionEntriesTasks.js.map +0 -1
- package/useCases/DeleteEntry.d.ts +0 -10
- package/useCases/DeleteEntry.js +0 -26
- package/useCases/DeleteEntry.js.map +0 -1
- package/useCases/ListDeletedEntries.d.ts +0 -13
- package/useCases/ListDeletedEntries.js +0 -28
- package/useCases/ListDeletedEntries.js.map +0 -1
- package/useCases/ListLatestEntries.d.ts +0 -13
- package/useCases/ListLatestEntries.js +0 -28
- package/useCases/ListLatestEntries.js.map +0 -1
- package/useCases/ListNotPublishedEntries.d.ts +0 -13
- package/useCases/ListNotPublishedEntries.js +0 -34
- package/useCases/ListNotPublishedEntries.js.map +0 -1
- package/useCases/ListPublishedEntries.d.ts +0 -13
- package/useCases/ListPublishedEntries.js +0 -28
- package/useCases/ListPublishedEntries.js.map +0 -1
- package/useCases/MoveEntryToFolder.d.ts +0 -13
- package/useCases/MoveEntryToFolder.js +0 -23
- package/useCases/MoveEntryToFolder.js.map +0 -1
- package/useCases/MoveEntryToTrash.d.ts +0 -10
- package/useCases/MoveEntryToTrash.js +0 -26
- package/useCases/MoveEntryToTrash.js.map +0 -1
- package/useCases/PublishEntry.d.ts +0 -10
- package/useCases/PublishEntry.js +0 -20
- package/useCases/PublishEntry.js.map +0 -1
- package/useCases/RestoreEntryFromTrash.d.ts +0 -10
- package/useCases/RestoreEntryFromTrash.js +0 -24
- package/useCases/RestoreEntryFromTrash.js.map +0 -1
- package/useCases/UnpublishEntry.d.ts +0 -10
- package/useCases/UnpublishEntry.js +0 -20
- package/useCases/UnpublishEntry.js.map +0 -1
- package/useCases/index.d.ts +0 -10
- package/useCases/index.js +0 -117
- package/useCases/index.js.map +0 -1
- package/useCases/internals/ChildTaskCleanup/ChildTasksCleanup.js.map +0 -1
- package/useCases/internals/ChildTaskCleanup/index.d.ts +0 -1
- package/useCases/internals/ChildTaskCleanup/index.js +0 -18
- package/useCases/internals/ChildTaskCleanup/index.js.map +0 -1
- package/useCases/internals/CreateTasksByModel/CreateTasksByModel.d.ts +0 -13
- package/useCases/internals/CreateTasksByModel/CreateTasksByModel.js +0 -111
- package/useCases/internals/CreateTasksByModel/CreateTasksByModel.js.map +0 -1
- package/useCases/internals/CreateTasksByModel/TaskCache.js.map +0 -1
- package/useCases/internals/CreateTasksByModel/index.d.ts +0 -1
- package/useCases/internals/CreateTasksByModel/index.js +0 -18
- package/useCases/internals/CreateTasksByModel/index.js.map +0 -1
- package/useCases/internals/ProcessTask/ProcessTask.d.ts +0 -14
- package/useCases/internals/ProcessTask/ProcessTask.js +0 -81
- package/useCases/internals/ProcessTask/ProcessTask.js.map +0 -1
- package/useCases/internals/ProcessTask/Result.js.map +0 -1
- package/useCases/internals/ProcessTask/index.d.ts +0 -1
- package/useCases/internals/ProcessTask/index.js +0 -18
- package/useCases/internals/ProcessTask/index.js.map +0 -1
- package/useCases/internals/ProcessTasksByModel/ProcessTasksByModel.d.ts +0 -11
- package/useCases/internals/ProcessTasksByModel/ProcessTasksByModel.js +0 -67
- package/useCases/internals/ProcessTasksByModel/ProcessTasksByModel.js.map +0 -1
- package/useCases/internals/ProcessTasksByModel/index.d.ts +0 -1
- package/useCases/internals/ProcessTasksByModel/index.js +0 -18
- package/useCases/internals/ProcessTasksByModel/index.js.map +0 -1
- package/useCases/internals/index.d.ts +0 -4
- package/useCases/internals/index.js +0 -51
- package/useCases/internals/index.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const PublishEntriesBulkActionFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { PublishEntriesBulkAction } from "./PublishEntriesBulkAction.js";
|
|
3
|
+
export const PublishEntriesBulkActionFeature = createFeature({
|
|
4
|
+
name: "HeadlessCms/BulkAction/PublishEntries",
|
|
5
|
+
register(container) {
|
|
6
|
+
container.register(PublishEntriesBulkAction);
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createFeature","PublishEntriesBulkAction","PublishEntriesBulkActionFeature","name","register","container"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { PublishEntriesBulkAction } from \"./PublishEntriesBulkAction.js\";\n\nexport const PublishEntriesBulkActionFeature = createFeature({\n name: \"HeadlessCms/BulkAction/PublishEntries\",\n register(container) {\n container.register(PublishEntriesBulkAction);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,wBAAwB;AAEjC,OAAO,MAAMC,+BAA+B,GAAGF,aAAa,CAAC;EACzDG,IAAI,EAAE,uCAAuC;EAC7CC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACH,wBAAwB,CAAC;EAChD;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ListDeletedEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/index.js";
|
|
2
|
+
import { RestoreEntryFromBinUseCase } from "@webiny/api-headless-cms/features/contentEntry/RestoreEntryFromBin/index.js";
|
|
3
|
+
import { EntriesBulkAction } from "../../features/EntriesBulkAction/abstractions.js";
|
|
4
|
+
declare class RestoreEntriesBulkActionImpl implements EntriesBulkAction.Interface {
|
|
5
|
+
private listDeletedEntries;
|
|
6
|
+
private restoreEntry;
|
|
7
|
+
readonly name = "restore";
|
|
8
|
+
constructor(listDeletedEntries: ListDeletedEntriesUseCase.Interface, restoreEntry: RestoreEntryFromBinUseCase.Interface);
|
|
9
|
+
loadData(model: EntriesBulkAction.Model, params: EntriesBulkAction.LoadDataParams): Promise<EntriesBulkAction.LoadDataResult>;
|
|
10
|
+
processData(model: EntriesBulkAction.Model, params: EntriesBulkAction.ProcessParams): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
export declare const RestoreEntriesBulkAction: typeof RestoreEntriesBulkActionImpl & {
|
|
13
|
+
__abstraction: import("@webiny/di").Abstraction<import("~/features/EntriesBulkAction/abstractions.js").IEntriesBulkAction>;
|
|
14
|
+
};
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ListDeletedEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/index.js";
|
|
2
|
+
import { RestoreEntryFromBinUseCase } from "@webiny/api-headless-cms/features/contentEntry/RestoreEntryFromBin/index.js";
|
|
3
|
+
import { parseIdentifier } from "@webiny/utils";
|
|
4
|
+
import { EntriesBulkAction } from "../EntriesBulkAction/abstractions.js";
|
|
5
|
+
class RestoreEntriesBulkActionImpl {
|
|
6
|
+
name = "restore";
|
|
7
|
+
constructor(listDeletedEntries, restoreEntry) {
|
|
8
|
+
this.listDeletedEntries = listDeletedEntries;
|
|
9
|
+
this.restoreEntry = restoreEntry;
|
|
10
|
+
}
|
|
11
|
+
async loadData(model, params) {
|
|
12
|
+
const entriesResult = await this.listDeletedEntries.execute(model, params);
|
|
13
|
+
return entriesResult.value;
|
|
14
|
+
}
|
|
15
|
+
async processData(model, params) {
|
|
16
|
+
const {
|
|
17
|
+
id: entryId
|
|
18
|
+
} = parseIdentifier(params.id);
|
|
19
|
+
await this.restoreEntry.execute(model, entryId);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
export const RestoreEntriesBulkAction = EntriesBulkAction.createImplementation({
|
|
23
|
+
implementation: RestoreEntriesBulkActionImpl,
|
|
24
|
+
dependencies: [ListDeletedEntriesUseCase, RestoreEntryFromBinUseCase]
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
//# sourceMappingURL=RestoreEntriesBulkAction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ListDeletedEntriesUseCase","RestoreEntryFromBinUseCase","parseIdentifier","EntriesBulkAction","RestoreEntriesBulkActionImpl","name","constructor","listDeletedEntries","restoreEntry","loadData","model","params","entriesResult","execute","value","processData","id","entryId","RestoreEntriesBulkAction","createImplementation","implementation","dependencies"],"sources":["RestoreEntriesBulkAction.ts"],"sourcesContent":["import { ListDeletedEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries/index.js\";\nimport { RestoreEntryFromBinUseCase } from \"@webiny/api-headless-cms/features/contentEntry/RestoreEntryFromBin/index.js\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { EntriesBulkAction } from \"~/features/EntriesBulkAction/abstractions.js\";\n\nclass RestoreEntriesBulkActionImpl implements EntriesBulkAction.Interface {\n readonly name = \"restore\";\n\n constructor(\n private listDeletedEntries: ListDeletedEntriesUseCase.Interface,\n private restoreEntry: RestoreEntryFromBinUseCase.Interface\n ) {}\n\n async loadData(\n model: EntriesBulkAction.Model,\n params: EntriesBulkAction.LoadDataParams\n ): Promise<EntriesBulkAction.LoadDataResult> {\n const entriesResult = await this.listDeletedEntries.execute(model, params);\n\n return entriesResult.value;\n }\n\n async processData(\n model: EntriesBulkAction.Model,\n params: EntriesBulkAction.ProcessParams\n ): Promise<void> {\n const { id: entryId } = parseIdentifier(params.id);\n\n await this.restoreEntry.execute(model, entryId);\n }\n}\n\nexport const RestoreEntriesBulkAction = EntriesBulkAction.createImplementation({\n implementation: RestoreEntriesBulkActionImpl,\n dependencies: [ListDeletedEntriesUseCase, RestoreEntryFromBinUseCase]\n});\n"],"mappings":"AAAA,SAASA,yBAAyB,QAAQ,qEAAqE;AAC/G,SAASC,0BAA0B,QAAQ,6EAA6E;AACxH,SAASC,eAAe,QAAQ,eAAe;AAC/C,SAASC,iBAAiB;AAE1B,MAAMC,4BAA4B,CAAwC;EAC7DC,IAAI,GAAG,SAAS;EAEzBC,WAAWA,CACCC,kBAAuD,EACvDC,YAAkD,EAC5D;IAAA,KAFUD,kBAAuD,GAAvDA,kBAAuD;IAAA,KACvDC,YAAkD,GAAlDA,YAAkD;EAC3D;EAEH,MAAMC,QAAQA,CACVC,KAA8B,EAC9BC,MAAwC,EACC;IACzC,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACL,kBAAkB,CAACM,OAAO,CAACH,KAAK,EAAEC,MAAM,CAAC;IAE1E,OAAOC,aAAa,CAACE,KAAK;EAC9B;EAEA,MAAMC,WAAWA,CACbL,KAA8B,EAC9BC,MAAuC,EAC1B;IACb,MAAM;MAAEK,EAAE,EAAEC;IAAQ,CAAC,GAAGf,eAAe,CAACS,MAAM,CAACK,EAAE,CAAC;IAElD,MAAM,IAAI,CAACR,YAAY,CAACK,OAAO,CAACH,KAAK,EAAEO,OAAO,CAAC;EACnD;AACJ;AAEA,OAAO,MAAMC,wBAAwB,GAAGf,iBAAiB,CAACgB,oBAAoB,CAAC;EAC3EC,cAAc,EAAEhB,4BAA4B;EAC5CiB,YAAY,EAAE,CAACrB,yBAAyB,EAAEC,0BAA0B;AACxE,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const RestoreEntriesBulkActionFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { RestoreEntriesBulkAction } from "./RestoreEntriesBulkAction.js";
|
|
3
|
+
export const RestoreEntriesBulkActionFeature = createFeature({
|
|
4
|
+
name: "HeadlessCms/BulkAction/RestoreEntries",
|
|
5
|
+
register(container) {
|
|
6
|
+
container.register(RestoreEntriesBulkAction);
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createFeature","RestoreEntriesBulkAction","RestoreEntriesBulkActionFeature","name","register","container"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { RestoreEntriesBulkAction } from \"./RestoreEntriesBulkAction.js\";\n\nexport const RestoreEntriesBulkActionFeature = createFeature({\n name: \"HeadlessCms/BulkAction/RestoreEntries\",\n register(container) {\n container.register(RestoreEntriesBulkAction);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,wBAAwB;AAEjC,OAAO,MAAMC,+BAA+B,GAAGF,aAAa,CAAC;EACzDG,IAAI,EAAE,uCAAuC;EAC7CC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACH,wBAAwB,CAAC;EAChD;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ListPublishedEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/index.js";
|
|
2
|
+
import { UnpublishEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/UnpublishEntry/index.js";
|
|
3
|
+
import { EntriesBulkAction } from "../../features/EntriesBulkAction/abstractions.js";
|
|
4
|
+
declare class UnpublishEntriesBulkActionImpl implements EntriesBulkAction.Interface {
|
|
5
|
+
private listPublishedEntries;
|
|
6
|
+
private unpublishEntry;
|
|
7
|
+
readonly name = "unpublish";
|
|
8
|
+
constructor(listPublishedEntries: ListPublishedEntriesUseCase.Interface, unpublishEntry: UnpublishEntryUseCase.Interface);
|
|
9
|
+
loadData(model: EntriesBulkAction.Model, params: EntriesBulkAction.LoadDataParams): Promise<EntriesBulkAction.LoadDataResult>;
|
|
10
|
+
processData(model: EntriesBulkAction.Model, params: EntriesBulkAction.ProcessParams): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
export declare const UnpublishEntriesBulkAction: typeof UnpublishEntriesBulkActionImpl & {
|
|
13
|
+
__abstraction: import("@webiny/di").Abstraction<import("~/features/EntriesBulkAction/abstractions.js").IEntriesBulkAction>;
|
|
14
|
+
};
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ListPublishedEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/index.js";
|
|
2
|
+
import { UnpublishEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/UnpublishEntry/index.js";
|
|
3
|
+
import { parseIdentifier } from "@webiny/utils";
|
|
4
|
+
import { EntriesBulkAction } from "../EntriesBulkAction/abstractions.js";
|
|
5
|
+
class UnpublishEntriesBulkActionImpl {
|
|
6
|
+
name = "unpublish";
|
|
7
|
+
constructor(listPublishedEntries, unpublishEntry) {
|
|
8
|
+
this.listPublishedEntries = listPublishedEntries;
|
|
9
|
+
this.unpublishEntry = unpublishEntry;
|
|
10
|
+
}
|
|
11
|
+
async loadData(model, params) {
|
|
12
|
+
const entriesResult = await this.listPublishedEntries.execute(model, params);
|
|
13
|
+
return entriesResult.value;
|
|
14
|
+
}
|
|
15
|
+
async processData(model, params) {
|
|
16
|
+
const {
|
|
17
|
+
id: entryId
|
|
18
|
+
} = parseIdentifier(params.id);
|
|
19
|
+
await this.unpublishEntry.execute(model, entryId);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
export const UnpublishEntriesBulkAction = EntriesBulkAction.createImplementation({
|
|
23
|
+
implementation: UnpublishEntriesBulkActionImpl,
|
|
24
|
+
dependencies: [ListPublishedEntriesUseCase, UnpublishEntryUseCase]
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
//# sourceMappingURL=UnpublishEntriesBulkAction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ListPublishedEntriesUseCase","UnpublishEntryUseCase","parseIdentifier","EntriesBulkAction","UnpublishEntriesBulkActionImpl","name","constructor","listPublishedEntries","unpublishEntry","loadData","model","params","entriesResult","execute","value","processData","id","entryId","UnpublishEntriesBulkAction","createImplementation","implementation","dependencies"],"sources":["UnpublishEntriesBulkAction.ts"],"sourcesContent":["import { ListPublishedEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries/index.js\";\nimport { UnpublishEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/UnpublishEntry/index.js\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { EntriesBulkAction } from \"~/features/EntriesBulkAction/abstractions.js\";\n\nclass UnpublishEntriesBulkActionImpl implements EntriesBulkAction.Interface {\n readonly name = \"unpublish\";\n\n constructor(\n private listPublishedEntries: ListPublishedEntriesUseCase.Interface,\n private unpublishEntry: UnpublishEntryUseCase.Interface\n ) {}\n\n async loadData(\n model: EntriesBulkAction.Model,\n params: EntriesBulkAction.LoadDataParams\n ): Promise<EntriesBulkAction.LoadDataResult> {\n const entriesResult = await this.listPublishedEntries.execute(model, params);\n\n return entriesResult.value;\n }\n\n async processData(\n model: EntriesBulkAction.Model,\n params: EntriesBulkAction.ProcessParams\n ): Promise<void> {\n const { id: entryId } = parseIdentifier(params.id);\n\n await this.unpublishEntry.execute(model, entryId);\n }\n}\n\nexport const UnpublishEntriesBulkAction = EntriesBulkAction.createImplementation({\n implementation: UnpublishEntriesBulkActionImpl,\n dependencies: [ListPublishedEntriesUseCase, UnpublishEntryUseCase]\n});\n"],"mappings":"AAAA,SAASA,2BAA2B,QAAQ,qEAAqE;AACjH,SAASC,qBAAqB,QAAQ,wEAAwE;AAC9G,SAASC,eAAe,QAAQ,eAAe;AAC/C,SAASC,iBAAiB;AAE1B,MAAMC,8BAA8B,CAAwC;EAC/DC,IAAI,GAAG,WAAW;EAE3BC,WAAWA,CACCC,oBAA2D,EAC3DC,cAA+C,EACzD;IAAA,KAFUD,oBAA2D,GAA3DA,oBAA2D;IAAA,KAC3DC,cAA+C,GAA/CA,cAA+C;EACxD;EAEH,MAAMC,QAAQA,CACVC,KAA8B,EAC9BC,MAAwC,EACC;IACzC,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACL,oBAAoB,CAACM,OAAO,CAACH,KAAK,EAAEC,MAAM,CAAC;IAE5E,OAAOC,aAAa,CAACE,KAAK;EAC9B;EAEA,MAAMC,WAAWA,CACbL,KAA8B,EAC9BC,MAAuC,EAC1B;IACb,MAAM;MAAEK,EAAE,EAAEC;IAAQ,CAAC,GAAGf,eAAe,CAACS,MAAM,CAACK,EAAE,CAAC;IAElD,MAAM,IAAI,CAACR,cAAc,CAACK,OAAO,CAACH,KAAK,EAAEO,OAAO,CAAC;EACrD;AACJ;AAEA,OAAO,MAAMC,0BAA0B,GAAGf,iBAAiB,CAACgB,oBAAoB,CAAC;EAC7EC,cAAc,EAAEhB,8BAA8B;EAC9CiB,YAAY,EAAE,CAACrB,2BAA2B,EAAEC,qBAAqB;AACrE,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const UnpublishEntriesBulkActionFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { UnpublishEntriesBulkAction } from "./UnpublishEntriesBulkAction.js";
|
|
3
|
+
export const UnpublishEntriesBulkActionFeature = createFeature({
|
|
4
|
+
name: "HeadlessCms/BulkAction/UnpublishEntries",
|
|
5
|
+
register(container) {
|
|
6
|
+
container.register(UnpublishEntriesBulkAction);
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createFeature","UnpublishEntriesBulkAction","UnpublishEntriesBulkActionFeature","name","register","container"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { UnpublishEntriesBulkAction } from \"./UnpublishEntriesBulkAction.js\";\n\nexport const UnpublishEntriesBulkActionFeature = createFeature({\n name: \"HeadlessCms/BulkAction/UnpublishEntries\",\n register(container) {\n container.register(UnpublishEntriesBulkAction);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,0BAA0B;AAEnC,OAAO,MAAMC,iCAAiC,GAAGF,aAAa,CAAC;EAC3DG,IAAI,EAAE,yCAAyC;EAC/CC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACH,0BAA0B,CAAC;EAClD;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { HcmsBulkActionsContext } from "../types.js";
|
|
2
|
+
import { EntriesBulkAction } from "../features/EntriesBulkAction/abstractions.js";
|
|
3
|
+
export declare const createBulkActionGraphQL: (context: HcmsBulkActionsContext, bulkAction: EntriesBulkAction.Interface) => Promise<void>;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { CmsGraphQLSchemaPlugin, isHeadlessCmsReady } from "@webiny/api-headless-cms";
|
|
2
|
+
import { Response } from "@webiny/handler-graphql";
|
|
3
|
+
import { CMS_MODEL_SINGLETON_TAG } from "@webiny/api-headless-cms/constants.js";
|
|
4
|
+
import { BulkActionName } from "../domain/BulkActionName.js";
|
|
5
|
+
export const createBulkActionGraphQL = async (context, bulkAction) => {
|
|
6
|
+
const tenant = context.tenancy.getCurrentTenant();
|
|
7
|
+
|
|
8
|
+
// TODO: once we have GraphSchema plugin via an abstraction, we'll be able to remove this.
|
|
9
|
+
if (!(await isHeadlessCmsReady(context))) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
const models = await context.security.withoutAuthorization(async () => {
|
|
13
|
+
const allModels = await context.cms.listModels();
|
|
14
|
+
return allModels.filter(model => {
|
|
15
|
+
if (model.isPrivate) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
const tags = Array.isArray(model.tags) ? model.tags : [];
|
|
19
|
+
if (tags.includes(CMS_MODEL_SINGLETON_TAG)) {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
if (bulkAction.modelIds?.length) {
|
|
23
|
+
return bulkAction.modelIds.includes(model.modelId);
|
|
24
|
+
}
|
|
25
|
+
return true;
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
const plugins = [];
|
|
29
|
+
models.forEach(model => {
|
|
30
|
+
const plugin = new CmsGraphQLSchemaPlugin({
|
|
31
|
+
typeDefs: /* GraphQL */`
|
|
32
|
+
extend enum BulkAction${model.singularApiName}Name {
|
|
33
|
+
${BulkActionName.from(bulkAction.name)}
|
|
34
|
+
}
|
|
35
|
+
`,
|
|
36
|
+
resolvers: {
|
|
37
|
+
Mutation: {
|
|
38
|
+
[`bulkAction${model.singularApiName}`]: async (_, args, context) => {
|
|
39
|
+
const identity = context.security.getIdentity();
|
|
40
|
+
const response = await context.tasks.trigger({
|
|
41
|
+
definition: `hcmsBulkList${args.action}Entries`,
|
|
42
|
+
input: {
|
|
43
|
+
modelId: model.modelId,
|
|
44
|
+
where: args.where,
|
|
45
|
+
search: args.search,
|
|
46
|
+
data: args.data,
|
|
47
|
+
identity
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
return new Response({
|
|
51
|
+
id: response.value.id
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
isApplicable: context => context.tenancy.getCurrentTenant().id === tenant.id
|
|
57
|
+
});
|
|
58
|
+
plugin.name = `headless-cms.graphql.schema.bulkAction.${model.modelId}.${bulkAction.name}`;
|
|
59
|
+
plugins.push(plugin);
|
|
60
|
+
});
|
|
61
|
+
context.plugins.register([...plugins]);
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
//# sourceMappingURL=createBulkActionGraphQL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CmsGraphQLSchemaPlugin","isHeadlessCmsReady","Response","CMS_MODEL_SINGLETON_TAG","BulkActionName","createBulkActionGraphQL","context","bulkAction","tenant","tenancy","getCurrentTenant","models","security","withoutAuthorization","allModels","cms","listModels","filter","model","isPrivate","tags","Array","isArray","includes","modelIds","length","modelId","plugins","forEach","plugin","typeDefs","singularApiName","from","name","resolvers","Mutation","_","args","identity","getIdentity","response","tasks","trigger","definition","action","input","where","search","data","id","value","isApplicable","push","register"],"sources":["createBulkActionGraphQL.ts"],"sourcesContent":["import type { HcmsBulkActionsContext } from \"~/types.js\";\nimport { CmsGraphQLSchemaPlugin, isHeadlessCmsReady } from \"@webiny/api-headless-cms\";\nimport { Response } from \"@webiny/handler-graphql\";\nimport { CMS_MODEL_SINGLETON_TAG } from \"@webiny/api-headless-cms/constants.js\";\nimport { EntriesBulkAction } from \"~/features/EntriesBulkAction/abstractions.js\";\nimport { BulkActionName } from \"~/domain/BulkActionName.js\";\n\nexport const createBulkActionGraphQL = async (\n context: HcmsBulkActionsContext,\n bulkAction: EntriesBulkAction.Interface\n) => {\n const tenant = context.tenancy.getCurrentTenant();\n\n // TODO: once we have GraphSchema plugin via an abstraction, we'll be able to remove this.\n if (!(await isHeadlessCmsReady(context))) {\n return;\n }\n\n const models = await context.security.withoutAuthorization(async () => {\n const allModels = await context.cms.listModels();\n return allModels.filter(model => {\n if (model.isPrivate) {\n return false;\n }\n const tags = Array.isArray(model.tags) ? model.tags : [];\n if (tags.includes(CMS_MODEL_SINGLETON_TAG)) {\n return false;\n }\n if (bulkAction.modelIds?.length) {\n return bulkAction.modelIds.includes(model.modelId);\n }\n return true;\n });\n });\n\n const plugins: CmsGraphQLSchemaPlugin<HcmsBulkActionsContext>[] = [];\n\n models.forEach(model => {\n const plugin = new CmsGraphQLSchemaPlugin<HcmsBulkActionsContext>({\n typeDefs: /* GraphQL */ `\n extend enum BulkAction${model.singularApiName}Name {\n ${BulkActionName.from(bulkAction.name)}\n }\n `,\n resolvers: {\n Mutation: {\n [`bulkAction${model.singularApiName}`]: async (_, args, context) => {\n const identity = context.security.getIdentity();\n\n const response = await context.tasks.trigger({\n definition: `hcmsBulkList${args.action}Entries`,\n input: {\n modelId: model.modelId,\n where: args.where,\n search: args.search,\n data: args.data,\n identity\n }\n });\n\n return new Response({\n id: response.value.id\n });\n }\n }\n },\n isApplicable: context => context.tenancy.getCurrentTenant().id === tenant.id\n });\n\n plugin.name = `headless-cms.graphql.schema.bulkAction.${model.modelId}.${bulkAction.name}`;\n plugins.push(plugin);\n });\n\n context.plugins.register([...plugins]);\n};\n"],"mappings":"AACA,SAASA,sBAAsB,EAAEC,kBAAkB,QAAQ,0BAA0B;AACrF,SAASC,QAAQ,QAAQ,yBAAyB;AAClD,SAASC,uBAAuB,QAAQ,uCAAuC;AAE/E,SAASC,cAAc;AAEvB,OAAO,MAAMC,uBAAuB,GAAG,MAAAA,CACnCC,OAA+B,EAC/BC,UAAuC,KACtC;EACD,MAAMC,MAAM,GAAGF,OAAO,CAACG,OAAO,CAACC,gBAAgB,CAAC,CAAC;;EAEjD;EACA,IAAI,EAAE,MAAMT,kBAAkB,CAACK,OAAO,CAAC,CAAC,EAAE;IACtC;EACJ;EAEA,MAAMK,MAAM,GAAG,MAAML,OAAO,CAACM,QAAQ,CAACC,oBAAoB,CAAC,YAAY;IACnE,MAAMC,SAAS,GAAG,MAAMR,OAAO,CAACS,GAAG,CAACC,UAAU,CAAC,CAAC;IAChD,OAAOF,SAAS,CAACG,MAAM,CAACC,KAAK,IAAI;MAC7B,IAAIA,KAAK,CAACC,SAAS,EAAE;QACjB,OAAO,KAAK;MAChB;MACA,MAAMC,IAAI,GAAGC,KAAK,CAACC,OAAO,CAACJ,KAAK,CAACE,IAAI,CAAC,GAAGF,KAAK,CAACE,IAAI,GAAG,EAAE;MACxD,IAAIA,IAAI,CAACG,QAAQ,CAACpB,uBAAuB,CAAC,EAAE;QACxC,OAAO,KAAK;MAChB;MACA,IAAII,UAAU,CAACiB,QAAQ,EAAEC,MAAM,EAAE;QAC7B,OAAOlB,UAAU,CAACiB,QAAQ,CAACD,QAAQ,CAACL,KAAK,CAACQ,OAAO,CAAC;MACtD;MACA,OAAO,IAAI;IACf,CAAC,CAAC;EACN,CAAC,CAAC;EAEF,MAAMC,OAAyD,GAAG,EAAE;EAEpEhB,MAAM,CAACiB,OAAO,CAACV,KAAK,IAAI;IACpB,MAAMW,MAAM,GAAG,IAAI7B,sBAAsB,CAAyB;MAC9D8B,QAAQ,EAAE,aAAc;AACpC,6CAA6CZ,KAAK,CAACa,eAAe;AAClE,0BAA0B3B,cAAc,CAAC4B,IAAI,CAACzB,UAAU,CAAC0B,IAAI,CAAC;AAC9D;AACA,iBAAiB;MACLC,SAAS,EAAE;QACPC,QAAQ,EAAE;UACN,CAAC,aAAajB,KAAK,CAACa,eAAe,EAAE,GAAG,OAAOK,CAAC,EAAEC,IAAI,EAAE/B,OAAO,KAAK;YAChE,MAAMgC,QAAQ,GAAGhC,OAAO,CAACM,QAAQ,CAAC2B,WAAW,CAAC,CAAC;YAE/C,MAAMC,QAAQ,GAAG,MAAMlC,OAAO,CAACmC,KAAK,CAACC,OAAO,CAAC;cACzCC,UAAU,EAAE,eAAeN,IAAI,CAACO,MAAM,SAAS;cAC/CC,KAAK,EAAE;gBACHnB,OAAO,EAAER,KAAK,CAACQ,OAAO;gBACtBoB,KAAK,EAAET,IAAI,CAACS,KAAK;gBACjBC,MAAM,EAAEV,IAAI,CAACU,MAAM;gBACnBC,IAAI,EAAEX,IAAI,CAACW,IAAI;gBACfV;cACJ;YACJ,CAAC,CAAC;YAEF,OAAO,IAAIpC,QAAQ,CAAC;cAChB+C,EAAE,EAAET,QAAQ,CAACU,KAAK,CAACD;YACvB,CAAC,CAAC;UACN;QACJ;MACJ,CAAC;MACDE,YAAY,EAAE7C,OAAO,IAAIA,OAAO,CAACG,OAAO,CAACC,gBAAgB,CAAC,CAAC,CAACuC,EAAE,KAAKzC,MAAM,CAACyC;IAC9E,CAAC,CAAC;IAEFpB,MAAM,CAACI,IAAI,GAAG,0CAA0Cf,KAAK,CAACQ,OAAO,IAAInB,UAAU,CAAC0B,IAAI,EAAE;IAC1FN,OAAO,CAACyB,IAAI,CAACvB,MAAM,CAAC;EACxB,CAAC,CAAC;EAEFvB,OAAO,CAACqB,OAAO,CAAC0B,QAAQ,CAAC,CAAC,GAAG1B,OAAO,CAAC,CAAC;AAC1C,CAAC","ignoreList":[]}
|
|
@@ -1,20 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
exports.createDefaultGraphQL = void 0;
|
|
7
|
-
var _api = require("@webiny/api");
|
|
8
|
-
var _apiHeadlessCms = require("@webiny/api-headless-cms");
|
|
9
|
-
var _constants = require("@webiny/api-headless-cms/constants");
|
|
10
|
-
const createDefaultGraphQL = () => {
|
|
11
|
-
return new _api.ContextPlugin(async context => {
|
|
1
|
+
import { CmsGraphQLSchemaPlugin, isHeadlessCmsReady } from "@webiny/api-headless-cms";
|
|
2
|
+
import { CMS_MODEL_SINGLETON_TAG } from "@webiny/api-headless-cms/constants.js";
|
|
3
|
+
import { BeforeHandlerPlugin } from "@webiny/handler/plugins/BeforeHandlerPlugin.js";
|
|
4
|
+
export const createDefaultGraphQL = () => {
|
|
5
|
+
return new BeforeHandlerPlugin(async context => {
|
|
12
6
|
const tenant = context.tenancy.getCurrentTenant();
|
|
13
|
-
|
|
14
|
-
if (!locale || !(await (0, _apiHeadlessCms.isHeadlessCmsReady)(context))) {
|
|
7
|
+
if (!(await isHeadlessCmsReady(context))) {
|
|
15
8
|
return;
|
|
16
9
|
}
|
|
17
|
-
const defaultPlugin = new
|
|
10
|
+
const defaultPlugin = new CmsGraphQLSchemaPlugin({
|
|
18
11
|
typeDefs: /* GraphQL */`
|
|
19
12
|
type BulkActionResponseData {
|
|
20
13
|
id: String
|
|
@@ -34,7 +27,7 @@ const createDefaultGraphQL = () => {
|
|
|
34
27
|
return false;
|
|
35
28
|
}
|
|
36
29
|
const tags = Array.isArray(model.tags) ? model.tags : [];
|
|
37
|
-
if (tags.includes(
|
|
30
|
+
if (tags.includes(CMS_MODEL_SINGLETON_TAG)) {
|
|
38
31
|
return false;
|
|
39
32
|
}
|
|
40
33
|
return true;
|
|
@@ -42,7 +35,7 @@ const createDefaultGraphQL = () => {
|
|
|
42
35
|
});
|
|
43
36
|
const modelPlugins = [];
|
|
44
37
|
models.forEach(model => {
|
|
45
|
-
const plugin = new
|
|
38
|
+
const plugin = new CmsGraphQLSchemaPlugin({
|
|
46
39
|
typeDefs: /* GraphQL */`
|
|
47
40
|
enum BulkAction${model.singularApiName}Name {
|
|
48
41
|
_empty
|
|
@@ -57,7 +50,7 @@ const createDefaultGraphQL = () => {
|
|
|
57
50
|
): BulkActionResponse
|
|
58
51
|
}
|
|
59
52
|
`,
|
|
60
|
-
isApplicable: context => context.tenancy.getCurrentTenant().id === tenant.id
|
|
53
|
+
isApplicable: context => context.tenancy.getCurrentTenant().id === tenant.id
|
|
61
54
|
});
|
|
62
55
|
plugin.name = `headless-cms.graphql.schema.bulkAction.default.${model.modelId}`;
|
|
63
56
|
modelPlugins.push(plugin);
|
|
@@ -65,6 +58,5 @@ const createDefaultGraphQL = () => {
|
|
|
65
58
|
context.plugins.register([defaultPlugin, ...modelPlugins]);
|
|
66
59
|
});
|
|
67
60
|
};
|
|
68
|
-
exports.createDefaultGraphQL = createDefaultGraphQL;
|
|
69
61
|
|
|
70
62
|
//# sourceMappingURL=createDefaultGraphQL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CmsGraphQLSchemaPlugin","isHeadlessCmsReady","CMS_MODEL_SINGLETON_TAG","BeforeHandlerPlugin","createDefaultGraphQL","context","tenant","tenancy","getCurrentTenant","defaultPlugin","typeDefs","name","models","security","withoutAuthorization","allModels","cms","listModels","filter","model","isPrivate","tags","Array","isArray","includes","modelPlugins","forEach","plugin","singularApiName","isApplicable","id","modelId","push","plugins","register"],"sources":["createDefaultGraphQL.ts"],"sourcesContent":["import type { HcmsBulkActionsContext } from \"~/types.js\";\nimport { CmsGraphQLSchemaPlugin, isHeadlessCmsReady } from \"@webiny/api-headless-cms\";\nimport { CMS_MODEL_SINGLETON_TAG } from \"@webiny/api-headless-cms/constants.js\";\nimport { BeforeHandlerPlugin } from \"@webiny/handler/plugins/BeforeHandlerPlugin.js\";\n\nexport const createDefaultGraphQL = () => {\n return new BeforeHandlerPlugin<HcmsBulkActionsContext>(async context => {\n const tenant = context.tenancy.getCurrentTenant();\n\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 => {\n if (model.isPrivate) {\n return false;\n }\n const tags = Array.isArray(model.tags) ? model.tags : [];\n if (tags.includes(CMS_MODEL_SINGLETON_TAG)) {\n return false;\n }\n return true;\n });\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 isApplicable: context => context.tenancy.getCurrentTenant().id === tenant.id\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":"AACA,SAASA,sBAAsB,EAAEC,kBAAkB,QAAQ,0BAA0B;AACrF,SAASC,uBAAuB,QAAQ,uCAAuC;AAC/E,SAASC,mBAAmB,QAAQ,gDAAgD;AAEpF,OAAO,MAAMC,oBAAoB,GAAGA,CAAA,KAAM;EACtC,OAAO,IAAID,mBAAmB,CAAyB,MAAME,OAAO,IAAI;IACpE,MAAMC,MAAM,GAAGD,OAAO,CAACE,OAAO,CAACC,gBAAgB,CAAC,CAAC;IAEjD,IAAI,EAAE,MAAMP,kBAAkB,CAACI,OAAO,CAAC,CAAC,EAAE;MACtC;IACJ;IAEA,MAAMI,aAAa,GAAG,IAAIT,sBAAsB,CAAC;MAC7CU,QAAQ,EAAE,aAAc;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACQ,CAAC,CAAC;IACFD,aAAa,CAACE,IAAI,GAAG,gDAAgD;IAErE,MAAMC,MAAM,GAAG,MAAMP,OAAO,CAACQ,QAAQ,CAACC,oBAAoB,CAAC,YAAY;MACnE,MAAMC,SAAS,GAAG,MAAMV,OAAO,CAACW,GAAG,CAACC,UAAU,CAAC,CAAC;MAChD,OAAOF,SAAS,CAACG,MAAM,CAACC,KAAK,IAAI;QAC7B,IAAIA,KAAK,CAACC,SAAS,EAAE;UACjB,OAAO,KAAK;QAChB;QACA,MAAMC,IAAI,GAAGC,KAAK,CAACC,OAAO,CAACJ,KAAK,CAACE,IAAI,CAAC,GAAGF,KAAK,CAACE,IAAI,GAAG,EAAE;QACxD,IAAIA,IAAI,CAACG,QAAQ,CAACtB,uBAAuB,CAAC,EAAE;UACxC,OAAO,KAAK;QAChB;QACA,OAAO,IAAI;MACf,CAAC,CAAC;IACN,CAAC,CAAC;IAEF,MAAMuB,YAA8D,GAAG,EAAE;IAEzEb,MAAM,CAACc,OAAO,CAACP,KAAK,IAAI;MACpB,MAAMQ,MAAM,GAAG,IAAI3B,sBAAsB,CAAC;QACtCU,QAAQ,EAAE,aAAc;AACxC,qCAAqCS,KAAK,CAACS,eAAe;AAC1D;AACA;AACA;AACA;AACA,oCAAoCT,KAAK,CAACS,eAAe;AACzD,gDAAgDT,KAAK,CAACS,eAAe;AACrE,qCAAqCT,KAAK,CAACS,eAAe;AAC1D;AACA;AACA;AACA;AACA,iBAAiB;QACDC,YAAY,EAAExB,OAAO,IAAIA,OAAO,CAACE,OAAO,CAACC,gBAAgB,CAAC,CAAC,CAACsB,EAAE,KAAKxB,MAAM,CAACwB;MAC9E,CAAC,CAAC;MAEFH,MAAM,CAAChB,IAAI,GAAG,kDAAkDQ,KAAK,CAACY,OAAO,EAAE;MAC/EN,YAAY,CAACO,IAAI,CAACL,MAAM,CAAC;IAC7B,CAAC,CAAC;IAEFtB,OAAO,CAAC4B,OAAO,CAACC,QAAQ,CAAC,CAACzB,aAAa,EAAE,GAAGgB,YAAY,CAAC,CAAC;EAC9D,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
|
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.createEventBridgeHandler = void 0;
|
|
7
|
-
var _handlerAws = require("@webiny/handler-aws");
|
|
1
|
+
import { createEventBridgeEventHandler } from "@webiny/handler-aws";
|
|
8
2
|
const DETAIL_TYPE = "WebinyEmptyTrashBin";
|
|
9
|
-
const createEventBridgeHandler = () => {
|
|
10
|
-
const handler =
|
|
3
|
+
export const createEventBridgeHandler = () => {
|
|
4
|
+
const handler = createEventBridgeEventHandler(async ({
|
|
11
5
|
context: ctx,
|
|
12
6
|
payload,
|
|
13
7
|
next
|
|
@@ -48,6 +42,5 @@ const createEventBridgeHandler = () => {
|
|
|
48
42
|
handler.name = handler.type + ".cmsBulkActions";
|
|
49
43
|
return handler;
|
|
50
44
|
};
|
|
51
|
-
exports.createEventBridgeHandler = createEventBridgeHandler;
|
|
52
45
|
|
|
53
46
|
//# sourceMappingURL=eventBridgeEventHandler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["createEventBridgeEventHandler","DETAIL_TYPE","createEventBridgeHandler","handler","context","ctx","payload","next","tasks","tenancy","console","error","withRootTenant","trigger","definition","ex","JSON","stringify","message","code","data","name","type"],"sources":["eventBridgeEventHandler.ts"],"sourcesContent":["import { createEventBridgeEventHandler } from \"@webiny/handler-aws\";\nimport type { HcmsBulkActionsContext } from \"~/types.js\";\n\nconst DETAIL_TYPE = \"WebinyEmptyTrashBin\";\n\nexport const createEventBridgeHandler = () => {\n const handler = createEventBridgeEventHandler<typeof DETAIL_TYPE, Record<string, any>>(\n async ({ context: ctx, payload, next }) => {\n try {\n /**\n * If we receive an event that is not \"WebinyEmptyTrashBin\", we should exit.\n */\n if (payload[\"detail-type\"] !== DETAIL_TYPE) {\n return next();\n }\n\n const context = ctx as unknown as HcmsBulkActionsContext;\n\n if (!context.tasks || !context.tenancy) {\n console.error(\"Missing tasks or tenancy definition on context.\");\n return;\n }\n\n /**\n * Since the event is at the infrastructure level, it has no knowledge about tenancy.\n * We trigger the `hcmsEntriesEmptyTrashBins` using root tenant.\n */\n await context.tenancy.withRootTenant(async () => {\n await context.tasks.trigger({\n definition: \"hcmsEntriesEmptyTrashBins\"\n });\n });\n\n return;\n } catch (ex) {\n console.error(\n \"[EVENT_BRIDGE_HANDLER_EMPTY_TRASH_BIN] => \",\n JSON.stringify({\n message: ex.message,\n code: ex.code,\n data: ex.data\n })\n );\n }\n }\n );\n\n // Assign a human-readable name for easier debugging.\n handler.name = handler.type + \".cmsBulkActions\";\n\n return handler;\n};\n"],"mappings":"AAAA,SAASA,6BAA6B,QAAQ,qBAAqB;AAGnE,MAAMC,WAAW,GAAG,qBAAqB;AAEzC,OAAO,MAAMC,wBAAwB,GAAGA,CAAA,KAAM;EAC1C,MAAMC,OAAO,GAAGH,6BAA6B,CACzC,OAAO;IAAEI,OAAO,EAAEC,GAAG;IAAEC,OAAO;IAAEC;EAAK,CAAC,KAAK;IACvC,IAAI;MACA;AAChB;AACA;MACgB,IAAID,OAAO,CAAC,aAAa,CAAC,KAAKL,WAAW,EAAE;QACxC,OAAOM,IAAI,CAAC,CAAC;MACjB;MAEA,MAAMH,OAAO,GAAGC,GAAwC;MAExD,IAAI,CAACD,OAAO,CAACI,KAAK,IAAI,CAACJ,OAAO,CAACK,OAAO,EAAE;QACpCC,OAAO,CAACC,KAAK,CAAC,iDAAiD,CAAC;QAChE;MACJ;;MAEA;AAChB;AACA;AACA;MACgB,MAAMP,OAAO,CAACK,OAAO,CAACG,cAAc,CAAC,YAAY;QAC7C,MAAMR,OAAO,CAACI,KAAK,CAACK,OAAO,CAAC;UACxBC,UAAU,EAAE;QAChB,CAAC,CAAC;MACN,CAAC,CAAC;MAEF;IACJ,CAAC,CAAC,OAAOC,EAAE,EAAE;MACTL,OAAO,CAACC,KAAK,CACT,4CAA4C,EAC5CK,IAAI,CAACC,SAAS,CAAC;QACXC,OAAO,EAAEH,EAAE,CAACG,OAAO;QACnBC,IAAI,EAAEJ,EAAE,CAACI,IAAI;QACbC,IAAI,EAAEL,EAAE,CAACK;MACb,CAAC,CACL,CAAC;IACL;EACJ,CACJ,CAAC;;EAED;EACAjB,OAAO,CAACkB,IAAI,GAAGlB,OAAO,CAACmB,IAAI,GAAG,iBAAiB;EAE/C,OAAOnB,OAAO;AAClB,CAAC","ignoreList":[]}
|
package/handlers/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const createHandlers: () => (import("@webiny/handler-aws").EventBridgeEventHandler<"WebinyEmptyTrashBin", Record<string, any>, any> | import("@webiny/handler").HandlerOnRequestPlugin<import("@webiny/handler/types").Context>)[];
|
|
1
|
+
export declare const createHandlers: () => (import("@webiny/handler-aws/index.js").EventBridgeEventHandler<"WebinyEmptyTrashBin", Record<string, any>, any> | import("@webiny/handler/index.js").HandlerOnRequestPlugin<import("@webiny/handler/types.js").Context>)[];
|
package/handlers/index.js
CHANGED
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
});
|
|
6
|
-
exports.createHandlers = void 0;
|
|
7
|
-
var _eventBridgeEventHandler = require("./eventBridgeEventHandler");
|
|
8
|
-
var _setupEventsTenant = require("./setupEventsTenant");
|
|
9
|
-
const createHandlers = () => {
|
|
10
|
-
return [(0, _setupEventsTenant.setupEventsTenant)(), (0, _eventBridgeEventHandler.createEventBridgeHandler)()];
|
|
1
|
+
import { createEventBridgeHandler } from "./eventBridgeEventHandler.js";
|
|
2
|
+
import { setupEventsTenant } from "./setupEventsTenant.js";
|
|
3
|
+
export const createHandlers = () => {
|
|
4
|
+
return [setupEventsTenant(), createEventBridgeHandler()];
|
|
11
5
|
};
|
|
12
|
-
exports.createHandlers = createHandlers;
|
|
13
6
|
|
|
14
7
|
//# sourceMappingURL=index.js.map
|
package/handlers/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["createEventBridgeHandler","setupEventsTenant","createHandlers"],"sources":["index.ts"],"sourcesContent":["import { createEventBridgeHandler } from \"./eventBridgeEventHandler.js\";\nimport { setupEventsTenant } from \"./setupEventsTenant.js\";\n\nexport const createHandlers = () => {\n return [setupEventsTenant(), createEventBridgeHandler()];\n};\n"],"mappings":"AAAA,SAASA,wBAAwB;AACjC,SAASC,iBAAiB;AAE1B,OAAO,MAAMC,cAAc,GAAGA,CAAA,KAAM;EAChC,OAAO,CAACD,iBAAiB,CAAC,CAAC,EAAED,wBAAwB,CAAC,CAAC,CAAC;AAC5D,CAAC","ignoreList":[]}
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.setupEventsTenant = void 0;
|
|
7
|
-
var _handler = require("@webiny/handler");
|
|
8
|
-
const setupEventsTenant = () => {
|
|
9
|
-
return (0, _handler.createHandlerOnRequest)(async request => {
|
|
1
|
+
import { createHandlerOnRequest } from "@webiny/handler";
|
|
2
|
+
export const setupEventsTenant = () => {
|
|
3
|
+
return createHandlerOnRequest(async request => {
|
|
10
4
|
request.headers = {
|
|
11
5
|
...request.headers,
|
|
12
6
|
"x-tenant": request.headers["x-tenant"] || "root"
|
|
@@ -14,6 +8,5 @@ const setupEventsTenant = () => {
|
|
|
14
8
|
return;
|
|
15
9
|
});
|
|
16
10
|
};
|
|
17
|
-
exports.setupEventsTenant = setupEventsTenant;
|
|
18
11
|
|
|
19
12
|
//# sourceMappingURL=setupEventsTenant.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["createHandlerOnRequest","setupEventsTenant","request","headers"],"sources":["setupEventsTenant.ts"],"sourcesContent":["import { createHandlerOnRequest } from \"@webiny/handler\";\n\nexport const setupEventsTenant = () => {\n return createHandlerOnRequest(async request => {\n request.headers = {\n ...request.headers,\n \"x-tenant\": request.headers[\"x-tenant\"] || \"root\"\n };\n\n return;\n });\n};\n"],"mappings":"AAAA,SAASA,sBAAsB,QAAQ,iBAAiB;AAExD,OAAO,MAAMC,iBAAiB,GAAGA,CAAA,KAAM;EACnC,OAAOD,sBAAsB,CAAC,MAAME,OAAO,IAAI;IAC3CA,OAAO,CAACC,OAAO,GAAG;MACd,GAAGD,OAAO,CAACC,OAAO;MAClB,UAAU,EAAED,OAAO,CAACC,OAAO,CAAC,UAAU,CAAC,IAAI;IAC/C,CAAC;IAED;EACJ,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
|
package/index.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
export * from "./
|
|
3
|
-
export * from "./
|
|
4
|
-
export * from "./
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import type { HcmsBulkActionsContext } from "./types.js";
|
|
2
|
+
export type * from "./abstractions/index.js";
|
|
3
|
+
export * from "./handlers/index.js";
|
|
4
|
+
export * from "./tasks/index.js";
|
|
5
|
+
interface BulkActionsConfig {
|
|
6
|
+
batchSize?: number;
|
|
7
|
+
}
|
|
8
|
+
export declare const createHcmsBulkActions: (config?: BulkActionsConfig) => ((import("@webiny/handler-aws/index.js").EventBridgeEventHandler<"WebinyEmptyTrashBin", Record<string, any>, any> | import("@webiny/handler/index.js").HandlerOnRequestPlugin<import("@webiny/handler/types.js").Context>)[] | import("@webiny/handler/plugins/BeforeHandlerPlugin.js").BeforeHandlerPlugin<HcmsBulkActionsContext> | import("@webiny/api").ContextPlugin<import("@webiny/api/types.js").Context>)[];
|
package/index.js
CHANGED
|
@@ -1,73 +1,50 @@
|
|
|
1
|
-
|
|
1
|
+
import { createHandlers } from "./handlers/index.js";
|
|
2
|
+
import { createBeforeHandlerPlugin } from "@webiny/handler/plugins/BeforeHandlerPlugin.js";
|
|
3
|
+
import { EntriesBulkAction, EntriesBulkActionConfig } from "./features/EntriesBulkAction/abstractions.js";
|
|
4
|
+
import { BulkActionContext } from "./features/BulkActionContext/index.js";
|
|
5
|
+
import { createBulkActionTasks } from "./features/EntriesBulkAction/createBulkActionTasks.js";
|
|
6
|
+
import { createDefaultGraphQL } from "./graphql/createDefaultGraphQL.js";
|
|
7
|
+
import { createBulkActionGraphQL } from "./graphql/createBulkActionGraphQL.js";
|
|
8
|
+
import { createContextPlugin } from "@webiny/api";
|
|
9
|
+
import { DeleteEntriesBulkActionFeature } from "./features/DeleteEntriesBulkAction/feature.js";
|
|
10
|
+
import { MoveToFolderBulkActionFeature } from "./features/MoveToFolderBulkAction/feature.js";
|
|
11
|
+
import { MoveToTrashBulkActionFeature } from "./features/MoveToTrashBulkAction/feature.js";
|
|
12
|
+
import { PublishEntriesBulkActionFeature } from "./features/PublishEntriesBulkAction/feature.js";
|
|
13
|
+
import { UnpublishEntriesBulkActionFeature } from "./features/UnpublishEntriesBulkAction/feature.js";
|
|
14
|
+
import { RestoreEntriesBulkActionFeature } from "./features/RestoreEntriesBulkAction/feature.js";
|
|
15
|
+
export * from "./handlers/index.js";
|
|
16
|
+
export * from "./tasks/index.js";
|
|
17
|
+
export const createHcmsBulkActions = config => {
|
|
18
|
+
const batchSize = config?.batchSize ?? 100;
|
|
19
|
+
return [createHandlers(), createDefaultGraphQL(),
|
|
20
|
+
// Register bulk action features
|
|
21
|
+
createContextPlugin(context => {
|
|
22
|
+
// Bulk action config is shared among all bulk actions.
|
|
23
|
+
context.container.registerInstance(EntriesBulkActionConfig, {
|
|
24
|
+
batchSize
|
|
25
|
+
});
|
|
26
|
+
DeleteEntriesBulkActionFeature.register(context.container);
|
|
27
|
+
MoveToFolderBulkActionFeature.register(context.container);
|
|
28
|
+
MoveToTrashBulkActionFeature.register(context.container);
|
|
29
|
+
PublishEntriesBulkActionFeature.register(context.container);
|
|
30
|
+
UnpublishEntriesBulkActionFeature.register(context.container);
|
|
31
|
+
RestoreEntriesBulkActionFeature.register(context.container);
|
|
32
|
+
}),
|
|
33
|
+
// Set up bulk actions after the context is bootstrapped, but before actual handler processing
|
|
34
|
+
createBeforeHandlerPlugin(async context => {
|
|
35
|
+
context.container.registerInstance(BulkActionContext, context);
|
|
36
|
+
const bulkActions = context.container.resolveAll(EntriesBulkAction);
|
|
37
|
+
const bulkActionsConfig = context.container.resolve(EntriesBulkActionConfig);
|
|
2
38
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var _handlers = require("./handlers");
|
|
11
|
-
Object.keys(_handlers).forEach(function (key) {
|
|
12
|
-
if (key === "default" || key === "__esModule") return;
|
|
13
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
14
|
-
if (key in exports && exports[key] === _handlers[key]) return;
|
|
15
|
-
Object.defineProperty(exports, key, {
|
|
16
|
-
enumerable: true,
|
|
17
|
-
get: function () {
|
|
18
|
-
return _handlers[key];
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
});
|
|
22
|
-
var _plugins = require("./plugins");
|
|
23
|
-
Object.keys(_plugins).forEach(function (key) {
|
|
24
|
-
if (key === "default" || key === "__esModule") return;
|
|
25
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
26
|
-
if (key in exports && exports[key] === _plugins[key]) return;
|
|
27
|
-
Object.defineProperty(exports, key, {
|
|
28
|
-
enumerable: true,
|
|
29
|
-
get: function () {
|
|
30
|
-
return _plugins[key];
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
var _abstractions = require("./abstractions");
|
|
35
|
-
Object.keys(_abstractions).forEach(function (key) {
|
|
36
|
-
if (key === "default" || key === "__esModule") return;
|
|
37
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
38
|
-
if (key in exports && exports[key] === _abstractions[key]) return;
|
|
39
|
-
Object.defineProperty(exports, key, {
|
|
40
|
-
enumerable: true,
|
|
41
|
-
get: function () {
|
|
42
|
-
return _abstractions[key];
|
|
39
|
+
// 2. For each EntriesBulkAction, create and register tasks + GraphQL schema
|
|
40
|
+
for (const bulkAction of bulkActions) {
|
|
41
|
+
// Register tasks implementation
|
|
42
|
+
const feature = createBulkActionTasks(bulkAction, bulkActionsConfig);
|
|
43
|
+
feature.register(context.container);
|
|
44
|
+
// Register GraphQL schema
|
|
45
|
+
await createBulkActionGraphQL(context, bulkAction);
|
|
43
46
|
}
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
var _useCases = require("./useCases");
|
|
47
|
-
Object.keys(_useCases).forEach(function (key) {
|
|
48
|
-
if (key === "default" || key === "__esModule") return;
|
|
49
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
50
|
-
if (key in exports && exports[key] === _useCases[key]) return;
|
|
51
|
-
Object.defineProperty(exports, key, {
|
|
52
|
-
enumerable: true,
|
|
53
|
-
get: function () {
|
|
54
|
-
return _useCases[key];
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
});
|
|
58
|
-
var _tasks = require("./tasks");
|
|
59
|
-
Object.keys(_tasks).forEach(function (key) {
|
|
60
|
-
if (key === "default" || key === "__esModule") return;
|
|
61
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
62
|
-
if (key in exports && exports[key] === _tasks[key]) return;
|
|
63
|
-
Object.defineProperty(exports, key, {
|
|
64
|
-
enumerable: true,
|
|
65
|
-
get: function () {
|
|
66
|
-
return _tasks[key];
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
});
|
|
70
|
-
const createHcmsBulkActions = () => [(0, _handlers.createHandlers)(), (0, _plugins.createDefaultGraphQL)()];
|
|
71
|
-
exports.createHcmsBulkActions = createHcmsBulkActions;
|
|
47
|
+
})];
|
|
48
|
+
};
|
|
72
49
|
|
|
73
50
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["createHandlers","createBeforeHandlerPlugin","EntriesBulkAction","EntriesBulkActionConfig","BulkActionContext","createBulkActionTasks","createDefaultGraphQL","createBulkActionGraphQL","createContextPlugin","DeleteEntriesBulkActionFeature","MoveToFolderBulkActionFeature","MoveToTrashBulkActionFeature","PublishEntriesBulkActionFeature","UnpublishEntriesBulkActionFeature","RestoreEntriesBulkActionFeature","createHcmsBulkActions","config","batchSize","context","container","registerInstance","register","bulkActions","resolveAll","bulkActionsConfig","resolve","bulkAction","feature"],"sources":["index.ts"],"sourcesContent":["import { createHandlers } from \"~/handlers/index.js\";\nimport { createBeforeHandlerPlugin } from \"@webiny/handler/plugins/BeforeHandlerPlugin.js\";\nimport {\n EntriesBulkAction,\n EntriesBulkActionConfig\n} from \"~/features/EntriesBulkAction/abstractions.js\";\nimport { BulkActionContext } from \"~/features/BulkActionContext/index.js\";\nimport { createBulkActionTasks } from \"~/features/EntriesBulkAction/createBulkActionTasks.js\";\nimport { createDefaultGraphQL } from \"~/graphql/createDefaultGraphQL.js\";\nimport { createBulkActionGraphQL } from \"~/graphql/createBulkActionGraphQL.js\";\nimport { createContextPlugin } from \"@webiny/api\";\nimport { DeleteEntriesBulkActionFeature } from \"~/features/DeleteEntriesBulkAction/feature.js\";\nimport { MoveToFolderBulkActionFeature } from \"~/features/MoveToFolderBulkAction/feature.js\";\nimport { MoveToTrashBulkActionFeature } from \"~/features/MoveToTrashBulkAction/feature.js\";\nimport { PublishEntriesBulkActionFeature } from \"~/features/PublishEntriesBulkAction/feature.js\";\nimport { UnpublishEntriesBulkActionFeature } from \"~/features/UnpublishEntriesBulkAction/feature.js\";\nimport { RestoreEntriesBulkActionFeature } from \"~/features/RestoreEntriesBulkAction/feature.js\";\nimport type { HcmsBulkActionsContext } from \"~/types.js\";\n\nexport type * from \"./abstractions/index.js\";\nexport * from \"./handlers/index.js\";\nexport * from \"./tasks/index.js\";\n\ninterface BulkActionsConfig {\n batchSize?: number;\n}\n\nexport const createHcmsBulkActions = (config?: BulkActionsConfig) => {\n const batchSize = config?.batchSize ?? 100;\n\n return [\n createHandlers(),\n createDefaultGraphQL(),\n // Register bulk action features\n createContextPlugin(context => {\n // Bulk action config is shared among all bulk actions.\n context.container.registerInstance(EntriesBulkActionConfig, { batchSize });\n\n DeleteEntriesBulkActionFeature.register(context.container);\n MoveToFolderBulkActionFeature.register(context.container);\n MoveToTrashBulkActionFeature.register(context.container);\n PublishEntriesBulkActionFeature.register(context.container);\n UnpublishEntriesBulkActionFeature.register(context.container);\n RestoreEntriesBulkActionFeature.register(context.container);\n }),\n // Set up bulk actions after the context is bootstrapped, but before actual handler processing\n createBeforeHandlerPlugin<HcmsBulkActionsContext>(async context => {\n context.container.registerInstance(BulkActionContext, context);\n\n const bulkActions = context.container.resolveAll(EntriesBulkAction);\n const bulkActionsConfig = context.container.resolve(EntriesBulkActionConfig);\n\n // 2. For each EntriesBulkAction, create and register tasks + GraphQL schema\n for (const bulkAction of bulkActions) {\n // Register tasks implementation\n const feature = createBulkActionTasks(bulkAction, bulkActionsConfig);\n feature.register(context.container);\n // Register GraphQL schema\n await createBulkActionGraphQL(context, bulkAction);\n }\n })\n ];\n};\n"],"mappings":"AAAA,SAASA,cAAc;AACvB,SAASC,yBAAyB,QAAQ,gDAAgD;AAC1F,SACIC,iBAAiB,EACjBC,uBAAuB;AAE3B,SAASC,iBAAiB;AAC1B,SAASC,qBAAqB;AAC9B,SAASC,oBAAoB;AAC7B,SAASC,uBAAuB;AAChC,SAASC,mBAAmB,QAAQ,aAAa;AACjD,SAASC,8BAA8B;AACvC,SAASC,6BAA6B;AACtC,SAASC,4BAA4B;AACrC,SAASC,+BAA+B;AACxC,SAASC,iCAAiC;AAC1C,SAASC,+BAA+B;AAIxC;AACA;AAMA,OAAO,MAAMC,qBAAqB,GAAIC,MAA0B,IAAK;EACjE,MAAMC,SAAS,GAAGD,MAAM,EAAEC,SAAS,IAAI,GAAG;EAE1C,OAAO,CACHjB,cAAc,CAAC,CAAC,EAChBM,oBAAoB,CAAC,CAAC;EACtB;EACAE,mBAAmB,CAACU,OAAO,IAAI;IAC3B;IACAA,OAAO,CAACC,SAAS,CAACC,gBAAgB,CAACjB,uBAAuB,EAAE;MAAEc;IAAU,CAAC,CAAC;IAE1ER,8BAA8B,CAACY,QAAQ,CAACH,OAAO,CAACC,SAAS,CAAC;IAC1DT,6BAA6B,CAACW,QAAQ,CAACH,OAAO,CAACC,SAAS,CAAC;IACzDR,4BAA4B,CAACU,QAAQ,CAACH,OAAO,CAACC,SAAS,CAAC;IACxDP,+BAA+B,CAACS,QAAQ,CAACH,OAAO,CAACC,SAAS,CAAC;IAC3DN,iCAAiC,CAACQ,QAAQ,CAACH,OAAO,CAACC,SAAS,CAAC;IAC7DL,+BAA+B,CAACO,QAAQ,CAACH,OAAO,CAACC,SAAS,CAAC;EAC/D,CAAC,CAAC;EACF;EACAlB,yBAAyB,CAAyB,MAAMiB,OAAO,IAAI;IAC/DA,OAAO,CAACC,SAAS,CAACC,gBAAgB,CAAChB,iBAAiB,EAAEc,OAAO,CAAC;IAE9D,MAAMI,WAAW,GAAGJ,OAAO,CAACC,SAAS,CAACI,UAAU,CAACrB,iBAAiB,CAAC;IACnE,MAAMsB,iBAAiB,GAAGN,OAAO,CAACC,SAAS,CAACM,OAAO,CAACtB,uBAAuB,CAAC;;IAE5E;IACA,KAAK,MAAMuB,UAAU,IAAIJ,WAAW,EAAE;MAClC;MACA,MAAMK,OAAO,GAAGtB,qBAAqB,CAACqB,UAAU,EAAEF,iBAAiB,CAAC;MACpEG,OAAO,CAACN,QAAQ,CAACH,OAAO,CAACC,SAAS,CAAC;MACnC;MACA,MAAMZ,uBAAuB,CAACW,OAAO,EAAEQ,UAAU,CAAC;IACtD;EACJ,CAAC,CAAC,CACL;AACL,CAAC","ignoreList":[]}
|