@webiny/api-file-manager 0.0.0-unstable.99666aeb00 → 0.0.0-unstable.a9593f74dd
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/FileManagerContextSetup.js +8 -6
- package/FileManagerContextSetup.js.map +1 -1
- package/cmsFileStorage/CmsFilesStorage.js +28 -25
- package/cmsFileStorage/CmsFilesStorage.js.map +1 -1
- package/cmsFileStorage/ListFilesWhereProcessor.js +8 -10
- package/cmsFileStorage/ListFilesWhereProcessor.js.map +1 -1
- package/cmsFileStorage/ListTagsWhereProcessor.js +8 -10
- package/cmsFileStorage/ListTagsWhereProcessor.js.map +1 -1
- package/cmsFileStorage/createFileManagerPlugins.d.ts +5 -3
- package/cmsFileStorage/createFileManagerPlugins.js +8 -25
- package/cmsFileStorage/createFileManagerPlugins.js.map +1 -1
- package/cmsFileStorage/createModelField.js +5 -1
- package/cmsFileStorage/createModelField.js.map +1 -1
- package/cmsFileStorage/file.model.d.ts +5 -3
- package/cmsFileStorage/file.model.js +64 -29
- package/cmsFileStorage/file.model.js.map +1 -1
- package/cmsFileStorage/isInstallationPending.js +3 -1
- package/cmsFileStorage/isInstallationPending.js.map +1 -1
- package/contants.js +3 -1
- package/contants.js.map +1 -1
- package/createFileManager/files.crud.js +83 -55
- package/createFileManager/files.crud.js.map +1 -1
- package/createFileManager/index.js +8 -5
- package/createFileManager/index.js.map +1 -1
- package/createFileManager/permissions/FilesPermissions.js +3 -1
- package/createFileManager/permissions/FilesPermissions.js.map +1 -1
- package/createFileManager/settings.crud.js +28 -12
- package/createFileManager/settings.crud.js.map +1 -1
- package/createFileManager/system.crud.js +6 -4
- package/createFileManager/system.crud.js.map +1 -1
- package/delivery/AssetDelivery/AliasAssetRequestResolver.d.ts +10 -0
- package/delivery/AssetDelivery/AliasAssetRequestResolver.js +74 -0
- package/delivery/AssetDelivery/AliasAssetRequestResolver.js.map +1 -0
- package/delivery/AssetDelivery/Asset.d.ts +30 -0
- package/delivery/AssetDelivery/Asset.js +64 -0
- package/delivery/AssetDelivery/Asset.js.map +1 -0
- package/delivery/AssetDelivery/AssetDeliveryConfig.d.ts +63 -0
- package/delivery/AssetDelivery/AssetDeliveryConfig.js +102 -0
- package/delivery/AssetDelivery/AssetDeliveryConfig.js.map +1 -0
- package/delivery/AssetDelivery/AssetRequest.d.ts +24 -0
- package/delivery/AssetDelivery/AssetRequest.js +29 -0
- package/delivery/AssetDelivery/AssetRequest.js.map +1 -0
- package/delivery/AssetDelivery/FilesAssetRequestResolver.d.ts +6 -0
- package/delivery/AssetDelivery/FilesAssetRequestResolver.js +33 -0
- package/delivery/AssetDelivery/FilesAssetRequestResolver.js.map +1 -0
- package/delivery/AssetDelivery/NullAssetOutputStrategy.d.ts +4 -0
- package/delivery/AssetDelivery/NullAssetOutputStrategy.js +15 -0
- package/delivery/AssetDelivery/NullAssetOutputStrategy.js.map +1 -0
- package/delivery/AssetDelivery/NullAssetReply.d.ts +4 -0
- package/delivery/AssetDelivery/NullAssetReply.js +20 -0
- package/delivery/AssetDelivery/NullAssetReply.js.map +1 -0
- package/delivery/AssetDelivery/NullAssetResolver.d.ts +5 -0
- package/delivery/AssetDelivery/NullAssetResolver.js +14 -0
- package/delivery/AssetDelivery/NullAssetResolver.js.map +1 -0
- package/delivery/AssetDelivery/NullRequestResolver.d.ts +4 -0
- package/delivery/AssetDelivery/NullRequestResolver.js +14 -0
- package/delivery/AssetDelivery/NullRequestResolver.js.map +1 -0
- package/delivery/AssetDelivery/SetCacheControlHeaders.d.ts +8 -0
- package/delivery/AssetDelivery/SetCacheControlHeaders.js +25 -0
- package/delivery/AssetDelivery/SetCacheControlHeaders.js.map +1 -0
- package/delivery/AssetDelivery/SetResponseHeaders.d.ts +18 -0
- package/delivery/AssetDelivery/SetResponseHeaders.js +25 -0
- package/delivery/AssetDelivery/SetResponseHeaders.js.map +1 -0
- package/delivery/AssetDelivery/abstractions/AssetContentsReader.d.ts +5 -0
- package/delivery/AssetDelivery/abstractions/AssetContentsReader.js +7 -0
- package/delivery/AssetDelivery/abstractions/AssetContentsReader.js.map +1 -0
- package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.d.ts +4 -0
- package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.js +7 -0
- package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.js.map +1 -0
- package/delivery/AssetDelivery/abstractions/AssetProcessor.d.ts +4 -0
- package/delivery/AssetDelivery/abstractions/AssetProcessor.js +7 -0
- package/delivery/AssetDelivery/abstractions/AssetProcessor.js.map +1 -0
- package/delivery/AssetDelivery/abstractions/AssetReply.d.ts +25 -0
- package/delivery/AssetDelivery/abstractions/AssetReply.js +38 -0
- package/delivery/AssetDelivery/abstractions/AssetReply.js.map +1 -0
- package/delivery/AssetDelivery/abstractions/AssetRequestResolver.d.ts +5 -0
- package/delivery/AssetDelivery/abstractions/AssetRequestResolver.js +7 -0
- package/delivery/AssetDelivery/abstractions/AssetRequestResolver.js.map +1 -0
- package/delivery/AssetDelivery/abstractions/AssetResolver.d.ts +4 -0
- package/delivery/AssetDelivery/abstractions/AssetResolver.js +7 -0
- package/delivery/AssetDelivery/abstractions/AssetResolver.js.map +1 -0
- package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.d.ts +4 -0
- package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.js +7 -0
- package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.js.map +1 -0
- package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.d.ts +2 -0
- package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.js +15 -0
- package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.js.map +1 -0
- package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.d.ts +4 -0
- package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.js +7 -0
- package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.js.map +1 -0
- package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.d.ts +4 -0
- package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.js +26 -0
- package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.js.map +1 -0
- package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.d.ts +4 -0
- package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.js +15 -0
- package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.js.map +1 -0
- package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.d.ts +7 -0
- package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js +28 -0
- package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js.map +1 -0
- package/delivery/AssetDelivery/privateFiles/PrivateCache.d.ts +4 -0
- package/delivery/AssetDelivery/privateFiles/PrivateCache.js +18 -0
- package/delivery/AssetDelivery/privateFiles/PrivateCache.js.map +1 -0
- package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.d.ts +7 -0
- package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.js +37 -0
- package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.js.map +1 -0
- package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.d.ts +13 -0
- package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.js +62 -0
- package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.js.map +1 -0
- package/delivery/AssetDelivery/privateFiles/PublicCache.d.ts +4 -0
- package/delivery/AssetDelivery/privateFiles/PublicCache.js +18 -0
- package/delivery/AssetDelivery/privateFiles/PublicCache.js.map +1 -0
- package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.d.ts +6 -0
- package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js +27 -0
- package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js.map +1 -0
- package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.d.ts +6 -0
- package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js +27 -0
- package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js.map +1 -0
- package/delivery/AssetDelivery/privateFiles/internalIdentity.d.ts +7 -0
- package/delivery/AssetDelivery/privateFiles/internalIdentity.js +19 -0
- package/delivery/AssetDelivery/privateFiles/internalIdentity.js.map +1 -0
- package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.d.ts +4 -0
- package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.js +14 -0
- package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.js.map +1 -0
- package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.d.ts +4 -0
- package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.js +14 -0
- package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.js.map +1 -0
- package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.d.ts +6 -0
- package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.js +25 -0
- package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.js.map +1 -0
- package/delivery/index.d.ts +15 -0
- package/delivery/index.js +172 -0
- package/delivery/index.js.map +1 -0
- package/delivery/setupAssetDelivery.d.ts +6 -0
- package/delivery/setupAssetDelivery.js +124 -0
- package/delivery/setupAssetDelivery.js.map +1 -0
- package/graphql/baseSchema.js +4 -1
- package/graphql/baseSchema.js.map +1 -1
- package/graphql/createFilesTypeDefs.js +29 -6
- package/graphql/createFilesTypeDefs.js.map +1 -1
- package/graphql/filesSchema.js +13 -5
- package/graphql/filesSchema.js.map +1 -1
- package/graphql/getFileByUrl.d.ts +3 -0
- package/graphql/getFileByUrl.js +78 -0
- package/graphql/getFileByUrl.js.map +1 -0
- package/graphql/index.d.ts +2 -1
- package/graphql/index.js +24 -2
- package/graphql/index.js.map +1 -1
- package/graphql/utils.js +3 -1
- package/graphql/utils.js.map +1 -1
- package/handlers/{transform/managers → manage}/imageManager.d.ts +2 -3
- package/handlers/{transform/managers → manage}/imageManager.js +11 -9
- package/handlers/manage/imageManager.js.map +1 -0
- package/handlers/manage/index.d.ts +1 -1
- package/handlers/manage/index.js +9 -5
- package/handlers/manage/index.js.map +1 -1
- package/handlers/{transform → manage}/legacyUtils.d.ts +0 -5
- package/handlers/{transform → manage}/legacyUtils.js +3 -7
- package/handlers/manage/legacyUtils.js.map +1 -0
- package/handlers/{transform → manage}/utils.js +3 -1
- package/handlers/manage/utils.js.map +1 -0
- package/handlers/types.d.ts +1 -1
- package/handlers/types.js +3 -1
- package/handlers/types.js.map +1 -1
- package/handlers/utils/getEnvironment.js +3 -1
- package/handlers/utils/getEnvironment.js.map +1 -1
- package/handlers/utils/getObjectParams.js +3 -1
- package/handlers/utils/getObjectParams.js.map +1 -1
- package/handlers/utils/index.js +3 -1
- package/handlers/utils/index.js.map +1 -1
- package/index.d.ts +4 -1
- package/index.js +27 -7
- package/index.js.map +1 -1
- package/modelModifier/CmsModelModifier.d.ts +3 -1
- package/modelModifier/CmsModelModifier.js +13 -10
- package/modelModifier/CmsModelModifier.js.map +1 -1
- package/package.json +26 -26
- package/plugins/FilePhysicalStoragePlugin.js +3 -3
- package/plugins/FilePhysicalStoragePlugin.js.map +1 -1
- package/plugins/FileStorageTransformPlugin.js +3 -4
- package/plugins/FileStorageTransformPlugin.js.map +1 -1
- package/plugins/index.js +3 -1
- package/plugins/index.js.map +1 -1
- package/storage/FileStorage.d.ts +2 -1
- package/storage/FileStorage.js +20 -16
- package/storage/FileStorage.js.map +1 -1
- package/types/file.d.ts +11 -0
- package/types/file.js +3 -1
- package/types/file.js.map +1 -1
- package/types/file.lifecycle.js +3 -1
- package/types.d.ts +22 -2
- package/types.js +3 -1
- package/types.js.map +1 -1
- package/createFileManager/filevalidation.disabled.d.ts +0 -0
- package/createFileManager/filevalidation.disabled.js +0 -55
- package/createFileManager/filevalidation.disabled.js.map +0 -1
- package/handlers/download/byAlias.d.ts +0 -6
- package/handlers/download/byAlias.js +0 -89
- package/handlers/download/byAlias.js.map +0 -1
- package/handlers/download/byExactKey.d.ts +0 -2
- package/handlers/download/byExactKey.js +0 -57
- package/handlers/download/byExactKey.js.map +0 -1
- package/handlers/download/extractFileInformation.d.ts +0 -9
- package/handlers/download/extractFileInformation.js +0 -20
- package/handlers/download/extractFileInformation.js.map +0 -1
- package/handlers/download/getS3Object.d.ts +0 -12
- package/handlers/download/getS3Object.js +0 -72
- package/handlers/download/getS3Object.js.map +0 -1
- package/handlers/download/index.d.ts +0 -2
- package/handlers/download/index.js +0 -27
- package/handlers/download/index.js.map +0 -1
- package/handlers/transform/index.d.ts +0 -2
- package/handlers/transform/index.js +0 -92
- package/handlers/transform/index.js.map +0 -1
- package/handlers/transform/legacyUtils.js.map +0 -1
- package/handlers/transform/loaders/imageLoader.d.ts +0 -30
- package/handlers/transform/loaders/imageLoader.js +0 -94
- package/handlers/transform/loaders/imageLoader.js.map +0 -1
- package/handlers/transform/loaders/index.d.ts +0 -8
- package/handlers/transform/loaders/index.js +0 -10
- package/handlers/transform/loaders/index.js.map +0 -1
- package/handlers/transform/loaders/sanitizeImageTransformations.d.ts +0 -11
- package/handlers/transform/loaders/sanitizeImageTransformations.js +0 -45
- package/handlers/transform/loaders/sanitizeImageTransformations.js.map +0 -1
- package/handlers/transform/managers/imageManager.js.map +0 -1
- package/handlers/transform/managers/index.d.ts +0 -5
- package/handlers/transform/managers/index.js +0 -10
- package/handlers/transform/managers/index.js.map +0 -1
- package/handlers/transform/optimizeImage.d.ts +0 -3
- package/handlers/transform/optimizeImage.js +0 -42
- package/handlers/transform/optimizeImage.js.map +0 -1
- package/handlers/transform/transformImage.d.ts +0 -13
- package/handlers/transform/transformImage.js +0 -28
- package/handlers/transform/transformImage.js.map +0 -1
- package/handlers/transform/utils.js.map +0 -1
- /package/handlers/{transform → manage}/utils.d.ts +0 -0
|
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.FileManagerContextSetup = void 0;
|
|
8
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
8
|
var _createFileManager = require("./createFileManager");
|
|
10
9
|
var _FileStorage = require("./storage/FileStorage");
|
|
11
10
|
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
@@ -18,7 +17,6 @@ var _apiHeadlessCms = require("@webiny/api-headless-cms");
|
|
|
18
17
|
var _FilesPermissions = require("./createFileManager/permissions/FilesPermissions");
|
|
19
18
|
class FileManagerContextSetup {
|
|
20
19
|
constructor(context) {
|
|
21
|
-
(0, _defineProperty2.default)(this, "context", void 0);
|
|
22
20
|
this.context = context;
|
|
23
21
|
}
|
|
24
22
|
async setupContext(storageOperations) {
|
|
@@ -74,19 +72,21 @@ class FileManagerContextSetup {
|
|
|
74
72
|
console.log("Installation pending!");
|
|
75
73
|
return;
|
|
76
74
|
}
|
|
75
|
+
const withPrivateFiles = this.context.wcp.canUsePrivateFiles();
|
|
77
76
|
|
|
78
77
|
// This registers code plugins (model group, models)
|
|
79
78
|
const {
|
|
80
|
-
groupPlugin,
|
|
81
79
|
fileModelDefinition
|
|
82
|
-
} = (0, _createFileManagerPlugins.
|
|
80
|
+
} = (0, _createFileManagerPlugins.createFileModel)({
|
|
81
|
+
withPrivateFiles
|
|
82
|
+
});
|
|
83
83
|
const modelModifiers = this.context.plugins.byType(_CmsModelModifier.CmsModelModifierPlugin.type);
|
|
84
84
|
for (const modifier of modelModifiers) {
|
|
85
85
|
await modifier.modifyModel(fileModelDefinition);
|
|
86
86
|
}
|
|
87
87
|
|
|
88
88
|
// Finally, register all plugins
|
|
89
|
-
this.context.plugins.register([
|
|
89
|
+
this.context.plugins.register([new _apiHeadlessCms.CmsModelPlugin(fileModelDefinition)]);
|
|
90
90
|
|
|
91
91
|
// Now load the file model registered in the previous step
|
|
92
92
|
const fileModel = await this.getModel(_file.FILE_MODEL_ID);
|
|
@@ -110,4 +110,6 @@ class FileManagerContextSetup {
|
|
|
110
110
|
return model;
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
|
-
exports.FileManagerContextSetup = FileManagerContextSetup;
|
|
113
|
+
exports.FileManagerContextSetup = FileManagerContextSetup;
|
|
114
|
+
|
|
115
|
+
//# sourceMappingURL=FileManagerContextSetup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["FileManagerContextSetup","constructor","context","setupContext","storageOperations","beforeInit","fileStorageOps","security","withoutAuthorization","setupCmsStorageOperations","aliases","files","filesPermissions","FilesPermissions","getIdentity","getPermissions","fullAccessPermissionName","createFileManager","getTenantId","bind","getLocaleCode","storage","FileStorage","WEBINY_VERSION","locale","i18n","getContentLocale","WebinyError","code","tenancy","getCurrentTenant","id","name","isInstallationPending","console","log","
|
|
1
|
+
{"version":3,"names":["_createFileManager","require","_FileStorage","_error","_interopRequireDefault","_isInstallationPending","_createFileManagerPlugins","_file","_CmsFilesStorage","_CmsModelModifier","_apiHeadlessCms","_FilesPermissions","FileManagerContextSetup","constructor","context","setupContext","storageOperations","beforeInit","fileStorageOps","security","withoutAuthorization","setupCmsStorageOperations","aliases","files","filesPermissions","FilesPermissions","getIdentity","getPermissions","fullAccessPermissionName","createFileManager","getTenantId","bind","getLocaleCode","storage","FileStorage","WEBINY_VERSION","locale","i18n","getContentLocale","WebinyError","code","tenancy","getCurrentTenant","id","name","isInstallationPending","console","log","withPrivateFiles","wcp","canUsePrivateFiles","fileModelDefinition","createFileModel","modelModifiers","plugins","byType","CmsModelModifierPlugin","type","modifier","modifyModel","register","CmsModelPlugin","fileModel","getModel","FILE_MODEL_ID","CmsFilesStorage","create","cms","modelId","model","message","exports"],"sources":["FileManagerContextSetup.ts"],"sourcesContent":["import { FileManagerAliasesStorageOperations, FileManagerContext } from \"~/types\";\nimport { createFileManager, FileManagerConfig } from \"~/createFileManager\";\nimport { FileStorage } from \"~/storage/FileStorage\";\nimport WebinyError from \"@webiny/error\";\nimport { SecurityPermission } from \"@webiny/api-security/types\";\nimport { isInstallationPending } from \"~/cmsFileStorage/isInstallationPending\";\nimport { createFileModel } from \"~/cmsFileStorage/createFileManagerPlugins\";\nimport { FILE_MODEL_ID } from \"~/cmsFileStorage/file.model\";\nimport { CmsFilesStorage } from \"~/cmsFileStorage/CmsFilesStorage\";\nimport { CmsModelModifierPlugin } from \"~/modelModifier/CmsModelModifier\";\nimport { CmsModelPlugin } from \"@webiny/api-headless-cms\";\nimport { FilesPermissions } from \"~/createFileManager/permissions/FilesPermissions\";\n\nexport class FileManagerContextSetup {\n private readonly context: FileManagerContext;\n\n constructor(context: FileManagerContext) {\n this.context = context;\n }\n\n async setupContext(storageOperations: FileManagerConfig[\"storageOperations\"]) {\n if (storageOperations.beforeInit) {\n await storageOperations.beforeInit(this.context);\n }\n\n const fileStorageOps = await this.context.security.withoutAuthorization(() => {\n return this.setupCmsStorageOperations(storageOperations.aliases);\n });\n\n if (fileStorageOps) {\n storageOperations.files = fileStorageOps;\n }\n\n const filesPermissions = new FilesPermissions({\n getIdentity: this.context.security.getIdentity,\n getPermissions: () => this.context.security.getPermissions(\"fm.file\"),\n fullAccessPermissionName: \"fm.*\"\n });\n\n return createFileManager({\n storageOperations,\n filesPermissions,\n getTenantId: this.getTenantId.bind(this),\n getLocaleCode: this.getLocaleCode.bind(this),\n getIdentity: this.getIdentity.bind(this),\n getPermissions: this.getPermissions.bind(this),\n storage: new FileStorage({\n context: this.context\n }),\n // TODO: maybe this is no longer necessary, as this wil be managed by CMS?\n WEBINY_VERSION: this.context.WEBINY_VERSION\n });\n }\n\n private getLocaleCode() {\n const locale = this.context.i18n.getContentLocale();\n if (!locale) {\n throw new WebinyError(\n \"Missing locale on context.i18n locale in File Manager API.\",\n \"LOCALE_ERROR\"\n );\n }\n return locale.code;\n }\n\n private getIdentity() {\n return this.context.security.getIdentity();\n }\n\n private getTenantId() {\n return this.context.tenancy.getCurrentTenant().id;\n }\n\n private async getPermissions<T extends SecurityPermission = SecurityPermission>(\n name: string\n ): Promise<T[]> {\n return this.context.security.getPermissions(name);\n }\n\n private async setupCmsStorageOperations(aliases: FileManagerAliasesStorageOperations) {\n if (isInstallationPending({ tenancy: this.context.tenancy, i18n: this.context.i18n })) {\n console.log(\"Installation pending!\");\n return;\n }\n\n const withPrivateFiles = this.context.wcp.canUsePrivateFiles();\n\n // This registers code plugins (model group, models)\n const { fileModelDefinition } = createFileModel({ withPrivateFiles });\n\n const modelModifiers = this.context.plugins.byType<CmsModelModifierPlugin>(\n CmsModelModifierPlugin.type\n );\n\n for (const modifier of modelModifiers) {\n await modifier.modifyModel(fileModelDefinition);\n }\n\n // Finally, register all plugins\n this.context.plugins.register([new CmsModelPlugin(fileModelDefinition)]);\n\n // Now load the file model registered in the previous step\n const fileModel = await this.getModel(FILE_MODEL_ID);\n\n // Overwrite the original `files` storage ops\n return await CmsFilesStorage.create({\n fileModel,\n cms: this.context.cms,\n security: this.context.security,\n aliases\n });\n }\n\n private async getModel(modelId: string) {\n const model = await this.context.cms.getModel(modelId);\n if (!model) {\n throw new WebinyError({\n code: \"MODEL_NOT_FOUND\",\n message: `Content model \"${modelId}\" was not found!`\n });\n }\n\n return model;\n }\n}\n"],"mappings":"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"}
|
|
@@ -5,8 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.CmsFilesStorage = void 0;
|
|
8
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
9
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
8
|
var _omit = _interopRequireDefault(require("lodash/omit"));
|
|
11
9
|
var _ListFilesWhereProcessor = require("./ListFilesWhereProcessor");
|
|
12
10
|
var _ListTagsWhereProcessor = require("./ListTagsWhereProcessor");
|
|
@@ -16,12 +14,6 @@ class CmsFilesStorage {
|
|
|
16
14
|
return new CmsFilesStorage(params.fileModel, params.cms, params.security, params.aliases);
|
|
17
15
|
}
|
|
18
16
|
constructor(fileModel, cms, security, aliases) {
|
|
19
|
-
(0, _defineProperty2.default)(this, "cms", void 0);
|
|
20
|
-
(0, _defineProperty2.default)(this, "security", void 0);
|
|
21
|
-
(0, _defineProperty2.default)(this, "model", void 0);
|
|
22
|
-
(0, _defineProperty2.default)(this, "aliases", void 0);
|
|
23
|
-
(0, _defineProperty2.default)(this, "filesWhereProcessor", void 0);
|
|
24
|
-
(0, _defineProperty2.default)(this, "tagsWhereProcessor", void 0);
|
|
25
17
|
this.model = fileModel;
|
|
26
18
|
this.aliases = aliases;
|
|
27
19
|
this.cms = cms;
|
|
@@ -33,25 +25,27 @@ class CmsFilesStorage {
|
|
|
33
25
|
tenant,
|
|
34
26
|
locale
|
|
35
27
|
}) {
|
|
36
|
-
return
|
|
28
|
+
return {
|
|
29
|
+
...this.model,
|
|
37
30
|
tenant,
|
|
38
31
|
locale
|
|
39
|
-
}
|
|
32
|
+
};
|
|
40
33
|
}
|
|
41
34
|
async create({
|
|
42
35
|
file
|
|
43
36
|
}) {
|
|
44
|
-
var _file$location;
|
|
45
37
|
const model = this.modelWithContext(file);
|
|
46
|
-
if (!
|
|
47
|
-
file.location =
|
|
38
|
+
if (!file.location?.folderId) {
|
|
39
|
+
file.location = {
|
|
40
|
+
...file.location,
|
|
48
41
|
folderId: _contants.ROOT_FOLDER
|
|
49
|
-
}
|
|
42
|
+
};
|
|
50
43
|
}
|
|
51
44
|
const entry = await this.security.withoutAuthorization(() => {
|
|
52
|
-
return this.cms.createEntry(model,
|
|
45
|
+
return this.cms.createEntry(model, {
|
|
46
|
+
...file,
|
|
53
47
|
wbyAco_location: file.location
|
|
54
|
-
})
|
|
48
|
+
});
|
|
55
49
|
});
|
|
56
50
|
await this.aliases.storeAliases(file);
|
|
57
51
|
return this.getFileFieldValues(entry);
|
|
@@ -125,9 +119,10 @@ class CmsFilesStorage {
|
|
|
125
119
|
const uniqueValues = await this.security.withoutAuthorization(() => {
|
|
126
120
|
return this.cms.getUniqueFieldValues(model, {
|
|
127
121
|
fieldId: "tags",
|
|
128
|
-
where:
|
|
122
|
+
where: {
|
|
123
|
+
...this.tagsWhereProcessor.process(params.where),
|
|
129
124
|
latest: true
|
|
130
|
-
}
|
|
125
|
+
}
|
|
131
126
|
});
|
|
132
127
|
});
|
|
133
128
|
return uniqueValues.map(uv => ({
|
|
@@ -150,24 +145,32 @@ class CmsFilesStorage {
|
|
|
150
145
|
latest: true
|
|
151
146
|
}
|
|
152
147
|
});
|
|
153
|
-
const values = (0, _omit.default)(file, ["id", "
|
|
154
|
-
const updatedEntry = await this.cms.updateEntry(model, entry.id,
|
|
148
|
+
const values = (0, _omit.default)(file, ["id", "tenant", "locale", "webinyVersion"]);
|
|
149
|
+
const updatedEntry = await this.cms.updateEntry(model, entry.id, {
|
|
150
|
+
...values,
|
|
155
151
|
wbyAco_location: values.location ?? entry.location
|
|
156
|
-
})
|
|
152
|
+
});
|
|
157
153
|
await this.aliases.storeAliases(file);
|
|
158
154
|
return this.getFileFieldValues(updatedEntry);
|
|
159
155
|
});
|
|
160
156
|
}
|
|
161
157
|
getFileFieldValues(entry) {
|
|
162
|
-
return
|
|
158
|
+
return {
|
|
163
159
|
id: entry.entryId,
|
|
160
|
+
// We're safe to use entry-level meta fields because we don't use revisions with files.
|
|
164
161
|
createdBy: entry.createdBy,
|
|
162
|
+
modifiedBy: entry.modifiedBy || null,
|
|
163
|
+
savedBy: entry.savedBy,
|
|
165
164
|
createdOn: entry.createdOn,
|
|
165
|
+
modifiedOn: entry.modifiedOn || null,
|
|
166
166
|
savedOn: entry.savedOn,
|
|
167
167
|
locale: entry.locale,
|
|
168
168
|
tenant: entry.tenant,
|
|
169
|
-
webinyVersion: entry.webinyVersion
|
|
170
|
-
|
|
169
|
+
webinyVersion: entry.webinyVersion,
|
|
170
|
+
...entry.values
|
|
171
|
+
};
|
|
171
172
|
}
|
|
172
173
|
}
|
|
173
|
-
exports.CmsFilesStorage = CmsFilesStorage;
|
|
174
|
+
exports.CmsFilesStorage = CmsFilesStorage;
|
|
175
|
+
|
|
176
|
+
//# sourceMappingURL=CmsFilesStorage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CmsFilesStorage","create","params","fileModel","cms","security","aliases","constructor","model","filesWhereProcessor","ListFilesWhereProcessor","tagsWhereProcessor","ListTagsWhereProcessor","modelWithContext","tenant","locale","file","location","folderId","ROOT_FOLDER","entry","withoutAuthorization","createEntry","wbyAco_location","storeAliases","getFileFieldValues","createBatch","files","Promise","all","map","delete","deleteEntry","id","deleteAliases","get","where","getEntry","entryId","latest","list","entries","meta","process","listLatestEntries","after","limit","sort","search","tags","uniqueValues","getUniqueFieldValues","fieldId","uv","tag","value","count","a","b","update","values","omit","updatedEntry","updateEntry","createdBy","createdOn","savedOn","webinyVersion"],"sources":["CmsFilesStorage.ts"],"sourcesContent":["import omit from \"lodash/omit\";\nimport { CmsEntry, CmsModel, HeadlessCms } from \"@webiny/api-headless-cms/types\";\nimport { Security } from \"@webiny/api-security/types\";\nimport {\n File,\n FileManagerAliasesStorageOperations,\n FileManagerFilesStorageOperations,\n FileManagerFilesStorageOperationsCreateBatchParams,\n FileManagerFilesStorageOperationsCreateParams,\n FileManagerFilesStorageOperationsDeleteParams,\n FileManagerFilesStorageOperationsGetParams,\n FileManagerFilesStorageOperationsListParams,\n FileManagerFilesStorageOperationsListResponse,\n FileManagerFilesStorageOperationsTagsParams,\n FileManagerFilesStorageOperationsTagsResponse,\n FileManagerFilesStorageOperationsUpdateParams\n} from \"~/types\";\nimport { ListFilesWhereProcessor } from \"~/cmsFileStorage/ListFilesWhereProcessor\";\nimport { ListTagsWhereProcessor } from \"~/cmsFileStorage/ListTagsWhereProcessor\";\nimport { ROOT_FOLDER } from \"~/contants\";\n\ninterface ModelContext {\n tenant: string;\n locale: string;\n}\n\nexport class CmsFilesStorage implements FileManagerFilesStorageOperations {\n private readonly cms: HeadlessCms;\n private readonly security: Security;\n private readonly model: CmsModel;\n private readonly aliases: FileManagerAliasesStorageOperations;\n private readonly filesWhereProcessor: ListFilesWhereProcessor;\n private readonly tagsWhereProcessor: ListTagsWhereProcessor;\n\n static async create(params: {\n fileModel: CmsModel;\n cms: HeadlessCms;\n security: Security;\n aliases: FileManagerAliasesStorageOperations;\n }) {\n return new CmsFilesStorage(params.fileModel, params.cms, params.security, params.aliases);\n }\n\n private constructor(\n fileModel: CmsModel,\n cms: HeadlessCms,\n security: Security,\n aliases: FileManagerAliasesStorageOperations\n ) {\n this.model = fileModel;\n this.aliases = aliases;\n this.cms = cms;\n this.security = security;\n this.filesWhereProcessor = new ListFilesWhereProcessor();\n this.tagsWhereProcessor = new ListTagsWhereProcessor();\n }\n\n private modelWithContext({ tenant, locale }: ModelContext): CmsModel {\n return { ...this.model, tenant, locale };\n }\n\n async create({ file }: FileManagerFilesStorageOperationsCreateParams): Promise<File> {\n const model = this.modelWithContext(file);\n\n if (!file.location?.folderId) {\n file.location = {\n ...file.location,\n folderId: ROOT_FOLDER\n };\n }\n\n const entry = await this.security.withoutAuthorization(() => {\n return this.cms.createEntry(model, { ...file, wbyAco_location: file.location });\n });\n\n await this.aliases.storeAliases(file);\n\n return this.getFileFieldValues(entry);\n }\n\n async createBatch({\n files\n }: FileManagerFilesStorageOperationsCreateBatchParams): Promise<File[]> {\n return await Promise.all(\n files.map(file => {\n return this.create({ file });\n })\n );\n }\n\n async delete({ file }: FileManagerFilesStorageOperationsDeleteParams): Promise<void> {\n const model = this.modelWithContext(file);\n await this.security.withoutAuthorization(() => {\n return this.cms.deleteEntry(model, file.id);\n });\n\n await this.aliases.deleteAliases(file);\n }\n\n async get({ where }: FileManagerFilesStorageOperationsGetParams): Promise<File | null> {\n const { id, tenant, locale } = where;\n const model = this.modelWithContext({ tenant, locale });\n const entry = await this.security.withoutAuthorization(() => {\n return this.cms.getEntry(model, { where: { entryId: id, latest: true } });\n });\n return entry ? this.getFileFieldValues(entry) : null;\n }\n\n async list(\n params: FileManagerFilesStorageOperationsListParams\n ): Promise<FileManagerFilesStorageOperationsListResponse> {\n const tenant = params.where.tenant;\n const locale = params.where.locale;\n\n const model = this.modelWithContext({ tenant, locale });\n const [entries, meta] = await this.security.withoutAuthorization(() => {\n const where = this.filesWhereProcessor.process(params.where);\n return this.cms.listLatestEntries(model, {\n after: params.after,\n limit: params.limit,\n sort: params.sort,\n where,\n search: params.search\n });\n });\n\n return [entries.map(entry => this.getFileFieldValues(entry)), meta];\n }\n\n async tags(\n params: FileManagerFilesStorageOperationsTagsParams\n ): Promise<FileManagerFilesStorageOperationsTagsResponse[]> {\n const tenant = params.where.tenant;\n const locale = params.where.locale;\n const model = this.modelWithContext({ tenant, locale });\n const uniqueValues = await this.security.withoutAuthorization(() => {\n return this.cms.getUniqueFieldValues(model, {\n fieldId: \"tags\",\n where: {\n ...this.tagsWhereProcessor.process(params.where),\n latest: true\n }\n });\n });\n\n return uniqueValues\n .map(uv => ({\n tag: uv.value,\n count: uv.count\n }))\n .sort((a, b) => {\n return a.tag < b.tag ? -1 : 1;\n })\n .sort((a, b) => {\n return a.count > b.count ? -1 : 1;\n });\n }\n\n async update({ file }: FileManagerFilesStorageOperationsUpdateParams): Promise<File> {\n const model = this.modelWithContext(file);\n\n return await this.security.withoutAuthorization(async () => {\n const entry = await this.cms.getEntry(model, {\n where: { entryId: file.id, latest: true }\n });\n\n const values = omit(file, [\n \"id\",\n \"createdOn\",\n \"createdBy\",\n \"tenant\",\n \"locale\",\n \"webinyVersion\"\n ]);\n\n const updatedEntry = await this.cms.updateEntry(model, entry.id, {\n ...values,\n wbyAco_location: values.location ?? entry.location\n });\n\n await this.aliases.storeAliases(file);\n\n return this.getFileFieldValues(updatedEntry);\n });\n }\n\n private getFileFieldValues(entry: CmsEntry) {\n return {\n id: entry.entryId,\n createdBy: entry.createdBy,\n createdOn: entry.createdOn,\n savedOn: entry.savedOn,\n locale: entry.locale,\n tenant: entry.tenant,\n webinyVersion: entry.webinyVersion,\n ...entry.values\n } as File;\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_omit","_interopRequireDefault","require","_ListFilesWhereProcessor","_ListTagsWhereProcessor","_contants","CmsFilesStorage","create","params","fileModel","cms","security","aliases","constructor","model","filesWhereProcessor","ListFilesWhereProcessor","tagsWhereProcessor","ListTagsWhereProcessor","modelWithContext","tenant","locale","file","location","folderId","ROOT_FOLDER","entry","withoutAuthorization","createEntry","wbyAco_location","storeAliases","getFileFieldValues","createBatch","files","Promise","all","map","delete","deleteEntry","id","deleteAliases","get","where","getEntry","entryId","latest","list","entries","meta","process","listLatestEntries","after","limit","sort","search","tags","uniqueValues","getUniqueFieldValues","fieldId","uv","tag","value","count","a","b","update","values","omit","updatedEntry","updateEntry","createdBy","modifiedBy","savedBy","createdOn","modifiedOn","savedOn","webinyVersion","exports"],"sources":["CmsFilesStorage.ts"],"sourcesContent":["import omit from \"lodash/omit\";\nimport { CmsEntry, CmsModel, HeadlessCms } from \"@webiny/api-headless-cms/types\";\nimport { Security } from \"@webiny/api-security/types\";\nimport {\n File,\n FileManagerAliasesStorageOperations,\n FileManagerFilesStorageOperations,\n FileManagerFilesStorageOperationsCreateBatchParams,\n FileManagerFilesStorageOperationsCreateParams,\n FileManagerFilesStorageOperationsDeleteParams,\n FileManagerFilesStorageOperationsGetParams,\n FileManagerFilesStorageOperationsListParams,\n FileManagerFilesStorageOperationsListResponse,\n FileManagerFilesStorageOperationsTagsParams,\n FileManagerFilesStorageOperationsTagsResponse,\n FileManagerFilesStorageOperationsUpdateParams\n} from \"~/types\";\nimport { ListFilesWhereProcessor } from \"~/cmsFileStorage/ListFilesWhereProcessor\";\nimport { ListTagsWhereProcessor } from \"~/cmsFileStorage/ListTagsWhereProcessor\";\nimport { ROOT_FOLDER } from \"~/contants\";\n\ninterface ModelContext {\n tenant: string;\n locale: string;\n}\n\nexport class CmsFilesStorage implements FileManagerFilesStorageOperations {\n private readonly cms: HeadlessCms;\n private readonly security: Security;\n private readonly model: CmsModel;\n private readonly aliases: FileManagerAliasesStorageOperations;\n private readonly filesWhereProcessor: ListFilesWhereProcessor;\n private readonly tagsWhereProcessor: ListTagsWhereProcessor;\n\n static async create(params: {\n fileModel: CmsModel;\n cms: HeadlessCms;\n security: Security;\n aliases: FileManagerAliasesStorageOperations;\n }) {\n return new CmsFilesStorage(params.fileModel, params.cms, params.security, params.aliases);\n }\n\n private constructor(\n fileModel: CmsModel,\n cms: HeadlessCms,\n security: Security,\n aliases: FileManagerAliasesStorageOperations\n ) {\n this.model = fileModel;\n this.aliases = aliases;\n this.cms = cms;\n this.security = security;\n this.filesWhereProcessor = new ListFilesWhereProcessor();\n this.tagsWhereProcessor = new ListTagsWhereProcessor();\n }\n\n private modelWithContext({ tenant, locale }: ModelContext): CmsModel {\n return { ...this.model, tenant, locale };\n }\n\n async create({ file }: FileManagerFilesStorageOperationsCreateParams): Promise<File> {\n const model = this.modelWithContext(file);\n\n if (!file.location?.folderId) {\n file.location = {\n ...file.location,\n folderId: ROOT_FOLDER\n };\n }\n\n const entry = await this.security.withoutAuthorization(() => {\n return this.cms.createEntry(model, {\n ...file,\n wbyAco_location: file.location\n });\n });\n\n await this.aliases.storeAliases(file);\n\n return this.getFileFieldValues(entry);\n }\n\n async createBatch({\n files\n }: FileManagerFilesStorageOperationsCreateBatchParams): Promise<File[]> {\n return await Promise.all(\n files.map(file => {\n return this.create({ file });\n })\n );\n }\n\n async delete({ file }: FileManagerFilesStorageOperationsDeleteParams): Promise<void> {\n const model = this.modelWithContext(file);\n await this.security.withoutAuthorization(() => {\n return this.cms.deleteEntry(model, file.id);\n });\n\n await this.aliases.deleteAliases(file);\n }\n\n async get({ where }: FileManagerFilesStorageOperationsGetParams): Promise<File | null> {\n const { id, tenant, locale } = where;\n const model = this.modelWithContext({ tenant, locale });\n const entry = await this.security.withoutAuthorization(() => {\n return this.cms.getEntry(model, { where: { entryId: id, latest: true } });\n });\n return entry ? this.getFileFieldValues(entry) : null;\n }\n\n async list(\n params: FileManagerFilesStorageOperationsListParams\n ): Promise<FileManagerFilesStorageOperationsListResponse> {\n const tenant = params.where.tenant;\n const locale = params.where.locale;\n\n const model = this.modelWithContext({ tenant, locale });\n const [entries, meta] = await this.security.withoutAuthorization(() => {\n const where = this.filesWhereProcessor.process(params.where);\n return this.cms.listLatestEntries(model, {\n after: params.after,\n limit: params.limit,\n sort: params.sort,\n where,\n search: params.search\n });\n });\n\n return [entries.map(entry => this.getFileFieldValues(entry)), meta];\n }\n\n async tags(\n params: FileManagerFilesStorageOperationsTagsParams\n ): Promise<FileManagerFilesStorageOperationsTagsResponse[]> {\n const tenant = params.where.tenant;\n const locale = params.where.locale;\n const model = this.modelWithContext({ tenant, locale });\n const uniqueValues = await this.security.withoutAuthorization(() => {\n return this.cms.getUniqueFieldValues(model, {\n fieldId: \"tags\",\n where: {\n ...this.tagsWhereProcessor.process(params.where),\n latest: true\n }\n });\n });\n\n return uniqueValues\n .map(uv => ({\n tag: uv.value,\n count: uv.count\n }))\n .sort((a, b) => {\n return a.tag < b.tag ? -1 : 1;\n })\n .sort((a, b) => {\n return a.count > b.count ? -1 : 1;\n });\n }\n\n async update({ file }: FileManagerFilesStorageOperationsUpdateParams): Promise<File> {\n const model = this.modelWithContext(file);\n\n return await this.security.withoutAuthorization(async () => {\n const entry = await this.cms.getEntry(model, {\n where: { entryId: file.id, latest: true }\n });\n\n const values = omit(file, [\"id\", \"tenant\", \"locale\", \"webinyVersion\"]);\n\n const updatedEntry = await this.cms.updateEntry(model, entry.id, {\n ...values,\n wbyAco_location: values.location ?? entry.location\n });\n\n await this.aliases.storeAliases(file);\n\n return this.getFileFieldValues(updatedEntry);\n });\n }\n\n private getFileFieldValues(entry: CmsEntry) {\n return {\n id: entry.entryId,\n\n // We're safe to use entry-level meta fields because we don't use revisions with files.\n createdBy: entry.createdBy,\n modifiedBy: entry.modifiedBy || null,\n savedBy: entry.savedBy,\n createdOn: entry.createdOn,\n modifiedOn: entry.modifiedOn || null,\n savedOn: entry.savedOn,\n\n locale: entry.locale,\n tenant: entry.tenant,\n webinyVersion: entry.webinyVersion,\n ...entry.values\n } as File;\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,19 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.ListFilesWhereProcessor = void 0;
|
|
8
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
7
|
class ListFilesWhereProcessor {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
});
|
|
16
|
-
}
|
|
8
|
+
skipKeys = ["tenant", "locale"];
|
|
9
|
+
keyMap = {
|
|
10
|
+
id: "entryId",
|
|
11
|
+
id_in: "entryId_in"
|
|
12
|
+
};
|
|
17
13
|
process(input) {
|
|
18
14
|
const where = {
|
|
19
15
|
meta: {
|
|
@@ -32,4 +28,6 @@ class ListFilesWhereProcessor {
|
|
|
32
28
|
return where;
|
|
33
29
|
}
|
|
34
30
|
}
|
|
35
|
-
exports.ListFilesWhereProcessor = ListFilesWhereProcessor;
|
|
31
|
+
exports.ListFilesWhereProcessor = ListFilesWhereProcessor;
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=ListFilesWhereProcessor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ListFilesWhereProcessor","id","id_in","process","input","where","meta","private_not","Object","keys","filter","key","
|
|
1
|
+
{"version":3,"names":["ListFilesWhereProcessor","skipKeys","keyMap","id","id_in","process","input","where","meta","private_not","Object","keys","filter","key","includes","forEach","remappedKey","value","undefined","exports"],"sources":["ListFilesWhereProcessor.ts"],"sourcesContent":["import { CmsEntryListWhere } from \"@webiny/api-headless-cms/types\";\nimport { FileManagerFilesStorageOperationsListParamsWhere } from \"~/types\";\n\ntype StandardFileKey = keyof FileManagerFilesStorageOperationsListParamsWhere;\ntype CmsEntryListWhereKey = keyof CmsEntryListWhere;\n\nexport class ListFilesWhereProcessor {\n private readonly skipKeys = [\"tenant\", \"locale\"];\n private readonly keyMap: Partial<Record<StandardFileKey, CmsEntryListWhereKey>> = {\n id: \"entryId\",\n id_in: \"entryId_in\"\n };\n\n process(input: FileManagerFilesStorageOperationsListParamsWhere): CmsEntryListWhere {\n const where: CmsEntryListWhere = { meta: { private_not: true } };\n\n Object.keys(input)\n .filter(key => !this.skipKeys.includes(key))\n .forEach(key => {\n const remappedKey = this.keyMap[key];\n const value = input[key];\n\n if (remappedKey && value !== undefined) {\n where[remappedKey] = value;\n } else if (value !== undefined) {\n where[key] = value;\n }\n });\n\n return where;\n }\n}\n"],"mappings":";;;;;;AAMO,MAAMA,uBAAuB,CAAC;EAChBC,QAAQ,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC;EAC/BC,MAAM,GAA2D;IAC9EC,EAAE,EAAE,SAAS;IACbC,KAAK,EAAE;EACX,CAAC;EAEDC,OAAOA,CAACC,KAAuD,EAAqB;IAChF,MAAMC,KAAwB,GAAG;MAAEC,IAAI,EAAE;QAAEC,WAAW,EAAE;MAAK;IAAE,CAAC;IAEhEC,MAAM,CAACC,IAAI,CAACL,KAAK,CAAC,CACbM,MAAM,CAACC,GAAG,IAAI,CAAC,IAAI,CAACZ,QAAQ,CAACa,QAAQ,CAACD,GAAG,CAAC,CAAC,CAC3CE,OAAO,CAACF,GAAG,IAAI;MACZ,MAAMG,WAAW,GAAG,IAAI,CAACd,MAAM,CAACW,GAAG,CAAC;MACpC,MAAMI,KAAK,GAAGX,KAAK,CAACO,GAAG,CAAC;MAExB,IAAIG,WAAW,IAAIC,KAAK,KAAKC,SAAS,EAAE;QACpCX,KAAK,CAACS,WAAW,CAAC,GAAGC,KAAK;MAC9B,CAAC,MAAM,IAAIA,KAAK,KAAKC,SAAS,EAAE;QAC5BX,KAAK,CAACM,GAAG,CAAC,GAAGI,KAAK;MACtB;IACJ,CAAC,CAAC;IAEN,OAAOV,KAAK;EAChB;AACJ;AAACY,OAAA,CAAAnB,uBAAA,GAAAA,uBAAA"}
|
|
@@ -1,19 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.ListTagsWhereProcessor = void 0;
|
|
8
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
7
|
class ListTagsWhereProcessor {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
});
|
|
16
|
-
}
|
|
8
|
+
skipKeys = ["tenant", "locale"];
|
|
9
|
+
keyMap = {
|
|
10
|
+
tag_startsWith: "tags_startsWith",
|
|
11
|
+
tag_not_startsWith: "tags_not_startsWith"
|
|
12
|
+
};
|
|
17
13
|
process(input) {
|
|
18
14
|
const where = {
|
|
19
15
|
meta: {
|
|
@@ -32,4 +28,6 @@ class ListTagsWhereProcessor {
|
|
|
32
28
|
return where;
|
|
33
29
|
}
|
|
34
30
|
}
|
|
35
|
-
exports.ListTagsWhereProcessor = ListTagsWhereProcessor;
|
|
31
|
+
exports.ListTagsWhereProcessor = ListTagsWhereProcessor;
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=ListTagsWhereProcessor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ListTagsWhereProcessor","tag_startsWith","tag_not_startsWith","process","input","where","meta","private_not","Object","keys","filter","key","
|
|
1
|
+
{"version":3,"names":["ListTagsWhereProcessor","skipKeys","keyMap","tag_startsWith","tag_not_startsWith","process","input","where","meta","private_not","Object","keys","filter","key","includes","forEach","remappedKey","value","undefined","exports"],"sources":["ListTagsWhereProcessor.ts"],"sourcesContent":["import { CmsEntryListWhere } from \"@webiny/api-headless-cms/types\";\nimport { FileManagerFilesStorageOperationsListParamsWhere } from \"~/types\";\n\ntype StandardFileKey = keyof FileManagerFilesStorageOperationsListParamsWhere;\ntype CmsEntryListWhereKey = keyof CmsEntryListWhere;\n\nexport class ListTagsWhereProcessor {\n private readonly skipKeys = [\"tenant\", \"locale\"];\n private readonly keyMap: Partial<Record<StandardFileKey, CmsEntryListWhereKey>> = {\n tag_startsWith: \"tags_startsWith\",\n tag_not_startsWith: \"tags_not_startsWith\"\n };\n\n process(input: FileManagerFilesStorageOperationsListParamsWhere): CmsEntryListWhere {\n const where: CmsEntryListWhere = { meta: { private_not: true } };\n\n Object.keys(input)\n .filter(key => !this.skipKeys.includes(key))\n .forEach(key => {\n const remappedKey = this.keyMap[key];\n const value = input[key];\n\n if (remappedKey && value !== undefined) {\n where[remappedKey] = value;\n } else if (value !== undefined) {\n where[key] = value;\n }\n });\n\n return where;\n }\n}\n"],"mappings":";;;;;;AAMO,MAAMA,sBAAsB,CAAC;EACfC,QAAQ,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC;EAC/BC,MAAM,GAA2D;IAC9EC,cAAc,EAAE,iBAAiB;IACjCC,kBAAkB,EAAE;EACxB,CAAC;EAEDC,OAAOA,CAACC,KAAuD,EAAqB;IAChF,MAAMC,KAAwB,GAAG;MAAEC,IAAI,EAAE;QAAEC,WAAW,EAAE;MAAK;IAAE,CAAC;IAEhEC,MAAM,CAACC,IAAI,CAACL,KAAK,CAAC,CACbM,MAAM,CAACC,GAAG,IAAI,CAAC,IAAI,CAACZ,QAAQ,CAACa,QAAQ,CAACD,GAAG,CAAC,CAAC,CAC3CE,OAAO,CAACF,GAAG,IAAI;MACZ,MAAMG,WAAW,GAAG,IAAI,CAACd,MAAM,CAACW,GAAG,CAAC;MACpC,MAAMI,KAAK,GAAGX,KAAK,CAACO,GAAG,CAAC;MAExB,IAAIG,WAAW,IAAIC,KAAK,KAAKC,SAAS,EAAE;QACpCX,KAAK,CAACS,WAAW,CAAC,GAAGC,KAAK;MAC9B,CAAC,MAAM,IAAIA,KAAK,KAAKC,SAAS,EAAE;QAC5BX,KAAK,CAACM,GAAG,CAAC,GAAGI,KAAK;MACtB;IACJ,CAAC,CAAC;IAEN,OAAOV,KAAK;EAChB;AACJ;AAACY,OAAA,CAAAnB,sBAAA,GAAAA,sBAAA"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
interface CreateFileManagerPluginsParams {
|
|
2
|
+
withPrivateFiles: boolean;
|
|
3
|
+
}
|
|
4
|
+
export declare const createFileModel: (params: CreateFileManagerPluginsParams) => {
|
|
4
5
|
fileModelDefinition: import("@webiny/api-headless-cms").CmsPrivateModelFull;
|
|
5
6
|
};
|
|
7
|
+
export {};
|
|
@@ -3,32 +3,15 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
7
|
-
var _apiHeadlessCms = require("@webiny/api-headless-cms");
|
|
6
|
+
exports.createFileModel = void 0;
|
|
8
7
|
var _file = require("./file.model");
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const createFileManagerPlugins = () => {
|
|
12
|
-
const groupId = "contentModelGroup_fm";
|
|
13
|
-
const groupPlugin = new _apiHeadlessCms.CmsGroupPlugin({
|
|
14
|
-
id: groupId,
|
|
15
|
-
slug: "fileManager",
|
|
16
|
-
name: "File Manager",
|
|
17
|
-
description: "Group for File Manager models",
|
|
18
|
-
icon: "fas/folder",
|
|
19
|
-
isPrivate: true
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
// const models = modelDefinitions.map(modelDefinition => {
|
|
23
|
-
// return modelFactory({
|
|
24
|
-
// group: cmsGroupPlugin.contentModelGroup,
|
|
25
|
-
// modelDefinition
|
|
26
|
-
// });
|
|
27
|
-
// });
|
|
28
|
-
|
|
8
|
+
const createFileModel = params => {
|
|
29
9
|
return {
|
|
30
|
-
|
|
31
|
-
|
|
10
|
+
fileModelDefinition: (0, _file.createFileModelDefinition)({
|
|
11
|
+
withPrivateFiles: params.withPrivateFiles
|
|
12
|
+
})
|
|
32
13
|
};
|
|
33
14
|
};
|
|
34
|
-
exports.
|
|
15
|
+
exports.createFileModel = createFileModel;
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=createFileManagerPlugins.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_file","require","createFileModel","params","fileModelDefinition","createFileModelDefinition","withPrivateFiles","exports"],"sources":["createFileManagerPlugins.ts"],"sourcesContent":["import { createFileModelDefinition } from \"~/cmsFileStorage/file.model\";\n\ninterface CreateFileManagerPluginsParams {\n withPrivateFiles: boolean;\n}\n\nexport const createFileModel = (params: CreateFileManagerPluginsParams) => {\n return {\n fileModelDefinition: createFileModelDefinition({\n withPrivateFiles: params.withPrivateFiles\n })\n };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAMO,MAAMC,eAAe,GAAIC,MAAsC,IAAK;EACvE,OAAO;IACHC,mBAAmB,EAAE,IAAAC,+BAAyB,EAAC;MAC3CC,gBAAgB,EAAEH,MAAM,CAACG;IAC7B,CAAC;EACL,CAAC;AACL,CAAC;AAACC,OAAA,CAAAL,eAAA,GAAAA,eAAA"}
|
|
@@ -11,6 +11,7 @@ const createModelField = params => {
|
|
|
11
11
|
label,
|
|
12
12
|
fieldId: initialFieldId,
|
|
13
13
|
type,
|
|
14
|
+
tags,
|
|
14
15
|
settings = {},
|
|
15
16
|
listValidation = [],
|
|
16
17
|
validation = [],
|
|
@@ -28,10 +29,13 @@ const createModelField = params => {
|
|
|
28
29
|
label,
|
|
29
30
|
type,
|
|
30
31
|
settings,
|
|
32
|
+
tags,
|
|
31
33
|
listValidation,
|
|
32
34
|
validation,
|
|
33
35
|
multipleValues,
|
|
34
36
|
predefinedValues
|
|
35
37
|
};
|
|
36
38
|
};
|
|
37
|
-
exports.createModelField = createModelField;
|
|
39
|
+
exports.createModelField = createModelField;
|
|
40
|
+
|
|
41
|
+
//# sourceMappingURL=createModelField.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createModelField","params","label","fieldId","initialFieldId","type","settings","listValidation","validation","multipleValues","predefinedValues","values","enabled","camelCase","id","storageId"],"sources":["createModelField.ts"],"sourcesContent":["import { CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport camelCase from \"lodash/camelCase\";\n\nexport interface CreateModelFieldParams\n extends Omit<CmsModelField, \"id\" | \"storageId\" | \"fieldId\"> {\n fieldId?: string;\n}\n\nexport const createModelField = (params: CreateModelFieldParams): CmsModelField => {\n const {\n label,\n fieldId: initialFieldId,\n type,\n settings = {},\n listValidation = [],\n validation = [],\n multipleValues = false,\n predefinedValues = {\n values: [],\n enabled: false\n }\n } = params;\n\n const fieldId = initialFieldId ? camelCase(initialFieldId) : camelCase(label);\n\n return {\n id: fieldId,\n storageId: `${type}@${fieldId}`,\n fieldId,\n label,\n type,\n settings,\n listValidation,\n validation,\n multipleValues,\n predefinedValues\n };\n};\n"],"mappings":";;;;;;;AACA;AAOO,
|
|
1
|
+
{"version":3,"names":["_camelCase","_interopRequireDefault","require","createModelField","params","label","fieldId","initialFieldId","type","tags","settings","listValidation","validation","multipleValues","predefinedValues","values","enabled","camelCase","id","storageId","exports"],"sources":["createModelField.ts"],"sourcesContent":["import { CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport camelCase from \"lodash/camelCase\";\n\nexport interface CreateModelFieldParams\n extends Omit<CmsModelField, \"id\" | \"storageId\" | \"fieldId\"> {\n fieldId?: string;\n}\n\nexport const createModelField = (params: CreateModelFieldParams): CmsModelField => {\n const {\n label,\n fieldId: initialFieldId,\n type,\n tags,\n settings = {},\n listValidation = [],\n validation = [],\n multipleValues = false,\n predefinedValues = {\n values: [],\n enabled: false\n }\n } = params;\n\n const fieldId = initialFieldId ? camelCase(initialFieldId) : camelCase(label);\n\n return {\n id: fieldId,\n storageId: `${type}@${fieldId}`,\n fieldId,\n label,\n type,\n settings,\n tags,\n listValidation,\n validation,\n multipleValues,\n predefinedValues\n };\n};\n"],"mappings":";;;;;;;AACA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AAOO,MAAMC,gBAAgB,GAAIC,MAA8B,IAAoB;EAC/E,MAAM;IACFC,KAAK;IACLC,OAAO,EAAEC,cAAc;IACvBC,IAAI;IACJC,IAAI;IACJC,QAAQ,GAAG,CAAC,CAAC;IACbC,cAAc,GAAG,EAAE;IACnBC,UAAU,GAAG,EAAE;IACfC,cAAc,GAAG,KAAK;IACtBC,gBAAgB,GAAG;MACfC,MAAM,EAAE,EAAE;MACVC,OAAO,EAAE;IACb;EACJ,CAAC,GAAGZ,MAAM;EAEV,MAAME,OAAO,GAAGC,cAAc,GAAG,IAAAU,kBAAS,EAACV,cAAc,CAAC,GAAG,IAAAU,kBAAS,EAACZ,KAAK,CAAC;EAE7E,OAAO;IACHa,EAAE,EAAEZ,OAAO;IACXa,SAAS,EAAG,GAAEX,IAAK,IAAGF,OAAQ,EAAC;IAC/BA,OAAO;IACPD,KAAK;IACLG,IAAI;IACJE,QAAQ;IACRD,IAAI;IACJE,cAAc;IACdC,UAAU;IACVC,cAAc;IACdC;EACJ,CAAC;AACL,CAAC;AAACM,OAAA,CAAAjB,gBAAA,GAAAA,gBAAA"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { CmsPrivateModelFull } from "@webiny/api-headless-cms";
|
|
2
|
-
import { CmsModelGroup } from "@webiny/api-headless-cms/types";
|
|
3
1
|
export declare const FILE_MODEL_ID = "fmFile";
|
|
4
|
-
|
|
2
|
+
interface CreateFileModelDefinitionParams {
|
|
3
|
+
withPrivateFiles: boolean;
|
|
4
|
+
}
|
|
5
|
+
export declare const createFileModelDefinition: (params: CreateFileModelDefinitionParams) => import("@webiny/api-headless-cms").CmsPrivateModelFull;
|
|
6
|
+
export {};
|
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.createFileModelDefinition = exports.FILE_MODEL_ID = void 0;
|
|
7
|
+
var _apiHeadlessCms = require("@webiny/api-headless-cms");
|
|
7
8
|
var _createModelField = require("./createModelField");
|
|
8
9
|
const required = () => {
|
|
9
10
|
return {
|
|
@@ -57,12 +58,45 @@ const metaPrivateField = () => {
|
|
|
57
58
|
type: "boolean"
|
|
58
59
|
});
|
|
59
60
|
};
|
|
61
|
+
const metaOriginalKeyField = () => {
|
|
62
|
+
return (0, _createModelField.createModelField)({
|
|
63
|
+
label: "Original Key",
|
|
64
|
+
type: "text"
|
|
65
|
+
});
|
|
66
|
+
};
|
|
60
67
|
const metaField = () => {
|
|
61
68
|
return (0, _createModelField.createModelField)({
|
|
62
69
|
label: "Meta",
|
|
63
70
|
type: "object",
|
|
64
71
|
settings: {
|
|
65
|
-
fields: [metaPrivateField(), metaWidthField(), metaHeightField()]
|
|
72
|
+
fields: [metaPrivateField(), metaWidthField(), metaHeightField(), metaOriginalKeyField()]
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
};
|
|
76
|
+
const accessControlTypeField = () => {
|
|
77
|
+
return (0, _createModelField.createModelField)({
|
|
78
|
+
label: "Type",
|
|
79
|
+
type: "text",
|
|
80
|
+
predefinedValues: {
|
|
81
|
+
enabled: true,
|
|
82
|
+
values: [{
|
|
83
|
+
label: "Public",
|
|
84
|
+
value: "public",
|
|
85
|
+
selected: true
|
|
86
|
+
}, {
|
|
87
|
+
label: "Private",
|
|
88
|
+
value: "private-authenticated"
|
|
89
|
+
}]
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
};
|
|
93
|
+
const accessControlField = () => {
|
|
94
|
+
return (0, _createModelField.createModelField)({
|
|
95
|
+
label: "Access Control",
|
|
96
|
+
type: "object",
|
|
97
|
+
tags: ["$bulk-edit"],
|
|
98
|
+
settings: {
|
|
99
|
+
fields: [accessControlTypeField()]
|
|
66
100
|
}
|
|
67
101
|
});
|
|
68
102
|
};
|
|
@@ -70,6 +104,7 @@ const tagsField = () => {
|
|
|
70
104
|
return (0, _createModelField.createModelField)({
|
|
71
105
|
label: "Tags",
|
|
72
106
|
type: "text",
|
|
107
|
+
tags: ["$bulk-edit"],
|
|
73
108
|
multipleValues: true,
|
|
74
109
|
validation: [required()]
|
|
75
110
|
});
|
|
@@ -82,37 +117,37 @@ const aliasesField = () => {
|
|
|
82
117
|
validation: [required()]
|
|
83
118
|
});
|
|
84
119
|
};
|
|
120
|
+
const locationField = () => {
|
|
121
|
+
return (0, _createModelField.createModelField)({
|
|
122
|
+
type: "object",
|
|
123
|
+
label: "Location",
|
|
124
|
+
fieldId: "location",
|
|
125
|
+
settings: {
|
|
126
|
+
fields: [(0, _createModelField.createModelField)({
|
|
127
|
+
type: "text",
|
|
128
|
+
fieldId: "folderId",
|
|
129
|
+
label: "Folder ID",
|
|
130
|
+
settings: {
|
|
131
|
+
path: "location.folderId"
|
|
132
|
+
}
|
|
133
|
+
})]
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
};
|
|
85
137
|
const FILE_MODEL_ID = "fmFile";
|
|
86
138
|
exports.FILE_MODEL_ID = FILE_MODEL_ID;
|
|
87
|
-
const createFileModelDefinition =
|
|
88
|
-
|
|
139
|
+
const createFileModelDefinition = params => {
|
|
140
|
+
const fields = [locationField(), nameField(), keyField(), typeField(), sizeField(), metaField(), tagsField(), aliasesField()];
|
|
141
|
+
if (params.withPrivateFiles) {
|
|
142
|
+
fields.push(accessControlField());
|
|
143
|
+
}
|
|
144
|
+
return (0, _apiHeadlessCms.createPrivateModelDefinition)({
|
|
89
145
|
name: "FmFile",
|
|
90
146
|
modelId: FILE_MODEL_ID,
|
|
91
147
|
titleFieldId: "name",
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
id: "location",
|
|
95
|
-
type: "object",
|
|
96
|
-
storageId: "object@location",
|
|
97
|
-
label: "Location",
|
|
98
|
-
fieldId: "location",
|
|
99
|
-
settings: {
|
|
100
|
-
fields: [{
|
|
101
|
-
id: "folderId",
|
|
102
|
-
type: "text",
|
|
103
|
-
fieldId: "folderId",
|
|
104
|
-
label: "Folder ID",
|
|
105
|
-
storageId: "text@folderId",
|
|
106
|
-
settings: {
|
|
107
|
-
path: "location.folderId"
|
|
108
|
-
}
|
|
109
|
-
}]
|
|
110
|
-
}
|
|
111
|
-
}, nameField(), keyField(), typeField(), sizeField(), metaField(), tagsField(), aliasesField()],
|
|
112
|
-
description: "File Manager - File content model",
|
|
113
|
-
isPrivate: true,
|
|
114
|
-
group,
|
|
115
|
-
noValidate: true
|
|
116
|
-
};
|
|
148
|
+
fields
|
|
149
|
+
});
|
|
117
150
|
};
|
|
118
|
-
exports.createFileModelDefinition = createFileModelDefinition;
|
|
151
|
+
exports.createFileModelDefinition = createFileModelDefinition;
|
|
152
|
+
|
|
153
|
+
//# sourceMappingURL=file.model.js.map
|