@webiny/api-file-manager 6.4.5 → 6.6.0-alpha.0
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/AssetDeliveryRoute.d.ts +14 -0
- package/delivery/AssetDeliveryRoute.js +65 -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/settings/validation.js +1 -1
- 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 +1 -0
- package/exports/api/file-manager/file.js +1 -0
- package/features/FileManagerFeature.js +6 -0
- package/features/FileManagerFeature.js.map +1 -1
- package/features/FileModelContextualSchema.d.ts +13 -0
- package/features/FileModelContextualSchema.js +31 -0
- package/features/FileModelContextualSchema.js.map +1 -0
- 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.d.ts +23 -12
- package/features/assetDelivery/abstractions.js.map +1 -1
- package/features/assetDelivery/feature.js +6 -0
- 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/transformation/AssetKeyGenerator.d.ts +9 -0
- package/features/assetDelivery/transformation/AssetKeyGenerator.js +24 -0
- package/features/assetDelivery/transformation/AssetKeyGenerator.js.map +1 -0
- 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/WidthCollection.d.ts +8 -0
- package/features/assetDelivery/transformation/WidthCollection.js +22 -0
- package/features/assetDelivery/transformation/WidthCollection.js.map +1 -0
- package/features/assetDelivery/transformation/index.d.ts +4 -0
- package/features/assetDelivery/transformation/index.js +4 -0
- package/features/assetDelivery/transformation/utils.d.ts +9 -0
- package/features/assetDelivery/transformation/utils.js +31 -0
- package/features/assetDelivery/transformation/utils.js.map +1 -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/FileUrlGenerator/FileUrlGenerator.d.ts +14 -0
- package/features/file/FileUrlGenerator/FileUrlGenerator.js +25 -0
- package/features/file/FileUrlGenerator/FileUrlGenerator.js.map +1 -0
- package/features/file/FileUrlGenerator/abstractions.d.ts +3 -3
- package/features/file/FileUrlGenerator/abstractions.js +1 -1
- package/features/file/FileUrlGenerator/abstractions.js.map +1 -1
- package/features/file/FileUrlGenerator/feature.d.ts +4 -0
- package/features/file/FileUrlGenerator/feature.js +11 -0
- package/features/file/FileUrlGenerator/feature.js.map +1 -0
- package/features/file/FileUrlGenerator/index.d.ts +1 -0
- package/features/file/FileUrlGenerator/index.js +1 -0
- 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/settings/SettingsInstaller/SettingsInstaller.d.ts +3 -1
- package/features/settings/SettingsInstaller/SettingsInstaller.js +7 -4
- package/features/settings/SettingsInstaller/SettingsInstaller.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/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 +15 -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 +25 -0
- package/graphql/FmGraphQLSchema.js +451 -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 +24 -17
- 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
|
+
{"version":3,"file":"features/file/GetFileByUrl/abstractions.js","sources":["../../../../src/features/file/GetFileByUrl/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { File } from \"~/domain/file/types.js\";\nimport { FileNotAuthorizedError } from \"~/domain/file/errors.js\";\nimport type { FilePersistenceError } from \"~/domain/file/errors.js\";\n\nexport interface IGetFileByUrlUseCase {\n execute(url: string): Promise<Result<File | undefined, UseCaseError>>;\n}\n\nexport interface IGetFileByUrlUseCaseErrors {\n notAuthorized: FileNotAuthorizedError;\n persistence: FilePersistenceError;\n}\n\ntype UseCaseError = IGetFileByUrlUseCaseErrors[keyof IGetFileByUrlUseCaseErrors];\n\n/* Retrieve a file by its public URL. */\nexport const GetFileByUrlUseCase = createAbstraction<IGetFileByUrlUseCase>(\"GetFileByUrlUseCase\");\n\nexport namespace GetFileByUrlUseCase {\n export type Interface = IGetFileByUrlUseCase;\n export type Error = UseCaseError;\n}\n"],"names":["GetFileByUrlUseCase","createAbstraction"],"mappings":";AAkBO,MAAMA,sBAAsBC,kBAAwC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { GetFileByUrlUseCase } from "./GetFileByUrlUseCase.js";
|
|
3
|
+
const GetFileByUrlFeature = createFeature({
|
|
4
|
+
name: "FileManager/GetFileByUrl",
|
|
5
|
+
register (container) {
|
|
6
|
+
container.register(GetFileByUrlUseCase);
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
export { GetFileByUrlFeature };
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/file/GetFileByUrl/feature.js","sources":["../../../../src/features/file/GetFileByUrl/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { GetFileByUrlUseCase } from \"./GetFileByUrlUseCase.js\";\n\nexport const GetFileByUrlFeature = createFeature({\n name: \"FileManager/GetFileByUrl\",\n register(container) {\n container.register(GetFileByUrlUseCase);\n }\n});\n"],"names":["GetFileByUrlFeature","createFeature","container","GetFileByUrlUseCase"],"mappings":";;AAGO,MAAMA,sBAAsBC,cAAc;IAC7C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { GetFileByUrlUseCase } from "./abstractions.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { GetFileByUrlUseCase } from "./abstractions.js";
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { AppInstaller } from "@webiny/api-core/features/tenancy/InstallTenant/index.js";
|
|
2
2
|
import { UpdateSettingsUseCase } from "../../../features/settings/UpdateSettings/abstractions.js";
|
|
3
3
|
import { KeyValueStore } from "@webiny/api-core/features/keyValueStore/index.js";
|
|
4
|
+
import { BuildParams } from "@webiny/api-core/features/buildParams/index.js";
|
|
4
5
|
declare class SettingsInstallerImpl implements AppInstaller.Interface {
|
|
5
6
|
private updateSettings;
|
|
6
7
|
private keyValueStore;
|
|
8
|
+
private buildParams;
|
|
7
9
|
readonly alwaysRun = true;
|
|
8
10
|
readonly appName = "FileManager";
|
|
9
11
|
readonly dependsOn: never[];
|
|
10
|
-
constructor(updateSettings: UpdateSettingsUseCase.Interface, keyValueStore: KeyValueStore.Interface);
|
|
12
|
+
constructor(updateSettings: UpdateSettingsUseCase.Interface, keyValueStore: KeyValueStore.Interface, buildParams: BuildParams.Interface);
|
|
11
13
|
install(): Promise<void>;
|
|
12
14
|
uninstall(): Promise<void>;
|
|
13
15
|
}
|
|
@@ -1,20 +1,22 @@
|
|
|
1
|
-
import { ServiceDiscovery } from "@webiny/api";
|
|
1
|
+
import { ServiceDiscovery } from "@webiny/api-core/features/serviceDiscovery/index.js";
|
|
2
2
|
import { createImplementation } from "@webiny/feature/api";
|
|
3
3
|
import { AppInstaller } from "@webiny/api-core/features/tenancy/InstallTenant/index.js";
|
|
4
4
|
import { FILE_MANAGER_GENERAL_SETTINGS } from "../../../domain/settings/constants.js";
|
|
5
5
|
import { UpdateSettingsUseCase } from "../UpdateSettings/abstractions.js";
|
|
6
6
|
import { KeyValueStore } from "@webiny/api-core/features/keyValueStore/index.js";
|
|
7
|
+
import { BuildParams } from "@webiny/api-core/features/buildParams/index.js";
|
|
7
8
|
class SettingsInstallerImpl {
|
|
8
|
-
constructor(updateSettings, keyValueStore){
|
|
9
|
+
constructor(updateSettings, keyValueStore, buildParams){
|
|
9
10
|
this.updateSettings = updateSettings;
|
|
10
11
|
this.keyValueStore = keyValueStore;
|
|
12
|
+
this.buildParams = buildParams;
|
|
11
13
|
this.alwaysRun = true;
|
|
12
14
|
this.appName = "FileManager";
|
|
13
15
|
this.dependsOn = [];
|
|
14
16
|
}
|
|
15
17
|
async install() {
|
|
16
18
|
const manifest = await ServiceDiscovery.load();
|
|
17
|
-
const domain = manifest?.api?.cloudfront.
|
|
19
|
+
const domain = manifest?.api?.cloudfront?.domain ?? this.buildParams.get("WEBINY_API_URL") ?? "";
|
|
18
20
|
await this.updateSettings.execute({
|
|
19
21
|
srcPrefix: `${domain}/files`
|
|
20
22
|
});
|
|
@@ -28,7 +30,8 @@ const SettingsInstaller = createImplementation({
|
|
|
28
30
|
implementation: SettingsInstallerImpl,
|
|
29
31
|
dependencies: [
|
|
30
32
|
UpdateSettingsUseCase,
|
|
31
|
-
KeyValueStore
|
|
33
|
+
KeyValueStore,
|
|
34
|
+
BuildParams
|
|
32
35
|
]
|
|
33
36
|
});
|
|
34
37
|
export { SettingsInstaller };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/settings/SettingsInstaller/SettingsInstaller.js","sources":["../../../../src/features/settings/SettingsInstaller/SettingsInstaller.ts"],"sourcesContent":["import { ServiceDiscovery } from \"@webiny/api\";\nimport { createImplementation } from \"@webiny/feature/api\";\nimport { AppInstaller } from \"@webiny/api-core/features/tenancy/InstallTenant/index.js\";\nimport { FILE_MANAGER_GENERAL_SETTINGS } from \"~/domain/settings/constants.js\";\nimport { UpdateSettingsUseCase } from \"~/features/settings/UpdateSettings/abstractions.js\";\nimport { KeyValueStore } from \"@webiny/api-core/features/keyValueStore/index.js\";\n\nclass SettingsInstallerImpl implements AppInstaller.Interface {\n readonly alwaysRun = true;\n readonly appName = \"FileManager\";\n readonly dependsOn = [];\n\n constructor(\n private updateSettings: UpdateSettingsUseCase.Interface,\n private keyValueStore: KeyValueStore.Interface\n ) {}\n\n async install(): Promise<void> {\n // TODO: move this to api-core with a proper abstraction\n const manifest = await ServiceDiscovery.load();\n\n // If no records in the database, `manifest` object is empty POJO.\n // That's why the heavy `?.` usage.\n
|
|
1
|
+
{"version":3,"file":"features/settings/SettingsInstaller/SettingsInstaller.js","sources":["../../../../src/features/settings/SettingsInstaller/SettingsInstaller.ts"],"sourcesContent":["import { ServiceDiscovery } from \"@webiny/api-core/features/serviceDiscovery/index.js\";\nimport { createImplementation } from \"@webiny/feature/api\";\nimport { AppInstaller } from \"@webiny/api-core/features/tenancy/InstallTenant/index.js\";\nimport { FILE_MANAGER_GENERAL_SETTINGS } from \"~/domain/settings/constants.js\";\nimport { UpdateSettingsUseCase } from \"~/features/settings/UpdateSettings/abstractions.js\";\nimport { KeyValueStore } from \"@webiny/api-core/features/keyValueStore/index.js\";\nimport { BuildParams } from \"@webiny/api-core/features/buildParams/index.js\";\n\nclass SettingsInstallerImpl implements AppInstaller.Interface {\n readonly alwaysRun = true;\n readonly appName = \"FileManager\";\n readonly dependsOn = [];\n\n constructor(\n private updateSettings: UpdateSettingsUseCase.Interface,\n private keyValueStore: KeyValueStore.Interface,\n private buildParams: BuildParams.Interface\n ) {}\n\n async install(): Promise<void> {\n // TODO: move this to api-core with a proper abstraction\n const manifest = await ServiceDiscovery.load();\n\n // If no records in the database, `manifest` object is empty POJO.\n // That's why the heavy `?.` usage.\n //\n // The AWS hosting type serves files from a CloudFront domain (in the manifest). The self-hosted\n // (server) hosting type has no CloudFront — files are served by the api's own `/files/*` route — so\n // fall back to the configured API origin, read from the WEBINY_API_URL build param (baked by\n // Infra.ApiUrl), not a process.env read.\n const domain =\n manifest?.api?.cloudfront?.domain ??\n this.buildParams.get<string>(\"WEBINY_API_URL\") ??\n \"\";\n\n await this.updateSettings.execute({\n srcPrefix: `${domain}/files`\n });\n }\n\n async uninstall(): Promise<void> {\n await this.keyValueStore.delete(FILE_MANAGER_GENERAL_SETTINGS);\n }\n}\n\nexport const SettingsInstaller = createImplementation({\n abstraction: AppInstaller,\n implementation: SettingsInstallerImpl,\n dependencies: [UpdateSettingsUseCase, KeyValueStore, BuildParams]\n});\n"],"names":["SettingsInstallerImpl","updateSettings","keyValueStore","buildParams","manifest","ServiceDiscovery","domain","FILE_MANAGER_GENERAL_SETTINGS","SettingsInstaller","createImplementation","AppInstaller","UpdateSettingsUseCase","KeyValueStore","BuildParams"],"mappings":";;;;;;;AAQA,MAAMA;IAKF,YACYC,cAA+C,EAC/CC,aAAsC,EACtCC,WAAkC,CAC5C;aAHUF,cAAc,GAAdA;aACAC,aAAa,GAAbA;aACAC,WAAW,GAAXA;aAPH,SAAS,GAAG;aACZ,OAAO,GAAG;aACV,SAAS,GAAG,EAAE;IAMpB;IAEH,MAAM,UAAyB;QAE3B,MAAMC,WAAW,MAAMC,iBAAiB,IAAI;QAS5C,MAAMC,SACFF,UAAU,KAAK,YAAY,UAC3B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAS,qBAC7B;QAEJ,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YAC9B,WAAW,GAAGE,OAAO,MAAM,CAAC;QAChC;IACJ;IAEA,MAAM,YAA2B;QAC7B,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAACC;IACpC;AACJ;AAEO,MAAMC,oBAAoBC,qBAAqB;IAClD,aAAaC;IACb,gBAAgBV;IAChB,cAAc;QAACW;QAAuBC;QAAeC;KAAY;AACrE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface ICompleteMultiPartUploadParams {
|
|
2
|
+
fileKey: string;
|
|
3
|
+
uploadId: string;
|
|
4
|
+
}
|
|
5
|
+
export interface ICompleteMultiPartUploadUseCase {
|
|
6
|
+
execute(params: ICompleteMultiPartUploadParams): Promise<void>;
|
|
7
|
+
}
|
|
8
|
+
export declare const CompleteMultiPartUploadUseCase: import("@webiny/di").Abstraction<ICompleteMultiPartUploadUseCase>;
|
|
9
|
+
export declare namespace CompleteMultiPartUploadUseCase {
|
|
10
|
+
type Interface = ICompleteMultiPartUploadUseCase;
|
|
11
|
+
type Params = ICompleteMultiPartUploadParams;
|
|
12
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/upload/CompleteMultiPartUpload/abstractions.js","sources":["../../../../src/features/upload/CompleteMultiPartUpload/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\n\nexport interface ICompleteMultiPartUploadParams {\n fileKey: string;\n uploadId: string;\n}\n\nexport interface ICompleteMultiPartUploadUseCase {\n execute(params: ICompleteMultiPartUploadParams): Promise<void>;\n}\n\nexport const CompleteMultiPartUploadUseCase = createAbstraction<ICompleteMultiPartUploadUseCase>(\n \"CompleteMultiPartUploadUseCase\"\n);\n\nexport namespace CompleteMultiPartUploadUseCase {\n export type Interface = ICompleteMultiPartUploadUseCase;\n export type Params = ICompleteMultiPartUploadParams;\n}\n"],"names":["CompleteMultiPartUploadUseCase","createAbstraction"],"mappings":";AAWO,MAAMA,iCAAiCC,kBAC1C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { CompleteMultiPartUploadUseCase } from "./abstractions.js";
|
|
@@ -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,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,15 @@
|
|
|
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
|
+
const WriteFileMetadataFeature = createFeature({
|
|
6
|
+
name: "FileManager/WriteFileMetadata",
|
|
7
|
+
register (container) {
|
|
8
|
+
container.register(MetadataWriter);
|
|
9
|
+
container.register(WriteMetadataAfterCreateHandler);
|
|
10
|
+
container.register(WriteMetadataAfterBatchCreateHandler);
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
export { WriteFileMetadataFeature };
|
|
14
|
+
|
|
15
|
+
//# 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\";\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 }\n});\n"],"names":["WriteFileMetadataFeature","createFeature","container","MetadataWriter","WriteMetadataAfterCreateHandler","WriteMetadataAfterBatchCreateHandler"],"mappings":";;;;AAKO,MAAMA,2BAA2BC,cAAc;IAClD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;QACnBD,UAAU,QAAQ,CAACE;QACnBF,UAAU,QAAQ,CAACG;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"}
|