@webiny/api-file-manager 0.0.0-mt-2 → 0.0.0-unstable.06b2ede40f
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.d.ts +13 -0
- package/FileManagerContextSetup.js +115 -0
- package/FileManagerContextSetup.js.map +1 -0
- package/README.md +1 -1
- package/cmsFileStorage/CmsFilesStorage.d.ts +27 -0
- package/cmsFileStorage/CmsFilesStorage.js +164 -0
- package/cmsFileStorage/CmsFilesStorage.js.map +1 -0
- package/cmsFileStorage/ListFilesWhereProcessor.d.ts +7 -0
- package/cmsFileStorage/ListFilesWhereProcessor.js +33 -0
- package/cmsFileStorage/ListFilesWhereProcessor.js.map +1 -0
- package/cmsFileStorage/ListTagsWhereProcessor.d.ts +7 -0
- package/cmsFileStorage/ListTagsWhereProcessor.js +33 -0
- package/cmsFileStorage/ListTagsWhereProcessor.js.map +1 -0
- package/cmsFileStorage/file.model.d.ts +6 -0
- package/cmsFileStorage/file.model.js +158 -0
- package/cmsFileStorage/file.model.js.map +1 -0
- package/contants.d.ts +1 -0
- package/contants.js +9 -0
- package/contants.js.map +1 -0
- package/createFileManager/files.crud.d.ts +3 -0
- package/createFileManager/files.crud.js +328 -0
- package/createFileManager/files.crud.js.map +1 -0
- package/createFileManager/index.d.ts +3 -0
- package/createFileManager/index.js +23 -0
- package/createFileManager/index.js.map +1 -0
- package/createFileManager/permissions/FilesPermissions.d.ts +4 -0
- package/createFileManager/permissions/FilesPermissions.js +11 -0
- package/createFileManager/permissions/FilesPermissions.js.map +1 -0
- package/createFileManager/permissions/SettingsPermissions.d.ts +4 -0
- package/createFileManager/permissions/SettingsPermissions.js +11 -0
- package/createFileManager/permissions/SettingsPermissions.js.map +1 -0
- package/createFileManager/settings.crud.d.ts +3 -0
- package/createFileManager/settings.crud.js +117 -0
- package/createFileManager/settings.crud.js.map +1 -0
- package/createFileManager/system.crud.d.ts +3 -0
- package/createFileManager/system.crud.js +88 -0
- package/createFileManager/system.crud.js.map +1 -0
- package/createFileManager/types.d.ts +16 -0
- package/createFileManager/types.js +7 -0
- package/createFileManager/types.js.map +1 -0
- package/delivery/AssetDelivery/AliasAssetRequestResolver.d.ts +11 -0
- package/delivery/AssetDelivery/AliasAssetRequestResolver.js +74 -0
- package/delivery/AssetDelivery/AliasAssetRequestResolver.js.map +1 -0
- package/delivery/AssetDelivery/Asset.d.ts +32 -0
- package/delivery/AssetDelivery/Asset.js +69 -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 +25 -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 +37 -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 +6 -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 +6 -0
- package/delivery/AssetDelivery/privateFiles/PrivateCache.js +28 -0
- package/delivery/AssetDelivery/privateFiles/PrivateCache.js.map +1 -0
- package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.d.ts +8 -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 +63 -0
- package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.js.map +1 -0
- package/delivery/AssetDelivery/privateFiles/PublicCache.d.ts +6 -0
- package/delivery/AssetDelivery/privateFiles/PublicCache.js +28 -0
- package/delivery/AssetDelivery/privateFiles/PublicCache.js.map +1 -0
- package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.d.ts +7 -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 +7 -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 +18 -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 +26 -0
- package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.js.map +1 -0
- package/delivery/index.d.ts +17 -0
- package/delivery/index.js +194 -0
- package/delivery/index.js.map +1 -0
- package/delivery/setupAssetDelivery.d.ts +6 -0
- package/delivery/setupAssetDelivery.js +128 -0
- package/delivery/setupAssetDelivery.js.map +1 -0
- package/enterprise/applyThreatScanning.d.ts +2 -0
- package/enterprise/applyThreatScanning.js +20 -0
- package/enterprise/applyThreatScanning.js.map +1 -0
- package/graphql/baseSchema.d.ts +3 -0
- package/graphql/baseSchema.js +121 -0
- package/graphql/baseSchema.js.map +1 -0
- package/graphql/createFilesTypeDefs.d.ts +7 -0
- package/graphql/createFilesTypeDefs.js +184 -0
- package/graphql/createFilesTypeDefs.js.map +1 -0
- package/graphql/filesSchema.d.ts +4 -0
- package/graphql/filesSchema.js +89 -0
- package/graphql/filesSchema.js.map +1 -0
- 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 +4 -0
- package/graphql/index.js +55 -0
- package/graphql/index.js.map +1 -0
- package/graphql/utils.d.ts +11 -0
- package/graphql/utils.js +24 -0
- package/graphql/utils.js.map +1 -0
- package/handlers/manage/imageManager.d.ts +14 -0
- package/handlers/manage/imageManager.js +75 -0
- package/handlers/manage/imageManager.js.map +1 -0
- package/handlers/manage/index.d.ts +5 -3
- package/handlers/manage/index.js +48 -59
- package/handlers/manage/index.js.map +1 -0
- package/handlers/{transform/utils.d.ts → manage/legacyUtils.d.ts} +2 -2
- package/handlers/{transform/utils.js → manage/legacyUtils.js} +7 -19
- package/handlers/manage/legacyUtils.js.map +1 -0
- package/handlers/manage/utils.d.ts +12 -0
- package/handlers/manage/utils.js +34 -0
- package/handlers/manage/utils.js.map +1 -0
- package/handlers/types.d.ts +8 -0
- package/handlers/types.js +7 -0
- package/handlers/types.js.map +1 -0
- package/handlers/utils/getEnvironment.js +2 -2
- package/handlers/utils/getEnvironment.js.map +1 -0
- package/handlers/utils/getObjectParams.d.ts +3 -4
- package/handlers/utils/getObjectParams.js +3 -7
- package/handlers/utils/getObjectParams.js.map +1 -0
- package/handlers/utils/index.d.ts +0 -1
- package/handlers/utils/index.js +3 -12
- package/handlers/utils/index.js.map +1 -0
- package/index.d.ts +10 -0
- package/index.js +76 -0
- package/index.js.map +1 -0
- package/modelModifier/CmsModelModifier.d.ts +26 -0
- package/modelModifier/CmsModelModifier.js +62 -0
- package/modelModifier/CmsModelModifier.js.map +1 -0
- package/package.json +26 -36
- package/plugins/FilePhysicalStoragePlugin.d.ts +22 -0
- package/plugins/{definitions/FilePhysicalStoragePlugin.js → FilePhysicalStoragePlugin.js} +4 -15
- package/plugins/FilePhysicalStoragePlugin.js.map +1 -0
- package/plugins/{definitions/FileStorageTransformPlugin.d.ts → FileStorageTransformPlugin.d.ts} +10 -10
- package/plugins/{definitions/FileStorageTransformPlugin.js → FileStorageTransformPlugin.js} +4 -16
- package/plugins/FileStorageTransformPlugin.js.map +1 -0
- package/plugins/index.d.ts +2 -2
- package/plugins/index.js +23 -18
- package/plugins/index.js.map +1 -0
- package/storage/FileStorage.d.ts +34 -0
- package/storage/FileStorage.js +90 -0
- package/storage/FileStorage.js.map +1 -0
- package/types/file.d.ts +49 -0
- package/types/file.js +7 -0
- package/types/file.js.map +1 -0
- package/types/file.lifecycle.d.ts +44 -0
- package/types/file.lifecycle.js +7 -0
- package/types/file.lifecycle.js.map +1 -0
- package/types.d.ts +104 -89
- package/types.js +25 -1
- package/types.js.map +1 -0
- package/handlers/download/index.d.ts +0 -3
- package/handlers/download/index.js +0 -125
- package/handlers/transform/index.d.ts +0 -3
- package/handlers/transform/index.js +0 -96
- package/handlers/transform/loaders/imageLoader.d.ts +0 -13
- package/handlers/transform/loaders/imageLoader.js +0 -106
- package/handlers/transform/loaders/index.d.ts +0 -13
- package/handlers/transform/loaders/index.js +0 -13
- package/handlers/transform/loaders/sanitizeImageTransformations.d.ts +0 -7
- package/handlers/transform/loaders/sanitizeImageTransformations.js +0 -51
- package/handlers/transform/managers/imageManager.d.ts +0 -9
- package/handlers/transform/managers/imageManager.js +0 -55
- package/handlers/transform/managers/index.d.ts +0 -9
- package/handlers/transform/managers/index.js +0 -13
- package/handlers/transform/optimizeImage.d.ts +0 -2
- package/handlers/transform/optimizeImage.js +0 -45
- package/handlers/transform/transformImage.d.ts +0 -9
- package/handlers/transform/transformImage.js +0 -30
- package/handlers/utils/createHandler.d.ts +0 -24
- package/handlers/utils/createHandler.js +0 -68
- package/plugins/crud/files/validation.d.ts +0 -3
- package/plugins/crud/files/validation.js +0 -41
- package/plugins/crud/files.crud.d.ts +0 -4
- package/plugins/crud/files.crud.js +0 -427
- package/plugins/crud/settings.crud.d.ts +0 -5
- package/plugins/crud/settings.crud.js +0 -115
- package/plugins/crud/system.crud.d.ts +0 -4
- package/plugins/crud/system.crud.js +0 -145
- package/plugins/crud/utils/checkBasePermissions.d.ts +0 -5
- package/plugins/crud/utils/checkBasePermissions.js +0 -33
- package/plugins/crud/utils/createFileModel.d.ts +0 -2
- package/plugins/crud/utils/createFileModel.js +0 -64
- package/plugins/crud/utils/lifecycleEvents.d.ts +0 -6
- package/plugins/crud/utils/lifecycleEvents.js +0 -33
- package/plugins/definitions/FilePhysicalStoragePlugin.d.ts +0 -22
- package/plugins/definitions/FilePlugin.d.ts +0 -133
- package/plugins/definitions/FilePlugin.js +0 -64
- package/plugins/definitions/FilesStorageOperationsProviderPlugin.d.ts +0 -9
- package/plugins/definitions/FilesStorageOperationsProviderPlugin.js +0 -17
- package/plugins/definitions/InstallationPlugin.d.ts +0 -19
- package/plugins/definitions/InstallationPlugin.js +0 -40
- package/plugins/definitions/SettingsStorageOperationsProviderPlugin.d.ts +0 -9
- package/plugins/definitions/SettingsStorageOperationsProviderPlugin.js +0 -17
- package/plugins/definitions/SystemStorageOperationsProviderPlugin.d.ts +0 -9
- package/plugins/definitions/SystemStorageOperationsProviderPlugin.js +0 -17
- package/plugins/graphql.d.ts +0 -4
- package/plugins/graphql.js +0 -274
- package/plugins/storage/FileStorage.d.ts +0 -31
- package/plugins/storage/FileStorage.js +0 -95
- package/plugins/storage/index.d.ts +0 -4
- package/plugins/storage/index.js +0 -22
- package/utils.d.ts +0 -4
- package/utils.js +0 -16
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_apiHeadlessCms","require","required","name","message","nameField","createModelField","label","type","validation","keyField","typeField","sizeField","metaWidthField","metaHeightField","metaPrivateField","metaOriginalKeyField","metaField","settings","fields","accessControlTypeField","predefinedValues","enabled","values","value","selected","accessControlField","tags","tagsField","multipleValues","aliasesField","locationField","fieldId","path","FILE_MODEL_ID","exports","createFileModel","params","withPrivateFiles","push","createPrivateModel","modelId","titleFieldId","authorization","permissions"],"sources":["file.model.ts"],"sourcesContent":["import { createPrivateModel, createModelField } from \"@webiny/api-headless-cms\";\n\nconst required = () => {\n return {\n name: \"required\",\n message: \"Value is required.\"\n };\n};\n\nconst nameField = () => {\n return createModelField({\n label: \"Name\",\n type: \"text\",\n validation: [required()]\n });\n};\n\nconst keyField = () => {\n return createModelField({\n label: \"Key\",\n type: \"text\",\n validation: [required()]\n });\n};\n\nconst typeField = () => {\n return createModelField({\n label: \"Type\",\n type: \"text\",\n validation: [required()]\n });\n};\n\nconst sizeField = () => {\n return createModelField({\n label: \"Size\",\n type: \"number\",\n validation: [required()]\n });\n};\n\nconst metaWidthField = () => {\n return createModelField({\n label: \"Width\",\n type: \"number\"\n });\n};\n\nconst metaHeightField = () => {\n return createModelField({\n label: \"Height\",\n type: \"number\"\n });\n};\n\nconst metaPrivateField = () => {\n return createModelField({\n label: \"Private\",\n type: \"boolean\"\n });\n};\n\nconst metaOriginalKeyField = () => {\n return createModelField({\n label: \"Original Key\",\n type: \"text\"\n });\n};\n\nconst metaField = () => {\n return createModelField({\n label: \"Meta\",\n type: \"object\",\n settings: {\n fields: [\n metaPrivateField(),\n metaWidthField(),\n metaHeightField(),\n metaOriginalKeyField()\n ]\n }\n });\n};\n\nconst accessControlTypeField = () => {\n return createModelField({\n label: \"Type\",\n type: \"text\",\n predefinedValues: {\n enabled: true,\n values: [\n {\n label: \"Public\",\n value: \"public\",\n selected: true\n },\n {\n label: \"Private\",\n value: \"private-authenticated\"\n }\n ]\n }\n });\n};\n\nconst accessControlField = () => {\n return createModelField({\n label: \"Access Control\",\n type: \"object\",\n tags: [\"$bulk-edit\"],\n settings: {\n fields: [accessControlTypeField()]\n }\n });\n};\n\nconst tagsField = () => {\n return createModelField({\n label: \"Tags\",\n type: \"text\",\n tags: [\"$bulk-edit\"],\n multipleValues: true,\n validation: [required()]\n });\n};\n\nconst aliasesField = () => {\n return createModelField({\n label: \"Aliases\",\n type: \"text\",\n multipleValues: true,\n validation: [required()]\n });\n};\n\nconst locationField = () => {\n return createModelField({\n type: \"object\",\n label: \"Location\",\n fieldId: \"location\",\n settings: {\n fields: [\n createModelField({\n type: \"text\",\n fieldId: \"folderId\",\n label: \"Folder ID\",\n settings: {\n path: \"location.folderId\"\n }\n })\n ]\n }\n });\n};\n\nexport const FILE_MODEL_ID = \"fmFile\";\n\ninterface CreateFileModelDefinitionParams {\n withPrivateFiles: boolean;\n}\n\nexport const createFileModel = (params: CreateFileModelDefinitionParams) => {\n const fields = [\n locationField(),\n nameField(),\n keyField(),\n typeField(),\n sizeField(),\n metaField(),\n tagsField(),\n aliasesField()\n ];\n\n if (params.withPrivateFiles) {\n fields.push(accessControlField());\n }\n\n return createPrivateModel({\n name: \"FmFile\",\n modelId: FILE_MODEL_ID,\n titleFieldId: \"name\",\n authorization: {\n // Disables base permission checks, but leaves FLP checks enabled.\n permissions: false\n\n // We're leaving FLP enabled (no need to set `flp: true`).\n // flp: true\n },\n fields\n });\n};\n"],"mappings":"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","ignoreList":[]}
|
package/contants.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const ROOT_FOLDER = "root";
|
package/contants.js
ADDED
package/contants.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ROOT_FOLDER","exports"],"sources":["contants.ts"],"sourcesContent":["export const ROOT_FOLDER = \"root\";\n"],"mappings":";;;;;;AAAO,MAAMA,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,MAAM","ignoreList":[]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { FilesCRUD } from "../types";
|
|
2
|
+
import type { FileManagerConfig } from "./types";
|
|
3
|
+
export declare const createFilesCrud: (config: Pick<FileManagerConfig, "storageOperations" | "filesPermissions" | "getLocaleCode" | "getTenantId" | "getIdentity" | "WEBINY_VERSION">) => FilesCRUD;
|
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.createFilesCrud = void 0;
|
|
8
|
+
var _handlerGraphql = require("@webiny/handler-graphql");
|
|
9
|
+
var _pubsub = require("@webiny/pubsub");
|
|
10
|
+
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
11
|
+
var _contants = require("../contants");
|
|
12
|
+
var _apiSecurity = require("@webiny/api-security");
|
|
13
|
+
var _date = require("@webiny/api-headless-cms/utils/date");
|
|
14
|
+
var _identity = require("@webiny/api-headless-cms/utils/identity");
|
|
15
|
+
const createFilesCrud = config => {
|
|
16
|
+
const {
|
|
17
|
+
storageOperations,
|
|
18
|
+
filesPermissions,
|
|
19
|
+
getLocaleCode,
|
|
20
|
+
getTenantId,
|
|
21
|
+
getIdentity,
|
|
22
|
+
WEBINY_VERSION
|
|
23
|
+
} = config;
|
|
24
|
+
return {
|
|
25
|
+
onFileBeforeCreate: (0, _pubsub.createTopic)("fileManager.onFileBeforeCreate"),
|
|
26
|
+
onFileAfterCreate: (0, _pubsub.createTopic)("fileManager.onFileAfterCreate"),
|
|
27
|
+
onFileBeforeBatchCreate: (0, _pubsub.createTopic)("fileManager.onFileBeforeBatchCreate"),
|
|
28
|
+
onFileAfterBatchCreate: (0, _pubsub.createTopic)("fileManager.onFileAfterBatchCreate"),
|
|
29
|
+
onFileBeforeUpdate: (0, _pubsub.createTopic)("fileManager.onFileBeforeUpdate"),
|
|
30
|
+
onFileAfterUpdate: (0, _pubsub.createTopic)("fileManager.onFileAfterUpdate"),
|
|
31
|
+
onFileBeforeDelete: (0, _pubsub.createTopic)("fileManager.onFileBeforeDelete"),
|
|
32
|
+
onFileAfterDelete: (0, _pubsub.createTopic)("fileManager.onFileAfterDelete"),
|
|
33
|
+
async getFile(id) {
|
|
34
|
+
await filesPermissions.ensure({
|
|
35
|
+
rwd: "r"
|
|
36
|
+
});
|
|
37
|
+
const file = await storageOperations.files.get({
|
|
38
|
+
where: {
|
|
39
|
+
id,
|
|
40
|
+
tenant: getTenantId(),
|
|
41
|
+
locale: getLocaleCode()
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
if (!file) {
|
|
45
|
+
throw new _handlerGraphql.NotFoundError(`File with id "${id}" does not exists.`);
|
|
46
|
+
}
|
|
47
|
+
await filesPermissions.ensure({
|
|
48
|
+
owns: file.createdBy
|
|
49
|
+
});
|
|
50
|
+
return file;
|
|
51
|
+
},
|
|
52
|
+
async createFile(input, meta) {
|
|
53
|
+
await filesPermissions.ensure({
|
|
54
|
+
rwd: "w"
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
// Extract ID from file key
|
|
58
|
+
const [id] = input.key.split("/");
|
|
59
|
+
const currentDateTime = new Date();
|
|
60
|
+
const currentIdentity = getIdentity();
|
|
61
|
+
const file = {
|
|
62
|
+
...input,
|
|
63
|
+
tags: Array.isArray(input.tags) ? input.tags : [],
|
|
64
|
+
aliases: Array.isArray(input.aliases) ? input.aliases : [],
|
|
65
|
+
id: input.id || id,
|
|
66
|
+
location: {
|
|
67
|
+
folderId: input.location?.folderId ?? _contants.ROOT_FOLDER
|
|
68
|
+
},
|
|
69
|
+
meta: {
|
|
70
|
+
private: false,
|
|
71
|
+
...(input.meta || {})
|
|
72
|
+
},
|
|
73
|
+
createdOn: (0, _date.getDate)(input.createdOn, currentDateTime),
|
|
74
|
+
modifiedOn: (0, _date.getDate)(input.modifiedOn, null),
|
|
75
|
+
savedOn: (0, _date.getDate)(input.savedOn, currentDateTime),
|
|
76
|
+
createdBy: (0, _identity.getIdentity)(input.createdBy, currentIdentity),
|
|
77
|
+
modifiedBy: (0, _identity.getIdentity)(input.modifiedBy, null),
|
|
78
|
+
savedBy: (0, _identity.getIdentity)(input.savedBy, currentIdentity),
|
|
79
|
+
tenant: getTenantId(),
|
|
80
|
+
locale: getLocaleCode(),
|
|
81
|
+
webinyVersion: WEBINY_VERSION
|
|
82
|
+
};
|
|
83
|
+
try {
|
|
84
|
+
await this.onFileBeforeCreate.publish({
|
|
85
|
+
file,
|
|
86
|
+
meta
|
|
87
|
+
});
|
|
88
|
+
const result = await storageOperations.files.create({
|
|
89
|
+
file
|
|
90
|
+
});
|
|
91
|
+
await this.onFileAfterCreate.publish({
|
|
92
|
+
file,
|
|
93
|
+
meta
|
|
94
|
+
});
|
|
95
|
+
return result;
|
|
96
|
+
} catch (ex) {
|
|
97
|
+
// If a `NotAuthorizedError` error was thrown, then we just want to rethrow it.
|
|
98
|
+
if (ex instanceof _apiSecurity.NotAuthorizedError) {
|
|
99
|
+
throw ex;
|
|
100
|
+
}
|
|
101
|
+
throw new _error.default(ex.message || "Could not create a file.", ex.code || "CREATE_FILE_ERROR", {
|
|
102
|
+
...(ex.data || {}),
|
|
103
|
+
file
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
async updateFile(id, input) {
|
|
108
|
+
await filesPermissions.ensure({
|
|
109
|
+
rwd: "w"
|
|
110
|
+
});
|
|
111
|
+
const original = await storageOperations.files.get({
|
|
112
|
+
where: {
|
|
113
|
+
id,
|
|
114
|
+
tenant: getTenantId(),
|
|
115
|
+
locale: getLocaleCode()
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
if (!original) {
|
|
119
|
+
throw new _handlerGraphql.NotFoundError(`File with id "${id}" does not exists.`);
|
|
120
|
+
}
|
|
121
|
+
await filesPermissions.ensure({
|
|
122
|
+
owns: original.createdBy
|
|
123
|
+
});
|
|
124
|
+
const currentDateTime = new Date();
|
|
125
|
+
const currentIdentity = getIdentity();
|
|
126
|
+
const file = {
|
|
127
|
+
...original,
|
|
128
|
+
...input,
|
|
129
|
+
createdOn: (0, _date.getDate)(input.createdOn, original.createdOn),
|
|
130
|
+
modifiedOn: (0, _date.getDate)(input.modifiedOn, currentDateTime),
|
|
131
|
+
savedOn: (0, _date.getDate)(input.savedOn, currentDateTime),
|
|
132
|
+
createdBy: (0, _identity.getIdentity)(input.createdBy, original.createdBy),
|
|
133
|
+
modifiedBy: (0, _identity.getIdentity)(input.modifiedBy, currentIdentity),
|
|
134
|
+
savedBy: (0, _identity.getIdentity)(input.savedBy, currentIdentity),
|
|
135
|
+
tags: Array.isArray(input.tags) ? input.tags : Array.isArray(original.tags) ? original.tags : [],
|
|
136
|
+
aliases: Array.isArray(input.aliases) ? input.aliases : Array.isArray(original.aliases) ? original.aliases : [],
|
|
137
|
+
id: original.id,
|
|
138
|
+
webinyVersion: WEBINY_VERSION
|
|
139
|
+
};
|
|
140
|
+
try {
|
|
141
|
+
await this.onFileBeforeUpdate.publish({
|
|
142
|
+
original,
|
|
143
|
+
file,
|
|
144
|
+
input
|
|
145
|
+
});
|
|
146
|
+
const result = await storageOperations.files.update({
|
|
147
|
+
original,
|
|
148
|
+
file
|
|
149
|
+
});
|
|
150
|
+
await this.onFileAfterUpdate.publish({
|
|
151
|
+
original,
|
|
152
|
+
file,
|
|
153
|
+
input
|
|
154
|
+
});
|
|
155
|
+
return result;
|
|
156
|
+
} catch (ex) {
|
|
157
|
+
throw new _error.default(ex.message || "Could not update a file.", ex.code || "UPDATE_FILE_ERROR", {
|
|
158
|
+
...(ex.data || {}),
|
|
159
|
+
original,
|
|
160
|
+
file
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
async deleteFile(id) {
|
|
165
|
+
await filesPermissions.ensure({
|
|
166
|
+
rwd: "d"
|
|
167
|
+
});
|
|
168
|
+
const file = await storageOperations.files.get({
|
|
169
|
+
where: {
|
|
170
|
+
id,
|
|
171
|
+
tenant: getTenantId(),
|
|
172
|
+
locale: getLocaleCode()
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
if (!file) {
|
|
176
|
+
throw new _handlerGraphql.NotFoundError(`File with id "${id}" does not exists.`);
|
|
177
|
+
}
|
|
178
|
+
await filesPermissions.ensure({
|
|
179
|
+
owns: file.createdBy
|
|
180
|
+
});
|
|
181
|
+
try {
|
|
182
|
+
await this.onFileBeforeDelete.publish({
|
|
183
|
+
file
|
|
184
|
+
});
|
|
185
|
+
await storageOperations.files.delete({
|
|
186
|
+
file
|
|
187
|
+
});
|
|
188
|
+
await this.onFileAfterDelete.publish({
|
|
189
|
+
file
|
|
190
|
+
});
|
|
191
|
+
} catch (ex) {
|
|
192
|
+
throw new _error.default(ex.message || "Could not delete a file.", ex.code || "DELETE_FILE_ERROR", {
|
|
193
|
+
...(ex.data || {}),
|
|
194
|
+
id,
|
|
195
|
+
file
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
return true;
|
|
199
|
+
},
|
|
200
|
+
async createFilesInBatch(inputs, meta) {
|
|
201
|
+
await filesPermissions.ensure({
|
|
202
|
+
rwd: "w"
|
|
203
|
+
});
|
|
204
|
+
const tenant = getTenantId();
|
|
205
|
+
const locale = getLocaleCode();
|
|
206
|
+
const currentIdentity = getIdentity();
|
|
207
|
+
const currentDateTime = new Date();
|
|
208
|
+
const files = inputs.map(input => {
|
|
209
|
+
return {
|
|
210
|
+
...input,
|
|
211
|
+
tags: Array.isArray(input.tags) ? input.tags : [],
|
|
212
|
+
aliases: Array.isArray(input.aliases) ? input.aliases : [],
|
|
213
|
+
meta: {
|
|
214
|
+
private: false,
|
|
215
|
+
...(input.meta || {})
|
|
216
|
+
},
|
|
217
|
+
location: {
|
|
218
|
+
folderId: input.location?.folderId ?? _contants.ROOT_FOLDER
|
|
219
|
+
},
|
|
220
|
+
createdOn: (0, _date.getDate)(currentDateTime),
|
|
221
|
+
modifiedOn: null,
|
|
222
|
+
savedOn: (0, _date.getDate)(currentDateTime),
|
|
223
|
+
createdBy: (0, _identity.getIdentity)(currentIdentity),
|
|
224
|
+
modifiedBy: null,
|
|
225
|
+
savedBy: (0, _identity.getIdentity)(currentIdentity),
|
|
226
|
+
tenant,
|
|
227
|
+
locale,
|
|
228
|
+
webinyVersion: WEBINY_VERSION
|
|
229
|
+
};
|
|
230
|
+
});
|
|
231
|
+
try {
|
|
232
|
+
await this.onFileBeforeBatchCreate.publish({
|
|
233
|
+
files,
|
|
234
|
+
meta
|
|
235
|
+
});
|
|
236
|
+
const results = await storageOperations.files.createBatch({
|
|
237
|
+
files
|
|
238
|
+
});
|
|
239
|
+
await this.onFileAfterBatchCreate.publish({
|
|
240
|
+
files,
|
|
241
|
+
meta
|
|
242
|
+
});
|
|
243
|
+
return results;
|
|
244
|
+
} catch (ex) {
|
|
245
|
+
throw new _error.default(ex.message || "Could not create a batch of files.", ex.code || "CREATE_FILES_ERROR", {
|
|
246
|
+
...(ex.data || {}),
|
|
247
|
+
files
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
},
|
|
251
|
+
async listFiles(params = {}) {
|
|
252
|
+
await filesPermissions.ensure({
|
|
253
|
+
rwd: "r"
|
|
254
|
+
});
|
|
255
|
+
const {
|
|
256
|
+
limit = 40,
|
|
257
|
+
after = null,
|
|
258
|
+
where: initialWhere,
|
|
259
|
+
sort: initialSort,
|
|
260
|
+
search
|
|
261
|
+
} = params;
|
|
262
|
+
const where = {
|
|
263
|
+
...{
|
|
264
|
+
meta: {
|
|
265
|
+
private_not: true
|
|
266
|
+
},
|
|
267
|
+
...initialWhere
|
|
268
|
+
},
|
|
269
|
+
locale: getLocaleCode(),
|
|
270
|
+
tenant: getTenantId()
|
|
271
|
+
};
|
|
272
|
+
|
|
273
|
+
/**
|
|
274
|
+
* Always override the createdBy received from the user, if any.
|
|
275
|
+
*/
|
|
276
|
+
if (await filesPermissions.canAccessOnlyOwnRecords()) {
|
|
277
|
+
const identity = getIdentity();
|
|
278
|
+
where.createdBy = identity.id;
|
|
279
|
+
}
|
|
280
|
+
const sort = Array.isArray(initialSort) && initialSort.length > 0 ? initialSort : ["id_DESC"];
|
|
281
|
+
try {
|
|
282
|
+
return await storageOperations.files.list({
|
|
283
|
+
where,
|
|
284
|
+
after,
|
|
285
|
+
limit,
|
|
286
|
+
sort,
|
|
287
|
+
search
|
|
288
|
+
});
|
|
289
|
+
} catch (ex) {
|
|
290
|
+
throw new _error.default(ex.message || "Could not list files by given parameters.", ex.code || "FILE_TAG_SEARCH_ERROR", {
|
|
291
|
+
...(ex.data || {}),
|
|
292
|
+
where,
|
|
293
|
+
after,
|
|
294
|
+
limit,
|
|
295
|
+
sort
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
},
|
|
299
|
+
async listTags({
|
|
300
|
+
where: initialWhere,
|
|
301
|
+
after,
|
|
302
|
+
limit
|
|
303
|
+
}) {
|
|
304
|
+
await filesPermissions.ensure();
|
|
305
|
+
const where = {
|
|
306
|
+
...initialWhere,
|
|
307
|
+
tenant: getTenantId(),
|
|
308
|
+
locale: getLocaleCode()
|
|
309
|
+
};
|
|
310
|
+
const params = {
|
|
311
|
+
where,
|
|
312
|
+
limit: limit || 1000000,
|
|
313
|
+
after
|
|
314
|
+
};
|
|
315
|
+
try {
|
|
316
|
+
return await storageOperations.files.tags(params);
|
|
317
|
+
} catch (ex) {
|
|
318
|
+
throw new _error.default(ex.message || "Could not search for tags.", ex.code || "FILE_TAG_SEARCH_ERROR", {
|
|
319
|
+
...(ex.data || {}),
|
|
320
|
+
params
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
};
|
|
325
|
+
};
|
|
326
|
+
exports.createFilesCrud = createFilesCrud;
|
|
327
|
+
|
|
328
|
+
//# sourceMappingURL=files.crud.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_handlerGraphql","require","_pubsub","_error","_interopRequireDefault","_contants","_apiSecurity","_date","_identity","createFilesCrud","config","storageOperations","filesPermissions","getLocaleCode","getTenantId","getIdentity","WEBINY_VERSION","onFileBeforeCreate","createTopic","onFileAfterCreate","onFileBeforeBatchCreate","onFileAfterBatchCreate","onFileBeforeUpdate","onFileAfterUpdate","onFileBeforeDelete","onFileAfterDelete","getFile","id","ensure","rwd","file","files","get","where","tenant","locale","NotFoundError","owns","createdBy","createFile","input","meta","key","split","currentDateTime","Date","currentIdentity","tags","Array","isArray","aliases","location","folderId","ROOT_FOLDER","private","createdOn","getDate","modifiedOn","savedOn","utilsGetIdentity","modifiedBy","savedBy","webinyVersion","publish","result","create","ex","NotAuthorizedError","WebinyError","message","code","data","updateFile","original","update","deleteFile","delete","createFilesInBatch","inputs","map","results","createBatch","listFiles","params","limit","after","initialWhere","sort","initialSort","search","private_not","canAccessOnlyOwnRecords","identity","length","list","listTags","exports"],"sources":["files.crud.ts"],"sourcesContent":["import { NotFoundError } from \"@webiny/handler-graphql\";\nimport { createTopic } from \"@webiny/pubsub\";\nimport WebinyError from \"@webiny/error\";\nimport type {\n File,\n FileManagerFilesStorageOperationsListParamsWhere,\n FileManagerFilesStorageOperationsTagsParamsWhere,\n FilesCRUD,\n FilesListOpts\n} from \"~/types\";\nimport type { FileManagerConfig } from \"~/createFileManager/types\";\nimport { ROOT_FOLDER } from \"~/contants\";\nimport { NotAuthorizedError } from \"@webiny/api-security\";\nimport { getDate } from \"@webiny/api-headless-cms/utils/date\";\nimport { getIdentity as utilsGetIdentity } from \"@webiny/api-headless-cms/utils/identity\";\nimport type { CmsEntryListSort } from \"@webiny/api-headless-cms/types\";\n\nexport const createFilesCrud = (\n config: Pick<\n FileManagerConfig,\n | \"storageOperations\"\n | \"filesPermissions\"\n | \"getLocaleCode\"\n | \"getTenantId\"\n | \"getIdentity\"\n | \"WEBINY_VERSION\"\n >\n): FilesCRUD => {\n const {\n storageOperations,\n filesPermissions,\n getLocaleCode,\n getTenantId,\n getIdentity,\n WEBINY_VERSION\n } = config;\n\n return {\n onFileBeforeCreate: createTopic(\"fileManager.onFileBeforeCreate\"),\n onFileAfterCreate: createTopic(\"fileManager.onFileAfterCreate\"),\n onFileBeforeBatchCreate: createTopic(\"fileManager.onFileBeforeBatchCreate\"),\n onFileAfterBatchCreate: createTopic(\"fileManager.onFileAfterBatchCreate\"),\n onFileBeforeUpdate: createTopic(\"fileManager.onFileBeforeUpdate\"),\n onFileAfterUpdate: createTopic(\"fileManager.onFileAfterUpdate\"),\n onFileBeforeDelete: createTopic(\"fileManager.onFileBeforeDelete\"),\n onFileAfterDelete: createTopic(\"fileManager.onFileAfterDelete\"),\n async getFile(id: string) {\n await filesPermissions.ensure({ rwd: \"r\" });\n\n const file = await storageOperations.files.get({\n where: {\n id,\n tenant: getTenantId(),\n locale: getLocaleCode()\n }\n });\n\n if (!file) {\n throw new NotFoundError(`File with id \"${id}\" does not exists.`);\n }\n\n await filesPermissions.ensure({ owns: file.createdBy });\n\n return file;\n },\n async createFile(input, meta) {\n await filesPermissions.ensure({ rwd: \"w\" });\n\n // Extract ID from file key\n const [id] = input.key.split(\"/\");\n\n const currentDateTime = new Date();\n const currentIdentity = getIdentity();\n\n const file: File = {\n ...input,\n tags: Array.isArray(input.tags) ? input.tags : [],\n aliases: Array.isArray(input.aliases) ? input.aliases : [],\n id: input.id || id,\n location: {\n folderId: input.location?.folderId ?? ROOT_FOLDER\n },\n meta: {\n private: false,\n ...(input.meta || {})\n },\n\n createdOn: getDate(input.createdOn, currentDateTime),\n modifiedOn: getDate(input.modifiedOn, null),\n savedOn: getDate(input.savedOn, currentDateTime),\n createdBy: utilsGetIdentity(input.createdBy, currentIdentity),\n modifiedBy: utilsGetIdentity(input.modifiedBy, null),\n savedBy: utilsGetIdentity(input.savedBy, currentIdentity),\n\n tenant: getTenantId(),\n locale: getLocaleCode(),\n webinyVersion: WEBINY_VERSION\n };\n\n try {\n await this.onFileBeforeCreate.publish({ file, meta });\n\n const result = await storageOperations.files.create({ file });\n\n await this.onFileAfterCreate.publish({ file, meta });\n return result;\n } catch (ex) {\n // If a `NotAuthorizedError` error was thrown, then we just want to rethrow it.\n if (ex instanceof NotAuthorizedError) {\n throw ex;\n }\n\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 await filesPermissions.ensure({ rwd: \"w\" });\n\n const original = await storageOperations.files.get({\n where: {\n id,\n tenant: getTenantId(),\n locale: getLocaleCode()\n }\n });\n\n if (!original) {\n throw new NotFoundError(`File with id \"${id}\" does not exists.`);\n }\n\n await filesPermissions.ensure({ owns: original.createdBy });\n\n const currentDateTime = new Date();\n const currentIdentity = getIdentity();\n\n const file: File = {\n ...original,\n ...input,\n\n createdOn: getDate(input.createdOn, original.createdOn),\n modifiedOn: getDate(input.modifiedOn, currentDateTime),\n savedOn: getDate(input.savedOn, currentDateTime),\n createdBy: utilsGetIdentity(input.createdBy, original.createdBy),\n modifiedBy: utilsGetIdentity(input.modifiedBy, currentIdentity),\n savedBy: utilsGetIdentity(input.savedBy, currentIdentity),\n\n tags: Array.isArray(input.tags)\n ? input.tags\n : Array.isArray(original.tags)\n ? original.tags\n : [],\n aliases: Array.isArray(input.aliases)\n ? input.aliases\n : Array.isArray(original.aliases)\n ? original.aliases\n : [],\n id: original.id,\n webinyVersion: WEBINY_VERSION\n };\n\n try {\n await this.onFileBeforeUpdate.publish({\n original,\n file,\n input\n });\n\n const result = await storageOperations.files.update({\n original,\n file\n });\n\n await this.onFileAfterUpdate.publish({\n original,\n file,\n input\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 await filesPermissions.ensure({ rwd: \"d\" });\n\n const file = await storageOperations.files.get({\n where: {\n id,\n tenant: getTenantId(),\n locale: getLocaleCode()\n }\n });\n\n if (!file) {\n throw new NotFoundError(`File with id \"${id}\" does not exists.`);\n }\n\n await filesPermissions.ensure({ owns: file.createdBy });\n\n try {\n await this.onFileBeforeDelete.publish({ file });\n\n await storageOperations.files.delete({\n file\n });\n\n await this.onFileAfterDelete.publish({ file });\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, meta) {\n await filesPermissions.ensure({ rwd: \"w\" });\n\n const tenant = getTenantId();\n const locale = getLocaleCode();\n\n const currentIdentity = getIdentity();\n const currentDateTime = new Date();\n\n const files: File[] = inputs.map(input => {\n return {\n ...input,\n tags: Array.isArray(input.tags) ? input.tags : [],\n aliases: Array.isArray(input.aliases) ? input.aliases : [],\n meta: {\n private: false,\n ...(input.meta || {})\n },\n location: {\n folderId: input.location?.folderId ?? ROOT_FOLDER\n },\n\n createdOn: getDate(currentDateTime),\n modifiedOn: null,\n savedOn: getDate(currentDateTime),\n createdBy: utilsGetIdentity(currentIdentity),\n modifiedBy: null,\n savedBy: utilsGetIdentity(currentIdentity),\n\n tenant,\n locale,\n webinyVersion: WEBINY_VERSION\n };\n });\n\n try {\n await this.onFileBeforeBatchCreate.publish({ files, meta });\n const results = await storageOperations.files.createBatch({\n files\n });\n await this.onFileAfterBatchCreate.publish({ files, meta });\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 await filesPermissions.ensure({ rwd: \"r\" });\n\n const {\n limit = 40,\n after = null,\n where: initialWhere,\n sort: initialSort,\n search\n } = params;\n\n const where: FileManagerFilesStorageOperationsListParamsWhere = {\n ...{ meta: { private_not: true }, ...initialWhere },\n locale: getLocaleCode(),\n tenant: getTenantId()\n };\n\n /**\n * Always override the createdBy received from the user, if any.\n */\n if (await filesPermissions.canAccessOnlyOwnRecords()) {\n const identity = getIdentity();\n where.createdBy = identity.id;\n }\n\n const sort: CmsEntryListSort =\n Array.isArray(initialSort) && initialSort.length > 0 ? initialSort : [\"id_DESC\"];\n try {\n return await storageOperations.files.list({\n where,\n after,\n limit,\n sort,\n search\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 filesPermissions.ensure();\n\n const where: FileManagerFilesStorageOperationsTagsParamsWhere = {\n ...initialWhere,\n tenant: getTenantId(),\n locale: getLocaleCode()\n };\n\n const params = {\n where,\n limit: limit || 1000000,\n after\n };\n\n try {\n return await storageOperations.files.tags(params);\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"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createFileManager = void 0;
|
|
7
|
+
var _files = require("./files.crud");
|
|
8
|
+
var _settings = require("./settings.crud");
|
|
9
|
+
var _system = require("./system.crud");
|
|
10
|
+
const createFileManager = config => {
|
|
11
|
+
const filesCrud = (0, _files.createFilesCrud)(config);
|
|
12
|
+
const settingsCrud = (0, _settings.createSettingsCrud)(config);
|
|
13
|
+
const systemCrud = (0, _system.createSystemCrud)(config);
|
|
14
|
+
return {
|
|
15
|
+
...filesCrud,
|
|
16
|
+
...settingsCrud,
|
|
17
|
+
...systemCrud,
|
|
18
|
+
storage: config.storage
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
exports.createFileManager = createFileManager;
|
|
22
|
+
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_files","require","_settings","_system","createFileManager","config","filesCrud","createFilesCrud","settingsCrud","createSettingsCrud","systemCrud","createSystemCrud","storage","exports"],"sources":["index.ts"],"sourcesContent":["import type { FileManagerContextObject } from \"~/types\";\nimport { createFilesCrud } from \"~/createFileManager/files.crud\";\nimport { createSettingsCrud } from \"~/createFileManager/settings.crud\";\nimport { createSystemCrud } from \"~/createFileManager/system.crud\";\nimport type { FileManagerConfig } from \"~/createFileManager/types\";\n\nexport const createFileManager = (config: FileManagerConfig): FileManagerContextObject => {\n const filesCrud = createFilesCrud(config);\n const settingsCrud = createSettingsCrud(config);\n const systemCrud = createSystemCrud(config);\n\n return {\n ...filesCrud,\n ...settingsCrud,\n ...systemCrud,\n storage: config.storage\n };\n};\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAGO,MAAMG,iBAAiB,GAAIC,MAAyB,IAA+B;EACtF,MAAMC,SAAS,GAAG,IAAAC,sBAAe,EAACF,MAAM,CAAC;EACzC,MAAMG,YAAY,GAAG,IAAAC,4BAAkB,EAACJ,MAAM,CAAC;EAC/C,MAAMK,UAAU,GAAG,IAAAC,wBAAgB,EAACN,MAAM,CAAC;EAE3C,OAAO;IACH,GAAGC,SAAS;IACZ,GAAGE,YAAY;IACf,GAAGE,UAAU;IACbE,OAAO,EAAEP,MAAM,CAACO;EACpB,CAAC;AACL,CAAC;AAACC,OAAA,CAAAT,iBAAA,GAAAA,iBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.FilesPermissions = void 0;
|
|
7
|
+
var _AppPermissions = require("@webiny/api-security/utils/AppPermissions");
|
|
8
|
+
class FilesPermissions extends _AppPermissions.AppPermissions {}
|
|
9
|
+
exports.FilesPermissions = FilesPermissions;
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=FilesPermissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_AppPermissions","require","FilesPermissions","AppPermissions","exports"],"sources":["FilesPermissions.ts"],"sourcesContent":["import { AppPermissions } from \"@webiny/api-security/utils/AppPermissions\";\nimport type { FilePermission } from \"~/types\";\n\nexport class FilesPermissions extends AppPermissions<FilePermission> {}\n"],"mappings":";;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AAGO,MAAMC,gBAAgB,SAASC,8BAAc,CAAiB;AAAEC,OAAA,CAAAF,gBAAA,GAAAA,gBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.SettingsPermissions = void 0;
|
|
7
|
+
var _AppPermissions = require("@webiny/api-security/utils/AppPermissions");
|
|
8
|
+
class SettingsPermissions extends _AppPermissions.AppPermissions {}
|
|
9
|
+
exports.SettingsPermissions = SettingsPermissions;
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=SettingsPermissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_AppPermissions","require","SettingsPermissions","AppPermissions","exports"],"sources":["SettingsPermissions.ts"],"sourcesContent":["import { AppPermissions } from \"@webiny/api-security/utils/AppPermissions\";\nimport type { SettingsPermission } from \"~/types\";\n\nexport class SettingsPermissions extends AppPermissions<SettingsPermission> {}\n"],"mappings":";;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AAGO,MAAMC,mBAAmB,SAASC,8BAAc,CAAqB;AAAEC,OAAA,CAAAF,mBAAA,GAAAA,mBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { SettingsCRUD } from "../types";
|
|
2
|
+
import type { FileManagerConfig } from "./types";
|
|
3
|
+
export declare const createSettingsCrud: ({ storageOperations, getTenantId, settingsPermissions }: Pick<FileManagerConfig, "storageOperations" | "getTenantId" | "settingsPermissions">) => SettingsCRUD;
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.createSettingsCrud = void 0;
|
|
8
|
+
var _pubsub = require("@webiny/pubsub");
|
|
9
|
+
var _zod = _interopRequireDefault(require("zod"));
|
|
10
|
+
var _utils = require("@webiny/utils");
|
|
11
|
+
const MIN_FILE_SIZE = 0;
|
|
12
|
+
const MAX_FILE_SIZE = 10737418240;
|
|
13
|
+
const uploadMinFileSizeValidation = _zod.default.number().min(MIN_FILE_SIZE, {
|
|
14
|
+
message: `Value needs to be greater than or equal to ${MIN_FILE_SIZE}.`
|
|
15
|
+
}).optional();
|
|
16
|
+
const uploadMaxFileSizeValidation = _zod.default.number().max(MAX_FILE_SIZE, {
|
|
17
|
+
message: `Value needs to be lesser than or equal to ${MAX_FILE_SIZE}.`
|
|
18
|
+
}).optional();
|
|
19
|
+
const createDataModelValidation = _zod.default.object({
|
|
20
|
+
uploadMinFileSize: uploadMinFileSizeValidation.default(MIN_FILE_SIZE),
|
|
21
|
+
uploadMaxFileSize: uploadMaxFileSizeValidation.default(MAX_FILE_SIZE),
|
|
22
|
+
srcPrefix: _zod.default.string().optional().default("/files/").transform(value => {
|
|
23
|
+
if (typeof value === "string") {
|
|
24
|
+
return value.endsWith("/") ? value : value + "/";
|
|
25
|
+
}
|
|
26
|
+
return value;
|
|
27
|
+
})
|
|
28
|
+
});
|
|
29
|
+
const updateDataModelValidation = _zod.default.object({
|
|
30
|
+
uploadMinFileSize: uploadMinFileSizeValidation,
|
|
31
|
+
uploadMaxFileSize: uploadMaxFileSizeValidation,
|
|
32
|
+
srcPrefix: _zod.default.string().optional().transform(value => {
|
|
33
|
+
if (typeof value === "string") {
|
|
34
|
+
return value.endsWith("/") ? value : value + "/";
|
|
35
|
+
}
|
|
36
|
+
return value;
|
|
37
|
+
})
|
|
38
|
+
});
|
|
39
|
+
const createSettingsCrud = ({
|
|
40
|
+
storageOperations,
|
|
41
|
+
getTenantId,
|
|
42
|
+
settingsPermissions
|
|
43
|
+
}) => {
|
|
44
|
+
return {
|
|
45
|
+
onSettingsBeforeUpdate: (0, _pubsub.createTopic)("fileManager.onSettingsBeforeUpdate"),
|
|
46
|
+
onSettingsAfterUpdate: (0, _pubsub.createTopic)("fileManager.onSettingsAfterUpdate"),
|
|
47
|
+
async getSettings() {
|
|
48
|
+
return storageOperations.settings.get({
|
|
49
|
+
tenant: getTenantId()
|
|
50
|
+
});
|
|
51
|
+
},
|
|
52
|
+
async createSettings(data) {
|
|
53
|
+
await settingsPermissions.ensure();
|
|
54
|
+
const results = createDataModelValidation.safeParse(data);
|
|
55
|
+
if (!results.success) {
|
|
56
|
+
throw (0, _utils.createZodError)(results.error);
|
|
57
|
+
}
|
|
58
|
+
return storageOperations.settings.create({
|
|
59
|
+
data: {
|
|
60
|
+
...results.data,
|
|
61
|
+
tenant: getTenantId()
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
},
|
|
65
|
+
async updateSettings(data) {
|
|
66
|
+
await settingsPermissions.ensure();
|
|
67
|
+
const results = updateDataModelValidation.safeParse(data);
|
|
68
|
+
if (!results.success) {
|
|
69
|
+
throw (0, _utils.createZodError)(results.error);
|
|
70
|
+
}
|
|
71
|
+
const original = await storageOperations.settings.get({
|
|
72
|
+
tenant: getTenantId()
|
|
73
|
+
});
|
|
74
|
+
const newSettings = {
|
|
75
|
+
...(original || {})
|
|
76
|
+
};
|
|
77
|
+
for (const key in results.data) {
|
|
78
|
+
// @ts-expect-error
|
|
79
|
+
const value = results.data[key];
|
|
80
|
+
if (value === undefined) {
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
// @ts-expect-error
|
|
84
|
+
newSettings[key] = value;
|
|
85
|
+
}
|
|
86
|
+
const settings = {
|
|
87
|
+
...newSettings,
|
|
88
|
+
tenant: getTenantId()
|
|
89
|
+
};
|
|
90
|
+
await this.onSettingsBeforeUpdate.publish({
|
|
91
|
+
input: data,
|
|
92
|
+
original,
|
|
93
|
+
settings
|
|
94
|
+
});
|
|
95
|
+
const result = await storageOperations.settings.update({
|
|
96
|
+
original,
|
|
97
|
+
data: settings
|
|
98
|
+
});
|
|
99
|
+
await this.onSettingsAfterUpdate.publish({
|
|
100
|
+
input: data,
|
|
101
|
+
original,
|
|
102
|
+
settings: result
|
|
103
|
+
});
|
|
104
|
+
return result;
|
|
105
|
+
},
|
|
106
|
+
async deleteSettings() {
|
|
107
|
+
await settingsPermissions.ensure();
|
|
108
|
+
await storageOperations.settings.delete({
|
|
109
|
+
tenant: getTenantId()
|
|
110
|
+
});
|
|
111
|
+
return true;
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
};
|
|
115
|
+
exports.createSettingsCrud = createSettingsCrud;
|
|
116
|
+
|
|
117
|
+
//# sourceMappingURL=settings.crud.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_pubsub","require","_zod","_interopRequireDefault","_utils","MIN_FILE_SIZE","MAX_FILE_SIZE","uploadMinFileSizeValidation","zod","number","min","message","optional","uploadMaxFileSizeValidation","max","createDataModelValidation","object","uploadMinFileSize","default","uploadMaxFileSize","srcPrefix","string","transform","value","endsWith","updateDataModelValidation","createSettingsCrud","storageOperations","getTenantId","settingsPermissions","onSettingsBeforeUpdate","createTopic","onSettingsAfterUpdate","getSettings","settings","get","tenant","createSettings","data","ensure","results","safeParse","success","createZodError","error","create","updateSettings","original","newSettings","key","undefined","publish","input","result","update","deleteSettings","delete","exports"],"sources":["settings.crud.ts"],"sourcesContent":["import { createTopic } from \"@webiny/pubsub\";\nimport type { FileManagerSettings, SettingsCRUD } from \"~/types\";\nimport type { FileManagerConfig } from \"./types\";\nimport zod from \"zod\";\nimport { createZodError } from \"@webiny/utils\";\n\nconst MIN_FILE_SIZE = 0;\nconst MAX_FILE_SIZE = 10737418240;\n\nconst uploadMinFileSizeValidation = zod\n .number()\n .min(MIN_FILE_SIZE, {\n message: `Value needs to be greater than or equal to ${MIN_FILE_SIZE}.`\n })\n .optional();\nconst uploadMaxFileSizeValidation = zod\n .number()\n .max(MAX_FILE_SIZE, {\n message: `Value needs to be lesser than or equal to ${MAX_FILE_SIZE}.`\n })\n .optional();\n\nconst createDataModelValidation = zod.object({\n uploadMinFileSize: uploadMinFileSizeValidation.default(MIN_FILE_SIZE),\n uploadMaxFileSize: uploadMaxFileSizeValidation.default(MAX_FILE_SIZE),\n srcPrefix: zod\n .string()\n .optional()\n .default(\"/files/\")\n .transform(value => {\n if (typeof value === \"string\") {\n return value.endsWith(\"/\") ? value : value + \"/\";\n }\n return value;\n })\n});\n\nconst updateDataModelValidation = zod.object({\n uploadMinFileSize: uploadMinFileSizeValidation,\n uploadMaxFileSize: uploadMaxFileSizeValidation,\n srcPrefix: zod\n .string()\n .optional()\n .transform(value => {\n if (typeof value === \"string\") {\n return value.endsWith(\"/\") ? value : value + \"/\";\n }\n return value;\n })\n});\n\nexport const createSettingsCrud = ({\n storageOperations,\n getTenantId,\n settingsPermissions\n}: Pick<\n FileManagerConfig,\n \"storageOperations\" | \"getTenantId\" | \"settingsPermissions\"\n>): SettingsCRUD => {\n return {\n onSettingsBeforeUpdate: createTopic(\"fileManager.onSettingsBeforeUpdate\"),\n onSettingsAfterUpdate: createTopic(\"fileManager.onSettingsAfterUpdate\"),\n async getSettings() {\n return storageOperations.settings.get({ tenant: getTenantId() });\n },\n async createSettings(data) {\n await settingsPermissions.ensure();\n\n const results = createDataModelValidation.safeParse(data);\n if (!results.success) {\n throw createZodError(results.error);\n }\n\n return storageOperations.settings.create({\n data: {\n ...results.data,\n tenant: getTenantId()\n }\n });\n },\n async updateSettings(data) {\n await settingsPermissions.ensure();\n const results = updateDataModelValidation.safeParse(data);\n if (!results.success) {\n throw createZodError(results.error);\n }\n\n const original = (await storageOperations.settings.get({\n tenant: getTenantId()\n })) as FileManagerSettings;\n const newSettings: FileManagerSettings = {\n ...(original || {})\n };\n\n for (const key in results.data) {\n // @ts-expect-error\n const value = results.data[key];\n if (value === undefined) {\n continue;\n }\n // @ts-expect-error\n newSettings[key] = value;\n }\n\n const settings: FileManagerSettings = {\n ...newSettings,\n tenant: getTenantId()\n };\n\n await this.onSettingsBeforeUpdate.publish({\n input: data,\n original,\n settings\n });\n const result = await storageOperations.settings.update({\n original,\n data: settings\n });\n await this.onSettingsAfterUpdate.publish({\n input: data,\n original,\n settings: result\n });\n\n return result;\n },\n async deleteSettings() {\n await settingsPermissions.ensure();\n await storageOperations.settings.delete({ tenant: getTenantId() });\n\n return true;\n }\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { SystemCRUD } from "../types";
|
|
2
|
+
import type { FileManagerConfig } from "./types";
|
|
3
|
+
export declare const createSystemCrud: ({ storageOperations, getTenantId, getIdentity, WEBINY_VERSION }: Pick<FileManagerConfig, "storageOperations" | "getTenantId" | "getIdentity" | "WEBINY_VERSION">) => SystemCRUD;
|