@webiny/api-file-manager 0.0.0-unstable.7be00a75a9 → 0.0.0-unstable.7c2def32a7
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/FileManagerAppFeature.d.ts +5 -0
- package/FileManagerAppFeature.js +21 -0
- package/FileManagerAppFeature.js.map +1 -0
- package/delivery/AssetDelivery/AssetRequest.d.ts +1 -1
- package/delivery/AssetDelivery/AssetRequest.js.map +1 -1
- package/delivery/AssetDeliveryRoute.d.ts +24 -0
- package/delivery/AssetDeliveryRoute.js +69 -0
- package/delivery/AssetDeliveryRoute.js.map +1 -0
- package/delivery/setupAssetDelivery.d.ts +1 -1
- package/delivery/setupAssetDelivery.js +1 -66
- package/delivery/setupAssetDelivery.js.map +1 -1
- package/domain/file/abstractions.d.ts +13 -5
- package/domain/file/abstractions.js +2 -2
- package/domain/file/abstractions.js.map +1 -1
- package/domain/file/file.model.d.ts +3 -3
- package/domain/file/file.model.js +12 -7
- package/domain/file/file.model.js.map +1 -1
- package/domain/settings/validation.js +3 -10
- package/domain/settings/validation.js.map +1 -1
- package/exports/api/file-manager/assetDelivery.d.ts +10 -0
- package/exports/api/file-manager/assetDelivery.js +8 -0
- package/exports/api/file-manager/file.d.ts +2 -1
- package/exports/api/file-manager/file.js +2 -1
- package/features/FileManagerFeature.js +6 -0
- package/features/FileManagerFeature.js.map +1 -1
- package/features/assetDelivery/Asset/Asset.d.ts +8 -0
- package/features/assetDelivery/Asset/Asset.js +14 -0
- package/features/assetDelivery/Asset/Asset.js.map +1 -0
- package/features/assetDelivery/Asset/abstractions.d.ts +10 -0
- package/features/assetDelivery/Asset/abstractions.js +5 -0
- package/features/assetDelivery/Asset/abstractions.js.map +1 -0
- package/features/assetDelivery/Asset/index.d.ts +1 -0
- package/features/assetDelivery/Asset/index.js +1 -0
- package/features/assetDelivery/FilesAssetRequestResolver.js +2 -2
- package/features/assetDelivery/FilesAssetRequestResolver.js.map +1 -1
- package/features/assetDelivery/ObjectKey/ObjectKey.d.ts +8 -0
- package/features/assetDelivery/ObjectKey/ObjectKey.js +28 -0
- package/features/assetDelivery/ObjectKey/ObjectKey.js.map +1 -0
- package/features/assetDelivery/ObjectKey/abstractions.d.ts +12 -0
- package/features/assetDelivery/ObjectKey/abstractions.js +5 -0
- package/features/assetDelivery/ObjectKey/abstractions.js.map +1 -0
- package/features/assetDelivery/ObjectKey/index.d.ts +1 -0
- package/features/assetDelivery/ObjectKey/index.js +1 -0
- package/features/assetDelivery/StreamAssetReply/StreamAssetReply.d.ts +8 -0
- package/features/assetDelivery/StreamAssetReply/StreamAssetReply.js +22 -0
- package/features/assetDelivery/StreamAssetReply/StreamAssetReply.js.map +1 -0
- package/features/assetDelivery/StreamAssetReply/abstractions.d.ts +11 -0
- package/features/assetDelivery/StreamAssetReply/abstractions.js +5 -0
- package/features/assetDelivery/StreamAssetReply/abstractions.js.map +1 -0
- package/features/assetDelivery/StreamAssetReply/index.d.ts +1 -0
- package/features/assetDelivery/StreamAssetReply/index.js +1 -0
- package/features/assetDelivery/abstractions/AssetType.d.ts +17 -0
- package/features/assetDelivery/abstractions/AssetType.js +5 -0
- package/features/assetDelivery/abstractions/AssetType.js.map +1 -0
- package/features/assetDelivery/abstractions.d.ts +23 -12
- package/features/assetDelivery/abstractions.js.map +1 -1
- package/features/assetDelivery/assetTypes/image/AssetKeyGenerator.d.ts +12 -0
- package/features/assetDelivery/assetTypes/image/AssetKeyGenerator.js +30 -0
- package/features/assetDelivery/assetTypes/image/AssetKeyGenerator.js.map +1 -0
- package/features/assetDelivery/assetTypes/image/ImageAssetType.d.ts +9 -0
- package/features/assetDelivery/assetTypes/image/ImageAssetType.js +18 -0
- package/features/assetDelivery/assetTypes/image/ImageAssetType.js.map +1 -0
- package/features/assetDelivery/assetTypes/image/ImageAssetTypeHandler.d.ts +5 -0
- package/features/assetDelivery/assetTypes/image/ImageAssetTypeHandler.js +5 -0
- package/features/assetDelivery/assetTypes/image/ImageAssetTypeHandler.js.map +1 -0
- package/features/assetDelivery/assetTypes/image/SharpTransformer.d.ts +18 -0
- package/features/assetDelivery/assetTypes/image/SharpTransformer.js +47 -0
- package/features/assetDelivery/assetTypes/image/SharpTransformer.js.map +1 -0
- package/features/assetDelivery/assetTypes/image/WidthCollection.d.ts +8 -0
- package/features/assetDelivery/assetTypes/image/WidthCollection.js +22 -0
- package/features/assetDelivery/assetTypes/image/WidthCollection.js.map +1 -0
- package/features/assetDelivery/assetTypes/image/imageFormat.d.ts +26 -0
- package/features/assetDelivery/assetTypes/image/imageFormat.js +51 -0
- package/features/assetDelivery/assetTypes/image/imageFormat.js.map +1 -0
- package/features/assetDelivery/assetTypes/image/imageTypes.d.ts +39 -0
- package/features/assetDelivery/assetTypes/image/imageTypes.js +0 -0
- package/features/assetDelivery/assetTypes/image/index.d.ts +5 -0
- package/features/assetDelivery/assetTypes/image/index.js +4 -0
- package/features/assetDelivery/assetTypes/image/normalizeImageOptions.d.ts +6 -0
- package/features/assetDelivery/assetTypes/image/normalizeImageOptions.js +56 -0
- package/features/assetDelivery/assetTypes/image/normalizeImageOptions.js.map +1 -0
- package/features/assetDelivery/assetTypes/image/transformImage.d.ts +59 -0
- package/features/assetDelivery/assetTypes/image/transformImage.js +146 -0
- package/features/assetDelivery/assetTypes/image/transformImage.js.map +1 -0
- package/features/assetDelivery/assetTypes/image/utils.d.ts +26 -0
- package/features/assetDelivery/assetTypes/image/utils.js +47 -0
- package/features/assetDelivery/assetTypes/image/utils.js.map +1 -0
- package/features/assetDelivery/feature.js +13 -7
- package/features/assetDelivery/feature.js.map +1 -1
- package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.js +2 -2
- package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.js.map +1 -1
- package/features/assetDelivery/privateFiles/PrivateFilesAssetProcessor.js.map +1 -1
- package/features/assetDelivery/transformation/CallableContentsReader.d.ts +11 -0
- package/features/assetDelivery/transformation/CallableContentsReader.js +14 -0
- package/features/assetDelivery/transformation/CallableContentsReader.js.map +1 -0
- package/features/assetDelivery/transformation/TransformationAssetProcessor.d.ts +4 -6
- package/features/assetDelivery/transformation/TransformationAssetProcessor.js +13 -11
- package/features/assetDelivery/transformation/TransformationAssetProcessor.js.map +1 -1
- package/features/assetDelivery/transformation/index.d.ts +5 -0
- package/features/assetDelivery/transformation/index.js +4 -0
- package/features/extractMetadata/ExtractMetadataHandler.d.ts +11 -0
- package/features/extractMetadata/ExtractMetadataHandler.js +25 -0
- package/features/extractMetadata/ExtractMetadataHandler.js.map +1 -0
- package/features/extractMetadata/ExtractMetadataInput.d.ts +3 -0
- package/features/extractMetadata/ExtractMetadataInput.js +0 -0
- package/features/file/CreateFile/CreateFileRepository.d.ts +3 -3
- package/features/file/CreateFile/CreateFileRepository.js +6 -5
- package/features/file/CreateFile/CreateFileRepository.js.map +1 -1
- package/features/file/DeleteFile/DeleteFileRepository.d.ts +3 -3
- package/features/file/DeleteFile/DeleteFileRepository.js +6 -5
- package/features/file/DeleteFile/DeleteFileRepository.js.map +1 -1
- package/features/file/FileModelProvider.d.ts +31 -0
- package/features/file/FileModelProvider.js +22 -0
- package/features/file/FileModelProvider.js.map +1 -0
- package/features/file/FileUrlGenerator/FileUrlGenerator.d.ts +12 -0
- package/features/file/FileUrlGenerator/FileUrlGenerator.js +19 -0
- package/features/file/FileUrlGenerator/FileUrlGenerator.js.map +1 -0
- package/features/file/FileUrlGenerator/SettingsFileUrlPrefixProvider.d.ts +13 -0
- package/features/file/FileUrlGenerator/SettingsFileUrlPrefixProvider.js +29 -0
- package/features/file/FileUrlGenerator/SettingsFileUrlPrefixProvider.js.map +1 -0
- package/features/file/FileUrlGenerator/abstractions.d.ts +15 -4
- package/features/file/FileUrlGenerator/abstractions.js +3 -2
- package/features/file/FileUrlGenerator/abstractions.js.map +1 -1
- package/features/file/FileUrlGenerator/feature.d.ts +4 -0
- package/features/file/FileUrlGenerator/feature.js +13 -0
- package/features/file/FileUrlGenerator/feature.js.map +1 -0
- package/features/file/FileUrlGenerator/index.d.ts +2 -0
- package/features/file/FileUrlGenerator/index.js +1 -0
- package/features/file/GetFile/GetFileRepository.d.ts +3 -3
- package/features/file/GetFile/GetFileRepository.js +6 -5
- package/features/file/GetFile/GetFileRepository.js.map +1 -1
- package/features/file/GetFileByUrl/GetFileByUrlUseCase.d.ts +15 -0
- package/features/file/GetFileByUrl/GetFileByUrlUseCase.js +37 -0
- package/features/file/GetFileByUrl/GetFileByUrlUseCase.js.map +1 -0
- package/features/file/GetFileByUrl/abstractions.d.ts +18 -0
- package/features/file/GetFileByUrl/abstractions.js +5 -0
- package/features/file/GetFileByUrl/abstractions.js.map +1 -0
- package/features/file/GetFileByUrl/feature.d.ts +4 -0
- package/features/file/GetFileByUrl/feature.js +11 -0
- package/features/file/GetFileByUrl/feature.js.map +1 -0
- package/features/file/GetFileByUrl/index.d.ts +1 -0
- package/features/file/GetFileByUrl/index.js +1 -0
- package/features/file/ListFiles/ListFilesRepository.d.ts +3 -3
- package/features/file/ListFiles/ListFilesRepository.js +8 -7
- package/features/file/ListFiles/ListFilesRepository.js.map +1 -1
- package/features/file/ListImagesByTagTool/ListImagesByTagTool.d.ts +15 -5
- package/features/file/ListImagesByTagTool/ListImagesByTagTool.js +21 -7
- package/features/file/ListImagesByTagTool/ListImagesByTagTool.js.map +1 -1
- package/features/file/ListTags/ListTagsRepository.d.ts +3 -3
- package/features/file/ListTags/ListTagsRepository.js +7 -6
- package/features/file/ListTags/ListTagsRepository.js.map +1 -1
- package/features/file/UpdateFile/UpdateFileRepository.d.ts +3 -3
- package/features/file/UpdateFile/UpdateFileRepository.js +6 -5
- package/features/file/UpdateFile/UpdateFileRepository.js.map +1 -1
- package/features/settings/SettingsInstaller/SettingsInstaller.js +1 -4
- package/features/settings/SettingsInstaller/SettingsInstaller.js.map +1 -1
- package/features/settings/UpdateSettings/UpdateSettingsUseCase.d.ts +3 -1
- package/features/settings/UpdateSettings/UpdateSettingsUseCase.js +10 -2
- package/features/settings/UpdateSettings/UpdateSettingsUseCase.js.map +1 -1
- package/features/upload/CompleteMultiPartUpload/abstractions.d.ts +12 -0
- package/features/upload/CompleteMultiPartUpload/abstractions.js +5 -0
- package/features/upload/CompleteMultiPartUpload/abstractions.js.map +1 -0
- package/features/upload/CompleteMultiPartUpload/index.d.ts +1 -0
- package/features/upload/CompleteMultiPartUpload/index.js +1 -0
- package/features/upload/CreateMultiPartUpload/abstractions.d.ts +14 -0
- package/features/upload/CreateMultiPartUpload/abstractions.js +5 -0
- package/features/upload/CreateMultiPartUpload/abstractions.js.map +1 -0
- package/features/upload/CreateMultiPartUpload/index.d.ts +1 -0
- package/features/upload/CreateMultiPartUpload/index.js +1 -0
- package/features/upload/GetUploadPayload/abstractions.d.ts +10 -0
- package/features/upload/GetUploadPayload/abstractions.js +5 -0
- package/features/upload/GetUploadPayload/abstractions.js.map +1 -0
- package/features/upload/GetUploadPayload/index.d.ts +1 -0
- package/features/upload/GetUploadPayload/index.js +1 -0
- package/features/upload/ReadFileMetadata/MetadataReader.d.ts +11 -0
- package/features/upload/ReadFileMetadata/MetadataReader.js +21 -0
- package/features/upload/ReadFileMetadata/MetadataReader.js.map +1 -0
- package/features/upload/ReadFileMetadata/abstractions.d.ts +15 -0
- package/features/upload/ReadFileMetadata/abstractions.js +5 -0
- package/features/upload/ReadFileMetadata/abstractions.js.map +1 -0
- package/features/upload/ReadFileMetadata/feature.d.ts +4 -0
- package/features/upload/ReadFileMetadata/feature.js +11 -0
- package/features/upload/ReadFileMetadata/feature.js.map +1 -0
- package/features/upload/ReadFileMetadata/index.d.ts +1 -0
- package/features/upload/ReadFileMetadata/index.js +1 -0
- package/features/upload/WriteFileMetadata/MetadataWriter.d.ts +14 -0
- package/features/upload/WriteFileMetadata/MetadataWriter.js +36 -0
- package/features/upload/WriteFileMetadata/MetadataWriter.js.map +1 -0
- package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.d.ts +11 -0
- package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.js +20 -0
- package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.js.map +1 -0
- package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.d.ts +11 -0
- package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.js +22 -0
- package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.js.map +1 -0
- package/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.d.ts +11 -0
- package/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.js +22 -0
- package/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.js.map +1 -0
- package/features/upload/WriteFileMetadata/abstractions.d.ts +9 -0
- package/features/upload/WriteFileMetadata/abstractions.js +5 -0
- package/features/upload/WriteFileMetadata/abstractions.js.map +1 -0
- package/features/upload/WriteFileMetadata/feature.d.ts +4 -0
- package/features/upload/WriteFileMetadata/feature.js +17 -0
- package/features/upload/WriteFileMetadata/feature.js.map +1 -0
- package/features/upload/index.d.ts +17 -0
- package/features/upload/index.js +10 -0
- package/features/upload/types.d.ts +28 -0
- package/features/upload/types.js +0 -0
- package/features/upload/utils/FileExtension.d.ts +6 -0
- package/features/upload/utils/FileExtension.js +16 -0
- package/features/upload/utils/FileExtension.js.map +1 -0
- package/features/upload/utils/FileKey.d.ts +11 -0
- package/features/upload/utils/FileKey.js +33 -0
- package/features/upload/utils/FileKey.js.map +1 -0
- package/features/upload/utils/FileNormalizer.d.ts +13 -0
- package/features/upload/utils/FileNormalizer.js +41 -0
- package/features/upload/utils/FileNormalizer.js.map +1 -0
- package/features/upload/utils/FileUploadModifier.d.ts +30 -0
- package/features/upload/utils/FileUploadModifier.js +39 -0
- package/features/upload/utils/FileUploadModifier.js.map +1 -0
- package/features/upload/utils/checkPermissions.d.ts +5 -0
- package/features/upload/utils/checkPermissions.js +22 -0
- package/features/upload/utils/checkPermissions.js.map +1 -0
- package/features/upload/utils/createFileNormalizerFromContext.d.ts +3 -0
- package/features/upload/utils/createFileNormalizerFromContext.js +9 -0
- package/features/upload/utils/createFileNormalizerFromContext.js.map +1 -0
- package/features/upload/utils/mimeTypes.d.ts +1 -0
- package/features/upload/utils/mimeTypes.js +9 -0
- package/features/upload/utils/mimeTypes.js.map +1 -0
- package/graphql/FmGraphQLSchema.d.ts +24 -0
- package/graphql/FmGraphQLSchema.js +459 -0
- package/graphql/FmGraphQLSchema.js.map +1 -0
- package/index.d.ts +3 -6
- package/index.js +3 -32
- package/index.js.map +1 -1
- package/package.json +23 -17
- package/types.d.ts +1 -1
- package/types.js +1 -1
- package/features/assetDelivery/transformation/PassthroughAssetTransformationStrategy.d.ts +0 -9
- package/features/assetDelivery/transformation/PassthroughAssetTransformationStrategy.js +0 -13
- package/features/assetDelivery/transformation/PassthroughAssetTransformationStrategy.js.map +0 -1
- package/graphql/baseSchema.d.ts +0 -3
- package/graphql/baseSchema.js +0 -100
- package/graphql/baseSchema.js.map +0 -1
- package/graphql/createFilesTypeDefs.d.ts +0 -8
- package/graphql/createFilesTypeDefs.js +0 -191
- package/graphql/createFilesTypeDefs.js.map +0 -1
- package/graphql/filesSchema.d.ts +0 -4
- package/graphql/filesSchema.js +0 -96
- package/graphql/filesSchema.js.map +0 -1
- package/graphql/getFileByUrl.d.ts +0 -3
- package/graphql/getFileByUrl.js +0 -61
- package/graphql/getFileByUrl.js.map +0 -1
- package/graphql/index.d.ts +0 -4
- package/graphql/index.js +0 -47
- package/graphql/index.js.map +0 -1
- package/graphql/utils.d.ts +0 -11
- package/graphql/utils.js +0 -12
- package/graphql/utils.js.map +0 -1
- package/modelModifier/CmsModelModifier.d.ts +0 -26
- package/modelModifier/CmsModelModifier.js +0 -51
- package/modelModifier/CmsModelModifier.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { CompleteMultiPartUploadUseCase } from "./abstractions.js";
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { FileData } from "../../../features/upload/types.js";
|
|
2
|
+
import type { CreateMultiPartUploadResult } from "../../../features/upload/types.js";
|
|
3
|
+
export interface ICreateMultiPartUploadParams {
|
|
4
|
+
file: FileData;
|
|
5
|
+
numberOfParts: number;
|
|
6
|
+
}
|
|
7
|
+
export interface ICreateMultiPartUploadUseCase {
|
|
8
|
+
execute(params: ICreateMultiPartUploadParams): Promise<CreateMultiPartUploadResult>;
|
|
9
|
+
}
|
|
10
|
+
export declare const CreateMultiPartUploadUseCase: import("@webiny/di").Abstraction<ICreateMultiPartUploadUseCase>;
|
|
11
|
+
export declare namespace CreateMultiPartUploadUseCase {
|
|
12
|
+
type Interface = ICreateMultiPartUploadUseCase;
|
|
13
|
+
type Params = ICreateMultiPartUploadParams;
|
|
14
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/upload/CreateMultiPartUpload/abstractions.js","sources":["../../../../src/features/upload/CreateMultiPartUpload/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { FileData } from \"~/features/upload/types.js\";\nimport type { CreateMultiPartUploadResult } from \"~/features/upload/types.js\";\n\nexport interface ICreateMultiPartUploadParams {\n file: FileData;\n numberOfParts: number;\n}\n\nexport interface ICreateMultiPartUploadUseCase {\n execute(params: ICreateMultiPartUploadParams): Promise<CreateMultiPartUploadResult>;\n}\n\nexport const CreateMultiPartUploadUseCase = createAbstraction<ICreateMultiPartUploadUseCase>(\n \"CreateMultiPartUploadUseCase\"\n);\n\nexport namespace CreateMultiPartUploadUseCase {\n export type Interface = ICreateMultiPartUploadUseCase;\n export type Params = ICreateMultiPartUploadParams;\n}\n"],"names":["CreateMultiPartUploadUseCase","createAbstraction"],"mappings":";AAaO,MAAMA,+BAA+BC,kBACxC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { CreateMultiPartUploadUseCase } from "./abstractions.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { CreateMultiPartUploadUseCase } from "./abstractions.js";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { FileData } from "../../../features/upload/types.js";
|
|
2
|
+
import type { UploadPayloadResponse } from "../../../features/upload/types.js";
|
|
3
|
+
import type { FileManagerSettings } from "../../../domain/settings/types.js";
|
|
4
|
+
export interface IGetUploadPayloadUseCase {
|
|
5
|
+
execute(file: FileData, settings: FileManagerSettings): Promise<UploadPayloadResponse>;
|
|
6
|
+
}
|
|
7
|
+
export declare const GetUploadPayloadUseCase: import("@webiny/di").Abstraction<IGetUploadPayloadUseCase>;
|
|
8
|
+
export declare namespace GetUploadPayloadUseCase {
|
|
9
|
+
type Interface = IGetUploadPayloadUseCase;
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/upload/GetUploadPayload/abstractions.js","sources":["../../../../src/features/upload/GetUploadPayload/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { FileData } from \"~/features/upload/types.js\";\nimport type { UploadPayloadResponse } from \"~/features/upload/types.js\";\nimport type { FileManagerSettings } from \"~/domain/settings/types.js\";\n\nexport interface IGetUploadPayloadUseCase {\n execute(file: FileData, settings: FileManagerSettings): Promise<UploadPayloadResponse>;\n}\n\nexport const GetUploadPayloadUseCase =\n createAbstraction<IGetUploadPayloadUseCase>(\"GetUploadPayloadUseCase\");\n\nexport namespace GetUploadPayloadUseCase {\n export type Interface = IGetUploadPayloadUseCase;\n}\n"],"names":["GetUploadPayloadUseCase","createAbstraction"],"mappings":";AASO,MAAMA,0BACTC,kBAA4C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { GetUploadPayloadUseCase } from "./abstractions.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { GetUploadPayloadUseCase } from "./abstractions.js";
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { GlobalKeyValueStore } from "@webiny/api-core/features/keyValueStore/index.js";
|
|
2
|
+
import { type IMetadataReader, type AssetMetadata } from "./abstractions.js";
|
|
3
|
+
declare class MetadataReaderImpl implements IMetadataReader {
|
|
4
|
+
private readonly keyValueStore;
|
|
5
|
+
constructor(keyValueStore: GlobalKeyValueStore.Interface);
|
|
6
|
+
read(fileId: string): Promise<AssetMetadata | undefined>;
|
|
7
|
+
}
|
|
8
|
+
export declare const MetadataReader: typeof MetadataReaderImpl & {
|
|
9
|
+
__abstraction: import("@webiny/di").Abstraction<IMetadataReader>;
|
|
10
|
+
};
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { GlobalKeyValueStore } from "@webiny/api-core/features/keyValueStore/index.js";
|
|
2
|
+
import { MetadataReader } from "./abstractions.js";
|
|
3
|
+
class MetadataReaderImpl {
|
|
4
|
+
constructor(keyValueStore){
|
|
5
|
+
this.keyValueStore = keyValueStore;
|
|
6
|
+
}
|
|
7
|
+
async read(fileId) {
|
|
8
|
+
const result = await this.keyValueStore.get(`FileManager/File/${fileId}/Metadata`);
|
|
9
|
+
if (result.isFail()) return;
|
|
10
|
+
return result.value;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
const MetadataReader_MetadataReader = MetadataReader.createImplementation({
|
|
14
|
+
implementation: MetadataReaderImpl,
|
|
15
|
+
dependencies: [
|
|
16
|
+
GlobalKeyValueStore
|
|
17
|
+
]
|
|
18
|
+
});
|
|
19
|
+
export { MetadataReader_MetadataReader as MetadataReader };
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=MetadataReader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/upload/ReadFileMetadata/MetadataReader.js","sources":["../../../../src/features/upload/ReadFileMetadata/MetadataReader.ts"],"sourcesContent":["import { GlobalKeyValueStore } from \"@webiny/api-core/features/keyValueStore/index.js\";\nimport {\n MetadataReader as MetadataReaderAbstraction,\n type IMetadataReader,\n type AssetMetadata\n} from \"./abstractions.js\";\n\nclass MetadataReaderImpl implements IMetadataReader {\n private readonly keyValueStore: GlobalKeyValueStore.Interface;\n\n public constructor(keyValueStore: GlobalKeyValueStore.Interface) {\n this.keyValueStore = keyValueStore;\n }\n\n public async read(fileId: string): Promise<AssetMetadata | undefined> {\n const result = await this.keyValueStore.get<AssetMetadata>(\n `FileManager/File/${fileId}/Metadata`\n );\n\n if (result.isFail()) {\n return undefined;\n }\n\n return result.value;\n }\n}\n\nexport const MetadataReader = MetadataReaderAbstraction.createImplementation({\n implementation: MetadataReaderImpl,\n dependencies: [GlobalKeyValueStore]\n});\n"],"names":["MetadataReaderImpl","keyValueStore","fileId","result","MetadataReader","MetadataReaderAbstraction","GlobalKeyValueStore"],"mappings":";;AAOA,MAAMA;IAGF,YAAmBC,aAA4C,CAAE;QAC7D,IAAI,CAAC,aAAa,GAAGA;IACzB;IAEA,MAAa,KAAKC,MAAc,EAAsC;QAClE,MAAMC,SAAS,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CACvC,CAAC,iBAAiB,EAAED,OAAO,SAAS,CAAC;QAGzC,IAAIC,OAAO,MAAM,IACb;QAGJ,OAAOA,OAAO,KAAK;IACvB;AACJ;AAEO,MAAMC,gCAAiBC,eAAAA,oBAA8C,CAAC;IACzE,gBAAgBL;IAChB,cAAc;QAACM;KAAoB;AACvC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface AssetMetadata {
|
|
2
|
+
id: string;
|
|
3
|
+
tenant: string;
|
|
4
|
+
size: number;
|
|
5
|
+
contentType: string;
|
|
6
|
+
bucketKey: string;
|
|
7
|
+
}
|
|
8
|
+
export interface IMetadataReader {
|
|
9
|
+
read(fileId: string): Promise<AssetMetadata | undefined>;
|
|
10
|
+
}
|
|
11
|
+
export declare const MetadataReader: import("@webiny/di").Abstraction<IMetadataReader>;
|
|
12
|
+
export declare namespace MetadataReader {
|
|
13
|
+
type Interface = IMetadataReader;
|
|
14
|
+
type Metadata = AssetMetadata;
|
|
15
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/upload/ReadFileMetadata/abstractions.js","sources":["../../../../src/features/upload/ReadFileMetadata/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\n\nexport interface AssetMetadata {\n id: string;\n tenant: string;\n size: number;\n contentType: string;\n bucketKey: string;\n}\n\nexport interface IMetadataReader {\n read(fileId: string): Promise<AssetMetadata | undefined>;\n}\n\nexport const MetadataReader = createAbstraction<IMetadataReader>(\n \"FileManager/Upload/MetadataReader\"\n);\n\nexport namespace MetadataReader {\n export type Interface = IMetadataReader;\n export type Metadata = AssetMetadata;\n}\n"],"names":["MetadataReader","createAbstraction"],"mappings":";AAcO,MAAMA,iBAAiBC,kBAC1B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { MetadataReader } from "./MetadataReader.js";
|
|
3
|
+
const ReadFileMetadataFeature = createFeature({
|
|
4
|
+
name: "FileManager/ReadFileMetadata",
|
|
5
|
+
register (container) {
|
|
6
|
+
container.register(MetadataReader);
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
export { ReadFileMetadataFeature };
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/upload/ReadFileMetadata/feature.js","sources":["../../../../src/features/upload/ReadFileMetadata/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { MetadataReader } from \"./MetadataReader.js\";\n\nexport const ReadFileMetadataFeature = createFeature({\n name: \"FileManager/ReadFileMetadata\",\n register(container) {\n container.register(MetadataReader);\n }\n});\n"],"names":["ReadFileMetadataFeature","createFeature","container","MetadataReader"],"mappings":";;AAGO,MAAMA,0BAA0BC,cAAc;IACjD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { MetadataReader } from "./abstractions.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { MetadataReader } from "./abstractions.js";
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { TenantContext } from "@webiny/api-core/features/tenancy/TenantContext/index.js";
|
|
2
|
+
import { GlobalKeyValueStore } from "@webiny/api-core/features/keyValueStore/index.js";
|
|
3
|
+
import { MetadataWriter as MetadataWriterAbstraction } from "./abstractions.js";
|
|
4
|
+
declare class MetadataWriterImpl implements MetadataWriterAbstraction.Interface {
|
|
5
|
+
private readonly tenantContext;
|
|
6
|
+
private readonly keyValueStore;
|
|
7
|
+
constructor(tenantContext: TenantContext.Interface, keyValueStore: GlobalKeyValueStore.Interface);
|
|
8
|
+
write(files: MetadataWriterAbstraction.File[]): Promise<void>;
|
|
9
|
+
private getMetadata;
|
|
10
|
+
}
|
|
11
|
+
export declare const MetadataWriter: typeof MetadataWriterImpl & {
|
|
12
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IMetadataWriter>;
|
|
13
|
+
};
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { TenantContext } from "@webiny/api-core/features/tenancy/TenantContext/index.js";
|
|
2
|
+
import { GlobalKeyValueStore } from "@webiny/api-core/features/keyValueStore/index.js";
|
|
3
|
+
import { MetadataWriter } from "./abstractions.js";
|
|
4
|
+
class MetadataWriterImpl {
|
|
5
|
+
constructor(tenantContext, keyValueStore){
|
|
6
|
+
this.tenantContext = tenantContext;
|
|
7
|
+
this.keyValueStore = keyValueStore;
|
|
8
|
+
}
|
|
9
|
+
async write(files) {
|
|
10
|
+
const writers = files.map(async (file)=>{
|
|
11
|
+
const metadata = this.getMetadata(file);
|
|
12
|
+
await this.keyValueStore.set(`FileManager/File/${file.id}/Metadata`, metadata);
|
|
13
|
+
});
|
|
14
|
+
await Promise.all(writers);
|
|
15
|
+
}
|
|
16
|
+
getMetadata(file) {
|
|
17
|
+
const tenant = this.tenantContext.getTenant();
|
|
18
|
+
return {
|
|
19
|
+
id: file.id,
|
|
20
|
+
bucketKey: `tenants/${tenant.id}/files/${file.key}`,
|
|
21
|
+
tenant: tenant.id,
|
|
22
|
+
size: file.size,
|
|
23
|
+
contentType: file.type
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
const MetadataWriter_MetadataWriter = MetadataWriter.createImplementation({
|
|
28
|
+
implementation: MetadataWriterImpl,
|
|
29
|
+
dependencies: [
|
|
30
|
+
TenantContext,
|
|
31
|
+
GlobalKeyValueStore
|
|
32
|
+
]
|
|
33
|
+
});
|
|
34
|
+
export { MetadataWriter_MetadataWriter as MetadataWriter };
|
|
35
|
+
|
|
36
|
+
//# sourceMappingURL=MetadataWriter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/upload/WriteFileMetadata/MetadataWriter.js","sources":["../../../../src/features/upload/WriteFileMetadata/MetadataWriter.ts"],"sourcesContent":["import { TenantContext } from \"@webiny/api-core/features/tenancy/TenantContext/index.js\";\nimport { GlobalKeyValueStore } from \"@webiny/api-core/features/keyValueStore/index.js\";\nimport { MetadataWriter as MetadataWriterAbstraction } from \"./abstractions.js\";\n\nclass MetadataWriterImpl implements MetadataWriterAbstraction.Interface {\n private readonly tenantContext: TenantContext.Interface;\n private readonly keyValueStore: GlobalKeyValueStore.Interface;\n\n public constructor(\n tenantContext: TenantContext.Interface,\n keyValueStore: GlobalKeyValueStore.Interface\n ) {\n this.tenantContext = tenantContext;\n this.keyValueStore = keyValueStore;\n }\n\n public async write(files: MetadataWriterAbstraction.File[]) {\n const writers = files.map(async file => {\n const metadata = this.getMetadata(file);\n await this.keyValueStore.set(`FileManager/File/${file.id}/Metadata`, metadata);\n });\n\n await Promise.all(writers);\n }\n\n private getMetadata(file: MetadataWriterAbstraction.File) {\n const tenant = this.tenantContext.getTenant();\n return {\n id: file.id,\n bucketKey: `tenants/${tenant.id}/files/${file.key}`,\n tenant: tenant.id,\n size: file.size,\n contentType: file.type\n };\n }\n}\n\nexport const MetadataWriter = MetadataWriterAbstraction.createImplementation({\n implementation: MetadataWriterImpl,\n dependencies: [TenantContext, GlobalKeyValueStore]\n});\n"],"names":["MetadataWriterImpl","tenantContext","keyValueStore","files","writers","file","metadata","Promise","tenant","MetadataWriter","MetadataWriterAbstraction","TenantContext","GlobalKeyValueStore"],"mappings":";;;AAIA,MAAMA;IAIF,YACIC,aAAsC,EACtCC,aAA4C,CAC9C;QACE,IAAI,CAAC,aAAa,GAAGD;QACrB,IAAI,CAAC,aAAa,GAAGC;IACzB;IAEA,MAAa,MAAMC,KAAuC,EAAE;QACxD,MAAMC,UAAUD,MAAM,GAAG,CAAC,OAAME;YAC5B,MAAMC,WAAW,IAAI,CAAC,WAAW,CAACD;YAClC,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,iBAAiB,EAAEA,KAAK,EAAE,CAAC,SAAS,CAAC,EAAEC;QACzE;QAEA,MAAMC,QAAQ,GAAG,CAACH;IACtB;IAEQ,YAAYC,IAAoC,EAAE;QACtD,MAAMG,SAAS,IAAI,CAAC,aAAa,CAAC,SAAS;QAC3C,OAAO;YACH,IAAIH,KAAK,EAAE;YACX,WAAW,CAAC,QAAQ,EAAEG,OAAO,EAAE,CAAC,OAAO,EAAEH,KAAK,GAAG,EAAE;YACnD,QAAQG,OAAO,EAAE;YACjB,MAAMH,KAAK,IAAI;YACf,aAAaA,KAAK,IAAI;QAC1B;IACJ;AACJ;AAEO,MAAMI,gCAAiBC,eAAAA,oBAA8C,CAAC;IACzE,gBAAgBV;IAChB,cAAc;QAACW;QAAeC;KAAoB;AACtD"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { FileAfterBatchCreateEventHandler } from "../../../features/file/CreateFilesInBatch/events.js";
|
|
2
|
+
import { MetadataWriter } from "./abstractions.js";
|
|
3
|
+
declare class WriteMetadataAfterBatchCreateHandlerImpl implements FileAfterBatchCreateEventHandler.Interface {
|
|
4
|
+
private readonly metadataWriter;
|
|
5
|
+
constructor(metadataWriter: MetadataWriter.Interface);
|
|
6
|
+
handle(event: FileAfterBatchCreateEventHandler.Event): Promise<void>;
|
|
7
|
+
}
|
|
8
|
+
export declare const WriteMetadataAfterBatchCreateHandler: typeof WriteMetadataAfterBatchCreateHandlerImpl & {
|
|
9
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<import("~/features/file/CreateFilesInBatch/events.js").FileAfterBatchCreateEvent>>;
|
|
10
|
+
};
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { FileAfterBatchCreateEventHandler } from "../../file/CreateFilesInBatch/events.js";
|
|
2
|
+
import { MetadataWriter } from "./abstractions.js";
|
|
3
|
+
class WriteMetadataAfterBatchCreateHandlerImpl {
|
|
4
|
+
constructor(metadataWriter){
|
|
5
|
+
this.metadataWriter = metadataWriter;
|
|
6
|
+
}
|
|
7
|
+
async handle(event) {
|
|
8
|
+
const { files } = event.payload;
|
|
9
|
+
await this.metadataWriter.write(files);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
const WriteMetadataAfterBatchCreateHandler = FileAfterBatchCreateEventHandler.createImplementation({
|
|
13
|
+
implementation: WriteMetadataAfterBatchCreateHandlerImpl,
|
|
14
|
+
dependencies: [
|
|
15
|
+
MetadataWriter
|
|
16
|
+
]
|
|
17
|
+
});
|
|
18
|
+
export { WriteMetadataAfterBatchCreateHandler };
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=WriteMetadataAfterBatchCreateHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.js","sources":["../../../../src/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.ts"],"sourcesContent":["import { FileAfterBatchCreateEventHandler } from \"~/features/file/CreateFilesInBatch/events.js\";\nimport { MetadataWriter } from \"./abstractions.js\";\n\nclass WriteMetadataAfterBatchCreateHandlerImpl\n implements FileAfterBatchCreateEventHandler.Interface\n{\n private readonly metadataWriter: MetadataWriter.Interface;\n\n public constructor(metadataWriter: MetadataWriter.Interface) {\n this.metadataWriter = metadataWriter;\n }\n\n public async handle(event: FileAfterBatchCreateEventHandler.Event): Promise<void> {\n const { files } = event.payload;\n await this.metadataWriter.write(files);\n }\n}\n\nexport const WriteMetadataAfterBatchCreateHandler =\n FileAfterBatchCreateEventHandler.createImplementation({\n implementation: WriteMetadataAfterBatchCreateHandlerImpl,\n dependencies: [MetadataWriter]\n });\n"],"names":["WriteMetadataAfterBatchCreateHandlerImpl","metadataWriter","event","files","WriteMetadataAfterBatchCreateHandler","FileAfterBatchCreateEventHandler","MetadataWriter"],"mappings":";;AAGA,MAAMA;IAKF,YAAmBC,cAAwC,CAAE;QACzD,IAAI,CAAC,cAAc,GAAGA;IAC1B;IAEA,MAAa,OAAOC,KAA6C,EAAiB;QAC9E,MAAM,EAAEC,KAAK,EAAE,GAAGD,MAAM,OAAO;QAC/B,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAACC;IACpC;AACJ;AAEO,MAAMC,uCACTC,iCAAiC,oBAAoB,CAAC;IAClD,gBAAgBL;IAChB,cAAc;QAACM;KAAe;AAClC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { FileAfterCreateEventHandler } from "../../../features/file/CreateFile/events.js";
|
|
2
|
+
import { MetadataWriter } from "./abstractions.js";
|
|
3
|
+
declare class WriteMetadataAfterCreateHandlerImpl implements FileAfterCreateEventHandler.Interface {
|
|
4
|
+
private readonly metadataWriter;
|
|
5
|
+
constructor(metadataWriter: MetadataWriter.Interface);
|
|
6
|
+
handle(event: FileAfterCreateEventHandler.Event): Promise<void>;
|
|
7
|
+
}
|
|
8
|
+
export declare const WriteMetadataAfterCreateHandler: typeof WriteMetadataAfterCreateHandlerImpl & {
|
|
9
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<import("~/features/file/CreateFile/events.js").FileAfterCreateEvent>>;
|
|
10
|
+
};
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { FileAfterCreateEventHandler } from "../../file/CreateFile/events.js";
|
|
2
|
+
import { MetadataWriter } from "./abstractions.js";
|
|
3
|
+
class WriteMetadataAfterCreateHandlerImpl {
|
|
4
|
+
constructor(metadataWriter){
|
|
5
|
+
this.metadataWriter = metadataWriter;
|
|
6
|
+
}
|
|
7
|
+
async handle(event) {
|
|
8
|
+
const { file } = event.payload;
|
|
9
|
+
await this.metadataWriter.write([
|
|
10
|
+
file
|
|
11
|
+
]);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
const WriteMetadataAfterCreateHandler = FileAfterCreateEventHandler.createImplementation({
|
|
15
|
+
implementation: WriteMetadataAfterCreateHandlerImpl,
|
|
16
|
+
dependencies: [
|
|
17
|
+
MetadataWriter
|
|
18
|
+
]
|
|
19
|
+
});
|
|
20
|
+
export { WriteMetadataAfterCreateHandler };
|
|
21
|
+
|
|
22
|
+
//# sourceMappingURL=WriteMetadataAfterCreateHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.js","sources":["../../../../src/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.ts"],"sourcesContent":["import { FileAfterCreateEventHandler } from \"~/features/file/CreateFile/events.js\";\nimport { MetadataWriter } from \"./abstractions.js\";\n\nclass WriteMetadataAfterCreateHandlerImpl implements FileAfterCreateEventHandler.Interface {\n private readonly metadataWriter: MetadataWriter.Interface;\n\n public constructor(metadataWriter: MetadataWriter.Interface) {\n this.metadataWriter = metadataWriter;\n }\n\n public async handle(event: FileAfterCreateEventHandler.Event): Promise<void> {\n const { file } = event.payload;\n await this.metadataWriter.write([file]);\n }\n}\n\nexport const WriteMetadataAfterCreateHandler = FileAfterCreateEventHandler.createImplementation({\n implementation: WriteMetadataAfterCreateHandlerImpl,\n dependencies: [MetadataWriter]\n});\n"],"names":["WriteMetadataAfterCreateHandlerImpl","metadataWriter","event","file","WriteMetadataAfterCreateHandler","FileAfterCreateEventHandler","MetadataWriter"],"mappings":";;AAGA,MAAMA;IAGF,YAAmBC,cAAwC,CAAE;QACzD,IAAI,CAAC,cAAc,GAAGA;IAC1B;IAEA,MAAa,OAAOC,KAAwC,EAAiB;QACzE,MAAM,EAAEC,IAAI,EAAE,GAAGD,MAAM,OAAO;QAC9B,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;YAACC;SAAK;IAC1C;AACJ;AAEO,MAAMC,kCAAkCC,4BAA4B,oBAAoB,CAAC;IAC5F,gBAAgBL;IAChB,cAAc;QAACM;KAAe;AAClC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { FileAfterUpdateEventHandler } from "../../../features/file/UpdateFile/events.js";
|
|
2
|
+
import { MetadataWriter } from "./abstractions.js";
|
|
3
|
+
declare class WriteMetadataAfterUpdateHandlerImpl implements FileAfterUpdateEventHandler.Interface {
|
|
4
|
+
private readonly metadataWriter;
|
|
5
|
+
constructor(metadataWriter: MetadataWriter.Interface);
|
|
6
|
+
handle(event: FileAfterUpdateEventHandler.Event): Promise<void>;
|
|
7
|
+
}
|
|
8
|
+
export declare const WriteMetadataAfterUpdateHandler: typeof WriteMetadataAfterUpdateHandlerImpl & {
|
|
9
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<import("~/features/file/UpdateFile/events.js").FileAfterUpdateEvent>>;
|
|
10
|
+
};
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { FileAfterUpdateEventHandler } from "../../file/UpdateFile/events.js";
|
|
2
|
+
import { MetadataWriter } from "./abstractions.js";
|
|
3
|
+
class WriteMetadataAfterUpdateHandlerImpl {
|
|
4
|
+
constructor(metadataWriter){
|
|
5
|
+
this.metadataWriter = metadataWriter;
|
|
6
|
+
}
|
|
7
|
+
async handle(event) {
|
|
8
|
+
const { file } = event.payload;
|
|
9
|
+
await this.metadataWriter.write([
|
|
10
|
+
file
|
|
11
|
+
]);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
const WriteMetadataAfterUpdateHandler = FileAfterUpdateEventHandler.createImplementation({
|
|
15
|
+
implementation: WriteMetadataAfterUpdateHandlerImpl,
|
|
16
|
+
dependencies: [
|
|
17
|
+
MetadataWriter
|
|
18
|
+
]
|
|
19
|
+
});
|
|
20
|
+
export { WriteMetadataAfterUpdateHandler };
|
|
21
|
+
|
|
22
|
+
//# sourceMappingURL=WriteMetadataAfterUpdateHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.js","sources":["../../../../src/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.ts"],"sourcesContent":["import { FileAfterUpdateEventHandler } from \"~/features/file/UpdateFile/events.js\";\nimport { MetadataWriter } from \"./abstractions.js\";\n\nclass WriteMetadataAfterUpdateHandlerImpl implements FileAfterUpdateEventHandler.Interface {\n private readonly metadataWriter: MetadataWriter.Interface;\n\n public constructor(metadataWriter: MetadataWriter.Interface) {\n this.metadataWriter = metadataWriter;\n }\n\n public async handle(event: FileAfterUpdateEventHandler.Event): Promise<void> {\n const { file } = event.payload;\n // Re-write the delivery metadata so changes (e.g. the image crop) propagate\n // to the asset-delivery pipeline.\n await this.metadataWriter.write([file]);\n }\n}\n\nexport const WriteMetadataAfterUpdateHandler = FileAfterUpdateEventHandler.createImplementation({\n implementation: WriteMetadataAfterUpdateHandlerImpl,\n dependencies: [MetadataWriter]\n});\n"],"names":["WriteMetadataAfterUpdateHandlerImpl","metadataWriter","event","file","WriteMetadataAfterUpdateHandler","FileAfterUpdateEventHandler","MetadataWriter"],"mappings":";;AAGA,MAAMA;IAGF,YAAmBC,cAAwC,CAAE;QACzD,IAAI,CAAC,cAAc,GAAGA;IAC1B;IAEA,MAAa,OAAOC,KAAwC,EAAiB;QACzE,MAAM,EAAEC,IAAI,EAAE,GAAGD,MAAM,OAAO;QAG9B,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;YAACC;SAAK;IAC1C;AACJ;AAEO,MAAMC,kCAAkCC,4BAA4B,oBAAoB,CAAC;IAC5F,gBAAgBL;IAChB,cAAc;QAACM;KAAe;AAClC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { File as IFile } from "../../../domain/file/types.js";
|
|
2
|
+
export interface IMetadataWriter {
|
|
3
|
+
write(files: IFile[]): Promise<void>;
|
|
4
|
+
}
|
|
5
|
+
export declare const MetadataWriter: import("@webiny/di").Abstraction<IMetadataWriter>;
|
|
6
|
+
export declare namespace MetadataWriter {
|
|
7
|
+
type Interface = IMetadataWriter;
|
|
8
|
+
type File = IFile;
|
|
9
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/upload/WriteFileMetadata/abstractions.js","sources":["../../../../src/features/upload/WriteFileMetadata/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { File as IFile } from \"~/domain/file/types.js\";\n\nexport interface IMetadataWriter {\n write(files: IFile[]): Promise<void>;\n}\n\nexport const MetadataWriter = createAbstraction<IMetadataWriter>(\n \"FileManager/Upload/MetadataWriter\"\n);\n\nexport namespace MetadataWriter {\n export type Interface = IMetadataWriter;\n export type File = IFile;\n}\n"],"names":["MetadataWriter","createAbstraction"],"mappings":";AAOO,MAAMA,iBAAiBC,kBAC1B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { MetadataWriter } from "./MetadataWriter.js";
|
|
3
|
+
import { WriteMetadataAfterCreateHandler } from "./WriteMetadataAfterCreateHandler.js";
|
|
4
|
+
import { WriteMetadataAfterBatchCreateHandler } from "./WriteMetadataAfterBatchCreateHandler.js";
|
|
5
|
+
import { WriteMetadataAfterUpdateHandler } from "./WriteMetadataAfterUpdateHandler.js";
|
|
6
|
+
const WriteFileMetadataFeature = createFeature({
|
|
7
|
+
name: "FileManager/WriteFileMetadata",
|
|
8
|
+
register (container) {
|
|
9
|
+
container.register(MetadataWriter);
|
|
10
|
+
container.register(WriteMetadataAfterCreateHandler);
|
|
11
|
+
container.register(WriteMetadataAfterBatchCreateHandler);
|
|
12
|
+
container.register(WriteMetadataAfterUpdateHandler);
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
export { WriteFileMetadataFeature };
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/upload/WriteFileMetadata/feature.js","sources":["../../../../src/features/upload/WriteFileMetadata/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { MetadataWriter } from \"./MetadataWriter.js\";\nimport { WriteMetadataAfterCreateHandler } from \"./WriteMetadataAfterCreateHandler.js\";\nimport { WriteMetadataAfterBatchCreateHandler } from \"./WriteMetadataAfterBatchCreateHandler.js\";\nimport { WriteMetadataAfterUpdateHandler } from \"./WriteMetadataAfterUpdateHandler.js\";\n\nexport const WriteFileMetadataFeature = createFeature({\n name: \"FileManager/WriteFileMetadata\",\n register(container) {\n container.register(MetadataWriter);\n container.register(WriteMetadataAfterCreateHandler);\n container.register(WriteMetadataAfterBatchCreateHandler);\n container.register(WriteMetadataAfterUpdateHandler);\n }\n});\n"],"names":["WriteFileMetadataFeature","createFeature","container","MetadataWriter","WriteMetadataAfterCreateHandler","WriteMetadataAfterBatchCreateHandler","WriteMetadataAfterUpdateHandler"],"mappings":";;;;;AAMO,MAAMA,2BAA2BC,cAAc;IAClD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;QACnBD,UAAU,QAAQ,CAACE;QACnBF,UAAU,QAAQ,CAACG;QACnBH,UAAU,QAAQ,CAACI;IACvB;AACJ"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export type { PresignedPostPayloadData } from "./types.js";
|
|
2
|
+
export type { FileData } from "./types.js";
|
|
3
|
+
export type { UploadPayloadResponse } from "./types.js";
|
|
4
|
+
export type { MultiPartUploadFilePart } from "./types.js";
|
|
5
|
+
export type { CreateMultiPartUploadResult } from "./types.js";
|
|
6
|
+
export { checkPermissions } from "./utils/checkPermissions.js";
|
|
7
|
+
export { FileKey } from "./utils/FileKey.js";
|
|
8
|
+
export { FileExtension } from "./utils/FileExtension.js";
|
|
9
|
+
export { mimeTypes } from "./utils/mimeTypes.js";
|
|
10
|
+
export { FileNormalizer } from "./utils/FileNormalizer.js";
|
|
11
|
+
export { createFileUploadModifier } from "./utils/FileUploadModifier.js";
|
|
12
|
+
export { FileUploadModifierPlugin } from "./utils/FileUploadModifier.js";
|
|
13
|
+
export { createModifierFromPlugins } from "./utils/FileUploadModifier.js";
|
|
14
|
+
export { createFileNormalizerFromContext } from "./utils/createFileNormalizerFromContext.js";
|
|
15
|
+
export { GetUploadPayloadUseCase } from "./GetUploadPayload/index.js";
|
|
16
|
+
export { CreateMultiPartUploadUseCase } from "./CreateMultiPartUpload/index.js";
|
|
17
|
+
export { CompleteMultiPartUploadUseCase } from "./CompleteMultiPartUpload/index.js";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { checkPermissions } from "./utils/checkPermissions.js";
|
|
2
|
+
export { FileKey } from "./utils/FileKey.js";
|
|
3
|
+
export { FileExtension } from "./utils/FileExtension.js";
|
|
4
|
+
export { mimeTypes } from "./utils/mimeTypes.js";
|
|
5
|
+
export { FileNormalizer } from "./utils/FileNormalizer.js";
|
|
6
|
+
export { FileUploadModifierPlugin, createFileUploadModifier, createModifierFromPlugins } from "./utils/FileUploadModifier.js";
|
|
7
|
+
export { createFileNormalizerFromContext } from "./utils/createFileNormalizerFromContext.js";
|
|
8
|
+
export { GetUploadPayloadUseCase } from "./GetUploadPayload/index.js";
|
|
9
|
+
export { CreateMultiPartUploadUseCase } from "./CreateMultiPartUpload/index.js";
|
|
10
|
+
export { CompleteMultiPartUploadUseCase } from "./CompleteMultiPartUpload/index.js";
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export interface PresignedPostPayloadData {
|
|
2
|
+
name: string;
|
|
3
|
+
type: string;
|
|
4
|
+
size: number;
|
|
5
|
+
id?: string;
|
|
6
|
+
key?: string;
|
|
7
|
+
keyPrefix?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface FileData {
|
|
10
|
+
id: string;
|
|
11
|
+
key: string;
|
|
12
|
+
name: string;
|
|
13
|
+
size: number;
|
|
14
|
+
type: string;
|
|
15
|
+
}
|
|
16
|
+
export interface UploadPayloadResponse {
|
|
17
|
+
data: Record<string, unknown>;
|
|
18
|
+
file: FileData;
|
|
19
|
+
}
|
|
20
|
+
export interface MultiPartUploadFilePart {
|
|
21
|
+
partNumber: number;
|
|
22
|
+
url: string;
|
|
23
|
+
}
|
|
24
|
+
export interface CreateMultiPartUploadResult {
|
|
25
|
+
file: FileData;
|
|
26
|
+
uploadId: string;
|
|
27
|
+
parts: MultiPartUploadFilePart[];
|
|
28
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { mimeTypes as external_mimeTypes_js_mimeTypes } from "./mimeTypes.js";
|
|
2
|
+
class FileExtension {
|
|
3
|
+
constructor(data){
|
|
4
|
+
this.data = data;
|
|
5
|
+
}
|
|
6
|
+
getValue() {
|
|
7
|
+
const name = (this.data.key || this.data.name).toLowerCase();
|
|
8
|
+
const maybeExt = name.split(".").pop();
|
|
9
|
+
const extensions = external_mimeTypes_js_mimeTypes[this.data.type];
|
|
10
|
+
if (extensions && !extensions.includes(maybeExt)) return extensions[0];
|
|
11
|
+
return "";
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export { FileExtension };
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=FileExtension.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/upload/utils/FileExtension.js","sources":["../../../../src/features/upload/utils/FileExtension.ts"],"sourcesContent":["import { mimeTypes } from \"./mimeTypes.js\";\nimport type { PresignedPostPayloadData } from \"~/features/upload/types.js\";\n\nexport class FileExtension {\n private data: PresignedPostPayloadData;\n\n constructor(data: PresignedPostPayloadData) {\n this.data = data;\n }\n\n getValue() {\n const name = (this.data.key || this.data.name).toLowerCase();\n\n const maybeExt = name.split(\".\").pop() as string;\n const extensions = mimeTypes[this.data.type];\n if (extensions && !extensions.includes(maybeExt)) {\n return extensions[0];\n }\n\n return \"\";\n }\n}\n"],"names":["FileExtension","data","name","maybeExt","extensions","mimeTypes"],"mappings":";AAGO,MAAMA;IAGT,YAAYC,IAA8B,CAAE;QACxC,IAAI,CAAC,IAAI,GAAGA;IAChB;IAEA,WAAW;QACP,MAAMC,OAAQ,KAAI,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAG,EAAG,WAAW;QAE1D,MAAMC,WAAWD,KAAK,KAAK,CAAC,KAAK,GAAG;QACpC,MAAME,aAAaC,+BAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5C,IAAID,cAAc,CAACA,WAAW,QAAQ,CAACD,WACnC,OAAOC,UAAU,CAAC,EAAE;QAGxB,OAAO;IACX;AACJ"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { PresignedPostPayloadData } from "../../../features/upload/types.js";
|
|
2
|
+
export declare class FileKey {
|
|
3
|
+
private data;
|
|
4
|
+
private extension;
|
|
5
|
+
private key;
|
|
6
|
+
constructor(data: PresignedPostPayloadData);
|
|
7
|
+
getExtension(): string;
|
|
8
|
+
setKey(key: string): this;
|
|
9
|
+
toString(): string;
|
|
10
|
+
private getSanitizedKey;
|
|
11
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import sanitize_filename from "sanitize-filename";
|
|
2
|
+
import { FileExtension } from "./FileExtension.js";
|
|
3
|
+
class FileKey {
|
|
4
|
+
constructor(data){
|
|
5
|
+
this.data = data;
|
|
6
|
+
this.extension = new FileExtension(data);
|
|
7
|
+
this.key = this.getSanitizedKey();
|
|
8
|
+
}
|
|
9
|
+
getExtension() {
|
|
10
|
+
return this.extension.getValue();
|
|
11
|
+
}
|
|
12
|
+
setKey(key) {
|
|
13
|
+
this.key = key;
|
|
14
|
+
return this;
|
|
15
|
+
}
|
|
16
|
+
toString() {
|
|
17
|
+
return [
|
|
18
|
+
this.data.keyPrefix,
|
|
19
|
+
this.data.id,
|
|
20
|
+
this.key
|
|
21
|
+
].filter(Boolean).join("/");
|
|
22
|
+
}
|
|
23
|
+
getSanitizedKey() {
|
|
24
|
+
const key = sanitize_filename(this.data.key || this.data.name).replace(/\s/g, "");
|
|
25
|
+
return [
|
|
26
|
+
key,
|
|
27
|
+
this.getExtension()
|
|
28
|
+
].filter(Boolean).join(".");
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export { FileKey };
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=FileKey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/upload/utils/FileKey.js","sources":["../../../../src/features/upload/utils/FileKey.ts"],"sourcesContent":["import sanitizeFilename from \"sanitize-filename\";\nimport type { PresignedPostPayloadData } from \"~/features/upload/types.js\";\nimport { FileExtension } from \"./FileExtension.js\";\n\nexport class FileKey {\n private data: PresignedPostPayloadData;\n private extension: FileExtension;\n private key: string;\n\n constructor(data: PresignedPostPayloadData) {\n this.data = data;\n this.extension = new FileExtension(data);\n this.key = this.getSanitizedKey();\n }\n\n getExtension() {\n return this.extension.getValue();\n }\n\n setKey(key: string) {\n this.key = key;\n return this;\n }\n\n toString() {\n return [this.data.keyPrefix, this.data.id, this.key].filter(Boolean).join(\"/\");\n }\n\n private getSanitizedKey() {\n const key = sanitizeFilename(this.data.key || this.data.name).replace(/\\s/g, \"\");\n\n return [key, this.getExtension()].filter(Boolean).join(\".\");\n }\n}\n"],"names":["FileKey","data","FileExtension","key","Boolean","sanitizeFilename"],"mappings":";;AAIO,MAAMA;IAKT,YAAYC,IAA8B,CAAE;QACxC,IAAI,CAAC,IAAI,GAAGA;QACZ,IAAI,CAAC,SAAS,GAAG,IAAIC,cAAcD;QACnC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,eAAe;IACnC;IAEA,eAAe;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ;IAClC;IAEA,OAAOE,GAAW,EAAE;QAChB,IAAI,CAAC,GAAG,GAAGA;QACX,OAAO,IAAI;IACf;IAEA,WAAW;QACP,OAAO;YAAC,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,IAAI,CAAC,GAAG;SAAC,CAAC,MAAM,CAACC,SAAS,IAAI,CAAC;IAC9E;IAEQ,kBAAkB;QACtB,MAAMD,MAAME,kBAAiB,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO;QAE7E,OAAO;YAACF;YAAK,IAAI,CAAC,YAAY;SAAG,CAAC,MAAM,CAACC,SAAS,IAAI,CAAC;IAC3D;AACJ"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { FileData, PresignedPostPayloadData } from "../../../features/upload/types.js";
|
|
2
|
+
import type { FileModifier } from "./FileUploadModifier.js";
|
|
3
|
+
export interface FileToSign {
|
|
4
|
+
name: string;
|
|
5
|
+
key: string;
|
|
6
|
+
type: string;
|
|
7
|
+
size: number;
|
|
8
|
+
}
|
|
9
|
+
export declare class FileNormalizer {
|
|
10
|
+
private readonly modifier;
|
|
11
|
+
constructor(modifier?: FileModifier);
|
|
12
|
+
normalizeFile(payload: PresignedPostPayloadData): Promise<FileData>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { mdbid } from "@webiny/utils";
|
|
2
|
+
import { FileKey } from "./FileKey.js";
|
|
3
|
+
import { mimeTypes as external_mimeTypes_js_mimeTypes } from "./mimeTypes.js";
|
|
4
|
+
const extensionToMime = new Map();
|
|
5
|
+
for (const [mime, extensions] of Object.entries(external_mimeTypes_js_mimeTypes))for (const ext of extensions)if (!extensionToMime.has(ext)) extensionToMime.set(ext, mime);
|
|
6
|
+
function resolveTypeFromName(name) {
|
|
7
|
+
const ext = name.slice(name.lastIndexOf(".") + 1).toLowerCase();
|
|
8
|
+
return extensionToMime.get(ext) || "application/octet-stream";
|
|
9
|
+
}
|
|
10
|
+
class FileNormalizer {
|
|
11
|
+
constructor(modifier){
|
|
12
|
+
this.modifier = modifier;
|
|
13
|
+
}
|
|
14
|
+
async normalizeFile(payload) {
|
|
15
|
+
const data = {
|
|
16
|
+
...payload,
|
|
17
|
+
id: payload.id || mdbid(),
|
|
18
|
+
type: payload.type || resolveTypeFromName(payload.name)
|
|
19
|
+
};
|
|
20
|
+
const key = new FileKey(data);
|
|
21
|
+
const defaultKey = key.toString();
|
|
22
|
+
const file = {
|
|
23
|
+
name: data.name,
|
|
24
|
+
type: data.type,
|
|
25
|
+
key: defaultKey,
|
|
26
|
+
size: data.size
|
|
27
|
+
};
|
|
28
|
+
if (this.modifier) Object.assign(file, await this.modifier(file));
|
|
29
|
+
if (defaultKey !== file.key) key.setKey(file.key);
|
|
30
|
+
return {
|
|
31
|
+
id: data.id,
|
|
32
|
+
key: key.toString(),
|
|
33
|
+
name: file.name,
|
|
34
|
+
size: file.size,
|
|
35
|
+
type: file.type
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export { FileNormalizer };
|
|
40
|
+
|
|
41
|
+
//# sourceMappingURL=FileNormalizer.js.map
|