@webiny/api-aco 5.37.8 → 5.38.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/apps/AcoApp.d.ts +4 -0
  2. package/apps/AcoApp.js +44 -5
  3. package/apps/AcoApp.js.map +1 -1
  4. package/apps/AcoApps.js +3 -1
  5. package/apps/app.gql.js +6 -4
  6. package/apps/app.gql.js.map +1 -1
  7. package/apps/index.js +3 -1
  8. package/createAcoContext.js +90 -15
  9. package/createAcoContext.js.map +1 -1
  10. package/createAcoGraphQL.js +5 -2
  11. package/createAcoGraphQL.js.map +1 -1
  12. package/createAcoHooks.js +9 -3
  13. package/createAcoHooks.js.map +1 -1
  14. package/createAcoModels.js +5 -2
  15. package/createAcoModels.js.map +1 -1
  16. package/createAcoStorageOperations.js +5 -2
  17. package/createAcoStorageOperations.js.map +1 -1
  18. package/fields/index.js +3 -1
  19. package/fields/location.js +3 -1
  20. package/filter/filter.crud.d.ts +3 -0
  21. package/filter/filter.crud.js +94 -0
  22. package/filter/filter.crud.js.map +1 -0
  23. package/filter/filter.gql.d.ts +3 -0
  24. package/filter/filter.gql.js +150 -0
  25. package/filter/filter.gql.js.map +1 -0
  26. package/filter/filter.model.d.ts +4 -0
  27. package/filter/filter.model.js +127 -0
  28. package/filter/filter.model.js.map +1 -0
  29. package/filter/filter.so.d.ts +3 -0
  30. package/filter/filter.so.js +96 -0
  31. package/filter/filter.so.js.map +1 -0
  32. package/filter/filter.types.d.ts +95 -0
  33. package/filter/filter.types.js +14 -0
  34. package/filter/filter.types.js.map +1 -0
  35. package/folder/folder.crud.d.ts +8 -1
  36. package/folder/folder.crud.js +197 -15
  37. package/folder/folder.crud.js.map +1 -1
  38. package/folder/folder.gql.js +75 -7
  39. package/folder/folder.gql.js.map +1 -1
  40. package/folder/folder.model.js +49 -3
  41. package/folder/folder.model.js.map +1 -1
  42. package/folder/folder.so.js +12 -4
  43. package/folder/folder.so.js.map +1 -1
  44. package/folder/folder.types.d.ts +23 -0
  45. package/folder/folder.types.js +3 -1
  46. package/folder/folder.types.js.map +1 -1
  47. package/folder/onFolderBeforeDeleteAco.hook.d.ts +2 -0
  48. package/folder/{onFolderBeforeDelete.hook.js → onFolderBeforeDeleteAco.hook.js} +8 -6
  49. package/folder/onFolderBeforeDeleteAco.hook.js.map +1 -0
  50. package/folder/onFolderBeforeDeleteFm.hook.d.ts +2 -0
  51. package/folder/onFolderBeforeDeleteFm.hook.js +49 -0
  52. package/folder/onFolderBeforeDeleteFm.hook.js.map +1 -0
  53. package/folder/onFolderBeforeDeleteHcms.hook.d.ts +2 -0
  54. package/folder/onFolderBeforeDeleteHcms.hook.js +56 -0
  55. package/folder/onFolderBeforeDeleteHcms.hook.js.map +1 -0
  56. package/index.d.ts +1 -0
  57. package/index.js +12 -2
  58. package/index.js.map +1 -1
  59. package/package.json +25 -20
  60. package/plugins/AcoAppModifierPlugin.js +3 -1
  61. package/plugins/AcoAppRegisterPlugin.js +3 -1
  62. package/plugins/index.js +3 -1
  63. package/record/graphql/createAppResolvers.js +11 -9
  64. package/record/graphql/createAppResolvers.js.map +1 -1
  65. package/record/graphql/createAppSchema.js +3 -1
  66. package/record/record.crud.js +3 -1
  67. package/record/record.gql.js +3 -1
  68. package/record/record.model.js +3 -1
  69. package/record/record.so.js +3 -1
  70. package/record/record.types.d.ts +2 -1
  71. package/record/record.types.js +3 -1
  72. package/record/record.types.js.map +1 -1
  73. package/types.d.ts +19 -5
  74. package/types.js +16 -1
  75. package/types.js.map +1 -1
  76. package/utils/FolderLevelPermissions.d.ts +65 -0
  77. package/utils/FolderLevelPermissions.js +355 -0
  78. package/utils/FolderLevelPermissions.js.map +1 -0
  79. package/utils/acoRecordId.js +3 -1
  80. package/utils/createListSort.js +3 -1
  81. package/utils/createModelField.js +3 -1
  82. package/utils/createOperationsWrapper.js +3 -1
  83. package/utils/decorators/CmsEntriesCrudDecorators.d.ts +11 -0
  84. package/utils/decorators/CmsEntriesCrudDecorators.js +175 -0
  85. package/utils/decorators/CmsEntriesCrudDecorators.js.map +1 -0
  86. package/utils/ensureAuthentication.d.ts +2 -0
  87. package/utils/{checkPermissions.js → ensureAuthentication.js} +5 -3
  88. package/utils/ensureAuthentication.js.map +1 -0
  89. package/utils/fieldResolver.js +3 -1
  90. package/utils/getFieldValues.d.ts +2 -0
  91. package/utils/getFieldValues.js +9 -1
  92. package/utils/getFieldValues.js.map +1 -1
  93. package/utils/getFolderAndItsAncestors.d.ts +2 -2
  94. package/utils/getFolderAndItsAncestors.js +16 -11
  95. package/utils/getFolderAndItsAncestors.js.map +1 -1
  96. package/utils/isInstallationPending.js +3 -1
  97. package/utils/modelFactory.js +3 -1
  98. package/utils/resolve.js +3 -1
  99. package/folder/onFolderBeforeDelete.hook.d.ts +0 -2
  100. package/folder/onFolderBeforeDelete.hook.js.map +0 -1
  101. package/utils/checkPermissions.d.ts +0 -2
  102. package/utils/checkPermissions.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_handlerGraphql","require","ROOT_FOLDER","createFolderType","model","modelId","filterEntriesByFolderFactory","context","permissions","entries","folders","aco","folder","listAll","where","type","results","Promise","all","map","entry","_entry$location","folderId","location","find","id","NotFoundError","result","canAccessFolderContent","rwd","filter","CmsEntriesCrudDecorators","constructor","_defineProperty2","default","decorate","folderLevelPermissions","filterEntriesByFolder","originalCmsListEntries","cms","listEntries","bind","params","folderType","allFolders","listAllFoldersWithPermissions","_objectSpread2","wbyAco_location","folderId_in","originalCmsGetEntry","getEntry","_entry$location2","get","ensureCanAccessFolderContent","originalCmsGetEntryById","getEntryById","_entry$location3","originalGetLatestEntriesByIds","getLatestEntriesByIds","ids","originalGetPublishedEntriesByIds","getPublishedEntriesByIds","originalCmsCreateEntry","createEntry","_params$wbyAco_locati","_params$location","originalCmsUpdateEntry","updateEntry","input","meta","_entry$location4","storageOperations","getRevisionById","originalCmsDeleteEntry","deleteEntry","_entry$location5","originalCmsDeleteEntryRevision","deleteEntryRevision","_entry$location6","exports"],"sources":["CmsEntriesCrudDecorators.ts"],"sourcesContent":["import { AcoContext } from \"~/types\";\nimport { CmsEntry, CmsModel } from \"@webiny/api-headless-cms/types\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport { FolderLevelPermissions } from \"~/utils/FolderLevelPermissions\";\n\ntype Context = Pick<AcoContext, \"aco\" | \"cms\">;\n\nconst ROOT_FOLDER = \"root\";\n\nconst createFolderType = (model: Pick<CmsModel, \"modelId\">): string => {\n return `cms:${model.modelId}`;\n};\n\nconst filterEntriesByFolderFactory = (context: Context, permissions: FolderLevelPermissions) => {\n return async (model: CmsModel, entries: CmsEntry[]) => {\n const [folders] = await context.aco.folder.listAll({\n where: {\n type: createFolderType(model)\n }\n });\n\n const results = await Promise.all(\n entries.map(async entry => {\n const folderId = entry.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return entry;\n }\n const folder = folders.find(folder => folder.id === folderId);\n if (!folder) {\n throw new NotFoundError(`Folder \"${folderId}\" not found.`);\n }\n const result = await permissions.canAccessFolderContent({\n folder,\n rwd: \"r\"\n });\n return result ? entry : null;\n })\n );\n\n return results.filter((entry): entry is CmsEntry => !!entry);\n };\n};\n\ninterface EntryManagerCrudDecoratorsParams {\n context: Context;\n}\n\nexport class CmsEntriesCrudDecorators {\n private readonly context: Context;\n\n public constructor({ context }: EntryManagerCrudDecoratorsParams) {\n this.context = context;\n }\n\n public decorate() {\n const context = this.context;\n const folderLevelPermissions = context.aco.folderLevelPermissions;\n\n const filterEntriesByFolder = filterEntriesByFolderFactory(context, folderLevelPermissions);\n\n const originalCmsListEntries = context.cms.listEntries.bind(context.cms);\n context.cms.listEntries = async (model, params) => {\n const folderType = model.modelId === \"fmFile\" ? \"FmFile\" : `cms:${model.modelId}`;\n const allFolders = await folderLevelPermissions.listAllFoldersWithPermissions(\n folderType\n );\n\n return originalCmsListEntries(model, {\n ...params,\n where: {\n ...(params?.where || {}),\n wbyAco_location: {\n // At the moment, all users can access entries in the root folder.\n // Root folder level permissions cannot be set yet.\n folderId_in: [ROOT_FOLDER, ...allFolders.map(folder => folder.id)]\n }\n }\n });\n };\n\n const originalCmsGetEntry = context.cms.getEntry.bind(context.cms);\n context.cms.getEntry = async (model, params) => {\n const entry = await originalCmsGetEntry(model, params);\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return entry;\n }\n\n const folder = await context.aco.folder.get(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n folder,\n rwd: \"r\"\n });\n\n return entry;\n };\n\n const originalCmsGetEntryById = context.cms.getEntryById.bind(context.cms);\n context.cms.getEntryById = async (model, params) => {\n const entry = await originalCmsGetEntryById(model, params);\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return entry;\n }\n const folder = await context.aco.folder.get(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n folder,\n rwd: \"r\"\n });\n return entry;\n };\n\n const originalGetLatestEntriesByIds = context.cms.getLatestEntriesByIds.bind(context.cms);\n context.cms.getLatestEntriesByIds = async (model, ids) => {\n const entries = await originalGetLatestEntriesByIds(model, ids);\n\n return filterEntriesByFolder(model, entries);\n };\n\n const originalGetPublishedEntriesByIds = context.cms.getPublishedEntriesByIds.bind(\n context.cms\n );\n context.cms.getPublishedEntriesByIds = async (model, ids) => {\n const entries = await originalGetPublishedEntriesByIds(model, ids);\n return filterEntriesByFolder(model, entries);\n };\n\n const originalCmsCreateEntry = context.cms.createEntry.bind(context.cms);\n context.cms.createEntry = async (model, params) => {\n const folderId = params.wbyAco_location?.folderId || params.location?.folderId;\n\n if (!folderId || folderId === ROOT_FOLDER) {\n return originalCmsCreateEntry(model, params);\n }\n\n const folder = await context.aco.folder.get(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n folder,\n rwd: \"w\"\n });\n\n return originalCmsCreateEntry(model, params);\n };\n\n const originalCmsUpdateEntry = context.cms.updateEntry.bind(context.cms);\n context.cms.updateEntry = async (model, id, input, meta) => {\n const entry = await context.cms.storageOperations.entries.getRevisionById(model, {\n id\n });\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return originalCmsUpdateEntry(model, id, input, meta);\n }\n\n const folder = await context.aco.folder.get(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n folder,\n rwd: \"w\"\n });\n\n return originalCmsUpdateEntry(model, id, input, meta);\n };\n\n const originalCmsDeleteEntry = context.cms.deleteEntry.bind(context.cms);\n context.cms.deleteEntry = async (model, id) => {\n const entry = await context.cms.storageOperations.entries.getRevisionById(model, {\n id\n });\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return originalCmsDeleteEntry(model, id);\n }\n\n const folder = await context.aco.folder.get(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n folder,\n rwd: \"d\"\n });\n\n return originalCmsDeleteEntry(model, id);\n };\n\n const originalCmsDeleteEntryRevision = context.cms.deleteEntryRevision.bind(context.cms);\n context.cms.deleteEntryRevision = async (model, id) => {\n const entry = await context.cms.storageOperations.entries.getRevisionById(model, {\n id\n });\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return originalCmsDeleteEntryRevision(model, id);\n }\n\n const folder = await context.aco.folder.get(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n folder,\n rwd: \"d\"\n });\n\n return originalCmsDeleteEntryRevision(model, id);\n };\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { AcoContext } from "../types";
2
+ export declare const ensureAuthentication: (context: AcoContext) => void;
@@ -3,12 +3,14 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.checkPermissions = void 0;
6
+ exports.ensureAuthentication = void 0;
7
7
  var _apiSecurity = require("@webiny/api-security");
8
- const checkPermissions = context => {
8
+ const ensureAuthentication = context => {
9
9
  const identity = context.security.getIdentity();
10
10
  if (!identity) {
11
11
  throw new _apiSecurity.NotAuthorizedError();
12
12
  }
13
13
  };
14
- exports.checkPermissions = checkPermissions;
14
+ exports.ensureAuthentication = ensureAuthentication;
15
+
16
+ //# sourceMappingURL=ensureAuthentication.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_apiSecurity","require","ensureAuthentication","context","identity","security","getIdentity","NotAuthorizedError","exports"],"sources":["ensureAuthentication.ts"],"sourcesContent":["import { NotAuthorizedError } from \"@webiny/api-security\";\nimport { AcoContext } from \"~/types\";\n\nexport const ensureAuthentication = (context: AcoContext) => {\n const identity = context.security.getIdentity();\n if (!identity) {\n throw new NotAuthorizedError();\n }\n};\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAGO,MAAMC,oBAAoB,GAAIC,OAAmB,IAAK;EACzD,MAAMC,QAAQ,GAAGD,OAAO,CAACE,QAAQ,CAACC,WAAW,CAAC,CAAC;EAC/C,IAAI,CAACF,QAAQ,EAAE;IACX,MAAM,IAAIG,+BAAkB,CAAC,CAAC;EAClC;AACJ,CAAC;AAACC,OAAA,CAAAN,oBAAA,GAAAA,oBAAA"}
@@ -41,4 +41,6 @@ const getTransformer = (model, fieldId) => ({
41
41
  model: model,
42
42
  field: model.fields.find(field => field.fieldId === fieldId)
43
43
  });
44
- exports.getTransformer = getTransformer;
44
+ exports.getTransformer = getTransformer;
45
+
46
+ //# sourceMappingURL=fieldResolver.js.map
@@ -1,5 +1,7 @@
1
1
  import { CmsEntry } from "@webiny/api-headless-cms/types";
2
+ import { Filter } from "../filter/filter.types";
2
3
  import { Folder } from "../folder/folder.types";
3
4
  import { SearchRecord } from "../record/record.types";
4
5
  export declare function getRecordFieldValues(entry: CmsEntry<any>, fields?: string[]): SearchRecord<any>;
5
6
  export declare function getFolderFieldValues(entry: CmsEntry, fields: string[]): Folder;
7
+ export declare function getFilterFieldValues(entry: CmsEntry, fields: string[]): Filter;
@@ -4,6 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
+ exports.getFilterFieldValues = getFilterFieldValues;
7
8
  exports.getFolderFieldValues = getFolderFieldValues;
8
9
  exports.getRecordFieldValues = getRecordFieldValues;
9
10
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
@@ -13,4 +14,11 @@ function getRecordFieldValues(entry, fields) {
13
14
  }
14
15
  function getFolderFieldValues(entry, fields) {
15
16
  return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, (0, _pick.default)(entry, fields)), entry.values);
16
- }
17
+ }
18
+ function getFilterFieldValues(entry, fields) {
19
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, (0, _pick.default)(entry, fields)), {}, {
20
+ id: entry.entryId
21
+ }, entry.values);
22
+ }
23
+
24
+ //# sourceMappingURL=getFieldValues.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_pick","_interopRequireDefault","require","getRecordFieldValues","entry","fields","_objectSpread2","default","pick","values","getFolderFieldValues"],"sources":["getFieldValues.ts"],"sourcesContent":["import pick from \"lodash/pick\";\nimport { CmsEntry } from \"@webiny/api-headless-cms/types\";\nimport { Folder } from \"~/folder/folder.types\";\nimport { SearchRecord } from \"~/record/record.types\";\n\nexport function getRecordFieldValues(entry: CmsEntry<any>, fields?: string[]) {\n return {\n ...(fields ? pick(entry, fields) : entry),\n ...entry.values\n } as SearchRecord<any>;\n}\n\nexport function getFolderFieldValues(entry: CmsEntry, fields: string[]) {\n return { ...pick(entry, fields), ...entry.values } as Folder;\n}\n"],"mappings":";;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKO,SAASC,oBAAoBA,CAACC,KAAoB,EAAEC,MAAiB,EAAE;EAC1E,WAAAC,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MACQF,MAAM,GAAG,IAAAG,aAAI,EAACJ,KAAK,EAAEC,MAAM,CAAC,GAAGD,KAAK,GACrCA,KAAK,CAACK,MAAM;AAEvB;AAEO,SAASC,oBAAoBA,CAACN,KAAe,EAAEC,MAAgB,EAAE;EACpE,WAAAC,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MAAY,IAAAC,aAAI,EAACJ,KAAK,EAAEC,MAAM,CAAC,GAAKD,KAAK,CAACK,MAAM;AACpD"}
1
+ {"version":3,"names":["_pick","_interopRequireDefault","require","getRecordFieldValues","entry","fields","_objectSpread2","default","pick","values","getFolderFieldValues","getFilterFieldValues","id","entryId"],"sources":["getFieldValues.ts"],"sourcesContent":["import pick from \"lodash/pick\";\nimport { CmsEntry } from \"@webiny/api-headless-cms/types\";\nimport { Filter } from \"~/filter/filter.types\";\nimport { Folder } from \"~/folder/folder.types\";\nimport { SearchRecord } from \"~/record/record.types\";\n\nexport function getRecordFieldValues(entry: CmsEntry<any>, fields?: string[]) {\n return {\n ...(fields ? pick(entry, fields) : entry),\n ...entry.values\n } as SearchRecord<any>;\n}\n\nexport function getFolderFieldValues(entry: CmsEntry, fields: string[]) {\n return { ...pick(entry, fields), ...entry.values } as Folder;\n}\n\nexport function getFilterFieldValues(entry: CmsEntry, fields: string[]) {\n return { ...pick(entry, fields), id: entry.entryId, ...entry.values } as Filter;\n}\n"],"mappings":";;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAMO,SAASC,oBAAoBA,CAACC,KAAoB,EAAEC,MAAiB,EAAE;EAC1E,WAAAC,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MACQF,MAAM,GAAG,IAAAG,aAAI,EAACJ,KAAK,EAAEC,MAAM,CAAC,GAAGD,KAAK,GACrCA,KAAK,CAACK,MAAM;AAEvB;AAEO,SAASC,oBAAoBA,CAACN,KAAe,EAAEC,MAAgB,EAAE;EACpE,WAAAC,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MAAY,IAAAC,aAAI,EAACJ,KAAK,EAAEC,MAAM,CAAC,GAAKD,KAAK,CAACK,MAAM;AACpD;AAEO,SAASE,oBAAoBA,CAACP,KAAe,EAAEC,MAAgB,EAAE;EACpE,WAAAC,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MAAY,IAAAC,aAAI,EAACJ,KAAK,EAAEC,MAAM,CAAC;IAAEO,EAAE,EAAER,KAAK,CAACS;EAAO,GAAKT,KAAK,CAACK,MAAM;AACvE"}
@@ -1,7 +1,7 @@
1
1
  import { Folder } from "../folder/folder.types";
2
2
  interface GetFolderAndItsAncestorsParams {
3
- id: string;
3
+ folder: Folder;
4
4
  folders: Folder[];
5
5
  }
6
- export declare const getFolderAndItsAncestors: ({ id, folders }: GetFolderAndItsAncestorsParams) => Folder[];
6
+ export declare const getFolderAndItsAncestors: ({ folder, folders }: GetFolderAndItsAncestorsParams) => Folder[];
7
7
  export {};
@@ -5,32 +5,35 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.getFolderAndItsAncestors = void 0;
7
7
  const getFolderAndItsAncestors = ({
8
- id,
8
+ folder,
9
9
  folders
10
10
  }) => {
11
11
  // Create a Map with folders, using folder.id as key
12
12
  const folderMap = new Map();
13
13
  folders.forEach(folder => folderMap.set(folder.id, folder));
14
- const findParents = (next, id) => {
15
- const folder = folderMap.get(id);
16
-
14
+ const findParents = (next, current) => {
17
15
  // No folder found: return the result
18
- if (!folder) {
16
+ if (!current) {
19
17
  return next;
20
18
  }
21
19
 
22
20
  // Push the current folder into the accumulator array
23
- next.push(folder);
21
+ next.push(current);
24
22
 
25
23
  // No parentId found: return the result
26
- if (!folder.parentId) {
24
+ if (!current.parentId) {
25
+ return next;
26
+ }
27
+ const parent = folderMap.get(current.parentId);
28
+
29
+ // No parent found: return the result
30
+ if (!parent) {
27
31
  return next;
28
32
  }
29
33
 
30
34
  // Go ahead and find parent for the current parent
31
- return findParents(next, folder.parentId);
35
+ return findParents(next, parent);
32
36
  };
33
- const folder = folderMap.get(id);
34
37
 
35
38
  // No folder found: return an empty array
36
39
  if (!folder) {
@@ -43,6 +46,8 @@ const getFolderAndItsAncestors = ({
43
46
  }
44
47
 
45
48
  // Recursively find parents for a given folder id
46
- return findParents([], id);
49
+ return findParents([], folder);
47
50
  };
48
- exports.getFolderAndItsAncestors = getFolderAndItsAncestors;
51
+ exports.getFolderAndItsAncestors = getFolderAndItsAncestors;
52
+
53
+ //# sourceMappingURL=getFolderAndItsAncestors.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["getFolderAndItsAncestors","id","folders","folderMap","Map","forEach","folder","set","findParents","next","get","push","parentId","exports"],"sources":["getFolderAndItsAncestors.ts"],"sourcesContent":["import { Folder } from \"~/folder/folder.types\";\n\ninterface GetFolderAndItsAncestorsParams {\n id: string;\n folders: Folder[];\n}\n\nexport const getFolderAndItsAncestors = ({\n id,\n folders\n}: GetFolderAndItsAncestorsParams): Folder[] => {\n // Create a Map with folders, using folder.id as key\n const folderMap = new Map<string, Folder>();\n folders.forEach(folder => folderMap.set(folder.id, folder));\n\n const findParents = (next: Folder[], id: string): Folder[] => {\n const folder = folderMap.get(id);\n\n // No folder found: return the result\n if (!folder) {\n return next;\n }\n\n // Push the current folder into the accumulator array\n next.push(folder);\n\n // No parentId found: return the result\n if (!folder.parentId) {\n return next;\n }\n\n // Go ahead and find parent for the current parent\n return findParents(next, folder.parentId);\n };\n\n const folder = folderMap.get(id);\n\n // No folder found: return an empty array\n if (!folder) {\n return [];\n }\n\n // The folder has no parent (it's at root level): return an array with the folder\n if (!folder.parentId) {\n return [folder];\n }\n\n // Recursively find parents for a given folder id\n return findParents([], id);\n};\n"],"mappings":";;;;;;AAOO,MAAMA,wBAAwB,GAAGA,CAAC;EACrCC,EAAE;EACFC;AAC4B,CAAC,KAAe;EAC5C;EACA,MAAMC,SAAS,GAAG,IAAIC,GAAG,CAAiB,CAAC;EAC3CF,OAAO,CAACG,OAAO,CAACC,MAAM,IAAIH,SAAS,CAACI,GAAG,CAACD,MAAM,CAACL,EAAE,EAAEK,MAAM,CAAC,CAAC;EAE3D,MAAME,WAAW,GAAGA,CAACC,IAAc,EAAER,EAAU,KAAe;IAC1D,MAAMK,MAAM,GAAGH,SAAS,CAACO,GAAG,CAACT,EAAE,CAAC;;IAEhC;IACA,IAAI,CAACK,MAAM,EAAE;MACT,OAAOG,IAAI;IACf;;IAEA;IACAA,IAAI,CAACE,IAAI,CAACL,MAAM,CAAC;;IAEjB;IACA,IAAI,CAACA,MAAM,CAACM,QAAQ,EAAE;MAClB,OAAOH,IAAI;IACf;;IAEA;IACA,OAAOD,WAAW,CAACC,IAAI,EAAEH,MAAM,CAACM,QAAQ,CAAC;EAC7C,CAAC;EAED,MAAMN,MAAM,GAAGH,SAAS,CAACO,GAAG,CAACT,EAAE,CAAC;;EAEhC;EACA,IAAI,CAACK,MAAM,EAAE;IACT,OAAO,EAAE;EACb;;EAEA;EACA,IAAI,CAACA,MAAM,CAACM,QAAQ,EAAE;IAClB,OAAO,CAACN,MAAM,CAAC;EACnB;;EAEA;EACA,OAAOE,WAAW,CAAC,EAAE,EAAEP,EAAE,CAAC;AAC9B,CAAC;AAACY,OAAA,CAAAb,wBAAA,GAAAA,wBAAA"}
1
+ {"version":3,"names":["getFolderAndItsAncestors","folder","folders","folderMap","Map","forEach","set","id","findParents","next","current","push","parentId","parent","get","exports"],"sources":["getFolderAndItsAncestors.ts"],"sourcesContent":["import { Folder } from \"~/folder/folder.types\";\n\ninterface GetFolderAndItsAncestorsParams {\n folder: Folder;\n folders: Folder[];\n}\n\nexport const getFolderAndItsAncestors = ({\n folder,\n folders\n}: GetFolderAndItsAncestorsParams): Folder[] => {\n // Create a Map with folders, using folder.id as key\n const folderMap = new Map<string, Folder>();\n folders.forEach(folder => folderMap.set(folder.id, folder));\n\n const findParents = (next: Folder[], current: Folder): Folder[] => {\n // No folder found: return the result\n if (!current) {\n return next;\n }\n\n // Push the current folder into the accumulator array\n next.push(current);\n\n // No parentId found: return the result\n if (!current.parentId) {\n return next;\n }\n\n const parent = folderMap.get(current.parentId);\n\n // No parent found: return the result\n if (!parent) {\n return next;\n }\n\n // Go ahead and find parent for the current parent\n return findParents(next, parent);\n };\n\n // No folder found: return an empty array\n if (!folder) {\n return [];\n }\n\n // The folder has no parent (it's at root level): return an array with the folder\n if (!folder.parentId) {\n return [folder];\n }\n\n // Recursively find parents for a given folder id\n return findParents([], folder);\n};\n"],"mappings":";;;;;;AAOO,MAAMA,wBAAwB,GAAGA,CAAC;EACrCC,MAAM;EACNC;AAC4B,CAAC,KAAe;EAC5C;EACA,MAAMC,SAAS,GAAG,IAAIC,GAAG,CAAiB,CAAC;EAC3CF,OAAO,CAACG,OAAO,CAACJ,MAAM,IAAIE,SAAS,CAACG,GAAG,CAACL,MAAM,CAACM,EAAE,EAAEN,MAAM,CAAC,CAAC;EAE3D,MAAMO,WAAW,GAAGA,CAACC,IAAc,EAAEC,OAAe,KAAe;IAC/D;IACA,IAAI,CAACA,OAAO,EAAE;MACV,OAAOD,IAAI;IACf;;IAEA;IACAA,IAAI,CAACE,IAAI,CAACD,OAAO,CAAC;;IAElB;IACA,IAAI,CAACA,OAAO,CAACE,QAAQ,EAAE;MACnB,OAAOH,IAAI;IACf;IAEA,MAAMI,MAAM,GAAGV,SAAS,CAACW,GAAG,CAACJ,OAAO,CAACE,QAAQ,CAAC;;IAE9C;IACA,IAAI,CAACC,MAAM,EAAE;MACT,OAAOJ,IAAI;IACf;;IAEA;IACA,OAAOD,WAAW,CAACC,IAAI,EAAEI,MAAM,CAAC;EACpC,CAAC;;EAED;EACA,IAAI,CAACZ,MAAM,EAAE;IACT,OAAO,EAAE;EACb;;EAEA;EACA,IAAI,CAACA,MAAM,CAACW,QAAQ,EAAE;IAClB,OAAO,CAACX,MAAM,CAAC;EACnB;;EAEA;EACA,OAAOO,WAAW,CAAC,EAAE,EAAEP,MAAM,CAAC;AAClC,CAAC;AAACc,OAAA,CAAAf,wBAAA,GAAAA,wBAAA"}
@@ -18,4 +18,6 @@ const isInstallationPending = ({
18
18
  }
19
19
  return !i18n.getContentLocale();
20
20
  };
21
- exports.isInstallationPending = isInstallationPending;
21
+ exports.isInstallationPending = isInstallationPending;
22
+
23
+ //# sourceMappingURL=isInstallationPending.js.map
@@ -22,4 +22,6 @@ const modelFactory = params => {
22
22
  noValidate: true
23
23
  }));
24
24
  };
25
- exports.modelFactory = modelFactory;
25
+ exports.modelFactory = modelFactory;
26
+
27
+ //# sourceMappingURL=modelFactory.js.map
package/utils/resolve.js CHANGED
@@ -21,4 +21,6 @@ const resolveList = async fn => {
21
21
  return new _handlerGraphql.ErrorResponse(e);
22
22
  }
23
23
  };
24
- exports.resolveList = resolveList;
24
+ exports.resolveList = resolveList;
25
+
26
+ //# sourceMappingURL=resolve.js.map
@@ -1,2 +0,0 @@
1
- import { AcoContext } from "../types";
2
- export declare const onFolderBeforeDeleteHook: ({ aco }: AcoContext) => void;
@@ -1 +0,0 @@
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"}
@@ -1,2 +0,0 @@
1
- import { AcoContext } from "../types";
2
- export declare const checkPermissions: (context: AcoContext) => void;
@@ -1 +0,0 @@
1
- {"version":3,"names":["_apiSecurity","require","checkPermissions","context","identity","security","getIdentity","NotAuthorizedError","exports"],"sources":["checkPermissions.ts"],"sourcesContent":["import { NotAuthorizedError } from \"@webiny/api-security\";\nimport { AcoContext } from \"~/types\";\n\nexport const checkPermissions = (context: AcoContext) => {\n const identity = context.security.getIdentity();\n if (!identity) {\n throw new NotAuthorizedError();\n }\n};\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAGO,MAAMC,gBAAgB,GAAIC,OAAmB,IAAK;EACrD,MAAMC,QAAQ,GAAGD,OAAO,CAACE,QAAQ,CAACC,WAAW,CAAC,CAAC;EAC/C,IAAI,CAACF,QAAQ,EAAE;IACX,MAAM,IAAIG,+BAAkB,CAAC,CAAC;EAClC;AACJ,CAAC;AAACC,OAAA,CAAAN,gBAAA,GAAAA,gBAAA"}