@webiny/api-headless-cms-bulk-actions 6.3.0 → 6.4.0-beta.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 (71) hide show
  1. package/abstractions/IUseCase.js +0 -3
  2. package/abstractions/index.js +0 -3
  3. package/domain/BulkActionName.js +9 -15
  4. package/domain/BulkActionName.js.map +1 -1
  5. package/features/BulkActionContext/abstractions.js +2 -3
  6. package/features/BulkActionContext/abstractions.js.map +1 -1
  7. package/features/BulkActionContext/index.js +0 -2
  8. package/features/DeleteEntriesBulkAction/DeleteEntriesBulkAction.js +22 -20
  9. package/features/DeleteEntriesBulkAction/DeleteEntriesBulkAction.js.map +1 -1
  10. package/features/DeleteEntriesBulkAction/feature.js +6 -5
  11. package/features/DeleteEntriesBulkAction/feature.js.map +1 -1
  12. package/features/EntriesBulkAction/abstractions.js +3 -2
  13. package/features/EntriesBulkAction/abstractions.js.map +1 -1
  14. package/features/EntriesBulkAction/createBulkActionTasks.js +114 -131
  15. package/features/EntriesBulkAction/createBulkActionTasks.js.map +1 -1
  16. package/features/EntriesBulkAction/internals/ChildTasksCleanup.js +27 -64
  17. package/features/EntriesBulkAction/internals/ChildTasksCleanup.js.map +1 -1
  18. package/features/EntriesBulkAction/internals/CreateTasksByModel.js +68 -99
  19. package/features/EntriesBulkAction/internals/CreateTasksByModel.js.map +1 -1
  20. package/features/EntriesBulkAction/internals/ProcessTask.js +35 -68
  21. package/features/EntriesBulkAction/internals/ProcessTask.js.map +1 -1
  22. package/features/EntriesBulkAction/internals/ProcessTaskResult.js +20 -19
  23. package/features/EntriesBulkAction/internals/ProcessTaskResult.js.map +1 -1
  24. package/features/EntriesBulkAction/internals/ProcessTasksByModel.js +37 -50
  25. package/features/EntriesBulkAction/internals/ProcessTasksByModel.js.map +1 -1
  26. package/features/EntriesBulkAction/internals/TaskCache.js +30 -64
  27. package/features/EntriesBulkAction/internals/TaskCache.js.map +1 -1
  28. package/features/MoveToFolderBulkAction/MoveToFolderBulkAction.js +20 -20
  29. package/features/MoveToFolderBulkAction/MoveToFolderBulkAction.js.map +1 -1
  30. package/features/MoveToFolderBulkAction/feature.js +6 -5
  31. package/features/MoveToFolderBulkAction/feature.js.map +1 -1
  32. package/features/MoveToTrashBulkAction/MoveToTrashBulkAction.js +22 -20
  33. package/features/MoveToTrashBulkAction/MoveToTrashBulkAction.js.map +1 -1
  34. package/features/MoveToTrashBulkAction/feature.js +6 -5
  35. package/features/MoveToTrashBulkAction/feature.js.map +1 -1
  36. package/features/PublishEntriesBulkAction/PublishEntriesBulkAction.js +27 -28
  37. package/features/PublishEntriesBulkAction/PublishEntriesBulkAction.js.map +1 -1
  38. package/features/PublishEntriesBulkAction/feature.js +6 -5
  39. package/features/PublishEntriesBulkAction/feature.js.map +1 -1
  40. package/features/RestoreEntriesBulkAction/RestoreEntriesBulkAction.js +20 -18
  41. package/features/RestoreEntriesBulkAction/RestoreEntriesBulkAction.js.map +1 -1
  42. package/features/RestoreEntriesBulkAction/feature.js +6 -5
  43. package/features/RestoreEntriesBulkAction/feature.js.map +1 -1
  44. package/features/UnpublishEntriesBulkAction/UnpublishEntriesBulkAction.js +20 -18
  45. package/features/UnpublishEntriesBulkAction/UnpublishEntriesBulkAction.js.map +1 -1
  46. package/features/UnpublishEntriesBulkAction/feature.js +6 -5
  47. package/features/UnpublishEntriesBulkAction/feature.js.map +1 -1
  48. package/graphql/createBulkActionGraphQL.js +44 -51
  49. package/graphql/createBulkActionGraphQL.js.map +1 -1
  50. package/graphql/createDefaultGraphQL.js +30 -34
  51. package/graphql/createDefaultGraphQL.js.map +1 -1
  52. package/handlers/eventBridgeEventHandler.js +23 -41
  53. package/handlers/eventBridgeEventHandler.js.map +1 -1
  54. package/handlers/index.js +5 -3
  55. package/handlers/index.js.map +1 -1
  56. package/handlers/setupEventsTenant.js +7 -9
  57. package/handlers/setupEventsTenant.js.map +1 -1
  58. package/index.js +29 -33
  59. package/index.js.map +1 -1
  60. package/package.json +17 -17
  61. package/tasks/EmptyTrashBinTaskDefinition.js +83 -109
  62. package/tasks/EmptyTrashBinTaskDefinition.js.map +1 -1
  63. package/tasks/createEmptyTrashBinsTask.js +4 -5
  64. package/tasks/createEmptyTrashBinsTask.js.map +1 -1
  65. package/tasks/index.js +0 -2
  66. package/types.js +7 -18
  67. package/types.js.map +1 -1
  68. package/abstractions/IUseCase.js.map +0 -1
  69. package/abstractions/index.js.map +0 -1
  70. package/features/BulkActionContext/index.js.map +0 -1
  71. package/tasks/index.js.map +0 -1
@@ -2,63 +2,56 @@ import { CmsGraphQLSchemaPlugin, isHeadlessCmsReady } from "@webiny/api-headless
2
2
  import { Response } from "@webiny/handler-graphql";
3
3
  import { CMS_MODEL_SINGLETON_TAG } from "@webiny/api-headless-cms/constants.js";
4
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;
5
+ const createBulkActionGraphQL = async (context, bulkAction)=>{
6
+ const tenant = context.tenancy.getCurrentTenant();
7
+ if (!await isHeadlessCmsReady(context)) return;
8
+ const models = await context.security.withoutAuthorization(async ()=>{
9
+ const allModels = await context.cms.listModels();
10
+ return allModels.filter((model)=>{
11
+ if (model.isPrivate) return false;
12
+ const tags = Array.isArray(model.tags) ? model.tags : [];
13
+ if (tags.includes(CMS_MODEL_SINGLETON_TAG)) return false;
14
+ if (bulkAction.modelIds?.length) return bulkAction.modelIds.includes(model.modelId);
15
+ return true;
16
+ });
26
17
  });
27
- });
28
- const plugins = [];
29
- models.forEach(model => {
30
- const plugin = new CmsGraphQLSchemaPlugin({
31
- typeDefs: /* GraphQL */`
18
+ const plugins = [];
19
+ models.forEach((model)=>{
20
+ const plugin = new CmsGraphQLSchemaPlugin({
21
+ typeDefs: `
32
22
  extend enum BulkAction${model.singularApiName}Name {
33
23
  ${BulkActionName.from(bulkAction.name)}
34
24
  }
35
25
  `,
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
26
+ resolvers: {
27
+ Mutation: {
28
+ [`bulkAction${model.singularApiName}`]: async (_, args, context)=>{
29
+ const identity = context.security.getIdentity();
30
+ const response = await context.tasks.trigger({
31
+ definition: `hcmsBulkList${args.action}Entries`,
32
+ input: {
33
+ modelId: model.modelId,
34
+ where: args.where,
35
+ search: args.search,
36
+ data: args.data,
37
+ identity
38
+ }
39
+ });
40
+ return new Response({
41
+ id: response.value.id
42
+ });
43
+ }
44
+ }
45
+ },
46
+ isApplicable: (context)=>context.tenancy.getCurrentTenant().id === tenant.id
47
+ });
48
+ plugin.name = `headless-cms.graphql.schema.bulkAction.${model.modelId}.${bulkAction.name}`;
49
+ plugins.push(plugin);
57
50
  });
58
- plugin.name = `headless-cms.graphql.schema.bulkAction.${model.modelId}.${bulkAction.name}`;
59
- plugins.push(plugin);
60
- });
61
- context.plugins.register([...plugins]);
51
+ context.plugins.register([
52
+ ...plugins
53
+ ]);
62
54
  };
55
+ export { createBulkActionGraphQL };
63
56
 
64
57
  //# sourceMappingURL=createBulkActionGraphQL.js.map
@@ -1 +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
+ {"version":3,"file":"graphql/createBulkActionGraphQL.js","sources":["../../src/graphql/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"],"names":["createBulkActionGraphQL","context","bulkAction","tenant","isHeadlessCmsReady","models","allModels","model","tags","Array","CMS_MODEL_SINGLETON_TAG","plugins","plugin","CmsGraphQLSchemaPlugin","BulkActionName","_","args","identity","response","Response"],"mappings":";;;;AAOO,MAAMA,0BAA0B,OACnCC,SACAC;IAEA,MAAMC,SAASF,QAAQ,OAAO,CAAC,gBAAgB;IAG/C,IAAI,CAAE,MAAMG,mBAAmBH,UAC3B;IAGJ,MAAMI,SAAS,MAAMJ,QAAQ,QAAQ,CAAC,oBAAoB,CAAC;QACvD,MAAMK,YAAY,MAAML,QAAQ,GAAG,CAAC,UAAU;QAC9C,OAAOK,UAAU,MAAM,CAACC,CAAAA;YACpB,IAAIA,MAAM,SAAS,EACf,OAAO;YAEX,MAAMC,OAAOC,MAAM,OAAO,CAACF,MAAM,IAAI,IAAIA,MAAM,IAAI,GAAG,EAAE;YACxD,IAAIC,KAAK,QAAQ,CAACE,0BACd,OAAO;YAEX,IAAIR,WAAW,QAAQ,EAAE,QACrB,OAAOA,WAAW,QAAQ,CAAC,QAAQ,CAACK,MAAM,OAAO;YAErD,OAAO;QACX;IACJ;IAEA,MAAMI,UAA4D,EAAE;IAEpEN,OAAO,OAAO,CAACE,CAAAA;QACX,MAAMK,SAAS,IAAIC,uBAA+C;YAC9D,UAAwB,CAAC;2CACM,EAAEN,MAAM,eAAe,CAAC;wBAC3C,EAAEO,eAAe,IAAI,CAACZ,WAAW,IAAI,EAAE;;gBAE/C,CAAC;YACL,WAAW;gBACP,UAAU;oBACN,CAAC,CAAC,UAAU,EAAEK,MAAM,eAAe,EAAE,CAAC,EAAE,OAAOQ,GAAGC,MAAMf;wBACpD,MAAMgB,WAAWhB,QAAQ,QAAQ,CAAC,WAAW;wBAE7C,MAAMiB,WAAW,MAAMjB,QAAQ,KAAK,CAAC,OAAO,CAAC;4BACzC,YAAY,CAAC,YAAY,EAAEe,KAAK,MAAM,CAAC,OAAO,CAAC;4BAC/C,OAAO;gCACH,SAAST,MAAM,OAAO;gCACtB,OAAOS,KAAK,KAAK;gCACjB,QAAQA,KAAK,MAAM;gCACnB,MAAMA,KAAK,IAAI;gCACfC;4BACJ;wBACJ;wBAEA,OAAO,IAAIE,SAAS;4BAChB,IAAID,SAAS,KAAK,CAAC,EAAE;wBACzB;oBACJ;gBACJ;YACJ;YACA,cAAcjB,CAAAA,UAAWA,QAAQ,OAAO,CAAC,gBAAgB,GAAG,EAAE,KAAKE,OAAO,EAAE;QAChF;QAEAS,OAAO,IAAI,GAAG,CAAC,uCAAuC,EAAEL,MAAM,OAAO,CAAC,CAAC,EAAEL,WAAW,IAAI,EAAE;QAC1FS,QAAQ,IAAI,CAACC;IACjB;IAEAX,QAAQ,OAAO,CAAC,QAAQ,CAAC;WAAIU;KAAQ;AACzC"}
@@ -1,14 +1,11 @@
1
1
  import { CmsGraphQLSchemaPlugin, isHeadlessCmsReady } from "@webiny/api-headless-cms";
2
2
  import { CMS_MODEL_SINGLETON_TAG } from "@webiny/api-headless-cms/constants.js";
3
3
  import { BeforeHandlerPlugin } from "@webiny/handler/plugins/BeforeHandlerPlugin.js";
4
- export const createDefaultGraphQL = () => {
5
- return new BeforeHandlerPlugin(async context => {
6
- const tenant = context.tenancy.getCurrentTenant();
7
- if (!(await isHeadlessCmsReady(context))) {
8
- return;
9
- }
10
- const defaultPlugin = new CmsGraphQLSchemaPlugin({
11
- typeDefs: /* GraphQL */`
4
+ const createDefaultGraphQL = ()=>new BeforeHandlerPlugin(async (context)=>{
5
+ const tenant = context.tenancy.getCurrentTenant();
6
+ if (!await isHeadlessCmsReady(context)) return;
7
+ const defaultPlugin = new CmsGraphQLSchemaPlugin({
8
+ typeDefs: `
12
9
  type BulkActionResponseData {
13
10
  id: String
14
11
  }
@@ -18,25 +15,21 @@ export const createDefaultGraphQL = () => {
18
15
  error: CmsError
19
16
  }
20
17
  `
21
- });
22
- defaultPlugin.name = `headless-cms.graphql.schema.bulkAction.default`;
23
- const models = await context.security.withoutAuthorization(async () => {
24
- const allModels = await context.cms.listModels();
25
- return allModels.filter(model => {
26
- if (model.isPrivate) {
27
- return false;
28
- }
29
- const tags = Array.isArray(model.tags) ? model.tags : [];
30
- if (tags.includes(CMS_MODEL_SINGLETON_TAG)) {
31
- return false;
32
- }
33
- return true;
34
- });
35
- });
36
- const modelPlugins = [];
37
- models.forEach(model => {
38
- const plugin = new CmsGraphQLSchemaPlugin({
39
- typeDefs: /* GraphQL */`
18
+ });
19
+ defaultPlugin.name = "headless-cms.graphql.schema.bulkAction.default";
20
+ const models = await context.security.withoutAuthorization(async ()=>{
21
+ const allModels = await context.cms.listModels();
22
+ return allModels.filter((model)=>{
23
+ if (model.isPrivate) return false;
24
+ const tags = Array.isArray(model.tags) ? model.tags : [];
25
+ if (tags.includes(CMS_MODEL_SINGLETON_TAG)) return false;
26
+ return true;
27
+ });
28
+ });
29
+ const modelPlugins = [];
30
+ models.forEach((model)=>{
31
+ const plugin = new CmsGraphQLSchemaPlugin({
32
+ typeDefs: `
40
33
  enum BulkAction${model.singularApiName}Name {
41
34
  _empty
42
35
  }
@@ -50,13 +43,16 @@ export const createDefaultGraphQL = () => {
50
43
  ): BulkActionResponse
51
44
  }
52
45
  `,
53
- isApplicable: context => context.tenancy.getCurrentTenant().id === tenant.id
54
- });
55
- plugin.name = `headless-cms.graphql.schema.bulkAction.default.${model.modelId}`;
56
- modelPlugins.push(plugin);
46
+ isApplicable: (context)=>context.tenancy.getCurrentTenant().id === tenant.id
47
+ });
48
+ plugin.name = `headless-cms.graphql.schema.bulkAction.default.${model.modelId}`;
49
+ modelPlugins.push(plugin);
50
+ });
51
+ context.plugins.register([
52
+ defaultPlugin,
53
+ ...modelPlugins
54
+ ]);
57
55
  });
58
- context.plugins.register([defaultPlugin, ...modelPlugins]);
59
- });
60
- };
56
+ export { createDefaultGraphQL };
61
57
 
62
58
  //# sourceMappingURL=createDefaultGraphQL.js.map
@@ -1 +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
+ {"version":3,"file":"graphql/createDefaultGraphQL.js","sources":["../../src/graphql/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"],"names":["createDefaultGraphQL","BeforeHandlerPlugin","context","tenant","isHeadlessCmsReady","defaultPlugin","CmsGraphQLSchemaPlugin","models","allModels","model","tags","Array","CMS_MODEL_SINGLETON_TAG","modelPlugins","plugin"],"mappings":";;;AAKO,MAAMA,uBAAuB,IACzB,IAAIC,oBAA4C,OAAMC;QACzD,MAAMC,SAASD,QAAQ,OAAO,CAAC,gBAAgB;QAE/C,IAAI,CAAE,MAAME,mBAAmBF,UAC3B;QAGJ,MAAMG,gBAAgB,IAAIC,uBAAuB;YAC7C,UAAwB,CAAC;;;;;;;;;YASzB,CAAC;QACL;QACAD,cAAc,IAAI,GAAG;QAErB,MAAME,SAAS,MAAML,QAAQ,QAAQ,CAAC,oBAAoB,CAAC;YACvD,MAAMM,YAAY,MAAMN,QAAQ,GAAG,CAAC,UAAU;YAC9C,OAAOM,UAAU,MAAM,CAACC,CAAAA;gBACpB,IAAIA,MAAM,SAAS,EACf,OAAO;gBAEX,MAAMC,OAAOC,MAAM,OAAO,CAACF,MAAM,IAAI,IAAIA,MAAM,IAAI,GAAG,EAAE;gBACxD,IAAIC,KAAK,QAAQ,CAACE,0BACd,OAAO;gBAEX,OAAO;YACX;QACJ;QAEA,MAAMC,eAAiE,EAAE;QAEzEN,OAAO,OAAO,CAACE,CAAAA;YACX,MAAMK,SAAS,IAAIR,uBAAuB;gBACtC,UAAwB,CAAC;mCACN,EAAEG,MAAM,eAAe,CAAC;;;;;kCAKzB,EAAEA,MAAM,eAAe,CAAC;8CACZ,EAAEA,MAAM,eAAe,CAAC;mCACnC,EAAEA,MAAM,eAAe,CAAC;;;;;gBAK3C,CAAC;gBACD,cAAcP,CAAAA,UAAWA,QAAQ,OAAO,CAAC,gBAAgB,GAAG,EAAE,KAAKC,OAAO,EAAE;YAChF;YAEAW,OAAO,IAAI,GAAG,CAAC,+CAA+C,EAAEL,MAAM,OAAO,EAAE;YAC/EI,aAAa,IAAI,CAACC;QACtB;QAEAZ,QAAQ,OAAO,CAAC,QAAQ,CAAC;YAACG;eAAkBQ;SAAa;IAC7D"}
@@ -1,46 +1,28 @@
1
1
  import { createEventBridgeEventHandler } from "@webiny/handler-aws";
2
2
  const DETAIL_TYPE = "WebinyEmptyTrashBin";
3
- export const createEventBridgeHandler = () => {
4
- const handler = createEventBridgeEventHandler(async ({
5
- context: ctx,
6
- payload,
7
- next
8
- }) => {
9
- try {
10
- /**
11
- * If we receive an event that is not "WebinyEmptyTrashBin", we should exit.
12
- */
13
- if (payload["detail-type"] !== DETAIL_TYPE) {
14
- return next();
15
- }
16
- const context = ctx;
17
- if (!context.tasks || !context.tenancy) {
18
- console.error("Missing tasks or tenancy definition on context.");
19
- return;
20
- }
21
-
22
- /**
23
- * Since the event is at the infrastructure level, it has no knowledge about tenancy.
24
- * We trigger the `hcmsEntriesEmptyTrashBins` using root tenant.
25
- */
26
- await context.tenancy.withRootTenant(async () => {
27
- await context.tasks.trigger({
28
- definition: "hcmsEntriesEmptyTrashBins"
29
- });
30
- });
31
- return;
32
- } catch (ex) {
33
- console.error("[EVENT_BRIDGE_HANDLER_EMPTY_TRASH_BIN] => ", JSON.stringify({
34
- message: ex.message,
35
- code: ex.code,
36
- data: ex.data
37
- }));
38
- }
39
- });
40
-
41
- // Assign a human-readable name for easier debugging.
42
- handler.name = handler.type + ".cmsBulkActions";
43
- return handler;
3
+ const createEventBridgeHandler = ()=>{
4
+ const handler = createEventBridgeEventHandler(async ({ context: ctx, payload, next })=>{
5
+ try {
6
+ if (payload["detail-type"] !== DETAIL_TYPE) return next();
7
+ const context = ctx;
8
+ if (!context.tasks || !context.tenancy) return void console.error("Missing tasks or tenancy definition on context.");
9
+ await context.tenancy.withRootTenant(async ()=>{
10
+ await context.tasks.trigger({
11
+ definition: "hcmsEntriesEmptyTrashBins"
12
+ });
13
+ });
14
+ return;
15
+ } catch (ex) {
16
+ console.error("[EVENT_BRIDGE_HANDLER_EMPTY_TRASH_BIN] => ", JSON.stringify({
17
+ message: ex.message,
18
+ code: ex.code,
19
+ data: ex.data
20
+ }));
21
+ }
22
+ });
23
+ handler.name = handler.type + ".cmsBulkActions";
24
+ return handler;
44
25
  };
26
+ export { createEventBridgeHandler };
45
27
 
46
28
  //# sourceMappingURL=eventBridgeEventHandler.js.map
@@ -1 +1 @@
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":[]}
1
+ {"version":3,"file":"handlers/eventBridgeEventHandler.js","sources":["../../src/handlers/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"],"names":["DETAIL_TYPE","createEventBridgeHandler","handler","createEventBridgeEventHandler","ctx","payload","next","context","console","ex","JSON"],"mappings":";AAGA,MAAMA,cAAc;AAEb,MAAMC,2BAA2B;IACpC,MAAMC,UAAUC,8BACZ,OAAO,EAAE,SAASC,GAAG,EAAEC,OAAO,EAAEC,IAAI,EAAE;QAClC,IAAI;YAIA,IAAID,OAAO,CAAC,cAAc,KAAKL,aAC3B,OAAOM;YAGX,MAAMC,UAAUH;YAEhB,IAAI,CAACG,QAAQ,KAAK,IAAI,CAACA,QAAQ,OAAO,EAAE,YACpCC,QAAQ,KAAK,CAAC;YAQlB,MAAMD,QAAQ,OAAO,CAAC,cAAc,CAAC;gBACjC,MAAMA,QAAQ,KAAK,CAAC,OAAO,CAAC;oBACxB,YAAY;gBAChB;YACJ;YAEA;QACJ,EAAE,OAAOE,IAAI;YACTD,QAAQ,KAAK,CACT,8CACAE,KAAK,SAAS,CAAC;gBACX,SAASD,GAAG,OAAO;gBACnB,MAAMA,GAAG,IAAI;gBACb,MAAMA,GAAG,IAAI;YACjB;QAER;IACJ;IAIJP,QAAQ,IAAI,GAAGA,QAAQ,IAAI,GAAG;IAE9B,OAAOA;AACX"}
package/handlers/index.js CHANGED
@@ -1,7 +1,9 @@
1
1
  import { createEventBridgeHandler } from "./eventBridgeEventHandler.js";
2
2
  import { setupEventsTenant } from "./setupEventsTenant.js";
3
- export const createHandlers = () => {
4
- return [setupEventsTenant(), createEventBridgeHandler()];
5
- };
3
+ const createHandlers = ()=>[
4
+ setupEventsTenant(),
5
+ createEventBridgeHandler()
6
+ ];
7
+ export { createHandlers };
6
8
 
7
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
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
+ {"version":3,"file":"handlers/index.js","sources":["../../src/handlers/index.ts"],"sourcesContent":["import { createEventBridgeHandler } from \"./eventBridgeEventHandler.js\";\nimport { setupEventsTenant } from \"./setupEventsTenant.js\";\n\nexport const createHandlers = () => {\n return [setupEventsTenant(), createEventBridgeHandler()];\n};\n"],"names":["createHandlers","setupEventsTenant","createEventBridgeHandler"],"mappings":";;AAGO,MAAMA,iBAAiB,IACnB;QAACC;QAAqBC;KAA2B"}
@@ -1,12 +1,10 @@
1
1
  import { createHandlerOnRequest } from "@webiny/handler";
2
- export const setupEventsTenant = () => {
3
- return createHandlerOnRequest(async request => {
4
- request.headers = {
5
- ...request.headers,
6
- "x-tenant": request.headers["x-tenant"] || "root"
7
- };
8
- return;
9
- });
10
- };
2
+ const setupEventsTenant = ()=>createHandlerOnRequest(async (request)=>{
3
+ request.headers = {
4
+ ...request.headers,
5
+ "x-tenant": request.headers["x-tenant"] || "root"
6
+ };
7
+ });
8
+ export { setupEventsTenant };
11
9
 
12
10
  //# sourceMappingURL=setupEventsTenant.js.map
@@ -1 +1 @@
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":[]}
1
+ {"version":3,"file":"handlers/setupEventsTenant.js","sources":["../../src/handlers/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"],"names":["setupEventsTenant","createHandlerOnRequest","request"],"mappings":";AAEO,MAAMA,oBAAoB,IACtBC,uBAAuB,OAAMC;QAChCA,QAAQ,OAAO,GAAG;YACd,GAAGA,QAAQ,OAAO;YAClB,YAAYA,QAAQ,OAAO,CAAC,WAAW,IAAI;QAC/C;IAGJ"}
package/index.js CHANGED
@@ -12,39 +12,35 @@ import { MoveToTrashBulkActionFeature } from "./features/MoveToTrashBulkAction/f
12
12
  import { PublishEntriesBulkActionFeature } from "./features/PublishEntriesBulkAction/feature.js";
13
13
  import { UnpublishEntriesBulkActionFeature } from "./features/UnpublishEntriesBulkAction/feature.js";
14
14
  import { RestoreEntriesBulkActionFeature } from "./features/RestoreEntriesBulkAction/feature.js";
15
- export { createHandlers } from "./handlers/index.js";
16
- export { createEmptyTrashBinsTask } 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);
38
-
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);
46
- }
47
- })];
15
+ const createHcmsBulkActions = (config)=>{
16
+ const batchSize = config?.batchSize ?? 100;
17
+ return [
18
+ createHandlers(),
19
+ createDefaultGraphQL(),
20
+ createContextPlugin((context)=>{
21
+ context.container.registerInstance(EntriesBulkActionConfig, {
22
+ batchSize
23
+ });
24
+ DeleteEntriesBulkActionFeature.register(context.container);
25
+ MoveToFolderBulkActionFeature.register(context.container);
26
+ MoveToTrashBulkActionFeature.register(context.container);
27
+ PublishEntriesBulkActionFeature.register(context.container);
28
+ UnpublishEntriesBulkActionFeature.register(context.container);
29
+ RestoreEntriesBulkActionFeature.register(context.container);
30
+ }),
31
+ createBeforeHandlerPlugin(async (context)=>{
32
+ context.container.registerInstance(BulkActionContext, context);
33
+ const bulkActions = context.container.resolveAll(EntriesBulkAction);
34
+ const bulkActionsConfig = context.container.resolve(EntriesBulkActionConfig);
35
+ for (const bulkAction of bulkActions){
36
+ const feature = createBulkActionTasks(bulkAction, bulkActionsConfig);
37
+ feature.register(context.container);
38
+ await createBulkActionGraphQL(context, bulkAction);
39
+ }
40
+ })
41
+ ];
48
42
  };
43
+ export { createEmptyTrashBinsTask } from "./tasks/index.js";
44
+ export { createHandlers, createHcmsBulkActions };
49
45
 
50
46
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["createHandlers","createBeforeHandlerPlugin","EntriesBulkAction","EntriesBulkActionConfig","BulkActionContext","createBulkActionTasks","createDefaultGraphQL","createBulkActionGraphQL","createContextPlugin","DeleteEntriesBulkActionFeature","MoveToFolderBulkActionFeature","MoveToTrashBulkActionFeature","PublishEntriesBulkActionFeature","UnpublishEntriesBulkActionFeature","RestoreEntriesBulkActionFeature","createEmptyTrashBinsTask","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 { createHandlers } from \"./handlers/index.js\";\nexport { createEmptyTrashBinsTask } 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,SAASd,cAAc;AACvB,SAASe,wBAAwB;AAMjC,OAAO,MAAMC,qBAAqB,GAAIC,MAA0B,IAAK;EACjE,MAAMC,SAAS,GAAGD,MAAM,EAAEC,SAAS,IAAI,GAAG;EAE1C,OAAO,CACHlB,cAAc,CAAC,CAAC,EAChBM,oBAAoB,CAAC,CAAC;EACtB;EACAE,mBAAmB,CAACW,OAAO,IAAI;IAC3B;IACAA,OAAO,CAACC,SAAS,CAACC,gBAAgB,CAAClB,uBAAuB,EAAE;MAAEe;IAAU,CAAC,CAAC;IAE1ET,8BAA8B,CAACa,QAAQ,CAACH,OAAO,CAACC,SAAS,CAAC;IAC1DV,6BAA6B,CAACY,QAAQ,CAACH,OAAO,CAACC,SAAS,CAAC;IACzDT,4BAA4B,CAACW,QAAQ,CAACH,OAAO,CAACC,SAAS,CAAC;IACxDR,+BAA+B,CAACU,QAAQ,CAACH,OAAO,CAACC,SAAS,CAAC;IAC3DP,iCAAiC,CAACS,QAAQ,CAACH,OAAO,CAACC,SAAS,CAAC;IAC7DN,+BAA+B,CAACQ,QAAQ,CAACH,OAAO,CAACC,SAAS,CAAC;EAC/D,CAAC,CAAC;EACF;EACAnB,yBAAyB,CAAyB,MAAMkB,OAAO,IAAI;IAC/DA,OAAO,CAACC,SAAS,CAACC,gBAAgB,CAACjB,iBAAiB,EAAEe,OAAO,CAAC;IAE9D,MAAMI,WAAW,GAAGJ,OAAO,CAACC,SAAS,CAACI,UAAU,CAACtB,iBAAiB,CAAC;IACnE,MAAMuB,iBAAiB,GAAGN,OAAO,CAACC,SAAS,CAACM,OAAO,CAACvB,uBAAuB,CAAC;;IAE5E;IACA,KAAK,MAAMwB,UAAU,IAAIJ,WAAW,EAAE;MAClC;MACA,MAAMK,OAAO,GAAGvB,qBAAqB,CAACsB,UAAU,EAAEF,iBAAiB,CAAC;MACpEG,OAAO,CAACN,QAAQ,CAACH,OAAO,CAACC,SAAS,CAAC;MACnC;MACA,MAAMb,uBAAuB,CAACY,OAAO,EAAEQ,UAAU,CAAC;IACtD;EACJ,CAAC,CAAC,CACL;AACL,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"index.js","sources":["../src/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 { createHandlers } from \"./handlers/index.js\";\nexport { createEmptyTrashBinsTask } 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"],"names":["createHcmsBulkActions","config","batchSize","createHandlers","createDefaultGraphQL","createContextPlugin","context","EntriesBulkActionConfig","DeleteEntriesBulkActionFeature","MoveToFolderBulkActionFeature","MoveToTrashBulkActionFeature","PublishEntriesBulkActionFeature","UnpublishEntriesBulkActionFeature","RestoreEntriesBulkActionFeature","createBeforeHandlerPlugin","BulkActionContext","bulkActions","EntriesBulkAction","bulkActionsConfig","bulkAction","feature","createBulkActionTasks","createBulkActionGraphQL"],"mappings":";;;;;;;;;;;;;;AA2BO,MAAMA,wBAAwB,CAACC;IAClC,MAAMC,YAAYD,QAAQ,aAAa;IAEvC,OAAO;QACHE;QACAC;QAEAC,oBAAoBC,CAAAA;YAEhBA,QAAQ,SAAS,CAAC,gBAAgB,CAACC,yBAAyB;gBAAEL;YAAU;YAExEM,+BAA+B,QAAQ,CAACF,QAAQ,SAAS;YACzDG,8BAA8B,QAAQ,CAACH,QAAQ,SAAS;YACxDI,6BAA6B,QAAQ,CAACJ,QAAQ,SAAS;YACvDK,gCAAgC,QAAQ,CAACL,QAAQ,SAAS;YAC1DM,kCAAkC,QAAQ,CAACN,QAAQ,SAAS;YAC5DO,gCAAgC,QAAQ,CAACP,QAAQ,SAAS;QAC9D;QAEAQ,0BAAkD,OAAMR;YACpDA,QAAQ,SAAS,CAAC,gBAAgB,CAACS,mBAAmBT;YAEtD,MAAMU,cAAcV,QAAQ,SAAS,CAAC,UAAU,CAACW;YACjD,MAAMC,oBAAoBZ,QAAQ,SAAS,CAAC,OAAO,CAACC;YAGpD,KAAK,MAAMY,cAAcH,YAAa;gBAElC,MAAMI,UAAUC,sBAAsBF,YAAYD;gBAClDE,QAAQ,QAAQ,CAACd,QAAQ,SAAS;gBAElC,MAAMgB,wBAAwBhB,SAASa;YAC3C;QACJ;KACH;AACL"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-headless-cms-bulk-actions",
3
- "version": "6.3.0",
3
+ "version": "6.4.0-beta.0",
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-headless-cms": "6.3.0",
21
- "@webiny/feature": "6.3.0",
22
- "@webiny/handler": "6.3.0",
23
- "@webiny/handler-aws": "6.3.0",
24
- "@webiny/tasks": "6.3.0",
25
- "@webiny/utils": "6.3.0"
20
+ "@webiny/api-headless-cms": "6.4.0-beta.0",
21
+ "@webiny/feature": "6.4.0-beta.0",
22
+ "@webiny/handler": "6.4.0-beta.0",
23
+ "@webiny/handler-aws": "6.4.0-beta.0",
24
+ "@webiny/tasks": "6.4.0-beta.0",
25
+ "@webiny/utils": "6.4.0-beta.0"
26
26
  },
27
27
  "devDependencies": {
28
- "@webiny/api": "6.3.0",
29
- "@webiny/api-core": "6.3.0",
30
- "@webiny/build-tools": "6.3.0",
31
- "@webiny/handler-graphql": "6.3.0",
32
- "@webiny/plugins": "6.3.0",
33
- "@webiny/project-utils": "6.3.0",
34
- "@webiny/wcp": "6.3.0",
35
- "graphql": "16.13.2",
28
+ "@webiny/api": "6.4.0-beta.0",
29
+ "@webiny/api-core": "6.4.0-beta.0",
30
+ "@webiny/build-tools": "6.4.0-beta.0",
31
+ "@webiny/handler-graphql": "6.4.0-beta.0",
32
+ "@webiny/plugins": "6.4.0-beta.0",
33
+ "@webiny/project-utils": "6.4.0-beta.0",
34
+ "@webiny/wcp": "6.4.0-beta.0",
35
+ "graphql": "16.14.0",
36
36
  "typescript": "6.0.3",
37
- "vitest": "4.1.5"
37
+ "vitest": "4.1.6"
38
38
  },
39
39
  "publishConfig": {
40
40
  "access": "public",
41
41
  "directory": "dist"
42
42
  },
43
- "gitHead": "7cefe15431dbd65504e1f58147dc9e55bcbfa693"
43
+ "gitHead": "a545d7529828af07d08d49c3da1bcb967483b9ce"
44
44
  }