@webiny/api-aco 0.0.0-ee-vpcs.549378cf03 → 0.0.0-unstable.085ff6572f

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 (149) hide show
  1. package/README.md +15 -0
  2. package/apps/AcoApp.d.ts +16 -0
  3. package/apps/AcoApp.js +108 -0
  4. package/apps/AcoApp.js.map +1 -0
  5. package/apps/AcoApps.d.ts +10 -0
  6. package/apps/AcoApps.js +76 -0
  7. package/apps/AcoApps.js.map +1 -0
  8. package/apps/app.gql.d.ts +3 -0
  9. package/apps/app.gql.js +58 -0
  10. package/apps/app.gql.js.map +1 -0
  11. package/apps/index.d.ts +2 -0
  12. package/apps/index.js +27 -0
  13. package/apps/index.js.map +1 -0
  14. package/createAcoContext.d.ts +3 -0
  15. package/createAcoContext.js +100 -0
  16. package/createAcoContext.js.map +1 -0
  17. package/createAcoGraphQL.d.ts +3 -0
  18. package/createAcoGraphQL.js +121 -0
  19. package/createAcoGraphQL.js.map +1 -0
  20. package/createAcoHooks.d.ts +2 -0
  21. package/createAcoHooks.js +11 -0
  22. package/createAcoHooks.js.map +1 -0
  23. package/createAcoModels.d.ts +2 -0
  24. package/createAcoModels.js +42 -0
  25. package/createAcoModels.js.map +1 -0
  26. package/createAcoStorageOperations.d.ts +10 -0
  27. package/createAcoStorageOperations.js +19 -0
  28. package/createAcoStorageOperations.js.map +1 -0
  29. package/fields/index.d.ts +2 -0
  30. package/fields/index.js +12 -0
  31. package/fields/index.js.map +1 -0
  32. package/fields/location.d.ts +2 -0
  33. package/fields/location.js +44 -0
  34. package/fields/location.js.map +1 -0
  35. package/folder/folder.crud.d.ts +3 -0
  36. package/folder/folder.crud.js +110 -0
  37. package/folder/folder.crud.js.map +1 -0
  38. package/folder/folder.gql.d.ts +3 -0
  39. package/folder/folder.gql.js +118 -0
  40. package/folder/folder.gql.js.map +1 -0
  41. package/folder/folder.model.d.ts +4 -0
  42. package/folder/folder.model.js +75 -0
  43. package/folder/folder.model.js.map +1 -0
  44. package/folder/folder.so.d.ts +3 -0
  45. package/folder/folder.so.js +151 -0
  46. package/folder/folder.so.js.map +1 -0
  47. package/folder/folder.types.d.ts +89 -0
  48. package/folder/folder.types.js +5 -0
  49. package/folder/folder.types.js.map +1 -0
  50. package/folder/onFolderBeforeDelete.hook.d.ts +2 -0
  51. package/folder/onFolderBeforeDelete.hook.js +66 -0
  52. package/folder/onFolderBeforeDelete.hook.js.map +1 -0
  53. package/index.d.ts +5 -9
  54. package/index.js +48 -63
  55. package/index.js.map +1 -1
  56. package/package.json +35 -30
  57. package/plugins/AcoAppModifierPlugin.d.ts +43 -0
  58. package/plugins/AcoAppModifierPlugin.js +59 -0
  59. package/plugins/AcoAppModifierPlugin.js.map +1 -0
  60. package/plugins/AcoAppRegisterPlugin.d.ts +8 -0
  61. package/plugins/AcoAppRegisterPlugin.js +22 -0
  62. package/plugins/AcoAppRegisterPlugin.js.map +1 -0
  63. package/plugins/index.d.ts +2 -0
  64. package/plugins/index.js +27 -0
  65. package/plugins/index.js.map +1 -0
  66. package/record/graphql/createAppResolvers.d.ts +14 -0
  67. package/record/graphql/createAppResolvers.js +108 -0
  68. package/record/graphql/createAppResolvers.js.map +1 -0
  69. package/record/graphql/createAppSchema.d.ts +9 -0
  70. package/record/graphql/createAppSchema.js +142 -0
  71. package/record/graphql/createAppSchema.js.map +1 -0
  72. package/record/record.crud.d.ts +3 -0
  73. package/record/record.crud.js +126 -0
  74. package/record/record.crud.js.map +1 -0
  75. package/record/record.gql.d.ts +8 -0
  76. package/record/record.gql.js +41 -0
  77. package/record/record.gql.js.map +1 -0
  78. package/record/record.model.d.ts +10 -0
  79. package/record/record.model.js +86 -0
  80. package/record/record.model.js.map +1 -0
  81. package/record/record.so.d.ts +3 -0
  82. package/record/record.so.js +150 -0
  83. package/record/record.so.js.map +1 -0
  84. package/record/record.types.d.ts +143 -0
  85. package/record/record.types.js +5 -0
  86. package/record/record.types.js.map +1 -0
  87. package/types.d.ts +73 -201
  88. package/types.js +35 -1
  89. package/types.js.map +1 -1
  90. package/utils/acoRecordId.d.ts +6 -0
  91. package/utils/acoRecordId.js +33 -0
  92. package/utils/acoRecordId.js.map +1 -0
  93. package/utils/checkPermissions.d.ts +2 -0
  94. package/utils/checkPermissions.js +14 -0
  95. package/utils/checkPermissions.js.map +1 -0
  96. package/utils/createListSort.d.ts +2 -0
  97. package/utils/createListSort.js +13 -0
  98. package/utils/createListSort.js.map +1 -0
  99. package/utils/createModelField.d.ts +5 -0
  100. package/utils/createModelField.js +37 -0
  101. package/utils/createModelField.js.map +1 -0
  102. package/utils/createOperationsWrapper.d.ts +9 -0
  103. package/utils/createOperationsWrapper.js +29 -0
  104. package/utils/createOperationsWrapper.js.map +1 -0
  105. package/utils/fieldResolver.d.ts +16 -0
  106. package/utils/fieldResolver.js +44 -0
  107. package/utils/fieldResolver.js.map +1 -0
  108. package/utils/getFieldValues.d.ts +5 -0
  109. package/utils/getFieldValues.js +16 -0
  110. package/utils/getFieldValues.js.map +1 -0
  111. package/utils/getFolderAndItsAncestors.d.ts +7 -0
  112. package/utils/getFolderAndItsAncestors.js +48 -0
  113. package/utils/getFolderAndItsAncestors.js.map +1 -0
  114. package/utils/isInstallationPending.d.ts +4 -0
  115. package/utils/isInstallationPending.js +21 -0
  116. package/utils/isInstallationPending.js.map +1 -0
  117. package/utils/modelFactory.d.ts +15 -0
  118. package/utils/modelFactory.js +25 -0
  119. package/utils/modelFactory.js.map +1 -0
  120. package/utils/resolve.d.ts +3 -0
  121. package/utils/resolve.js +24 -0
  122. package/utils/resolve.js.map +1 -0
  123. package/context/folders.d.ts +0 -2
  124. package/context/folders.js +0 -261
  125. package/context/folders.js.map +0 -1
  126. package/context/index.d.ts +0 -2
  127. package/context/index.js +0 -22
  128. package/context/index.js.map +0 -1
  129. package/context/links.d.ts +0 -2
  130. package/context/links.js +0 -270
  131. package/context/links.js.map +0 -1
  132. package/graphql/base.gql.d.ts +0 -3
  133. package/graphql/base.gql.js +0 -63
  134. package/graphql/base.gql.js.map +0 -1
  135. package/graphql/folders.gql.d.ts +0 -3
  136. package/graphql/folders.gql.js +0 -126
  137. package/graphql/folders.gql.js.map +0 -1
  138. package/graphql/index.d.ts +0 -1
  139. package/graphql/index.js +0 -15
  140. package/graphql/index.js.map +0 -1
  141. package/graphql/links.gql.d.ts +0 -3
  142. package/graphql/links.gql.js +0 -123
  143. package/graphql/links.gql.js.map +0 -1
  144. package/subscriptions/afterFolderDelete.d.ts +0 -3
  145. package/subscriptions/afterFolderDelete.js +0 -62
  146. package/subscriptions/afterFolderDelete.js.map +0 -1
  147. package/subscriptions/index.d.ts +0 -3
  148. package/subscriptions/index.js +0 -14
  149. package/subscriptions/index.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ import { CmsContext } from "@webiny/api-headless-cms/types";
2
+ export declare const createAcoModels: (context: CmsContext) => void;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createAcoModels = void 0;
7
+ var _apiHeadlessCms = require("@webiny/api-headless-cms");
8
+ var _folder = require("./folder/folder.model");
9
+ var _record = require("./record/record.model");
10
+ var _modelFactory = require("./utils/modelFactory");
11
+ const createAcoModels = context => {
12
+ const groupId = "contentModelGroup_aco";
13
+
14
+ /**
15
+ * Create a CmsGroup.
16
+ */
17
+ const cmsGroupPlugin = new _apiHeadlessCms.CmsGroupPlugin({
18
+ id: groupId,
19
+ slug: "aco",
20
+ name: "ACO",
21
+ description: "Group for Advanced Content Organisation and Search",
22
+ icon: "fas/folder",
23
+ isPrivate: true
24
+ });
25
+
26
+ /**
27
+ * Create CmsModel plugins.
28
+ */
29
+ const modelDefinitions = [(0, _folder.createFolderModelDefinition)(), (0, _record.createSearchModelDefinition)()];
30
+ const cmsModelPlugins = modelDefinitions.map(modelDefinition => {
31
+ return (0, _modelFactory.modelFactory)({
32
+ group: cmsGroupPlugin.contentModelGroup,
33
+ modelDefinition
34
+ });
35
+ });
36
+
37
+ /**
38
+ * Register them so that they are accessible in cms context
39
+ */
40
+ context.plugins.register([cmsGroupPlugin, cmsModelPlugins]);
41
+ };
42
+ exports.createAcoModels = createAcoModels;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAcoModels","context","groupId","cmsGroupPlugin","CmsGroupPlugin","id","slug","name","description","icon","isPrivate","modelDefinitions","createFolderModelDefinition","createSearchModelDefinition","cmsModelPlugins","map","modelDefinition","modelFactory","group","contentModelGroup","plugins","register"],"sources":["createAcoModels.ts"],"sourcesContent":["import { CmsGroupPlugin } from \"@webiny/api-headless-cms\";\nimport { CmsContext } from \"@webiny/api-headless-cms/types\";\nimport { createFolderModelDefinition } from \"~/folder/folder.model\";\nimport { createSearchModelDefinition } from \"~/record/record.model\";\nimport { modelFactory } from \"~/utils/modelFactory\";\n\nexport const createAcoModels = (context: CmsContext) => {\n const groupId = \"contentModelGroup_aco\";\n\n /**\n * Create a CmsGroup.\n */\n const cmsGroupPlugin = new CmsGroupPlugin({\n id: groupId,\n slug: \"aco\",\n name: \"ACO\",\n description: \"Group for Advanced Content Organisation and Search\",\n icon: \"fas/folder\",\n isPrivate: true\n });\n\n /**\n * Create CmsModel plugins.\n */\n const modelDefinitions = [createFolderModelDefinition(), createSearchModelDefinition()];\n const cmsModelPlugins = modelDefinitions.map(modelDefinition => {\n return modelFactory({\n group: cmsGroupPlugin.contentModelGroup,\n modelDefinition\n });\n });\n\n /**\n * Register them so that they are accessible in cms context\n */\n context.plugins.register([cmsGroupPlugin, cmsModelPlugins]);\n};\n"],"mappings":";;;;;;AAAA;AAEA;AACA;AACA;AAEO,MAAMA,eAAe,GAAIC,OAAmB,IAAK;EACpD,MAAMC,OAAO,GAAG,uBAAuB;;EAEvC;AACJ;AACA;EACI,MAAMC,cAAc,GAAG,IAAIC,8BAAc,CAAC;IACtCC,EAAE,EAAEH,OAAO;IACXI,IAAI,EAAE,KAAK;IACXC,IAAI,EAAE,KAAK;IACXC,WAAW,EAAE,oDAAoD;IACjEC,IAAI,EAAE,YAAY;IAClBC,SAAS,EAAE;EACf,CAAC,CAAC;;EAEF;AACJ;AACA;EACI,MAAMC,gBAAgB,GAAG,CAAC,IAAAC,mCAA2B,GAAE,EAAE,IAAAC,mCAA2B,GAAE,CAAC;EACvF,MAAMC,eAAe,GAAGH,gBAAgB,CAACI,GAAG,CAACC,eAAe,IAAI;IAC5D,OAAO,IAAAC,0BAAY,EAAC;MAChBC,KAAK,EAAEf,cAAc,CAACgB,iBAAiB;MACvCH;IACJ,CAAC,CAAC;EACN,CAAC,CAAC;;EAEF;AACJ;AACA;EACIf,OAAO,CAACmB,OAAO,CAACC,QAAQ,CAAC,CAAClB,cAAc,EAAEW,eAAe,CAAC,CAAC;AAC/D,CAAC;AAAC"}
@@ -0,0 +1,10 @@
1
+ import { CmsContext, HeadlessCms } from "@webiny/api-headless-cms/types";
2
+ import { Security } from "@webiny/api-security/types";
3
+ import { AcoStorageOperations } from "./types";
4
+ export interface CreateAcoStorageOperationsParams {
5
+ cms: HeadlessCms;
6
+ security: Security;
7
+ getCmsContext: () => CmsContext;
8
+ }
9
+ export declare const baseFields: string[];
10
+ export declare const createAcoStorageOperations: (params: CreateAcoStorageOperationsParams) => AcoStorageOperations;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.createAcoStorageOperations = exports.baseFields = void 0;
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
+ var _folder = require("./folder/folder.so");
10
+ var _record = require("./record/record.so");
11
+ var _createAcoModels = require("./createAcoModels");
12
+ const baseFields = ["id", "entryId", "createdBy", "createdOn", "savedOn"];
13
+ exports.baseFields = baseFields;
14
+ const createAcoStorageOperations = params => {
15
+ const context = params.getCmsContext();
16
+ (0, _createAcoModels.createAcoModels)(context);
17
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, (0, _folder.createFolderOperations)(params)), (0, _record.createSearchRecordOperations)(params));
18
+ };
19
+ exports.createAcoStorageOperations = createAcoStorageOperations;
@@ -0,0 +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"}
@@ -0,0 +1,2 @@
1
+ import { CmsModelFieldToGraphQLPlugin } from "@webiny/api-headless-cms/types";
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"],"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,GAAG,MAAsC;EAC9D,OAAO;IACH;EAAA,CACH;AACL,CAAC;AAAC"}
@@ -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"],"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,GAAG,MAAoC;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,gBAAgB,CAAC;QAAEV;MAAM,CAAC,EAAU;QAChC,OAAOD,aAAa,CAACC,KAAK,CAAC;MAC/B,CAAC;MACDW,iBAAiB,CAAC;QAAEX;MAAM,CAAC,EAAU;QACjC,OAAOD,aAAa,CAACC,KAAK,CAAC;MAC/B,CAAC;MACDY,eAAe,GAAW;QACtB,OAAQ,EAAC;MACb;IACJ,CAAC;IACDC,MAAM,EAAE;MACJD,eAAe,GAAW;QACtB,OAAQ,EAAC;MACb,CAAC;MACDE,gBAAgB,CAAC;QAAEd;MAAM,CAAC,EAAU;QAChC,OAAQ,GAAEA,KAAK,CAACC,OAAQ,oBAAmB;MAC/C;IACJ;EACJ,CAAC;AACL,CAAC;AAAC"}
@@ -0,0 +1,3 @@
1
+ import { CreateAcoParams } from "../types";
2
+ import { AcoFolderCrud } from "./folder.types";
3
+ export declare const createFolderCrudMethods: ({ storageOperations }: CreateAcoParams) => AcoFolderCrud;
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createFolderCrudMethods = void 0;
7
+ var _pubsub = require("@webiny/pubsub");
8
+ var _getFolderAndItsAncestors = require("../utils/getFolderAndItsAncestors");
9
+ const createFolderCrudMethods = ({
10
+ storageOperations
11
+ }) => {
12
+ // create
13
+ const onFolderBeforeCreate = (0, _pubsub.createTopic)("aco.onFolderBeforeCreate");
14
+ const onFolderAfterCreate = (0, _pubsub.createTopic)("aco.onFolderAfterCreate");
15
+ // update
16
+ const onFolderBeforeUpdate = (0, _pubsub.createTopic)("aco.onFolderBeforeUpdate");
17
+ const onFolderAfterUpdate = (0, _pubsub.createTopic)("aco.onFolderAfterUpdate");
18
+ // delete
19
+ const onFolderBeforeDelete = (0, _pubsub.createTopic)("aco.onFolderBeforeDelete");
20
+ const onFolderAfterDelete = (0, _pubsub.createTopic)("aco.onFolderAfterDelete");
21
+ return {
22
+ /**
23
+ * Lifecycle events
24
+ */
25
+ onFolderBeforeCreate,
26
+ onFolderAfterCreate,
27
+ onFolderBeforeUpdate,
28
+ onFolderAfterUpdate,
29
+ onFolderBeforeDelete,
30
+ onFolderAfterDelete,
31
+ async get(id) {
32
+ return storageOperations.getFolder({
33
+ id
34
+ });
35
+ },
36
+ async list(params) {
37
+ return storageOperations.listFolders(params);
38
+ },
39
+ async create(data) {
40
+ await onFolderBeforeCreate.publish({
41
+ input: data
42
+ });
43
+ const folder = await storageOperations.createFolder({
44
+ data
45
+ });
46
+ await onFolderAfterCreate.publish({
47
+ folder
48
+ });
49
+ return folder;
50
+ },
51
+ async update(id, data) {
52
+ const original = await storageOperations.getFolder({
53
+ id
54
+ });
55
+ await onFolderBeforeUpdate.publish({
56
+ original,
57
+ input: {
58
+ id,
59
+ data
60
+ }
61
+ });
62
+ const folder = await storageOperations.updateFolder({
63
+ id,
64
+ data
65
+ });
66
+ await onFolderAfterUpdate.publish({
67
+ original,
68
+ input: {
69
+ id,
70
+ data
71
+ },
72
+ folder
73
+ });
74
+ return folder;
75
+ },
76
+ async delete(id) {
77
+ const folder = await storageOperations.getFolder({
78
+ id
79
+ });
80
+ await onFolderBeforeDelete.publish({
81
+ folder
82
+ });
83
+ await storageOperations.deleteFolder({
84
+ id
85
+ });
86
+ await onFolderAfterDelete.publish({
87
+ folder
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
+ });
107
+ }
108
+ };
109
+ };
110
+ exports.createFolderCrudMethods = createFolderCrudMethods;
@@ -0,0 +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","getFolderWithAncestors","type","folders","where","limit","getFolderAndItsAncestors"],"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":"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"}
@@ -0,0 +1,3 @@
1
+ import { GraphQLSchemaPlugin } from "@webiny/handler-graphql/plugins/GraphQLSchemaPlugin";
2
+ import { AcoContext } from "../types";
3
+ export declare const folderSchema: GraphQLSchemaPlugin<AcoContext>;
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.folderSchema = void 0;
7
+ var _responses = require("@webiny/handler-graphql/responses");
8
+ var _GraphQLSchemaPlugin = require("@webiny/handler-graphql/plugins/GraphQLSchemaPlugin");
9
+ var _checkPermissions = require("../utils/checkPermissions");
10
+ var _resolve = require("../utils/resolve");
11
+ const folderSchema = new _GraphQLSchemaPlugin.GraphQLSchemaPlugin({
12
+ typeDefs: /* GraphQL */`
13
+ type Folder {
14
+ id: ID!
15
+ title: String!
16
+ slug: String!
17
+ type: String!
18
+ parentId: ID
19
+ savedOn: DateTime
20
+ createdOn: DateTime
21
+ createdBy: AcoUser
22
+ }
23
+
24
+ input FolderCreateInput {
25
+ title: String!
26
+ slug: String!
27
+ type: String!
28
+ parentId: ID
29
+ }
30
+
31
+ input FolderUpdateInput {
32
+ title: String
33
+ slug: String
34
+ parentId: ID
35
+ }
36
+
37
+ input FoldersListWhereInput {
38
+ type: String!
39
+ parentId: String
40
+ createdBy: ID
41
+ }
42
+
43
+ type FolderResponse {
44
+ data: Folder
45
+ error: AcoError
46
+ }
47
+
48
+ type FoldersListResponse {
49
+ data: [Folder]
50
+ error: AcoError
51
+ }
52
+
53
+ extend type AcoQuery {
54
+ getFolder(id: ID!): FolderResponse
55
+ listFolders(
56
+ where: FoldersListWhereInput!
57
+ limit: Int
58
+ after: String
59
+ sort: AcoSort
60
+ ): FoldersListResponse
61
+ }
62
+
63
+ extend type AcoMutation {
64
+ createFolder(data: FolderCreateInput!): FolderResponse
65
+ updateFolder(id: ID!, data: FolderUpdateInput!): FolderResponse
66
+ deleteFolder(id: ID!): AcoBooleanResponse
67
+ }
68
+ `,
69
+ resolvers: {
70
+ AcoQuery: {
71
+ getFolder: async (_, {
72
+ id
73
+ }, context) => {
74
+ return (0, _resolve.resolve)(() => {
75
+ (0, _checkPermissions.checkPermissions)(context);
76
+ return context.aco.folder.get(id);
77
+ });
78
+ },
79
+ listFolders: async (_, args, context) => {
80
+ try {
81
+ (0, _checkPermissions.checkPermissions)(context);
82
+ const [entries, meta] = await context.aco.folder.list(args);
83
+ return new _responses.ListResponse(entries, meta);
84
+ } catch (e) {
85
+ return new _responses.ErrorResponse(e);
86
+ }
87
+ }
88
+ },
89
+ AcoMutation: {
90
+ createFolder: async (_, {
91
+ data
92
+ }, context) => {
93
+ return (0, _resolve.resolve)(() => {
94
+ (0, _checkPermissions.checkPermissions)(context);
95
+ return context.aco.folder.create(data);
96
+ });
97
+ },
98
+ updateFolder: async (_, {
99
+ id,
100
+ data
101
+ }, context) => {
102
+ return (0, _resolve.resolve)(() => {
103
+ (0, _checkPermissions.checkPermissions)(context);
104
+ return context.aco.folder.update(id, data);
105
+ });
106
+ },
107
+ deleteFolder: async (_, {
108
+ id
109
+ }, context) => {
110
+ return (0, _resolve.resolve)(() => {
111
+ (0, _checkPermissions.checkPermissions)(context);
112
+ return context.aco.folder.delete(id);
113
+ });
114
+ }
115
+ }
116
+ }
117
+ });
118
+ exports.folderSchema = folderSchema;
@@ -0,0 +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 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,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,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"}
@@ -0,0 +1,4 @@
1
+ import { CmsPrivateModelFull } from "@webiny/api-headless-cms";
2
+ export declare type FolderModelDefinition = Omit<CmsPrivateModelFull, "noValidate" | "group">;
3
+ export declare const FOLDER_MODEL_ID = "acoFolder";
4
+ export declare const createFolderModelDefinition: () => FolderModelDefinition;
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createFolderModelDefinition = exports.FOLDER_MODEL_ID = void 0;
7
+ var _createModelField = require("../utils/createModelField");
8
+ const titleField = () => (0, _createModelField.createModelField)({
9
+ label: "Title",
10
+ type: "text",
11
+ validation: [{
12
+ name: "required",
13
+ message: "Value is required."
14
+ }, {
15
+ name: "minLength",
16
+ settings: {
17
+ value: "3"
18
+ },
19
+ message: "Value is too short."
20
+ }]
21
+ });
22
+ const slugField = () => (0, _createModelField.createModelField)({
23
+ label: "Slug",
24
+ type: "text",
25
+ validation: [{
26
+ name: "required",
27
+ 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
+ }, {
41
+ name: "pattern",
42
+ settings: {
43
+ preset: "custom",
44
+ regex: "^[a-z0-9]+(-[a-z0-9]+)*$",
45
+ flags: "g"
46
+ },
47
+ message: "Value must consist of only 'a-z', '0-9' and '-'."
48
+ }]
49
+ });
50
+ const typeField = () => (0, _createModelField.createModelField)({
51
+ label: "Type",
52
+ type: "text",
53
+ validation: [{
54
+ name: "required",
55
+ message: "Value is required."
56
+ }]
57
+ });
58
+ const parentIdField = () => (0, _createModelField.createModelField)({
59
+ label: "Parent Id",
60
+ type: "text"
61
+ });
62
+ const FOLDER_MODEL_ID = "acoFolder";
63
+ exports.FOLDER_MODEL_ID = FOLDER_MODEL_ID;
64
+ const createFolderModelDefinition = () => {
65
+ return {
66
+ name: "ACO - Folder",
67
+ modelId: FOLDER_MODEL_ID,
68
+ titleFieldId: "title",
69
+ layout: [["title"], ["slug"], ["type"], ["parentId"]],
70
+ fields: [titleField(), slugField(), typeField(), parentIdField()],
71
+ description: "ACO - Folder content model",
72
+ isPrivate: true
73
+ };
74
+ };
75
+ exports.createFolderModelDefinition = createFolderModelDefinition;
@@ -0,0 +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"}
@@ -0,0 +1,3 @@
1
+ import { CreateAcoStorageOperationsParams } from "../createAcoStorageOperations";
2
+ import { AcoFolderStorageOperations } from "./folder.types";
3
+ export declare const createFolderOperations: (params: CreateAcoStorageOperationsParams) => AcoFolderStorageOperations;