@webiny/api-aco 5.40.0-beta.2 → 5.40.0-beta.3
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.js.map +1 -1
- package/apps/AcoApps.js.map +1 -1
- package/apps/app.gql.js +1 -2
- package/apps/app.gql.js.map +1 -1
- package/apps/index.js.map +1 -1
- package/createAcoContext.js +0 -1
- package/createAcoContext.js.map +1 -1
- package/createAcoGraphQL.js.map +1 -1
- package/createAcoHooks.js.map +1 -1
- package/createAcoModels.js.map +1 -1
- package/createAcoStorageOperations.js.map +1 -1
- package/filter/filter.crud.js.map +1 -1
- package/filter/filter.gql.js +1 -2
- package/filter/filter.gql.js.map +1 -1
- package/filter/filter.model.js +1 -2
- package/filter/filter.model.js.map +1 -1
- package/filter/filter.so.js.map +1 -1
- package/filter/filter.types.js +1 -2
- package/filter/filter.types.js.map +1 -1
- package/folder/folder.crud.js.map +1 -1
- package/folder/folder.gql.js +1 -2
- package/folder/folder.gql.js.map +1 -1
- package/folder/folder.model.js +1 -3
- package/folder/folder.model.js.map +1 -1
- package/folder/folder.so.js +0 -1
- package/folder/folder.so.js.map +1 -1
- package/folder/folder.types.js.map +1 -1
- package/folder/onFolderBeforeDeleteAco.hook.js.map +1 -1
- package/folder/onFolderBeforeDeleteFm.hook.js.map +1 -1
- package/folder/onFolderBeforeDeleteHcms.hook.js.map +1 -1
- package/index.js.map +1 -1
- package/package.json +31 -32
- package/plugins/AcoAppModifierPlugin.js.map +1 -1
- package/plugins/AcoAppRegisterPlugin.js.map +1 -1
- package/plugins/index.js.map +1 -1
- package/record/graphql/createAppResolvers.js.map +1 -1
- package/record/graphql/createAppSchema.js +2 -3
- package/record/graphql/createAppSchema.js.map +1 -1
- package/record/record.crud.js.map +1 -1
- package/record/record.gql.js.map +1 -1
- package/record/record.model.js +2 -5
- package/record/record.model.js.map +1 -1
- package/record/record.so.js.map +1 -1
- package/record/record.types.js.map +1 -1
- package/types.js +1 -2
- package/types.js.map +1 -1
- package/utils/FolderLevelPermissions.js +7 -3
- package/utils/FolderLevelPermissions.js.map +1 -1
- package/utils/acoRecordId.js.map +1 -1
- package/utils/createListSort.js.map +1 -1
- package/utils/createModelField.js.map +1 -1
- package/utils/createOperationsWrapper.js.map +1 -1
- package/utils/decorators/CmsEntriesCrudDecorators.js +42 -0
- package/utils/decorators/CmsEntriesCrudDecorators.js.map +1 -1
- package/utils/decorators/constants.js +1 -2
- package/utils/decorators/constants.js.map +1 -1
- package/utils/decorators/createFolderType.js.map +1 -1
- package/utils/decorators/decorateIfModelAuthorizationEnabled.d.ts +1 -1
- package/utils/decorators/decorateIfModelAuthorizationEnabled.js.map +1 -1
- package/utils/decorators/filterEntriesByFolderFactory.js.map +1 -1
- package/utils/decorators/isPageModel.js.map +1 -1
- package/utils/decorators/where.js.map +1 -1
- package/utils/ensureAuthentication.js.map +1 -1
- package/utils/getFolderAndItsAncestors.js.map +1 -1
- package/utils/modelFactory.js.map +1 -1
- package/utils/pickEntryFieldValues.js +1 -2
- package/utils/pickEntryFieldValues.js.map +1 -1
- package/utils/resolve.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_pubsub","require","_validation","_getFolderAndItsAncestors","_NotAuthorizedError","_interopRequireDefault","_error","FIXED_FOLDER_LISTING_LIMIT","createFolderCrudMethods","storageOperations","folderLevelPermissions","listAdminUsers","listTeams","onFolderBeforeCreate","createTopic","onFolderAfterCreate","onFolderBeforeUpdate","onFolderAfterUpdate","onFolderBeforeDelete","onFolderAfterDelete","get","id","folder","getFolder","ensureCanAccessFolder","rwd","assignFolderPermissions","list","params","filteredFolders","listAllFoldersWithPermissions","where","type","then","parentId","filter","totalCount","length","hasMoreItems","cursor","after","afterListItemIndex","findIndex","splice","limit","listAll","create","data","canCreateFolder","parentFolder","canAccessFolder","canCreateFolderInRoot","NotAuthorizedError","publish","input","createFolder","invalidateFoldersPermissionsListCache","updateFoldersCache","cachedFolders","update","original","canUpdateFolder","Array","isArray","permissions","forEach","permission","targetIsValid","target","startsWith","Error","inheritedFrom","e","WError","map","currentFolder","stillHasAccess","updateFolder","delete","deleteFolder","getAncestors","folders","getFolderAndItsAncestors","getFolderWithAncestors","listFolderLevelPermissionsTargets","adminUsers","teams","teamTargets","team","name","meta","adminUserTargets","user","displayName","firstName","lastName","Boolean","join","email","validation","validateSync","image","avatar","src","results","exports"],"sources":["folder.crud.ts"],"sourcesContent":["import { createTopic } from \"@webiny/pubsub\";\nimport { validation } from \"@webiny/validation\";\nimport { CreateAcoParams, Folder } from \"~/types\";\nimport {\n AcoFolderCrud,\n OnFolderAfterCreateTopicParams,\n OnFolderAfterDeleteTopicParams,\n OnFolderAfterUpdateTopicParams,\n OnFolderBeforeCreateTopicParams,\n OnFolderBeforeDeleteTopicParams,\n OnFolderBeforeUpdateTopicParams\n} from \"./folder.types\";\n\nimport { getFolderAndItsAncestors } from \"~/utils/getFolderAndItsAncestors\";\nimport NotAuthorizedError from \"@webiny/api-security/NotAuthorizedError\";\nimport { AdminUser } from \"@webiny/api-admin-users/types\";\nimport { Team } from \"@webiny/api-security/types\";\nimport WError from \"@webiny/error\";\n\nconst FIXED_FOLDER_LISTING_LIMIT = 10_000;\n\ninterface CreateFolderCrudMethodsParams extends CreateAcoParams {\n listAdminUsers: () => Promise<AdminUser[]>;\n listTeams: () => Promise<Team[]>;\n}\n\nexport const createFolderCrudMethods = ({\n storageOperations,\n folderLevelPermissions,\n listAdminUsers,\n listTeams\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 return {\n /**\n * Lifecycle events\n */\n onFolderBeforeCreate,\n onFolderAfterCreate,\n onFolderBeforeUpdate,\n onFolderAfterUpdate,\n onFolderBeforeDelete,\n onFolderAfterDelete,\n\n async get(id) {\n const folder = await storageOperations.getFolder({ id });\n\n await folderLevelPermissions.ensureCanAccessFolder({\n folder,\n rwd: \"r\"\n });\n\n await folderLevelPermissions.assignFolderPermissions(folder);\n return folder;\n },\n async list(params) {\n // No matter what was the limit set in the params, initially, we always retrieve\n // all folders. The limit is then applied with the filtered folders list below.\n const filteredFolders = await folderLevelPermissions\n .listAllFoldersWithPermissions(params.where.type)\n .then(filteredFolders => {\n // If `parentId` was included in the `where` clause, we need to filter the folders.\n // TODO: we might want to incorporate this into the `listAllFoldersWithPermissions` method.\n if (params.where.parentId) {\n // Filter by parent ID.\n return filteredFolders.filter(\n folder => folder.parentId === params.where.parentId\n );\n }\n return filteredFolders;\n });\n\n const totalCount = filteredFolders.length;\n let hasMoreItems = false;\n let cursor: string | null = null;\n\n // Apply cursor/limit params.\n if (params.after) {\n const afterListItemIndex = filteredFolders.findIndex(\n folder => folder.id === params.after\n );\n if (afterListItemIndex >= 0) {\n // Remove all items below the \"after\" item.\n filteredFolders.splice(0, afterListItemIndex + 1);\n }\n }\n\n hasMoreItems = !!params.limit && filteredFolders.length > params.limit;\n\n if (hasMoreItems) {\n cursor = filteredFolders[params.limit! - 1]?.id || null;\n filteredFolders.splice(params.limit!);\n }\n\n return [filteredFolders, { totalCount, hasMoreItems, cursor }];\n },\n\n async listAll(params) {\n return this.list({ ...params, limit: FIXED_FOLDER_LISTING_LIMIT });\n },\n\n async create(data) {\n let canCreateFolder = false;\n if (data.parentId) {\n const parentFolder = await storageOperations.getFolder({ id: data.parentId });\n canCreateFolder = await folderLevelPermissions.canAccessFolder({\n folder: parentFolder,\n rwd: \"w\"\n });\n } else {\n canCreateFolder = await folderLevelPermissions.canCreateFolderInRoot();\n }\n\n if (!canCreateFolder) {\n throw new NotAuthorizedError();\n }\n\n await onFolderBeforeCreate.publish({ input: data });\n const folder = await storageOperations.createFolder({ data });\n\n // We need to add the newly created folder to FLP's internal cache. Note that we're also\n // invalidating the permissions list cache for the folder type. We cannot rely on the cache\n // to check if the user has access, because the cache is no longer up to date.\n folderLevelPermissions.invalidateFoldersPermissionsListCache(folder.type);\n folderLevelPermissions.updateFoldersCache(folder.type, cachedFolders => {\n return [...cachedFolders, folder];\n });\n\n // With caches updated and invalidated, we can now assign correct permissions to the folder.\n await folderLevelPermissions.assignFolderPermissions(folder);\n\n await onFolderAfterCreate.publish({ folder });\n\n return folder;\n },\n\n async update(id, data) {\n const original = await storageOperations.getFolder({ id });\n\n const canUpdateFolder = await folderLevelPermissions.canAccessFolder({\n folder: original,\n rwd: \"w\"\n });\n\n if (!canUpdateFolder) {\n throw new NotAuthorizedError();\n }\n\n // Validate data.\n if (Array.isArray(data.permissions)) {\n data.permissions.forEach(permission => {\n const targetIsValid =\n permission.target.startsWith(\"admin:\") ||\n permission.target.startsWith(\"team:\");\n if (!targetIsValid) {\n throw new Error(`Permission target \"${permission.target}\" is not valid.`);\n }\n\n if (permission.inheritedFrom) {\n throw new Error(`Permission \"inheritedFrom\" cannot be set manually.`);\n }\n });\n }\n\n // Parent change is not allowed if the user doesn't have access to the new parent.\n if (data.parentId && data.parentId !== original.parentId) {\n try {\n // Getting the parent folder will throw an error if the user doesn't have access.\n await this.get(data.parentId);\n } catch (e) {\n if (e instanceof NotAuthorizedError) {\n throw new WError(\n `Cannot move folder to a new parent because you don't have access to the new parent.`,\n \"CANNOT_MOVE_FOLDER_TO_NEW_PARENT\"\n );\n }\n\n // If we didn't receive the expected error, we still want to throw it.\n throw e;\n }\n }\n\n // Finally, we check if the user would lose access to the folder by making the update.\n // In order to do this, we need to make a couple of steps. First, we're updating FLP's\n // internal cache with new folder data. Then, we're invalidating the permissions list\n // cache for the folder type. We cannot rely on the cache to check if the user still\n // has access, because the cache might no longer be up-to-date.\n folderLevelPermissions.updateFoldersCache(original.type, cachedFolders => {\n return cachedFolders.map(currentFolder => {\n if (currentFolder.id !== id) {\n return currentFolder;\n }\n return { ...currentFolder, ...data };\n });\n });\n folderLevelPermissions.invalidateFoldersPermissionsListCache(original.type);\n\n // With caches updated and invalidated, we can now check if the user still\n // has access to the folder.\n const stillHasAccess = await folderLevelPermissions.canAccessFolder({\n folder: { id, type: original.type },\n rwd: \"w\"\n });\n\n if (!stillHasAccess) {\n throw new WError(\n `Cannot continue because you would loose access to this folder.`,\n \"CANNOT_LOOSE_FOLDER_ACCESS\"\n );\n }\n\n await onFolderBeforeUpdate.publish({ original, input: { id, data } });\n\n const folder = await storageOperations.updateFolder({ id, data });\n await folderLevelPermissions.assignFolderPermissions(folder);\n\n await onFolderAfterUpdate.publish({ original, input: { id, data }, folder });\n\n return folder;\n },\n\n async delete(id: string) {\n const folder = await storageOperations.getFolder({ id });\n\n await folderLevelPermissions.ensureCanAccessFolder({\n folder,\n rwd: \"d\"\n });\n\n await onFolderBeforeDelete.publish({ folder });\n await storageOperations.deleteFolder({ id });\n await onFolderAfterDelete.publish({ folder });\n return true;\n },\n\n async getAncestors(folder: Folder) {\n const [folders] = await this.listAll({ where: { type: folder.type } });\n return getFolderAndItsAncestors({ folder, folders });\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 const adminUsers = await listAdminUsers();\n const teams = await listTeams();\n\n const teamTargets = teams.map(team => ({\n id: team.id,\n type: \"team\",\n target: `team:${team.id}`,\n name: team.name || \"\",\n meta: {}\n }));\n\n const adminUserTargets = adminUsers.map(user => {\n let name = user.displayName;\n if (!name) {\n // For backwards compatibility, we also want to try concatenating first and last name.\n name = [user.firstName, user.lastName].filter(Boolean).join(\" \");\n }\n\n // We're doing the validation because, with non-Cognito IdPs (Okta, Auth0), the email\n // field might actually contain a non-email value: `id:${IdP_Identity_ID}`. In that case,\n // let's not assign anything to the `email` field.\n let email: string | null = user.email;\n try {\n validation.validateSync(email, \"email\");\n } catch {\n email = null;\n }\n\n const image = user.avatar?.src || null;\n\n return {\n id: user.id,\n type: \"admin\",\n target: `admin:${user.id}`,\n name,\n meta: {\n email,\n image\n }\n };\n });\n\n const results = [...teamTargets, ...adminUserTargets];\n const meta = { totalCount: results.length };\n\n return [results, meta];\n }\n };\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_pubsub","require","_validation","_getFolderAndItsAncestors","_NotAuthorizedError","_interopRequireDefault","_error","FIXED_FOLDER_LISTING_LIMIT","createFolderCrudMethods","storageOperations","folderLevelPermissions","listAdminUsers","listTeams","onFolderBeforeCreate","createTopic","onFolderAfterCreate","onFolderBeforeUpdate","onFolderAfterUpdate","onFolderBeforeDelete","onFolderAfterDelete","get","id","folder","getFolder","ensureCanAccessFolder","rwd","assignFolderPermissions","list","params","filteredFolders","listAllFoldersWithPermissions","where","type","then","parentId","filter","totalCount","length","hasMoreItems","cursor","after","afterListItemIndex","findIndex","splice","limit","listAll","create","data","canCreateFolder","parentFolder","canAccessFolder","canCreateFolderInRoot","NotAuthorizedError","publish","input","createFolder","invalidateFoldersPermissionsListCache","updateFoldersCache","cachedFolders","update","original","canUpdateFolder","Array","isArray","permissions","forEach","permission","targetIsValid","target","startsWith","Error","inheritedFrom","e","WError","map","currentFolder","stillHasAccess","updateFolder","delete","deleteFolder","getAncestors","folders","getFolderAndItsAncestors","getFolderWithAncestors","listFolderLevelPermissionsTargets","adminUsers","teams","teamTargets","team","name","meta","adminUserTargets","user","displayName","firstName","lastName","Boolean","join","email","validation","validateSync","image","avatar","src","results","exports"],"sources":["folder.crud.ts"],"sourcesContent":["import { createTopic } from \"@webiny/pubsub\";\nimport { validation } from \"@webiny/validation\";\nimport { CreateAcoParams, Folder } from \"~/types\";\nimport {\n AcoFolderCrud,\n OnFolderAfterCreateTopicParams,\n OnFolderAfterDeleteTopicParams,\n OnFolderAfterUpdateTopicParams,\n OnFolderBeforeCreateTopicParams,\n OnFolderBeforeDeleteTopicParams,\n OnFolderBeforeUpdateTopicParams\n} from \"./folder.types\";\n\nimport { getFolderAndItsAncestors } from \"~/utils/getFolderAndItsAncestors\";\nimport NotAuthorizedError from \"@webiny/api-security/NotAuthorizedError\";\nimport { AdminUser } from \"@webiny/api-admin-users/types\";\nimport { Team } from \"@webiny/api-security/types\";\nimport WError from \"@webiny/error\";\n\nconst FIXED_FOLDER_LISTING_LIMIT = 10_000;\n\ninterface CreateFolderCrudMethodsParams extends CreateAcoParams {\n listAdminUsers: () => Promise<AdminUser[]>;\n listTeams: () => Promise<Team[]>;\n}\n\nexport const createFolderCrudMethods = ({\n storageOperations,\n folderLevelPermissions,\n listAdminUsers,\n listTeams\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 return {\n /**\n * Lifecycle events\n */\n onFolderBeforeCreate,\n onFolderAfterCreate,\n onFolderBeforeUpdate,\n onFolderAfterUpdate,\n onFolderBeforeDelete,\n onFolderAfterDelete,\n\n async get(id) {\n const folder = await storageOperations.getFolder({ id });\n\n await folderLevelPermissions.ensureCanAccessFolder({\n folder,\n rwd: \"r\"\n });\n\n await folderLevelPermissions.assignFolderPermissions(folder);\n return folder;\n },\n async list(params) {\n // No matter what was the limit set in the params, initially, we always retrieve\n // all folders. The limit is then applied with the filtered folders list below.\n const filteredFolders = await folderLevelPermissions\n .listAllFoldersWithPermissions(params.where.type)\n .then(filteredFolders => {\n // If `parentId` was included in the `where` clause, we need to filter the folders.\n // TODO: we might want to incorporate this into the `listAllFoldersWithPermissions` method.\n if (params.where.parentId) {\n // Filter by parent ID.\n return filteredFolders.filter(\n folder => folder.parentId === params.where.parentId\n );\n }\n return filteredFolders;\n });\n\n const totalCount = filteredFolders.length;\n let hasMoreItems = false;\n let cursor: string | null = null;\n\n // Apply cursor/limit params.\n if (params.after) {\n const afterListItemIndex = filteredFolders.findIndex(\n folder => folder.id === params.after\n );\n if (afterListItemIndex >= 0) {\n // Remove all items below the \"after\" item.\n filteredFolders.splice(0, afterListItemIndex + 1);\n }\n }\n\n hasMoreItems = !!params.limit && filteredFolders.length > params.limit;\n\n if (hasMoreItems) {\n cursor = filteredFolders[params.limit! - 1]?.id || null;\n filteredFolders.splice(params.limit!);\n }\n\n return [filteredFolders, { totalCount, hasMoreItems, cursor }];\n },\n\n async listAll(params) {\n return this.list({ ...params, limit: FIXED_FOLDER_LISTING_LIMIT });\n },\n\n async create(data) {\n let canCreateFolder = false;\n if (data.parentId) {\n const parentFolder = await storageOperations.getFolder({ id: data.parentId });\n canCreateFolder = await folderLevelPermissions.canAccessFolder({\n folder: parentFolder,\n rwd: \"w\"\n });\n } else {\n canCreateFolder = await folderLevelPermissions.canCreateFolderInRoot();\n }\n\n if (!canCreateFolder) {\n throw new NotAuthorizedError();\n }\n\n await onFolderBeforeCreate.publish({ input: data });\n const folder = await storageOperations.createFolder({ data });\n\n // We need to add the newly created folder to FLP's internal cache. Note that we're also\n // invalidating the permissions list cache for the folder type. We cannot rely on the cache\n // to check if the user has access, because the cache is no longer up to date.\n folderLevelPermissions.invalidateFoldersPermissionsListCache(folder.type);\n folderLevelPermissions.updateFoldersCache(folder.type, cachedFolders => {\n return [...cachedFolders, folder];\n });\n\n // With caches updated and invalidated, we can now assign correct permissions to the folder.\n await folderLevelPermissions.assignFolderPermissions(folder);\n\n await onFolderAfterCreate.publish({ folder });\n\n return folder;\n },\n\n async update(id, data) {\n const original = await storageOperations.getFolder({ id });\n\n const canUpdateFolder = await folderLevelPermissions.canAccessFolder({\n folder: original,\n rwd: \"w\"\n });\n\n if (!canUpdateFolder) {\n throw new NotAuthorizedError();\n }\n\n // Validate data.\n if (Array.isArray(data.permissions)) {\n data.permissions.forEach(permission => {\n const targetIsValid =\n permission.target.startsWith(\"admin:\") ||\n permission.target.startsWith(\"team:\");\n if (!targetIsValid) {\n throw new Error(`Permission target \"${permission.target}\" is not valid.`);\n }\n\n if (permission.inheritedFrom) {\n throw new Error(`Permission \"inheritedFrom\" cannot be set manually.`);\n }\n });\n }\n\n // Parent change is not allowed if the user doesn't have access to the new parent.\n if (data.parentId && data.parentId !== original.parentId) {\n try {\n // Getting the parent folder will throw an error if the user doesn't have access.\n await this.get(data.parentId);\n } catch (e) {\n if (e instanceof NotAuthorizedError) {\n throw new WError(\n `Cannot move folder to a new parent because you don't have access to the new parent.`,\n \"CANNOT_MOVE_FOLDER_TO_NEW_PARENT\"\n );\n }\n\n // If we didn't receive the expected error, we still want to throw it.\n throw e;\n }\n }\n\n // Finally, we check if the user would lose access to the folder by making the update.\n // In order to do this, we need to make a couple of steps. First, we're updating FLP's\n // internal cache with new folder data. Then, we're invalidating the permissions list\n // cache for the folder type. We cannot rely on the cache to check if the user still\n // has access, because the cache might no longer be up-to-date.\n folderLevelPermissions.updateFoldersCache(original.type, cachedFolders => {\n return cachedFolders.map(currentFolder => {\n if (currentFolder.id !== id) {\n return currentFolder;\n }\n return { ...currentFolder, ...data };\n });\n });\n folderLevelPermissions.invalidateFoldersPermissionsListCache(original.type);\n\n // With caches updated and invalidated, we can now check if the user still\n // has access to the folder.\n const stillHasAccess = await folderLevelPermissions.canAccessFolder({\n folder: { id, type: original.type },\n rwd: \"w\"\n });\n\n if (!stillHasAccess) {\n throw new WError(\n `Cannot continue because you would loose access to this folder.`,\n \"CANNOT_LOOSE_FOLDER_ACCESS\"\n );\n }\n\n await onFolderBeforeUpdate.publish({ original, input: { id, data } });\n\n const folder = await storageOperations.updateFolder({ id, data });\n await folderLevelPermissions.assignFolderPermissions(folder);\n\n await onFolderAfterUpdate.publish({ original, input: { id, data }, folder });\n\n return folder;\n },\n\n async delete(id: string) {\n const folder = await storageOperations.getFolder({ id });\n\n await folderLevelPermissions.ensureCanAccessFolder({\n folder,\n rwd: \"d\"\n });\n\n await onFolderBeforeDelete.publish({ folder });\n await storageOperations.deleteFolder({ id });\n await onFolderAfterDelete.publish({ folder });\n return true;\n },\n\n async getAncestors(folder: Folder) {\n const [folders] = await this.listAll({ where: { type: folder.type } });\n return getFolderAndItsAncestors({ folder, folders });\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 const adminUsers = await listAdminUsers();\n const teams = await listTeams();\n\n const teamTargets = teams.map(team => ({\n id: team.id,\n type: \"team\",\n target: `team:${team.id}`,\n name: team.name || \"\",\n meta: {}\n }));\n\n const adminUserTargets = adminUsers.map(user => {\n let name = user.displayName;\n if (!name) {\n // For backwards compatibility, we also want to try concatenating first and last name.\n name = [user.firstName, user.lastName].filter(Boolean).join(\" \");\n }\n\n // We're doing the validation because, with non-Cognito IdPs (Okta, Auth0), the email\n // field might actually contain a non-email value: `id:${IdP_Identity_ID}`. In that case,\n // let's not assign anything to the `email` field.\n let email: string | null = user.email;\n try {\n validation.validateSync(email, \"email\");\n } catch {\n email = null;\n }\n\n const image = user.avatar?.src || null;\n\n return {\n id: user.id,\n type: \"admin\",\n target: `admin:${user.id}`,\n name,\n meta: {\n email,\n image\n }\n };\n });\n\n const results = [...teamTargets, ...adminUserTargets];\n const meta = { totalCount: results.length };\n\n return [results, meta];\n }\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
package/folder/folder.gql.js
CHANGED
|
@@ -8,7 +8,7 @@ var _responses = require("@webiny/handler-graphql/responses");
|
|
|
8
8
|
var _GraphQLSchemaPlugin = require("@webiny/handler-graphql/plugins/GraphQLSchemaPlugin");
|
|
9
9
|
var _ensureAuthentication = require("../utils/ensureAuthentication");
|
|
10
10
|
var _resolve = require("../utils/resolve");
|
|
11
|
-
const folderSchema = new _GraphQLSchemaPlugin.GraphQLSchemaPlugin({
|
|
11
|
+
const folderSchema = exports.folderSchema = new _GraphQLSchemaPlugin.GraphQLSchemaPlugin({
|
|
12
12
|
typeDefs: /* GraphQL */`
|
|
13
13
|
type FolderPermission {
|
|
14
14
|
target: String!
|
|
@@ -190,6 +190,5 @@ const folderSchema = new _GraphQLSchemaPlugin.GraphQLSchemaPlugin({
|
|
|
190
190
|
}
|
|
191
191
|
}
|
|
192
192
|
});
|
|
193
|
-
exports.folderSchema = folderSchema;
|
|
194
193
|
|
|
195
194
|
//# sourceMappingURL=folder.gql.js.map
|
package/folder/folder.gql.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_responses","require","_GraphQLSchemaPlugin","_ensureAuthentication","_resolve","folderSchema","GraphQLSchemaPlugin","typeDefs","resolvers","Folder","hasNonInheritedPermissions","folder","_","context","aco","folderLevelPermissions","permissionsIncludeNonInheritedPermissions","permissions","canManageStructure","canManageFolderStructure","canManagePermissions","canManageFolderPermissions","canManageContent","canManageFolderContent","AcoQuery","getFolder","id","resolve","ensureAuthentication","get","listFolders","args","entries","meta","list","ListResponse","e","ErrorResponse","listFolderLevelPermissionsTargets","AcoMutation","createFolder","data","create","updateFolder","update","deleteFolder","delete","exports"],"sources":["folder.gql.ts"],"sourcesContent":["import { ErrorResponse, ListResponse } from \"@webiny/handler-graphql/responses\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin\";\n\nimport { ensureAuthentication } from \"~/utils/ensureAuthentication\";\nimport { resolve } from \"~/utils/resolve\";\n\nimport { AcoContext, Folder } from \"~/types\";\n\nexport const folderSchema = new GraphQLSchemaPlugin<AcoContext>({\n typeDefs: /* GraphQL */ `\n type FolderPermission {\n target: String!\n level: String!\n inheritedFrom: ID\n }\n\n input FolderPermissionInput {\n target: String!\n level: String!\n inheritedFrom: ID\n }\n\n type Folder {\n id: ID!\n title: String!\n slug: String!\n permissions: [FolderPermission]\n\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 type: String!\n parentId: ID\n createdOn: DateTime\n modifiedOn: DateTime\n savedOn: DateTime\n createdBy: AcoUser\n modifiedBy: AcoUser\n savedBy: AcoUser\n }\n\n input FolderCreateInput {\n title: String!\n slug: String!\n permissions: [FolderPermissionInput]\n type: String!\n parentId: ID\n }\n\n input FolderUpdateInput {\n title: String\n slug: String\n permissions: [FolderPermissionInput]\n parentId: ID\n }\n\n input FoldersListWhereInput {\n type: String!\n parentId: String\n createdBy: ID\n }\n\n type FolderResponse {\n data: Folder\n error: AcoError\n }\n\n type FoldersListResponse {\n data: [Folder]\n error: AcoError\n meta: AcoMeta\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 extend type AcoQuery {\n getFolder(id: ID!): FolderResponse\n listFolders(\n where: FoldersListWhereInput!\n limit: Int\n after: String\n sort: AcoSort\n ): FoldersListResponse\n\n 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 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 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 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"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AAEA,IAAAE,qBAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAIO,MAAMI,YAAY,GAAG,IAAIC,wCAAmB,CAAa;EAC5DC,QAAQ,EAAE,aAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;EACDC,SAAS,EAAE;IACPC,MAAM,EAAE;MACJC,0BAA0B,EAAEA,CAACC,MAAc,EAAEC,CAAC,EAAEC,OAAO,KAAK;QACxD,OAAOA,OAAO,CAACC,GAAG,CAACC,sBAAsB,CAACC,yCAAyC,CAC/EL,MAAM,CAACM,WACX,CAAC;MACL,CAAC;MACDC,kBAAkB,EAAEA,CAACP,MAAM,EAAEC,CAAC,EAAEC,OAAO,KAAK;QACxC,OAAOA,OAAO,CAACC,GAAG,CAACC,sBAAsB,CAACI,wBAAwB,CAACR,MAAM,CAAC;MAC9E,CAAC;MACDS,oBAAoB,EAAEA,CAACT,MAAM,EAAEC,CAAC,EAAEC,OAAO,KAAK;QAC1C,OAAOA,OAAO,CAACC,GAAG,CAACC,sBAAsB,CAACM,0BAA0B,CAACV,MAAM,CAAC;MAChF,CAAC;MACDW,gBAAgB,EAAEA,CAACX,MAAM,EAAEC,CAAC,EAAEC,OAAO,KAAK;QACtC,OAAOA,OAAO,CAACC,GAAG,CAACC,sBAAsB,CAACQ,sBAAsB,CAACZ,MAAM,CAAC;MAC5E;IACJ,CAAC;IACDa,QAAQ,EAAE;MACNC,SAAS,EAAE,MAAAA,CAAOb,CAAC,EAAE;QAAEc;MAAG,CAAC,EAAEb,OAAO,KAAK;QACrC,OAAO,IAAAc,gBAAO,EAAC,MAAM;UACjB,IAAAC,0CAAoB,EAACf,OAAO,CAAC;UAC7B,OAAOA,OAAO,CAACC,GAAG,CAACH,MAAM,CAACkB,GAAG,CAACH,EAAE,CAAC;QACrC,CAAC,CAAC;MACN,CAAC;MACDI,WAAW,EAAE,MAAAA,CAAOlB,CAAC,EAAEmB,IAAS,EAAElB,OAAO,KAAK;QAC1C,IAAI;UACA,IAAAe,0CAAoB,EAACf,OAAO,CAAC;UAC7B,MAAM,CAACmB,OAAO,EAAEC,IAAI,CAAC,GAAG,MAAMpB,OAAO,CAACC,GAAG,CAACH,MAAM,CAACuB,IAAI,CAACH,IAAI,CAAC;UAC3D,OAAO,IAAII,uBAAY,CAACH,OAAO,EAAEC,IAAI,CAAC;QAC1C,CAAC,CAAC,OAAOG,CAAC,EAAE;UACR,OAAO,IAAIC,wBAAa,CAACD,CAAC,CAAC;QAC/B;MACJ,CAAC;MACDE,iCAAiC,EAAE,MAAAA,CAAO1B,CAAC,EAAEmB,IAAS,EAAElB,OAAO,KAAK;QAChE,IAAI;UACA,IAAAe,0CAAoB,EAACf,OAAO,CAAC;UAC7B,MAAM,CAACmB,OAAO,EAAEC,IAAI,CAAC,GACjB,MAAMpB,OAAO,CAACC,GAAG,CAACH,MAAM,CAAC2B,iCAAiC,CAAC,CAAC;UAChE,OAAO,IAAIH,uBAAY,CAACH,OAAO,EAAEC,IAAI,CAAC;QAC1C,CAAC,CAAC,OAAOG,CAAC,EAAE;UACR,OAAO,IAAIC,wBAAa,CAACD,CAAC,CAAC;QAC/B;MACJ;IACJ,CAAC;IACDG,WAAW,EAAE;MACTC,YAAY,EAAE,MAAAA,CAAO5B,CAAC,EAAE;QAAE6B;MAAK,CAAC,EAAE5B,OAAO,KAAK;QAC1C,OAAO,IAAAc,gBAAO,EAAC,MAAM;UACjB,IAAAC,0CAAoB,EAACf,OAAO,CAAC;UAC7B,OAAOA,OAAO,CAACC,GAAG,CAACH,MAAM,CAAC+B,MAAM,CAACD,IAAI,CAAC;QAC1C,CAAC,CAAC;MACN,CAAC;MACDE,YAAY,EAAE,MAAAA,CAAO/B,CAAC,EAAE;QAAEc,EAAE;QAAEe;MAAK,CAAC,EAAE5B,OAAO,KAAK;QAC9C,OAAO,IAAAc,gBAAO,EAAC,MAAM;UACjB,IAAAC,0CAAoB,EAACf,OAAO,CAAC;UAC7B,OAAOA,OAAO,CAACC,GAAG,CAACH,MAAM,CAACiC,MAAM,CAAClB,EAAE,EAAEe,IAAI,CAAC;QAC9C,CAAC,CAAC;MACN,CAAC;MACDI,YAAY,EAAE,MAAAA,CAAOjC,CAAC,EAAE;QAAEc;MAAG,CAAC,EAAEb,OAAO,KAAK;QACxC,OAAO,IAAAc,gBAAO,EAAC,MAAM;UACjB,IAAAC,0CAAoB,EAACf,OAAO,CAAC;UAC7B,OAAOA,OAAO,CAACC,GAAG,CAACH,MAAM,CAACmC,MAAM,CAACpB,EAAE,CAAC;QACxC,CAAC,CAAC;MACN;IACJ;EACJ;AACJ,CAAC,CAAC;AAACqB,OAAA,CAAA1C,YAAA,GAAAA,YAAA"}
|
|
1
|
+
{"version":3,"names":["_responses","require","_GraphQLSchemaPlugin","_ensureAuthentication","_resolve","folderSchema","exports","GraphQLSchemaPlugin","typeDefs","resolvers","Folder","hasNonInheritedPermissions","folder","_","context","aco","folderLevelPermissions","permissionsIncludeNonInheritedPermissions","permissions","canManageStructure","canManageFolderStructure","canManagePermissions","canManageFolderPermissions","canManageContent","canManageFolderContent","AcoQuery","getFolder","id","resolve","ensureAuthentication","get","listFolders","args","entries","meta","list","ListResponse","e","ErrorResponse","listFolderLevelPermissionsTargets","AcoMutation","createFolder","data","create","updateFolder","update","deleteFolder","delete"],"sources":["folder.gql.ts"],"sourcesContent":["import { ErrorResponse, ListResponse } from \"@webiny/handler-graphql/responses\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin\";\n\nimport { ensureAuthentication } from \"~/utils/ensureAuthentication\";\nimport { resolve } from \"~/utils/resolve\";\n\nimport { AcoContext, Folder } from \"~/types\";\n\nexport const folderSchema = new GraphQLSchemaPlugin<AcoContext>({\n typeDefs: /* GraphQL */ `\n type FolderPermission {\n target: String!\n level: String!\n inheritedFrom: ID\n }\n\n input FolderPermissionInput {\n target: String!\n level: String!\n inheritedFrom: ID\n }\n\n type Folder {\n id: ID!\n title: String!\n slug: String!\n permissions: [FolderPermission]\n\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 type: String!\n parentId: ID\n createdOn: DateTime\n modifiedOn: DateTime\n savedOn: DateTime\n createdBy: AcoUser\n modifiedBy: AcoUser\n savedBy: AcoUser\n }\n\n input FolderCreateInput {\n title: String!\n slug: String!\n permissions: [FolderPermissionInput]\n type: String!\n parentId: ID\n }\n\n input FolderUpdateInput {\n title: String\n slug: String\n permissions: [FolderPermissionInput]\n parentId: ID\n }\n\n input FoldersListWhereInput {\n type: String!\n parentId: String\n createdBy: ID\n }\n\n type FolderResponse {\n data: Folder\n error: AcoError\n }\n\n type FoldersListResponse {\n data: [Folder]\n error: AcoError\n meta: AcoMeta\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 extend type AcoQuery {\n getFolder(id: ID!): FolderResponse\n listFolders(\n where: FoldersListWhereInput!\n limit: Int\n after: String\n sort: AcoSort\n ): FoldersListResponse\n\n 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 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 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 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"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AAEA,IAAAE,qBAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAIO,MAAMI,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG,IAAIE,wCAAmB,CAAa;EAC5DC,QAAQ,EAAE,aAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;EACDC,SAAS,EAAE;IACPC,MAAM,EAAE;MACJC,0BAA0B,EAAEA,CAACC,MAAc,EAAEC,CAAC,EAAEC,OAAO,KAAK;QACxD,OAAOA,OAAO,CAACC,GAAG,CAACC,sBAAsB,CAACC,yCAAyC,CAC/EL,MAAM,CAACM,WACX,CAAC;MACL,CAAC;MACDC,kBAAkB,EAAEA,CAACP,MAAM,EAAEC,CAAC,EAAEC,OAAO,KAAK;QACxC,OAAOA,OAAO,CAACC,GAAG,CAACC,sBAAsB,CAACI,wBAAwB,CAACR,MAAM,CAAC;MAC9E,CAAC;MACDS,oBAAoB,EAAEA,CAACT,MAAM,EAAEC,CAAC,EAAEC,OAAO,KAAK;QAC1C,OAAOA,OAAO,CAACC,GAAG,CAACC,sBAAsB,CAACM,0BAA0B,CAACV,MAAM,CAAC;MAChF,CAAC;MACDW,gBAAgB,EAAEA,CAACX,MAAM,EAAEC,CAAC,EAAEC,OAAO,KAAK;QACtC,OAAOA,OAAO,CAACC,GAAG,CAACC,sBAAsB,CAACQ,sBAAsB,CAACZ,MAAM,CAAC;MAC5E;IACJ,CAAC;IACDa,QAAQ,EAAE;MACNC,SAAS,EAAE,MAAAA,CAAOb,CAAC,EAAE;QAAEc;MAAG,CAAC,EAAEb,OAAO,KAAK;QACrC,OAAO,IAAAc,gBAAO,EAAC,MAAM;UACjB,IAAAC,0CAAoB,EAACf,OAAO,CAAC;UAC7B,OAAOA,OAAO,CAACC,GAAG,CAACH,MAAM,CAACkB,GAAG,CAACH,EAAE,CAAC;QACrC,CAAC,CAAC;MACN,CAAC;MACDI,WAAW,EAAE,MAAAA,CAAOlB,CAAC,EAAEmB,IAAS,EAAElB,OAAO,KAAK;QAC1C,IAAI;UACA,IAAAe,0CAAoB,EAACf,OAAO,CAAC;UAC7B,MAAM,CAACmB,OAAO,EAAEC,IAAI,CAAC,GAAG,MAAMpB,OAAO,CAACC,GAAG,CAACH,MAAM,CAACuB,IAAI,CAACH,IAAI,CAAC;UAC3D,OAAO,IAAII,uBAAY,CAACH,OAAO,EAAEC,IAAI,CAAC;QAC1C,CAAC,CAAC,OAAOG,CAAC,EAAE;UACR,OAAO,IAAIC,wBAAa,CAACD,CAAC,CAAC;QAC/B;MACJ,CAAC;MACDE,iCAAiC,EAAE,MAAAA,CAAO1B,CAAC,EAAEmB,IAAS,EAAElB,OAAO,KAAK;QAChE,IAAI;UACA,IAAAe,0CAAoB,EAACf,OAAO,CAAC;UAC7B,MAAM,CAACmB,OAAO,EAAEC,IAAI,CAAC,GACjB,MAAMpB,OAAO,CAACC,GAAG,CAACH,MAAM,CAAC2B,iCAAiC,CAAC,CAAC;UAChE,OAAO,IAAIH,uBAAY,CAACH,OAAO,EAAEC,IAAI,CAAC;QAC1C,CAAC,CAAC,OAAOG,CAAC,EAAE;UACR,OAAO,IAAIC,wBAAa,CAACD,CAAC,CAAC;QAC/B;MACJ;IACJ,CAAC;IACDG,WAAW,EAAE;MACTC,YAAY,EAAE,MAAAA,CAAO5B,CAAC,EAAE;QAAE6B;MAAK,CAAC,EAAE5B,OAAO,KAAK;QAC1C,OAAO,IAAAc,gBAAO,EAAC,MAAM;UACjB,IAAAC,0CAAoB,EAACf,OAAO,CAAC;UAC7B,OAAOA,OAAO,CAACC,GAAG,CAACH,MAAM,CAAC+B,MAAM,CAACD,IAAI,CAAC;QAC1C,CAAC,CAAC;MACN,CAAC;MACDE,YAAY,EAAE,MAAAA,CAAO/B,CAAC,EAAE;QAAEc,EAAE;QAAEe;MAAK,CAAC,EAAE5B,OAAO,KAAK;QAC9C,OAAO,IAAAc,gBAAO,EAAC,MAAM;UACjB,IAAAC,0CAAoB,EAACf,OAAO,CAAC;UAC7B,OAAOA,OAAO,CAACC,GAAG,CAACH,MAAM,CAACiC,MAAM,CAAClB,EAAE,EAAEe,IAAI,CAAC;QAC9C,CAAC,CAAC;MACN,CAAC;MACDI,YAAY,EAAE,MAAAA,CAAOjC,CAAC,EAAE;QAAEc;MAAG,CAAC,EAAEb,OAAO,KAAK;QACxC,OAAO,IAAAc,gBAAO,EAAC,MAAM;UACjB,IAAAC,0CAAoB,EAACf,OAAO,CAAC;UAC7B,OAAOA,OAAO,CAACC,GAAG,CAACH,MAAM,CAACmC,MAAM,CAACpB,EAAE,CAAC;QACxC,CAAC,CAAC;MACN;IACJ;EACJ;AACJ,CAAC,CAAC","ignoreList":[]}
|
package/folder/folder.model.js
CHANGED
|
@@ -89,8 +89,7 @@ const permissionsField = () => (0, _createModelField.createModelField)({
|
|
|
89
89
|
layout: [["target"], ["level"]]
|
|
90
90
|
}
|
|
91
91
|
});
|
|
92
|
-
const FOLDER_MODEL_ID = "acoFolder";
|
|
93
|
-
exports.FOLDER_MODEL_ID = FOLDER_MODEL_ID;
|
|
92
|
+
const FOLDER_MODEL_ID = exports.FOLDER_MODEL_ID = "acoFolder";
|
|
94
93
|
const createFolderModel = () => {
|
|
95
94
|
return (0, _apiHeadlessCms.createPrivateModel)({
|
|
96
95
|
name: "ACO - Folder",
|
|
@@ -102,7 +101,6 @@ const createFolderModel = () => {
|
|
|
102
101
|
// We're leaving FLP enabled (no need to set `flp: true`).
|
|
103
102
|
// flp: true
|
|
104
103
|
},
|
|
105
|
-
|
|
106
104
|
titleFieldId: "title",
|
|
107
105
|
fields: [titleField(), slugField(), typeField(), parentIdField(), permissionsField()]
|
|
108
106
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_createModelField","require","_apiHeadlessCms","titleField","createModelField","label","type","validation","name","message","slugField","settings","preset","regex","flags","typeField","parentIdField","permissionsField","fieldId","multipleValues","listValidation","fields","id","storageId","predefinedValues","enabled","values","value","layout","FOLDER_MODEL_ID","exports","createFolderModel","createPrivateModel","modelId","authorization","permissions","titleFieldId"],"sources":["folder.model.ts"],"sourcesContent":["import { createModelField } from \"~/utils/createModelField\";\nimport { createPrivateModel } from \"@webiny/api-headless-cms\";\n\nconst titleField = () =>\n createModelField({\n label: \"Title\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst slugField = () =>\n createModelField({\n label: \"Slug\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n },\n {\n name: \"pattern\",\n settings: {\n preset: \"custom\",\n regex: \"^[a-z0-9]+(-[a-z0-9]+)*$\",\n flags: \"g\"\n },\n message: \"Value must consist of only 'a-z', '0-9' and '-'.\"\n }\n ]\n });\n\nconst typeField = () =>\n createModelField({\n label: \"Type\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst parentIdField = () =>\n createModelField({\n label: \"Parent Id\",\n type: \"text\"\n });\n\nconst permissionsField = () =>\n createModelField({\n label: \"Permissions\",\n fieldId: \"permissions\",\n type: \"object\",\n multipleValues: true,\n listValidation: [],\n settings: {\n fields: [\n {\n id: \"target\",\n type: \"text\",\n storageId: \"text@target\",\n fieldId: \"target\",\n label: \"Target\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n },\n {\n id: \"level\",\n type: \"text\",\n storageId: \"text@level\",\n fieldId: \"level\",\n label: \"Level\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ],\n predefinedValues: {\n enabled: true,\n values: [\n {\n label: \"Viewer\",\n value: \"viewer\"\n },\n {\n label: \"Editor\",\n value: \"editor\"\n },\n {\n label: \"Owner\",\n value: \"owner\"\n },\n {\n label: \"Public\",\n value: \"public\"\n }\n ]\n }\n }\n ],\n layout: [[\"target\"], [\"level\"]]\n }\n });\n\nexport const FOLDER_MODEL_ID = \"acoFolder\";\n\nexport const createFolderModel = () => {\n return createPrivateModel({\n name: \"ACO - Folder\",\n modelId: FOLDER_MODEL_ID,\n authorization: {\n // Disables base permission checks, but leaves FLP checks enabled.\n permissions: false\n\n // We're leaving FLP enabled (no need to set `flp: true`).\n // flp: true\n },\n titleFieldId: \"title\",\n fields: [titleField(), slugField(), typeField(), parentIdField(), permissionsField()]\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AAEA,MAAME,UAAU,GAAGA,CAAA,KACf,IAAAC,kCAAgB,EAAC;EACbC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE,MAAM;EACZC,UAAU,EAAE,CACR;IACIC,IAAI,EAAE,UAAU;IAChBC,OAAO,EAAE;EACb,CAAC;AAET,CAAC,CAAC;AAEN,MAAMC,SAAS,GAAGA,CAAA,KACd,IAAAN,kCAAgB,EAAC;EACbC,KAAK,EAAE,MAAM;EACbC,IAAI,EAAE,MAAM;EACZC,UAAU,EAAE,CACR;IACIC,IAAI,EAAE,UAAU;IAChBC,OAAO,EAAE;EACb,CAAC,EACD;IACID,IAAI,EAAE,SAAS;IACfG,QAAQ,EAAE;MACNC,MAAM,EAAE,QAAQ;MAChBC,KAAK,EAAE,0BAA0B;MACjCC,KAAK,EAAE;IACX,CAAC;IACDL,OAAO,EAAE;EACb,CAAC;AAET,CAAC,CAAC;AAEN,MAAMM,SAAS,GAAGA,CAAA,KACd,IAAAX,kCAAgB,EAAC;EACbC,KAAK,EAAE,MAAM;EACbC,IAAI,EAAE,MAAM;EACZC,UAAU,EAAE,CACR;IACIC,IAAI,EAAE,UAAU;IAChBC,OAAO,EAAE;EACb,CAAC;AAET,CAAC,CAAC;AAEN,MAAMO,aAAa,GAAGA,CAAA,KAClB,IAAAZ,kCAAgB,EAAC;EACbC,KAAK,EAAE,WAAW;EAClBC,IAAI,EAAE;AACV,CAAC,CAAC;AAEN,MAAMW,gBAAgB,GAAGA,CAAA,KACrB,IAAAb,kCAAgB,EAAC;EACbC,KAAK,EAAE,aAAa;EACpBa,OAAO,EAAE,aAAa;EACtBZ,IAAI,EAAE,QAAQ;EACda,cAAc,EAAE,IAAI;EACpBC,cAAc,EAAE,EAAE;EAClBT,QAAQ,EAAE;IACNU,MAAM,EAAE,CACJ;MACIC,EAAE,EAAE,QAAQ;MACZhB,IAAI,EAAE,MAAM;MACZiB,SAAS,EAAE,aAAa;MACxBL,OAAO,EAAE,QAAQ;MACjBb,KAAK,EAAE,QAAQ;MACfE,UAAU,EAAE,CACR;QACIC,IAAI,EAAE,UAAU;QAChBC,OAAO,EAAE;MACb,CAAC;IAET,CAAC,EACD;MACIa,EAAE,EAAE,OAAO;MACXhB,IAAI,EAAE,MAAM;MACZiB,SAAS,EAAE,YAAY;MACvBL,OAAO,EAAE,OAAO;MAChBb,KAAK,EAAE,OAAO;MACdE,UAAU,EAAE,CACR;QACIC,IAAI,EAAE,UAAU;QAChBC,OAAO,EAAE;MACb,CAAC,CACJ;MACDe,gBAAgB,EAAE;QACdC,OAAO,EAAE,IAAI;QACbC,MAAM,EAAE,CACJ;UACIrB,KAAK,EAAE,QAAQ;UACfsB,KAAK,EAAE;QACX,CAAC,EACD;UACItB,KAAK,EAAE,QAAQ;UACfsB,KAAK,EAAE;QACX,CAAC,EACD;UACItB,KAAK,EAAE,OAAO;UACdsB,KAAK,EAAE;QACX,CAAC,EACD;UACItB,KAAK,EAAE,QAAQ;UACfsB,KAAK,EAAE;QACX,CAAC;MAET;IACJ,CAAC,CACJ;IACDC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC;EAClC;AACJ,CAAC,CAAC;AAEC,MAAMC,eAAe,
|
|
1
|
+
{"version":3,"names":["_createModelField","require","_apiHeadlessCms","titleField","createModelField","label","type","validation","name","message","slugField","settings","preset","regex","flags","typeField","parentIdField","permissionsField","fieldId","multipleValues","listValidation","fields","id","storageId","predefinedValues","enabled","values","value","layout","FOLDER_MODEL_ID","exports","createFolderModel","createPrivateModel","modelId","authorization","permissions","titleFieldId"],"sources":["folder.model.ts"],"sourcesContent":["import { createModelField } from \"~/utils/createModelField\";\nimport { createPrivateModel } from \"@webiny/api-headless-cms\";\n\nconst titleField = () =>\n createModelField({\n label: \"Title\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst slugField = () =>\n createModelField({\n label: \"Slug\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n },\n {\n name: \"pattern\",\n settings: {\n preset: \"custom\",\n regex: \"^[a-z0-9]+(-[a-z0-9]+)*$\",\n flags: \"g\"\n },\n message: \"Value must consist of only 'a-z', '0-9' and '-'.\"\n }\n ]\n });\n\nconst typeField = () =>\n createModelField({\n label: \"Type\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst parentIdField = () =>\n createModelField({\n label: \"Parent Id\",\n type: \"text\"\n });\n\nconst permissionsField = () =>\n createModelField({\n label: \"Permissions\",\n fieldId: \"permissions\",\n type: \"object\",\n multipleValues: true,\n listValidation: [],\n settings: {\n fields: [\n {\n id: \"target\",\n type: \"text\",\n storageId: \"text@target\",\n fieldId: \"target\",\n label: \"Target\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n },\n {\n id: \"level\",\n type: \"text\",\n storageId: \"text@level\",\n fieldId: \"level\",\n label: \"Level\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ],\n predefinedValues: {\n enabled: true,\n values: [\n {\n label: \"Viewer\",\n value: \"viewer\"\n },\n {\n label: \"Editor\",\n value: \"editor\"\n },\n {\n label: \"Owner\",\n value: \"owner\"\n },\n {\n label: \"Public\",\n value: \"public\"\n }\n ]\n }\n }\n ],\n layout: [[\"target\"], [\"level\"]]\n }\n });\n\nexport const FOLDER_MODEL_ID = \"acoFolder\";\n\nexport const createFolderModel = () => {\n return createPrivateModel({\n name: \"ACO - Folder\",\n modelId: FOLDER_MODEL_ID,\n authorization: {\n // Disables base permission checks, but leaves FLP checks enabled.\n permissions: false\n\n // We're leaving FLP enabled (no need to set `flp: true`).\n // flp: true\n },\n titleFieldId: \"title\",\n fields: [titleField(), slugField(), typeField(), parentIdField(), permissionsField()]\n });\n};\n"],"mappings":"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","ignoreList":[]}
|
package/folder/folder.so.js
CHANGED
package/folder/folder.so.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_omit","_interopRequireDefault","require","_error","_folder","_createListSort","_createOperationsWrapper","_pickEntryFieldValues","_constants","createFolderOperations","params","cms","withModel","createOperationsWrapper","modelName","FOLDER_MODEL_ID","getFolder","id","slug","type","parentId","model","entry","getEntryById","getEntry","where","latest","WebinyError","pickEntryFieldValues","checkExistingFolder","listResult","storageOperations","entries","list","id_not","limit","items","length","listFolders","sort","meta","listLatestEntries","createListSort","map","createFolder","data","createEntry","updateFolder","original","undefined","input","omit","ENTRY_META_FIELDS","updateEntry","deleteFolder","deleteEntry","exports"],"sources":["folder.so.ts"],"sourcesContent":["import omit from \"lodash/omit\";\nimport WebinyError from \"@webiny/error\";\nimport { FOLDER_MODEL_ID } from \"./folder.model\";\nimport { CreateAcoStorageOperationsParams } from \"~/createAcoStorageOperations\";\nimport { createListSort } from \"~/utils/createListSort\";\nimport { createOperationsWrapper } from \"~/utils/createOperationsWrapper\";\nimport { pickEntryFieldValues } from \"~/utils/pickEntryFieldValues\";\nimport { AcoFolderStorageOperations, Folder } from \"./folder.types\";\nimport { ENTRY_META_FIELDS } from \"@webiny/api-headless-cms/constants\";\n\ninterface AcoCheckExistingFolderParams {\n params: {\n type: string;\n slug: string;\n parentId?: string | null;\n };\n id?: string;\n}\n\nexport const createFolderOperations = (\n params: CreateAcoStorageOperationsParams\n): AcoFolderStorageOperations => {\n const { cms } = params;\n\n const { withModel } = createOperationsWrapper({\n ...params,\n modelName: FOLDER_MODEL_ID\n });\n\n const getFolder: AcoFolderStorageOperations[\"getFolder\"] = ({ id, slug, type, parentId }) => {\n return withModel(async model => {\n let entry;\n\n if (id) {\n entry = await cms.getEntryById(model, id);\n } else if (slug && type) {\n entry = await cms.getEntry(model, {\n where: { slug, type, parentId, latest: true }\n });\n }\n\n if (!entry) {\n throw new WebinyError(\"Could not load folder.\", \"GET_FOLDER_ERROR\", {\n id,\n slug,\n type,\n parentId\n });\n }\n\n return pickEntryFieldValues(entry);\n });\n };\n\n const checkExistingFolder = ({ id, params }: AcoCheckExistingFolderParams) => {\n return withModel(async model => {\n const { type, slug, parentId } = params;\n\n // We don't need to perform any kind of authorization or checks here. We just need to check\n // if the folder already exists in the database. Hence the direct storage operations access.\n const listResult = await cms.storageOperations.entries.list(model, {\n ...params,\n where: {\n // Folders always work with latest entries. We never publish them.\n latest: true,\n type,\n slug,\n parentId,\n id_not: id\n },\n limit: 1\n });\n\n if (listResult?.items?.length > 0) {\n throw new WebinyError(\n `Folder with slug \"${slug}\" already exists at this level.`,\n \"FOLDER_ALREADY_EXISTS\",\n {\n id,\n params\n }\n );\n }\n\n return;\n });\n };\n\n return {\n getFolder,\n listFolders(params) {\n return withModel(async model => {\n const { sort, where } = params;\n\n const [entries, meta] = await cms.listLatestEntries(model, {\n ...params,\n sort: createListSort(sort),\n where: {\n ...(where || {})\n }\n });\n\n return [entries.map(pickEntryFieldValues<Folder>), meta];\n });\n },\n createFolder({ data }) {\n return withModel(async model => {\n await checkExistingFolder({\n params: {\n type: data.type,\n slug: data.slug,\n parentId: data.parentId\n }\n });\n\n const entry = await cms.createEntry(model, {\n ...data,\n parentId: data.parentId || null\n });\n\n return pickEntryFieldValues(entry);\n });\n },\n updateFolder({ id, data }) {\n return withModel(async model => {\n const { slug, parentId } = data;\n\n const original = await getFolder({ id });\n\n await checkExistingFolder({\n id,\n params: {\n type: original.type,\n slug: slug || original.slug,\n parentId: parentId !== undefined ? parentId : original.parentId // parentId can be `null`\n }\n });\n\n const input = {\n /**\n * We are omitting the standard entry meta fields:\n * we don't want to override them with the ones coming from the `original` entry.\n */\n ...omit(original, ENTRY_META_FIELDS),\n ...data\n };\n\n const entry = await cms.updateEntry(model, id, input);\n return pickEntryFieldValues(entry);\n });\n },\n deleteFolder({ id }) {\n return withModel(async model => {\n await cms.deleteEntry(model, id);\n return true;\n });\n }\n };\n};\n"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["_omit","_interopRequireDefault","require","_error","_folder","_createListSort","_createOperationsWrapper","_pickEntryFieldValues","_constants","createFolderOperations","params","cms","withModel","createOperationsWrapper","modelName","FOLDER_MODEL_ID","getFolder","id","slug","type","parentId","model","entry","getEntryById","getEntry","where","latest","WebinyError","pickEntryFieldValues","checkExistingFolder","listResult","storageOperations","entries","list","id_not","limit","items","length","listFolders","sort","meta","listLatestEntries","createListSort","map","createFolder","data","createEntry","updateFolder","original","undefined","input","omit","ENTRY_META_FIELDS","updateEntry","deleteFolder","deleteEntry","exports"],"sources":["folder.so.ts"],"sourcesContent":["import omit from \"lodash/omit\";\nimport WebinyError from \"@webiny/error\";\nimport { FOLDER_MODEL_ID } from \"./folder.model\";\nimport { CreateAcoStorageOperationsParams } from \"~/createAcoStorageOperations\";\nimport { createListSort } from \"~/utils/createListSort\";\nimport { createOperationsWrapper } from \"~/utils/createOperationsWrapper\";\nimport { pickEntryFieldValues } from \"~/utils/pickEntryFieldValues\";\nimport { AcoFolderStorageOperations, Folder } from \"./folder.types\";\nimport { ENTRY_META_FIELDS } from \"@webiny/api-headless-cms/constants\";\n\ninterface AcoCheckExistingFolderParams {\n params: {\n type: string;\n slug: string;\n parentId?: string | null;\n };\n id?: string;\n}\n\nexport const createFolderOperations = (\n params: CreateAcoStorageOperationsParams\n): AcoFolderStorageOperations => {\n const { cms } = params;\n\n const { withModel } = createOperationsWrapper({\n ...params,\n modelName: FOLDER_MODEL_ID\n });\n\n const getFolder: AcoFolderStorageOperations[\"getFolder\"] = ({ id, slug, type, parentId }) => {\n return withModel(async model => {\n let entry;\n\n if (id) {\n entry = await cms.getEntryById(model, id);\n } else if (slug && type) {\n entry = await cms.getEntry(model, {\n where: { slug, type, parentId, latest: true }\n });\n }\n\n if (!entry) {\n throw new WebinyError(\"Could not load folder.\", \"GET_FOLDER_ERROR\", {\n id,\n slug,\n type,\n parentId\n });\n }\n\n return pickEntryFieldValues(entry);\n });\n };\n\n const checkExistingFolder = ({ id, params }: AcoCheckExistingFolderParams) => {\n return withModel(async model => {\n const { type, slug, parentId } = params;\n\n // We don't need to perform any kind of authorization or checks here. We just need to check\n // if the folder already exists in the database. Hence the direct storage operations access.\n const listResult = await cms.storageOperations.entries.list(model, {\n ...params,\n where: {\n // Folders always work with latest entries. We never publish them.\n latest: true,\n type,\n slug,\n parentId,\n id_not: id\n },\n limit: 1\n });\n\n if (listResult?.items?.length > 0) {\n throw new WebinyError(\n `Folder with slug \"${slug}\" already exists at this level.`,\n \"FOLDER_ALREADY_EXISTS\",\n {\n id,\n params\n }\n );\n }\n\n return;\n });\n };\n\n return {\n getFolder,\n listFolders(params) {\n return withModel(async model => {\n const { sort, where } = params;\n\n const [entries, meta] = await cms.listLatestEntries(model, {\n ...params,\n sort: createListSort(sort),\n where: {\n ...(where || {})\n }\n });\n\n return [entries.map(pickEntryFieldValues<Folder>), meta];\n });\n },\n createFolder({ data }) {\n return withModel(async model => {\n await checkExistingFolder({\n params: {\n type: data.type,\n slug: data.slug,\n parentId: data.parentId\n }\n });\n\n const entry = await cms.createEntry(model, {\n ...data,\n parentId: data.parentId || null\n });\n\n return pickEntryFieldValues(entry);\n });\n },\n updateFolder({ id, data }) {\n return withModel(async model => {\n const { slug, parentId } = data;\n\n const original = await getFolder({ id });\n\n await checkExistingFolder({\n id,\n params: {\n type: original.type,\n slug: slug || original.slug,\n parentId: parentId !== undefined ? parentId : original.parentId // parentId can be `null`\n }\n });\n\n const input = {\n /**\n * We are omitting the standard entry meta fields:\n * we don't want to override them with the ones coming from the `original` entry.\n */\n ...omit(original, ENTRY_META_FIELDS),\n ...data\n };\n\n const entry = await cms.updateEntry(model, id, input);\n return pickEntryFieldValues(entry);\n });\n },\n deleteFolder({ id }) {\n return withModel(async model => {\n await cms.deleteEntry(model, id);\n return true;\n });\n }\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["folder.types.ts"],"sourcesContent":["import { ListMeta, ListSort, User } from \"~/types\";\nimport { Topic } from \"@webiny/pubsub/types\";\nimport { FolderPermission } from \"~/utils/FolderLevelPermissions\";\n\nexport interface Folder {\n id: string;\n entryId: string;\n createdOn: string;\n modifiedOn: string | null;\n savedOn: string;\n createdBy: User;\n modifiedBy: User | null;\n savedBy: User;\n title: string;\n slug: string;\n permissions?: FolderPermission[];\n type: string;\n parentId?: string | null;\n}\n\nexport interface ListFoldersWhere {\n type: string;\n parentId?: string | null;\n}\n\nexport interface ListFoldersParams {\n where: ListFoldersWhere;\n sort?: ListSort;\n limit?: number;\n after?: string | null;\n}\n\nexport type ListAllFoldersParams = Omit<ListFoldersParams, \"limit\" | \"after\">;\n\nexport type CreateFolderParams = Pick<Folder, \"title\" | \"slug\" | \"type\" | \"parentId\">;\n\nexport interface UpdateFolderParams {\n title?: string;\n slug?: string;\n permissions?: FolderPermission[];\n parentId?: string;\n}\n\nexport interface DeleteFolderParams {\n id: string;\n}\n\nexport interface FolderLevelPermissionsTarget<TMeta = Record<string, any>> {\n id: string;\n target: string;\n name: string;\n type: string;\n meta: TMeta;\n}\n\nexport interface FolderLevelPermissionsTargetListMeta {\n totalCount: number;\n}\n\nexport interface StorageOperationsGetFolderParams {\n id?: string;\n slug?: string;\n type?: string;\n parentId?: string | null;\n}\n\nexport type StorageOperationsListFoldersParams = ListFoldersParams;\n\nexport interface StorageOperationsCreateFolderParams {\n data: CreateFolderParams;\n}\n\nexport interface StorageOperationsUpdateFolderParams {\n id: string;\n data: UpdateFolderParams;\n}\n\nexport type StorageOperationsDeleteFolderParams = DeleteFolderParams;\n\nexport interface OnFolderBeforeCreateTopicParams {\n input: CreateFolderParams;\n}\n\nexport interface OnFolderAfterCreateTopicParams {\n folder: Folder;\n}\n\nexport interface OnFolderBeforeUpdateTopicParams {\n original: Folder;\n input: Record<string, any>;\n}\n\nexport interface OnFolderAfterUpdateTopicParams {\n original: Folder;\n folder: Folder;\n input: Record<string, any>;\n}\n\nexport interface OnFolderBeforeDeleteTopicParams {\n folder: Folder;\n}\n\nexport interface OnFolderAfterDeleteTopicParams {\n folder: Folder;\n}\n\nexport interface AcoFolderCrud {\n get(id: string): Promise<Folder>;\n\n list(params: ListFoldersParams): Promise<[Folder[], ListMeta]>;\n\n listFolderLevelPermissionsTargets(): Promise<\n [FolderLevelPermissionsTarget[], FolderLevelPermissionsTargetListMeta]\n >;\n\n listAll(params: ListAllFoldersParams): Promise<[Folder[], ListMeta]>;\n\n create(data: CreateFolderParams): Promise<Folder>;\n\n update(id: string, data: UpdateFolderParams): Promise<Folder>;\n\n delete(id: string): Promise<boolean>;\n\n getAncestors(folder: Folder): Promise<Folder[]>;\n\n /**\n * @deprecated use `getAncestors` instead\n */\n getFolderWithAncestors(id: string): Promise<Folder[]>;\n\n onFolderBeforeCreate: Topic<OnFolderBeforeCreateTopicParams>;\n onFolderAfterCreate: Topic<OnFolderAfterCreateTopicParams>;\n onFolderBeforeUpdate: Topic<OnFolderBeforeUpdateTopicParams>;\n onFolderAfterUpdate: Topic<OnFolderAfterUpdateTopicParams>;\n onFolderBeforeDelete: Topic<OnFolderBeforeDeleteTopicParams>;\n onFolderAfterDelete: Topic<OnFolderAfterDeleteTopicParams>;\n}\n\nexport interface AcoFolderStorageOperations {\n getFolder(params: StorageOperationsGetFolderParams): Promise<Folder>;\n\n listFolders(params: StorageOperationsListFoldersParams): Promise<[Folder[], ListMeta]>;\n\n createFolder(params: StorageOperationsCreateFolderParams): Promise<Folder>;\n\n updateFolder(params: StorageOperationsUpdateFolderParams): Promise<Folder>;\n\n deleteFolder(params: StorageOperationsDeleteFolderParams): Promise<boolean>;\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"names":[],"sources":["folder.types.ts"],"sourcesContent":["import { ListMeta, ListSort, User } from \"~/types\";\nimport { Topic } from \"@webiny/pubsub/types\";\nimport { FolderPermission } from \"~/utils/FolderLevelPermissions\";\n\nexport interface Folder {\n id: string;\n entryId: string;\n createdOn: string;\n modifiedOn: string | null;\n savedOn: string;\n createdBy: User;\n modifiedBy: User | null;\n savedBy: User;\n title: string;\n slug: string;\n permissions?: FolderPermission[];\n type: string;\n parentId?: string | null;\n}\n\nexport interface ListFoldersWhere {\n type: string;\n parentId?: string | null;\n}\n\nexport interface ListFoldersParams {\n where: ListFoldersWhere;\n sort?: ListSort;\n limit?: number;\n after?: string | null;\n}\n\nexport type ListAllFoldersParams = Omit<ListFoldersParams, \"limit\" | \"after\">;\n\nexport type CreateFolderParams = Pick<Folder, \"title\" | \"slug\" | \"type\" | \"parentId\">;\n\nexport interface UpdateFolderParams {\n title?: string;\n slug?: string;\n permissions?: FolderPermission[];\n parentId?: string;\n}\n\nexport interface DeleteFolderParams {\n id: string;\n}\n\nexport interface FolderLevelPermissionsTarget<TMeta = Record<string, any>> {\n id: string;\n target: string;\n name: string;\n type: string;\n meta: TMeta;\n}\n\nexport interface FolderLevelPermissionsTargetListMeta {\n totalCount: number;\n}\n\nexport interface StorageOperationsGetFolderParams {\n id?: string;\n slug?: string;\n type?: string;\n parentId?: string | null;\n}\n\nexport type StorageOperationsListFoldersParams = ListFoldersParams;\n\nexport interface StorageOperationsCreateFolderParams {\n data: CreateFolderParams;\n}\n\nexport interface StorageOperationsUpdateFolderParams {\n id: string;\n data: UpdateFolderParams;\n}\n\nexport type StorageOperationsDeleteFolderParams = DeleteFolderParams;\n\nexport interface OnFolderBeforeCreateTopicParams {\n input: CreateFolderParams;\n}\n\nexport interface OnFolderAfterCreateTopicParams {\n folder: Folder;\n}\n\nexport interface OnFolderBeforeUpdateTopicParams {\n original: Folder;\n input: Record<string, any>;\n}\n\nexport interface OnFolderAfterUpdateTopicParams {\n original: Folder;\n folder: Folder;\n input: Record<string, any>;\n}\n\nexport interface OnFolderBeforeDeleteTopicParams {\n folder: Folder;\n}\n\nexport interface OnFolderAfterDeleteTopicParams {\n folder: Folder;\n}\n\nexport interface AcoFolderCrud {\n get(id: string): Promise<Folder>;\n\n list(params: ListFoldersParams): Promise<[Folder[], ListMeta]>;\n\n listFolderLevelPermissionsTargets(): Promise<\n [FolderLevelPermissionsTarget[], FolderLevelPermissionsTargetListMeta]\n >;\n\n listAll(params: ListAllFoldersParams): Promise<[Folder[], ListMeta]>;\n\n create(data: CreateFolderParams): Promise<Folder>;\n\n update(id: string, data: UpdateFolderParams): Promise<Folder>;\n\n delete(id: string): Promise<boolean>;\n\n getAncestors(folder: Folder): Promise<Folder[]>;\n\n /**\n * @deprecated use `getAncestors` instead\n */\n getFolderWithAncestors(id: string): Promise<Folder[]>;\n\n onFolderBeforeCreate: Topic<OnFolderBeforeCreateTopicParams>;\n onFolderAfterCreate: Topic<OnFolderAfterCreateTopicParams>;\n onFolderBeforeUpdate: Topic<OnFolderBeforeUpdateTopicParams>;\n onFolderAfterUpdate: Topic<OnFolderAfterUpdateTopicParams>;\n onFolderBeforeDelete: Topic<OnFolderBeforeDeleteTopicParams>;\n onFolderAfterDelete: Topic<OnFolderAfterDeleteTopicParams>;\n}\n\nexport interface AcoFolderStorageOperations {\n getFolder(params: StorageOperationsGetFolderParams): Promise<Folder>;\n\n listFolders(params: StorageOperationsListFoldersParams): Promise<[Folder[], ListMeta]>;\n\n createFolder(params: StorageOperationsCreateFolderParams): Promise<Folder>;\n\n updateFolder(params: StorageOperationsUpdateFolderParams): Promise<Folder>;\n\n deleteFolder(params: StorageOperationsDeleteFolderParams): Promise<boolean>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_error","_interopRequireDefault","require","throwDeleteError","folder","WebinyError","onFolderBeforeDeleteAcoHook","aco","onFolderBeforeDelete","subscribe","id","type","children","list","where","parentId","limit","length","app","undefined","getApp","records","search","location","folderId","error","from","message","code","exports"],"sources":["onFolderBeforeDeleteAco.hook.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { AcoContext, Folder, IAcoApp } from \"~/types\";\n\nconst throwDeleteError = (folder: Folder) => {\n throw new WebinyError(\n \"Delete all child folders and entries before proceeding.\",\n \"DELETE_FOLDER_WITH_CHILDREN\",\n {\n folder\n }\n );\n};\n\nexport const onFolderBeforeDeleteAcoHook = ({ aco }: AcoContext) => {\n aco.folder.onFolderBeforeDelete.subscribe(async ({ folder }) => {\n try {\n const { id, type } = folder;\n /**\n * First we check for the child folders.\n */\n const [children] = await aco.folder.list({\n where: {\n type,\n parentId: id\n },\n limit: 1\n });\n\n if (children.length > 0) {\n throwDeleteError(folder);\n }\n\n let app: IAcoApp | undefined = undefined;\n try {\n app = aco.getApp(type);\n } catch {\n return;\n }\n const [records] = await app.search.list({\n where: {\n type,\n location: {\n folderId: id\n }\n },\n limit: 1\n });\n if (records.length === 0) {\n return;\n }\n throwDeleteError(folder);\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Error while executing onFolderBeforeDeleteAcoHook hook.\",\n code: \"ACO_BEFORE_FOLDER_DELETE_ACO_HOOK\"\n });\n }\n });\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA,MAAMC,gBAAgB,GAAIC,MAAc,IAAK;EACzC,MAAM,IAAIC,cAAW,CACjB,yDAAyD,EACzD,6BAA6B,EAC7B;IACID;EACJ,CACJ,CAAC;AACL,CAAC;AAEM,MAAME,2BAA2B,GAAGA,CAAC;EAAEC;AAAgB,CAAC,KAAK;EAChEA,GAAG,CAACH,MAAM,CAACI,oBAAoB,CAACC,SAAS,CAAC,OAAO;IAAEL;EAAO,CAAC,KAAK;IAC5D,IAAI;MACA,MAAM;QAAEM,EAAE;QAAEC;MAAK,CAAC,GAAGP,MAAM;MAC3B;AACZ;AACA;MACY,MAAM,CAACQ,QAAQ,CAAC,GAAG,MAAML,GAAG,CAACH,MAAM,CAACS,IAAI,CAAC;QACrCC,KAAK,EAAE;UACHH,IAAI;UACJI,QAAQ,EAAEL;QACd,CAAC;QACDM,KAAK,EAAE;MACX,CAAC,CAAC;MAEF,IAAIJ,QAAQ,CAACK,MAAM,GAAG,CAAC,EAAE;QACrBd,gBAAgB,CAACC,MAAM,CAAC;MAC5B;MAEA,IAAIc,GAAwB,GAAGC,SAAS;MACxC,IAAI;QACAD,GAAG,GAAGX,GAAG,CAACa,MAAM,CAACT,IAAI,CAAC;MAC1B,CAAC,CAAC,MAAM;QACJ;MACJ;MACA,MAAM,CAACU,OAAO,CAAC,GAAG,MAAMH,GAAG,CAACI,MAAM,CAACT,IAAI,CAAC;QACpCC,KAAK,EAAE;UACHH,IAAI;UACJY,QAAQ,EAAE;YACNC,QAAQ,EAAEd;UACd;QACJ,CAAC;QACDM,KAAK,EAAE;MACX,CAAC,CAAC;MACF,IAAIK,OAAO,CAACJ,MAAM,KAAK,CAAC,EAAE;QACtB;MACJ;MACAd,gBAAgB,CAACC,MAAM,CAAC;IAC5B,CAAC,CAAC,OAAOqB,KAAK,EAAE;MACZ,MAAMpB,cAAW,CAACqB,IAAI,CAACD,KAAK,EAAE;QAC1BE,OAAO,EAAE,yDAAyD;QAClEC,IAAI,EAAE;MACV,CAAC,CAAC;IACN;EACJ,CAAC,CAAC;AACN,CAAC;AAACC,OAAA,CAAAvB,2BAAA,GAAAA,2BAAA"}
|
|
1
|
+
{"version":3,"names":["_error","_interopRequireDefault","require","throwDeleteError","folder","WebinyError","onFolderBeforeDeleteAcoHook","aco","onFolderBeforeDelete","subscribe","id","type","children","list","where","parentId","limit","length","app","undefined","getApp","records","search","location","folderId","error","from","message","code","exports"],"sources":["onFolderBeforeDeleteAco.hook.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { AcoContext, Folder, IAcoApp } from \"~/types\";\n\nconst throwDeleteError = (folder: Folder) => {\n throw new WebinyError(\n \"Delete all child folders and entries before proceeding.\",\n \"DELETE_FOLDER_WITH_CHILDREN\",\n {\n folder\n }\n );\n};\n\nexport const onFolderBeforeDeleteAcoHook = ({ aco }: AcoContext) => {\n aco.folder.onFolderBeforeDelete.subscribe(async ({ folder }) => {\n try {\n const { id, type } = folder;\n /**\n * First we check for the child folders.\n */\n const [children] = await aco.folder.list({\n where: {\n type,\n parentId: id\n },\n limit: 1\n });\n\n if (children.length > 0) {\n throwDeleteError(folder);\n }\n\n let app: IAcoApp | undefined = undefined;\n try {\n app = aco.getApp(type);\n } catch {\n return;\n }\n const [records] = await app.search.list({\n where: {\n type,\n location: {\n folderId: id\n }\n },\n limit: 1\n });\n if (records.length === 0) {\n return;\n }\n throwDeleteError(folder);\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Error while executing onFolderBeforeDeleteAcoHook hook.\",\n code: \"ACO_BEFORE_FOLDER_DELETE_ACO_HOOK\"\n });\n }\n });\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA,MAAMC,gBAAgB,GAAIC,MAAc,IAAK;EACzC,MAAM,IAAIC,cAAW,CACjB,yDAAyD,EACzD,6BAA6B,EAC7B;IACID;EACJ,CACJ,CAAC;AACL,CAAC;AAEM,MAAME,2BAA2B,GAAGA,CAAC;EAAEC;AAAgB,CAAC,KAAK;EAChEA,GAAG,CAACH,MAAM,CAACI,oBAAoB,CAACC,SAAS,CAAC,OAAO;IAAEL;EAAO,CAAC,KAAK;IAC5D,IAAI;MACA,MAAM;QAAEM,EAAE;QAAEC;MAAK,CAAC,GAAGP,MAAM;MAC3B;AACZ;AACA;MACY,MAAM,CAACQ,QAAQ,CAAC,GAAG,MAAML,GAAG,CAACH,MAAM,CAACS,IAAI,CAAC;QACrCC,KAAK,EAAE;UACHH,IAAI;UACJI,QAAQ,EAAEL;QACd,CAAC;QACDM,KAAK,EAAE;MACX,CAAC,CAAC;MAEF,IAAIJ,QAAQ,CAACK,MAAM,GAAG,CAAC,EAAE;QACrBd,gBAAgB,CAACC,MAAM,CAAC;MAC5B;MAEA,IAAIc,GAAwB,GAAGC,SAAS;MACxC,IAAI;QACAD,GAAG,GAAGX,GAAG,CAACa,MAAM,CAACT,IAAI,CAAC;MAC1B,CAAC,CAAC,MAAM;QACJ;MACJ;MACA,MAAM,CAACU,OAAO,CAAC,GAAG,MAAMH,GAAG,CAACI,MAAM,CAACT,IAAI,CAAC;QACpCC,KAAK,EAAE;UACHH,IAAI;UACJY,QAAQ,EAAE;YACNC,QAAQ,EAAEd;UACd;QACJ,CAAC;QACDM,KAAK,EAAE;MACX,CAAC,CAAC;MACF,IAAIK,OAAO,CAACJ,MAAM,KAAK,CAAC,EAAE;QACtB;MACJ;MACAd,gBAAgB,CAACC,MAAM,CAAC;IAC5B,CAAC,CAAC,OAAOqB,KAAK,EAAE;MACZ,MAAMpB,cAAW,CAACqB,IAAI,CAACD,KAAK,EAAE;QAC1BE,OAAO,EAAE,yDAAyD;QAClEC,IAAI,EAAE;MACV,CAAC,CAAC;IACN;EACJ,CAAC,CAAC;AACN,CAAC;AAACC,OAAA,CAAAvB,2BAAA,GAAAA,2BAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_error","_interopRequireDefault","require","onFolderBeforeDeleteFmHook","context","aco","folder","onFolderBeforeDelete","subscribe","id","type","files","fileManager","listFiles","where","location","folderId","limit","length","WebinyError","error","from","message","code","exports"],"sources":["onFolderBeforeDeleteFm.hook.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { AcoContext } from \"~/types\";\n\nexport const onFolderBeforeDeleteFmHook = (context: AcoContext) => {\n context.aco.folder.onFolderBeforeDelete.subscribe(async ({ folder }) => {\n try {\n const { id, type } = folder;\n\n /**\n * Exit if the folder type is not related to File Manager\n */\n if (type !== \"FmFile\") {\n return;\n }\n\n const [files] = await context.fileManager.listFiles({\n where: {\n location: {\n folderId: id\n }\n },\n limit: 1\n });\n\n if (files.length === 0) {\n return;\n }\n\n throw new WebinyError(\n \"Delete all child folders and files before proceeding.\",\n \"DELETE_FOLDER_WITH_CHILDREN\",\n {\n folder\n }\n );\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Error while executing onFolderBeforeDeleteFmHook hook.\",\n code: \"ACO_BEFORE_FOLDER_DELETE_FILE_HOOK\"\n });\n }\n });\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGO,MAAMC,0BAA0B,GAAIC,OAAmB,IAAK;EAC/DA,OAAO,CAACC,GAAG,CAACC,MAAM,CAACC,oBAAoB,CAACC,SAAS,CAAC,OAAO;IAAEF;EAAO,CAAC,KAAK;IACpE,IAAI;MACA,MAAM;QAAEG,EAAE;QAAEC;MAAK,CAAC,GAAGJ,MAAM;;MAE3B;AACZ;AACA;MACY,IAAII,IAAI,KAAK,QAAQ,EAAE;QACnB;MACJ;MAEA,MAAM,CAACC,KAAK,CAAC,GAAG,MAAMP,OAAO,CAACQ,WAAW,CAACC,SAAS,CAAC;QAChDC,KAAK,EAAE;UACHC,QAAQ,EAAE;YACNC,QAAQ,EAAEP;UACd;QACJ,CAAC;QACDQ,KAAK,EAAE;MACX,CAAC,CAAC;MAEF,IAAIN,KAAK,CAACO,MAAM,KAAK,CAAC,EAAE;QACpB;MACJ;MAEA,MAAM,IAAIC,cAAW,CACjB,uDAAuD,EACvD,6BAA6B,EAC7B;QACIb;MACJ,CACJ,CAAC;IACL,CAAC,CAAC,OAAOc,KAAK,EAAE;MACZ,MAAMD,cAAW,CAACE,IAAI,CAACD,KAAK,EAAE;QAC1BE,OAAO,EAAE,wDAAwD;QACjEC,IAAI,EAAE;MACV,CAAC,CAAC;IACN;EACJ,CAAC,CAAC;AACN,CAAC;AAACC,OAAA,CAAArB,0BAAA,GAAAA,0BAAA"}
|
|
1
|
+
{"version":3,"names":["_error","_interopRequireDefault","require","onFolderBeforeDeleteFmHook","context","aco","folder","onFolderBeforeDelete","subscribe","id","type","files","fileManager","listFiles","where","location","folderId","limit","length","WebinyError","error","from","message","code","exports"],"sources":["onFolderBeforeDeleteFm.hook.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { AcoContext } from \"~/types\";\n\nexport const onFolderBeforeDeleteFmHook = (context: AcoContext) => {\n context.aco.folder.onFolderBeforeDelete.subscribe(async ({ folder }) => {\n try {\n const { id, type } = folder;\n\n /**\n * Exit if the folder type is not related to File Manager\n */\n if (type !== \"FmFile\") {\n return;\n }\n\n const [files] = await context.fileManager.listFiles({\n where: {\n location: {\n folderId: id\n }\n },\n limit: 1\n });\n\n if (files.length === 0) {\n return;\n }\n\n throw new WebinyError(\n \"Delete all child folders and files before proceeding.\",\n \"DELETE_FOLDER_WITH_CHILDREN\",\n {\n folder\n }\n );\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Error while executing onFolderBeforeDeleteFmHook hook.\",\n code: \"ACO_BEFORE_FOLDER_DELETE_FILE_HOOK\"\n });\n }\n });\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGO,MAAMC,0BAA0B,GAAIC,OAAmB,IAAK;EAC/DA,OAAO,CAACC,GAAG,CAACC,MAAM,CAACC,oBAAoB,CAACC,SAAS,CAAC,OAAO;IAAEF;EAAO,CAAC,KAAK;IACpE,IAAI;MACA,MAAM;QAAEG,EAAE;QAAEC;MAAK,CAAC,GAAGJ,MAAM;;MAE3B;AACZ;AACA;MACY,IAAII,IAAI,KAAK,QAAQ,EAAE;QACnB;MACJ;MAEA,MAAM,CAACC,KAAK,CAAC,GAAG,MAAMP,OAAO,CAACQ,WAAW,CAACC,SAAS,CAAC;QAChDC,KAAK,EAAE;UACHC,QAAQ,EAAE;YACNC,QAAQ,EAAEP;UACd;QACJ,CAAC;QACDQ,KAAK,EAAE;MACX,CAAC,CAAC;MAEF,IAAIN,KAAK,CAACO,MAAM,KAAK,CAAC,EAAE;QACpB;MACJ;MAEA,MAAM,IAAIC,cAAW,CACjB,uDAAuD,EACvD,6BAA6B,EAC7B;QACIb;MACJ,CACJ,CAAC;IACL,CAAC,CAAC,OAAOc,KAAK,EAAE;MACZ,MAAMD,cAAW,CAACE,IAAI,CAACD,KAAK,EAAE;QAC1BE,OAAO,EAAE,wDAAwD;QACjEC,IAAI,EAAE;MACV,CAAC,CAAC;IACN;EACJ,CAAC,CAAC;AACN,CAAC;AAACC,OAAA,CAAArB,0BAAA,GAAAA,0BAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_error","_interopRequireDefault","require","onFolderBeforeDeleteHcmsHook","context","aco","folder","onFolderBeforeDelete","subscribe","id","type","modelId","split","model","cms","getModel","entries","listEntries","where","latest","wbyAco_location","folderId","limit","length","WebinyError","error","from","message","code","exports"],"sources":["onFolderBeforeDeleteHcms.hook.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { CmsModel } from \"@webiny/api-headless-cms/types\";\nimport { AcoContext } from \"~/types\";\n\nexport const onFolderBeforeDeleteHcmsHook = (context: AcoContext) => {\n context.aco.folder.onFolderBeforeDelete.subscribe(async ({ folder }) => {\n try {\n const { id, type } = folder;\n\n const modelId = type.split(\":\")[1];\n\n if (!modelId) {\n return;\n }\n\n let model: CmsModel | null = null;\n try {\n model = await context.cms.getModel(modelId);\n\n if (!model) {\n return;\n }\n } catch {\n return;\n }\n\n const [entries] = await context.cms.listEntries(model, {\n where: {\n latest: true,\n wbyAco_location: {\n folderId: id\n }\n },\n limit: 1\n });\n\n if (entries.length === 0) {\n return;\n }\n\n throw new WebinyError(\n \"Delete all child folders and entries before proceeding.\",\n \"DELETE_FOLDER_WITH_CHILDREN\",\n {\n folder\n }\n );\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Error while executing onFolderBeforeDeleteHcmsHook hook.\",\n code: \"ACO_BEFORE_FOLDER_DELETE_HCMS_HOOK\"\n });\n }\n });\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAIO,MAAMC,4BAA4B,GAAIC,OAAmB,IAAK;EACjEA,OAAO,CAACC,GAAG,CAACC,MAAM,CAACC,oBAAoB,CAACC,SAAS,CAAC,OAAO;IAAEF;EAAO,CAAC,KAAK;IACpE,IAAI;MACA,MAAM;QAAEG,EAAE;QAAEC;MAAK,CAAC,GAAGJ,MAAM;MAE3B,MAAMK,OAAO,GAAGD,IAAI,CAACE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;MAElC,IAAI,CAACD,OAAO,EAAE;QACV;MACJ;MAEA,IAAIE,KAAsB,GAAG,IAAI;MACjC,IAAI;QACAA,KAAK,GAAG,MAAMT,OAAO,CAACU,GAAG,CAACC,QAAQ,CAACJ,OAAO,CAAC;QAE3C,IAAI,CAACE,KAAK,EAAE;UACR;QACJ;MACJ,CAAC,CAAC,MAAM;QACJ;MACJ;MAEA,MAAM,CAACG,OAAO,CAAC,GAAG,MAAMZ,OAAO,CAACU,GAAG,CAACG,WAAW,CAACJ,KAAK,EAAE;QACnDK,KAAK,EAAE;UACHC,MAAM,EAAE,IAAI;UACZC,eAAe,EAAE;YACbC,QAAQ,EAAEZ;UACd;QACJ,CAAC;QACDa,KAAK,EAAE;MACX,CAAC,CAAC;MAEF,IAAIN,OAAO,CAACO,MAAM,KAAK,CAAC,EAAE;QACtB;MACJ;MAEA,MAAM,IAAIC,cAAW,CACjB,yDAAyD,EACzD,6BAA6B,EAC7B;QACIlB;MACJ,CACJ,CAAC;IACL,CAAC,CAAC,OAAOmB,KAAK,EAAE;MACZ,MAAMD,cAAW,CAACE,IAAI,CAACD,KAAK,EAAE;QAC1BE,OAAO,EAAE,0DAA0D;QACnEC,IAAI,EAAE;MACV,CAAC,CAAC;IACN;EACJ,CAAC,CAAC;AACN,CAAC;AAACC,OAAA,CAAA1B,4BAAA,GAAAA,4BAAA"}
|
|
1
|
+
{"version":3,"names":["_error","_interopRequireDefault","require","onFolderBeforeDeleteHcmsHook","context","aco","folder","onFolderBeforeDelete","subscribe","id","type","modelId","split","model","cms","getModel","entries","listEntries","where","latest","wbyAco_location","folderId","limit","length","WebinyError","error","from","message","code","exports"],"sources":["onFolderBeforeDeleteHcms.hook.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { CmsModel } from \"@webiny/api-headless-cms/types\";\nimport { AcoContext } from \"~/types\";\n\nexport const onFolderBeforeDeleteHcmsHook = (context: AcoContext) => {\n context.aco.folder.onFolderBeforeDelete.subscribe(async ({ folder }) => {\n try {\n const { id, type } = folder;\n\n const modelId = type.split(\":\")[1];\n\n if (!modelId) {\n return;\n }\n\n let model: CmsModel | null = null;\n try {\n model = await context.cms.getModel(modelId);\n\n if (!model) {\n return;\n }\n } catch {\n return;\n }\n\n const [entries] = await context.cms.listEntries(model, {\n where: {\n latest: true,\n wbyAco_location: {\n folderId: id\n }\n },\n limit: 1\n });\n\n if (entries.length === 0) {\n return;\n }\n\n throw new WebinyError(\n \"Delete all child folders and entries before proceeding.\",\n \"DELETE_FOLDER_WITH_CHILDREN\",\n {\n folder\n }\n );\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Error while executing onFolderBeforeDeleteHcmsHook hook.\",\n code: \"ACO_BEFORE_FOLDER_DELETE_HCMS_HOOK\"\n });\n }\n });\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAIO,MAAMC,4BAA4B,GAAIC,OAAmB,IAAK;EACjEA,OAAO,CAACC,GAAG,CAACC,MAAM,CAACC,oBAAoB,CAACC,SAAS,CAAC,OAAO;IAAEF;EAAO,CAAC,KAAK;IACpE,IAAI;MACA,MAAM;QAAEG,EAAE;QAAEC;MAAK,CAAC,GAAGJ,MAAM;MAE3B,MAAMK,OAAO,GAAGD,IAAI,CAACE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;MAElC,IAAI,CAACD,OAAO,EAAE;QACV;MACJ;MAEA,IAAIE,KAAsB,GAAG,IAAI;MACjC,IAAI;QACAA,KAAK,GAAG,MAAMT,OAAO,CAACU,GAAG,CAACC,QAAQ,CAACJ,OAAO,CAAC;QAE3C,IAAI,CAACE,KAAK,EAAE;UACR;QACJ;MACJ,CAAC,CAAC,MAAM;QACJ;MACJ;MAEA,MAAM,CAACG,OAAO,CAAC,GAAG,MAAMZ,OAAO,CAACU,GAAG,CAACG,WAAW,CAACJ,KAAK,EAAE;QACnDK,KAAK,EAAE;UACHC,MAAM,EAAE,IAAI;UACZC,eAAe,EAAE;YACbC,QAAQ,EAAEZ;UACd;QACJ,CAAC;QACDa,KAAK,EAAE;MACX,CAAC,CAAC;MAEF,IAAIN,OAAO,CAACO,MAAM,KAAK,CAAC,EAAE;QACtB;MACJ;MAEA,MAAM,IAAIC,cAAW,CACjB,yDAAyD,EACzD,6BAA6B,EAC7B;QACIlB;MACJ,CACJ,CAAC;IACL,CAAC,CAAC,OAAOmB,KAAK,EAAE;MACZ,MAAMD,cAAW,CAACE,IAAI,CAACD,KAAK,EAAE;QAC1BE,OAAO,EAAE,0DAA0D;QACnEC,IAAI,EAAE;MACV,CAAC,CAAC;IACN;EACJ,CAAC,CAAC;AACN,CAAC;AAACC,OAAA,CAAA1B,4BAAA,GAAAA,4BAAA","ignoreList":[]}
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_createAcoContext","require","_createAcoGraphQL","_record","_folder","_filter","_apps","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_plugins","createAco","params","createAcoContext","createAcoGraphQL"],"sources":["index.ts"],"sourcesContent":["import { createAcoContext } from \"~/createAcoContext\";\nimport { createAcoGraphQL } from \"~/createAcoGraphQL\";\n\nexport { SEARCH_RECORD_MODEL_ID } from \"./record/record.model\";\nexport { FOLDER_MODEL_ID } from \"./folder/folder.model\";\nexport { FILTER_MODEL_ID } from \"./filter/filter.model\";\nexport * from \"./apps\";\nexport * from \"./plugins\";\n\nexport interface CreateAcoParams {\n useFolderLevelPermissions?: boolean;\n}\n\nexport const createAco = (params: CreateAcoParams = {}) => {\n return [createAcoContext(params), ...createAcoGraphQL()];\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AAAAM,MAAA,CAAAC,IAAA,CAAAF,KAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,KAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,KAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,QAAA,GAAAlB,OAAA;AAAAM,MAAA,CAAAC,IAAA,CAAAW,QAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,QAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,QAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AAMO,MAAMU,SAAS,GAAGA,CAACC,MAAuB,GAAG,CAAC,CAAC,KAAK;EACvD,OAAO,CAAC,IAAAC,kCAAgB,EAACD,MAAM,CAAC,EAAE,GAAG,IAAAE,kCAAgB,EAAC,CAAC,CAAC;AAC5D,CAAC;AAACR,OAAA,CAAAK,SAAA,GAAAA,SAAA"}
|
|
1
|
+
{"version":3,"names":["_createAcoContext","require","_createAcoGraphQL","_record","_folder","_filter","_apps","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_plugins","createAco","params","createAcoContext","createAcoGraphQL"],"sources":["index.ts"],"sourcesContent":["import { createAcoContext } from \"~/createAcoContext\";\nimport { createAcoGraphQL } from \"~/createAcoGraphQL\";\n\nexport { SEARCH_RECORD_MODEL_ID } from \"./record/record.model\";\nexport { FOLDER_MODEL_ID } from \"./folder/folder.model\";\nexport { FILTER_MODEL_ID } from \"./filter/filter.model\";\nexport * from \"./apps\";\nexport * from \"./plugins\";\n\nexport interface CreateAcoParams {\n useFolderLevelPermissions?: boolean;\n}\n\nexport const createAco = (params: CreateAcoParams = {}) => {\n return [createAcoContext(params), ...createAcoGraphQL()];\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AAAAM,MAAA,CAAAC,IAAA,CAAAF,KAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,KAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,KAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,QAAA,GAAAlB,OAAA;AAAAM,MAAA,CAAAC,IAAA,CAAAW,QAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,QAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,QAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AAMO,MAAMU,SAAS,GAAGA,CAACC,MAAuB,GAAG,CAAC,CAAC,KAAK;EACvD,OAAO,CAAC,IAAAC,kCAAgB,EAACD,MAAM,CAAC,EAAE,GAAG,IAAAE,kCAAgB,EAAC,CAAC,CAAC;AAC5D,CAAC;AAACR,OAAA,CAAAK,SAAA,GAAAA,SAAA","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/api-aco",
|
|
3
|
-
"version": "5.40.0-beta.
|
|
3
|
+
"version": "5.40.0-beta.3",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"aco:base"
|
|
@@ -22,43 +22,42 @@
|
|
|
22
22
|
"directory": "dist"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@webiny/api": "5.40.0-beta.
|
|
26
|
-
"@webiny/api-authentication": "5.40.0-beta.
|
|
27
|
-
"@webiny/api-headless-cms": "5.40.0-beta.
|
|
28
|
-
"@webiny/api-i18n": "5.40.0-beta.
|
|
29
|
-
"@webiny/api-security": "5.40.0-beta.
|
|
30
|
-
"@webiny/api-tenancy": "5.40.0-beta.
|
|
31
|
-
"@webiny/error": "5.40.0-beta.
|
|
32
|
-
"@webiny/handler": "5.40.0-beta.
|
|
33
|
-
"@webiny/handler-graphql": "5.40.0-beta.
|
|
34
|
-
"@webiny/pubsub": "5.40.0-beta.
|
|
35
|
-
"@webiny/utils": "5.40.0-beta.
|
|
36
|
-
"@webiny/validation": "5.40.0-beta.
|
|
25
|
+
"@webiny/api": "5.40.0-beta.3",
|
|
26
|
+
"@webiny/api-authentication": "5.40.0-beta.3",
|
|
27
|
+
"@webiny/api-headless-cms": "5.40.0-beta.3",
|
|
28
|
+
"@webiny/api-i18n": "5.40.0-beta.3",
|
|
29
|
+
"@webiny/api-security": "5.40.0-beta.3",
|
|
30
|
+
"@webiny/api-tenancy": "5.40.0-beta.3",
|
|
31
|
+
"@webiny/error": "5.40.0-beta.3",
|
|
32
|
+
"@webiny/handler": "5.40.0-beta.3",
|
|
33
|
+
"@webiny/handler-graphql": "5.40.0-beta.3",
|
|
34
|
+
"@webiny/pubsub": "5.40.0-beta.3",
|
|
35
|
+
"@webiny/utils": "5.40.0-beta.3",
|
|
36
|
+
"@webiny/validation": "5.40.0-beta.3",
|
|
37
37
|
"lodash": "4.17.21"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
|
-
"@babel/cli": "7.
|
|
41
|
-
"@babel/core": "7.
|
|
42
|
-
"@babel/preset-env": "7.
|
|
43
|
-
"@babel/preset-typescript": "7.
|
|
44
|
-
"@babel/runtime": "7.
|
|
45
|
-
"@
|
|
46
|
-
"@webiny/api-
|
|
47
|
-
"@webiny/api-
|
|
48
|
-
"@webiny/api-
|
|
49
|
-
"@webiny/api-
|
|
50
|
-
"@webiny/api-
|
|
51
|
-
"@webiny/
|
|
52
|
-
"@webiny/
|
|
53
|
-
"@webiny/
|
|
54
|
-
"@webiny/
|
|
55
|
-
"@webiny/
|
|
56
|
-
"@webiny/wcp": "5.40.0-beta.2",
|
|
40
|
+
"@babel/cli": "7.24.1",
|
|
41
|
+
"@babel/core": "7.24.3",
|
|
42
|
+
"@babel/preset-env": "7.24.3",
|
|
43
|
+
"@babel/preset-typescript": "7.24.1",
|
|
44
|
+
"@babel/runtime": "7.24.1",
|
|
45
|
+
"@webiny/api-admin-users": "5.40.0-beta.3",
|
|
46
|
+
"@webiny/api-file-manager": "5.40.0-beta.3",
|
|
47
|
+
"@webiny/api-i18n-ddb": "5.40.0-beta.3",
|
|
48
|
+
"@webiny/api-security-so-ddb": "5.40.0-beta.3",
|
|
49
|
+
"@webiny/api-tenancy-so-ddb": "5.40.0-beta.3",
|
|
50
|
+
"@webiny/api-wcp": "5.40.0-beta.3",
|
|
51
|
+
"@webiny/cli": "5.40.0-beta.3",
|
|
52
|
+
"@webiny/handler-aws": "5.40.0-beta.3",
|
|
53
|
+
"@webiny/plugins": "5.40.0-beta.3",
|
|
54
|
+
"@webiny/project-utils": "5.40.0-beta.3",
|
|
55
|
+
"@webiny/wcp": "5.40.0-beta.3",
|
|
57
56
|
"graphql": "15.8.0",
|
|
58
57
|
"prettier": "2.8.8",
|
|
59
|
-
"rimraf": "
|
|
58
|
+
"rimraf": "5.0.5",
|
|
60
59
|
"ttypescript": "1.5.15",
|
|
61
60
|
"typescript": "4.7.4"
|
|
62
61
|
},
|
|
63
|
-
"gitHead": "
|
|
62
|
+
"gitHead": "638d8b84063906cd1aa979ed6e0487ad26fbcf2f"
|
|
64
63
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_plugins","require","createModifier","app","context","addField","field","removeField","id","modifyField","cb","AcoAppModifierPlugin","Plugin","type","constructor","params","create","canUse","name","modify","exports","createAcoAppModifier"],"sources":["AcoAppModifierPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport {\n AcoContext,\n IAcoApp,\n IAcoAppAddFieldCallable,\n IAcoAppModifyFieldCallable,\n IAcoAppRemoveFieldCallable\n} from \"~/types\";\nimport { Context } from \"@webiny/handler/types\";\n\nexport interface AcoAppModifierPluginModifyParams<T extends Context = AcoContext> {\n app: IAcoApp;\n context: T;\n}\n\nexport interface AcoAppModifierPluginParamsCallable<T extends Context = AcoContext> {\n (params: AppModifier<T>): Promise<void> | void;\n}\n\nexport interface AcoAppModifierPluginParams<T extends Context = AcoContext> {\n name: string;\n cb: AcoAppModifierPluginParamsCallable<T>;\n}\n\nexport interface AppModifier<T extends Context = AcoContext> {\n /**\n * We can access the app if really required.\n * @internal\n */\n app: IAcoApp;\n /**\n * We can access the context if really required.\n * @internal\n */\n context: T;\n addField: IAcoAppAddFieldCallable;\n removeField: IAcoAppRemoveFieldCallable;\n modifyField: IAcoAppModifyFieldCallable;\n}\n\nexport interface AppModifierParams<T extends Context = AcoContext> {\n app: IAcoApp;\n context: T;\n}\n\nconst createModifier = <T extends Context>({\n app,\n context\n}: AppModifierParams<T>): AppModifier<T> => {\n return {\n app,\n context,\n addField: field => {\n app.addField(field);\n },\n removeField: id => {\n app.removeField(id);\n },\n modifyField: (id, cb) => {\n app.modifyField(id, cb);\n }\n };\n};\n\nexport class AcoAppModifierPlugin<T extends Context = Context> extends Plugin {\n public static override readonly type: string = \"aco.app.modifier\";\n\n private readonly params: AcoAppModifierPluginParams<T>;\n\n private constructor(params: AcoAppModifierPluginParams<T>) {\n super();\n this.params = params;\n }\n\n public static create<C extends Context = AcoContext>(params: AcoAppModifierPluginParams<C>) {\n return new AcoAppModifierPlugin<C>(params);\n }\n\n public canUse(app: IAcoApp): boolean {\n return app.name === this.params.name;\n }\n\n public async modify(params: AcoAppModifierPluginModifyParams<T>): Promise<void> {\n const { app, context } = params;\n return this.params.cb(\n createModifier<T>({\n app,\n context\n })\n );\n }\n}\n\nexport type CreateAcoAppModifierCallable<T extends Context = AcoContext> =\n AcoAppModifierPluginParamsCallable<T>;\n\nexport const createAcoAppModifier = <T extends Context = AcoContext>(\n name: string,\n cb: CreateAcoAppModifierCallable<T>\n) => {\n return AcoAppModifierPlugin.create<T>({\n name,\n cb\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AA6CA,MAAMC,cAAc,GAAGA,CAAoB;EACvCC,GAAG;EACHC;AACkB,CAAC,KAAqB;EACxC,OAAO;IACHD,GAAG;IACHC,OAAO;IACPC,QAAQ,EAAEC,KAAK,IAAI;MACfH,GAAG,CAACE,QAAQ,CAACC,KAAK,CAAC;IACvB,CAAC;IACDC,WAAW,EAAEC,EAAE,IAAI;MACfL,GAAG,CAACI,WAAW,CAACC,EAAE,CAAC;IACvB,CAAC;IACDC,WAAW,EAAEA,CAACD,EAAE,EAAEE,EAAE,KAAK;MACrBP,GAAG,CAACM,WAAW,CAACD,EAAE,EAAEE,EAAE,CAAC;IAC3B;EACJ,CAAC;AACL,CAAC;AAEM,MAAMC,oBAAoB,SAAsCC,eAAM,CAAC;EAC1E,OAAgCC,IAAI,GAAW,kBAAkB;EAIzDC,WAAWA,CAACC,MAAqC,EAAE;IACvD,KAAK,CAAC,CAAC;IACP,IAAI,CAACA,MAAM,GAAGA,MAAM;EACxB;EAEA,OAAcC,MAAMA,CAAiCD,MAAqC,EAAE;IACxF,OAAO,IAAIJ,oBAAoB,CAAII,MAAM,CAAC;EAC9C;EAEOE,MAAMA,CAACd,GAAY,EAAW;IACjC,OAAOA,GAAG,CAACe,IAAI,KAAK,IAAI,CAACH,MAAM,CAACG,IAAI;EACxC;EAEA,MAAaC,MAAMA,CAACJ,MAA2C,EAAiB;IAC5E,MAAM;MAAEZ,GAAG;MAAEC;IAAQ,CAAC,GAAGW,MAAM;IAC/B,OAAO,IAAI,CAACA,MAAM,CAACL,EAAE,CACjBR,cAAc,CAAI;MACdC,GAAG;MACHC;IACJ,CAAC,CACL,CAAC;EACL;AACJ;AAACgB,OAAA,CAAAT,oBAAA,GAAAA,oBAAA;AAKM,MAAMU,oBAAoB,GAAGA,CAChCH,IAAY,EACZR,EAAmC,KAClC;EACD,OAAOC,oBAAoB,CAACK,MAAM,CAAI;IAClCE,IAAI;IACJR;EACJ,CAAC,CAAC;AACN,CAAC;AAACU,OAAA,CAAAC,oBAAA,GAAAA,oBAAA"}
|
|
1
|
+
{"version":3,"names":["_plugins","require","createModifier","app","context","addField","field","removeField","id","modifyField","cb","AcoAppModifierPlugin","Plugin","type","constructor","params","create","canUse","name","modify","exports","createAcoAppModifier"],"sources":["AcoAppModifierPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport {\n AcoContext,\n IAcoApp,\n IAcoAppAddFieldCallable,\n IAcoAppModifyFieldCallable,\n IAcoAppRemoveFieldCallable\n} from \"~/types\";\nimport { Context } from \"@webiny/handler/types\";\n\nexport interface AcoAppModifierPluginModifyParams<T extends Context = AcoContext> {\n app: IAcoApp;\n context: T;\n}\n\nexport interface AcoAppModifierPluginParamsCallable<T extends Context = AcoContext> {\n (params: AppModifier<T>): Promise<void> | void;\n}\n\nexport interface AcoAppModifierPluginParams<T extends Context = AcoContext> {\n name: string;\n cb: AcoAppModifierPluginParamsCallable<T>;\n}\n\nexport interface AppModifier<T extends Context = AcoContext> {\n /**\n * We can access the app if really required.\n * @internal\n */\n app: IAcoApp;\n /**\n * We can access the context if really required.\n * @internal\n */\n context: T;\n addField: IAcoAppAddFieldCallable;\n removeField: IAcoAppRemoveFieldCallable;\n modifyField: IAcoAppModifyFieldCallable;\n}\n\nexport interface AppModifierParams<T extends Context = AcoContext> {\n app: IAcoApp;\n context: T;\n}\n\nconst createModifier = <T extends Context>({\n app,\n context\n}: AppModifierParams<T>): AppModifier<T> => {\n return {\n app,\n context,\n addField: field => {\n app.addField(field);\n },\n removeField: id => {\n app.removeField(id);\n },\n modifyField: (id, cb) => {\n app.modifyField(id, cb);\n }\n };\n};\n\nexport class AcoAppModifierPlugin<T extends Context = Context> extends Plugin {\n public static override readonly type: string = \"aco.app.modifier\";\n\n private readonly params: AcoAppModifierPluginParams<T>;\n\n private constructor(params: AcoAppModifierPluginParams<T>) {\n super();\n this.params = params;\n }\n\n public static create<C extends Context = AcoContext>(params: AcoAppModifierPluginParams<C>) {\n return new AcoAppModifierPlugin<C>(params);\n }\n\n public canUse(app: IAcoApp): boolean {\n return app.name === this.params.name;\n }\n\n public async modify(params: AcoAppModifierPluginModifyParams<T>): Promise<void> {\n const { app, context } = params;\n return this.params.cb(\n createModifier<T>({\n app,\n context\n })\n );\n }\n}\n\nexport type CreateAcoAppModifierCallable<T extends Context = AcoContext> =\n AcoAppModifierPluginParamsCallable<T>;\n\nexport const createAcoAppModifier = <T extends Context = AcoContext>(\n name: string,\n cb: CreateAcoAppModifierCallable<T>\n) => {\n return AcoAppModifierPlugin.create<T>({\n name,\n cb\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AA6CA,MAAMC,cAAc,GAAGA,CAAoB;EACvCC,GAAG;EACHC;AACkB,CAAC,KAAqB;EACxC,OAAO;IACHD,GAAG;IACHC,OAAO;IACPC,QAAQ,EAAEC,KAAK,IAAI;MACfH,GAAG,CAACE,QAAQ,CAACC,KAAK,CAAC;IACvB,CAAC;IACDC,WAAW,EAAEC,EAAE,IAAI;MACfL,GAAG,CAACI,WAAW,CAACC,EAAE,CAAC;IACvB,CAAC;IACDC,WAAW,EAAEA,CAACD,EAAE,EAAEE,EAAE,KAAK;MACrBP,GAAG,CAACM,WAAW,CAACD,EAAE,EAAEE,EAAE,CAAC;IAC3B;EACJ,CAAC;AACL,CAAC;AAEM,MAAMC,oBAAoB,SAAsCC,eAAM,CAAC;EAC1E,OAAgCC,IAAI,GAAW,kBAAkB;EAIzDC,WAAWA,CAACC,MAAqC,EAAE;IACvD,KAAK,CAAC,CAAC;IACP,IAAI,CAACA,MAAM,GAAGA,MAAM;EACxB;EAEA,OAAcC,MAAMA,CAAiCD,MAAqC,EAAE;IACxF,OAAO,IAAIJ,oBAAoB,CAAII,MAAM,CAAC;EAC9C;EAEOE,MAAMA,CAACd,GAAY,EAAW;IACjC,OAAOA,GAAG,CAACe,IAAI,KAAK,IAAI,CAACH,MAAM,CAACG,IAAI;EACxC;EAEA,MAAaC,MAAMA,CAACJ,MAA2C,EAAiB;IAC5E,MAAM;MAAEZ,GAAG;MAAEC;IAAQ,CAAC,GAAGW,MAAM;IAC/B,OAAO,IAAI,CAACA,MAAM,CAACL,EAAE,CACjBR,cAAc,CAAI;MACdC,GAAG;MACHC;IACJ,CAAC,CACL,CAAC;EACL;AACJ;AAACgB,OAAA,CAAAT,oBAAA,GAAAA,oBAAA;AAKM,MAAMU,oBAAoB,GAAGA,CAChCH,IAAY,EACZR,EAAmC,KAClC;EACD,OAAOC,oBAAoB,CAACK,MAAM,CAAI;IAClCE,IAAI;IACJR;EACJ,CAAC,CAAC;AACN,CAAC;AAACU,OAAA,CAAAC,oBAAA,GAAAA,oBAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_plugins","require","AcoAppRegisterPlugin","Plugin","type","constructor","app","exports","registerAcoApp"],"sources":["AcoAppRegisterPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport { IAcoAppRegisterParams } from \"~/types\";\n\nexport class AcoAppRegisterPlugin extends Plugin {\n public static override type = \"aco.apps.create.app\";\n public readonly app: IAcoAppRegisterParams;\n\n public constructor(app: IAcoAppRegisterParams) {\n super();\n this.app = app;\n }\n}\n\nexport const registerAcoApp = (app: IAcoAppRegisterParams) => {\n return new AcoAppRegisterPlugin(app);\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAGO,MAAMC,oBAAoB,SAASC,eAAM,CAAC;EAC7C,OAAuBC,IAAI,GAAG,qBAAqB;EAG5CC,WAAWA,CAACC,GAA0B,EAAE;IAC3C,KAAK,CAAC,CAAC;IACP,IAAI,CAACA,GAAG,GAAGA,GAAG;EAClB;AACJ;AAACC,OAAA,CAAAL,oBAAA,GAAAA,oBAAA;AAEM,MAAMM,cAAc,GAAIF,GAA0B,IAAK;EAC1D,OAAO,IAAIJ,oBAAoB,CAACI,GAAG,CAAC;AACxC,CAAC;AAACC,OAAA,CAAAC,cAAA,GAAAA,cAAA"}
|
|
1
|
+
{"version":3,"names":["_plugins","require","AcoAppRegisterPlugin","Plugin","type","constructor","app","exports","registerAcoApp"],"sources":["AcoAppRegisterPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport { IAcoAppRegisterParams } from \"~/types\";\n\nexport class AcoAppRegisterPlugin extends Plugin {\n public static override type = \"aco.apps.create.app\";\n public readonly app: IAcoAppRegisterParams;\n\n public constructor(app: IAcoAppRegisterParams) {\n super();\n this.app = app;\n }\n}\n\nexport const registerAcoApp = (app: IAcoAppRegisterParams) => {\n return new AcoAppRegisterPlugin(app);\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAGO,MAAMC,oBAAoB,SAASC,eAAM,CAAC;EAC7C,OAAuBC,IAAI,GAAG,qBAAqB;EAG5CC,WAAWA,CAACC,GAA0B,EAAE;IAC3C,KAAK,CAAC,CAAC;IACP,IAAI,CAACA,GAAG,GAAGA,GAAG;EAClB;AACJ;AAACC,OAAA,CAAAL,oBAAA,GAAAA,oBAAA;AAEM,MAAMM,cAAc,GAAIF,GAA0B,IAAK;EAC1D,OAAO,IAAIJ,oBAAoB,CAACI,GAAG,CAAC;AACxC,CAAC;AAACC,OAAA,CAAAC,cAAA,GAAAA,cAAA","ignoreList":[]}
|
package/plugins/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_AcoAppRegisterPlugin","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_AcoAppModifierPlugin"],"sources":["index.ts"],"sourcesContent":["export * from \"./AcoAppRegisterPlugin\";\nexport * from \"./AcoAppModifierPlugin\";\n"],"mappings":";;;;;AAAA,IAAAA,qBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,qBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,qBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,qBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,qBAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,qBAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,qBAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,qBAAA,CAAAL,GAAA;IAAA;EAAA;AAAA"}
|
|
1
|
+
{"version":3,"names":["_AcoAppRegisterPlugin","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_AcoAppModifierPlugin"],"sources":["index.ts"],"sourcesContent":["export * from \"./AcoAppRegisterPlugin\";\nexport * from \"./AcoAppModifierPlugin\";\n"],"mappings":";;;;;AAAA,IAAAA,qBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,qBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,qBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,qBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,qBAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,qBAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,qBAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,qBAAA,CAAAL,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_createFieldResolvers","require","_resolve","_utils","_acoRecordId","_ensureAuthentication","createAppResolvers","params","app","targetApp","models","plugins","model","apiName","singularApiName","createFieldResolvers","createFieldResolversFactory","endpointType","fieldTypePlugins","fieldResolvers","graphQLType","fields","isRoot","extraResolvers","id","entry","parseIdentifier","removeAcoRecordPrefix","resolvers","SearchQuery","_","args","context","aco","getApp","name","resolve","ensureAuthentication","search","get","resolveList","list","listTags","SearchMutation","data","create","update","move","folderId","delete","Object","assign","entryId","exports"],"sources":["createAppResolvers.ts"],"sourcesContent":["import { CmsEntry, CmsFieldTypePlugins, CmsModel } from \"@webiny/api-headless-cms/types\";\nimport { createFieldResolversFactory } from \"@webiny/api-headless-cms/graphql/schema/createFieldResolvers\";\nimport { AcoContext, IAcoApp } from \"~/types\";\nimport { resolve, resolveList } from \"~/utils/resolve\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { removeAcoRecordPrefix } from \"~/utils/acoRecordId\";\nimport { ensureAuthentication } from \"~/utils/ensureAuthentication\";\n\ninterface Params {\n app: IAcoApp;\n models: CmsModel[];\n plugins: CmsFieldTypePlugins;\n}\n\ninterface Resolvers {\n SearchQuery: Record<string, any>;\n SearchMutation: Record<string, any>;\n [key: string]: Record<string, any>;\n}\n\nexport const createAppResolvers = (params: Params): Resolvers => {\n const { app: targetApp, models, plugins } = params;\n\n const model = targetApp.model;\n const apiName = model.singularApiName;\n\n const createFieldResolvers = createFieldResolversFactory({\n endpointType: \"manage\",\n models,\n model,\n fieldTypePlugins: plugins\n });\n\n const fieldResolvers = createFieldResolvers({\n graphQLType: apiName,\n fields: targetApp.model.fields,\n isRoot: false,\n extraResolvers: {\n id: (entry: CmsEntry) => {\n const { id } = parseIdentifier(entry.id);\n return removeAcoRecordPrefix(id);\n }\n }\n });\n\n const resolvers: Resolvers = {\n SearchQuery: {\n [`get${apiName}`]: async (_: unknown, args: any, context: AcoContext) => {\n const app = context.aco.getApp(targetApp.name);\n return resolve(() => {\n ensureAuthentication(context);\n return app.search.get(args.id);\n });\n },\n [`list${apiName}`]: async (_: unknown, args: any, context: AcoContext) => {\n const app = context.aco.getApp(targetApp.name);\n return resolveList(() => {\n ensureAuthentication(context);\n return app.search.list(args);\n });\n },\n [`list${apiName}Tags`]: async (_: unknown, args: any, context: AcoContext) => {\n const app = context.aco.getApp(targetApp.name);\n return resolveList(() => {\n ensureAuthentication(context);\n return app.search.listTags(args);\n });\n }\n },\n SearchMutation: {\n [`create${apiName}`]: async (_: unknown, args: any, context: AcoContext) => {\n const app = context.aco.getApp(targetApp.name);\n return resolve(() => {\n ensureAuthentication(context);\n const { id } = parseIdentifier(args.data?.id);\n return app.search.create({\n ...args.data,\n id\n });\n });\n },\n [`update${apiName}`]: async (_: unknown, args: any, context: AcoContext) => {\n const app = context.aco.getApp(targetApp.name);\n return resolve(() => {\n ensureAuthentication(context);\n const { id } = parseIdentifier(args.id);\n return app.search.update(id, args.data || {});\n });\n },\n [`move${apiName}`]: async (_: unknown, args: any, context: AcoContext) => {\n const app = context.aco.getApp(targetApp.name);\n return resolve(() => {\n ensureAuthentication(context);\n const { id } = parseIdentifier(args.id);\n return app.search.move(id, args.folderId);\n });\n },\n [`delete${apiName}`]: async (_: unknown, args: any, context: AcoContext) => {\n const app = context.aco.getApp(targetApp.name);\n return resolve(() => {\n ensureAuthentication(context);\n const { id } = parseIdentifier(args.id);\n return app.search.delete(id);\n });\n }\n }\n };\n\n Object.assign(resolvers, fieldResolvers);\n delete resolvers[apiName].entryId;\n\n return resolvers;\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_createFieldResolvers","require","_resolve","_utils","_acoRecordId","_ensureAuthentication","createAppResolvers","params","app","targetApp","models","plugins","model","apiName","singularApiName","createFieldResolvers","createFieldResolversFactory","endpointType","fieldTypePlugins","fieldResolvers","graphQLType","fields","isRoot","extraResolvers","id","entry","parseIdentifier","removeAcoRecordPrefix","resolvers","SearchQuery","_","args","context","aco","getApp","name","resolve","ensureAuthentication","search","get","resolveList","list","listTags","SearchMutation","data","create","update","move","folderId","delete","Object","assign","entryId","exports"],"sources":["createAppResolvers.ts"],"sourcesContent":["import { CmsEntry, CmsFieldTypePlugins, CmsModel } from \"@webiny/api-headless-cms/types\";\nimport { createFieldResolversFactory } from \"@webiny/api-headless-cms/graphql/schema/createFieldResolvers\";\nimport { AcoContext, IAcoApp } from \"~/types\";\nimport { resolve, resolveList } from \"~/utils/resolve\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { removeAcoRecordPrefix } from \"~/utils/acoRecordId\";\nimport { ensureAuthentication } from \"~/utils/ensureAuthentication\";\n\ninterface Params {\n app: IAcoApp;\n models: CmsModel[];\n plugins: CmsFieldTypePlugins;\n}\n\ninterface Resolvers {\n SearchQuery: Record<string, any>;\n SearchMutation: Record<string, any>;\n [key: string]: Record<string, any>;\n}\n\nexport const createAppResolvers = (params: Params): Resolvers => {\n const { app: targetApp, models, plugins } = params;\n\n const model = targetApp.model;\n const apiName = model.singularApiName;\n\n const createFieldResolvers = createFieldResolversFactory({\n endpointType: \"manage\",\n models,\n model,\n fieldTypePlugins: plugins\n });\n\n const fieldResolvers = createFieldResolvers({\n graphQLType: apiName,\n fields: targetApp.model.fields,\n isRoot: false,\n extraResolvers: {\n id: (entry: CmsEntry) => {\n const { id } = parseIdentifier(entry.id);\n return removeAcoRecordPrefix(id);\n }\n }\n });\n\n const resolvers: Resolvers = {\n SearchQuery: {\n [`get${apiName}`]: async (_: unknown, args: any, context: AcoContext) => {\n const app = context.aco.getApp(targetApp.name);\n return resolve(() => {\n ensureAuthentication(context);\n return app.search.get(args.id);\n });\n },\n [`list${apiName}`]: async (_: unknown, args: any, context: AcoContext) => {\n const app = context.aco.getApp(targetApp.name);\n return resolveList(() => {\n ensureAuthentication(context);\n return app.search.list(args);\n });\n },\n [`list${apiName}Tags`]: async (_: unknown, args: any, context: AcoContext) => {\n const app = context.aco.getApp(targetApp.name);\n return resolveList(() => {\n ensureAuthentication(context);\n return app.search.listTags(args);\n });\n }\n },\n SearchMutation: {\n [`create${apiName}`]: async (_: unknown, args: any, context: AcoContext) => {\n const app = context.aco.getApp(targetApp.name);\n return resolve(() => {\n ensureAuthentication(context);\n const { id } = parseIdentifier(args.data?.id);\n return app.search.create({\n ...args.data,\n id\n });\n });\n },\n [`update${apiName}`]: async (_: unknown, args: any, context: AcoContext) => {\n const app = context.aco.getApp(targetApp.name);\n return resolve(() => {\n ensureAuthentication(context);\n const { id } = parseIdentifier(args.id);\n return app.search.update(id, args.data || {});\n });\n },\n [`move${apiName}`]: async (_: unknown, args: any, context: AcoContext) => {\n const app = context.aco.getApp(targetApp.name);\n return resolve(() => {\n ensureAuthentication(context);\n const { id } = parseIdentifier(args.id);\n return app.search.move(id, args.folderId);\n });\n },\n [`delete${apiName}`]: async (_: unknown, args: any, context: AcoContext) => {\n const app = context.aco.getApp(targetApp.name);\n return resolve(() => {\n ensureAuthentication(context);\n const { id } = parseIdentifier(args.id);\n return app.search.delete(id);\n });\n }\n }\n };\n\n Object.assign(resolvers, fieldResolvers);\n delete resolvers[apiName].entryId;\n\n return resolvers;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -74,7 +74,7 @@ const createAppSchema = params => {
|
|
|
74
74
|
fields: model.fields,
|
|
75
75
|
fieldTypePlugins
|
|
76
76
|
});
|
|
77
|
-
return
|
|
77
|
+
return /* GraphQL */`
|
|
78
78
|
${fieldTypes.map(f => f.typeDefs).join("\n")}
|
|
79
79
|
|
|
80
80
|
|
|
@@ -139,8 +139,7 @@ const createAppSchema = params => {
|
|
|
139
139
|
move${apiName}(id: ID!, folderId: ID!): AcoSearchRecordMoveResponse!
|
|
140
140
|
delete${apiName}(id: ID!): AcoBooleanResponse!
|
|
141
141
|
}
|
|
142
|
-
|
|
143
|
-
);
|
|
142
|
+
`;
|
|
144
143
|
};
|
|
145
144
|
exports.createAppSchema = createAppSchema;
|
|
146
145
|
|