@webiny/api-aco 5.43.3 → 6.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/apps/AcoApp.d.ts +2 -2
- package/apps/AcoApp.js.map +1 -1
- package/apps/AcoApps.d.ts +1 -1
- package/apps/AcoApps.js.map +1 -1
- package/apps/app.gql.d.ts +1 -1
- package/apps/app.gql.js.map +1 -1
- package/createAcoContext.d.ts +2 -2
- package/createAcoContext.js.map +1 -1
- package/createAcoGraphQL.d.ts +1 -1
- package/createAcoGraphQL.js.map +1 -1
- package/createAcoHooks.d.ts +1 -1
- package/createAcoHooks.js.map +1 -1
- package/createAcoModels.d.ts +1 -1
- package/createAcoModels.js.map +1 -1
- package/createAcoStorageOperations.d.ts +4 -4
- package/createAcoStorageOperations.js.map +1 -1
- package/filter/filter.crud.d.ts +2 -2
- package/filter/filter.crud.js.map +1 -1
- package/filter/filter.gql.d.ts +1 -1
- package/filter/filter.gql.js.map +1 -1
- package/filter/filter.model.js.map +1 -1
- package/filter/filter.so.d.ts +2 -2
- package/filter/filter.so.js.map +1 -1
- package/filter/filter.types.d.ts +2 -2
- package/filter/filter.types.js.map +1 -1
- package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.d.ts +2 -2
- package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js.map +1 -1
- package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js.map +1 -1
- package/flp/flp.crud.d.ts +2 -2
- package/flp/flp.crud.js.map +1 -1
- package/flp/flp.so.d.ts +1 -1
- package/flp/flp.so.js.map +1 -1
- package/flp/flp.types.d.ts +2 -2
- package/flp/flp.types.js.map +1 -1
- package/flp/hooks/index.d.ts +1 -1
- package/flp/hooks/index.js.map +1 -1
- package/flp/hooks/onFolderAfterCreateFlp.hook.d.ts +1 -1
- package/flp/hooks/onFolderAfterCreateFlp.hook.js.map +1 -1
- package/flp/hooks/onFolderAfterDeleteFlp.hook.d.ts +1 -1
- package/flp/hooks/onFolderAfterDeleteFlp.hook.js.map +1 -1
- package/flp/hooks/onFolderAfterUpdateFlp.hook.d.ts +1 -1
- package/flp/hooks/onFolderAfterUpdateFlp.hook.js.map +1 -1
- package/folder/createFolderModelModifier.d.ts +2 -2
- package/folder/createFolderModelModifier.js.map +1 -1
- package/folder/createFolderTypeDefs.d.ts +1 -1
- package/folder/createFolderTypeDefs.js +8 -0
- package/folder/createFolderTypeDefs.js.map +1 -1
- package/folder/ensureFolderIsEmpty.d.ts +1 -1
- package/folder/ensureFolderIsEmpty.js.map +1 -1
- package/folder/folder.crud.d.ts +3 -2
- package/folder/folder.crud.js.map +1 -1
- package/folder/folder.gql.d.ts +2 -2
- package/folder/folder.gql.js.map +1 -1
- package/folder/folder.so.d.ts +2 -2
- package/folder/folder.so.js.map +1 -1
- package/folder/folder.types.d.ts +11 -2
- package/folder/folder.types.js.map +1 -1
- package/folder/onFolderBeforeDeleteAco.hook.d.ts +1 -1
- package/folder/onFolderBeforeDeleteAco.hook.js.map +1 -1
- package/folder/onFolderBeforeDeleteFm.hook.d.ts +1 -1
- package/folder/onFolderBeforeDeleteFm.hook.js.map +1 -1
- package/folder/onFolderBeforeDeleteHcms.hook.d.ts +1 -1
- package/folder/onFolderBeforeDeleteHcms.hook.js.map +1 -1
- package/folder/useCases/CreateFolder/CreateFolderWithFolderLevelPermissions.d.ts +1 -1
- package/folder/useCases/CreateFolder/CreateFolderWithFolderLevelPermissions.js.map +1 -1
- package/folder/useCases/CreateFolder/index.d.ts +2 -2
- package/folder/useCases/CreateFolder/index.js.map +1 -1
- package/folder/useCases/DeleteFolder/DeleteFolderWithFolderLevelPermissions.d.ts +1 -1
- package/folder/useCases/DeleteFolder/DeleteFolderWithFolderLevelPermissions.js.map +1 -1
- package/folder/useCases/DeleteFolder/index.d.ts +2 -2
- package/folder/useCases/DeleteFolder/index.js.map +1 -1
- package/folder/useCases/GetAncestors/IGetAncestors.d.ts +1 -1
- package/folder/useCases/GetAncestors/IGetAncestors.js.map +1 -1
- package/folder/useCases/GetFolder/GetFolderWithFolderLevelPermissions.d.ts +1 -1
- package/folder/useCases/GetFolder/GetFolderWithFolderLevelPermissions.js.map +1 -1
- package/folder/useCases/GetFolder/index.d.ts +1 -1
- package/folder/useCases/GetFolder/index.js.map +1 -1
- package/folder/useCases/GetFolderHierarchy/GetFolderHierarchyWithFolderLevelPermissions.d.ts +1 -1
- package/folder/useCases/GetFolderHierarchy/GetFolderHierarchyWithFolderLevelPermissions.js.map +1 -1
- package/folder/useCases/GetFolderHierarchy/index.d.ts +1 -1
- package/folder/useCases/GetFolderHierarchy/index.js.map +1 -1
- package/folder/useCases/ListFolders/IListFolders.d.ts +1 -1
- package/folder/useCases/ListFolders/IListFolders.js.map +1 -1
- package/folder/useCases/ListFolders/ListFolders.d.ts +1 -1
- package/folder/useCases/ListFolders/ListFolders.js.map +1 -1
- package/folder/useCases/ListFolders/ListFoldersWithFolderLevelPermissions.d.ts +1 -1
- package/folder/useCases/ListFolders/ListFoldersWithFolderLevelPermissions.js.map +1 -1
- package/folder/useCases/ListFolders/index.d.ts +1 -1
- package/folder/useCases/ListFolders/index.js.map +1 -1
- package/folder/useCases/UpdateFolder/UpdateFolderWithFolderLevelPermissions.d.ts +1 -1
- package/folder/useCases/UpdateFolder/UpdateFolderWithFolderLevelPermissions.js +1 -1
- package/folder/useCases/UpdateFolder/UpdateFolderWithFolderLevelPermissions.js.map +1 -1
- package/folder/useCases/UpdateFolder/index.d.ts +2 -2
- package/folder/useCases/UpdateFolder/index.js.map +1 -1
- package/index.d.ts +1 -1
- package/index.js.map +1 -1
- package/package.json +28 -28
- package/plugins/AcoAppModifierPlugin.d.ts +2 -2
- package/plugins/AcoAppModifierPlugin.js.map +1 -1
- package/plugins/AcoAppRegisterPlugin.d.ts +1 -1
- package/plugins/AcoAppRegisterPlugin.js.map +1 -1
- package/record/graphql/createAppResolvers.d.ts +2 -2
- package/record/graphql/createAppResolvers.js.map +1 -1
- package/record/graphql/createAppSchema.d.ts +2 -2
- package/record/graphql/createAppSchema.js +2 -2
- package/record/graphql/createAppSchema.js.map +1 -1
- package/record/record.crud.d.ts +2 -2
- package/record/record.crud.js.map +1 -1
- package/record/record.gql.d.ts +1 -1
- package/record/record.gql.js.map +1 -1
- package/record/record.model.d.ts +1 -1
- package/record/record.model.js.map +1 -1
- package/record/record.so.d.ts +2 -2
- package/record/record.so.js.map +1 -1
- package/record/record.types.d.ts +3 -3
- package/record/record.types.js.map +1 -1
- package/types.d.ts +9 -9
- package/types.js.map +1 -1
- package/utils/FoldersCacheFactory.d.ts +1 -1
- package/utils/FoldersCacheFactory.js.map +1 -1
- package/utils/ListFoldersRepository.d.ts +2 -2
- package/utils/ListFoldersRepository.js.map +1 -1
- package/utils/createListSort.d.ts +2 -2
- package/utils/createListSort.js.map +1 -1
- package/utils/createModelField.d.ts +1 -1
- package/utils/createModelField.js.map +1 -1
- package/utils/createOperationsWrapper.d.ts +2 -2
- package/utils/createOperationsWrapper.js.map +1 -1
- package/utils/decorators/CmsEntriesCrudDecorators.d.ts +2 -2
- package/utils/decorators/CmsEntriesCrudDecorators.js +14 -14
- package/utils/decorators/CmsEntriesCrudDecorators.js.map +1 -1
- package/utils/decorators/FilterEntriesByFolderFactory.d.ts +2 -2
- package/utils/decorators/FilterEntriesByFolderFactory.js.map +1 -1
- package/utils/decorators/ListEntriesFactory.d.ts +3 -2
- package/utils/decorators/ListEntriesFactory.js.map +1 -1
- package/utils/decorators/decorateIfModelAuthorizationEnabled.d.ts +2 -3
- package/utils/decorators/decorateIfModelAuthorizationEnabled.js +1 -5
- package/utils/decorators/decorateIfModelAuthorizationEnabled.js.map +1 -1
- package/utils/decorators/hasRootFolderId.d.ts +1 -1
- package/utils/decorators/hasRootFolderId.js.map +1 -1
- package/utils/decorators/isPageModel.d.ts +1 -1
- package/utils/decorators/isPageModel.js.map +1 -1
- package/utils/ensureAuthentication.d.ts +1 -1
- package/utils/ensureAuthentication.js.map +1 -1
- package/utils/modelFactory.d.ts +1 -1
- package/utils/modelFactory.js.map +1 -1
- package/utils/pickEntryFieldValues.d.ts +1 -1
- package/utils/pickEntryFieldValues.js.map +1 -1
- package/utils/resolve.d.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["GetDefaultPermissionsWithTeams","constructor","getIdentityGateway","listIdentityTeamsGateway","decoretee","execute","originalPermissions","identity","identityTeams","permissions","length","identityTeam","teamPermission","find","p","target","id","push","level","inheritedFrom","exports"],"sources":["GetDefaultPermissionsWithTeams.ts"],"sourcesContent":["import type { IGetDefaultPermissions } from \"./IGetDefaultPermissions\";\nimport type {\n IGetIdentityGateway,\n IListIdentityTeamsGateway\n} from \"~/flp/FolderLevelPermissions/gateways\";\nimport type { FolderPermission } from \"~/flp/flp.types\";\nimport { Team } from \"@webiny/api-security/types\";\n\nexport class GetDefaultPermissionsWithTeams implements IGetDefaultPermissions {\n private getIdentityGateway: IGetIdentityGateway;\n private listIdentityTeamsGateway: IListIdentityTeamsGateway;\n private decoretee: IGetDefaultPermissions;\n\n constructor(\n getIdentityGateway: IGetIdentityGateway,\n listIdentityTeamsGateway: IListIdentityTeamsGateway,\n decoretee: IGetDefaultPermissions\n ) {\n this.getIdentityGateway = getIdentityGateway;\n this.listIdentityTeamsGateway = listIdentityTeamsGateway;\n this.decoretee = decoretee;\n }\n\n async execute(originalPermissions: FolderPermission[]) {\n /**\n * Retrieves the list of teams the current identity belongs to and checks if any of these teams\n * have permissions for the folder. If a team has permissions, the current identity is granted\n * the same permissions, inheriting them from the team.\n */\n const identity = this.getIdentityGateway.execute();\n const identityTeams: Team[] = (await this.listIdentityTeamsGateway.execute()) ?? [];\n\n const permissions = [...originalPermissions]; // Clone the original permissions to avoid mutation.\n\n if (identityTeams.length) {\n for (const identityTeam of identityTeams) {\n // Check if the team has permissions for the folder.\n const teamPermission = permissions.find(\n p => p.target === `team:${identityTeam.id}`\n );\n\n if (teamPermission) {\n // Grant the current identity the same permissions as the team, marking them as inherited.\n permissions.push({\n target: `admin:${identity.id}`,\n level: teamPermission.level,\n inheritedFrom: \"team:\" + identityTeam.id\n });\n }\n }\n }\n\n return await this.decoretee.execute(permissions);\n }\n}\n"],"mappings":";;;;;;AAQO,MAAMA,8BAA8B,CAAmC;EAK1EC,WAAWA,CACPC,kBAAuC,EACvCC,wBAAmD,EACnDC,SAAiC,EACnC;IACE,IAAI,CAACF,kBAAkB,GAAGA,kBAAkB;IAC5C,IAAI,CAACC,wBAAwB,GAAGA,wBAAwB;IACxD,IAAI,CAACC,SAAS,GAAGA,SAAS;EAC9B;EAEA,MAAMC,OAAOA,CAACC,mBAAuC,EAAE;IACnD;AACR;AACA;AACA;AACA;IACQ,MAAMC,QAAQ,GAAG,IAAI,CAACL,kBAAkB,CAACG,OAAO,CAAC,CAAC;IAClD,MAAMG,aAAqB,GAAG,CAAC,MAAM,IAAI,CAACL,wBAAwB,CAACE,OAAO,CAAC,CAAC,KAAK,EAAE;IAEnF,MAAMI,WAAW,GAAG,CAAC,GAAGH,mBAAmB,CAAC,CAAC,CAAC;;IAE9C,IAAIE,aAAa,CAACE,MAAM,EAAE;MACtB,KAAK,MAAMC,YAAY,IAAIH,aAAa,EAAE;QACtC;QACA,MAAMI,cAAc,GAAGH,WAAW,CAACI,IAAI,CACnCC,CAAC,IAAIA,CAAC,CAACC,MAAM,KAAK,QAAQJ,YAAY,CAACK,EAAE,EAC7C,CAAC;QAED,IAAIJ,cAAc,EAAE;UAChB;UACAH,WAAW,CAACQ,IAAI,CAAC;YACbF,MAAM,EAAE,SAASR,QAAQ,CAACS,EAAE,EAAE;YAC9BE,KAAK,EAAEN,cAAc,CAACM,KAAK;YAC3BC,aAAa,EAAE,OAAO,GAAGR,YAAY,CAACK;UAC1C,CAAC,CAAC;QACN;MACJ;IACJ;IAEA,OAAO,MAAM,IAAI,CAACZ,SAAS,CAACC,OAAO,CAACI,WAAW,CAAC;EACpD;AACJ;AAACW,OAAA,CAAApB,8BAAA,GAAAA,8BAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["GetDefaultPermissionsWithTeams","constructor","getIdentityGateway","listIdentityTeamsGateway","decoretee","execute","originalPermissions","identity","identityTeams","permissions","length","identityTeam","teamPermission","find","p","target","id","push","level","inheritedFrom","exports"],"sources":["GetDefaultPermissionsWithTeams.ts"],"sourcesContent":["import type { IGetDefaultPermissions } from \"./IGetDefaultPermissions\";\nimport type {\n IGetIdentityGateway,\n IListIdentityTeamsGateway\n} from \"~/flp/FolderLevelPermissions/gateways\";\nimport type { FolderPermission } from \"~/flp/flp.types\";\nimport type { Team } from \"@webiny/api-security/types\";\n\nexport class GetDefaultPermissionsWithTeams implements IGetDefaultPermissions {\n private getIdentityGateway: IGetIdentityGateway;\n private listIdentityTeamsGateway: IListIdentityTeamsGateway;\n private decoretee: IGetDefaultPermissions;\n\n constructor(\n getIdentityGateway: IGetIdentityGateway,\n listIdentityTeamsGateway: IListIdentityTeamsGateway,\n decoretee: IGetDefaultPermissions\n ) {\n this.getIdentityGateway = getIdentityGateway;\n this.listIdentityTeamsGateway = listIdentityTeamsGateway;\n this.decoretee = decoretee;\n }\n\n async execute(originalPermissions: FolderPermission[]) {\n /**\n * Retrieves the list of teams the current identity belongs to and checks if any of these teams\n * have permissions for the folder. If a team has permissions, the current identity is granted\n * the same permissions, inheriting them from the team.\n */\n const identity = this.getIdentityGateway.execute();\n const identityTeams: Team[] = (await this.listIdentityTeamsGateway.execute()) ?? [];\n\n const permissions = [...originalPermissions]; // Clone the original permissions to avoid mutation.\n\n if (identityTeams.length) {\n for (const identityTeam of identityTeams) {\n // Check if the team has permissions for the folder.\n const teamPermission = permissions.find(\n p => p.target === `team:${identityTeam.id}`\n );\n\n if (teamPermission) {\n // Grant the current identity the same permissions as the team, marking them as inherited.\n permissions.push({\n target: `admin:${identity.id}`,\n level: teamPermission.level,\n inheritedFrom: \"team:\" + identityTeam.id\n });\n }\n }\n }\n\n return await this.decoretee.execute(permissions);\n }\n}\n"],"mappings":";;;;;;AAQO,MAAMA,8BAA8B,CAAmC;EAK1EC,WAAWA,CACPC,kBAAuC,EACvCC,wBAAmD,EACnDC,SAAiC,EACnC;IACE,IAAI,CAACF,kBAAkB,GAAGA,kBAAkB;IAC5C,IAAI,CAACC,wBAAwB,GAAGA,wBAAwB;IACxD,IAAI,CAACC,SAAS,GAAGA,SAAS;EAC9B;EAEA,MAAMC,OAAOA,CAACC,mBAAuC,EAAE;IACnD;AACR;AACA;AACA;AACA;IACQ,MAAMC,QAAQ,GAAG,IAAI,CAACL,kBAAkB,CAACG,OAAO,CAAC,CAAC;IAClD,MAAMG,aAAqB,GAAG,CAAC,MAAM,IAAI,CAACL,wBAAwB,CAACE,OAAO,CAAC,CAAC,KAAK,EAAE;IAEnF,MAAMI,WAAW,GAAG,CAAC,GAAGH,mBAAmB,CAAC,CAAC,CAAC;;IAE9C,IAAIE,aAAa,CAACE,MAAM,EAAE;MACtB,KAAK,MAAMC,YAAY,IAAIH,aAAa,EAAE;QACtC;QACA,MAAMI,cAAc,GAAGH,WAAW,CAACI,IAAI,CACnCC,CAAC,IAAIA,CAAC,CAACC,MAAM,KAAK,QAAQJ,YAAY,CAACK,EAAE,EAC7C,CAAC;QAED,IAAIJ,cAAc,EAAE;UAChB;UACAH,WAAW,CAACQ,IAAI,CAAC;YACbF,MAAM,EAAE,SAASR,QAAQ,CAACS,EAAE,EAAE;YAC9BE,KAAK,EAAEN,cAAc,CAACM,KAAK;YAC3BC,aAAa,EAAE,OAAO,GAAGR,YAAY,CAACK;UAC1C,CAAC,CAAC;QACN;MACJ;IACJ;IAEA,OAAO,MAAM,IAAI,CAACZ,SAAS,CAACC,OAAO,CAACI,WAAW,CAAC;EACpD;AACJ;AAACW,OAAA,CAAApB,8BAAA,GAAAA,8BAAA","ignoreList":[]}
|
package/flp/flp.crud.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { I18NLocale } from "@webiny/api-i18n/types";
|
|
2
|
-
import { Tenant } from "@webiny/api-tenancy/types";
|
|
1
|
+
import type { I18NLocale } from "@webiny/api-i18n/types";
|
|
2
|
+
import type { Tenant } from "@webiny/api-tenancy/types";
|
|
3
3
|
import { type AcoFolderLevelPermissionsCrud, type AcoStorageOperations } from "../types";
|
|
4
4
|
export interface CreateFlpCrudMethodsParams {
|
|
5
5
|
getLocale: () => I18NLocale;
|
package/flp/flp.crud.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_pubsub","require","_error","createFlpCrudMethods","storageOperations","getTenant","getLocale","onFlpBeforeCreate","createTopic","onFlpAfterCreate","onFlpBeforeUpdate","onFlpAfterUpdate","onFlpBeforeDelete","onFlpAfterDelete","onFlpBatchBeforeUpdate","onFlpBatchAfterUpdate","create","params","publish","input","flp","data","tenant","id","locale","code","update","original","get","WebinyError","batchUpdate","items","batchItems","Promise","all","map","filter","item","length","updatedItems","index","delete","list","where","exports"],"sources":["flp.crud.ts"],"sourcesContent":["import { I18NLocale } from \"@webiny/api-i18n/types\";\nimport { Tenant } from \"@webiny/api-tenancy/types\";\nimport { createTopic } from \"@webiny/pubsub\";\nimport {\n type AcoFolderLevelPermissionsCrud,\n type AcoStorageOperations,\n type CreateFlpParams,\n type OnFlpAfterCreateTopicParams,\n type OnFlpAfterDeleteTopicParams,\n type OnFlpAfterUpdateTopicParams,\n type OnFlpBeforeCreateTopicParams,\n type OnFlpBeforeDeleteTopicParams,\n type OnFlpBeforeUpdateTopicParams,\n type OnFlpBatchBeforeUpdateTopicParams,\n type OnFlpBatchAfterUpdateTopicParams,\n type UpdateFlpParams\n} from \"~/types\";\nimport { WebinyError } from \"@webiny/error\";\n\nexport interface CreateFlpCrudMethodsParams {\n getLocale: () => I18NLocale;\n getTenant: () => Tenant;\n storageOperations: AcoStorageOperations;\n}\n\nexport const createFlpCrudMethods = ({\n storageOperations,\n getTenant,\n getLocale\n}: CreateFlpCrudMethodsParams): AcoFolderLevelPermissionsCrud => {\n // create\n const onFlpBeforeCreate = createTopic<OnFlpBeforeCreateTopicParams>(\"aco.onFlpBeforeCreate\");\n const onFlpAfterCreate = createTopic<OnFlpAfterCreateTopicParams>(\"aco.onFlpAfterCreate\");\n // update\n const onFlpBeforeUpdate = createTopic<OnFlpBeforeUpdateTopicParams>(\"aco.onFlpBeforeUpdate\");\n const onFlpAfterUpdate = createTopic<OnFlpAfterUpdateTopicParams>(\"aco.onFlpAfterUpdate\");\n // delete\n const onFlpBeforeDelete = createTopic<OnFlpBeforeDeleteTopicParams>(\"aco.onFlpBeforeDelete\");\n const onFlpAfterDelete = createTopic<OnFlpAfterDeleteTopicParams>(\"aco.onFlpAfterDelete\");\n // batch update\n const onFlpBatchBeforeUpdate = createTopic<OnFlpBatchBeforeUpdateTopicParams>(\n \"aco.onFlpBatchBeforeUpdate\"\n );\n const onFlpBatchAfterUpdate = createTopic<OnFlpBatchAfterUpdateTopicParams>(\n \"aco.onFlpBatchAfterUpdate\"\n );\n\n return {\n onFlpBeforeCreate,\n onFlpAfterCreate,\n onFlpBeforeUpdate,\n onFlpAfterUpdate,\n onFlpBeforeDelete,\n onFlpAfterDelete,\n onFlpBatchBeforeUpdate,\n onFlpBatchAfterUpdate,\n async create(params: CreateFlpParams) {\n await onFlpBeforeCreate.publish({ input: params });\n const flp = await storageOperations.flp.create({\n data: { ...params, tenant: getTenant().id, locale: getLocale().code }\n });\n await onFlpAfterCreate.publish({ flp });\n return flp;\n },\n async update(id: string, data: UpdateFlpParams) {\n const original = await this.get(id);\n if (!original) {\n throw new WebinyError(\n `Folder level permission with id \"${id}\" not found.`,\n \"GET_ITEM_UPDATE_FLP_ERROR\",\n {\n id,\n data\n }\n );\n }\n await onFlpBeforeUpdate.publish({ original, input: { id, data } });\n const flp = await storageOperations.flp.update({\n original,\n data: {\n ...data,\n tenant: getTenant().id,\n locale: getLocale().code\n }\n });\n await onFlpAfterUpdate.publish({ original, input: { id, data }, flp });\n return flp;\n },\n async batchUpdate(items: Array<{ id: string; data: UpdateFlpParams }>) {\n const batchItems = (\n await Promise.all(\n items.map(async ({ id, data }) => {\n const original = await this.get(id);\n if (!original) {\n return null;\n }\n return {\n original,\n data: {\n ...data,\n tenant: getTenant().id,\n locale: getLocale().code\n }\n };\n })\n )\n ).filter((item): item is NonNullable<typeof item> => item !== null);\n\n if (batchItems.length === 0) {\n return [];\n }\n\n await onFlpBatchBeforeUpdate.publish({\n items: batchItems.map(({ original, data }) => ({\n original,\n input: data\n }))\n });\n\n const updatedItems = await storageOperations.flp.batchUpdate({\n items: batchItems\n });\n\n await onFlpBatchAfterUpdate.publish({\n items: batchItems.map(({ original }, index) => ({\n original,\n flp: updatedItems[index],\n input: items[index].data\n }))\n });\n\n return updatedItems;\n },\n async delete(id: string) {\n const flp = await this.get(id);\n if (!flp) {\n throw new WebinyError(\n `Folder level permission with id \"${id}\" not found.`,\n \"GET_ITEM_DELETE_FLP_ERROR\",\n {\n id\n }\n );\n }\n await onFlpBeforeDelete.publish({ flp });\n await storageOperations.flp.delete({\n flp: {\n ...flp,\n tenant: getTenant().id,\n locale: getLocale().code\n }\n });\n await onFlpAfterDelete.publish({ flp });\n return true;\n },\n async get(id: string) {\n return await storageOperations.flp.get({\n id,\n tenant: getTenant().id,\n locale: getLocale().code\n });\n },\n async list({ where }) {\n return await storageOperations.flp.list({\n where: {\n ...where,\n tenant: getTenant().id,\n locale: getLocale().code\n }\n });\n }\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_pubsub","require","_error","createFlpCrudMethods","storageOperations","getTenant","getLocale","onFlpBeforeCreate","createTopic","onFlpAfterCreate","onFlpBeforeUpdate","onFlpAfterUpdate","onFlpBeforeDelete","onFlpAfterDelete","onFlpBatchBeforeUpdate","onFlpBatchAfterUpdate","create","params","publish","input","flp","data","tenant","id","locale","code","update","original","get","WebinyError","batchUpdate","items","batchItems","Promise","all","map","filter","item","length","updatedItems","index","delete","list","where","exports"],"sources":["flp.crud.ts"],"sourcesContent":["import type { I18NLocale } from \"@webiny/api-i18n/types\";\nimport type { Tenant } from \"@webiny/api-tenancy/types\";\nimport { createTopic } from \"@webiny/pubsub\";\nimport {\n type AcoFolderLevelPermissionsCrud,\n type AcoStorageOperations,\n type CreateFlpParams,\n type OnFlpAfterCreateTopicParams,\n type OnFlpAfterDeleteTopicParams,\n type OnFlpAfterUpdateTopicParams,\n type OnFlpBeforeCreateTopicParams,\n type OnFlpBeforeDeleteTopicParams,\n type OnFlpBeforeUpdateTopicParams,\n type OnFlpBatchBeforeUpdateTopicParams,\n type OnFlpBatchAfterUpdateTopicParams,\n type UpdateFlpParams\n} from \"~/types\";\nimport { WebinyError } from \"@webiny/error\";\n\nexport interface CreateFlpCrudMethodsParams {\n getLocale: () => I18NLocale;\n getTenant: () => Tenant;\n storageOperations: AcoStorageOperations;\n}\n\nexport const createFlpCrudMethods = ({\n storageOperations,\n getTenant,\n getLocale\n}: CreateFlpCrudMethodsParams): AcoFolderLevelPermissionsCrud => {\n // create\n const onFlpBeforeCreate = createTopic<OnFlpBeforeCreateTopicParams>(\"aco.onFlpBeforeCreate\");\n const onFlpAfterCreate = createTopic<OnFlpAfterCreateTopicParams>(\"aco.onFlpAfterCreate\");\n // update\n const onFlpBeforeUpdate = createTopic<OnFlpBeforeUpdateTopicParams>(\"aco.onFlpBeforeUpdate\");\n const onFlpAfterUpdate = createTopic<OnFlpAfterUpdateTopicParams>(\"aco.onFlpAfterUpdate\");\n // delete\n const onFlpBeforeDelete = createTopic<OnFlpBeforeDeleteTopicParams>(\"aco.onFlpBeforeDelete\");\n const onFlpAfterDelete = createTopic<OnFlpAfterDeleteTopicParams>(\"aco.onFlpAfterDelete\");\n // batch update\n const onFlpBatchBeforeUpdate = createTopic<OnFlpBatchBeforeUpdateTopicParams>(\n \"aco.onFlpBatchBeforeUpdate\"\n );\n const onFlpBatchAfterUpdate = createTopic<OnFlpBatchAfterUpdateTopicParams>(\n \"aco.onFlpBatchAfterUpdate\"\n );\n\n return {\n onFlpBeforeCreate,\n onFlpAfterCreate,\n onFlpBeforeUpdate,\n onFlpAfterUpdate,\n onFlpBeforeDelete,\n onFlpAfterDelete,\n onFlpBatchBeforeUpdate,\n onFlpBatchAfterUpdate,\n async create(params: CreateFlpParams) {\n await onFlpBeforeCreate.publish({ input: params });\n const flp = await storageOperations.flp.create({\n data: { ...params, tenant: getTenant().id, locale: getLocale().code }\n });\n await onFlpAfterCreate.publish({ flp });\n return flp;\n },\n async update(id: string, data: UpdateFlpParams) {\n const original = await this.get(id);\n if (!original) {\n throw new WebinyError(\n `Folder level permission with id \"${id}\" not found.`,\n \"GET_ITEM_UPDATE_FLP_ERROR\",\n {\n id,\n data\n }\n );\n }\n await onFlpBeforeUpdate.publish({ original, input: { id, data } });\n const flp = await storageOperations.flp.update({\n original,\n data: {\n ...data,\n tenant: getTenant().id,\n locale: getLocale().code\n }\n });\n await onFlpAfterUpdate.publish({ original, input: { id, data }, flp });\n return flp;\n },\n async batchUpdate(items: Array<{ id: string; data: UpdateFlpParams }>) {\n const batchItems = (\n await Promise.all(\n items.map(async ({ id, data }) => {\n const original = await this.get(id);\n if (!original) {\n return null;\n }\n return {\n original,\n data: {\n ...data,\n tenant: getTenant().id,\n locale: getLocale().code\n }\n };\n })\n )\n ).filter((item): item is NonNullable<typeof item> => item !== null);\n\n if (batchItems.length === 0) {\n return [];\n }\n\n await onFlpBatchBeforeUpdate.publish({\n items: batchItems.map(({ original, data }) => ({\n original,\n input: data\n }))\n });\n\n const updatedItems = await storageOperations.flp.batchUpdate({\n items: batchItems\n });\n\n await onFlpBatchAfterUpdate.publish({\n items: batchItems.map(({ original }, index) => ({\n original,\n flp: updatedItems[index],\n input: items[index].data\n }))\n });\n\n return updatedItems;\n },\n async delete(id: string) {\n const flp = await this.get(id);\n if (!flp) {\n throw new WebinyError(\n `Folder level permission with id \"${id}\" not found.`,\n \"GET_ITEM_DELETE_FLP_ERROR\",\n {\n id\n }\n );\n }\n await onFlpBeforeDelete.publish({ flp });\n await storageOperations.flp.delete({\n flp: {\n ...flp,\n tenant: getTenant().id,\n locale: getLocale().code\n }\n });\n await onFlpAfterDelete.publish({ flp });\n return true;\n },\n async get(id: string) {\n return await storageOperations.flp.get({\n id,\n tenant: getTenant().id,\n locale: getLocale().code\n });\n },\n async list({ where }) {\n return await storageOperations.flp.list({\n where: {\n ...where,\n tenant: getTenant().id,\n locale: getLocale().code\n }\n });\n }\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
package/flp/flp.so.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb";
|
|
1
|
+
import type { DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb";
|
|
2
2
|
import type { AcoFolderLevelPermissionsStorageOperations as IAcoFolderLevelPermissionsStorageOperations, FolderLevelPermission, StorageOperationsCreateFlpParams, StorageOperationsDeleteFlpParams, StorageOperationsGetFlpParams, StorageOperationsListFlpsParams, StorageOperationsUpdateFlpParams, StorageOperationsBatchUpdateFlpParams } from "./flp.types";
|
|
3
3
|
interface StorageOperationsConfig {
|
|
4
4
|
documentClient: DynamoDBDocument;
|
package/flp/flp.so.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_toolbox","require","_dbDynamodb","_EntityWriteBatch","_error","_utils","FolderLevelPermissionsStorageOperations","constructor","documentClient","table","createTable","entity","createEntity","name","list","where","tenant","locale","type","path_startsWith","parentId","entries","queryAllClean","partitionKey","options","index","eq","map","entry","data","beginsWith","WebinyError","err","from","message","code","get","id","getClean","keys","createKeys","create","createGsiKeys","put","item","update","inputData","original","delete","flp","deleteItem","batchUpdate","items","batch","createEntityWriteBatch","updatedItems","push","executeWithRetry","execute","params","Entity","attributes","PK","SK","sortKey","GSI1_PK","required","GSI1_SK","GSI2_PK","GSI2_SK","TYPE","Table","String","process","env","DB_TABLE","DocumentClient","indexes","GSI1","GSI2","autoExecute","autoParse","path","createFlpOperations","exports"],"sources":["flp.so.ts"],"sourcesContent":["import { Entity, Table } from \"@webiny/db-dynamodb/toolbox\";\nimport { DynamoDBDocument } from \"@webiny/aws-sdk/client-dynamodb\";\nimport { deleteItem, getClean, put, queryAllClean } from \"@webiny/db-dynamodb\";\nimport { createEntityWriteBatch } from \"@webiny/db-dynamodb/utils/entity/EntityWriteBatch\";\n\nimport { WebinyError } from \"@webiny/error\";\nimport type {\n AcoFolderLevelPermissionsStorageOperations as IAcoFolderLevelPermissionsStorageOperations,\n FolderLevelPermission,\n StorageOperationsCreateFlpParams,\n StorageOperationsDeleteFlpParams,\n StorageOperationsGetFlpParams,\n StorageOperationsListFlpsParams,\n StorageOperationsUpdateFlpParams,\n StorageOperationsBatchUpdateFlpParams\n} from \"~/flp/flp.types\";\nimport { executeWithRetry } from \"@webiny/utils\";\n\ninterface StorageOperationsConfig {\n documentClient: DynamoDBDocument;\n}\n\nexport interface CreateTableParams {\n name?: string;\n documentClient: DynamoDBDocument;\n}\n\ninterface CreateEntityParams {\n table: Table<string, string, string>;\n name: string;\n}\n\ninterface CreateKeysParams {\n tenant: string;\n locale: string;\n id: string;\n}\n\ninterface CreateGsiKeysParams {\n tenant: string;\n locale: string;\n id: string;\n type: string;\n path: string;\n parentId: string;\n}\n\nclass FolderLevelPermissionsStorageOperations\n implements IAcoFolderLevelPermissionsStorageOperations\n{\n private readonly entity: Entity<any>;\n private readonly table: Table<string, string, string>;\n\n constructor({ documentClient }: StorageOperationsConfig) {\n this.table = this.createTable({ documentClient });\n\n this.entity = this.createEntity({\n table: this.table,\n name: \"ACO.flp\"\n });\n }\n\n async list({\n where: { tenant, locale, type, path_startsWith, parentId }\n }: StorageOperationsListFlpsParams): Promise<FolderLevelPermission[]> {\n try {\n if (parentId) {\n const entries = await queryAllClean<{ data: FolderLevelPermission }>({\n entity: this.entity,\n partitionKey: `T#${tenant}#L#${locale}#FLP`,\n options: {\n index: \"GSI2\",\n eq: parentId\n }\n });\n return entries.map(entry => entry.data);\n }\n\n if (path_startsWith) {\n const entries = await queryAllClean<{ data: FolderLevelPermission }>({\n entity: this.entity,\n partitionKey: `T#${tenant}#L#${locale}#AT#${type}#FLP`,\n options: {\n index: \"GSI1\",\n beginsWith: path_startsWith\n }\n });\n return entries.map(entry => entry.data);\n }\n\n throw new WebinyError(\"Missing required parameters.\", \"LIST_FLP_MISSING_PARAMETERS\", {\n tenant,\n locale,\n type,\n path_startsWith,\n parentId\n });\n } catch (err) {\n throw WebinyError.from(err, {\n message: \"Could not list folder level permissions.\",\n code: \"LIST_FLP_ERROR\"\n });\n }\n }\n\n async get({\n tenant,\n locale,\n id\n }: StorageOperationsGetFlpParams): Promise<FolderLevelPermission | null> {\n try {\n const entry = await getClean<{ data: FolderLevelPermission }>({\n entity: this.entity,\n keys: this.createKeys({ tenant, locale, id })\n });\n\n if (!entry) {\n return null;\n }\n\n return entry.data;\n } catch (err) {\n throw WebinyError.from(err, {\n message: \"Could not load folder level permission.\",\n code: \"GET_FLP_ERROR\",\n data: { tenant, locale, id }\n });\n }\n }\n\n async create({ data }: StorageOperationsCreateFlpParams): Promise<FolderLevelPermission> {\n const keys = {\n ...this.createKeys(data),\n ...this.createGsiKeys(data)\n };\n\n try {\n await put({\n entity: this.entity,\n item: {\n ...keys,\n data\n }\n });\n\n return data;\n } catch (err) {\n throw WebinyError.from(err, {\n message: \"Could not create folder level permission.\",\n code: \"CREATE_FLP_ERROR\",\n data: { keys, data }\n });\n }\n }\n\n async update({\n data: inputData,\n original\n }: StorageOperationsUpdateFlpParams): Promise<FolderLevelPermission> {\n try {\n const data = {\n ...original,\n ...inputData\n };\n\n const keys = {\n ...this.createKeys(data),\n ...this.createGsiKeys(data)\n };\n\n await put({\n entity: this.entity,\n item: {\n ...keys,\n data\n }\n });\n\n return data;\n } catch (err) {\n throw WebinyError.from(err, {\n message: \"Could not update folder level permission.\",\n code: \"UPDATE_FLP_ERROR\",\n data: { inputData, original }\n });\n }\n }\n\n async delete({ flp }: StorageOperationsDeleteFlpParams): Promise<void> {\n const keys = this.createKeys(flp);\n\n try {\n await deleteItem({\n entity: this.entity,\n keys\n });\n } catch (err) {\n throw WebinyError.from(err, {\n message: \"Could not delete folder level permission.\",\n code: \"DELETE_FLP_ERROR\",\n data: { keys, flp }\n });\n }\n }\n\n async batchUpdate({\n items\n }: StorageOperationsBatchUpdateFlpParams): Promise<FolderLevelPermission[]> {\n try {\n const batch = createEntityWriteBatch({\n entity: this.entity\n });\n\n const updatedItems: FolderLevelPermission[] = [];\n\n for (const { original, data: inputData } of items) {\n const data = {\n ...original,\n ...inputData\n };\n\n const keys = {\n ...this.createKeys(data),\n ...this.createGsiKeys(data)\n };\n\n batch.put({\n ...keys,\n data\n });\n\n updatedItems.push(data);\n }\n\n await executeWithRetry(async () => {\n return await batch.execute();\n });\n\n return updatedItems;\n } catch (err) {\n throw WebinyError.from(err, {\n message: \"Could not batch update folder level permissions.\",\n code: \"BATCH_UPDATE_FLP_ERROR\",\n data: { items }\n });\n }\n }\n\n private createEntity = (params: CreateEntityParams): Entity<any> => {\n return new Entity({\n name: params.name,\n table: params.table,\n attributes: {\n PK: {\n partitionKey: true\n },\n SK: {\n sortKey: true\n },\n GSI1_PK: {\n type: \"string\",\n required: true\n },\n GSI1_SK: {\n type: \"string\",\n required: true\n },\n GSI2_PK: {\n type: \"string\",\n required: true\n },\n GSI2_SK: {\n type: \"string\",\n required: true\n },\n TYPE: {\n type: \"string\"\n },\n data: {\n type: \"map\"\n }\n }\n });\n };\n\n private createTable = ({ name, documentClient }: CreateTableParams) => {\n return new Table({\n name: name || String(process.env.DB_TABLE),\n partitionKey: \"PK\",\n sortKey: \"SK\",\n DocumentClient: documentClient,\n indexes: {\n GSI1: {\n partitionKey: \"GSI1_PK\",\n sortKey: \"GSI1_SK\"\n },\n GSI2: {\n partitionKey: \"GSI2_PK\",\n sortKey: \"GSI2_SK\"\n }\n },\n autoExecute: true,\n autoParse: true\n });\n };\n\n private createKeys = ({ id, tenant, locale }: CreateKeysParams) => ({\n PK: `T#${tenant}#L#${locale}#FLP#${id}`,\n SK: `A`\n });\n\n private createGsiKeys = ({ tenant, locale, type, path, parentId }: CreateGsiKeysParams) => ({\n GSI1_PK: `T#${tenant}#L#${locale}#AT#${type}#FLP`,\n GSI1_SK: path,\n GSI2_PK: `T#${tenant}#L#${locale}#FLP`,\n GSI2_SK: parentId\n });\n}\n\nexport const createFlpOperations = (params: StorageOperationsConfig) => {\n return new FolderLevelPermissionsStorageOperations(params);\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_toolbox","require","_dbDynamodb","_EntityWriteBatch","_error","_utils","FolderLevelPermissionsStorageOperations","constructor","documentClient","table","createTable","entity","createEntity","name","list","where","tenant","locale","type","path_startsWith","parentId","entries","queryAllClean","partitionKey","options","index","eq","map","entry","data","beginsWith","WebinyError","err","from","message","code","get","id","getClean","keys","createKeys","create","createGsiKeys","put","item","update","inputData","original","delete","flp","deleteItem","batchUpdate","items","batch","createEntityWriteBatch","updatedItems","push","executeWithRetry","execute","params","Entity","attributes","PK","SK","sortKey","GSI1_PK","required","GSI1_SK","GSI2_PK","GSI2_SK","TYPE","Table","String","process","env","DB_TABLE","DocumentClient","indexes","GSI1","GSI2","autoExecute","autoParse","path","createFlpOperations","exports"],"sources":["flp.so.ts"],"sourcesContent":["import { Entity, Table } from \"@webiny/db-dynamodb/toolbox\";\nimport type { DynamoDBDocument } from \"@webiny/aws-sdk/client-dynamodb\";\nimport { deleteItem, getClean, put, queryAllClean } from \"@webiny/db-dynamodb\";\nimport { createEntityWriteBatch } from \"@webiny/db-dynamodb/utils/entity/EntityWriteBatch\";\n\nimport { WebinyError } from \"@webiny/error\";\nimport type {\n AcoFolderLevelPermissionsStorageOperations as IAcoFolderLevelPermissionsStorageOperations,\n FolderLevelPermission,\n StorageOperationsCreateFlpParams,\n StorageOperationsDeleteFlpParams,\n StorageOperationsGetFlpParams,\n StorageOperationsListFlpsParams,\n StorageOperationsUpdateFlpParams,\n StorageOperationsBatchUpdateFlpParams\n} from \"~/flp/flp.types\";\nimport { executeWithRetry } from \"@webiny/utils\";\n\ninterface StorageOperationsConfig {\n documentClient: DynamoDBDocument;\n}\n\nexport interface CreateTableParams {\n name?: string;\n documentClient: DynamoDBDocument;\n}\n\ninterface CreateEntityParams {\n table: Table<string, string, string>;\n name: string;\n}\n\ninterface CreateKeysParams {\n tenant: string;\n locale: string;\n id: string;\n}\n\ninterface CreateGsiKeysParams {\n tenant: string;\n locale: string;\n id: string;\n type: string;\n path: string;\n parentId: string;\n}\n\nclass FolderLevelPermissionsStorageOperations\n implements IAcoFolderLevelPermissionsStorageOperations\n{\n private readonly entity: Entity<any>;\n private readonly table: Table<string, string, string>;\n\n constructor({ documentClient }: StorageOperationsConfig) {\n this.table = this.createTable({ documentClient });\n\n this.entity = this.createEntity({\n table: this.table,\n name: \"ACO.flp\"\n });\n }\n\n async list({\n where: { tenant, locale, type, path_startsWith, parentId }\n }: StorageOperationsListFlpsParams): Promise<FolderLevelPermission[]> {\n try {\n if (parentId) {\n const entries = await queryAllClean<{ data: FolderLevelPermission }>({\n entity: this.entity,\n partitionKey: `T#${tenant}#L#${locale}#FLP`,\n options: {\n index: \"GSI2\",\n eq: parentId\n }\n });\n return entries.map(entry => entry.data);\n }\n\n if (path_startsWith) {\n const entries = await queryAllClean<{ data: FolderLevelPermission }>({\n entity: this.entity,\n partitionKey: `T#${tenant}#L#${locale}#AT#${type}#FLP`,\n options: {\n index: \"GSI1\",\n beginsWith: path_startsWith\n }\n });\n return entries.map(entry => entry.data);\n }\n\n throw new WebinyError(\"Missing required parameters.\", \"LIST_FLP_MISSING_PARAMETERS\", {\n tenant,\n locale,\n type,\n path_startsWith,\n parentId\n });\n } catch (err) {\n throw WebinyError.from(err, {\n message: \"Could not list folder level permissions.\",\n code: \"LIST_FLP_ERROR\"\n });\n }\n }\n\n async get({\n tenant,\n locale,\n id\n }: StorageOperationsGetFlpParams): Promise<FolderLevelPermission | null> {\n try {\n const entry = await getClean<{ data: FolderLevelPermission }>({\n entity: this.entity,\n keys: this.createKeys({ tenant, locale, id })\n });\n\n if (!entry) {\n return null;\n }\n\n return entry.data;\n } catch (err) {\n throw WebinyError.from(err, {\n message: \"Could not load folder level permission.\",\n code: \"GET_FLP_ERROR\",\n data: { tenant, locale, id }\n });\n }\n }\n\n async create({ data }: StorageOperationsCreateFlpParams): Promise<FolderLevelPermission> {\n const keys = {\n ...this.createKeys(data),\n ...this.createGsiKeys(data)\n };\n\n try {\n await put({\n entity: this.entity,\n item: {\n ...keys,\n data\n }\n });\n\n return data;\n } catch (err) {\n throw WebinyError.from(err, {\n message: \"Could not create folder level permission.\",\n code: \"CREATE_FLP_ERROR\",\n data: { keys, data }\n });\n }\n }\n\n async update({\n data: inputData,\n original\n }: StorageOperationsUpdateFlpParams): Promise<FolderLevelPermission> {\n try {\n const data = {\n ...original,\n ...inputData\n };\n\n const keys = {\n ...this.createKeys(data),\n ...this.createGsiKeys(data)\n };\n\n await put({\n entity: this.entity,\n item: {\n ...keys,\n data\n }\n });\n\n return data;\n } catch (err) {\n throw WebinyError.from(err, {\n message: \"Could not update folder level permission.\",\n code: \"UPDATE_FLP_ERROR\",\n data: { inputData, original }\n });\n }\n }\n\n async delete({ flp }: StorageOperationsDeleteFlpParams): Promise<void> {\n const keys = this.createKeys(flp);\n\n try {\n await deleteItem({\n entity: this.entity,\n keys\n });\n } catch (err) {\n throw WebinyError.from(err, {\n message: \"Could not delete folder level permission.\",\n code: \"DELETE_FLP_ERROR\",\n data: { keys, flp }\n });\n }\n }\n\n async batchUpdate({\n items\n }: StorageOperationsBatchUpdateFlpParams): Promise<FolderLevelPermission[]> {\n try {\n const batch = createEntityWriteBatch({\n entity: this.entity\n });\n\n const updatedItems: FolderLevelPermission[] = [];\n\n for (const { original, data: inputData } of items) {\n const data = {\n ...original,\n ...inputData\n };\n\n const keys = {\n ...this.createKeys(data),\n ...this.createGsiKeys(data)\n };\n\n batch.put({\n ...keys,\n data\n });\n\n updatedItems.push(data);\n }\n\n await executeWithRetry(async () => {\n return await batch.execute();\n });\n\n return updatedItems;\n } catch (err) {\n throw WebinyError.from(err, {\n message: \"Could not batch update folder level permissions.\",\n code: \"BATCH_UPDATE_FLP_ERROR\",\n data: { items }\n });\n }\n }\n\n private createEntity = (params: CreateEntityParams): Entity<any> => {\n return new Entity({\n name: params.name,\n table: params.table,\n attributes: {\n PK: {\n partitionKey: true\n },\n SK: {\n sortKey: true\n },\n GSI1_PK: {\n type: \"string\",\n required: true\n },\n GSI1_SK: {\n type: \"string\",\n required: true\n },\n GSI2_PK: {\n type: \"string\",\n required: true\n },\n GSI2_SK: {\n type: \"string\",\n required: true\n },\n TYPE: {\n type: \"string\"\n },\n data: {\n type: \"map\"\n }\n }\n });\n };\n\n private createTable = ({ name, documentClient }: CreateTableParams) => {\n return new Table({\n name: name || String(process.env.DB_TABLE),\n partitionKey: \"PK\",\n sortKey: \"SK\",\n DocumentClient: documentClient,\n indexes: {\n GSI1: {\n partitionKey: \"GSI1_PK\",\n sortKey: \"GSI1_SK\"\n },\n GSI2: {\n partitionKey: \"GSI2_PK\",\n sortKey: \"GSI2_SK\"\n }\n },\n autoExecute: true,\n autoParse: true\n });\n };\n\n private createKeys = ({ id, tenant, locale }: CreateKeysParams) => ({\n PK: `T#${tenant}#L#${locale}#FLP#${id}`,\n SK: `A`\n });\n\n private createGsiKeys = ({ tenant, locale, type, path, parentId }: CreateGsiKeysParams) => ({\n GSI1_PK: `T#${tenant}#L#${locale}#AT#${type}#FLP`,\n GSI1_SK: path,\n GSI2_PK: `T#${tenant}#L#${locale}#FLP`,\n GSI2_SK: parentId\n });\n}\n\nexport const createFlpOperations = (params: StorageOperationsConfig) => {\n return new FolderLevelPermissionsStorageOperations(params);\n};\n"],"mappings":"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","ignoreList":[]}
|
package/flp/flp.types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Topic } from "@webiny/pubsub/types";
|
|
2
|
-
import { ITaskRunParams } from "@webiny/tasks/types";
|
|
1
|
+
import type { Topic } from "@webiny/pubsub/types";
|
|
2
|
+
import type { ITaskRunParams } from "@webiny/tasks/types";
|
|
3
3
|
import { type AcoContext, type Folder } from "../types";
|
|
4
4
|
import type { FolderLevelPermission, FolderPermission } from "@webiny/shared-aco/flp/flp.types";
|
|
5
5
|
export * from "@webiny/shared-aco/flp/flp.types";
|
package/flp/flp.types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_flp","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["flp.types.ts"],"sourcesContent":["import { Topic } from \"@webiny/pubsub/types\";\nimport { ITaskRunParams } from \"@webiny/tasks/types\";\nimport { type AcoContext, type Folder } from \"~/types\";\nimport type { FolderLevelPermission, FolderPermission } from \"@webiny/shared-aco/flp/flp.types\";\n\nexport * from \"@webiny/shared-aco/flp/flp.types\";\n\n/********\n * CRUD operations\n *******/\n\nexport interface ListFlpsParams {\n where: {\n path_startsWith?: string;\n parentId?: string;\n type: string;\n };\n}\n\nexport type CreateFlpParams = Pick<\n FolderLevelPermission,\n \"id\" | \"type\" | \"permissions\" | \"path\" | \"parentId\" | \"slug\"\n>;\n\nexport interface UpdateFlpParams {\n parentId?: string;\n slug?: string;\n path?: string;\n permissions?: FolderPermission[];\n type?: string;\n}\n\nexport interface OnFlpBeforeCreateTopicParams {\n input: CreateFlpParams;\n}\n\nexport interface OnFlpAfterCreateTopicParams {\n flp: FolderLevelPermission;\n}\n\nexport interface OnFlpBeforeUpdateTopicParams {\n original: FolderLevelPermission;\n input: Record<string, any>;\n}\n\nexport interface OnFlpAfterUpdateTopicParams {\n original: FolderLevelPermission;\n flp: FolderLevelPermission;\n input: Record<string, any>;\n}\n\nexport interface OnFlpBeforeDeleteTopicParams {\n flp: FolderLevelPermission;\n}\n\nexport interface OnFlpAfterDeleteTopicParams {\n flp: FolderLevelPermission;\n}\n\nexport interface OnFlpBatchBeforeUpdateTopicParams {\n items: Array<{\n original: FolderLevelPermission;\n input: UpdateFlpParams;\n }>;\n}\n\nexport interface OnFlpBatchAfterUpdateTopicParams {\n items: Array<{\n original: FolderLevelPermission;\n flp: FolderLevelPermission;\n input: UpdateFlpParams;\n }>;\n}\n\nexport interface AcoFolderLevelPermissionsCrud {\n list(params: ListFlpsParams): Promise<FolderLevelPermission[]>;\n get(id: string): Promise<FolderLevelPermission | null>;\n create(params: CreateFlpParams): Promise<FolderLevelPermission>;\n update(id: string, data: UpdateFlpParams): Promise<FolderLevelPermission>;\n delete(id: string): Promise<boolean>;\n batchUpdate(\n items: Array<{ id: string; data: UpdateFlpParams }>\n ): Promise<FolderLevelPermission[]>;\n onFlpBeforeCreate: Topic<OnFlpBeforeCreateTopicParams>;\n onFlpAfterCreate: Topic<OnFlpAfterCreateTopicParams>;\n onFlpBeforeUpdate: Topic<OnFlpBeforeUpdateTopicParams>;\n onFlpAfterUpdate: Topic<OnFlpAfterUpdateTopicParams>;\n onFlpBeforeDelete: Topic<OnFlpBeforeDeleteTopicParams>;\n onFlpAfterDelete: Topic<OnFlpAfterDeleteTopicParams>;\n onFlpBatchBeforeUpdate: Topic<OnFlpBatchBeforeUpdateTopicParams>;\n onFlpBatchAfterUpdate: Topic<OnFlpBatchAfterUpdateTopicParams>;\n}\n\n/********\n * Storage operations\n *******/\n\nexport interface StorageOperationsListFlpsParams {\n where: ListFlpsParams[\"where\"] & {\n tenant: string;\n locale: string;\n };\n}\n\nexport interface StorageOperationsGetFlpParams {\n id: string;\n tenant: string;\n locale: string;\n}\n\nexport type StorageOperationsCreateFlpParams = {\n data: FolderLevelPermission & {\n tenant: string;\n locale: string;\n };\n};\n\nexport type StorageOperationsUpdateFlpParams = {\n original: FolderLevelPermission;\n data: UpdateFlpParams & {\n tenant: string;\n locale: string;\n };\n};\n\nexport type StorageOperationsDeleteFlpParams = {\n flp: FolderLevelPermission & {\n tenant: string;\n locale: string;\n };\n};\n\nexport interface StorageOperationsBatchUpdateFlpParams {\n items: Array<{\n original: FolderLevelPermission;\n data: UpdateFlpParams & {\n tenant: string;\n locale: string;\n };\n }>;\n}\n\nexport interface AcoFolderLevelPermissionsStorageOperations {\n list(params: StorageOperationsListFlpsParams): Promise<FolderLevelPermission[]>;\n get(params: StorageOperationsGetFlpParams): Promise<FolderLevelPermission | null>;\n create(params: StorageOperationsCreateFlpParams): Promise<FolderLevelPermission>;\n update(params: StorageOperationsUpdateFlpParams): Promise<FolderLevelPermission>;\n delete(params: StorageOperationsDeleteFlpParams): Promise<void>;\n batchUpdate(params: StorageOperationsBatchUpdateFlpParams): Promise<FolderLevelPermission[]>;\n}\n\n/********\n * Background Tasks\n *******/\n\nexport interface ICreateFlpTaskInput {\n folder: Folder;\n}\n\nexport type ICreateFlpTaskParams = ITaskRunParams<AcoContext, ICreateFlpTaskInput>;\n\nexport interface IUpdateFlpTaskInput {\n folder: Folder;\n queued?: string[];\n}\n\nexport type IUpdateFlpTaskParams = ITaskRunParams<AcoContext, IUpdateFlpTaskInput>;\n\nexport interface IDeleteFlpTaskInput {\n folder: Folder;\n}\n\nexport type IDeleteFlpTaskParams = ITaskRunParams<AcoContext, IDeleteFlpTaskInput>;\n\nexport interface ISyncFlpTaskInput {\n type?: string;\n folderId?: string;\n}\n\nexport type ISyncFlpTaskParams = ITaskRunParams<AcoContext, ISyncFlpTaskInput>;\n"],"mappings":";;;;;AAKA,IAAAA,IAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,IAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,IAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,IAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_flp","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["flp.types.ts"],"sourcesContent":["import type { Topic } from \"@webiny/pubsub/types\";\nimport type { ITaskRunParams } from \"@webiny/tasks/types\";\nimport { type AcoContext, type Folder } from \"~/types\";\nimport type { FolderLevelPermission, FolderPermission } from \"@webiny/shared-aco/flp/flp.types\";\n\nexport * from \"@webiny/shared-aco/flp/flp.types\";\n\n/********\n * CRUD operations\n *******/\n\nexport interface ListFlpsParams {\n where: {\n path_startsWith?: string;\n parentId?: string;\n type: string;\n };\n}\n\nexport type CreateFlpParams = Pick<\n FolderLevelPermission,\n \"id\" | \"type\" | \"permissions\" | \"path\" | \"parentId\" | \"slug\"\n>;\n\nexport interface UpdateFlpParams {\n parentId?: string;\n slug?: string;\n path?: string;\n permissions?: FolderPermission[];\n type?: string;\n}\n\nexport interface OnFlpBeforeCreateTopicParams {\n input: CreateFlpParams;\n}\n\nexport interface OnFlpAfterCreateTopicParams {\n flp: FolderLevelPermission;\n}\n\nexport interface OnFlpBeforeUpdateTopicParams {\n original: FolderLevelPermission;\n input: Record<string, any>;\n}\n\nexport interface OnFlpAfterUpdateTopicParams {\n original: FolderLevelPermission;\n flp: FolderLevelPermission;\n input: Record<string, any>;\n}\n\nexport interface OnFlpBeforeDeleteTopicParams {\n flp: FolderLevelPermission;\n}\n\nexport interface OnFlpAfterDeleteTopicParams {\n flp: FolderLevelPermission;\n}\n\nexport interface OnFlpBatchBeforeUpdateTopicParams {\n items: Array<{\n original: FolderLevelPermission;\n input: UpdateFlpParams;\n }>;\n}\n\nexport interface OnFlpBatchAfterUpdateTopicParams {\n items: Array<{\n original: FolderLevelPermission;\n flp: FolderLevelPermission;\n input: UpdateFlpParams;\n }>;\n}\n\nexport interface AcoFolderLevelPermissionsCrud {\n list(params: ListFlpsParams): Promise<FolderLevelPermission[]>;\n get(id: string): Promise<FolderLevelPermission | null>;\n create(params: CreateFlpParams): Promise<FolderLevelPermission>;\n update(id: string, data: UpdateFlpParams): Promise<FolderLevelPermission>;\n delete(id: string): Promise<boolean>;\n batchUpdate(\n items: Array<{ id: string; data: UpdateFlpParams }>\n ): Promise<FolderLevelPermission[]>;\n onFlpBeforeCreate: Topic<OnFlpBeforeCreateTopicParams>;\n onFlpAfterCreate: Topic<OnFlpAfterCreateTopicParams>;\n onFlpBeforeUpdate: Topic<OnFlpBeforeUpdateTopicParams>;\n onFlpAfterUpdate: Topic<OnFlpAfterUpdateTopicParams>;\n onFlpBeforeDelete: Topic<OnFlpBeforeDeleteTopicParams>;\n onFlpAfterDelete: Topic<OnFlpAfterDeleteTopicParams>;\n onFlpBatchBeforeUpdate: Topic<OnFlpBatchBeforeUpdateTopicParams>;\n onFlpBatchAfterUpdate: Topic<OnFlpBatchAfterUpdateTopicParams>;\n}\n\n/********\n * Storage operations\n *******/\n\nexport interface StorageOperationsListFlpsParams {\n where: ListFlpsParams[\"where\"] & {\n tenant: string;\n locale: string;\n };\n}\n\nexport interface StorageOperationsGetFlpParams {\n id: string;\n tenant: string;\n locale: string;\n}\n\nexport type StorageOperationsCreateFlpParams = {\n data: FolderLevelPermission & {\n tenant: string;\n locale: string;\n };\n};\n\nexport type StorageOperationsUpdateFlpParams = {\n original: FolderLevelPermission;\n data: UpdateFlpParams & {\n tenant: string;\n locale: string;\n };\n};\n\nexport type StorageOperationsDeleteFlpParams = {\n flp: FolderLevelPermission & {\n tenant: string;\n locale: string;\n };\n};\n\nexport interface StorageOperationsBatchUpdateFlpParams {\n items: Array<{\n original: FolderLevelPermission;\n data: UpdateFlpParams & {\n tenant: string;\n locale: string;\n };\n }>;\n}\n\nexport interface AcoFolderLevelPermissionsStorageOperations {\n list(params: StorageOperationsListFlpsParams): Promise<FolderLevelPermission[]>;\n get(params: StorageOperationsGetFlpParams): Promise<FolderLevelPermission | null>;\n create(params: StorageOperationsCreateFlpParams): Promise<FolderLevelPermission>;\n update(params: StorageOperationsUpdateFlpParams): Promise<FolderLevelPermission>;\n delete(params: StorageOperationsDeleteFlpParams): Promise<void>;\n batchUpdate(params: StorageOperationsBatchUpdateFlpParams): Promise<FolderLevelPermission[]>;\n}\n\n/********\n * Background Tasks\n *******/\n\nexport interface ICreateFlpTaskInput {\n folder: Folder;\n}\n\nexport type ICreateFlpTaskParams = ITaskRunParams<AcoContext, ICreateFlpTaskInput>;\n\nexport interface IUpdateFlpTaskInput {\n folder: Folder;\n queued?: string[];\n}\n\nexport type IUpdateFlpTaskParams = ITaskRunParams<AcoContext, IUpdateFlpTaskInput>;\n\nexport interface IDeleteFlpTaskInput {\n folder: Folder;\n}\n\nexport type IDeleteFlpTaskParams = ITaskRunParams<AcoContext, IDeleteFlpTaskInput>;\n\nexport interface ISyncFlpTaskInput {\n type?: string;\n folderId?: string;\n}\n\nexport type ISyncFlpTaskParams = ITaskRunParams<AcoContext, ISyncFlpTaskInput>;\n"],"mappings":";;;;;AAKA,IAAAA,IAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,IAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,IAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,IAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
package/flp/hooks/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { AcoContext } from "../../types";
|
|
1
|
+
import type { AcoContext } from "../../types";
|
|
2
2
|
export declare const createFlpHooks: (context: AcoContext) => void;
|
package/flp/hooks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_onFolderAfterCreateFlp","require","_onFolderAfterDeleteFlp","_onFolderAfterUpdateFlp","createFlpHooks","context","onFolderAfterCreateFlpHook","onFolderAfterDeleteFlpHook","onFolderAfterUpdateFlpHook","exports"],"sources":["index.ts"],"sourcesContent":["import { onFolderAfterCreateFlpHook } from \"./onFolderAfterCreateFlp.hook\";\nimport { onFolderAfterDeleteFlpHook } from \"./onFolderAfterDeleteFlp.hook\";\nimport { onFolderAfterUpdateFlpHook } from \"./onFolderAfterUpdateFlp.hook\";\nimport { AcoContext } from \"~/types\";\n\nexport const createFlpHooks = (context: AcoContext) => {\n onFolderAfterCreateFlpHook(context);\n onFolderAfterDeleteFlpHook(context);\n onFolderAfterUpdateFlpHook(context);\n};\n"],"mappings":";;;;;;AAAA,IAAAA,uBAAA,GAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAD,OAAA;AACA,IAAAE,uBAAA,GAAAF,OAAA;AAGO,MAAMG,cAAc,GAAIC,OAAmB,IAAK;EACnD,IAAAC,kDAA0B,EAACD,OAAO,CAAC;EACnC,IAAAE,kDAA0B,EAACF,OAAO,CAAC;EACnC,IAAAG,kDAA0B,EAACH,OAAO,CAAC;AACvC,CAAC;AAACI,OAAA,CAAAL,cAAA,GAAAA,cAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_onFolderAfterCreateFlp","require","_onFolderAfterDeleteFlp","_onFolderAfterUpdateFlp","createFlpHooks","context","onFolderAfterCreateFlpHook","onFolderAfterDeleteFlpHook","onFolderAfterUpdateFlpHook","exports"],"sources":["index.ts"],"sourcesContent":["import { onFolderAfterCreateFlpHook } from \"./onFolderAfterCreateFlp.hook\";\nimport { onFolderAfterDeleteFlpHook } from \"./onFolderAfterDeleteFlp.hook\";\nimport { onFolderAfterUpdateFlpHook } from \"./onFolderAfterUpdateFlp.hook\";\nimport type { AcoContext } from \"~/types\";\n\nexport const createFlpHooks = (context: AcoContext) => {\n onFolderAfterCreateFlpHook(context);\n onFolderAfterDeleteFlpHook(context);\n onFolderAfterUpdateFlpHook(context);\n};\n"],"mappings":";;;;;;AAAA,IAAAA,uBAAA,GAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAD,OAAA;AACA,IAAAE,uBAAA,GAAAF,OAAA;AAGO,MAAMG,cAAc,GAAIC,OAAmB,IAAK;EACnD,IAAAC,kDAA0B,EAACD,OAAO,CAAC;EACnC,IAAAE,kDAA0B,EAACF,OAAO,CAAC;EACnC,IAAAG,kDAA0B,EAACH,OAAO,CAAC;AACvC,CAAC;AAACI,OAAA,CAAAL,cAAA,GAAAA,cAAA","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { AcoContext } from "../../types";
|
|
1
|
+
import type { AcoContext } from "../../types";
|
|
2
2
|
export declare const onFolderAfterCreateFlpHook: (context: AcoContext) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_error","_interopRequireDefault","require","_tasks","_useCases","onFolderAfterCreateFlpHook","context","aco","folder","onFolderAfterCreate","subscribe","tasks","useCase","CreateFlp","execute","trigger","definition","CREATE_FLP_TASK_ID","input","error","WebinyError","from","message","code","exports"],"sources":["onFolderAfterCreateFlp.hook.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { AcoContext
|
|
1
|
+
{"version":3,"names":["_error","_interopRequireDefault","require","_tasks","_useCases","onFolderAfterCreateFlpHook","context","aco","folder","onFolderAfterCreate","subscribe","tasks","useCase","CreateFlp","execute","trigger","definition","CREATE_FLP_TASK_ID","input","error","WebinyError","from","message","code","exports"],"sources":["onFolderAfterCreateFlp.hook.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type { AcoContext } from \"~/types\";\nimport { type ICreateFlpTaskInput } from \"~/types\";\nimport { CREATE_FLP_TASK_ID } from \"../tasks\";\nimport { CreateFlp } from \"~/flp/useCases\";\n\nexport const onFolderAfterCreateFlpHook = (context: AcoContext) => {\n context.aco.folder.onFolderAfterCreate.subscribe(async ({ folder }) => {\n try {\n if (!context.tasks) {\n const useCase = new CreateFlp(context);\n await useCase.execute(folder);\n return;\n }\n\n await context.tasks.trigger<ICreateFlpTaskInput>({\n definition: CREATE_FLP_TASK_ID,\n input: {\n folder\n }\n });\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Error while executing onFolderAfterCreateFlpHook hook.\",\n code: \"ACO_AFTER_FOLDER_CREATE_FLP_HOOK\"\n });\n }\n });\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAEO,MAAMG,0BAA0B,GAAIC,OAAmB,IAAK;EAC/DA,OAAO,CAACC,GAAG,CAACC,MAAM,CAACC,mBAAmB,CAACC,SAAS,CAAC,OAAO;IAAEF;EAAO,CAAC,KAAK;IACnE,IAAI;MACA,IAAI,CAACF,OAAO,CAACK,KAAK,EAAE;QAChB,MAAMC,OAAO,GAAG,IAAIC,mBAAS,CAACP,OAAO,CAAC;QACtC,MAAMM,OAAO,CAACE,OAAO,CAACN,MAAM,CAAC;QAC7B;MACJ;MAEA,MAAMF,OAAO,CAACK,KAAK,CAACI,OAAO,CAAsB;QAC7CC,UAAU,EAAEC,yBAAkB;QAC9BC,KAAK,EAAE;UACHV;QACJ;MACJ,CAAC,CAAC;IACN,CAAC,CAAC,OAAOW,KAAK,EAAE;MACZ,MAAMC,cAAW,CAACC,IAAI,CAACF,KAAK,EAAE;QAC1BG,OAAO,EAAE,wDAAwD;QACjEC,IAAI,EAAE;MACV,CAAC,CAAC;IACN;EACJ,CAAC,CAAC;AACN,CAAC;AAACC,OAAA,CAAAnB,0BAAA,GAAAA,0BAAA","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { AcoContext } from "../../types";
|
|
1
|
+
import type { AcoContext } from "../../types";
|
|
2
2
|
export declare const onFolderAfterDeleteFlpHook: (context: AcoContext) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_error","_interopRequireDefault","require","_tasks","_useCases","onFolderAfterDeleteFlpHook","context","aco","folder","onFolderAfterDelete","subscribe","tasks","useCase","DeleteFlp","execute","trigger","definition","DELETE_FLP_TASK_ID","input","error","WebinyError","from","message","code","exports"],"sources":["onFolderAfterDeleteFlp.hook.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { AcoContext
|
|
1
|
+
{"version":3,"names":["_error","_interopRequireDefault","require","_tasks","_useCases","onFolderAfterDeleteFlpHook","context","aco","folder","onFolderAfterDelete","subscribe","tasks","useCase","DeleteFlp","execute","trigger","definition","DELETE_FLP_TASK_ID","input","error","WebinyError","from","message","code","exports"],"sources":["onFolderAfterDeleteFlp.hook.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type { AcoContext } from \"~/types\";\nimport { type IDeleteFlpTaskInput } from \"~/types\";\nimport { DELETE_FLP_TASK_ID } from \"../tasks\";\nimport { DeleteFlp } from \"~/flp/useCases\";\n\nexport const onFolderAfterDeleteFlpHook = (context: AcoContext) => {\n context.aco.folder.onFolderAfterDelete.subscribe(async ({ folder }) => {\n try {\n if (!context.tasks) {\n const useCase = new DeleteFlp(context);\n await useCase.execute(folder);\n return;\n }\n\n await context.tasks.trigger<IDeleteFlpTaskInput>({\n definition: DELETE_FLP_TASK_ID,\n input: {\n folder\n }\n });\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Error while executing onFolderAfterDeleteFlpHook hook.\",\n code: \"ACO_AFTER_FOLDER_DELETE_FLP_HOOK\"\n });\n }\n });\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAEO,MAAMG,0BAA0B,GAAIC,OAAmB,IAAK;EAC/DA,OAAO,CAACC,GAAG,CAACC,MAAM,CAACC,mBAAmB,CAACC,SAAS,CAAC,OAAO;IAAEF;EAAO,CAAC,KAAK;IACnE,IAAI;MACA,IAAI,CAACF,OAAO,CAACK,KAAK,EAAE;QAChB,MAAMC,OAAO,GAAG,IAAIC,mBAAS,CAACP,OAAO,CAAC;QACtC,MAAMM,OAAO,CAACE,OAAO,CAACN,MAAM,CAAC;QAC7B;MACJ;MAEA,MAAMF,OAAO,CAACK,KAAK,CAACI,OAAO,CAAsB;QAC7CC,UAAU,EAAEC,yBAAkB;QAC9BC,KAAK,EAAE;UACHV;QACJ;MACJ,CAAC,CAAC;IACN,CAAC,CAAC,OAAOW,KAAK,EAAE;MACZ,MAAMC,cAAW,CAACC,IAAI,CAACF,KAAK,EAAE;QAC1BG,OAAO,EAAE,wDAAwD;QACjEC,IAAI,EAAE;MACV,CAAC,CAAC;IACN;EACJ,CAAC,CAAC;AACN,CAAC;AAACC,OAAA,CAAAnB,0BAAA,GAAAA,0BAAA","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { AcoContext } from "../../types";
|
|
1
|
+
import type { AcoContext } from "../../types";
|
|
2
2
|
export declare const onFolderAfterUpdateFlpHook: (context: AcoContext) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_error","_interopRequireDefault","require","_tasks","_useCases","onFolderAfterUpdateFlpHook","context","aco","folder","onFolderAfterUpdate","subscribe","tasks","useCase","UpdateFlp","execute","trigger","definition","UPDATE_FLP_TASK_ID","input","error","WebinyError","from","message","code","exports"],"sources":["onFolderAfterUpdateFlp.hook.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { AcoContext
|
|
1
|
+
{"version":3,"names":["_error","_interopRequireDefault","require","_tasks","_useCases","onFolderAfterUpdateFlpHook","context","aco","folder","onFolderAfterUpdate","subscribe","tasks","useCase","UpdateFlp","execute","trigger","definition","UPDATE_FLP_TASK_ID","input","error","WebinyError","from","message","code","exports"],"sources":["onFolderAfterUpdateFlp.hook.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type { AcoContext } from \"~/types\";\nimport { type IUpdateFlpTaskInput } from \"~/types\";\nimport { UPDATE_FLP_TASK_ID } from \"../tasks\";\nimport { UpdateFlp } from \"~/flp/useCases\";\n\nexport const onFolderAfterUpdateFlpHook = (context: AcoContext) => {\n context.aco.folder.onFolderAfterUpdate.subscribe(async ({ folder }) => {\n try {\n if (!context.tasks) {\n const useCase = new UpdateFlp({ context });\n await useCase.execute(folder);\n return;\n }\n\n await context.tasks.trigger<IUpdateFlpTaskInput>({\n definition: UPDATE_FLP_TASK_ID,\n input: {\n folder\n }\n });\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Error while executing onFolderAfterUpdateFlpHook hook.\",\n code: \"ACO_AFTER_FOLDER_UPDATE_FLP_HOOK\"\n });\n }\n });\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAEO,MAAMG,0BAA0B,GAAIC,OAAmB,IAAK;EAC/DA,OAAO,CAACC,GAAG,CAACC,MAAM,CAACC,mBAAmB,CAACC,SAAS,CAAC,OAAO;IAAEF;EAAO,CAAC,KAAK;IACnE,IAAI;MACA,IAAI,CAACF,OAAO,CAACK,KAAK,EAAE;QAChB,MAAMC,OAAO,GAAG,IAAIC,mBAAS,CAAC;UAAEP;QAAQ,CAAC,CAAC;QAC1C,MAAMM,OAAO,CAACE,OAAO,CAACN,MAAM,CAAC;QAC7B;MACJ;MAEA,MAAMF,OAAO,CAACK,KAAK,CAACI,OAAO,CAAsB;QAC7CC,UAAU,EAAEC,yBAAkB;QAC9BC,KAAK,EAAE;UACHV;QACJ;MACJ,CAAC,CAAC;IACN,CAAC,CAAC,OAAOW,KAAK,EAAE;MACZ,MAAMC,cAAW,CAACC,IAAI,CAACF,KAAK,EAAE;QAC1BG,OAAO,EAAE,wDAAwD;QACjEC,IAAI,EAAE;MACV,CAAC,CAAC;IACN;EACJ,CAAC,CAAC;AACN,CAAC;AAACC,OAAA,CAAAnB,0BAAA,GAAAA,0BAAA","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Plugin } from "@webiny/plugins";
|
|
2
|
-
import { CmsPrivateModelFull } from "@webiny/api-headless-cms";
|
|
3
|
-
import { CmsModelField as BaseModelField } from "@webiny/api-headless-cms/types";
|
|
2
|
+
import type { CmsPrivateModelFull } from "@webiny/api-headless-cms";
|
|
3
|
+
import type { CmsModelField as BaseModelField } from "@webiny/api-headless-cms/types";
|
|
4
4
|
export type CmsModelField = Omit<BaseModelField, "storageId"> & {
|
|
5
5
|
modelIds?: string[];
|
|
6
6
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_plugins","require","_apiHeadlessCms","_folder","FolderModelFieldsModifier","fields","constructor","namespace","setFields","addField","field","tags","rest","push","storageId","type","id","concat","exports","FolderCmsModelModifierPlugin","Plugin","params","modifier","callback","modifyModel","model","modelId","FOLDER_MODEL_ID","extensionsField","find","fieldId","createModelField","label","settings","layout","createFolderModelModifier"],"sources":["createFolderModelModifier.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport { CmsPrivateModelFull
|
|
1
|
+
{"version":3,"names":["_plugins","require","_apiHeadlessCms","_folder","FolderModelFieldsModifier","fields","constructor","namespace","setFields","addField","field","tags","rest","push","storageId","type","id","concat","exports","FolderCmsModelModifierPlugin","Plugin","params","modifier","callback","modifyModel","model","modelId","FOLDER_MODEL_ID","extensionsField","find","fieldId","createModelField","label","settings","layout","createFolderModelModifier"],"sources":["createFolderModelModifier.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport type { CmsPrivateModelFull } from \"@webiny/api-headless-cms\";\nimport { createModelField } from \"@webiny/api-headless-cms\";\nimport type { CmsModelField as BaseModelField } from \"@webiny/api-headless-cms/types\";\nimport { FOLDER_MODEL_ID } from \"~/folder/folder.model\";\n\nexport type CmsModelField = Omit<BaseModelField, \"storageId\"> & { modelIds?: string[] };\n\nexport interface IFolderModelFieldsModifier {\n setFields: (fields: BaseModelField[]) => void;\n addField: (field: CmsModelField) => void;\n}\n\nexport class FolderModelFieldsModifier implements IFolderModelFieldsModifier {\n private fields: BaseModelField[] = [];\n private readonly namespace: string;\n\n constructor(namespace: string) {\n this.namespace = namespace;\n }\n\n setFields(fields: BaseModelField[]) {\n this.fields = fields;\n }\n\n addField(field: CmsModelField) {\n const { tags, ...rest } = field;\n\n this.fields.push({\n ...rest,\n storageId: `${field.type}@${this.namespace}_${field.id}`,\n tags: (tags ?? []).concat([`$namespace:${this.namespace}`])\n });\n }\n}\n\ninterface CmsModelModifierCallableParams {\n modifier: IFolderModelFieldsModifier;\n}\n\nexport interface CmsModelModifierCallable {\n (params: CmsModelModifierCallableParams): Promise<void> | void;\n}\n\ninterface FolderCmsModelModifierPluginParams {\n modifier: IFolderModelFieldsModifier;\n callback: CmsModelModifierCallable;\n}\n\nexport class FolderCmsModelModifierPlugin extends Plugin {\n public static override type = \"aco.folder.cms-model-modifier\";\n private readonly modifier: IFolderModelFieldsModifier;\n private readonly callback: CmsModelModifierCallable;\n\n constructor(params: FolderCmsModelModifierPluginParams) {\n super();\n this.modifier = params.modifier;\n this.callback = params.callback;\n }\n\n async modifyModel(model: CmsPrivateModelFull): Promise<void> {\n if (model.modelId !== FOLDER_MODEL_ID) {\n return;\n }\n\n let extensionsField = model.fields.find(field => field.fieldId === \"extensions\");\n if (!extensionsField) {\n extensionsField = createModelField({\n label: \"Extensions\",\n type: \"object\",\n settings: {\n layout: [],\n fields: []\n }\n });\n model.fields.push(extensionsField);\n }\n\n this.modifier.setFields(extensionsField.settings!.fields!);\n\n await this.callback({ modifier: this.modifier });\n }\n}\n\nexport const createFolderModelModifier = (callback: CmsModelModifierCallable) => {\n const modifier = new FolderModelFieldsModifier(\"global\");\n\n return new FolderCmsModelModifierPlugin({\n callback,\n modifier\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,eAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AASO,MAAMG,yBAAyB,CAAuC;EACjEC,MAAM,GAAqB,EAAE;EAGrCC,WAAWA,CAACC,SAAiB,EAAE;IAC3B,IAAI,CAACA,SAAS,GAAGA,SAAS;EAC9B;EAEAC,SAASA,CAACH,MAAwB,EAAE;IAChC,IAAI,CAACA,MAAM,GAAGA,MAAM;EACxB;EAEAI,QAAQA,CAACC,KAAoB,EAAE;IAC3B,MAAM;MAAEC,IAAI;MAAE,GAAGC;IAAK,CAAC,GAAGF,KAAK;IAE/B,IAAI,CAACL,MAAM,CAACQ,IAAI,CAAC;MACb,GAAGD,IAAI;MACPE,SAAS,EAAE,GAAGJ,KAAK,CAACK,IAAI,IAAI,IAAI,CAACR,SAAS,IAAIG,KAAK,CAACM,EAAE,EAAE;MACxDL,IAAI,EAAE,CAACA,IAAI,IAAI,EAAE,EAAEM,MAAM,CAAC,CAAC,cAAc,IAAI,CAACV,SAAS,EAAE,CAAC;IAC9D,CAAC,CAAC;EACN;AACJ;AAACW,OAAA,CAAAd,yBAAA,GAAAA,yBAAA;AAeM,MAAMe,4BAA4B,SAASC,eAAM,CAAC;EACrD,OAAuBL,IAAI,GAAG,+BAA+B;EAI7DT,WAAWA,CAACe,MAA0C,EAAE;IACpD,KAAK,CAAC,CAAC;IACP,IAAI,CAACC,QAAQ,GAAGD,MAAM,CAACC,QAAQ;IAC/B,IAAI,CAACC,QAAQ,GAAGF,MAAM,CAACE,QAAQ;EACnC;EAEA,MAAMC,WAAWA,CAACC,KAA0B,EAAiB;IACzD,IAAIA,KAAK,CAACC,OAAO,KAAKC,uBAAe,EAAE;MACnC;IACJ;IAEA,IAAIC,eAAe,GAAGH,KAAK,CAACpB,MAAM,CAACwB,IAAI,CAACnB,KAAK,IAAIA,KAAK,CAACoB,OAAO,KAAK,YAAY,CAAC;IAChF,IAAI,CAACF,eAAe,EAAE;MAClBA,eAAe,GAAG,IAAAG,gCAAgB,EAAC;QAC/BC,KAAK,EAAE,YAAY;QACnBjB,IAAI,EAAE,QAAQ;QACdkB,QAAQ,EAAE;UACNC,MAAM,EAAE,EAAE;UACV7B,MAAM,EAAE;QACZ;MACJ,CAAC,CAAC;MACFoB,KAAK,CAACpB,MAAM,CAACQ,IAAI,CAACe,eAAe,CAAC;IACtC;IAEA,IAAI,CAACN,QAAQ,CAACd,SAAS,CAACoB,eAAe,CAACK,QAAQ,CAAE5B,MAAO,CAAC;IAE1D,MAAM,IAAI,CAACkB,QAAQ,CAAC;MAAED,QAAQ,EAAE,IAAI,CAACA;IAAS,CAAC,CAAC;EACpD;AACJ;AAACJ,OAAA,CAAAC,4BAAA,GAAAA,4BAAA;AAEM,MAAMgB,yBAAyB,GAAIZ,QAAkC,IAAK;EAC7E,MAAMD,QAAQ,GAAG,IAAIlB,yBAAyB,CAAC,QAAQ,CAAC;EAExD,OAAO,IAAIe,4BAA4B,CAAC;IACpCI,QAAQ;IACRD;EACJ,CAAC,CAAC;AACN,CAAC;AAACJ,OAAA,CAAAiB,yBAAA,GAAAA,yBAAA","ignoreList":[]}
|
|
@@ -100,6 +100,14 @@ const createFolderTypeDefs = params => {
|
|
|
100
100
|
type: String!
|
|
101
101
|
parentId: ID
|
|
102
102
|
parentId_in: [ID]
|
|
103
|
+
slug: String
|
|
104
|
+
slug_not: String
|
|
105
|
+
slug_contains: String
|
|
106
|
+
slug_not_contains: String
|
|
107
|
+
slug_in: [String]
|
|
108
|
+
slug_not_in: [String]
|
|
109
|
+
slug_startsWith: String
|
|
110
|
+
slug_not_startsWith: String
|
|
103
111
|
path: String
|
|
104
112
|
path_not: String
|
|
105
113
|
path_contains: String
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_renderFields","require","_renderInputFields","removeFieldRequiredValidation","field","validation","filter","name","listValidation","v","createUpdateFields","fields","reduce","collection","push","createFolderTypeDefs","params","model","models","plugins","fieldTypePlugins","fieldTypes","renderFields","type","inputCreateFields","renderInputFields","inputUpdateFields","map","f","typeDefs","join","exports"],"sources":["createFolderTypeDefs.ts"],"sourcesContent":["import { CmsFieldTypePlugins, CmsModel, CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport { renderFields } from \"@webiny/api-headless-cms/utils/renderFields\";\nimport { renderInputFields } from \"@webiny/api-headless-cms/utils/renderInputFields\";\n\nexport interface CreateFolderTypeDefsParams {\n model: CmsModel;\n models: CmsModel[];\n plugins: CmsFieldTypePlugins;\n}\n\nconst removeFieldRequiredValidation = (field: CmsModelField) => {\n if (field.validation) {\n field.validation = field.validation.filter(validation => validation.name !== \"required\");\n }\n if (field.listValidation) {\n field.listValidation = field.listValidation.filter(v => v.name !== \"required\");\n }\n return field;\n};\n\nconst createUpdateFields = (fields: CmsModelField[]): CmsModelField[] => {\n return fields.reduce<CmsModelField[]>((collection, field) => {\n collection.push(removeFieldRequiredValidation({ ...field }));\n return collection;\n }, []);\n};\n\nexport const createFolderTypeDefs = (params: CreateFolderTypeDefsParams): string => {\n const { model, models, plugins: fieldTypePlugins } = params;\n const { fields } = model;\n\n const fieldTypes = renderFields({\n models,\n model,\n fields,\n type: \"manage\",\n fieldTypePlugins\n });\n const inputCreateFields = renderInputFields({\n models,\n model,\n fields,\n fieldTypePlugins\n });\n const inputUpdateFields = renderInputFields({\n models,\n model,\n fields: createUpdateFields(fields),\n fieldTypePlugins\n });\n\n return /* GraphQL */ `\n ${fieldTypes.map(f => f.typeDefs).join(\"\\n\")}\n \n type CompressedResponse {\n compression: String\n value: String\n }\n\n type Folder {\n id: ID!\n # Tells us if the current user can manage folder structure.\n canManageStructure: Boolean\n\n # Tells us if the current user can manage folder permissions.\n canManagePermissions: Boolean\n\n # Tells us if the current user can manage folder content.\n canManageContent: Boolean\n\n # Tells us if the folder contains non-inherited permissions.\n hasNonInheritedPermissions: Boolean\n\n createdOn: DateTime\n modifiedOn: DateTime\n savedOn: DateTime\n createdBy: AcoUser\n modifiedBy: AcoUser\n savedBy: AcoUser\n \n ${fieldTypes.map(f => f.fields).join(\"\\n\")}\n }\n\n ${inputCreateFields.map(f => f.typeDefs).join(\"\\n\")}\n \n input FolderCreateInput {\n # Pass an ID if you want to create a folder with a specific ID.\n id: ID \n \n ${inputCreateFields.map(f => f.fields).join(\"\\n\")}\n }\n \n input FolderUpdateInput {\n ${inputUpdateFields.map(f => f.fields).join(\"\\n\")}\n }\n \n input FoldersListWhereInput {\n type: String!\n parentId: ID\n parentId_in: [ID]\n path: String\n path_not: String\n path_contains: String\n path_not_contains: String\n path_in: [String]\n path_not_in: [String]\n path_startsWith: String\n path_not_startsWith: 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 meta: AcoMeta\n }\n\n type FoldersListCompressedResponse {\n data: CompressedResponse\n error: AcoError\n }\n \n type FoldersHierarchyData {\n parents: [Folder]\n siblings: [Folder]\n }\n\n type FoldersHierarchyResponse {\n data: FoldersHierarchyData\n error: AcoError\n }\n\n type FolderLevelPermissionsTarget {\n id: ID!\n type: String!\n target: ID!\n name: String!\n meta: JSON\n }\n\n type FolderLevelPermissionsTargetsListMeta {\n totalCount: Int!\n }\n\n type FolderLevelPermissionsTargetsListResponse {\n data: [FolderLevelPermissionsTarget]\n meta: FolderLevelPermissionsTargetsListMeta\n error: AcoError\n }\n \n type FolderModelResponse {\n data: JSON\n error: AcoError\n }\n\n extend type AcoQuery {\n getFolderModel: FolderModelResponse!\n getFolder(id: ID!): FolderResponse\n listFolders(\n where: FoldersListWhereInput!\n limit: Int\n after: String\n sort: AcoSort\n ): FoldersListResponse\n listFoldersCompressed(\n where: FoldersListWhereInput!\n limit: Int\n after: String\n sort: AcoSort\n ): FoldersListCompressedResponse\n getFolderHierarchy(type: String!, id: ID!): FoldersHierarchyResponse\n listFolderLevelPermissionsTargets: FolderLevelPermissionsTargetsListResponse\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 extend type AcoFolder_Permissions {\n inheritedFrom: ID\n }\n \n extend input AcoFolder_PermissionsInput {\n inheritedFrom: ID\n }\n `;\n};\n"],"mappings":";;;;;;AACA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AAQA,MAAME,6BAA6B,GAAIC,KAAoB,IAAK;EAC5D,IAAIA,KAAK,CAACC,UAAU,EAAE;IAClBD,KAAK,CAACC,UAAU,GAAGD,KAAK,CAACC,UAAU,CAACC,MAAM,CAACD,UAAU,IAAIA,UAAU,CAACE,IAAI,KAAK,UAAU,CAAC;EAC5F;EACA,IAAIH,KAAK,CAACI,cAAc,EAAE;IACtBJ,KAAK,CAACI,cAAc,GAAGJ,KAAK,CAACI,cAAc,CAACF,MAAM,CAACG,CAAC,IAAIA,CAAC,CAACF,IAAI,KAAK,UAAU,CAAC;EAClF;EACA,OAAOH,KAAK;AAChB,CAAC;AAED,MAAMM,kBAAkB,GAAIC,MAAuB,IAAsB;EACrE,OAAOA,MAAM,CAACC,MAAM,CAAkB,CAACC,UAAU,EAAET,KAAK,KAAK;IACzDS,UAAU,CAACC,IAAI,CAACX,6BAA6B,CAAC;MAAE,GAAGC;IAAM,CAAC,CAAC,CAAC;IAC5D,OAAOS,UAAU;EACrB,CAAC,EAAE,EAAE,CAAC;AACV,CAAC;AAEM,MAAME,oBAAoB,GAAIC,MAAkC,IAAa;EAChF,MAAM;IAAEC,KAAK;IAAEC,MAAM;IAAEC,OAAO,EAAEC;EAAiB,CAAC,GAAGJ,MAAM;EAC3D,MAAM;IAAEL;EAAO,CAAC,GAAGM,KAAK;EAExB,MAAMI,UAAU,GAAG,IAAAC,0BAAY,EAAC;IAC5BJ,MAAM;IACND,KAAK;IACLN,MAAM;IACNY,IAAI,EAAE,QAAQ;IACdH;EACJ,CAAC,CAAC;EACF,MAAMI,iBAAiB,GAAG,IAAAC,oCAAiB,EAAC;IACxCP,MAAM;IACND,KAAK;IACLN,MAAM;IACNS;EACJ,CAAC,CAAC;EACF,MAAMM,iBAAiB,GAAG,IAAAD,oCAAiB,EAAC;IACxCP,MAAM;IACND,KAAK;IACLN,MAAM,EAAED,kBAAkB,CAACC,MAAM,CAAC;IAClCS;EACJ,CAAC,CAAC;EAEF,OAAO,aAAc;AACzB,UAAUC,UAAU,CAACM,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACC,QAAQ,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;AACpD;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,cAAcT,UAAU,CAACM,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACjB,MAAM,CAAC,CAACmB,IAAI,CAAC,IAAI,CAAC;AACtD;AACA;AACA,UAAUN,iBAAiB,CAACG,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACC,QAAQ,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;AAC3D;AACA;AACA;AACA;AACA;AACA,eAAeN,iBAAiB,CAACG,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACjB,MAAM,CAAC,CAACmB,IAAI,CAAC,IAAI,CAAC;AAC9D;AACA;AACA;AACA,cAAcJ,iBAAiB,CAACC,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACjB,MAAM,CAAC,CAACmB,IAAI,CAAC,IAAI,CAAC;AAC7D;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;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;AACL,CAAC;AAACC,OAAA,CAAAhB,oBAAA,GAAAA,oBAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_renderFields","require","_renderInputFields","removeFieldRequiredValidation","field","validation","filter","name","listValidation","v","createUpdateFields","fields","reduce","collection","push","createFolderTypeDefs","params","model","models","plugins","fieldTypePlugins","fieldTypes","renderFields","type","inputCreateFields","renderInputFields","inputUpdateFields","map","f","typeDefs","join","exports"],"sources":["createFolderTypeDefs.ts"],"sourcesContent":["import type { CmsFieldTypePlugins, CmsModel, CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport { renderFields } from \"@webiny/api-headless-cms/utils/renderFields\";\nimport { renderInputFields } from \"@webiny/api-headless-cms/utils/renderInputFields\";\n\nexport interface CreateFolderTypeDefsParams {\n model: CmsModel;\n models: CmsModel[];\n plugins: CmsFieldTypePlugins;\n}\n\nconst removeFieldRequiredValidation = (field: CmsModelField) => {\n if (field.validation) {\n field.validation = field.validation.filter(validation => validation.name !== \"required\");\n }\n if (field.listValidation) {\n field.listValidation = field.listValidation.filter(v => v.name !== \"required\");\n }\n return field;\n};\n\nconst createUpdateFields = (fields: CmsModelField[]): CmsModelField[] => {\n return fields.reduce<CmsModelField[]>((collection, field) => {\n collection.push(removeFieldRequiredValidation({ ...field }));\n return collection;\n }, []);\n};\n\nexport const createFolderTypeDefs = (params: CreateFolderTypeDefsParams): string => {\n const { model, models, plugins: fieldTypePlugins } = params;\n const { fields } = model;\n\n const fieldTypes = renderFields({\n models,\n model,\n fields,\n type: \"manage\",\n fieldTypePlugins\n });\n const inputCreateFields = renderInputFields({\n models,\n model,\n fields,\n fieldTypePlugins\n });\n const inputUpdateFields = renderInputFields({\n models,\n model,\n fields: createUpdateFields(fields),\n fieldTypePlugins\n });\n\n return /* GraphQL */ `\n ${fieldTypes.map(f => f.typeDefs).join(\"\\n\")}\n \n type CompressedResponse {\n compression: String\n value: String\n }\n\n type Folder {\n id: ID!\n # Tells us if the current user can manage folder structure.\n canManageStructure: Boolean\n\n # Tells us if the current user can manage folder permissions.\n canManagePermissions: Boolean\n\n # Tells us if the current user can manage folder content.\n canManageContent: Boolean\n\n # Tells us if the folder contains non-inherited permissions.\n hasNonInheritedPermissions: Boolean\n\n createdOn: DateTime\n modifiedOn: DateTime\n savedOn: DateTime\n createdBy: AcoUser\n modifiedBy: AcoUser\n savedBy: AcoUser\n \n ${fieldTypes.map(f => f.fields).join(\"\\n\")}\n }\n\n ${inputCreateFields.map(f => f.typeDefs).join(\"\\n\")}\n \n input FolderCreateInput {\n # Pass an ID if you want to create a folder with a specific ID.\n id: ID \n \n ${inputCreateFields.map(f => f.fields).join(\"\\n\")}\n }\n \n input FolderUpdateInput {\n ${inputUpdateFields.map(f => f.fields).join(\"\\n\")}\n }\n \n input FoldersListWhereInput {\n type: String!\n parentId: ID\n parentId_in: [ID]\n slug: String\n slug_not: String\n slug_contains: String\n slug_not_contains: String\n slug_in: [String]\n slug_not_in: [String]\n slug_startsWith: String\n slug_not_startsWith: String\n path: String\n path_not: String\n path_contains: String\n path_not_contains: String\n path_in: [String]\n path_not_in: [String]\n path_startsWith: String\n path_not_startsWith: 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 meta: AcoMeta\n }\n\n type FoldersListCompressedResponse {\n data: CompressedResponse\n error: AcoError\n }\n \n type FoldersHierarchyData {\n parents: [Folder]\n siblings: [Folder]\n }\n\n type FoldersHierarchyResponse {\n data: FoldersHierarchyData\n error: AcoError\n }\n\n type FolderLevelPermissionsTarget {\n id: ID!\n type: String!\n target: ID!\n name: String!\n meta: JSON\n }\n\n type FolderLevelPermissionsTargetsListMeta {\n totalCount: Int!\n }\n\n type FolderLevelPermissionsTargetsListResponse {\n data: [FolderLevelPermissionsTarget]\n meta: FolderLevelPermissionsTargetsListMeta\n error: AcoError\n }\n \n type FolderModelResponse {\n data: JSON\n error: AcoError\n }\n\n extend type AcoQuery {\n getFolderModel: FolderModelResponse!\n getFolder(id: ID!): FolderResponse\n listFolders(\n where: FoldersListWhereInput!\n limit: Int\n after: String\n sort: AcoSort\n ): FoldersListResponse\n listFoldersCompressed(\n where: FoldersListWhereInput!\n limit: Int\n after: String\n sort: AcoSort\n ): FoldersListCompressedResponse\n getFolderHierarchy(type: String!, id: ID!): FoldersHierarchyResponse\n listFolderLevelPermissionsTargets: FolderLevelPermissionsTargetsListResponse\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 extend type AcoFolder_Permissions {\n inheritedFrom: ID\n }\n \n extend input AcoFolder_PermissionsInput {\n inheritedFrom: ID\n }\n `;\n};\n"],"mappings":";;;;;;AACA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AAQA,MAAME,6BAA6B,GAAIC,KAAoB,IAAK;EAC5D,IAAIA,KAAK,CAACC,UAAU,EAAE;IAClBD,KAAK,CAACC,UAAU,GAAGD,KAAK,CAACC,UAAU,CAACC,MAAM,CAACD,UAAU,IAAIA,UAAU,CAACE,IAAI,KAAK,UAAU,CAAC;EAC5F;EACA,IAAIH,KAAK,CAACI,cAAc,EAAE;IACtBJ,KAAK,CAACI,cAAc,GAAGJ,KAAK,CAACI,cAAc,CAACF,MAAM,CAACG,CAAC,IAAIA,CAAC,CAACF,IAAI,KAAK,UAAU,CAAC;EAClF;EACA,OAAOH,KAAK;AAChB,CAAC;AAED,MAAMM,kBAAkB,GAAIC,MAAuB,IAAsB;EACrE,OAAOA,MAAM,CAACC,MAAM,CAAkB,CAACC,UAAU,EAAET,KAAK,KAAK;IACzDS,UAAU,CAACC,IAAI,CAACX,6BAA6B,CAAC;MAAE,GAAGC;IAAM,CAAC,CAAC,CAAC;IAC5D,OAAOS,UAAU;EACrB,CAAC,EAAE,EAAE,CAAC;AACV,CAAC;AAEM,MAAME,oBAAoB,GAAIC,MAAkC,IAAa;EAChF,MAAM;IAAEC,KAAK;IAAEC,MAAM;IAAEC,OAAO,EAAEC;EAAiB,CAAC,GAAGJ,MAAM;EAC3D,MAAM;IAAEL;EAAO,CAAC,GAAGM,KAAK;EAExB,MAAMI,UAAU,GAAG,IAAAC,0BAAY,EAAC;IAC5BJ,MAAM;IACND,KAAK;IACLN,MAAM;IACNY,IAAI,EAAE,QAAQ;IACdH;EACJ,CAAC,CAAC;EACF,MAAMI,iBAAiB,GAAG,IAAAC,oCAAiB,EAAC;IACxCP,MAAM;IACND,KAAK;IACLN,MAAM;IACNS;EACJ,CAAC,CAAC;EACF,MAAMM,iBAAiB,GAAG,IAAAD,oCAAiB,EAAC;IACxCP,MAAM;IACND,KAAK;IACLN,MAAM,EAAED,kBAAkB,CAACC,MAAM,CAAC;IAClCS;EACJ,CAAC,CAAC;EAEF,OAAO,aAAc;AACzB,UAAUC,UAAU,CAACM,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACC,QAAQ,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;AACpD;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,cAAcT,UAAU,CAACM,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACjB,MAAM,CAAC,CAACmB,IAAI,CAAC,IAAI,CAAC;AACtD;AACA;AACA,UAAUN,iBAAiB,CAACG,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACC,QAAQ,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;AAC3D;AACA;AACA;AACA;AACA;AACA,eAAeN,iBAAiB,CAACG,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACjB,MAAM,CAAC,CAACmB,IAAI,CAAC,IAAI,CAAC;AAC9D;AACA;AACA;AACA,cAAcJ,iBAAiB,CAACC,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACjB,MAAM,CAAC,CAACmB,IAAI,CAAC,IAAI,CAAC;AAC7D;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;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;AACL,CAAC;AAACC,OAAA,CAAAhB,oBAAA,GAAAA,oBAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_error","_interopRequireDefault","require","_apiSecurity","ensureFolderIsEmpty","context","folder","hasContentCallback","hasFoldersCallback","id","type","folders","aco","list","where","parentId","limit","length","hasFolders","hasContent","Promise","all","WebinyError","folderLevelPermissions","canUseFolderLevelPermissions","hasInvisibleFolders","hasInvisibleContent","security","withoutAuthorization","NotAuthorizedError","data","exports"],"sources":["ensureFolderIsEmpty.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { AcoContext, Folder } from \"~/types\";\nimport { NotAuthorizedError } from \"@webiny/api-security\";\n\ninterface EnsureFolderIsEmptyParams {\n context: AcoContext;\n folder: Pick<Folder, \"id\" | \"type\">;\n hasContentCallback: () => boolean | Promise<boolean>;\n}\n\nexport const ensureFolderIsEmpty = async ({\n context,\n folder,\n hasContentCallback\n}: EnsureFolderIsEmptyParams) => {\n const hasFoldersCallback = async () => {\n const { id, type } = folder;\n const [folders] = await context.aco.folder.list({\n where: {\n type,\n parentId: id\n },\n limit: 1\n });\n\n return folders.length > 0;\n };\n\n const [hasFolders, hasContent] = await Promise.all([\n hasFoldersCallback(),\n hasContentCallback()\n ]);\n\n if (hasFolders || hasContent) {\n throw new WebinyError(\n \"Delete all child folders and entries before proceeding.\",\n \"DELETE_FOLDER_WITH_CHILDREN\",\n {\n folder,\n hasFolders,\n hasContent\n }\n );\n }\n\n // Let's also check if there are folders / content that are not visible because of folder permissions.\n if (!context.aco.folderLevelPermissions.canUseFolderLevelPermissions()) {\n // If folder level permissions are not enabled, we can skip this check. This is because\n // in that case, all folders and content are visible to the user.\n return;\n }\n\n const [hasInvisibleFolders, hasInvisibleContent] = await context.security.withoutAuthorization(\n async () => {\n const [hasFolders, hasContent] = await Promise.all([\n hasFoldersCallback(),\n hasContentCallback()\n ]);\n return [hasFolders, hasContent];\n }\n );\n\n // In case there are invisible folders or content, we'll throw a different error.\n // This is to prevent users from deleting folders that contain content they can't see.\n if (hasInvisibleFolders || hasInvisibleContent) {\n throw new NotAuthorizedError({\n data: {\n folder,\n hasFolders: hasInvisibleFolders,\n hasContent: hasInvisibleContent\n }\n });\n }\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AAQO,MAAME,mBAAmB,GAAG,MAAAA,CAAO;EACtCC,OAAO;EACPC,MAAM;EACNC;AACuB,CAAC,KAAK;EAC7B,MAAMC,kBAAkB,GAAG,MAAAA,CAAA,KAAY;IACnC,MAAM;MAAEC,EAAE;MAAEC;IAAK,CAAC,GAAGJ,MAAM;IAC3B,MAAM,CAACK,OAAO,CAAC,GAAG,MAAMN,OAAO,CAACO,GAAG,CAACN,MAAM,CAACO,IAAI,CAAC;MAC5CC,KAAK,EAAE;QACHJ,IAAI;QACJK,QAAQ,EAAEN;MACd,CAAC;MACDO,KAAK,EAAE;IACX,CAAC,CAAC;IAEF,OAAOL,OAAO,CAACM,MAAM,GAAG,CAAC;EAC7B,CAAC;EAED,MAAM,CAACC,UAAU,EAAEC,UAAU,CAAC,GAAG,MAAMC,OAAO,CAACC,GAAG,CAAC,CAC/Cb,kBAAkB,CAAC,CAAC,EACpBD,kBAAkB,CAAC,CAAC,CACvB,CAAC;EAEF,IAAIW,UAAU,IAAIC,UAAU,EAAE;IAC1B,MAAM,IAAIG,cAAW,CACjB,yDAAyD,EACzD,6BAA6B,EAC7B;MACIhB,MAAM;MACNY,UAAU;MACVC;IACJ,CACJ,CAAC;EACL;;EAEA;EACA,IAAI,CAACd,OAAO,CAACO,GAAG,CAACW,sBAAsB,CAACC,4BAA4B,CAAC,CAAC,EAAE;IACpE;IACA;IACA;EACJ;EAEA,MAAM,CAACC,mBAAmB,EAAEC,mBAAmB,CAAC,GAAG,MAAMrB,OAAO,CAACsB,QAAQ,CAACC,oBAAoB,CAC1F,YAAY;IACR,MAAM,CAACV,UAAU,EAAEC,UAAU,CAAC,GAAG,MAAMC,OAAO,CAACC,GAAG,CAAC,CAC/Cb,kBAAkB,CAAC,CAAC,EACpBD,kBAAkB,CAAC,CAAC,CACvB,CAAC;IACF,OAAO,CAACW,UAAU,EAAEC,UAAU,CAAC;EACnC,CACJ,CAAC;;EAED;EACA;EACA,IAAIM,mBAAmB,IAAIC,mBAAmB,EAAE;IAC5C,MAAM,IAAIG,+BAAkB,CAAC;MACzBC,IAAI,EAAE;QACFxB,MAAM;QACNY,UAAU,EAAEO,mBAAmB;QAC/BN,UAAU,EAAEO;MAChB;IACJ,CAAC,CAAC;EACN;AACJ,CAAC;AAACK,OAAA,CAAA3B,mBAAA,GAAAA,mBAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_error","_interopRequireDefault","require","_apiSecurity","ensureFolderIsEmpty","context","folder","hasContentCallback","hasFoldersCallback","id","type","folders","aco","list","where","parentId","limit","length","hasFolders","hasContent","Promise","all","WebinyError","folderLevelPermissions","canUseFolderLevelPermissions","hasInvisibleFolders","hasInvisibleContent","security","withoutAuthorization","NotAuthorizedError","data","exports"],"sources":["ensureFolderIsEmpty.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type { AcoContext, Folder } from \"~/types\";\nimport { NotAuthorizedError } from \"@webiny/api-security\";\n\ninterface EnsureFolderIsEmptyParams {\n context: AcoContext;\n folder: Pick<Folder, \"id\" | \"type\">;\n hasContentCallback: () => boolean | Promise<boolean>;\n}\n\nexport const ensureFolderIsEmpty = async ({\n context,\n folder,\n hasContentCallback\n}: EnsureFolderIsEmptyParams) => {\n const hasFoldersCallback = async () => {\n const { id, type } = folder;\n const [folders] = await context.aco.folder.list({\n where: {\n type,\n parentId: id\n },\n limit: 1\n });\n\n return folders.length > 0;\n };\n\n const [hasFolders, hasContent] = await Promise.all([\n hasFoldersCallback(),\n hasContentCallback()\n ]);\n\n if (hasFolders || hasContent) {\n throw new WebinyError(\n \"Delete all child folders and entries before proceeding.\",\n \"DELETE_FOLDER_WITH_CHILDREN\",\n {\n folder,\n hasFolders,\n hasContent\n }\n );\n }\n\n // Let's also check if there are folders / content that are not visible because of folder permissions.\n if (!context.aco.folderLevelPermissions.canUseFolderLevelPermissions()) {\n // If folder level permissions are not enabled, we can skip this check. This is because\n // in that case, all folders and content are visible to the user.\n return;\n }\n\n const [hasInvisibleFolders, hasInvisibleContent] = await context.security.withoutAuthorization(\n async () => {\n const [hasFolders, hasContent] = await Promise.all([\n hasFoldersCallback(),\n hasContentCallback()\n ]);\n return [hasFolders, hasContent];\n }\n );\n\n // In case there are invisible folders or content, we'll throw a different error.\n // This is to prevent users from deleting folders that contain content they can't see.\n if (hasInvisibleFolders || hasInvisibleContent) {\n throw new NotAuthorizedError({\n data: {\n folder,\n hasFolders: hasInvisibleFolders,\n hasContent: hasInvisibleContent\n }\n });\n }\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AAQO,MAAME,mBAAmB,GAAG,MAAAA,CAAO;EACtCC,OAAO;EACPC,MAAM;EACNC;AACuB,CAAC,KAAK;EAC7B,MAAMC,kBAAkB,GAAG,MAAAA,CAAA,KAAY;IACnC,MAAM;MAAEC,EAAE;MAAEC;IAAK,CAAC,GAAGJ,MAAM;IAC3B,MAAM,CAACK,OAAO,CAAC,GAAG,MAAMN,OAAO,CAACO,GAAG,CAACN,MAAM,CAACO,IAAI,CAAC;MAC5CC,KAAK,EAAE;QACHJ,IAAI;QACJK,QAAQ,EAAEN;MACd,CAAC;MACDO,KAAK,EAAE;IACX,CAAC,CAAC;IAEF,OAAOL,OAAO,CAACM,MAAM,GAAG,CAAC;EAC7B,CAAC;EAED,MAAM,CAACC,UAAU,EAAEC,UAAU,CAAC,GAAG,MAAMC,OAAO,CAACC,GAAG,CAAC,CAC/Cb,kBAAkB,CAAC,CAAC,EACpBD,kBAAkB,CAAC,CAAC,CACvB,CAAC;EAEF,IAAIW,UAAU,IAAIC,UAAU,EAAE;IAC1B,MAAM,IAAIG,cAAW,CACjB,yDAAyD,EACzD,6BAA6B,EAC7B;MACIhB,MAAM;MACNY,UAAU;MACVC;IACJ,CACJ,CAAC;EACL;;EAEA;EACA,IAAI,CAACd,OAAO,CAACO,GAAG,CAACW,sBAAsB,CAACC,4BAA4B,CAAC,CAAC,EAAE;IACpE;IACA;IACA;EACJ;EAEA,MAAM,CAACC,mBAAmB,EAAEC,mBAAmB,CAAC,GAAG,MAAMrB,OAAO,CAACsB,QAAQ,CAACC,oBAAoB,CAC1F,YAAY;IACR,MAAM,CAACV,UAAU,EAAEC,UAAU,CAAC,GAAG,MAAMC,OAAO,CAACC,GAAG,CAAC,CAC/Cb,kBAAkB,CAAC,CAAC,EACpBD,kBAAkB,CAAC,CAAC,CACvB,CAAC;IACF,OAAO,CAACW,UAAU,EAAEC,UAAU,CAAC;EACnC,CACJ,CAAC;;EAED;EACA;EACA,IAAIM,mBAAmB,IAAIC,mBAAmB,EAAE;IAC5C,MAAM,IAAIG,+BAAkB,CAAC;MACzBC,IAAI,EAAE;QACFxB,MAAM;QACNY,UAAU,EAAEO,mBAAmB;QAC/BN,UAAU,EAAEO;MAChB;IACJ,CAAC,CAAC;EACN;AACJ,CAAC;AAACK,OAAA,CAAA3B,mBAAA,GAAAA,mBAAA","ignoreList":[]}
|
package/folder/folder.crud.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { AcoFolderCrud } from "./folder.types";
|
|
2
|
-
import
|
|
1
|
+
import type { AcoFolderCrud } from "./folder.types";
|
|
2
|
+
import type { CreateAcoParams } from "../types";
|
|
3
|
+
import { type AcoContext } from "../types";
|
|
3
4
|
interface CreateFolderCrudMethodsParams extends CreateAcoParams {
|
|
4
5
|
context: AcoContext;
|
|
5
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_pubsub","require","_useCases","FIXED_FOLDER_LISTING_LIMIT","createFolderCrudMethods","storageOperations","folderLevelPermissions","context","onFolderBeforeCreate","createTopic","onFolderAfterCreate","onFolderBeforeUpdate","onFolderAfterUpdate","onFolderBeforeDelete","onFolderAfterDelete","getFolderUseCase","getFolderUseCaseWithoutPermissions","getGetFolderUseCase","getOperation","folder","getFolder","listFoldersUseCase","listFoldersUseCaseWithoutPermissions","getListFoldersUseCases","listOperation","listFolders","getFolderHierarchyUseCase","getGetFolderHierarchyUseCases","createFolderUseCase","getCreateFolderUseCases","createOperation","createFolder","topics","updateFolderUseCase","getUpdateFolderUseCase","updateOperation","updateFolder","deleteFolderUseCase","getDeleteFolderUseCases","deleteOperation","deleteFolder","getAncestorsUseCase","getGetAncestors","listFolderLevelPermissionsTargetsUseCase","getListFolderLevelPermissionsTargets","get","id","disablePermissions","execute","list","params","listAll","limit","getFolderHierarchy","create","data","delete","update","getAncestors","getFolderWithAncestors","listFolderLevelPermissionsTargets","exports"],"sources":["folder.crud.ts"],"sourcesContent":["import { createTopic } from \"@webiny/pubsub\";\nimport {\n AcoFolderCrud,\n type ListFoldersParams,\n OnFolderAfterCreateTopicParams,\n OnFolderAfterDeleteTopicParams,\n OnFolderAfterUpdateTopicParams,\n OnFolderBeforeCreateTopicParams,\n OnFolderBeforeDeleteTopicParams,\n OnFolderBeforeUpdateTopicParams\n} from \"./folder.types\";\nimport {\n getCreateFolderUseCases,\n getDeleteFolderUseCases,\n getGetAncestors,\n getGetFolderUseCase,\n getListFolderLevelPermissionsTargets,\n getListFoldersUseCases,\n getUpdateFolderUseCase,\n getGetFolderHierarchyUseCases\n} from \"~/folder/useCases\";\nimport { type AcoContext, CreateAcoParams, Folder } from \"~/types\";\n\nconst FIXED_FOLDER_LISTING_LIMIT = 10_000;\n\ninterface CreateFolderCrudMethodsParams extends CreateAcoParams {\n context: AcoContext;\n}\n\nexport const createFolderCrudMethods = ({\n storageOperations,\n folderLevelPermissions,\n context\n}: CreateFolderCrudMethodsParams): 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 const { getFolderUseCase, getFolderUseCaseWithoutPermissions } = getGetFolderUseCase({\n getOperation: storageOperations.folder.getFolder,\n folderLevelPermissions\n });\n\n const { listFoldersUseCase, listFoldersUseCaseWithoutPermissions } = getListFoldersUseCases({\n listOperation: storageOperations.folder.listFolders,\n folderLevelPermissions\n });\n\n const { getFolderHierarchyUseCase } = getGetFolderHierarchyUseCases({\n listOperation: storageOperations.folder.listFolders,\n getOperation: storageOperations.folder.getFolder,\n folderLevelPermissions\n });\n\n const { createFolderUseCase } = getCreateFolderUseCases({\n createOperation: storageOperations.folder.createFolder,\n folderLevelPermissions,\n topics: {\n onFolderAfterCreate,\n onFolderBeforeCreate\n }\n });\n\n const { updateFolderUseCase } = getUpdateFolderUseCase({\n updateOperation: storageOperations.folder.updateFolder,\n getOperation: storageOperations.folder.getFolder,\n folderLevelPermissions,\n topics: {\n onFolderAfterUpdate,\n onFolderBeforeUpdate\n }\n });\n\n const { deleteFolderUseCase } = getDeleteFolderUseCases({\n deleteOperation: storageOperations.folder.deleteFolder,\n getOperation: storageOperations.folder.getFolder,\n folderLevelPermissions,\n topics: {\n onFolderBeforeDelete,\n onFolderAfterDelete\n }\n });\n\n const { getAncestorsUseCase } = getGetAncestors({\n listFoldersUseCase: listFoldersUseCase\n });\n\n const { listFolderLevelPermissionsTargetsUseCase } = getListFolderLevelPermissionsTargets({\n context\n });\n\n return {\n /**\n * Lifecycle events\n */\n onFolderBeforeCreate,\n onFolderAfterCreate,\n onFolderBeforeUpdate,\n onFolderAfterUpdate,\n onFolderBeforeDelete,\n onFolderAfterDelete,\n\n async get(id, disablePermissions) {\n // If permissions are disabled, execute the use case without applying folder-level permissions logic, returning the raw folder data from the database.\n if (disablePermissions) {\n return await getFolderUseCaseWithoutPermissions.execute({ id });\n }\n return await getFolderUseCase.execute({ id });\n },\n\n async list({ disablePermissions, ...params }: ListFoldersParams) {\n // If permissions are disabled, execute the use case without applying folder-level permissions logic, returning the raw folder data from the database.\n if (disablePermissions) {\n return await listFoldersUseCaseWithoutPermissions.execute(params);\n }\n return await listFoldersUseCase.execute(params);\n },\n\n async listAll(params) {\n return await this.list({\n ...params,\n limit: FIXED_FOLDER_LISTING_LIMIT\n });\n },\n\n async getFolderHierarchy(params) {\n return await getFolderHierarchyUseCase.execute(params);\n },\n\n async create(data) {\n return await createFolderUseCase.execute(data);\n },\n\n async delete(id) {\n return await deleteFolderUseCase.execute({ id });\n },\n\n async update(id, data) {\n return await updateFolderUseCase.execute(id, data);\n },\n\n async getAncestors(folder: Folder) {\n return getAncestorsUseCase.execute({ folder });\n },\n\n /**\n * @deprecated use `getAncestors` instead\n */\n async getFolderWithAncestors(id: string) {\n const folder = await this.get(id);\n return this.getAncestors(folder);\n },\n\n async listFolderLevelPermissionsTargets() {\n return await listFolderLevelPermissionsTargetsUseCase.execute();\n }\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_pubsub","require","_useCases","FIXED_FOLDER_LISTING_LIMIT","createFolderCrudMethods","storageOperations","folderLevelPermissions","context","onFolderBeforeCreate","createTopic","onFolderAfterCreate","onFolderBeforeUpdate","onFolderAfterUpdate","onFolderBeforeDelete","onFolderAfterDelete","getFolderUseCase","getFolderUseCaseWithoutPermissions","getGetFolderUseCase","getOperation","folder","getFolder","listFoldersUseCase","listFoldersUseCaseWithoutPermissions","getListFoldersUseCases","listOperation","listFolders","getFolderHierarchyUseCase","getGetFolderHierarchyUseCases","createFolderUseCase","getCreateFolderUseCases","createOperation","createFolder","topics","updateFolderUseCase","getUpdateFolderUseCase","updateOperation","updateFolder","deleteFolderUseCase","getDeleteFolderUseCases","deleteOperation","deleteFolder","getAncestorsUseCase","getGetAncestors","listFolderLevelPermissionsTargetsUseCase","getListFolderLevelPermissionsTargets","get","id","disablePermissions","execute","list","params","listAll","limit","getFolderHierarchy","create","data","delete","update","getAncestors","getFolderWithAncestors","listFolderLevelPermissionsTargets","exports"],"sources":["folder.crud.ts"],"sourcesContent":["import { createTopic } from \"@webiny/pubsub\";\nimport type {\n AcoFolderCrud,\n OnFolderAfterCreateTopicParams,\n OnFolderAfterDeleteTopicParams,\n OnFolderAfterUpdateTopicParams,\n OnFolderBeforeCreateTopicParams,\n OnFolderBeforeDeleteTopicParams,\n OnFolderBeforeUpdateTopicParams\n} from \"./folder.types\";\nimport { type ListFoldersParams } from \"./folder.types\";\nimport {\n getCreateFolderUseCases,\n getDeleteFolderUseCases,\n getGetAncestors,\n getGetFolderUseCase,\n getListFolderLevelPermissionsTargets,\n getListFoldersUseCases,\n getUpdateFolderUseCase,\n getGetFolderHierarchyUseCases\n} from \"~/folder/useCases\";\nimport type { CreateAcoParams, Folder } from \"~/types\";\nimport { type AcoContext } from \"~/types\";\n\nconst FIXED_FOLDER_LISTING_LIMIT = 10_000;\n\ninterface CreateFolderCrudMethodsParams extends CreateAcoParams {\n context: AcoContext;\n}\n\nexport const createFolderCrudMethods = ({\n storageOperations,\n folderLevelPermissions,\n context\n}: CreateFolderCrudMethodsParams): 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 const { getFolderUseCase, getFolderUseCaseWithoutPermissions } = getGetFolderUseCase({\n getOperation: storageOperations.folder.getFolder,\n folderLevelPermissions\n });\n\n const { listFoldersUseCase, listFoldersUseCaseWithoutPermissions } = getListFoldersUseCases({\n listOperation: storageOperations.folder.listFolders,\n folderLevelPermissions\n });\n\n const { getFolderHierarchyUseCase } = getGetFolderHierarchyUseCases({\n listOperation: storageOperations.folder.listFolders,\n getOperation: storageOperations.folder.getFolder,\n folderLevelPermissions\n });\n\n const { createFolderUseCase } = getCreateFolderUseCases({\n createOperation: storageOperations.folder.createFolder,\n folderLevelPermissions,\n topics: {\n onFolderAfterCreate,\n onFolderBeforeCreate\n }\n });\n\n const { updateFolderUseCase } = getUpdateFolderUseCase({\n updateOperation: storageOperations.folder.updateFolder,\n getOperation: storageOperations.folder.getFolder,\n folderLevelPermissions,\n topics: {\n onFolderAfterUpdate,\n onFolderBeforeUpdate\n }\n });\n\n const { deleteFolderUseCase } = getDeleteFolderUseCases({\n deleteOperation: storageOperations.folder.deleteFolder,\n getOperation: storageOperations.folder.getFolder,\n folderLevelPermissions,\n topics: {\n onFolderBeforeDelete,\n onFolderAfterDelete\n }\n });\n\n const { getAncestorsUseCase } = getGetAncestors({\n listFoldersUseCase: listFoldersUseCase\n });\n\n const { listFolderLevelPermissionsTargetsUseCase } = getListFolderLevelPermissionsTargets({\n context\n });\n\n return {\n /**\n * Lifecycle events\n */\n onFolderBeforeCreate,\n onFolderAfterCreate,\n onFolderBeforeUpdate,\n onFolderAfterUpdate,\n onFolderBeforeDelete,\n onFolderAfterDelete,\n\n async get(id, disablePermissions) {\n // If permissions are disabled, execute the use case without applying folder-level permissions logic, returning the raw folder data from the database.\n if (disablePermissions) {\n return await getFolderUseCaseWithoutPermissions.execute({ id });\n }\n return await getFolderUseCase.execute({ id });\n },\n\n async list({ disablePermissions, ...params }: ListFoldersParams) {\n // If permissions are disabled, execute the use case without applying folder-level permissions logic, returning the raw folder data from the database.\n if (disablePermissions) {\n return await listFoldersUseCaseWithoutPermissions.execute(params);\n }\n return await listFoldersUseCase.execute(params);\n },\n\n async listAll(params) {\n return await this.list({\n ...params,\n limit: FIXED_FOLDER_LISTING_LIMIT\n });\n },\n\n async getFolderHierarchy(params) {\n return await getFolderHierarchyUseCase.execute(params);\n },\n\n async create(data) {\n return await createFolderUseCase.execute(data);\n },\n\n async delete(id) {\n return await deleteFolderUseCase.execute({ id });\n },\n\n async update(id, data) {\n return await updateFolderUseCase.execute(id, data);\n },\n\n async getAncestors(folder: Folder) {\n return getAncestorsUseCase.execute({ folder });\n },\n\n /**\n * @deprecated use `getAncestors` instead\n */\n async getFolderWithAncestors(id: string) {\n const folder = await this.get(id);\n return this.getAncestors(folder);\n },\n\n async listFolderLevelPermissionsTargets() {\n return await listFolderLevelPermissionsTargetsUseCase.execute();\n }\n };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAWA,IAAAC,SAAA,GAAAD,OAAA;AAaA,MAAME,0BAA0B,GAAG,MAAM;AAMlC,MAAMC,uBAAuB,GAAGA,CAAC;EACpCC,iBAAiB;EACjBC,sBAAsB;EACtBC;AAC2B,CAAC,KAAoB;EAChD;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,MAAM;IAAEM,gBAAgB;IAAEC;EAAmC,CAAC,GAAG,IAAAC,6BAAmB,EAAC;IACjFC,YAAY,EAAEb,iBAAiB,CAACc,MAAM,CAACC,SAAS;IAChDd;EACJ,CAAC,CAAC;EAEF,MAAM;IAAEe,kBAAkB;IAAEC;EAAqC,CAAC,GAAG,IAAAC,gCAAsB,EAAC;IACxFC,aAAa,EAAEnB,iBAAiB,CAACc,MAAM,CAACM,WAAW;IACnDnB;EACJ,CAAC,CAAC;EAEF,MAAM;IAAEoB;EAA0B,CAAC,GAAG,IAAAC,uCAA6B,EAAC;IAChEH,aAAa,EAAEnB,iBAAiB,CAACc,MAAM,CAACM,WAAW;IACnDP,YAAY,EAAEb,iBAAiB,CAACc,MAAM,CAACC,SAAS;IAChDd;EACJ,CAAC,CAAC;EAEF,MAAM;IAAEsB;EAAoB,CAAC,GAAG,IAAAC,iCAAuB,EAAC;IACpDC,eAAe,EAAEzB,iBAAiB,CAACc,MAAM,CAACY,YAAY;IACtDzB,sBAAsB;IACtB0B,MAAM,EAAE;MACJtB,mBAAmB;MACnBF;IACJ;EACJ,CAAC,CAAC;EAEF,MAAM;IAAEyB;EAAoB,CAAC,GAAG,IAAAC,gCAAsB,EAAC;IACnDC,eAAe,EAAE9B,iBAAiB,CAACc,MAAM,CAACiB,YAAY;IACtDlB,YAAY,EAAEb,iBAAiB,CAACc,MAAM,CAACC,SAAS;IAChDd,sBAAsB;IACtB0B,MAAM,EAAE;MACJpB,mBAAmB;MACnBD;IACJ;EACJ,CAAC,CAAC;EAEF,MAAM;IAAE0B;EAAoB,CAAC,GAAG,IAAAC,iCAAuB,EAAC;IACpDC,eAAe,EAAElC,iBAAiB,CAACc,MAAM,CAACqB,YAAY;IACtDtB,YAAY,EAAEb,iBAAiB,CAACc,MAAM,CAACC,SAAS;IAChDd,sBAAsB;IACtB0B,MAAM,EAAE;MACJnB,oBAAoB;MACpBC;IACJ;EACJ,CAAC,CAAC;EAEF,MAAM;IAAE2B;EAAoB,CAAC,GAAG,IAAAC,yBAAe,EAAC;IAC5CrB,kBAAkB,EAAEA;EACxB,CAAC,CAAC;EAEF,MAAM;IAAEsB;EAAyC,CAAC,GAAG,IAAAC,8CAAoC,EAAC;IACtFrC;EACJ,CAAC,CAAC;EAEF,OAAO;IACH;AACR;AACA;IACQC,oBAAoB;IACpBE,mBAAmB;IACnBC,oBAAoB;IACpBC,mBAAmB;IACnBC,oBAAoB;IACpBC,mBAAmB;IAEnB,MAAM+B,GAAGA,CAACC,EAAE,EAAEC,kBAAkB,EAAE;MAC9B;MACA,IAAIA,kBAAkB,EAAE;QACpB,OAAO,MAAM/B,kCAAkC,CAACgC,OAAO,CAAC;UAAEF;QAAG,CAAC,CAAC;MACnE;MACA,OAAO,MAAM/B,gBAAgB,CAACiC,OAAO,CAAC;QAAEF;MAAG,CAAC,CAAC;IACjD,CAAC;IAED,MAAMG,IAAIA,CAAC;MAAEF,kBAAkB;MAAE,GAAGG;IAA0B,CAAC,EAAE;MAC7D;MACA,IAAIH,kBAAkB,EAAE;QACpB,OAAO,MAAMzB,oCAAoC,CAAC0B,OAAO,CAACE,MAAM,CAAC;MACrE;MACA,OAAO,MAAM7B,kBAAkB,CAAC2B,OAAO,CAACE,MAAM,CAAC;IACnD,CAAC;IAED,MAAMC,OAAOA,CAACD,MAAM,EAAE;MAClB,OAAO,MAAM,IAAI,CAACD,IAAI,CAAC;QACnB,GAAGC,MAAM;QACTE,KAAK,EAAEjD;MACX,CAAC,CAAC;IACN,CAAC;IAED,MAAMkD,kBAAkBA,CAACH,MAAM,EAAE;MAC7B,OAAO,MAAMxB,yBAAyB,CAACsB,OAAO,CAACE,MAAM,CAAC;IAC1D,CAAC;IAED,MAAMI,MAAMA,CAACC,IAAI,EAAE;MACf,OAAO,MAAM3B,mBAAmB,CAACoB,OAAO,CAACO,IAAI,CAAC;IAClD,CAAC;IAED,MAAMC,MAAMA,CAACV,EAAE,EAAE;MACb,OAAO,MAAMT,mBAAmB,CAACW,OAAO,CAAC;QAAEF;MAAG,CAAC,CAAC;IACpD,CAAC;IAED,MAAMW,MAAMA,CAACX,EAAE,EAAES,IAAI,EAAE;MACnB,OAAO,MAAMtB,mBAAmB,CAACe,OAAO,CAACF,EAAE,EAAES,IAAI,CAAC;IACtD,CAAC;IAED,MAAMG,YAAYA,CAACvC,MAAc,EAAE;MAC/B,OAAOsB,mBAAmB,CAACO,OAAO,CAAC;QAAE7B;MAAO,CAAC,CAAC;IAClD,CAAC;IAED;AACR;AACA;IACQ,MAAMwC,sBAAsBA,CAACb,EAAU,EAAE;MACrC,MAAM3B,MAAM,GAAG,MAAM,IAAI,CAAC0B,GAAG,CAACC,EAAE,CAAC;MACjC,OAAO,IAAI,CAACY,YAAY,CAACvC,MAAM,CAAC;IACpC,CAAC;IAED,MAAMyC,iCAAiCA,CAAA,EAAG;MACtC,OAAO,MAAMjB,wCAAwC,CAACK,OAAO,CAAC,CAAC;IACnE;EACJ,CAAC;AACL,CAAC;AAACa,OAAA,CAAAzD,uBAAA,GAAAA,uBAAA","ignoreList":[]}
|
package/folder/folder.gql.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { GraphQLSchemaPlugin } from "@webiny/handler-graphql/plugins/GraphQLSchemaPlugin";
|
|
2
|
-
import { CreateFolderTypeDefsParams } from "./createFolderTypeDefs";
|
|
3
|
-
import { AcoContext } from "../types";
|
|
2
|
+
import type { CreateFolderTypeDefsParams } from "./createFolderTypeDefs";
|
|
3
|
+
import type { AcoContext } from "../types";
|
|
4
4
|
export declare const createFoldersSchema: (params: CreateFolderTypeDefsParams) => GraphQLSchemaPlugin<AcoContext>;
|
package/folder/folder.gql.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_responses","require","_GraphQLSchemaPlugin","_createFolderTypeDefs","_ensureAuthentication","_resolve","_compress","_folder","createFoldersSchema","params","folderGraphQL","GraphQLSchemaPlugin","typeDefs","createFolderTypeDefs","resolvers","Folder","hasNonInheritedPermissions","folder","_","context","aco","folderLevelPermissions","permissionsIncludeNonInheritedPermissions","permissions","canManageStructure","canManageFolderStructure","canManagePermissions","canManageFolderPermissions","canManageContent","canManageFolderContent","AcoQuery","getFolderModel","__","resolve","ensureAuthentication","cms","getModel","FOLDER_MODEL_ID","getFolder","id","get","listFolders","args","entries","meta","list","ListResponse","e","ErrorResponse","listFoldersCompressed","foldersPromises","map","flp","Promise","all","then","compress","getFolderHierarchy","listFolderLevelPermissionsTargets","AcoMutation","createFolder","data","create","updateFolder","update","deleteFolder","delete","name","exports"],"sources":["folder.gql.ts"],"sourcesContent":["import { ErrorResponse, ListResponse } from \"@webiny/handler-graphql/responses\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin\";\n\nimport { createFolderTypeDefs, CreateFolderTypeDefsParams } from \"./createFolderTypeDefs\";\nimport { ensureAuthentication } from \"~/utils/ensureAuthentication\";\nimport { resolve } from \"~/utils/resolve\";\nimport { compress } from \"~/utils/compress\";\n\nimport { AcoContext, Folder } from \"~/types\";\nimport type { FolderLevelPermission } from \"~/flp/flp.types\";\nimport { FOLDER_MODEL_ID } from \"~/folder/folder.model\";\n\nexport const createFoldersSchema = (params: CreateFolderTypeDefsParams) => {\n const folderGraphQL = new GraphQLSchemaPlugin<AcoContext>({\n typeDefs: createFolderTypeDefs(params),\n resolvers: {\n Folder: {\n hasNonInheritedPermissions: (folder: Folder, _, context) => {\n return context.aco.folderLevelPermissions.permissionsIncludeNonInheritedPermissions(\n folder.permissions\n );\n },\n canManageStructure: (folder, _, context) => {\n return context.aco.folderLevelPermissions.canManageFolderStructure(folder);\n },\n canManagePermissions: (folder, _, context) => {\n return context.aco.folderLevelPermissions.canManageFolderPermissions(folder);\n },\n canManageContent: (folder, _, context) => {\n return context.aco.folderLevelPermissions.canManageFolderContent(folder);\n }\n },\n AcoQuery: {\n getFolderModel(_, __, context) {\n return resolve(() => {\n ensureAuthentication(context);\n return context.cms.getModel(FOLDER_MODEL_ID);\n });\n },\n getFolder: async (_, { id }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.folder.get(id);\n });\n },\n listFolders: async (_, args: any, context) => {\n try {\n ensureAuthentication(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 listFoldersCompressed: async (_, args: any, context) => {\n return resolve(async () => {\n ensureAuthentication(context);\n\n const [entries] = await context.aco.folder.list(args);\n const foldersPromises = entries.map(folder => {\n const { folderLevelPermissions: flp } = context.aco;\n\n const canManageStructure = flp.canManageFolderStructure(\n folder as unknown as FolderLevelPermission\n );\n const canManagePermissions = flp.canManageFolderPermissions(\n folder as unknown as FolderLevelPermission\n );\n const canManageContent = flp.canManageFolderContent(\n folder as unknown as FolderLevelPermission\n );\n const hasNonInheritedPermissions =\n flp.permissionsIncludeNonInheritedPermissions(folder.permissions);\n\n return Promise.all([\n canManageStructure,\n canManagePermissions,\n canManageContent,\n hasNonInheritedPermissions\n ]).then(\n ([\n canManageStructure,\n canManagePermissions,\n canManageContent,\n hasNonInheritedPermissions\n ]) => {\n return {\n ...folder,\n canManageStructure,\n canManagePermissions,\n canManageContent,\n hasNonInheritedPermissions\n };\n }\n );\n });\n\n return Promise.all(foldersPromises).then(compress);\n });\n },\n getFolderHierarchy: async (_, args: any, context) => {\n try {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.folder.getFolderHierarchy(args);\n });\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n listFolderLevelPermissionsTargets: async (_, args: any, context) => {\n try {\n ensureAuthentication(context);\n const [entries, meta] =\n await context.aco.folder.listFolderLevelPermissionsTargets();\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 ensureAuthentication(context);\n return context.aco.folder.create(data);\n });\n },\n updateFolder: async (_, { id, data }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.folder.update(id, data);\n });\n },\n deleteFolder: async (_, { id }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.folder.delete(id);\n });\n }\n }\n }\n });\n\n folderGraphQL.name = \"aco.graphql.folders\";\n\n return folderGraphQL;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_responses","require","_GraphQLSchemaPlugin","_createFolderTypeDefs","_ensureAuthentication","_resolve","_compress","_folder","createFoldersSchema","params","folderGraphQL","GraphQLSchemaPlugin","typeDefs","createFolderTypeDefs","resolvers","Folder","hasNonInheritedPermissions","folder","_","context","aco","folderLevelPermissions","permissionsIncludeNonInheritedPermissions","permissions","canManageStructure","canManageFolderStructure","canManagePermissions","canManageFolderPermissions","canManageContent","canManageFolderContent","AcoQuery","getFolderModel","__","resolve","ensureAuthentication","cms","getModel","FOLDER_MODEL_ID","getFolder","id","get","listFolders","args","entries","meta","list","ListResponse","e","ErrorResponse","listFoldersCompressed","foldersPromises","map","flp","Promise","all","then","compress","getFolderHierarchy","listFolderLevelPermissionsTargets","AcoMutation","createFolder","data","create","updateFolder","update","deleteFolder","delete","name","exports"],"sources":["folder.gql.ts"],"sourcesContent":["import { ErrorResponse, ListResponse } from \"@webiny/handler-graphql/responses\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin\";\n\nimport type { CreateFolderTypeDefsParams } from \"./createFolderTypeDefs\";\nimport { createFolderTypeDefs } from \"./createFolderTypeDefs\";\nimport { ensureAuthentication } from \"~/utils/ensureAuthentication\";\nimport { resolve } from \"~/utils/resolve\";\nimport { compress } from \"~/utils/compress\";\n\nimport type { AcoContext, Folder } from \"~/types\";\nimport type { FolderLevelPermission } from \"~/flp/flp.types\";\nimport { FOLDER_MODEL_ID } from \"~/folder/folder.model\";\n\nexport const createFoldersSchema = (params: CreateFolderTypeDefsParams) => {\n const folderGraphQL = new GraphQLSchemaPlugin<AcoContext>({\n typeDefs: createFolderTypeDefs(params),\n resolvers: {\n Folder: {\n hasNonInheritedPermissions: (folder: Folder, _, context) => {\n return context.aco.folderLevelPermissions.permissionsIncludeNonInheritedPermissions(\n folder.permissions\n );\n },\n canManageStructure: (folder, _, context) => {\n return context.aco.folderLevelPermissions.canManageFolderStructure(folder);\n },\n canManagePermissions: (folder, _, context) => {\n return context.aco.folderLevelPermissions.canManageFolderPermissions(folder);\n },\n canManageContent: (folder, _, context) => {\n return context.aco.folderLevelPermissions.canManageFolderContent(folder);\n }\n },\n AcoQuery: {\n getFolderModel(_, __, context) {\n return resolve(() => {\n ensureAuthentication(context);\n return context.cms.getModel(FOLDER_MODEL_ID);\n });\n },\n getFolder: async (_, { id }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.folder.get(id);\n });\n },\n listFolders: async (_, args: any, context) => {\n try {\n ensureAuthentication(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 listFoldersCompressed: async (_, args: any, context) => {\n return resolve(async () => {\n ensureAuthentication(context);\n\n const [entries] = await context.aco.folder.list(args);\n const foldersPromises = entries.map(folder => {\n const { folderLevelPermissions: flp } = context.aco;\n\n const canManageStructure = flp.canManageFolderStructure(\n folder as unknown as FolderLevelPermission\n );\n const canManagePermissions = flp.canManageFolderPermissions(\n folder as unknown as FolderLevelPermission\n );\n const canManageContent = flp.canManageFolderContent(\n folder as unknown as FolderLevelPermission\n );\n const hasNonInheritedPermissions =\n flp.permissionsIncludeNonInheritedPermissions(folder.permissions);\n\n return Promise.all([\n canManageStructure,\n canManagePermissions,\n canManageContent,\n hasNonInheritedPermissions\n ]).then(\n ([\n canManageStructure,\n canManagePermissions,\n canManageContent,\n hasNonInheritedPermissions\n ]) => {\n return {\n ...folder,\n canManageStructure,\n canManagePermissions,\n canManageContent,\n hasNonInheritedPermissions\n };\n }\n );\n });\n\n return Promise.all(foldersPromises).then(compress);\n });\n },\n getFolderHierarchy: async (_, args: any, context) => {\n try {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.folder.getFolderHierarchy(args);\n });\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n listFolderLevelPermissionsTargets: async (_, args: any, context) => {\n try {\n ensureAuthentication(context);\n const [entries, meta] =\n await context.aco.folder.listFolderLevelPermissionsTargets();\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 ensureAuthentication(context);\n return context.aco.folder.create(data);\n });\n },\n updateFolder: async (_, { id, data }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.folder.update(id, data);\n });\n },\n deleteFolder: async (_, { id }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.folder.delete(id);\n });\n }\n }\n }\n });\n\n folderGraphQL.name = \"aco.graphql.folders\";\n\n return folderGraphQL;\n};\n"],"mappings":"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","ignoreList":[]}
|