@webiny/api-file-manager 0.0.0-unstable.78f581c1d2 → 0.0.0-unstable.7f63ea0744

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/handlers/download/index.js +7 -26
  2. package/handlers/download/index.js.map +1 -1
  3. package/handlers/manage/index.js +0 -16
  4. package/handlers/manage/index.js.map +1 -1
  5. package/handlers/transform/index.js +6 -16
  6. package/handlers/transform/index.js.map +1 -1
  7. package/handlers/transform/loaders/imageLoader.js +0 -17
  8. package/handlers/transform/loaders/imageLoader.js.map +1 -1
  9. package/handlers/transform/loaders/index.js +0 -3
  10. package/handlers/transform/loaders/index.js.map +1 -1
  11. package/handlers/transform/loaders/sanitizeImageTransformations.js +0 -13
  12. package/handlers/transform/loaders/sanitizeImageTransformations.js.map +1 -1
  13. package/handlers/transform/managers/imageManager.js +6 -14
  14. package/handlers/transform/managers/imageManager.js.map +1 -1
  15. package/handlers/transform/managers/index.js +0 -3
  16. package/handlers/transform/managers/index.js.map +1 -1
  17. package/handlers/transform/optimizeImage.js +0 -6
  18. package/handlers/transform/optimizeImage.js.map +1 -1
  19. package/handlers/transform/transformImage.js +0 -5
  20. package/handlers/transform/transformImage.js.map +1 -1
  21. package/handlers/transform/utils.js +0 -10
  22. package/handlers/transform/utils.js.map +1 -1
  23. package/handlers/utils/getEnvironment.js +0 -2
  24. package/handlers/utils/getEnvironment.js.map +1 -1
  25. package/handlers/utils/getObjectParams.js +0 -4
  26. package/handlers/utils/getObjectParams.js.map +1 -1
  27. package/handlers/utils/index.js +0 -3
  28. package/handlers/utils/index.js.map +1 -1
  29. package/package.json +19 -19
  30. package/plugins/crud/files/validation.js +0 -6
  31. package/plugins/crud/files/validation.js.map +1 -1
  32. package/plugins/crud/files.crud.js +2 -61
  33. package/plugins/crud/files.crud.js.map +1 -1
  34. package/plugins/crud/settings.crud.js +1 -18
  35. package/plugins/crud/settings.crud.js.map +1 -1
  36. package/plugins/crud/system.crud.js +2 -32
  37. package/plugins/crud/system.crud.js.map +1 -1
  38. package/plugins/crud/utils/checkBasePermissions.js +0 -8
  39. package/plugins/crud/utils/checkBasePermissions.js.map +1 -1
  40. package/plugins/crud/utils/createFileModel.js +0 -12
  41. package/plugins/crud/utils/createFileModel.js.map +1 -1
  42. package/plugins/crud/utils/lifecycleEvents.js +4 -12
  43. package/plugins/crud/utils/lifecycleEvents.js.map +1 -1
  44. package/plugins/definitions/FilePhysicalStoragePlugin.js +0 -11
  45. package/plugins/definitions/FilePhysicalStoragePlugin.js.map +1 -1
  46. package/plugins/definitions/FilePlugin.js +0 -18
  47. package/plugins/definitions/FilePlugin.js.map +1 -1
  48. package/plugins/definitions/FileStorageTransformPlugin.js +1 -12
  49. package/plugins/definitions/FileStorageTransformPlugin.js.map +1 -1
  50. package/plugins/definitions/FilesStorageOperationsProviderPlugin.js +0 -5
  51. package/plugins/definitions/FilesStorageOperationsProviderPlugin.js.map +1 -1
  52. package/plugins/definitions/InstallationPlugin.js +0 -11
  53. package/plugins/definitions/InstallationPlugin.js.map +1 -1
  54. package/plugins/definitions/SettingsStorageOperationsProviderPlugin.js +0 -5
  55. package/plugins/definitions/SettingsStorageOperationsProviderPlugin.js.map +1 -1
  56. package/plugins/definitions/SystemStorageOperationsProviderPlugin.js +0 -5
  57. package/plugins/definitions/SystemStorageOperationsProviderPlugin.js.map +1 -1
  58. package/plugins/graphql.js +2 -22
  59. package/plugins/graphql.js.map +1 -1
  60. package/plugins/index.js +0 -9
  61. package/plugins/index.js.map +1 -1
  62. package/plugins/storage/FileStorage.js +14 -32
  63. package/plugins/storage/FileStorage.js.map +1 -1
  64. package/plugins/storage/index.js +0 -4
  65. package/plugins/storage/index.js.map +1 -1
  66. package/utils.js +0 -2
  67. package/utils.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["BATCH_CREATE_MAX_FILES","checkOwnership","file","permission","context","own","identity","security","getIdentity","createdBy","id","NotAuthorizedError","getLocaleCode","i18n","WebinyError","locale","getContentLocale","code","filesContextCrudPlugin","ContextPlugin","pluginType","FilesStorageOperationsProviderPlugin","type","providerPlugin","plugins","byType","find","storageOperations","provide","fileManager","filePlugins","FilePlugin","files","getFile","checkBasePermissions","rwd","get","where","tenant","tenancy","getCurrentTenant","NotFoundError","createFile","input","mdbid","tags","Array","isArray","meta","private","createdOn","Date","toISOString","displayName","webinyVersion","WEBINY_VERSION","runLifecycleEvent","data","result","create","ex","message","updateFile","original","update","deleteFile","delete","createFilesInBatch","inputs","length","map","results","createBatch","listFiles","params","limit","search","types","ids","after","initialWhere","sort","initialSort","type_in","tag_in","tag","toLowerCase","id_in","list","listTags","name"],"sources":["files.crud.ts"],"sourcesContent":["/**\n * Package mdbid does not have types.\n */\n// @ts-ignore\nimport mdbid from \"mdbid\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport { NotAuthorizedError } from \"@webiny/api-security\";\nimport {\n CreatedBy,\n File,\n FileManagerContext,\n FileManagerFilesStorageOperationsListParamsWhere,\n FileManagerFilesStorageOperationsTagsParamsWhere,\n FilePermission,\n FilesListOpts\n} from \"~/types\";\nimport checkBasePermissions from \"./utils/checkBasePermissions\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { FilePlugin } from \"~/plugins/definitions/FilePlugin\";\nimport { FilesStorageOperationsProviderPlugin } from \"~/plugins/definitions/FilesStorageOperationsProviderPlugin\";\nimport WebinyError from \"@webiny/error\";\nimport { runLifecycleEvent } from \"~/plugins/crud/utils/lifecycleEvents\";\n\nconst BATCH_CREATE_MAX_FILES = 20;\n\n/**\n * If permission is limited to \"own\" files only, check that current identity owns the file.\n */\nconst checkOwnership = (file: File, permission: FilePermission, context: FileManagerContext) => {\n if (permission?.own === true) {\n const identity = context.security.getIdentity();\n if (file.createdBy.id !== identity.id) {\n throw new NotAuthorizedError();\n }\n }\n};\n\nconst getLocaleCode = (context: FileManagerContext): string => {\n if (!context.i18n) {\n throw new WebinyError(\"Missing i18n on the FileManagerContext.\", \"MISSING_I18N\");\n }\n\n const locale = context.i18n.getContentLocale();\n if (!locale) {\n throw new WebinyError(\n \"Missing content locale on the FileManagerContext.\",\n \"MISSING_I18N_CONTENT_LOCALE\"\n );\n }\n\n if (!locale.code) {\n throw new WebinyError(\n \"Missing content locale code on the FileManagerContext.\",\n \"MISSING_I18N_CONTENT_LOCALE_CODE\"\n );\n }\n return locale.code;\n};\n\nconst filesContextCrudPlugin = new ContextPlugin<FileManagerContext>(async context => {\n const pluginType = FilesStorageOperationsProviderPlugin.type;\n\n const providerPlugin = context.plugins\n .byType<FilesStorageOperationsProviderPlugin>(pluginType)\n .find(() => true);\n\n if (!providerPlugin) {\n throw new WebinyError(`Missing \"${pluginType}\" plugin.`, \"PLUGIN_NOT_FOUND\", {\n type: pluginType\n });\n }\n\n const storageOperations = await providerPlugin.provide({\n context\n });\n\n if (!context.fileManager) {\n context.fileManager = {} as any;\n }\n\n const filePlugins = context.plugins.byType<FilePlugin>(FilePlugin.type);\n\n context.fileManager.files = {\n async getFile(id: string) {\n const permission = await checkBasePermissions(context, { rwd: \"r\" });\n\n const file = await storageOperations.get({\n where: {\n id,\n tenant: context.tenancy.getCurrentTenant().id,\n locale: getLocaleCode(context)\n }\n });\n\n if (!file) {\n throw new NotFoundError(`File with id \"${id}\" does not exists.`);\n }\n\n checkOwnership(file, permission, context);\n\n return file;\n },\n async createFile(input) {\n await checkBasePermissions(context, { rwd: \"w\" });\n const identity = context.security.getIdentity();\n const tenant = context.tenancy.getCurrentTenant();\n\n const id = mdbid();\n\n const file: File = {\n ...input,\n tags: Array.isArray(input.tags) ? input.tags : [],\n id,\n meta: {\n private: false,\n ...(input.meta || {})\n },\n tenant: tenant.id,\n createdOn: new Date().toISOString(),\n createdBy: {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n },\n locale: getLocaleCode(context),\n webinyVersion: context.WEBINY_VERSION\n };\n\n try {\n await runLifecycleEvent(\"beforeCreate\", {\n context,\n plugins: filePlugins,\n data: file\n });\n const result = await storageOperations.create({\n file\n });\n await runLifecycleEvent(\"afterCreate\", {\n context,\n plugins: filePlugins,\n data: file,\n file: result\n });\n return result;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create a file.\",\n ex.code || \"CREATE_FILE_ERROR\",\n {\n ...(ex.data || {}),\n file\n }\n );\n }\n },\n async updateFile(id, input) {\n const permission = await checkBasePermissions(context, { rwd: \"w\" });\n\n const original = await storageOperations.get({\n where: {\n id,\n tenant: context.tenancy.getCurrentTenant().id,\n locale: getLocaleCode(context)\n }\n });\n\n if (!original) {\n throw new NotFoundError(`File with id \"${id}\" does not exists.`);\n }\n\n checkOwnership(original, permission, context);\n\n const file: File = {\n ...original,\n ...input,\n tags: Array.isArray(input.tags)\n ? input.tags\n : Array.isArray(original.tags)\n ? original.tags\n : [],\n id: original.id,\n webinyVersion: context.WEBINY_VERSION\n };\n\n try {\n await runLifecycleEvent(\"beforeUpdate\", {\n context,\n plugins: filePlugins,\n original,\n data: file\n });\n const result = await storageOperations.update({\n original,\n file\n });\n await runLifecycleEvent(\"afterUpdate\", {\n context,\n plugins: filePlugins,\n original,\n data: file,\n file: result\n });\n return result;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update a file.\",\n ex.code || \"UPDATE_FILE_ERROR\",\n {\n ...(ex.data || {}),\n original,\n file\n }\n );\n }\n },\n async deleteFile(id) {\n const permission = await checkBasePermissions(context, { rwd: \"d\" });\n\n const file = await storageOperations.get({\n where: {\n id,\n tenant: context.tenancy.getCurrentTenant().id,\n locale: getLocaleCode(context)\n }\n });\n if (!file) {\n throw new NotFoundError(`File with id \"${id}\" does not exists.`);\n }\n\n checkOwnership(file, permission, context);\n\n try {\n await runLifecycleEvent(\"beforeDelete\", {\n context,\n plugins: filePlugins,\n file\n });\n await storageOperations.delete({\n file\n });\n await runLifecycleEvent(\"afterDelete\", {\n context,\n plugins: filePlugins,\n file\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete a file.\",\n ex.code || \"DELETE_FILE_ERROR\",\n {\n ...(ex.data || {}),\n id,\n file\n }\n );\n }\n\n return true;\n },\n async createFilesInBatch(inputs) {\n if (!Array.isArray(inputs)) {\n throw new WebinyError(`\"data\" must be an array.`, \"CREATE_FILES_NON_ARRAY\");\n }\n\n if (inputs.length === 0) {\n throw new WebinyError(\n `\"data\" argument must contain at least one file.`,\n \"CREATE_FILES_MIN_FILES\"\n );\n }\n\n if (inputs.length > BATCH_CREATE_MAX_FILES) {\n throw new WebinyError(\n `\"data\" argument must not contain more than ${BATCH_CREATE_MAX_FILES} files.`,\n \"CREATE_FILES_MAX_FILES\"\n );\n }\n\n await checkBasePermissions(context, { rwd: \"w\" });\n\n const identity = context.security.getIdentity();\n const tenant = context.tenancy.getCurrentTenant();\n const createdBy: CreatedBy = {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n };\n\n const files: File[] = inputs.map(input => {\n return {\n ...input,\n tags: Array.isArray(input.tags) ? input.tags : [],\n meta: {\n private: false,\n ...(input.meta || {})\n },\n id: mdbid(),\n tenant: tenant.id,\n createdOn: new Date().toISOString(),\n createdBy,\n locale: getLocaleCode(context),\n webinyVersion: context.WEBINY_VERSION\n };\n });\n\n try {\n await runLifecycleEvent(\"beforeBatchCreate\", {\n context,\n plugins: filePlugins,\n data: files\n });\n const results = await storageOperations.createBatch({\n files\n });\n await runLifecycleEvent(\"afterBatchCreate\", {\n context,\n plugins: filePlugins,\n data: files,\n files: results\n });\n return results;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create a batch of files.\",\n ex.code || \"CREATE_FILES_ERROR\",\n {\n ...(ex.data || {}),\n files\n }\n );\n }\n },\n async listFiles(params: FilesListOpts = {}) {\n const permission = await checkBasePermissions(context, { rwd: \"r\" });\n\n const {\n limit = 40,\n search = \"\",\n types = [],\n tags = [],\n ids = [],\n after = null,\n where: initialWhere,\n sort: initialSort\n } = params;\n\n const where: FileManagerFilesStorageOperationsListParamsWhere = {\n ...initialWhere,\n private: false,\n locale: getLocaleCode(context),\n tenant: context.tenancy.getCurrentTenant().id\n };\n /**\n * Always override the createdBy received from the user, if any.\n */\n if (permission.own === true) {\n const identity = context.security.getIdentity();\n where.createdBy = identity.id;\n }\n /**\n * We need to map the old GraphQL definition to the new one.\n * That GQL definition is marked as deprecated.\n */\n /**\n * To have standardized where objects across the applications, we transform the types into type_in.\n */\n if (Array.isArray(types) && types.length > 0 && !where.type_in) {\n where.type_in = types;\n }\n /**\n * We are assigning search to tag and name search.\n * This should be treated as OR condition in the storage operations.\n */\n if (search && !where.search) {\n where.search = search;\n }\n /**\n * Same as on types/type_in.\n */\n if (Array.isArray(tags) && tags.length > 0 && !where.tag_in) {\n where.tag_in = tags.map(tag => tag.toLowerCase());\n }\n /**\n * Same as on types/type_in.\n */\n if (Array.isArray(ids) && ids.length > 0 && !where.id_in) {\n where.id_in = ids;\n }\n\n const sort =\n Array.isArray(initialSort) && initialSort.length > 0 ? initialSort : [\"id_DESC\"];\n try {\n return await storageOperations.list({\n where,\n after,\n limit,\n sort\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list files by given parameters.\",\n ex.code || \"FILE_TAG_SEARCH_ERROR\",\n {\n ...(ex.data || {}),\n where,\n after,\n limit,\n sort\n }\n );\n }\n },\n async listTags({ where: initialWhere, after, limit }) {\n await checkBasePermissions(context);\n\n const where: FileManagerFilesStorageOperationsTagsParamsWhere = {\n ...initialWhere,\n tenant: context.tenancy.getCurrentTenant().id,\n locale: getLocaleCode(context)\n };\n\n const params = {\n where,\n limit: limit || 100000,\n after\n };\n\n try {\n const [tags] = await storageOperations.tags(params);\n if (Array.isArray(tags) === false) {\n return [];\n }\n /**\n * just to keep it standardized, sort by the tag ASC\n */\n return tags.sort();\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not search for tags.\",\n ex.code || \"FILE_TAG_SEARCH_ERROR\",\n {\n ...(ex.data || {}),\n params\n }\n );\n }\n }\n };\n});\n\nfilesContextCrudPlugin.name = \"FileManagerFilesCrud\";\n\nexport default filesContextCrudPlugin;\n"],"mappings":"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"}
1
+ {"version":3,"names":["BATCH_CREATE_MAX_FILES","checkOwnership","file","permission","context","own","identity","security","getIdentity","createdBy","id","NotAuthorizedError","getLocaleCode","i18n","WebinyError","locale","getContentLocale","code","filesContextCrudPlugin","ContextPlugin","pluginType","FilesStorageOperationsProviderPlugin","type","providerPlugin","plugins","byType","find","storageOperations","provide","fileManager","filePlugins","FilePlugin","files","getFile","checkBasePermissions","rwd","get","where","tenant","tenancy","getCurrentTenant","NotFoundError","createFile","input","mdbid","tags","Array","isArray","meta","private","createdOn","Date","toISOString","displayName","webinyVersion","WEBINY_VERSION","runLifecycleEvent","data","result","create","ex","message","updateFile","original","update","deleteFile","delete","createFilesInBatch","inputs","length","map","results","createBatch","listFiles","params","limit","search","types","ids","after","initialWhere","sort","initialSort","type_in","tag_in","tag","toLowerCase","id_in","list","listTags","name"],"sources":["files.crud.ts"],"sourcesContent":["/**\n * Package mdbid does not have types.\n */\n// @ts-ignore\nimport mdbid from \"mdbid\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport { NotAuthorizedError } from \"@webiny/api-security\";\nimport {\n CreatedBy,\n File,\n FileManagerContext,\n FileManagerFilesStorageOperationsListParamsWhere,\n FileManagerFilesStorageOperationsTagsParamsWhere,\n FilePermission,\n FilesListOpts\n} from \"~/types\";\nimport checkBasePermissions from \"./utils/checkBasePermissions\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { FilePlugin } from \"~/plugins/definitions/FilePlugin\";\nimport { FilesStorageOperationsProviderPlugin } from \"~/plugins/definitions/FilesStorageOperationsProviderPlugin\";\nimport WebinyError from \"@webiny/error\";\nimport { runLifecycleEvent } from \"~/plugins/crud/utils/lifecycleEvents\";\n\nconst BATCH_CREATE_MAX_FILES = 20;\n\n/**\n * If permission is limited to \"own\" files only, check that current identity owns the file.\n */\nconst checkOwnership = (file: File, permission: FilePermission, context: FileManagerContext) => {\n if (permission?.own === true) {\n const identity = context.security.getIdentity();\n if (file.createdBy.id !== identity.id) {\n throw new NotAuthorizedError();\n }\n }\n};\n\nconst getLocaleCode = (context: FileManagerContext): string => {\n if (!context.i18n) {\n throw new WebinyError(\"Missing i18n on the FileManagerContext.\", \"MISSING_I18N\");\n }\n\n const locale = context.i18n.getContentLocale();\n if (!locale) {\n throw new WebinyError(\n \"Missing content locale on the FileManagerContext.\",\n \"MISSING_I18N_CONTENT_LOCALE\"\n );\n }\n\n if (!locale.code) {\n throw new WebinyError(\n \"Missing content locale code on the FileManagerContext.\",\n \"MISSING_I18N_CONTENT_LOCALE_CODE\"\n );\n }\n return locale.code;\n};\n\nconst filesContextCrudPlugin = new ContextPlugin<FileManagerContext>(async context => {\n const pluginType = FilesStorageOperationsProviderPlugin.type;\n\n const providerPlugin = context.plugins\n .byType<FilesStorageOperationsProviderPlugin>(pluginType)\n .find(() => true);\n\n if (!providerPlugin) {\n throw new WebinyError(`Missing \"${pluginType}\" plugin.`, \"PLUGIN_NOT_FOUND\", {\n type: pluginType\n });\n }\n\n const storageOperations = await providerPlugin.provide({\n context\n });\n\n if (!context.fileManager) {\n context.fileManager = {} as any;\n }\n\n const filePlugins = context.plugins.byType<FilePlugin>(FilePlugin.type);\n\n context.fileManager.files = {\n async getFile(id: string) {\n const permission = await checkBasePermissions(context, { rwd: \"r\" });\n\n const file = await storageOperations.get({\n where: {\n id,\n tenant: context.tenancy.getCurrentTenant().id,\n locale: getLocaleCode(context)\n }\n });\n\n if (!file) {\n throw new NotFoundError(`File with id \"${id}\" does not exists.`);\n }\n\n checkOwnership(file, permission, context);\n\n return file;\n },\n async createFile(input) {\n await checkBasePermissions(context, { rwd: \"w\" });\n const identity = context.security.getIdentity();\n const tenant = context.tenancy.getCurrentTenant();\n\n const id = mdbid();\n\n const file: File = {\n ...input,\n tags: Array.isArray(input.tags) ? input.tags : [],\n id,\n meta: {\n private: false,\n ...(input.meta || {})\n },\n tenant: tenant.id,\n createdOn: new Date().toISOString(),\n createdBy: {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n },\n locale: getLocaleCode(context),\n webinyVersion: context.WEBINY_VERSION\n };\n\n try {\n await runLifecycleEvent(\"beforeCreate\", {\n context,\n plugins: filePlugins,\n data: file\n });\n const result = await storageOperations.create({\n file\n });\n await runLifecycleEvent(\"afterCreate\", {\n context,\n plugins: filePlugins,\n data: file,\n file: result\n });\n return result;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create a file.\",\n ex.code || \"CREATE_FILE_ERROR\",\n {\n ...(ex.data || {}),\n file\n }\n );\n }\n },\n async updateFile(id, input) {\n const permission = await checkBasePermissions(context, { rwd: \"w\" });\n\n const original = await storageOperations.get({\n where: {\n id,\n tenant: context.tenancy.getCurrentTenant().id,\n locale: getLocaleCode(context)\n }\n });\n\n if (!original) {\n throw new NotFoundError(`File with id \"${id}\" does not exists.`);\n }\n\n checkOwnership(original, permission, context);\n\n const file: File = {\n ...original,\n ...input,\n tags: Array.isArray(input.tags)\n ? input.tags\n : Array.isArray(original.tags)\n ? original.tags\n : [],\n id: original.id,\n webinyVersion: context.WEBINY_VERSION\n };\n\n try {\n await runLifecycleEvent(\"beforeUpdate\", {\n context,\n plugins: filePlugins,\n original,\n data: file\n });\n const result = await storageOperations.update({\n original,\n file\n });\n await runLifecycleEvent(\"afterUpdate\", {\n context,\n plugins: filePlugins,\n original,\n data: file,\n file: result\n });\n return result;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update a file.\",\n ex.code || \"UPDATE_FILE_ERROR\",\n {\n ...(ex.data || {}),\n original,\n file\n }\n );\n }\n },\n async deleteFile(id) {\n const permission = await checkBasePermissions(context, { rwd: \"d\" });\n\n const file = await storageOperations.get({\n where: {\n id,\n tenant: context.tenancy.getCurrentTenant().id,\n locale: getLocaleCode(context)\n }\n });\n if (!file) {\n throw new NotFoundError(`File with id \"${id}\" does not exists.`);\n }\n\n checkOwnership(file, permission, context);\n\n try {\n await runLifecycleEvent(\"beforeDelete\", {\n context,\n plugins: filePlugins,\n file\n });\n await storageOperations.delete({\n file\n });\n await runLifecycleEvent(\"afterDelete\", {\n context,\n plugins: filePlugins,\n file\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete a file.\",\n ex.code || \"DELETE_FILE_ERROR\",\n {\n ...(ex.data || {}),\n id,\n file\n }\n );\n }\n\n return true;\n },\n async createFilesInBatch(inputs) {\n if (!Array.isArray(inputs)) {\n throw new WebinyError(`\"data\" must be an array.`, \"CREATE_FILES_NON_ARRAY\");\n }\n\n if (inputs.length === 0) {\n throw new WebinyError(\n `\"data\" argument must contain at least one file.`,\n \"CREATE_FILES_MIN_FILES\"\n );\n }\n\n if (inputs.length > BATCH_CREATE_MAX_FILES) {\n throw new WebinyError(\n `\"data\" argument must not contain more than ${BATCH_CREATE_MAX_FILES} files.`,\n \"CREATE_FILES_MAX_FILES\"\n );\n }\n\n await checkBasePermissions(context, { rwd: \"w\" });\n\n const identity = context.security.getIdentity();\n const tenant = context.tenancy.getCurrentTenant();\n const createdBy: CreatedBy = {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n };\n\n const files: File[] = inputs.map(input => {\n return {\n ...input,\n tags: Array.isArray(input.tags) ? input.tags : [],\n meta: {\n private: false,\n ...(input.meta || {})\n },\n id: mdbid(),\n tenant: tenant.id,\n createdOn: new Date().toISOString(),\n createdBy,\n locale: getLocaleCode(context),\n webinyVersion: context.WEBINY_VERSION\n };\n });\n\n try {\n await runLifecycleEvent(\"beforeBatchCreate\", {\n context,\n plugins: filePlugins,\n data: files\n });\n const results = await storageOperations.createBatch({\n files\n });\n await runLifecycleEvent(\"afterBatchCreate\", {\n context,\n plugins: filePlugins,\n data: files,\n files: results\n });\n return results;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create a batch of files.\",\n ex.code || \"CREATE_FILES_ERROR\",\n {\n ...(ex.data || {}),\n files\n }\n );\n }\n },\n async listFiles(params: FilesListOpts = {}) {\n const permission = await checkBasePermissions(context, { rwd: \"r\" });\n\n const {\n limit = 40,\n search = \"\",\n types = [],\n tags = [],\n ids = [],\n after = null,\n where: initialWhere,\n sort: initialSort\n } = params;\n\n const where: FileManagerFilesStorageOperationsListParamsWhere = {\n ...initialWhere,\n private: false,\n locale: getLocaleCode(context),\n tenant: context.tenancy.getCurrentTenant().id\n };\n /**\n * Always override the createdBy received from the user, if any.\n */\n if (permission.own === true) {\n const identity = context.security.getIdentity();\n where.createdBy = identity.id;\n }\n /**\n * We need to map the old GraphQL definition to the new one.\n * That GQL definition is marked as deprecated.\n */\n /**\n * To have standardized where objects across the applications, we transform the types into type_in.\n */\n if (Array.isArray(types) && types.length > 0 && !where.type_in) {\n where.type_in = types;\n }\n /**\n * We are assigning search to tag and name search.\n * This should be treated as OR condition in the storage operations.\n */\n if (search && !where.search) {\n where.search = search;\n }\n /**\n * Same as on types/type_in.\n */\n if (Array.isArray(tags) && tags.length > 0 && !where.tag_in) {\n where.tag_in = tags.map(tag => tag.toLowerCase());\n }\n /**\n * Same as on types/type_in.\n */\n if (Array.isArray(ids) && ids.length > 0 && !where.id_in) {\n where.id_in = ids;\n }\n\n const sort =\n Array.isArray(initialSort) && initialSort.length > 0 ? initialSort : [\"id_DESC\"];\n try {\n return await storageOperations.list({\n where,\n after,\n limit,\n sort\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list files by given parameters.\",\n ex.code || \"FILE_TAG_SEARCH_ERROR\",\n {\n ...(ex.data || {}),\n where,\n after,\n limit,\n sort\n }\n );\n }\n },\n async listTags({ where: initialWhere, after, limit }) {\n await checkBasePermissions(context);\n\n const where: FileManagerFilesStorageOperationsTagsParamsWhere = {\n ...initialWhere,\n tenant: context.tenancy.getCurrentTenant().id,\n locale: getLocaleCode(context)\n };\n\n const params = {\n where,\n limit: limit || 100000,\n after\n };\n\n try {\n const [tags] = await storageOperations.tags(params);\n if (Array.isArray(tags) === false) {\n return [];\n }\n /**\n * just to keep it standardized, sort by the tag ASC\n */\n return tags.sort();\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not search for tags.\",\n ex.code || \"FILE_TAG_SEARCH_ERROR\",\n {\n ...(ex.data || {}),\n params\n }\n );\n }\n }\n };\n});\n\nfilesContextCrudPlugin.name = \"FileManagerFilesCrud\";\n\nexport default filesContextCrudPlugin;\n"],"mappings":"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"}
@@ -1,28 +1,21 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = exports.SETTINGS_KEY = void 0;
9
-
10
8
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
-
12
9
  var _fields = require("@commodo/fields");
13
-
14
10
  var _validation = require("@webiny/validation");
15
-
16
11
  var _SettingsStorageOperationsProviderPlugin = require("../definitions/SettingsStorageOperationsProviderPlugin");
17
-
18
12
  var _error = _interopRequireDefault(require("@webiny/error"));
19
-
20
13
  var _api = require("@webiny/api");
21
-
22
14
  /**
23
15
  * Package @commodo/fields does not have types.
24
16
  */
25
17
  // @ts-ignore
18
+
26
19
  // TODO @ts-refactor verify that this is not used and remove it
27
20
  const SETTINGS_KEY = "file-manager";
28
21
  exports.SETTINGS_KEY = SETTINGS_KEY;
@@ -39,7 +32,6 @@ const CreateDataModel = (0, _fields.withFields)({
39
32
  if (typeof value === "string") {
40
33
  return value.endsWith("/") ? value : value + "/";
41
34
  }
42
-
43
35
  return value;
44
36
  })((0, _fields.string)({
45
37
  value: "/files/"
@@ -55,33 +47,27 @@ const UpdateDataModel = (0, _fields.withFields)({
55
47
  if (typeof value === "string") {
56
48
  return value.endsWith("/") ? value : value + "/";
57
49
  }
58
-
59
50
  return value;
60
51
  })((0, _fields.string)())
61
52
  })();
62
53
  const settingsCrudContextPlugin = new _api.ContextPlugin(async context => {
63
54
  const pluginType = _SettingsStorageOperationsProviderPlugin.SettingsStorageOperationsProviderPlugin.type;
64
55
  const providerPlugin = context.plugins.byType(pluginType).find(() => true);
65
-
66
56
  if (!providerPlugin) {
67
57
  throw new _error.default(`Missing "${pluginType}" plugin.`, "PLUGIN_NOT_FOUND", {
68
58
  type: pluginType
69
59
  });
70
60
  }
71
-
72
61
  const storageOperations = await providerPlugin.provide({
73
62
  context
74
63
  });
75
-
76
64
  if (!context.fileManager) {
77
65
  context.fileManager = {};
78
66
  }
79
-
80
67
  context.fileManager.settings = {
81
68
  async getSettings() {
82
69
  return storageOperations.get();
83
70
  },
84
-
85
71
  async createSettings(data) {
86
72
  const settings = new CreateDataModel().populate(data);
87
73
  await settings.validate();
@@ -90,7 +76,6 @@ const settingsCrudContextPlugin = new _api.ContextPlugin(async context => {
90
76
  data: settingsData
91
77
  });
92
78
  },
93
-
94
79
  async updateSettings(data) {
95
80
  const updatedValue = new UpdateDataModel().populate(data);
96
81
  await updatedValue.validate();
@@ -103,12 +88,10 @@ const settingsCrudContextPlugin = new _api.ContextPlugin(async context => {
103
88
  data: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, existingSettings), updatedSettings)
104
89
  });
105
90
  },
106
-
107
91
  async deleteSettings() {
108
92
  await storageOperations.delete();
109
93
  return true;
110
94
  }
111
-
112
95
  };
113
96
  });
114
97
  settingsCrudContextPlugin.name = "FileMangerSettingsCrud";
@@ -1 +1 @@
1
- {"version":3,"names":["SETTINGS_KEY","CreateDataModel","withFields","uploadMinFileSize","number","value","validation","create","uploadMaxFileSize","srcPrefix","onSet","endsWith","string","UpdateDataModel","settingsCrudContextPlugin","ContextPlugin","context","pluginType","SettingsStorageOperationsProviderPlugin","type","providerPlugin","plugins","byType","find","WebinyError","storageOperations","provide","fileManager","settings","getSettings","get","createSettings","data","populate","validate","settingsData","toJSON","updateSettings","updatedValue","existingSettings","updatedSettings","onlyDirty","update","original","deleteSettings","delete","name"],"sources":["settings.crud.ts"],"sourcesContent":["/**\n * Package @commodo/fields does not have types.\n */\n// @ts-ignore\nimport { withFields, string, number, onSet } from \"@commodo/fields\";\nimport { validation } from \"@webiny/validation\";\nimport { FileManagerContext, FileManagerSettings } from \"~/types\";\nimport { SettingsStorageOperationsProviderPlugin } from \"~/plugins/definitions/SettingsStorageOperationsProviderPlugin\";\nimport WebinyError from \"@webiny/error\";\nimport { ContextPlugin } from \"@webiny/api\";\n\n// TODO @ts-refactor verify that this is not used and remove it\nexport const SETTINGS_KEY = \"file-manager\";\n\nconst CreateDataModel = withFields({\n uploadMinFileSize: number({ value: 0, validation: validation.create(\"gte:0\") }),\n uploadMaxFileSize: number({ value: 26214401 }),\n srcPrefix: onSet((value?: string) => {\n // Make sure srcPrefix always ends with forward slash.\n if (typeof value === \"string\") {\n return value.endsWith(\"/\") ? value : value + \"/\";\n }\n return value;\n })(string({ value: \"/files/\" }))\n})();\n\nconst UpdateDataModel = withFields({\n uploadMinFileSize: number({\n validation: validation.create(\"gte:0\")\n }),\n uploadMaxFileSize: number(),\n srcPrefix: onSet((value?: string) => {\n // Make sure srcPrefix always ends with forward slash.\n if (typeof value === \"string\") {\n return value.endsWith(\"/\") ? value : value + \"/\";\n }\n return value;\n })(string())\n})();\n\nconst settingsCrudContextPlugin = new ContextPlugin<FileManagerContext>(async context => {\n const pluginType = SettingsStorageOperationsProviderPlugin.type;\n\n const providerPlugin = context.plugins\n .byType<SettingsStorageOperationsProviderPlugin>(pluginType)\n .find(() => true);\n\n if (!providerPlugin) {\n throw new WebinyError(`Missing \"${pluginType}\" plugin.`, \"PLUGIN_NOT_FOUND\", {\n type: pluginType\n });\n }\n\n const storageOperations = await providerPlugin.provide({\n context\n });\n\n if (!context.fileManager) {\n context.fileManager = {} as any;\n }\n\n context.fileManager.settings = {\n async getSettings() {\n return storageOperations.get();\n },\n async createSettings(data) {\n const settings = new CreateDataModel().populate(data);\n await settings.validate();\n\n const settingsData: FileManagerSettings = await settings.toJSON();\n\n return storageOperations.create({\n data: settingsData\n });\n },\n async updateSettings(data) {\n const updatedValue = new UpdateDataModel().populate(data);\n await updatedValue.validate();\n\n const existingSettings = (await storageOperations.get()) as FileManagerSettings;\n\n const updatedSettings: Partial<FileManagerSettings> = await updatedValue.toJSON({\n onlyDirty: true\n });\n\n return storageOperations.update({\n original: existingSettings,\n data: {\n ...existingSettings,\n ...updatedSettings\n }\n });\n },\n async deleteSettings() {\n await storageOperations.delete();\n\n return true;\n }\n };\n});\n\nsettingsCrudContextPlugin.name = \"FileMangerSettingsCrud\";\n\nexport default settingsCrudContextPlugin;\n"],"mappings":"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"}
1
+ {"version":3,"names":["SETTINGS_KEY","CreateDataModel","withFields","uploadMinFileSize","number","value","validation","create","uploadMaxFileSize","srcPrefix","onSet","endsWith","string","UpdateDataModel","settingsCrudContextPlugin","ContextPlugin","context","pluginType","SettingsStorageOperationsProviderPlugin","type","providerPlugin","plugins","byType","find","WebinyError","storageOperations","provide","fileManager","settings","getSettings","get","createSettings","data","populate","validate","settingsData","toJSON","updateSettings","updatedValue","existingSettings","updatedSettings","onlyDirty","update","original","deleteSettings","delete","name"],"sources":["settings.crud.ts"],"sourcesContent":["/**\n * Package @commodo/fields does not have types.\n */\n// @ts-ignore\nimport { withFields, string, number, onSet } from \"@commodo/fields\";\nimport { validation } from \"@webiny/validation\";\nimport { FileManagerContext, FileManagerSettings } from \"~/types\";\nimport { SettingsStorageOperationsProviderPlugin } from \"~/plugins/definitions/SettingsStorageOperationsProviderPlugin\";\nimport WebinyError from \"@webiny/error\";\nimport { ContextPlugin } from \"@webiny/api\";\n\n// TODO @ts-refactor verify that this is not used and remove it\nexport const SETTINGS_KEY = \"file-manager\";\n\nconst CreateDataModel = withFields({\n uploadMinFileSize: number({ value: 0, validation: validation.create(\"gte:0\") }),\n uploadMaxFileSize: number({ value: 26214401 }),\n srcPrefix: onSet((value?: string) => {\n // Make sure srcPrefix always ends with forward slash.\n if (typeof value === \"string\") {\n return value.endsWith(\"/\") ? value : value + \"/\";\n }\n return value;\n })(string({ value: \"/files/\" }))\n})();\n\nconst UpdateDataModel = withFields({\n uploadMinFileSize: number({\n validation: validation.create(\"gte:0\")\n }),\n uploadMaxFileSize: number(),\n srcPrefix: onSet((value?: string) => {\n // Make sure srcPrefix always ends with forward slash.\n if (typeof value === \"string\") {\n return value.endsWith(\"/\") ? value : value + \"/\";\n }\n return value;\n })(string())\n})();\n\nconst settingsCrudContextPlugin = new ContextPlugin<FileManagerContext>(async context => {\n const pluginType = SettingsStorageOperationsProviderPlugin.type;\n\n const providerPlugin = context.plugins\n .byType<SettingsStorageOperationsProviderPlugin>(pluginType)\n .find(() => true);\n\n if (!providerPlugin) {\n throw new WebinyError(`Missing \"${pluginType}\" plugin.`, \"PLUGIN_NOT_FOUND\", {\n type: pluginType\n });\n }\n\n const storageOperations = await providerPlugin.provide({\n context\n });\n\n if (!context.fileManager) {\n context.fileManager = {} as any;\n }\n\n context.fileManager.settings = {\n async getSettings() {\n return storageOperations.get();\n },\n async createSettings(data) {\n const settings = new CreateDataModel().populate(data);\n await settings.validate();\n\n const settingsData: FileManagerSettings = await settings.toJSON();\n\n return storageOperations.create({\n data: settingsData\n });\n },\n async updateSettings(data) {\n const updatedValue = new UpdateDataModel().populate(data);\n await updatedValue.validate();\n\n const existingSettings = (await storageOperations.get()) as FileManagerSettings;\n\n const updatedSettings: Partial<FileManagerSettings> = await updatedValue.toJSON({\n onlyDirty: true\n });\n\n return storageOperations.update({\n original: existingSettings,\n data: {\n ...existingSettings,\n ...updatedSettings\n }\n });\n },\n async deleteSettings() {\n await storageOperations.delete();\n\n return true;\n }\n };\n});\n\nsettingsCrudContextPlugin.name = \"FileMangerSettingsCrud\";\n\nexport default settingsCrudContextPlugin;\n"],"mappings":"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"}
@@ -1,65 +1,47 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
-
10
8
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
-
12
9
  var _apiSecurity = require("@webiny/api-security");
13
-
14
10
  var _apiUpgrade = require("@webiny/api-upgrade");
15
-
16
11
  var _error = _interopRequireDefault(require("@webiny/error"));
17
-
18
12
  var _api = require("@webiny/api");
19
-
20
13
  var _utils = require("../../utils");
21
-
22
14
  var _InstallationPlugin = require("../definitions/InstallationPlugin");
23
-
24
15
  var _SystemStorageOperationsProviderPlugin = require("../definitions/SystemStorageOperationsProviderPlugin");
25
-
26
16
  const systemCrudContextPlugin = new _api.ContextPlugin(async context => {
27
17
  const pluginType = _SystemStorageOperationsProviderPlugin.SystemStorageOperationsProviderPlugin.type;
28
18
  const providerPlugin = context.plugins.byType(pluginType).find(() => true);
29
-
30
19
  if (!providerPlugin) {
31
20
  throw new _error.default(`Missing "${pluginType}" plugin.`, "PLUGIN_NOT_FOUND", {
32
21
  type: pluginType
33
22
  });
34
23
  }
35
-
36
24
  const storageOperations = await providerPlugin.provide({
37
25
  context
38
26
  });
39
-
40
27
  if (!context.fileManager) {
41
28
  context.fileManager = {};
42
29
  }
43
-
44
30
  const getTenantId = () => {
45
31
  return context.tenancy.getCurrentTenant().id;
46
32
  };
47
-
48
33
  context.fileManager.system = {
49
34
  async getVersion() {
50
35
  const system = await storageOperations.get();
51
36
  return system ? system.version : null;
52
37
  },
53
-
54
38
  async setVersion(version) {
55
39
  const system = await storageOperations.get();
56
-
57
40
  if (system) {
58
41
  const data = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, system), {}, {
59
42
  tenant: system.tenant || getTenantId(),
60
43
  version
61
44
  });
62
-
63
45
  try {
64
46
  await storageOperations.update({
65
47
  original: system,
@@ -72,12 +54,10 @@ const systemCrudContextPlugin = new _api.ContextPlugin(async context => {
72
54
  });
73
55
  }
74
56
  }
75
-
76
57
  const data = {
77
58
  version,
78
59
  tenant: getTenantId()
79
60
  };
80
-
81
61
  try {
82
62
  await storageOperations.create({
83
63
  data
@@ -89,31 +69,24 @@ const systemCrudContextPlugin = new _api.ContextPlugin(async context => {
89
69
  });
90
70
  }
91
71
  },
92
-
93
72
  async install({
94
73
  srcPrefix
95
74
  }) {
96
75
  const identity = context.security.getIdentity();
97
-
98
76
  if (!identity) {
99
77
  throw new _apiSecurity.NotAuthorizedError();
100
78
  }
101
-
102
79
  const {
103
80
  fileManager
104
81
  } = context;
105
82
  const version = await fileManager.system.getVersion();
106
-
107
83
  if (version) {
108
84
  throw new _error.default("File Manager is already installed.", "FILES_INSTALL_ABORTED");
109
85
  }
110
-
111
86
  const data = {};
112
-
113
87
  if (srcPrefix) {
114
88
  data.srcPrefix = srcPrefix;
115
89
  }
116
-
117
90
  const installationPlugins = context.plugins.byType(_InstallationPlugin.InstallationPlugin.type);
118
91
  await (0, _utils.executeCallbacks)(installationPlugins, "beforeInstall", {
119
92
  context
@@ -125,14 +98,11 @@ const systemCrudContextPlugin = new _api.ContextPlugin(async context => {
125
98
  });
126
99
  return true;
127
100
  },
128
-
129
101
  async upgrade(version) {
130
102
  const identity = context.security.getIdentity();
131
-
132
103
  if (!identity) {
133
104
  throw new _apiSecurity.NotAuthorizedError();
134
105
  }
135
-
136
106
  const upgradePlugins = context.plugins.byType("api-upgrade").filter(pl => pl.app === "file-manager");
137
107
  const plugin = (0, _apiUpgrade.getApplicablePlugin)({
138
108
  deployedVersion: context.WEBINY_VERSION,
@@ -140,12 +110,12 @@ const systemCrudContextPlugin = new _api.ContextPlugin(async context => {
140
110
  upgradePlugins,
141
111
  upgradeToVersion: version
142
112
  });
143
- await plugin.apply(context); // Store new app version
113
+ await plugin.apply(context);
144
114
 
115
+ // Store new app version
145
116
  await context.fileManager.system.setVersion(version);
146
117
  return true;
147
118
  }
148
-
149
119
  };
150
120
  });
151
121
  systemCrudContextPlugin.name = "FileManagerSystemCrud";
@@ -1 +1 @@
1
- {"version":3,"names":["systemCrudContextPlugin","ContextPlugin","context","pluginType","SystemStorageOperationsProviderPlugin","type","providerPlugin","plugins","byType","find","WebinyError","storageOperations","provide","fileManager","getTenantId","tenancy","getCurrentTenant","id","system","getVersion","get","version","setVersion","data","tenant","update","original","ex","create","install","srcPrefix","identity","security","getIdentity","NotAuthorizedError","installationPlugins","InstallationPlugin","executeCallbacks","settings","createSettings","WEBINY_VERSION","upgrade","upgradePlugins","filter","pl","app","plugin","getApplicablePlugin","deployedVersion","installedAppVersion","upgradeToVersion","apply","name"],"sources":["system.crud.ts"],"sourcesContent":["import { NotAuthorizedError } from \"@webiny/api-security\";\nimport { getApplicablePlugin } from \"@webiny/api-upgrade\";\nimport { FileManagerContext, FileManagerSettings, FileManagerSystem } from \"~/types\";\nimport { UpgradePlugin } from \"@webiny/api-upgrade/types\";\nimport WebinyError from \"@webiny/error\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { executeCallbacks } from \"~/utils\";\nimport { InstallationPlugin } from \"~/plugins/definitions/InstallationPlugin\";\nimport { SystemStorageOperationsProviderPlugin } from \"~/plugins/definitions/SystemStorageOperationsProviderPlugin\";\n\nconst systemCrudContextPlugin = new ContextPlugin<FileManagerContext>(async context => {\n const pluginType = SystemStorageOperationsProviderPlugin.type;\n const providerPlugin = context.plugins\n .byType<SystemStorageOperationsProviderPlugin>(pluginType)\n .find(() => true);\n\n if (!providerPlugin) {\n throw new WebinyError(`Missing \"${pluginType}\" plugin.`, \"PLUGIN_NOT_FOUND\", {\n type: pluginType\n });\n }\n\n const storageOperations = await providerPlugin.provide({\n context\n });\n\n if (!context.fileManager) {\n context.fileManager = {} as any;\n }\n\n const getTenantId = (): string => {\n return context.tenancy.getCurrentTenant().id;\n };\n\n context.fileManager.system = {\n async getVersion() {\n const system = await storageOperations.get();\n\n return system ? system.version : null;\n },\n async setVersion(version: string) {\n const system = await storageOperations.get();\n\n if (system) {\n const data: FileManagerSystem = {\n ...system,\n tenant: system.tenant || getTenantId(),\n version\n };\n try {\n await storageOperations.update({\n original: system,\n data\n });\n return;\n } catch (ex) {\n throw new WebinyError(\n \"Could not update the system data.\",\n \"SYSTEM_UPDATE_ERROR\",\n {\n data\n }\n );\n }\n }\n\n const data: FileManagerSystem = {\n version,\n tenant: getTenantId()\n };\n try {\n await storageOperations.create({\n data\n });\n return;\n } catch (ex) {\n throw new WebinyError(\"Could not create the system data.\", \"SYSTEM_CREATE_ERROR\", {\n data\n });\n }\n },\n async install({ srcPrefix }) {\n const identity = context.security.getIdentity();\n if (!identity) {\n throw new NotAuthorizedError();\n }\n const { fileManager } = context;\n const version = await fileManager.system.getVersion();\n\n if (version) {\n throw new WebinyError(\n \"File Manager is already installed.\",\n \"FILES_INSTALL_ABORTED\"\n );\n }\n\n const data: Partial<FileManagerSettings> = {};\n\n if (srcPrefix) {\n data.srcPrefix = srcPrefix;\n }\n\n const installationPlugins = context.plugins.byType<InstallationPlugin>(\n InstallationPlugin.type\n );\n\n await executeCallbacks<InstallationPlugin[\"beforeInstall\"]>(\n installationPlugins,\n \"beforeInstall\",\n {\n context\n }\n );\n\n await fileManager.settings.createSettings(data);\n\n await fileManager.system.setVersion(context.WEBINY_VERSION);\n\n await executeCallbacks<InstallationPlugin[\"afterInstall\"]>(\n installationPlugins,\n \"afterInstall\",\n {\n context\n }\n );\n\n return true;\n },\n async upgrade(version) {\n const identity = context.security.getIdentity();\n if (!identity) {\n throw new NotAuthorizedError();\n }\n\n const upgradePlugins = context.plugins\n .byType<UpgradePlugin>(\"api-upgrade\")\n .filter(pl => pl.app === \"file-manager\");\n\n const plugin = getApplicablePlugin({\n deployedVersion: context.WEBINY_VERSION,\n installedAppVersion: await this.getVersion(),\n upgradePlugins,\n upgradeToVersion: version\n });\n\n await plugin.apply(context);\n\n // Store new app version\n await context.fileManager.system.setVersion(version);\n\n return true;\n }\n };\n});\n\nsystemCrudContextPlugin.name = \"FileManagerSystemCrud\";\n\nexport default systemCrudContextPlugin;\n"],"mappings":"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"}
1
+ {"version":3,"names":["systemCrudContextPlugin","ContextPlugin","context","pluginType","SystemStorageOperationsProviderPlugin","type","providerPlugin","plugins","byType","find","WebinyError","storageOperations","provide","fileManager","getTenantId","tenancy","getCurrentTenant","id","system","getVersion","get","version","setVersion","data","tenant","update","original","ex","create","install","srcPrefix","identity","security","getIdentity","NotAuthorizedError","installationPlugins","InstallationPlugin","executeCallbacks","settings","createSettings","WEBINY_VERSION","upgrade","upgradePlugins","filter","pl","app","plugin","getApplicablePlugin","deployedVersion","installedAppVersion","upgradeToVersion","apply","name"],"sources":["system.crud.ts"],"sourcesContent":["import { NotAuthorizedError } from \"@webiny/api-security\";\nimport { getApplicablePlugin } from \"@webiny/api-upgrade\";\nimport { FileManagerContext, FileManagerSettings, FileManagerSystem } from \"~/types\";\nimport { UpgradePlugin } from \"@webiny/api-upgrade/types\";\nimport WebinyError from \"@webiny/error\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { executeCallbacks } from \"~/utils\";\nimport { InstallationPlugin } from \"~/plugins/definitions/InstallationPlugin\";\nimport { SystemStorageOperationsProviderPlugin } from \"~/plugins/definitions/SystemStorageOperationsProviderPlugin\";\n\nconst systemCrudContextPlugin = new ContextPlugin<FileManagerContext>(async context => {\n const pluginType = SystemStorageOperationsProviderPlugin.type;\n const providerPlugin = context.plugins\n .byType<SystemStorageOperationsProviderPlugin>(pluginType)\n .find(() => true);\n\n if (!providerPlugin) {\n throw new WebinyError(`Missing \"${pluginType}\" plugin.`, \"PLUGIN_NOT_FOUND\", {\n type: pluginType\n });\n }\n\n const storageOperations = await providerPlugin.provide({\n context\n });\n\n if (!context.fileManager) {\n context.fileManager = {} as any;\n }\n\n const getTenantId = (): string => {\n return context.tenancy.getCurrentTenant().id;\n };\n\n context.fileManager.system = {\n async getVersion() {\n const system = await storageOperations.get();\n\n return system ? system.version : null;\n },\n async setVersion(version: string) {\n const system = await storageOperations.get();\n\n if (system) {\n const data: FileManagerSystem = {\n ...system,\n tenant: system.tenant || getTenantId(),\n version\n };\n try {\n await storageOperations.update({\n original: system,\n data\n });\n return;\n } catch (ex) {\n throw new WebinyError(\n \"Could not update the system data.\",\n \"SYSTEM_UPDATE_ERROR\",\n {\n data\n }\n );\n }\n }\n\n const data: FileManagerSystem = {\n version,\n tenant: getTenantId()\n };\n try {\n await storageOperations.create({\n data\n });\n return;\n } catch (ex) {\n throw new WebinyError(\"Could not create the system data.\", \"SYSTEM_CREATE_ERROR\", {\n data\n });\n }\n },\n async install({ srcPrefix }) {\n const identity = context.security.getIdentity();\n if (!identity) {\n throw new NotAuthorizedError();\n }\n const { fileManager } = context;\n const version = await fileManager.system.getVersion();\n\n if (version) {\n throw new WebinyError(\n \"File Manager is already installed.\",\n \"FILES_INSTALL_ABORTED\"\n );\n }\n\n const data: Partial<FileManagerSettings> = {};\n\n if (srcPrefix) {\n data.srcPrefix = srcPrefix;\n }\n\n const installationPlugins = context.plugins.byType<InstallationPlugin>(\n InstallationPlugin.type\n );\n\n await executeCallbacks<InstallationPlugin[\"beforeInstall\"]>(\n installationPlugins,\n \"beforeInstall\",\n {\n context\n }\n );\n\n await fileManager.settings.createSettings(data);\n\n await fileManager.system.setVersion(context.WEBINY_VERSION);\n\n await executeCallbacks<InstallationPlugin[\"afterInstall\"]>(\n installationPlugins,\n \"afterInstall\",\n {\n context\n }\n );\n\n return true;\n },\n async upgrade(version) {\n const identity = context.security.getIdentity();\n if (!identity) {\n throw new NotAuthorizedError();\n }\n\n const upgradePlugins = context.plugins\n .byType<UpgradePlugin>(\"api-upgrade\")\n .filter(pl => pl.app === \"file-manager\");\n\n const plugin = getApplicablePlugin({\n deployedVersion: context.WEBINY_VERSION,\n installedAppVersion: await this.getVersion(),\n upgradePlugins,\n upgradeToVersion: version\n });\n\n await plugin.apply(context);\n\n // Store new app version\n await context.fileManager.system.setVersion(version);\n\n return true;\n }\n };\n});\n\nsystemCrudContextPlugin.name = \"FileManagerSystemCrud\";\n\nexport default systemCrudContextPlugin;\n"],"mappings":"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"}
@@ -4,30 +4,22 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _apiSecurity = require("@webiny/api-security");
9
-
10
8
  var _default = async (context, check = {}) => {
11
9
  await context.i18n.checkI18NContentPermission();
12
10
  const filePermission = await context.security.getPermission("fm.file");
13
-
14
11
  if (!filePermission) {
15
12
  throw new _apiSecurity.NotAuthorizedError();
16
13
  }
17
-
18
14
  if (check.rwd && !hasRwd(filePermission, check.rwd)) {
19
15
  throw new _apiSecurity.NotAuthorizedError();
20
16
  }
21
-
22
17
  return filePermission;
23
18
  };
24
-
25
19
  exports.default = _default;
26
-
27
20
  const hasRwd = (filesFilePermission, rwd) => {
28
21
  if (typeof filesFilePermission.rwd !== "string") {
29
22
  return true;
30
23
  }
31
-
32
24
  return filesFilePermission.rwd.includes(rwd);
33
25
  };
@@ -1 +1 @@
1
- {"version":3,"names":["context","check","i18n","checkI18NContentPermission","filePermission","security","getPermission","NotAuthorizedError","rwd","hasRwd","filesFilePermission","includes"],"sources":["checkBasePermissions.ts"],"sourcesContent":["import { FileManagerContext, FilePermission } from \"~/types\";\nimport { NotAuthorizedError } from \"@webiny/api-security\";\n\nexport default async (\n context: FileManagerContext,\n check: { rwd?: string } = {}\n): Promise<FilePermission> => {\n await context.i18n.checkI18NContentPermission();\n const filePermission = await context.security.getPermission<FilePermission>(\"fm.file\");\n if (!filePermission) {\n throw new NotAuthorizedError();\n }\n if (check.rwd && !hasRwd(filePermission, check.rwd)) {\n throw new NotAuthorizedError();\n }\n\n return filePermission;\n};\n\nconst hasRwd = (filesFilePermission: FilePermission, rwd: string): boolean => {\n if (typeof filesFilePermission.rwd !== \"string\") {\n return true;\n }\n\n return filesFilePermission.rwd.includes(rwd);\n};\n"],"mappings":";;;;;;;AACA;;eAEe,OACXA,OADW,EAEXC,KAAuB,GAAG,EAFf,KAGe;EAC1B,MAAMD,OAAO,CAACE,IAAR,CAAaC,0BAAb,EAAN;EACA,MAAMC,cAAc,GAAG,MAAMJ,OAAO,CAACK,QAAR,CAAiBC,aAAjB,CAA+C,SAA/C,CAA7B;;EACA,IAAI,CAACF,cAAL,EAAqB;IACjB,MAAM,IAAIG,+BAAJ,EAAN;EACH;;EACD,IAAIN,KAAK,CAACO,GAAN,IAAa,CAACC,MAAM,CAACL,cAAD,EAAiBH,KAAK,CAACO,GAAvB,CAAxB,EAAqD;IACjD,MAAM,IAAID,+BAAJ,EAAN;EACH;;EAED,OAAOH,cAAP;AACH,C;;;;AAED,MAAMK,MAAM,GAAG,CAACC,mBAAD,EAAsCF,GAAtC,KAA+D;EAC1E,IAAI,OAAOE,mBAAmB,CAACF,GAA3B,KAAmC,QAAvC,EAAiD;IAC7C,OAAO,IAAP;EACH;;EAED,OAAOE,mBAAmB,CAACF,GAApB,CAAwBG,QAAxB,CAAiCH,GAAjC,CAAP;AACH,CAND"}
1
+ {"version":3,"names":["context","check","i18n","checkI18NContentPermission","filePermission","security","getPermission","NotAuthorizedError","rwd","hasRwd","filesFilePermission","includes"],"sources":["checkBasePermissions.ts"],"sourcesContent":["import { FileManagerContext, FilePermission } from \"~/types\";\nimport { NotAuthorizedError } from \"@webiny/api-security\";\n\nexport default async (\n context: FileManagerContext,\n check: { rwd?: string } = {}\n): Promise<FilePermission> => {\n await context.i18n.checkI18NContentPermission();\n const filePermission = await context.security.getPermission<FilePermission>(\"fm.file\");\n if (!filePermission) {\n throw new NotAuthorizedError();\n }\n if (check.rwd && !hasRwd(filePermission, check.rwd)) {\n throw new NotAuthorizedError();\n }\n\n return filePermission;\n};\n\nconst hasRwd = (filesFilePermission: FilePermission, rwd: string): boolean => {\n if (typeof filesFilePermission.rwd !== \"string\") {\n return true;\n }\n\n return filesFilePermission.rwd.includes(rwd);\n};\n"],"mappings":";;;;;;AACA;AAA0D,eAE3C,OACXA,OAA2B,EAC3BC,KAAuB,GAAG,CAAC,CAAC,KACF;EAC1B,MAAMD,OAAO,CAACE,IAAI,CAACC,0BAA0B,EAAE;EAC/C,MAAMC,cAAc,GAAG,MAAMJ,OAAO,CAACK,QAAQ,CAACC,aAAa,CAAiB,SAAS,CAAC;EACtF,IAAI,CAACF,cAAc,EAAE;IACjB,MAAM,IAAIG,+BAAkB,EAAE;EAClC;EACA,IAAIN,KAAK,CAACO,GAAG,IAAI,CAACC,MAAM,CAACL,cAAc,EAAEH,KAAK,CAACO,GAAG,CAAC,EAAE;IACjD,MAAM,IAAID,+BAAkB,EAAE;EAClC;EAEA,OAAOH,cAAc;AACzB,CAAC;AAAA;AAED,MAAMK,MAAM,GAAG,CAACC,mBAAmC,EAAEF,GAAW,KAAc;EAC1E,IAAI,OAAOE,mBAAmB,CAACF,GAAG,KAAK,QAAQ,EAAE;IAC7C,OAAO,IAAI;EACf;EAEA,OAAOE,mBAAmB,CAACF,GAAG,CAACG,QAAQ,CAACH,GAAG,CAAC;AAChD,CAAC"}
@@ -4,23 +4,17 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _fields = require("@commodo/fields");
9
-
10
8
  var _commodoFieldsObject = require("commodo-fields-object");
11
-
12
9
  var _validation = require("@webiny/validation");
13
-
14
10
  /**
15
11
  * Package @commodo/fields does not have types
16
12
  */
17
13
  // @ts-ignore
18
-
19
14
  /**
20
15
  * Package commodo-fields-object does not have types
21
16
  */
22
17
  // @ts-ignore
23
-
24
18
  /**
25
19
  * TODO @ts-refactor change for JOI or some other validation library
26
20
  */
@@ -45,7 +39,6 @@ var _default = (create = true) => {
45
39
  if (!Array.isArray(value)) {
46
40
  return null;
47
41
  }
48
-
49
42
  return value.map(item => item.toLowerCase());
50
43
  })((0, _fields.string)({
51
44
  list: true,
@@ -53,18 +46,14 @@ var _default = (create = true) => {
53
46
  if (!Array.isArray(tags)) {
54
47
  return;
55
48
  }
56
-
57
49
  if (tags.length > 15) {
58
50
  throw Error("You cannot set more than 15 tags.");
59
51
  }
60
-
61
52
  for (let i = 0; i < tags.length; i++) {
62
53
  const tag = tags[i];
63
-
64
54
  if (typeof tag !== "string") {
65
55
  throw Error("Tag must be typeof string.");
66
56
  }
67
-
68
57
  if (tag.length > 50) {
69
58
  throw Error(`Tag ${tag} is more than 50 characters long.`);
70
59
  }
@@ -73,5 +62,4 @@ var _default = (create = true) => {
73
62
  }))
74
63
  })();
75
64
  };
76
-
77
65
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"names":["create","withFields","key","string","validation","name","size","number","type","meta","object","value","private","tags","onSet","Array","isArray","map","item","toLowerCase","list","length","Error","i","tag"],"sources":["createFileModel.ts"],"sourcesContent":["/**\n * Package @commodo/fields does not have types\n */\n// @ts-ignore\nimport { withFields, string, number, onSet } from \"@commodo/fields\";\n/**\n * Package commodo-fields-object does not have types\n */\n// @ts-ignore\nimport { object } from \"commodo-fields-object\";\nimport { validation } from \"@webiny/validation\";\n\n/**\n * TODO @ts-refactor change for JOI or some other validation library\n */\nexport default (create = true) => {\n return withFields({\n key: string({\n validation: validation.create(`${create ? \"required,\" : \"\"}maxLength:1000`)\n }),\n name: string({ validation: validation.create(\"maxLength:1000\") }),\n size: number(),\n type: string({ validation: validation.create(\"maxLength:255\") }),\n meta: object({ value: { private: false } }),\n tags: onSet((value: string[]) => {\n if (!Array.isArray(value)) {\n return null;\n }\n\n return value.map(item => item.toLowerCase());\n })(\n string({\n list: true,\n validation: (tags: string[]) => {\n if (!Array.isArray(tags)) {\n return;\n }\n\n if (tags.length > 15) {\n throw Error(\"You cannot set more than 15 tags.\");\n }\n\n for (let i = 0; i < tags.length; i++) {\n const tag = tags[i];\n if (typeof tag !== \"string\") {\n throw Error(\"Tag must be typeof string.\");\n }\n\n if (tag.length > 50) {\n throw Error(`Tag ${tag} is more than 50 characters long.`);\n }\n }\n }\n })\n )\n })();\n};\n"],"mappings":";;;;;;;AAIA;;AAKA;;AACA;;AAVA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAIA;AACA;AACA;eACe,CAACA,MAAM,GAAG,IAAV,KAAmB;EAC9B,OAAO,IAAAC,kBAAA,EAAW;IACdC,GAAG,EAAE,IAAAC,cAAA,EAAO;MACRC,UAAU,EAAEA,sBAAA,CAAWJ,MAAX,CAAmB,GAAEA,MAAM,GAAG,WAAH,GAAiB,EAAG,gBAA/C;IADJ,CAAP,CADS;IAIdK,IAAI,EAAE,IAAAF,cAAA,EAAO;MAAEC,UAAU,EAAEA,sBAAA,CAAWJ,MAAX,CAAkB,gBAAlB;IAAd,CAAP,CAJQ;IAKdM,IAAI,EAAE,IAAAC,cAAA,GALQ;IAMdC,IAAI,EAAE,IAAAL,cAAA,EAAO;MAAEC,UAAU,EAAEA,sBAAA,CAAWJ,MAAX,CAAkB,eAAlB;IAAd,CAAP,CANQ;IAOdS,IAAI,EAAE,IAAAC,2BAAA,EAAO;MAAEC,KAAK,EAAE;QAAEC,OAAO,EAAE;MAAX;IAAT,CAAP,CAPQ;IAQdC,IAAI,EAAE,IAAAC,aAAA,EAAOH,KAAD,IAAqB;MAC7B,IAAI,CAACI,KAAK,CAACC,OAAN,CAAcL,KAAd,CAAL,EAA2B;QACvB,OAAO,IAAP;MACH;;MAED,OAAOA,KAAK,CAACM,GAAN,CAAUC,IAAI,IAAIA,IAAI,CAACC,WAAL,EAAlB,CAAP;IACH,CANK,EAOF,IAAAhB,cAAA,EAAO;MACHiB,IAAI,EAAE,IADH;MAEHhB,UAAU,EAAGS,IAAD,IAAoB;QAC5B,IAAI,CAACE,KAAK,CAACC,OAAN,CAAcH,IAAd,CAAL,EAA0B;UACtB;QACH;;QAED,IAAIA,IAAI,CAACQ,MAAL,GAAc,EAAlB,EAAsB;UAClB,MAAMC,KAAK,CAAC,mCAAD,CAAX;QACH;;QAED,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGV,IAAI,CAACQ,MAAzB,EAAiCE,CAAC,EAAlC,EAAsC;UAClC,MAAMC,GAAG,GAAGX,IAAI,CAACU,CAAD,CAAhB;;UACA,IAAI,OAAOC,GAAP,KAAe,QAAnB,EAA6B;YACzB,MAAMF,KAAK,CAAC,4BAAD,CAAX;UACH;;UAED,IAAIE,GAAG,CAACH,MAAJ,GAAa,EAAjB,EAAqB;YACjB,MAAMC,KAAK,CAAE,OAAME,GAAI,mCAAZ,CAAX;UACH;QACJ;MACJ;IArBE,CAAP,CAPE;EARQ,CAAX,GAAP;AAwCH,C"}
1
+ {"version":3,"names":["create","withFields","key","string","validation","name","size","number","type","meta","object","value","private","tags","onSet","Array","isArray","map","item","toLowerCase","list","length","Error","i","tag"],"sources":["createFileModel.ts"],"sourcesContent":["/**\n * Package @commodo/fields does not have types\n */\n// @ts-ignore\nimport { withFields, string, number, onSet } from \"@commodo/fields\";\n/**\n * Package commodo-fields-object does not have types\n */\n// @ts-ignore\nimport { object } from \"commodo-fields-object\";\nimport { validation } from \"@webiny/validation\";\n\n/**\n * TODO @ts-refactor change for JOI or some other validation library\n */\nexport default (create = true) => {\n return withFields({\n key: string({\n validation: validation.create(`${create ? \"required,\" : \"\"}maxLength:1000`)\n }),\n name: string({ validation: validation.create(\"maxLength:1000\") }),\n size: number(),\n type: string({ validation: validation.create(\"maxLength:255\") }),\n meta: object({ value: { private: false } }),\n tags: onSet((value: string[]) => {\n if (!Array.isArray(value)) {\n return null;\n }\n\n return value.map(item => item.toLowerCase());\n })(\n string({\n list: true,\n validation: (tags: string[]) => {\n if (!Array.isArray(tags)) {\n return;\n }\n\n if (tags.length > 15) {\n throw Error(\"You cannot set more than 15 tags.\");\n }\n\n for (let i = 0; i < tags.length; i++) {\n const tag = tags[i];\n if (typeof tag !== \"string\") {\n throw Error(\"Tag must be typeof string.\");\n }\n\n if (tag.length > 50) {\n throw Error(`Tag ${tag} is more than 50 characters long.`);\n }\n }\n }\n })\n )\n })();\n};\n"],"mappings":";;;;;;AAIA;AAKA;AACA;AAVA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AACA;AAFA,eAGe,CAACA,MAAM,GAAG,IAAI,KAAK;EAC9B,OAAO,IAAAC,kBAAU,EAAC;IACdC,GAAG,EAAE,IAAAC,cAAM,EAAC;MACRC,UAAU,EAAEA,sBAAU,CAACJ,MAAM,CAAE,GAAEA,MAAM,GAAG,WAAW,GAAG,EAAG,gBAAe;IAC9E,CAAC,CAAC;IACFK,IAAI,EAAE,IAAAF,cAAM,EAAC;MAAEC,UAAU,EAAEA,sBAAU,CAACJ,MAAM,CAAC,gBAAgB;IAAE,CAAC,CAAC;IACjEM,IAAI,EAAE,IAAAC,cAAM,GAAE;IACdC,IAAI,EAAE,IAAAL,cAAM,EAAC;MAAEC,UAAU,EAAEA,sBAAU,CAACJ,MAAM,CAAC,eAAe;IAAE,CAAC,CAAC;IAChES,IAAI,EAAE,IAAAC,2BAAM,EAAC;MAAEC,KAAK,EAAE;QAAEC,OAAO,EAAE;MAAM;IAAE,CAAC,CAAC;IAC3CC,IAAI,EAAE,IAAAC,aAAK,EAAEH,KAAe,IAAK;MAC7B,IAAI,CAACI,KAAK,CAACC,OAAO,CAACL,KAAK,CAAC,EAAE;QACvB,OAAO,IAAI;MACf;MAEA,OAAOA,KAAK,CAACM,GAAG,CAACC,IAAI,IAAIA,IAAI,CAACC,WAAW,EAAE,CAAC;IAChD,CAAC,CAAC,CACE,IAAAhB,cAAM,EAAC;MACHiB,IAAI,EAAE,IAAI;MACVhB,UAAU,EAAGS,IAAc,IAAK;QAC5B,IAAI,CAACE,KAAK,CAACC,OAAO,CAACH,IAAI,CAAC,EAAE;UACtB;QACJ;QAEA,IAAIA,IAAI,CAACQ,MAAM,GAAG,EAAE,EAAE;UAClB,MAAMC,KAAK,CAAC,mCAAmC,CAAC;QACpD;QAEA,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGV,IAAI,CAACQ,MAAM,EAAEE,CAAC,EAAE,EAAE;UAClC,MAAMC,GAAG,GAAGX,IAAI,CAACU,CAAC,CAAC;UACnB,IAAI,OAAOC,GAAG,KAAK,QAAQ,EAAE;YACzB,MAAMF,KAAK,CAAC,4BAA4B,CAAC;UAC7C;UAEA,IAAIE,GAAG,CAACH,MAAM,GAAG,EAAE,EAAE;YACjB,MAAMC,KAAK,CAAE,OAAME,GAAI,mCAAkC,CAAC;UAC9D;QACJ;MACJ;IACJ,CAAC,CAAC;EAEV,CAAC,CAAC,EAAE;AACR,CAAC;AAAA"}