@webiny/api-aco 5.37.0-beta.0 → 5.37.0-beta.2

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 (94) hide show
  1. package/apps/AcoApp.d.ts +16 -0
  2. package/apps/AcoApp.js +108 -0
  3. package/apps/AcoApp.js.map +1 -0
  4. package/apps/AcoApps.d.ts +10 -0
  5. package/apps/AcoApps.js +76 -0
  6. package/apps/AcoApps.js.map +1 -0
  7. package/apps/app.gql.d.ts +3 -0
  8. package/apps/app.gql.js +58 -0
  9. package/apps/app.gql.js.map +1 -0
  10. package/apps/index.d.ts +2 -0
  11. package/apps/index.js +27 -0
  12. package/apps/index.js.map +1 -0
  13. package/createAcoContext.js +50 -13
  14. package/createAcoContext.js.map +1 -1
  15. package/createAcoGraphQL.d.ts +2 -2
  16. package/createAcoGraphQL.js +34 -5
  17. package/createAcoGraphQL.js.map +1 -1
  18. package/createAcoHooks.js.map +1 -1
  19. package/createAcoModels.js +0 -15
  20. package/createAcoModels.js.map +1 -1
  21. package/createAcoStorageOperations.js.map +1 -1
  22. package/{createAcoFields.d.ts → fields/index.d.ts} +1 -1
  23. package/fields/index.js +12 -0
  24. package/fields/index.js.map +1 -0
  25. package/fields/location.d.ts +2 -0
  26. package/fields/location.js +44 -0
  27. package/fields/location.js.map +1 -0
  28. package/folder/folder.crud.js +18 -0
  29. package/folder/folder.crud.js.map +1 -1
  30. package/folder/folder.gql.js +1 -1
  31. package/folder/folder.gql.js.map +1 -1
  32. package/folder/folder.model.js +0 -18
  33. package/folder/folder.model.js.map +1 -1
  34. package/folder/folder.so.js.map +1 -1
  35. package/folder/folder.types.d.ts +8 -2
  36. package/folder/folder.types.js.map +1 -1
  37. package/folder/onFolderBeforeDelete.hook.js +21 -9
  38. package/folder/onFolderBeforeDelete.hook.js.map +1 -1
  39. package/index.d.ts +3 -1
  40. package/index.js +31 -3
  41. package/index.js.map +1 -1
  42. package/package.json +29 -27
  43. package/plugins/AcoAppModifierPlugin.d.ts +43 -0
  44. package/plugins/AcoAppModifierPlugin.js +59 -0
  45. package/plugins/AcoAppModifierPlugin.js.map +1 -0
  46. package/plugins/AcoAppRegisterPlugin.d.ts +8 -0
  47. package/plugins/AcoAppRegisterPlugin.js +22 -0
  48. package/plugins/AcoAppRegisterPlugin.js.map +1 -0
  49. package/plugins/index.d.ts +2 -0
  50. package/plugins/index.js +27 -0
  51. package/plugins/index.js.map +1 -0
  52. package/record/graphql/createAppResolvers.d.ts +14 -0
  53. package/record/graphql/createAppResolvers.js +108 -0
  54. package/record/graphql/createAppResolvers.js.map +1 -0
  55. package/record/graphql/createAppSchema.d.ts +9 -0
  56. package/record/graphql/createAppSchema.js +142 -0
  57. package/record/graphql/createAppSchema.js.map +1 -0
  58. package/record/record.crud.js +45 -14
  59. package/record/record.crud.js.map +1 -1
  60. package/record/record.gql.d.ts +8 -3
  61. package/record/record.gql.js +36 -182
  62. package/record/record.gql.js.map +1 -1
  63. package/record/record.model.d.ts +7 -1
  64. package/record/record.model.js +34 -10
  65. package/record/record.model.js.map +1 -1
  66. package/record/record.so.js +55 -44
  67. package/record/record.so.js.map +1 -1
  68. package/record/record.types.d.ts +49 -15
  69. package/record/record.types.js.map +1 -1
  70. package/types.d.ts +45 -3
  71. package/types.js +10 -4
  72. package/types.js.map +1 -1
  73. package/utils/acoRecordId.js.map +1 -1
  74. package/utils/checkPermissions.js.map +1 -1
  75. package/utils/createListSort.js.map +1 -1
  76. package/utils/createModelField.js.map +1 -1
  77. package/utils/createOperationsWrapper.js.map +1 -1
  78. package/utils/fieldResolver.js.map +1 -1
  79. package/utils/getFieldValues.d.ts +2 -2
  80. package/utils/getFieldValues.js +1 -1
  81. package/utils/getFieldValues.js.map +1 -1
  82. package/utils/getFolderAndItsAncestors.d.ts +7 -0
  83. package/utils/getFolderAndItsAncestors.js +48 -0
  84. package/utils/getFolderAndItsAncestors.js.map +1 -0
  85. package/utils/isInstallationPending.js.map +1 -1
  86. package/utils/modelFactory.js.map +1 -1
  87. package/utils/resolve.d.ts +2 -1
  88. package/utils/resolve.js +11 -2
  89. package/utils/resolve.js.map +1 -1
  90. package/createAcoCrud.d.ts +0 -2
  91. package/createAcoCrud.js +0 -17
  92. package/createAcoCrud.js.map +0 -1
  93. package/createAcoFields.js +0 -40
  94. package/createAcoFields.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["baseFields","createAcoStorageOperations","params","context","getCmsContext","createAcoModels","createFolderOperations","createSearchRecordOperations"],"sources":["createAcoStorageOperations.ts"],"sourcesContent":["import { CmsContext, HeadlessCms } from \"@webiny/api-headless-cms/types\";\nimport { Security } from \"@webiny/api-security/types\";\n\nimport { createFolderOperations } from \"~/folder/folder.so\";\nimport { createSearchRecordOperations } from \"~/record/record.so\";\nimport { createAcoModels } from \"~/createAcoModels\";\n\nimport { AcoStorageOperations } from \"~/types\";\n\nexport interface CreateAcoStorageOperationsParams {\n cms: HeadlessCms;\n security: Security;\n getCmsContext: () => CmsContext;\n}\n\nexport const baseFields = [\"id\", \"entryId\", \"createdBy\", \"createdOn\", \"savedOn\"];\n\nexport const createAcoStorageOperations = (\n params: CreateAcoStorageOperationsParams\n): AcoStorageOperations => {\n const context = params.getCmsContext();\n\n createAcoModels(context);\n\n return {\n ...createFolderOperations(params),\n ...createSearchRecordOperations(params)\n };\n};\n"],"mappings":";;;;;;;;AAGA;AACA;AACA;AAUO,MAAMA,UAAU,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,CAAC;AAAC;AAE1E,MAAMC,0BAA0B,GACnCC,MAAwC,IACjB;EACvB,MAAMC,OAAO,GAAGD,MAAM,CAACE,aAAa,EAAE;EAEtC,IAAAC,gCAAe,EAACF,OAAO,CAAC;EAExB,mEACO,IAAAG,8BAAsB,EAACJ,MAAM,CAAC,GAC9B,IAAAK,oCAA4B,EAACL,MAAM,CAAC;AAE/C,CAAC;AAAC"}
1
+ {"version":3,"names":["_folder","require","_record","_createAcoModels","baseFields","exports","createAcoStorageOperations","params","context","getCmsContext","createAcoModels","_objectSpread2","default","createFolderOperations","createSearchRecordOperations"],"sources":["createAcoStorageOperations.ts"],"sourcesContent":["import { CmsContext, HeadlessCms } from \"@webiny/api-headless-cms/types\";\nimport { Security } from \"@webiny/api-security/types\";\n\nimport { createFolderOperations } from \"~/folder/folder.so\";\nimport { createSearchRecordOperations } from \"~/record/record.so\";\nimport { createAcoModels } from \"~/createAcoModels\";\n\nimport { AcoStorageOperations } from \"~/types\";\n\nexport interface CreateAcoStorageOperationsParams {\n cms: HeadlessCms;\n security: Security;\n getCmsContext: () => CmsContext;\n}\n\nexport const baseFields = [\"id\", \"entryId\", \"createdBy\", \"createdOn\", \"savedOn\"];\n\nexport const createAcoStorageOperations = (\n params: CreateAcoStorageOperationsParams\n): AcoStorageOperations => {\n const context = params.getCmsContext();\n\n createAcoModels(context);\n\n return {\n ...createFolderOperations(params),\n ...createSearchRecordOperations(params)\n };\n};\n"],"mappings":";;;;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AAUO,MAAMG,UAAU,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,CAAC;AAACC,OAAA,CAAAD,UAAA,GAAAA,UAAA;AAE1E,MAAME,0BAA0B,GACnCC,MAAwC,IACjB;EACvB,MAAMC,OAAO,GAAGD,MAAM,CAACE,aAAa,CAAC,CAAC;EAEtC,IAAAC,gCAAe,EAACF,OAAO,CAAC;EAExB,WAAAG,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MACO,IAAAC,8BAAsB,EAACN,MAAM,CAAC,GAC9B,IAAAO,oCAA4B,EAACP,MAAM,CAAC;AAE/C,CAAC;AAACF,OAAA,CAAAC,0BAAA,GAAAA,0BAAA"}
@@ -1,2 +1,2 @@
1
1
  import { CmsModelFieldToGraphQLPlugin } from "@webiny/api-headless-cms/types";
2
- export declare const createAcoFields: () => CmsModelFieldToGraphQLPlugin[];
2
+ export declare const createFields: () => CmsModelFieldToGraphQLPlugin[];
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createFields = void 0;
7
+ const createFields = () => {
8
+ return [
9
+ // createLocationField()
10
+ ];
11
+ };
12
+ exports.createFields = createFields;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createFields","exports"],"sources":["index.ts"],"sourcesContent":["import { CmsModelFieldToGraphQLPlugin } from \"@webiny/api-headless-cms/types\";\n\nexport const createFields = (): CmsModelFieldToGraphQLPlugin[] => {\n return [\n // createLocationField()\n ];\n};\n"],"mappings":";;;;;;AAEO,MAAMA,YAAY,GAAGA,CAAA,KAAsC;EAC9D,OAAO;IACH;EAAA,CACH;AACL,CAAC;AAACC,OAAA,CAAAD,YAAA,GAAAA,YAAA"}
@@ -0,0 +1,2 @@
1
+ import { CmsModelFieldToGraphQLPlugin } from "@webiny/api-headless-cms/types";
2
+ export declare const createLocationField: () => CmsModelFieldToGraphQLPlugin;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createLocationField = void 0;
7
+ const createFilters = field => {
8
+ return [`${field.fieldId}: AcoLocationInput`, `${field.fieldId}_in: [AcoLocationInput!]`, `${field.fieldId}_not_in: [AcoLocationInput!]`].join("\n");
9
+ };
10
+ const createLocationField = () => {
11
+ return {
12
+ type: "cms-model-field-to-graphql",
13
+ name: "cms-model-field-to-graphql-location",
14
+ fieldType: "location",
15
+ isSortable: false,
16
+ isSearchable: true,
17
+ read: {
18
+ createGetFilters({
19
+ field
20
+ }) {
21
+ return createFilters(field);
22
+ },
23
+ createListFilters({
24
+ field
25
+ }) {
26
+ return createFilters(field);
27
+ },
28
+ createTypeField() {
29
+ return ``;
30
+ }
31
+ },
32
+ manage: {
33
+ createTypeField() {
34
+ return ``;
35
+ },
36
+ createInputField({
37
+ field
38
+ }) {
39
+ return `${field.fieldId}: AcoLocationInput`;
40
+ }
41
+ }
42
+ };
43
+ };
44
+ exports.createLocationField = createLocationField;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createFilters","field","fieldId","join","createLocationField","type","name","fieldType","isSortable","isSearchable","read","createGetFilters","createListFilters","createTypeField","manage","createInputField","exports"],"sources":["location.ts"],"sourcesContent":["import { CmsModelField, CmsModelFieldToGraphQLPlugin } from \"@webiny/api-headless-cms/types\";\n\nconst createFilters = (field: CmsModelField) => {\n return [\n `${field.fieldId}: AcoLocationInput`,\n `${field.fieldId}_in: [AcoLocationInput!]`,\n `${field.fieldId}_not_in: [AcoLocationInput!]`\n ].join(\"\\n\");\n};\nexport const createLocationField = (): CmsModelFieldToGraphQLPlugin => {\n return {\n type: \"cms-model-field-to-graphql\",\n name: \"cms-model-field-to-graphql-location\",\n fieldType: \"location\",\n isSortable: false,\n isSearchable: true,\n read: {\n createGetFilters({ field }): string {\n return createFilters(field);\n },\n createListFilters({ field }): string {\n return createFilters(field);\n },\n createTypeField(): string {\n return ``;\n }\n },\n manage: {\n createTypeField(): string {\n return ``;\n },\n createInputField({ field }): string {\n return `${field.fieldId}: AcoLocationInput`;\n }\n }\n };\n};\n"],"mappings":";;;;;;AAEA,MAAMA,aAAa,GAAIC,KAAoB,IAAK;EAC5C,OAAO,CACF,GAAEA,KAAK,CAACC,OAAQ,oBAAmB,EACnC,GAAED,KAAK,CAACC,OAAQ,0BAAyB,EACzC,GAAED,KAAK,CAACC,OAAQ,8BAA6B,CACjD,CAACC,IAAI,CAAC,IAAI,CAAC;AAChB,CAAC;AACM,MAAMC,mBAAmB,GAAGA,CAAA,KAAoC;EACnE,OAAO;IACHC,IAAI,EAAE,4BAA4B;IAClCC,IAAI,EAAE,qCAAqC;IAC3CC,SAAS,EAAE,UAAU;IACrBC,UAAU,EAAE,KAAK;IACjBC,YAAY,EAAE,IAAI;IAClBC,IAAI,EAAE;MACFC,gBAAgBA,CAAC;QAAEV;MAAM,CAAC,EAAU;QAChC,OAAOD,aAAa,CAACC,KAAK,CAAC;MAC/B,CAAC;MACDW,iBAAiBA,CAAC;QAAEX;MAAM,CAAC,EAAU;QACjC,OAAOD,aAAa,CAACC,KAAK,CAAC;MAC/B,CAAC;MACDY,eAAeA,CAAA,EAAW;QACtB,OAAQ,EAAC;MACb;IACJ,CAAC;IACDC,MAAM,EAAE;MACJD,eAAeA,CAAA,EAAW;QACtB,OAAQ,EAAC;MACb,CAAC;MACDE,gBAAgBA,CAAC;QAAEd;MAAM,CAAC,EAAU;QAChC,OAAQ,GAAEA,KAAK,CAACC,OAAQ,oBAAmB;MAC/C;IACJ;EACJ,CAAC;AACL,CAAC;AAACc,OAAA,CAAAZ,mBAAA,GAAAA,mBAAA"}
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.createFolderCrudMethods = void 0;
7
7
  var _pubsub = require("@webiny/pubsub");
8
+ var _getFolderAndItsAncestors = require("../utils/getFolderAndItsAncestors");
8
9
  const createFolderCrudMethods = ({
9
10
  storageOperations
10
11
  }) => {
@@ -86,6 +87,23 @@ const createFolderCrudMethods = ({
86
87
  folder
87
88
  });
88
89
  return true;
90
+ },
91
+ async getFolderWithAncestors(id) {
92
+ const {
93
+ type
94
+ } = await storageOperations.getFolder({
95
+ id
96
+ });
97
+ const [folders] = await storageOperations.listFolders({
98
+ where: {
99
+ type
100
+ },
101
+ limit: 10000
102
+ });
103
+ return (0, _getFolderAndItsAncestors.getFolderAndItsAncestors)({
104
+ id,
105
+ folders
106
+ });
89
107
  }
90
108
  };
91
109
  };
@@ -1 +1 @@
1
- {"version":3,"names":["createFolderCrudMethods","storageOperations","onFolderBeforeCreate","createTopic","onFolderAfterCreate","onFolderBeforeUpdate","onFolderAfterUpdate","onFolderBeforeDelete","onFolderAfterDelete","get","id","getFolder","list","params","listFolders","create","data","publish","input","folder","createFolder","update","original","updateFolder","delete","deleteFolder"],"sources":["folder.crud.ts"],"sourcesContent":["import { createTopic } from \"@webiny/pubsub\";\n\nimport { CreateAcoParams } from \"~/types\";\nimport {\n AcoFolderCrud,\n OnFolderAfterCreateTopicParams,\n OnFolderAfterDeleteTopicParams,\n OnFolderAfterUpdateTopicParams,\n OnFolderBeforeCreateTopicParams,\n OnFolderBeforeDeleteTopicParams,\n OnFolderBeforeUpdateTopicParams\n} from \"./folder.types\";\n\nexport const createFolderCrudMethods = ({ storageOperations }: CreateAcoParams): AcoFolderCrud => {\n // create\n const onFolderBeforeCreate = createTopic<OnFolderBeforeCreateTopicParams>(\n \"aco.onFolderBeforeCreate\"\n );\n const onFolderAfterCreate =\n createTopic<OnFolderAfterCreateTopicParams>(\"aco.onFolderAfterCreate\");\n // update\n const onFolderBeforeUpdate = createTopic<OnFolderBeforeUpdateTopicParams>(\n \"aco.onFolderBeforeUpdate\"\n );\n const onFolderAfterUpdate =\n createTopic<OnFolderAfterUpdateTopicParams>(\"aco.onFolderAfterUpdate\");\n // delete\n const onFolderBeforeDelete = createTopic<OnFolderBeforeDeleteTopicParams>(\n \"aco.onFolderBeforeDelete\"\n );\n const onFolderAfterDelete =\n createTopic<OnFolderAfterDeleteTopicParams>(\"aco.onFolderAfterDelete\");\n\n return {\n /**\n * Lifecycle events\n */\n onFolderBeforeCreate,\n onFolderAfterCreate,\n onFolderBeforeUpdate,\n onFolderAfterUpdate,\n onFolderBeforeDelete,\n onFolderAfterDelete,\n async get(id) {\n return storageOperations.getFolder({ id });\n },\n async list(params) {\n return storageOperations.listFolders(params);\n },\n async create(data) {\n await onFolderBeforeCreate.publish({ input: data });\n const folder = await storageOperations.createFolder({ data });\n await onFolderAfterCreate.publish({ folder });\n return folder;\n },\n async update(id, data) {\n const original = await storageOperations.getFolder({ id });\n await onFolderBeforeUpdate.publish({ original, input: { id, data } });\n const folder = await storageOperations.updateFolder({ id, data });\n await onFolderAfterUpdate.publish({ original, input: { id, data }, folder });\n return folder;\n },\n async delete(id: string) {\n const folder = await storageOperations.getFolder({ id });\n await onFolderBeforeDelete.publish({ folder });\n await storageOperations.deleteFolder({ id });\n await onFolderAfterDelete.publish({ folder });\n return true;\n }\n };\n};\n"],"mappings":";;;;;;AAAA;AAaO,MAAMA,uBAAuB,GAAG,CAAC;EAAEC;AAAmC,CAAC,KAAoB;EAC9F;EACA,MAAMC,oBAAoB,GAAG,IAAAC,mBAAW,EACpC,0BAA0B,CAC7B;EACD,MAAMC,mBAAmB,GACrB,IAAAD,mBAAW,EAAiC,yBAAyB,CAAC;EAC1E;EACA,MAAME,oBAAoB,GAAG,IAAAF,mBAAW,EACpC,0BAA0B,CAC7B;EACD,MAAMG,mBAAmB,GACrB,IAAAH,mBAAW,EAAiC,yBAAyB,CAAC;EAC1E;EACA,MAAMI,oBAAoB,GAAG,IAAAJ,mBAAW,EACpC,0BAA0B,CAC7B;EACD,MAAMK,mBAAmB,GACrB,IAAAL,mBAAW,EAAiC,yBAAyB,CAAC;EAE1E,OAAO;IACH;AACR;AACA;IACQD,oBAAoB;IACpBE,mBAAmB;IACnBC,oBAAoB;IACpBC,mBAAmB;IACnBC,oBAAoB;IACpBC,mBAAmB;IACnB,MAAMC,GAAG,CAACC,EAAE,EAAE;MACV,OAAOT,iBAAiB,CAACU,SAAS,CAAC;QAAED;MAAG,CAAC,CAAC;IAC9C,CAAC;IACD,MAAME,IAAI,CAACC,MAAM,EAAE;MACf,OAAOZ,iBAAiB,CAACa,WAAW,CAACD,MAAM,CAAC;IAChD,CAAC;IACD,MAAME,MAAM,CAACC,IAAI,EAAE;MACf,MAAMd,oBAAoB,CAACe,OAAO,CAAC;QAAEC,KAAK,EAAEF;MAAK,CAAC,CAAC;MACnD,MAAMG,MAAM,GAAG,MAAMlB,iBAAiB,CAACmB,YAAY,CAAC;QAAEJ;MAAK,CAAC,CAAC;MAC7D,MAAMZ,mBAAmB,CAACa,OAAO,CAAC;QAAEE;MAAO,CAAC,CAAC;MAC7C,OAAOA,MAAM;IACjB,CAAC;IACD,MAAME,MAAM,CAACX,EAAE,EAAEM,IAAI,EAAE;MACnB,MAAMM,QAAQ,GAAG,MAAMrB,iBAAiB,CAACU,SAAS,CAAC;QAAED;MAAG,CAAC,CAAC;MAC1D,MAAML,oBAAoB,CAACY,OAAO,CAAC;QAAEK,QAAQ;QAAEJ,KAAK,EAAE;UAAER,EAAE;UAAEM;QAAK;MAAE,CAAC,CAAC;MACrE,MAAMG,MAAM,GAAG,MAAMlB,iBAAiB,CAACsB,YAAY,CAAC;QAAEb,EAAE;QAAEM;MAAK,CAAC,CAAC;MACjE,MAAMV,mBAAmB,CAACW,OAAO,CAAC;QAAEK,QAAQ;QAAEJ,KAAK,EAAE;UAAER,EAAE;UAAEM;QAAK,CAAC;QAAEG;MAAO,CAAC,CAAC;MAC5E,OAAOA,MAAM;IACjB,CAAC;IACD,MAAMK,MAAM,CAACd,EAAU,EAAE;MACrB,MAAMS,MAAM,GAAG,MAAMlB,iBAAiB,CAACU,SAAS,CAAC;QAAED;MAAG,CAAC,CAAC;MACxD,MAAMH,oBAAoB,CAACU,OAAO,CAAC;QAAEE;MAAO,CAAC,CAAC;MAC9C,MAAMlB,iBAAiB,CAACwB,YAAY,CAAC;QAAEf;MAAG,CAAC,CAAC;MAC5C,MAAMF,mBAAmB,CAACS,OAAO,CAAC;QAAEE;MAAO,CAAC,CAAC;MAC7C,OAAO,IAAI;IACf;EACJ,CAAC;AACL,CAAC;AAAC"}
1
+ {"version":3,"names":["_pubsub","require","_getFolderAndItsAncestors","createFolderCrudMethods","storageOperations","onFolderBeforeCreate","createTopic","onFolderAfterCreate","onFolderBeforeUpdate","onFolderAfterUpdate","onFolderBeforeDelete","onFolderAfterDelete","get","id","getFolder","list","params","listFolders","create","data","publish","input","folder","createFolder","update","original","updateFolder","delete","deleteFolder","getFolderWithAncestors","type","folders","where","limit","getFolderAndItsAncestors","exports"],"sources":["folder.crud.ts"],"sourcesContent":["import { createTopic } from \"@webiny/pubsub\";\n\nimport { CreateAcoParams } from \"~/types\";\nimport {\n AcoFolderCrud,\n OnFolderAfterCreateTopicParams,\n OnFolderAfterDeleteTopicParams,\n OnFolderAfterUpdateTopicParams,\n OnFolderBeforeCreateTopicParams,\n OnFolderBeforeDeleteTopicParams,\n OnFolderBeforeUpdateTopicParams\n} from \"./folder.types\";\n\nimport { getFolderAndItsAncestors } from \"~/utils/getFolderAndItsAncestors\";\n\nexport const createFolderCrudMethods = ({ storageOperations }: CreateAcoParams): AcoFolderCrud => {\n // create\n const onFolderBeforeCreate = createTopic<OnFolderBeforeCreateTopicParams>(\n \"aco.onFolderBeforeCreate\"\n );\n const onFolderAfterCreate =\n createTopic<OnFolderAfterCreateTopicParams>(\"aco.onFolderAfterCreate\");\n // update\n const onFolderBeforeUpdate = createTopic<OnFolderBeforeUpdateTopicParams>(\n \"aco.onFolderBeforeUpdate\"\n );\n const onFolderAfterUpdate =\n createTopic<OnFolderAfterUpdateTopicParams>(\"aco.onFolderAfterUpdate\");\n // delete\n const onFolderBeforeDelete = createTopic<OnFolderBeforeDeleteTopicParams>(\n \"aco.onFolderBeforeDelete\"\n );\n const onFolderAfterDelete =\n createTopic<OnFolderAfterDeleteTopicParams>(\"aco.onFolderAfterDelete\");\n\n return {\n /**\n * Lifecycle events\n */\n onFolderBeforeCreate,\n onFolderAfterCreate,\n onFolderBeforeUpdate,\n onFolderAfterUpdate,\n onFolderBeforeDelete,\n onFolderAfterDelete,\n async get(id) {\n return storageOperations.getFolder({ id });\n },\n async list(params) {\n return storageOperations.listFolders(params);\n },\n async create(data) {\n await onFolderBeforeCreate.publish({ input: data });\n const folder = await storageOperations.createFolder({ data });\n await onFolderAfterCreate.publish({ folder });\n return folder;\n },\n async update(id, data) {\n const original = await storageOperations.getFolder({ id });\n await onFolderBeforeUpdate.publish({ original, input: { id, data } });\n const folder = await storageOperations.updateFolder({ id, data });\n await onFolderAfterUpdate.publish({ original, input: { id, data }, folder });\n return folder;\n },\n async delete(id: string) {\n const folder = await storageOperations.getFolder({ id });\n await onFolderBeforeDelete.publish({ folder });\n await storageOperations.deleteFolder({ id });\n await onFolderAfterDelete.publish({ folder });\n return true;\n },\n async getFolderWithAncestors(id: string) {\n const { type } = await storageOperations.getFolder({ id });\n const [folders] = await storageOperations.listFolders({\n where: {\n type\n },\n limit: 10000\n });\n return getFolderAndItsAncestors({ id, folders });\n }\n };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAaA,IAAAC,yBAAA,GAAAD,OAAA;AAEO,MAAME,uBAAuB,GAAGA,CAAC;EAAEC;AAAmC,CAAC,KAAoB;EAC9F;EACA,MAAMC,oBAAoB,GAAG,IAAAC,mBAAW,EACpC,0BACJ,CAAC;EACD,MAAMC,mBAAmB,GACrB,IAAAD,mBAAW,EAAiC,yBAAyB,CAAC;EAC1E;EACA,MAAME,oBAAoB,GAAG,IAAAF,mBAAW,EACpC,0BACJ,CAAC;EACD,MAAMG,mBAAmB,GACrB,IAAAH,mBAAW,EAAiC,yBAAyB,CAAC;EAC1E;EACA,MAAMI,oBAAoB,GAAG,IAAAJ,mBAAW,EACpC,0BACJ,CAAC;EACD,MAAMK,mBAAmB,GACrB,IAAAL,mBAAW,EAAiC,yBAAyB,CAAC;EAE1E,OAAO;IACH;AACR;AACA;IACQD,oBAAoB;IACpBE,mBAAmB;IACnBC,oBAAoB;IACpBC,mBAAmB;IACnBC,oBAAoB;IACpBC,mBAAmB;IACnB,MAAMC,GAAGA,CAACC,EAAE,EAAE;MACV,OAAOT,iBAAiB,CAACU,SAAS,CAAC;QAAED;MAAG,CAAC,CAAC;IAC9C,CAAC;IACD,MAAME,IAAIA,CAACC,MAAM,EAAE;MACf,OAAOZ,iBAAiB,CAACa,WAAW,CAACD,MAAM,CAAC;IAChD,CAAC;IACD,MAAME,MAAMA,CAACC,IAAI,EAAE;MACf,MAAMd,oBAAoB,CAACe,OAAO,CAAC;QAAEC,KAAK,EAAEF;MAAK,CAAC,CAAC;MACnD,MAAMG,MAAM,GAAG,MAAMlB,iBAAiB,CAACmB,YAAY,CAAC;QAAEJ;MAAK,CAAC,CAAC;MAC7D,MAAMZ,mBAAmB,CAACa,OAAO,CAAC;QAAEE;MAAO,CAAC,CAAC;MAC7C,OAAOA,MAAM;IACjB,CAAC;IACD,MAAME,MAAMA,CAACX,EAAE,EAAEM,IAAI,EAAE;MACnB,MAAMM,QAAQ,GAAG,MAAMrB,iBAAiB,CAACU,SAAS,CAAC;QAAED;MAAG,CAAC,CAAC;MAC1D,MAAML,oBAAoB,CAACY,OAAO,CAAC;QAAEK,QAAQ;QAAEJ,KAAK,EAAE;UAAER,EAAE;UAAEM;QAAK;MAAE,CAAC,CAAC;MACrE,MAAMG,MAAM,GAAG,MAAMlB,iBAAiB,CAACsB,YAAY,CAAC;QAAEb,EAAE;QAAEM;MAAK,CAAC,CAAC;MACjE,MAAMV,mBAAmB,CAACW,OAAO,CAAC;QAAEK,QAAQ;QAAEJ,KAAK,EAAE;UAAER,EAAE;UAAEM;QAAK,CAAC;QAAEG;MAAO,CAAC,CAAC;MAC5E,OAAOA,MAAM;IACjB,CAAC;IACD,MAAMK,MAAMA,CAACd,EAAU,EAAE;MACrB,MAAMS,MAAM,GAAG,MAAMlB,iBAAiB,CAACU,SAAS,CAAC;QAAED;MAAG,CAAC,CAAC;MACxD,MAAMH,oBAAoB,CAACU,OAAO,CAAC;QAAEE;MAAO,CAAC,CAAC;MAC9C,MAAMlB,iBAAiB,CAACwB,YAAY,CAAC;QAAEf;MAAG,CAAC,CAAC;MAC5C,MAAMF,mBAAmB,CAACS,OAAO,CAAC;QAAEE;MAAO,CAAC,CAAC;MAC7C,OAAO,IAAI;IACf,CAAC;IACD,MAAMO,sBAAsBA,CAAChB,EAAU,EAAE;MACrC,MAAM;QAAEiB;MAAK,CAAC,GAAG,MAAM1B,iBAAiB,CAACU,SAAS,CAAC;QAAED;MAAG,CAAC,CAAC;MAC1D,MAAM,CAACkB,OAAO,CAAC,GAAG,MAAM3B,iBAAiB,CAACa,WAAW,CAAC;QAClDe,KAAK,EAAE;UACHF;QACJ,CAAC;QACDG,KAAK,EAAE;MACX,CAAC,CAAC;MACF,OAAO,IAAAC,kDAAwB,EAAC;QAAErB,EAAE;QAAEkB;MAAQ,CAAC,CAAC;IACpD;EACJ,CAAC;AACL,CAAC;AAACI,OAAA,CAAAhC,uBAAA,GAAAA,uBAAA"}
@@ -78,7 +78,7 @@ const folderSchema = new _GraphQLSchemaPlugin.GraphQLSchemaPlugin({
78
78
  },
79
79
  listFolders: async (_, args, context) => {
80
80
  try {
81
- await (0, _checkPermissions.checkPermissions)(context);
81
+ (0, _checkPermissions.checkPermissions)(context);
82
82
  const [entries, meta] = await context.aco.folder.list(args);
83
83
  return new _responses.ListResponse(entries, meta);
84
84
  } catch (e) {
@@ -1 +1 @@
1
- {"version":3,"names":["folderSchema","GraphQLSchemaPlugin","typeDefs","resolvers","AcoQuery","getFolder","_","id","context","resolve","checkPermissions","aco","folder","get","listFolders","args","entries","meta","list","ListResponse","e","ErrorResponse","AcoMutation","createFolder","data","create","updateFolder","update","deleteFolder","delete"],"sources":["folder.gql.ts"],"sourcesContent":["import { ErrorResponse, ListResponse } from \"@webiny/handler-graphql/responses\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin\";\n\nimport { checkPermissions } from \"~/utils/checkPermissions\";\nimport { resolve } from \"~/utils/resolve\";\n\nimport { AcoContext } from \"~/types\";\n\nexport const folderSchema = new GraphQLSchemaPlugin<AcoContext>({\n typeDefs: /* GraphQL */ `\n type Folder {\n id: ID!\n title: String!\n slug: String!\n type: String!\n parentId: ID\n savedOn: DateTime\n createdOn: DateTime\n createdBy: AcoUser\n }\n\n input FolderCreateInput {\n title: String!\n slug: String!\n type: String!\n parentId: ID\n }\n\n input FolderUpdateInput {\n title: String\n slug: String\n parentId: ID\n }\n\n input FoldersListWhereInput {\n type: String!\n parentId: String\n createdBy: ID\n }\n\n type FolderResponse {\n data: Folder\n error: AcoError\n }\n\n type FoldersListResponse {\n data: [Folder]\n error: AcoError\n }\n\n extend type AcoQuery {\n getFolder(id: ID!): FolderResponse\n listFolders(\n where: FoldersListWhereInput!\n limit: Int\n after: String\n sort: AcoSort\n ): FoldersListResponse\n }\n\n extend type AcoMutation {\n createFolder(data: FolderCreateInput!): FolderResponse\n updateFolder(id: ID!, data: FolderUpdateInput!): FolderResponse\n deleteFolder(id: ID!): AcoBooleanResponse\n }\n `,\n resolvers: {\n AcoQuery: {\n getFolder: async (_, { id }, context) => {\n return resolve(() => {\n checkPermissions(context);\n return context.aco.folder.get(id);\n });\n },\n listFolders: async (_, args: any, context) => {\n try {\n await checkPermissions(context);\n const [entries, meta] = await context.aco.folder.list(args);\n return new ListResponse(entries, meta);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n AcoMutation: {\n createFolder: async (_, { data }, context) => {\n return resolve(() => {\n checkPermissions(context);\n return context.aco.folder.create(data);\n });\n },\n updateFolder: async (_, { id, data }, context) => {\n return resolve(() => {\n checkPermissions(context);\n return context.aco.folder.update(id, data);\n });\n },\n deleteFolder: async (_, { id }, context) => {\n return resolve(() => {\n checkPermissions(context);\n return context.aco.folder.delete(id);\n });\n }\n }\n }\n});\n"],"mappings":";;;;;;AAAA;AACA;AAEA;AACA;AAIO,MAAMA,YAAY,GAAG,IAAIC,wCAAmB,CAAa;EAC5DC,QAAQ,EAAE,aAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;EACDC,SAAS,EAAE;IACPC,QAAQ,EAAE;MACNC,SAAS,EAAE,OAAOC,CAAC,EAAE;QAAEC;MAAG,CAAC,EAAEC,OAAO,KAAK;QACrC,OAAO,IAAAC,gBAAO,EAAC,MAAM;UACjB,IAAAC,kCAAgB,EAACF,OAAO,CAAC;UACzB,OAAOA,OAAO,CAACG,GAAG,CAACC,MAAM,CAACC,GAAG,CAACN,EAAE,CAAC;QACrC,CAAC,CAAC;MACN,CAAC;MACDO,WAAW,EAAE,OAAOR,CAAC,EAAES,IAAS,EAAEP,OAAO,KAAK;QAC1C,IAAI;UACA,MAAM,IAAAE,kCAAgB,EAACF,OAAO,CAAC;UAC/B,MAAM,CAACQ,OAAO,EAAEC,IAAI,CAAC,GAAG,MAAMT,OAAO,CAACG,GAAG,CAACC,MAAM,CAACM,IAAI,CAACH,IAAI,CAAC;UAC3D,OAAO,IAAII,uBAAY,CAACH,OAAO,EAAEC,IAAI,CAAC;QAC1C,CAAC,CAAC,OAAOG,CAAC,EAAE;UACR,OAAO,IAAIC,wBAAa,CAACD,CAAC,CAAC;QAC/B;MACJ;IACJ,CAAC;IACDE,WAAW,EAAE;MACTC,YAAY,EAAE,OAAOjB,CAAC,EAAE;QAAEkB;MAAK,CAAC,EAAEhB,OAAO,KAAK;QAC1C,OAAO,IAAAC,gBAAO,EAAC,MAAM;UACjB,IAAAC,kCAAgB,EAACF,OAAO,CAAC;UACzB,OAAOA,OAAO,CAACG,GAAG,CAACC,MAAM,CAACa,MAAM,CAACD,IAAI,CAAC;QAC1C,CAAC,CAAC;MACN,CAAC;MACDE,YAAY,EAAE,OAAOpB,CAAC,EAAE;QAAEC,EAAE;QAAEiB;MAAK,CAAC,EAAEhB,OAAO,KAAK;QAC9C,OAAO,IAAAC,gBAAO,EAAC,MAAM;UACjB,IAAAC,kCAAgB,EAACF,OAAO,CAAC;UACzB,OAAOA,OAAO,CAACG,GAAG,CAACC,MAAM,CAACe,MAAM,CAACpB,EAAE,EAAEiB,IAAI,CAAC;QAC9C,CAAC,CAAC;MACN,CAAC;MACDI,YAAY,EAAE,OAAOtB,CAAC,EAAE;QAAEC;MAAG,CAAC,EAAEC,OAAO,KAAK;QACxC,OAAO,IAAAC,gBAAO,EAAC,MAAM;UACjB,IAAAC,kCAAgB,EAACF,OAAO,CAAC;UACzB,OAAOA,OAAO,CAACG,GAAG,CAACC,MAAM,CAACiB,MAAM,CAACtB,EAAE,CAAC;QACxC,CAAC,CAAC;MACN;IACJ;EACJ;AACJ,CAAC,CAAC;AAAC"}
1
+ {"version":3,"names":["_responses","require","_GraphQLSchemaPlugin","_checkPermissions","_resolve","folderSchema","GraphQLSchemaPlugin","typeDefs","resolvers","AcoQuery","getFolder","_","id","context","resolve","checkPermissions","aco","folder","get","listFolders","args","entries","meta","list","ListResponse","e","ErrorResponse","AcoMutation","createFolder","data","create","updateFolder","update","deleteFolder","delete","exports"],"sources":["folder.gql.ts"],"sourcesContent":["import { ErrorResponse, ListResponse } from \"@webiny/handler-graphql/responses\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin\";\n\nimport { checkPermissions } from \"~/utils/checkPermissions\";\nimport { resolve } from \"~/utils/resolve\";\n\nimport { AcoContext } from \"~/types\";\n\nexport const folderSchema = new GraphQLSchemaPlugin<AcoContext>({\n typeDefs: /* GraphQL */ `\n type Folder {\n id: ID!\n title: String!\n slug: String!\n type: String!\n parentId: ID\n savedOn: DateTime\n createdOn: DateTime\n createdBy: AcoUser\n }\n\n input FolderCreateInput {\n title: String!\n slug: String!\n type: String!\n parentId: ID\n }\n\n input FolderUpdateInput {\n title: String\n slug: String\n parentId: ID\n }\n\n input FoldersListWhereInput {\n type: String!\n parentId: String\n createdBy: ID\n }\n\n type FolderResponse {\n data: Folder\n error: AcoError\n }\n\n type FoldersListResponse {\n data: [Folder]\n error: AcoError\n }\n\n extend type AcoQuery {\n getFolder(id: ID!): FolderResponse\n listFolders(\n where: FoldersListWhereInput!\n limit: Int\n after: String\n sort: AcoSort\n ): FoldersListResponse\n }\n\n extend type AcoMutation {\n createFolder(data: FolderCreateInput!): FolderResponse\n updateFolder(id: ID!, data: FolderUpdateInput!): FolderResponse\n deleteFolder(id: ID!): AcoBooleanResponse\n }\n `,\n resolvers: {\n AcoQuery: {\n getFolder: async (_, { id }, context) => {\n return resolve(() => {\n checkPermissions(context);\n return context.aco.folder.get(id);\n });\n },\n listFolders: async (_, args: any, context) => {\n try {\n checkPermissions(context);\n const [entries, meta] = await context.aco.folder.list(args);\n return new ListResponse(entries, meta);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n AcoMutation: {\n createFolder: async (_, { data }, context) => {\n return resolve(() => {\n checkPermissions(context);\n return context.aco.folder.create(data);\n });\n },\n updateFolder: async (_, { id, data }, context) => {\n return resolve(() => {\n checkPermissions(context);\n return context.aco.folder.update(id, data);\n });\n },\n deleteFolder: async (_, { id }, context) => {\n return resolve(() => {\n checkPermissions(context);\n return context.aco.folder.delete(id);\n });\n }\n }\n }\n});\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AAEA,IAAAE,iBAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAIO,MAAMI,YAAY,GAAG,IAAIC,wCAAmB,CAAa;EAC5DC,QAAQ,EAAE,aAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;EACDC,SAAS,EAAE;IACPC,QAAQ,EAAE;MACNC,SAAS,EAAE,MAAAA,CAAOC,CAAC,EAAE;QAAEC;MAAG,CAAC,EAAEC,OAAO,KAAK;QACrC,OAAO,IAAAC,gBAAO,EAAC,MAAM;UACjB,IAAAC,kCAAgB,EAACF,OAAO,CAAC;UACzB,OAAOA,OAAO,CAACG,GAAG,CAACC,MAAM,CAACC,GAAG,CAACN,EAAE,CAAC;QACrC,CAAC,CAAC;MACN,CAAC;MACDO,WAAW,EAAE,MAAAA,CAAOR,CAAC,EAAES,IAAS,EAAEP,OAAO,KAAK;QAC1C,IAAI;UACA,IAAAE,kCAAgB,EAACF,OAAO,CAAC;UACzB,MAAM,CAACQ,OAAO,EAAEC,IAAI,CAAC,GAAG,MAAMT,OAAO,CAACG,GAAG,CAACC,MAAM,CAACM,IAAI,CAACH,IAAI,CAAC;UAC3D,OAAO,IAAII,uBAAY,CAACH,OAAO,EAAEC,IAAI,CAAC;QAC1C,CAAC,CAAC,OAAOG,CAAC,EAAE;UACR,OAAO,IAAIC,wBAAa,CAACD,CAAC,CAAC;QAC/B;MACJ;IACJ,CAAC;IACDE,WAAW,EAAE;MACTC,YAAY,EAAE,MAAAA,CAAOjB,CAAC,EAAE;QAAEkB;MAAK,CAAC,EAAEhB,OAAO,KAAK;QAC1C,OAAO,IAAAC,gBAAO,EAAC,MAAM;UACjB,IAAAC,kCAAgB,EAACF,OAAO,CAAC;UACzB,OAAOA,OAAO,CAACG,GAAG,CAACC,MAAM,CAACa,MAAM,CAACD,IAAI,CAAC;QAC1C,CAAC,CAAC;MACN,CAAC;MACDE,YAAY,EAAE,MAAAA,CAAOpB,CAAC,EAAE;QAAEC,EAAE;QAAEiB;MAAK,CAAC,EAAEhB,OAAO,KAAK;QAC9C,OAAO,IAAAC,gBAAO,EAAC,MAAM;UACjB,IAAAC,kCAAgB,EAACF,OAAO,CAAC;UACzB,OAAOA,OAAO,CAACG,GAAG,CAACC,MAAM,CAACe,MAAM,CAACpB,EAAE,EAAEiB,IAAI,CAAC;QAC9C,CAAC,CAAC;MACN,CAAC;MACDI,YAAY,EAAE,MAAAA,CAAOtB,CAAC,EAAE;QAAEC;MAAG,CAAC,EAAEC,OAAO,KAAK;QACxC,OAAO,IAAAC,gBAAO,EAAC,MAAM;UACjB,IAAAC,kCAAgB,EAACF,OAAO,CAAC;UACzB,OAAOA,OAAO,CAACG,GAAG,CAACC,MAAM,CAACiB,MAAM,CAACtB,EAAE,CAAC;QACxC,CAAC,CAAC;MACN;IACJ;EACJ;AACJ,CAAC,CAAC;AAACuB,OAAA,CAAA9B,YAAA,GAAAA,YAAA"}
@@ -11,12 +11,6 @@ const titleField = () => (0, _createModelField.createModelField)({
11
11
  validation: [{
12
12
  name: "required",
13
13
  message: "Value is required."
14
- }, {
15
- name: "minLength",
16
- settings: {
17
- value: "3"
18
- },
19
- message: "Value is too short."
20
14
  }]
21
15
  });
22
16
  const slugField = () => (0, _createModelField.createModelField)({
@@ -25,18 +19,6 @@ const slugField = () => (0, _createModelField.createModelField)({
25
19
  validation: [{
26
20
  name: "required",
27
21
  message: "Value is required."
28
- }, {
29
- name: "minLength",
30
- settings: {
31
- value: "3"
32
- },
33
- message: "Value is too short."
34
- }, {
35
- name: "maxLength",
36
- settings: {
37
- value: "100"
38
- },
39
- message: "Value is too long."
40
22
  }, {
41
23
  name: "pattern",
42
24
  settings: {
@@ -1 +1 @@
1
- {"version":3,"names":["titleField","createModelField","label","type","validation","name","message","settings","value","slugField","preset","regex","flags","typeField","parentIdField","FOLDER_MODEL_ID","createFolderModelDefinition","modelId","titleFieldId","layout","fields","description","isPrivate"],"sources":["folder.model.ts"],"sourcesContent":["import { createModelField } from \"~/utils/createModelField\";\nimport { CmsPrivateModelFull } from \"@webiny/api-headless-cms\";\n\nexport type FolderModelDefinition = Omit<CmsPrivateModelFull, \"noValidate\" | \"group\">;\n\nconst titleField = () =>\n createModelField({\n label: \"Title\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n },\n {\n name: \"minLength\",\n settings: {\n value: \"3\"\n },\n message: \"Value is too short.\"\n }\n ]\n });\n\nconst slugField = () =>\n createModelField({\n label: \"Slug\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n },\n {\n name: \"minLength\",\n settings: {\n value: \"3\"\n },\n message: \"Value is too short.\"\n },\n {\n name: \"maxLength\",\n settings: {\n value: \"100\"\n },\n message: \"Value is too long.\"\n },\n {\n name: \"pattern\",\n settings: {\n preset: \"custom\",\n regex: \"^[a-z0-9]+(-[a-z0-9]+)*$\",\n flags: \"g\"\n },\n message: \"Value must consist of only 'a-z', '0-9' and '-'.\"\n }\n ]\n });\n\nconst typeField = () =>\n createModelField({\n label: \"Type\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst parentIdField = () =>\n createModelField({\n label: \"Parent Id\",\n type: \"text\"\n });\n\nexport const FOLDER_MODEL_ID = \"acoFolder\";\n\nexport const createFolderModelDefinition = (): FolderModelDefinition => {\n return {\n name: \"ACO - Folder\",\n modelId: FOLDER_MODEL_ID,\n titleFieldId: \"title\",\n layout: [[\"title\"], [\"slug\"], [\"type\"], [\"parentId\"]],\n fields: [titleField(), slugField(), typeField(), parentIdField()],\n description: \"ACO - Folder content model\",\n isPrivate: true\n };\n};\n"],"mappings":";;;;;;AAAA;AAKA,MAAMA,UAAU,GAAG,MACf,IAAAC,kCAAgB,EAAC;EACbC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE,MAAM;EACZC,UAAU,EAAE,CACR;IACIC,IAAI,EAAE,UAAU;IAChBC,OAAO,EAAE;EACb,CAAC,EACD;IACID,IAAI,EAAE,WAAW;IACjBE,QAAQ,EAAE;MACNC,KAAK,EAAE;IACX,CAAC;IACDF,OAAO,EAAE;EACb,CAAC;AAET,CAAC,CAAC;AAEN,MAAMG,SAAS,GAAG,MACd,IAAAR,kCAAgB,EAAC;EACbC,KAAK,EAAE,MAAM;EACbC,IAAI,EAAE,MAAM;EACZC,UAAU,EAAE,CACR;IACIC,IAAI,EAAE,UAAU;IAChBC,OAAO,EAAE;EACb,CAAC,EACD;IACID,IAAI,EAAE,WAAW;IACjBE,QAAQ,EAAE;MACNC,KAAK,EAAE;IACX,CAAC;IACDF,OAAO,EAAE;EACb,CAAC,EACD;IACID,IAAI,EAAE,WAAW;IACjBE,QAAQ,EAAE;MACNC,KAAK,EAAE;IACX,CAAC;IACDF,OAAO,EAAE;EACb,CAAC,EACD;IACID,IAAI,EAAE,SAAS;IACfE,QAAQ,EAAE;MACNG,MAAM,EAAE,QAAQ;MAChBC,KAAK,EAAE,0BAA0B;MACjCC,KAAK,EAAE;IACX,CAAC;IACDN,OAAO,EAAE;EACb,CAAC;AAET,CAAC,CAAC;AAEN,MAAMO,SAAS,GAAG,MACd,IAAAZ,kCAAgB,EAAC;EACbC,KAAK,EAAE,MAAM;EACbC,IAAI,EAAE,MAAM;EACZC,UAAU,EAAE,CACR;IACIC,IAAI,EAAE,UAAU;IAChBC,OAAO,EAAE;EACb,CAAC;AAET,CAAC,CAAC;AAEN,MAAMQ,aAAa,GAAG,MAClB,IAAAb,kCAAgB,EAAC;EACbC,KAAK,EAAE,WAAW;EAClBC,IAAI,EAAE;AACV,CAAC,CAAC;AAEC,MAAMY,eAAe,GAAG,WAAW;AAAC;AAEpC,MAAMC,2BAA2B,GAAG,MAA6B;EACpE,OAAO;IACHX,IAAI,EAAE,cAAc;IACpBY,OAAO,EAAEF,eAAe;IACxBG,YAAY,EAAE,OAAO;IACrBC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;IACrDC,MAAM,EAAE,CAACpB,UAAU,EAAE,EAAES,SAAS,EAAE,EAAEI,SAAS,EAAE,EAAEC,aAAa,EAAE,CAAC;IACjEO,WAAW,EAAE,4BAA4B;IACzCC,SAAS,EAAE;EACf,CAAC;AACL,CAAC;AAAC"}
1
+ {"version":3,"names":["_createModelField","require","titleField","createModelField","label","type","validation","name","message","slugField","settings","preset","regex","flags","typeField","parentIdField","FOLDER_MODEL_ID","exports","createFolderModelDefinition","modelId","titleFieldId","layout","fields","description","isPrivate"],"sources":["folder.model.ts"],"sourcesContent":["import { createModelField } from \"~/utils/createModelField\";\nimport { CmsPrivateModelFull } from \"@webiny/api-headless-cms\";\n\nexport type FolderModelDefinition = Omit<CmsPrivateModelFull, \"noValidate\" | \"group\">;\n\nconst titleField = () =>\n createModelField({\n label: \"Title\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst slugField = () =>\n createModelField({\n label: \"Slug\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n },\n {\n name: \"pattern\",\n settings: {\n preset: \"custom\",\n regex: \"^[a-z0-9]+(-[a-z0-9]+)*$\",\n flags: \"g\"\n },\n message: \"Value must consist of only 'a-z', '0-9' and '-'.\"\n }\n ]\n });\n\nconst typeField = () =>\n createModelField({\n label: \"Type\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst parentIdField = () =>\n createModelField({\n label: \"Parent Id\",\n type: \"text\"\n });\n\nexport const FOLDER_MODEL_ID = \"acoFolder\";\n\nexport const createFolderModelDefinition = (): FolderModelDefinition => {\n return {\n name: \"ACO - Folder\",\n modelId: FOLDER_MODEL_ID,\n titleFieldId: \"title\",\n layout: [[\"title\"], [\"slug\"], [\"type\"], [\"parentId\"]],\n fields: [titleField(), slugField(), typeField(), parentIdField()],\n description: \"ACO - Folder content model\",\n isPrivate: true\n };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAKA,MAAMC,UAAU,GAAGA,CAAA,KACf,IAAAC,kCAAgB,EAAC;EACbC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE,MAAM;EACZC,UAAU,EAAE,CACR;IACIC,IAAI,EAAE,UAAU;IAChBC,OAAO,EAAE;EACb,CAAC;AAET,CAAC,CAAC;AAEN,MAAMC,SAAS,GAAGA,CAAA,KACd,IAAAN,kCAAgB,EAAC;EACbC,KAAK,EAAE,MAAM;EACbC,IAAI,EAAE,MAAM;EACZC,UAAU,EAAE,CACR;IACIC,IAAI,EAAE,UAAU;IAChBC,OAAO,EAAE;EACb,CAAC,EACD;IACID,IAAI,EAAE,SAAS;IACfG,QAAQ,EAAE;MACNC,MAAM,EAAE,QAAQ;MAChBC,KAAK,EAAE,0BAA0B;MACjCC,KAAK,EAAE;IACX,CAAC;IACDL,OAAO,EAAE;EACb,CAAC;AAET,CAAC,CAAC;AAEN,MAAMM,SAAS,GAAGA,CAAA,KACd,IAAAX,kCAAgB,EAAC;EACbC,KAAK,EAAE,MAAM;EACbC,IAAI,EAAE,MAAM;EACZC,UAAU,EAAE,CACR;IACIC,IAAI,EAAE,UAAU;IAChBC,OAAO,EAAE;EACb,CAAC;AAET,CAAC,CAAC;AAEN,MAAMO,aAAa,GAAGA,CAAA,KAClB,IAAAZ,kCAAgB,EAAC;EACbC,KAAK,EAAE,WAAW;EAClBC,IAAI,EAAE;AACV,CAAC,CAAC;AAEC,MAAMW,eAAe,GAAG,WAAW;AAACC,OAAA,CAAAD,eAAA,GAAAA,eAAA;AAEpC,MAAME,2BAA2B,GAAGA,CAAA,KAA6B;EACpE,OAAO;IACHX,IAAI,EAAE,cAAc;IACpBY,OAAO,EAAEH,eAAe;IACxBI,YAAY,EAAE,OAAO;IACrBC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;IACrDC,MAAM,EAAE,CAACpB,UAAU,CAAC,CAAC,EAAEO,SAAS,CAAC,CAAC,EAAEK,SAAS,CAAC,CAAC,EAAEC,aAAa,CAAC,CAAC,CAAC;IACjEQ,WAAW,EAAE,4BAA4B;IACzCC,SAAS,EAAE;EACf,CAAC;AACL,CAAC;AAACP,OAAA,CAAAC,2BAAA,GAAAA,2BAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["createFolderOperations","params","cms","withModel","createOperationsWrapper","modelName","FOLDER_MODEL_ID","getFolder","id","slug","type","parentId","model","entry","getEntryById","getEntry","where","latest","WebinyError","getFolderFieldValues","baseFields","checkExistingFolder","existings","listLatestEntries","id_not","limit","length","listFolders","sort","entries","meta","createListSort","map","createFolder","data","createEntry","updateFolder","original","undefined","input","updateEntry","deleteFolder","deleteEntry"],"sources":["folder.so.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\n\nimport { FOLDER_MODEL_ID } from \"./folder.model\";\nimport { baseFields, CreateAcoStorageOperationsParams } from \"~/createAcoStorageOperations\";\nimport { createListSort } from \"~/utils/createListSort\";\nimport { createOperationsWrapper } from \"~/utils/createOperationsWrapper\";\nimport { getFolderFieldValues } from \"~/utils/getFieldValues\";\n\nimport { AcoFolderStorageOperations } from \"./folder.types\";\n\ninterface AcoCheckExistingFolderParams {\n params: {\n type: string;\n slug: string;\n parentId?: string | null;\n };\n id?: string;\n}\n\nexport const createFolderOperations = (\n params: CreateAcoStorageOperationsParams\n): AcoFolderStorageOperations => {\n const { cms } = params;\n\n const { withModel } = createOperationsWrapper({\n ...params,\n modelName: FOLDER_MODEL_ID\n });\n\n const getFolder: AcoFolderStorageOperations[\"getFolder\"] = ({ id, slug, type, parentId }) => {\n return withModel(async model => {\n let entry;\n\n if (id) {\n entry = await cms.getEntryById(model, id);\n } else if (slug && type) {\n entry = await cms.getEntry(model, {\n where: { slug, type, parentId, latest: true }\n });\n }\n\n if (!entry) {\n throw new WebinyError(\"Could not load folder.\", \"GET_FOLDER_ERROR\", {\n id,\n slug,\n type,\n parentId\n });\n }\n\n return getFolderFieldValues(entry, baseFields);\n });\n };\n\n const checkExistingFolder = ({ id, params }: AcoCheckExistingFolderParams) => {\n return withModel(async model => {\n const { type, slug, parentId } = params;\n\n const [existings] = await cms.listLatestEntries(model, {\n where: {\n type,\n slug,\n parentId,\n id_not: id\n },\n limit: 1\n });\n\n if (existings.length > 0) {\n throw new WebinyError(\n `Folder with slug \"${slug}\" already exists at this level.`,\n \"FOLDER_ALREADY_EXISTS\",\n {\n id,\n params\n }\n );\n }\n\n return;\n });\n };\n\n return {\n getFolder,\n listFolders(params) {\n return withModel(async model => {\n const { sort, where } = params;\n\n const [entries, meta] = await cms.listLatestEntries(model, {\n ...params,\n sort: createListSort(sort),\n where: {\n ...(where || {})\n }\n });\n\n return [entries.map(entry => getFolderFieldValues(entry, baseFields)), meta];\n });\n },\n createFolder({ data }) {\n return withModel(async model => {\n await checkExistingFolder({\n params: {\n type: data.type,\n slug: data.slug,\n parentId: data.parentId\n }\n });\n\n const entry = await cms.createEntry(model, {\n ...data,\n parentId: data.parentId || null\n });\n\n return getFolderFieldValues(entry, baseFields);\n });\n },\n updateFolder({ id, data }) {\n return withModel(async model => {\n const { slug, parentId } = data;\n\n const original = await getFolder({ id });\n\n await checkExistingFolder({\n id,\n params: {\n type: original.type,\n slug: slug || original.slug,\n parentId: parentId !== undefined ? parentId : original.parentId // parentId can be `null`\n }\n });\n\n const input = {\n ...original,\n ...data\n };\n\n const entry = await cms.updateEntry(model, id, input);\n return getFolderFieldValues(entry, baseFields);\n });\n },\n deleteFolder({ id }) {\n return withModel(async model => {\n await cms.deleteEntry(model, id);\n return true;\n });\n }\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_folder","_createAcoStorageOperations","_createListSort","_createOperationsWrapper","_getFieldValues","createFolderOperations","params","cms","withModel","createOperationsWrapper","_objectSpread2","default","modelName","FOLDER_MODEL_ID","getFolder","id","slug","type","parentId","model","entry","getEntryById","getEntry","where","latest","WebinyError","getFolderFieldValues","baseFields","checkExistingFolder","existings","listLatestEntries","id_not","limit","length","listFolders","sort","entries","meta","createListSort","map","createFolder","data","createEntry","updateFolder","original","undefined","input","updateEntry","deleteFolder","deleteEntry","exports"],"sources":["folder.so.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\n\nimport { FOLDER_MODEL_ID } from \"./folder.model\";\nimport { baseFields, CreateAcoStorageOperationsParams } from \"~/createAcoStorageOperations\";\nimport { createListSort } from \"~/utils/createListSort\";\nimport { createOperationsWrapper } from \"~/utils/createOperationsWrapper\";\nimport { getFolderFieldValues } from \"~/utils/getFieldValues\";\n\nimport { AcoFolderStorageOperations } from \"./folder.types\";\n\ninterface AcoCheckExistingFolderParams {\n params: {\n type: string;\n slug: string;\n parentId?: string | null;\n };\n id?: string;\n}\n\nexport const createFolderOperations = (\n params: CreateAcoStorageOperationsParams\n): AcoFolderStorageOperations => {\n const { cms } = params;\n\n const { withModel } = createOperationsWrapper({\n ...params,\n modelName: FOLDER_MODEL_ID\n });\n\n const getFolder: AcoFolderStorageOperations[\"getFolder\"] = ({ id, slug, type, parentId }) => {\n return withModel(async model => {\n let entry;\n\n if (id) {\n entry = await cms.getEntryById(model, id);\n } else if (slug && type) {\n entry = await cms.getEntry(model, {\n where: { slug, type, parentId, latest: true }\n });\n }\n\n if (!entry) {\n throw new WebinyError(\"Could not load folder.\", \"GET_FOLDER_ERROR\", {\n id,\n slug,\n type,\n parentId\n });\n }\n\n return getFolderFieldValues(entry, baseFields);\n });\n };\n\n const checkExistingFolder = ({ id, params }: AcoCheckExistingFolderParams) => {\n return withModel(async model => {\n const { type, slug, parentId } = params;\n\n const [existings] = await cms.listLatestEntries(model, {\n where: {\n type,\n slug,\n parentId,\n id_not: id\n },\n limit: 1\n });\n\n if (existings.length > 0) {\n throw new WebinyError(\n `Folder with slug \"${slug}\" already exists at this level.`,\n \"FOLDER_ALREADY_EXISTS\",\n {\n id,\n params\n }\n );\n }\n\n return;\n });\n };\n\n return {\n getFolder,\n listFolders(params) {\n return withModel(async model => {\n const { sort, where } = params;\n\n const [entries, meta] = await cms.listLatestEntries(model, {\n ...params,\n sort: createListSort(sort),\n where: {\n ...(where || {})\n }\n });\n\n return [entries.map(entry => getFolderFieldValues(entry, baseFields)), meta];\n });\n },\n createFolder({ data }) {\n return withModel(async model => {\n await checkExistingFolder({\n params: {\n type: data.type,\n slug: data.slug,\n parentId: data.parentId\n }\n });\n\n const entry = await cms.createEntry(model, {\n ...data,\n parentId: data.parentId || null\n });\n\n return getFolderFieldValues(entry, baseFields);\n });\n },\n updateFolder({ id, data }) {\n return withModel(async model => {\n const { slug, parentId } = data;\n\n const original = await getFolder({ id });\n\n await checkExistingFolder({\n id,\n params: {\n type: original.type,\n slug: slug || original.slug,\n parentId: parentId !== undefined ? parentId : original.parentId // parentId can be `null`\n }\n });\n\n const input = {\n ...original,\n ...data\n };\n\n const entry = await cms.updateEntry(model, id, input);\n return getFolderFieldValues(entry, baseFields);\n });\n },\n deleteFolder({ id }) {\n return withModel(async model => {\n await cms.deleteEntry(model, id);\n return true;\n });\n }\n };\n};\n"],"mappings":"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"}
@@ -1,6 +1,11 @@
1
- import { AcoBaseFields, ListMeta, ListSort } from "../types";
1
+ import { ListMeta, ListSort, User } from "../types";
2
2
  import { Topic } from "@webiny/pubsub/types";
3
- export interface Folder extends AcoBaseFields {
3
+ export interface Folder {
4
+ id: string;
5
+ entryId: string;
6
+ createdOn: string;
7
+ createdBy: User;
8
+ savedOn: string;
4
9
  title: string;
5
10
  slug: string;
6
11
  type: string;
@@ -67,6 +72,7 @@ export interface AcoFolderCrud {
67
72
  create(data: CreateFolderParams): Promise<Folder>;
68
73
  update(id: string, data: UpdateFolderParams): Promise<Folder>;
69
74
  delete(id: string): Promise<Boolean>;
75
+ getFolderWithAncestors(id: string): Promise<Folder[]>;
70
76
  onFolderBeforeCreate: Topic<OnFolderBeforeCreateTopicParams>;
71
77
  onFolderAfterCreate: Topic<OnFolderAfterCreateTopicParams>;
72
78
  onFolderBeforeUpdate: Topic<OnFolderBeforeUpdateTopicParams>;
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["folder.types.ts"],"sourcesContent":["import { AcoBaseFields, ListMeta, ListSort } from \"~/types\";\nimport { Topic } from \"@webiny/pubsub/types\";\n\nexport interface Folder extends AcoBaseFields {\n title: string;\n slug: string;\n type: string;\n parentId?: string | null;\n}\n\nexport interface ListFoldersWhere {\n type: string;\n parentId?: string | null;\n}\n\nexport interface ListFoldersParams {\n where: ListFoldersWhere;\n sort?: ListSort;\n limit?: number;\n after?: string | null;\n}\n\nexport type CreateFolderParams = Pick<Folder, \"title\" | \"slug\" | \"type\" | \"parentId\">;\n\nexport interface UpdateFolderParams {\n title?: string;\n slug?: string;\n parentId?: string;\n}\n\nexport interface DeleteFolderParams {\n id: string;\n}\n\nexport interface StorageOperationsGetFolderParams {\n id?: string;\n slug?: string;\n type?: string;\n parentId?: string | null;\n}\n\nexport type StorageOperationsListFoldersParams = ListFoldersParams;\n\nexport interface StorageOperationsCreateFolderParams {\n data: CreateFolderParams;\n}\n\nexport interface StorageOperationsUpdateFolderParams {\n id: string;\n data: UpdateFolderParams;\n}\n\nexport type StorageOperationsDeleteFolderParams = DeleteFolderParams;\n\nexport interface OnFolderBeforeCreateTopicParams {\n input: CreateFolderParams;\n}\n\nexport interface OnFolderAfterCreateTopicParams {\n folder: Folder;\n}\n\nexport interface OnFolderBeforeUpdateTopicParams {\n original: Folder;\n input: Record<string, any>;\n}\n\nexport interface OnFolderAfterUpdateTopicParams {\n original: Folder;\n folder: Folder;\n input: Record<string, any>;\n}\n\nexport interface OnFolderBeforeDeleteTopicParams {\n folder: Folder;\n}\n\nexport interface OnFolderAfterDeleteTopicParams {\n folder: Folder;\n}\n\nexport interface AcoFolderCrud {\n get(id: string): Promise<Folder>;\n list(params: ListFoldersParams): Promise<[Folder[], ListMeta]>;\n create(data: CreateFolderParams): Promise<Folder>;\n update(id: string, data: UpdateFolderParams): Promise<Folder>;\n delete(id: string): Promise<Boolean>;\n onFolderBeforeCreate: Topic<OnFolderBeforeCreateTopicParams>;\n onFolderAfterCreate: Topic<OnFolderAfterCreateTopicParams>;\n onFolderBeforeUpdate: Topic<OnFolderBeforeUpdateTopicParams>;\n onFolderAfterUpdate: Topic<OnFolderAfterUpdateTopicParams>;\n onFolderBeforeDelete: Topic<OnFolderBeforeDeleteTopicParams>;\n onFolderAfterDelete: Topic<OnFolderAfterDeleteTopicParams>;\n}\n\nexport interface AcoFolderStorageOperations {\n getFolder(params: StorageOperationsGetFolderParams): Promise<Folder>;\n listFolders(params: StorageOperationsListFoldersParams): Promise<[Folder[], ListMeta]>;\n createFolder(params: StorageOperationsCreateFolderParams): Promise<Folder>;\n updateFolder(params: StorageOperationsUpdateFolderParams): Promise<Folder>;\n deleteFolder(params: StorageOperationsDeleteFolderParams): Promise<boolean>;\n}\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["folder.types.ts"],"sourcesContent":["import { ListMeta, ListSort, User } from \"~/types\";\nimport { Topic } from \"@webiny/pubsub/types\";\n\nexport interface Folder {\n id: string;\n entryId: string;\n createdOn: string;\n createdBy: User;\n savedOn: string;\n title: string;\n slug: string;\n type: string;\n parentId?: string | null;\n}\n\nexport interface ListFoldersWhere {\n type: string;\n parentId?: string | null;\n}\n\nexport interface ListFoldersParams {\n where: ListFoldersWhere;\n sort?: ListSort;\n limit?: number;\n after?: string | null;\n}\n\nexport type CreateFolderParams = Pick<Folder, \"title\" | \"slug\" | \"type\" | \"parentId\">;\n\nexport interface UpdateFolderParams {\n title?: string;\n slug?: string;\n parentId?: string;\n}\n\nexport interface DeleteFolderParams {\n id: string;\n}\n\nexport interface StorageOperationsGetFolderParams {\n id?: string;\n slug?: string;\n type?: string;\n parentId?: string | null;\n}\n\nexport type StorageOperationsListFoldersParams = ListFoldersParams;\n\nexport interface StorageOperationsCreateFolderParams {\n data: CreateFolderParams;\n}\n\nexport interface StorageOperationsUpdateFolderParams {\n id: string;\n data: UpdateFolderParams;\n}\n\nexport type StorageOperationsDeleteFolderParams = DeleteFolderParams;\n\nexport interface OnFolderBeforeCreateTopicParams {\n input: CreateFolderParams;\n}\n\nexport interface OnFolderAfterCreateTopicParams {\n folder: Folder;\n}\n\nexport interface OnFolderBeforeUpdateTopicParams {\n original: Folder;\n input: Record<string, any>;\n}\n\nexport interface OnFolderAfterUpdateTopicParams {\n original: Folder;\n folder: Folder;\n input: Record<string, any>;\n}\n\nexport interface OnFolderBeforeDeleteTopicParams {\n folder: Folder;\n}\n\nexport interface OnFolderAfterDeleteTopicParams {\n folder: Folder;\n}\n\nexport interface AcoFolderCrud {\n get(id: string): Promise<Folder>;\n list(params: ListFoldersParams): Promise<[Folder[], ListMeta]>;\n create(data: CreateFolderParams): Promise<Folder>;\n update(id: string, data: UpdateFolderParams): Promise<Folder>;\n delete(id: string): Promise<Boolean>;\n getFolderWithAncestors(id: string): Promise<Folder[]>;\n onFolderBeforeCreate: Topic<OnFolderBeforeCreateTopicParams>;\n onFolderAfterCreate: Topic<OnFolderAfterCreateTopicParams>;\n onFolderBeforeUpdate: Topic<OnFolderBeforeUpdateTopicParams>;\n onFolderAfterUpdate: Topic<OnFolderAfterUpdateTopicParams>;\n onFolderBeforeDelete: Topic<OnFolderBeforeDeleteTopicParams>;\n onFolderAfterDelete: Topic<OnFolderAfterDeleteTopicParams>;\n}\n\nexport interface AcoFolderStorageOperations {\n getFolder(params: StorageOperationsGetFolderParams): Promise<Folder>;\n listFolders(params: StorageOperationsListFoldersParams): Promise<[Folder[], ListMeta]>;\n createFolder(params: StorageOperationsCreateFolderParams): Promise<Folder>;\n updateFolder(params: StorageOperationsUpdateFolderParams): Promise<Folder>;\n deleteFolder(params: StorageOperationsDeleteFolderParams): Promise<boolean>;\n}\n"],"mappings":""}
@@ -6,6 +6,11 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.onFolderBeforeDeleteHook = void 0;
8
8
  var _error = _interopRequireDefault(require("@webiny/error"));
9
+ const throwDeleteError = folder => {
10
+ throw new _error.default("Error: delete all child folders and entries before proceeding.", "DELETE_FOLDER_WITH_CHILDREN", {
11
+ folder
12
+ });
13
+ };
9
14
  const onFolderBeforeDeleteHook = ({
10
15
  aco
11
16
  }) => {
@@ -17,8 +22,9 @@ const onFolderBeforeDeleteHook = ({
17
22
  id,
18
23
  type
19
24
  } = folder;
20
-
21
- // Fetching all child folders
25
+ /**
26
+ * First we check for the child folders.
27
+ */
22
28
  const [children] = await aco.folder.list({
23
29
  where: {
24
30
  type,
@@ -26,9 +32,16 @@ const onFolderBeforeDeleteHook = ({
26
32
  },
27
33
  limit: 1
28
34
  });
29
-
30
- // Fetching all records inside the folder
31
- const [records] = await aco.search.list({
35
+ if (children.length > 0) {
36
+ throwDeleteError(folder);
37
+ }
38
+ let app = undefined;
39
+ try {
40
+ app = aco.getApp(type);
41
+ } catch {
42
+ return;
43
+ }
44
+ const [records] = await app.search.list({
32
45
  where: {
33
46
  type,
34
47
  location: {
@@ -37,11 +50,10 @@ const onFolderBeforeDeleteHook = ({
37
50
  },
38
51
  limit: 1
39
52
  });
40
- if (children.length > 0 || records.length > 0) {
41
- throw new _error.default("Error: delete all child folders and entries before proceeding.", "DELETE_FOLDER_WITH_CHILDREN", {
42
- folder
43
- });
53
+ if (records.length === 0) {
54
+ return;
44
55
  }
56
+ throwDeleteError(folder);
45
57
  } catch (error) {
46
58
  throw _error.default.from(error, {
47
59
  message: "Error while executing onFolderBeforeDelete hook",
@@ -1 +1 @@
1
- {"version":3,"names":["onFolderBeforeDeleteHook","aco","folder","onFolderBeforeDelete","subscribe","id","type","children","list","where","parentId","limit","records","search","location","folderId","length","WebinyError","error","from","message","code"],"sources":["onFolderBeforeDelete.hook.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { AcoContext } from \"~/types\";\n\nexport const onFolderBeforeDeleteHook = ({ aco }: AcoContext) => {\n aco.folder.onFolderBeforeDelete.subscribe(async ({ folder }) => {\n try {\n const { id, type } = folder;\n\n // Fetching all child folders\n const [children] = await aco.folder.list({\n where: { type, parentId: id },\n limit: 1\n });\n\n // Fetching all records inside the folder\n const [records] = await aco.search.list({\n where: { type, location: { folderId: id } },\n limit: 1\n });\n\n if (children.length > 0 || records.length > 0) {\n throw new WebinyError(\n \"Error: delete all child folders and entries before proceeding.\",\n \"DELETE_FOLDER_WITH_CHILDREN\",\n {\n folder\n }\n );\n }\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Error while executing onFolderBeforeDelete hook\",\n code: \"ACO_BEFORE_FOLDER_DELETE_HOOK\"\n });\n }\n });\n};\n"],"mappings":";;;;;;;AAAA;AAGO,MAAMA,wBAAwB,GAAG,CAAC;EAAEC;AAAgB,CAAC,KAAK;EAC7DA,GAAG,CAACC,MAAM,CAACC,oBAAoB,CAACC,SAAS,CAAC,OAAO;IAAEF;EAAO,CAAC,KAAK;IAC5D,IAAI;MACA,MAAM;QAAEG,EAAE;QAAEC;MAAK,CAAC,GAAGJ,MAAM;;MAE3B;MACA,MAAM,CAACK,QAAQ,CAAC,GAAG,MAAMN,GAAG,CAACC,MAAM,CAACM,IAAI,CAAC;QACrCC,KAAK,EAAE;UAAEH,IAAI;UAAEI,QAAQ,EAAEL;QAAG,CAAC;QAC7BM,KAAK,EAAE;MACX,CAAC,CAAC;;MAEF;MACA,MAAM,CAACC,OAAO,CAAC,GAAG,MAAMX,GAAG,CAACY,MAAM,CAACL,IAAI,CAAC;QACpCC,KAAK,EAAE;UAAEH,IAAI;UAAEQ,QAAQ,EAAE;YAAEC,QAAQ,EAAEV;UAAG;QAAE,CAAC;QAC3CM,KAAK,EAAE;MACX,CAAC,CAAC;MAEF,IAAIJ,QAAQ,CAACS,MAAM,GAAG,CAAC,IAAIJ,OAAO,CAACI,MAAM,GAAG,CAAC,EAAE;QAC3C,MAAM,IAAIC,cAAW,CACjB,gEAAgE,EAChE,6BAA6B,EAC7B;UACIf;QACJ,CAAC,CACJ;MACL;IACJ,CAAC,CAAC,OAAOgB,KAAK,EAAE;MACZ,MAAMD,cAAW,CAACE,IAAI,CAACD,KAAK,EAAE;QAC1BE,OAAO,EAAE,iDAAiD;QAC1DC,IAAI,EAAE;MACV,CAAC,CAAC;IACN;EACJ,CAAC,CAAC;AACN,CAAC;AAAC"}
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","throwDeleteError","folder","WebinyError","onFolderBeforeDeleteHook","aco","onFolderBeforeDelete","subscribe","id","type","children","list","where","parentId","limit","length","app","undefined","getApp","records","search","location","folderId","error","from","message","code","exports"],"sources":["onFolderBeforeDelete.hook.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { AcoContext, Folder, IAcoApp } from \"~/types\";\n\nconst throwDeleteError = (folder: Folder) => {\n throw new WebinyError(\n \"Error: delete all child folders and entries before proceeding.\",\n \"DELETE_FOLDER_WITH_CHILDREN\",\n {\n folder\n }\n );\n};\n\nexport const onFolderBeforeDeleteHook = ({ aco }: AcoContext) => {\n aco.folder.onFolderBeforeDelete.subscribe(async ({ folder }) => {\n try {\n const { id, type } = folder;\n /**\n * First we check for the child folders.\n */\n const [children] = await aco.folder.list({\n where: {\n type,\n parentId: id\n },\n limit: 1\n });\n if (children.length > 0) {\n throwDeleteError(folder);\n }\n\n let app: IAcoApp | undefined = undefined;\n try {\n app = aco.getApp(type);\n } catch {\n return;\n }\n const [records] = await app.search.list({\n where: {\n type,\n location: {\n folderId: id\n }\n },\n limit: 1\n });\n if (records.length === 0) {\n return;\n }\n throwDeleteError(folder);\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Error while executing onFolderBeforeDelete hook\",\n code: \"ACO_BEFORE_FOLDER_DELETE_HOOK\"\n });\n }\n });\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA,MAAMC,gBAAgB,GAAIC,MAAc,IAAK;EACzC,MAAM,IAAIC,cAAW,CACjB,gEAAgE,EAChE,6BAA6B,EAC7B;IACID;EACJ,CACJ,CAAC;AACL,CAAC;AAEM,MAAME,wBAAwB,GAAGA,CAAC;EAAEC;AAAgB,CAAC,KAAK;EAC7DA,GAAG,CAACH,MAAM,CAACI,oBAAoB,CAACC,SAAS,CAAC,OAAO;IAAEL;EAAO,CAAC,KAAK;IAC5D,IAAI;MACA,MAAM;QAAEM,EAAE;QAAEC;MAAK,CAAC,GAAGP,MAAM;MAC3B;AACZ;AACA;MACY,MAAM,CAACQ,QAAQ,CAAC,GAAG,MAAML,GAAG,CAACH,MAAM,CAACS,IAAI,CAAC;QACrCC,KAAK,EAAE;UACHH,IAAI;UACJI,QAAQ,EAAEL;QACd,CAAC;QACDM,KAAK,EAAE;MACX,CAAC,CAAC;MACF,IAAIJ,QAAQ,CAACK,MAAM,GAAG,CAAC,EAAE;QACrBd,gBAAgB,CAACC,MAAM,CAAC;MAC5B;MAEA,IAAIc,GAAwB,GAAGC,SAAS;MACxC,IAAI;QACAD,GAAG,GAAGX,GAAG,CAACa,MAAM,CAACT,IAAI,CAAC;MAC1B,CAAC,CAAC,MAAM;QACJ;MACJ;MACA,MAAM,CAACU,OAAO,CAAC,GAAG,MAAMH,GAAG,CAACI,MAAM,CAACT,IAAI,CAAC;QACpCC,KAAK,EAAE;UACHH,IAAI;UACJY,QAAQ,EAAE;YACNC,QAAQ,EAAEd;UACd;QACJ,CAAC;QACDM,KAAK,EAAE;MACX,CAAC,CAAC;MACF,IAAIK,OAAO,CAACJ,MAAM,KAAK,CAAC,EAAE;QACtB;MACJ;MACAd,gBAAgB,CAACC,MAAM,CAAC;IAC5B,CAAC,CAAC,OAAOqB,KAAK,EAAE;MACZ,MAAMpB,cAAW,CAACqB,IAAI,CAACD,KAAK,EAAE;QAC1BE,OAAO,EAAE,iDAAiD;QAC1DC,IAAI,EAAE;MACV,CAAC,CAAC;IACN;EACJ,CAAC,CAAC;AACN,CAAC;AAACC,OAAA,CAAAvB,wBAAA,GAAAA,wBAAA"}
package/index.d.ts CHANGED
@@ -1,3 +1,5 @@
1
1
  export { SEARCH_RECORD_MODEL_ID } from "./record/record.model";
2
2
  export { FOLDER_MODEL_ID } from "./folder/folder.model";
3
- export declare const createAco: () => (import("@webiny/api").ContextPlugin<import("./types").AcoContext> | import("@webiny/api-headless-cms/types").CmsModelFieldToGraphQLPlugin<import("@webiny/api-headless-cms/types").CmsModelField>[] | import("@webiny/handler").ContextPlugin<import("@webiny/api-admin-settings/types").AdminSettingsContext>)[];
3
+ export * from "./apps";
4
+ export * from "./plugins";
5
+ export declare const createAco: () => (import("@webiny/api-headless-cms/types").CmsModelFieldToGraphQLPlugin<import("@webiny/api-headless-cms/types").CmsModelField> | import("@webiny/api").ContextPlugin<import("./types").AcoContext> | import("@webiny/handler-graphql").GraphQLSchemaPlugin<import("./types").AcoContext>)[];
package/index.js CHANGED
@@ -3,6 +3,11 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ var _exportNames = {
7
+ createAco: true,
8
+ SEARCH_RECORD_MODEL_ID: true,
9
+ FOLDER_MODEL_ID: true
10
+ };
6
11
  Object.defineProperty(exports, "FOLDER_MODEL_ID", {
7
12
  enumerable: true,
8
13
  get: function () {
@@ -16,13 +21,36 @@ Object.defineProperty(exports, "SEARCH_RECORD_MODEL_ID", {
16
21
  }
17
22
  });
18
23
  exports.createAco = void 0;
19
- var _apiAdminSettings = require("@webiny/api-admin-settings");
20
24
  var _createAcoContext = require("./createAcoContext");
21
- var _createAcoFields = require("./createAcoFields");
22
25
  var _createAcoGraphQL = require("./createAcoGraphQL");
26
+ var _fields = require("./fields");
23
27
  var _record = require("./record/record.model");
24
28
  var _folder = require("./folder/folder.model");
29
+ var _apps = require("./apps");
30
+ Object.keys(_apps).forEach(function (key) {
31
+ if (key === "default" || key === "__esModule") return;
32
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
33
+ if (key in exports && exports[key] === _apps[key]) return;
34
+ Object.defineProperty(exports, key, {
35
+ enumerable: true,
36
+ get: function () {
37
+ return _apps[key];
38
+ }
39
+ });
40
+ });
41
+ var _plugins = require("./plugins");
42
+ Object.keys(_plugins).forEach(function (key) {
43
+ if (key === "default" || key === "__esModule") return;
44
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
45
+ if (key in exports && exports[key] === _plugins[key]) return;
46
+ Object.defineProperty(exports, key, {
47
+ enumerable: true,
48
+ get: function () {
49
+ return _plugins[key];
50
+ }
51
+ });
52
+ });
25
53
  const createAco = () => {
26
- return [...(0, _apiAdminSettings.createAdminSettingsContext)(), (0, _createAcoContext.createAcoContext)(), (0, _createAcoFields.createAcoFields)(), (0, _createAcoGraphQL.createAcoGraphQL)()];
54
+ return [...(0, _fields.createFields)(), (0, _createAcoContext.createAcoContext)(), ...(0, _createAcoGraphQL.createAcoGraphQL)()];
27
55
  };
28
56
  exports.createAco = createAco;
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["createAco","createAdminSettingsContext","createAcoContext","createAcoFields","createAcoGraphQL"],"sources":["index.ts"],"sourcesContent":["import { createAdminSettingsContext } from \"@webiny/api-admin-settings\";\n\nimport { createAcoContext } from \"~/createAcoContext\";\nimport { createAcoFields } from \"~/createAcoFields\";\nimport { createAcoGraphQL } from \"~/createAcoGraphQL\";\n\nexport { SEARCH_RECORD_MODEL_ID } from \"./record/record.model\";\nexport { FOLDER_MODEL_ID } from \"./folder/folder.model\";\n\nexport const createAco = () => {\n return [\n ...createAdminSettingsContext(),\n createAcoContext(),\n createAcoFields(),\n createAcoGraphQL()\n ];\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAEA;AACA;AACA;AAEA;AACA;AAEO,MAAMA,SAAS,GAAG,MAAM;EAC3B,OAAO,CACH,GAAG,IAAAC,4CAA0B,GAAE,EAC/B,IAAAC,kCAAgB,GAAE,EAClB,IAAAC,gCAAe,GAAE,EACjB,IAAAC,kCAAgB,GAAE,CACrB;AACL,CAAC;AAAC"}
1
+ {"version":3,"names":["_createAcoContext","require","_createAcoGraphQL","_fields","_record","_folder","_apps","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_plugins","createAco","createFields","createAcoContext","createAcoGraphQL"],"sources":["index.ts"],"sourcesContent":["import { createAcoContext } from \"~/createAcoContext\";\nimport { createAcoGraphQL } from \"~/createAcoGraphQL\";\nimport { createFields } from \"~/fields\";\n\nexport { SEARCH_RECORD_MODEL_ID } from \"./record/record.model\";\nexport { FOLDER_MODEL_ID } from \"./folder/folder.model\";\nexport * from \"./apps\";\nexport * from \"./plugins\";\n\nexport const createAco = () => {\n return [...createFields(), createAcoContext(), ...createAcoGraphQL()];\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAEA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AAAAM,MAAA,CAAAC,IAAA,CAAAF,KAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,KAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,KAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,QAAA,GAAAlB,OAAA;AAAAM,MAAA,CAAAC,IAAA,CAAAW,QAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,QAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,QAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AAEO,MAAMU,SAAS,GAAGA,CAAA,KAAM;EAC3B,OAAO,CAAC,GAAG,IAAAC,oBAAY,EAAC,CAAC,EAAE,IAAAC,kCAAgB,EAAC,CAAC,EAAE,GAAG,IAAAC,kCAAgB,EAAC,CAAC,CAAC;AACzE,CAAC;AAACR,OAAA,CAAAK,SAAA,GAAAA,SAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-aco",
3
- "version": "5.37.0-beta.0",
3
+ "version": "5.37.0-beta.2",
4
4
  "main": "index.js",
5
5
  "keywords": [
6
6
  "aco:base"
@@ -22,37 +22,39 @@
22
22
  "directory": "dist"
23
23
  },
24
24
  "dependencies": {
25
- "@webiny/api": "5.37.0-beta.0",
26
- "@webiny/api-admin-settings": "5.37.0-beta.0",
27
- "@webiny/api-headless-cms": "5.37.0-beta.0",
28
- "@webiny/api-i18n": "5.37.0-beta.0",
29
- "@webiny/api-security": "5.37.0-beta.0",
30
- "@webiny/api-tenancy": "5.37.0-beta.0",
31
- "@webiny/error": "5.37.0-beta.0",
32
- "@webiny/handler": "5.37.0-beta.0",
33
- "@webiny/handler-graphql": "5.37.0-beta.0",
34
- "@webiny/pubsub": "5.37.0-beta.0",
35
- "@webiny/utils": "5.37.0-beta.0",
25
+ "@ungap/structured-clone": "1.2.0",
26
+ "@webiny/api": "5.37.0-beta.2",
27
+ "@webiny/api-headless-cms": "5.37.0-beta.2",
28
+ "@webiny/api-i18n": "5.37.0-beta.2",
29
+ "@webiny/api-security": "5.37.0-beta.2",
30
+ "@webiny/api-tenancy": "5.37.0-beta.2",
31
+ "@webiny/error": "5.37.0-beta.2",
32
+ "@webiny/handler": "5.37.0-beta.2",
33
+ "@webiny/handler-graphql": "5.37.0-beta.2",
34
+ "@webiny/pubsub": "5.37.0-beta.2",
35
+ "@webiny/utils": "5.37.0-beta.2",
36
36
  "lodash": "4.17.21"
37
37
  },
38
38
  "devDependencies": {
39
- "@babel/cli": "7.20.7",
40
- "@babel/core": "7.20.12",
41
- "@babel/preset-env": "7.20.2",
42
- "@babel/preset-typescript": "7.18.6",
43
- "@babel/runtime": "7.20.13",
44
- "@webiny/api-headless-cms-ddb": "5.37.0-beta.0",
45
- "@webiny/api-i18n-ddb": "5.37.0-beta.0",
46
- "@webiny/api-security-so-ddb": "5.37.0-beta.0",
47
- "@webiny/api-tenancy-so-ddb": "5.37.0-beta.0",
48
- "@webiny/api-wcp": "5.37.0-beta.0",
49
- "@webiny/cli": "5.37.0-beta.0",
50
- "@webiny/handler-aws": "5.37.0-beta.0",
51
- "@webiny/plugins": "5.37.0-beta.0",
52
- "@webiny/project-utils": "5.37.0-beta.0",
39
+ "@babel/cli": "7.22.6",
40
+ "@babel/core": "7.22.8",
41
+ "@babel/preset-env": "7.22.7",
42
+ "@babel/preset-typescript": "7.22.5",
43
+ "@babel/runtime": "7.22.6",
44
+ "@types/ungap__structured-clone": "0.3.0",
45
+ "@webiny/api-i18n-ddb": "5.37.0-beta.2",
46
+ "@webiny/api-security-so-ddb": "5.37.0-beta.2",
47
+ "@webiny/api-tenancy-so-ddb": "5.37.0-beta.2",
48
+ "@webiny/api-wcp": "5.37.0-beta.2",
49
+ "@webiny/cli": "5.37.0-beta.2",
50
+ "@webiny/handler-aws": "5.37.0-beta.2",
51
+ "@webiny/plugins": "5.37.0-beta.2",
52
+ "@webiny/project-utils": "5.37.0-beta.2",
53
+ "graphql": "15.8.0",
54
+ "prettier": "2.8.8",
53
55
  "rimraf": "3.0.2",
54
56
  "ttypescript": "1.5.15",
55
57
  "typescript": "4.7.4"
56
58
  },
57
- "gitHead": "7bb6232942f0414e22a4549113dd112bb92e52c5"
59
+ "gitHead": "8d3f4ba102f9f73b0a17455fc401a15aea68ce63"
58
60
  }
@@ -0,0 +1,43 @@
1
+ import { Plugin } from "@webiny/plugins";
2
+ import { AcoContext, IAcoApp, IAcoAppAddFieldCallable, IAcoAppModifyFieldCallable, IAcoAppRemoveFieldCallable } from "../types";
3
+ import { Context } from "@webiny/handler/types";
4
+ export interface AcoAppModifierPluginModifyParams<T extends Context = AcoContext> {
5
+ app: IAcoApp;
6
+ context: T;
7
+ }
8
+ export interface AcoAppModifierPluginParamsCallable<T extends Context = AcoContext> {
9
+ (params: AppModifier<T>): Promise<void> | void;
10
+ }
11
+ export interface AcoAppModifierPluginParams<T extends Context = AcoContext> {
12
+ name: string;
13
+ cb: AcoAppModifierPluginParamsCallable<T>;
14
+ }
15
+ export interface AppModifier<T extends Context = AcoContext> {
16
+ /**
17
+ * We can access the app if really required.
18
+ * @internal
19
+ */
20
+ app: IAcoApp;
21
+ /**
22
+ * We can access the context if really required.
23
+ * @internal
24
+ */
25
+ context: T;
26
+ addField: IAcoAppAddFieldCallable;
27
+ removeField: IAcoAppRemoveFieldCallable;
28
+ modifyField: IAcoAppModifyFieldCallable;
29
+ }
30
+ export interface AppModifierParams<T extends Context = AcoContext> {
31
+ app: IAcoApp;
32
+ context: T;
33
+ }
34
+ export declare class AcoAppModifierPlugin<T extends Context = Context> extends Plugin {
35
+ static readonly type: string;
36
+ private readonly params;
37
+ private constructor();
38
+ static create<C extends Context = AcoContext>(params: AcoAppModifierPluginParams<C>): AcoAppModifierPlugin<C>;
39
+ canUse(app: IAcoApp): boolean;
40
+ modify(params: AcoAppModifierPluginModifyParams<T>): Promise<void>;
41
+ }
42
+ export declare type CreateAcoAppModifierCallable<T extends Context = AcoContext> = AcoAppModifierPluginParamsCallable<T>;
43
+ export declare const createAcoAppModifier: <T extends Context = AcoContext>(name: string, cb: CreateAcoAppModifierCallable<T>) => AcoAppModifierPlugin<T>;