@webiny/api-file-manager 0.0.0-unstable.b14eaecf38 → 0.0.0-unstable.b6d7105cee
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/README.md +7 -13
- package/constants.d.ts +1 -0
- package/constants.js +4 -0
- package/constants.js.map +1 -0
- package/delivery/AssetDelivery/Asset.d.ts +29 -0
- package/delivery/AssetDelivery/Asset.js +56 -0
- package/delivery/AssetDelivery/Asset.js.map +1 -0
- package/delivery/AssetDelivery/AssetRequest.d.ts +26 -0
- package/delivery/AssetDelivery/AssetRequest.js +26 -0
- package/delivery/AssetDelivery/AssetRequest.js.map +1 -0
- package/delivery/AssetDelivery/abstractions/AssetReply.d.ts +26 -0
- package/delivery/AssetDelivery/abstractions/AssetReply.js +37 -0
- package/delivery/AssetDelivery/abstractions/AssetReply.js.map +1 -0
- package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.d.ts +2 -0
- package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.js +7 -0
- package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.js.map +1 -0
- package/delivery/index.d.ts +7 -0
- package/delivery/index.js +4 -0
- package/delivery/setupAssetDelivery.d.ts +1 -0
- package/delivery/setupAssetDelivery.js +72 -0
- package/delivery/setupAssetDelivery.js.map +1 -0
- package/domain/file/abstractions.d.ts +9 -0
- package/domain/file/abstractions.js +5 -0
- package/domain/file/abstractions.js.map +1 -0
- package/domain/file/errors.d.ts +59 -0
- package/domain/file/errors.js +80 -0
- package/domain/file/errors.js.map +1 -0
- package/domain/file/file.model.d.ts +12 -0
- package/domain/file/file.model.js +69 -0
- package/domain/file/file.model.js.map +1 -0
- package/domain/file/types.d.ts +53 -0
- package/domain/identity/Identity.d.ts +9 -0
- package/domain/identity/Identity.js +12 -0
- package/domain/identity/Identity.js.map +1 -0
- package/domain/permissionsSchema.d.ts +16 -0
- package/domain/permissionsSchema.js +30 -0
- package/domain/permissionsSchema.js.map +1 -0
- package/domain/settings/constants.d.ts +1 -0
- package/domain/settings/constants.js +4 -0
- package/domain/settings/constants.js.map +1 -0
- package/domain/settings/errors.d.ts +18 -0
- package/domain/settings/errors.js +28 -0
- package/domain/settings/errors.js.map +1 -0
- package/domain/settings/types.d.ts +10 -0
- package/domain/settings/types.js +0 -0
- package/domain/settings/validation.d.ts +6 -0
- package/domain/settings/validation.js +27 -0
- package/domain/settings/validation.js.map +1 -0
- package/exports/api/file-manager/assetDelivery.d.ts +18 -0
- package/exports/api/file-manager/assetDelivery.js +15 -0
- package/exports/api/file-manager/file.d.ts +13 -0
- package/exports/api/file-manager/file.js +13 -0
- package/exports/api/file-manager/permissions.d.ts +1 -0
- package/exports/api/file-manager/permissions.js +1 -0
- package/exports/api/file-manager/settings.d.ts +3 -0
- package/exports/api/file-manager/settings.js +3 -0
- package/features/FileManagerFeature.d.ts +4 -0
- package/features/FileManagerFeature.js +43 -0
- package/features/FileManagerFeature.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/AssetRequest/AssetRequest.d.ts +8 -0
- package/features/assetDelivery/AssetRequest/AssetRequest.js +14 -0
- package/features/assetDelivery/AssetRequest/AssetRequest.js.map +1 -0
- package/features/assetDelivery/AssetRequest/abstractions.d.ts +11 -0
- package/features/assetDelivery/AssetRequest/abstractions.js +5 -0
- package/features/assetDelivery/AssetRequest/abstractions.js.map +1 -0
- package/features/assetDelivery/AssetRequest/index.d.ts +1 -0
- package/features/assetDelivery/AssetRequest/index.js +1 -0
- package/features/assetDelivery/FilesAssetRequestResolver.d.ts +11 -0
- package/features/assetDelivery/FilesAssetRequestResolver.js +33 -0
- package/features/assetDelivery/FilesAssetRequestResolver.js.map +1 -0
- package/features/assetDelivery/NullAssetOutputStrategy.d.ts +8 -0
- package/features/assetDelivery/NullAssetOutputStrategy.js +14 -0
- package/features/assetDelivery/NullAssetOutputStrategy.js.map +1 -0
- package/features/assetDelivery/NullAssetReply.d.ts +5 -0
- package/features/assetDelivery/NullAssetReply.js +17 -0
- package/features/assetDelivery/NullAssetReply.js.map +1 -0
- package/features/assetDelivery/NullAssetResolver.d.ts +8 -0
- package/features/assetDelivery/NullAssetResolver.js +13 -0
- package/features/assetDelivery/NullAssetResolver.js.map +1 -0
- 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/AssetAuthorizer.d.ts +9 -0
- package/features/assetDelivery/abstractions/AssetAuthorizer.js +5 -0
- package/features/assetDelivery/abstractions/AssetAuthorizer.js.map +1 -0
- package/features/assetDelivery/abstractions/AssetContentsReader.d.ts +9 -0
- package/features/assetDelivery/abstractions/AssetContentsReader.js +5 -0
- package/features/assetDelivery/abstractions/AssetContentsReader.js.map +1 -0
- package/features/assetDelivery/abstractions/AssetOutputStrategy.d.ts +11 -0
- package/features/assetDelivery/abstractions/AssetOutputStrategy.js +5 -0
- package/features/assetDelivery/abstractions/AssetOutputStrategy.js.map +1 -0
- package/features/assetDelivery/abstractions/AssetProcessor.d.ts +11 -0
- package/features/assetDelivery/abstractions/AssetProcessor.js +5 -0
- package/features/assetDelivery/abstractions/AssetProcessor.js.map +1 -0
- package/features/assetDelivery/abstractions/AssetRequestResolver.d.ts +11 -0
- package/features/assetDelivery/abstractions/AssetRequestResolver.js +5 -0
- package/features/assetDelivery/abstractions/AssetRequestResolver.js.map +1 -0
- package/features/assetDelivery/abstractions/AssetResolver.d.ts +11 -0
- package/features/assetDelivery/abstractions/AssetResolver.js +5 -0
- package/features/assetDelivery/abstractions/AssetResolver.js.map +1 -0
- package/features/assetDelivery/abstractions/AssetTransformationStrategy.d.ts +11 -0
- package/features/assetDelivery/abstractions/AssetTransformationStrategy.js +5 -0
- package/features/assetDelivery/abstractions/AssetTransformationStrategy.js.map +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/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/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.d.ts +4 -0
- package/features/assetDelivery/feature.js +38 -0
- package/features/assetDelivery/feature.js.map +1 -0
- package/features/assetDelivery/privateFiles/NotAuthorizedAssetReply.d.ts +4 -0
- package/features/assetDelivery/privateFiles/NotAuthorizedAssetReply.js +20 -0
- package/features/assetDelivery/privateFiles/NotAuthorizedAssetReply.js.map +1 -0
- package/features/assetDelivery/privateFiles/NotAuthorizedOutputStrategy.d.ts +5 -0
- package/features/assetDelivery/privateFiles/NotAuthorizedOutputStrategy.js +9 -0
- package/features/assetDelivery/privateFiles/NotAuthorizedOutputStrategy.js.map +1 -0
- package/features/assetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.d.ts +11 -0
- package/features/assetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js +26 -0
- package/features/assetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js.map +1 -0
- package/features/assetDelivery/privateFiles/PrivateCache.d.ts +8 -0
- package/features/assetDelivery/privateFiles/PrivateCache.js +22 -0
- package/features/assetDelivery/privateFiles/PrivateCache.js.map +1 -0
- package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.d.ts +12 -0
- package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.js +34 -0
- package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.js.map +1 -0
- package/features/assetDelivery/privateFiles/PrivateFilesAssetProcessor.d.ts +19 -0
- package/features/assetDelivery/privateFiles/PrivateFilesAssetProcessor.js +66 -0
- package/features/assetDelivery/privateFiles/PrivateFilesAssetProcessor.js.map +1 -0
- package/features/assetDelivery/privateFiles/PublicCache.d.ts +8 -0
- package/features/assetDelivery/privateFiles/PublicCache.js +22 -0
- package/features/assetDelivery/privateFiles/PublicCache.js.map +1 -0
- package/features/assetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.d.ts +10 -0
- package/features/assetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js +24 -0
- package/features/assetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js.map +1 -0
- package/features/assetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.d.ts +10 -0
- package/features/assetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js +24 -0
- package/features/assetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.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/TransformationAssetProcessor.d.ts +7 -0
- package/features/assetDelivery/transformation/TransformationAssetProcessor.js +25 -0
- package/features/assetDelivery/transformation/TransformationAssetProcessor.js.map +1 -0
- 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 +15 -0
- package/features/file/CreateFile/CreateFileRepository.js +32 -0
- package/features/file/CreateFile/CreateFileRepository.js.map +1 -0
- package/features/file/CreateFile/CreateFileUseCase.d.ts +21 -0
- package/features/file/CreateFile/CreateFileUseCase.js +83 -0
- package/features/file/CreateFile/CreateFileUseCase.js.map +1 -0
- package/features/file/CreateFile/abstractions.d.ts +60 -0
- package/features/file/CreateFile/abstractions.js +6 -0
- package/features/file/CreateFile/abstractions.js.map +1 -0
- package/features/file/CreateFile/events.d.ts +31 -0
- package/features/file/CreateFile/events.js +23 -0
- package/features/file/CreateFile/events.js.map +1 -0
- package/features/file/CreateFile/feature.d.ts +4 -0
- package/features/file/CreateFile/feature.js +13 -0
- package/features/file/CreateFile/feature.js.map +1 -0
- package/features/file/CreateFile/index.d.ts +2 -0
- package/features/file/CreateFile/index.js +2 -0
- package/features/file/CreateFilesInBatch/CreateFilesInBatchRepository.d.ts +13 -0
- package/features/file/CreateFilesInBatch/CreateFilesInBatchRepository.js +22 -0
- package/features/file/CreateFilesInBatch/CreateFilesInBatchRepository.js.map +1 -0
- package/features/file/CreateFilesInBatch/CreateFilesInBatchUseCase.d.ts +19 -0
- package/features/file/CreateFilesInBatch/CreateFilesInBatchUseCase.js +73 -0
- package/features/file/CreateFilesInBatch/CreateFilesInBatchUseCase.js.map +1 -0
- package/features/file/CreateFilesInBatch/abstractions.d.ts +42 -0
- package/features/file/CreateFilesInBatch/abstractions.js +6 -0
- package/features/file/CreateFilesInBatch/abstractions.js.map +1 -0
- package/features/file/CreateFilesInBatch/events.d.ts +31 -0
- package/features/file/CreateFilesInBatch/events.js +23 -0
- package/features/file/CreateFilesInBatch/events.js.map +1 -0
- package/features/file/CreateFilesInBatch/feature.d.ts +4 -0
- package/features/file/CreateFilesInBatch/feature.js +13 -0
- package/features/file/CreateFilesInBatch/feature.js.map +1 -0
- package/features/file/CreateFilesInBatch/index.d.ts +1 -0
- package/features/file/CreateFilesInBatch/index.js +1 -0
- package/features/file/DeleteFile/DeleteFileRepository.d.ts +15 -0
- package/features/file/DeleteFile/DeleteFileRepository.js +31 -0
- package/features/file/DeleteFile/DeleteFileRepository.js.map +1 -0
- package/features/file/DeleteFile/DeleteFileUseCase.d.ts +17 -0
- package/features/file/DeleteFile/DeleteFileUseCase.js +43 -0
- package/features/file/DeleteFile/DeleteFileUseCase.js.map +1 -0
- package/features/file/DeleteFile/abstractions.d.ts +39 -0
- package/features/file/DeleteFile/abstractions.js +6 -0
- package/features/file/DeleteFile/abstractions.js.map +1 -0
- package/features/file/DeleteFile/events.d.ts +29 -0
- package/features/file/DeleteFile/events.js +23 -0
- package/features/file/DeleteFile/events.js.map +1 -0
- package/features/file/DeleteFile/feature.d.ts +4 -0
- package/features/file/DeleteFile/feature.js +13 -0
- package/features/file/DeleteFile/feature.js.map +1 -0
- package/features/file/DeleteFile/index.d.ts +2 -0
- package/features/file/DeleteFile/index.js +2 -0
- package/features/file/FileUrlGenerator/FileUrlGenerator.d.ts +15 -0
- package/features/file/FileUrlGenerator/FileUrlGenerator.js +33 -0
- package/features/file/FileUrlGenerator/FileUrlGenerator.js.map +1 -0
- package/features/file/FileUrlGenerator/abstractions.d.ts +8 -0
- package/features/file/FileUrlGenerator/abstractions.js +5 -0
- package/features/file/FileUrlGenerator/abstractions.js.map +1 -0
- 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/GetFile/GetFileRepository.d.ts +15 -0
- package/features/file/GetFile/GetFileRepository.js +33 -0
- package/features/file/GetFile/GetFileRepository.js.map +1 -0
- package/features/file/GetFile/GetFileUseCase.d.ts +14 -0
- package/features/file/GetFile/GetFileUseCase.js +29 -0
- package/features/file/GetFile/GetFileUseCase.js.map +1 -0
- package/features/file/GetFile/abstractions.d.ts +40 -0
- package/features/file/GetFile/abstractions.js +6 -0
- package/features/file/GetFile/abstractions.js.map +1 -0
- package/features/file/GetFile/feature.d.ts +4 -0
- package/features/file/GetFile/feature.js +13 -0
- package/features/file/GetFile/feature.js.map +1 -0
- package/features/file/GetFile/index.d.ts +1 -0
- package/features/file/GetFile/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/file/GetFileContentsById/abstractions.d.ts +20 -0
- package/features/file/GetFileContentsById/abstractions.js +5 -0
- package/features/file/GetFileContentsById/abstractions.js.map +1 -0
- package/features/file/GetFileContentsById/index.d.ts +1 -0
- package/features/file/GetFileContentsById/index.js +1 -0
- package/features/file/GetFileContentsByKey/abstractions.d.ts +17 -0
- package/features/file/GetFileContentsByKey/abstractions.js +5 -0
- package/features/file/GetFileContentsByKey/abstractions.js.map +1 -0
- package/features/file/GetFileContentsByKey/index.d.ts +1 -0
- package/features/file/GetFileContentsByKey/index.js +1 -0
- package/features/file/ListFiles/ListFilesRepository.d.ts +18 -0
- package/features/file/ListFiles/ListFilesRepository.js +53 -0
- package/features/file/ListFiles/ListFilesRepository.js.map +1 -0
- package/features/file/ListFiles/ListFilesUseCase.d.ts +15 -0
- package/features/file/ListFiles/ListFilesUseCase.js +44 -0
- package/features/file/ListFiles/ListFilesUseCase.js.map +1 -0
- package/features/file/ListFiles/abstractions.d.ts +49 -0
- package/features/file/ListFiles/abstractions.js +6 -0
- package/features/file/ListFiles/abstractions.js.map +1 -0
- package/features/file/ListFiles/feature.d.ts +4 -0
- package/features/file/ListFiles/feature.js +13 -0
- package/features/file/ListFiles/feature.js.map +1 -0
- package/features/file/ListFiles/index.d.ts +1 -0
- package/features/file/ListFiles/index.js +1 -0
- package/features/file/ListImagesByTagTool/ListImagesByTagTool.d.ts +27 -0
- package/features/file/ListImagesByTagTool/ListImagesByTagTool.js +42 -0
- package/features/file/ListImagesByTagTool/ListImagesByTagTool.js.map +1 -0
- package/features/file/ListImagesByTagTool/feature.d.ts +4 -0
- package/features/file/ListImagesByTagTool/feature.js +11 -0
- package/features/file/ListImagesByTagTool/feature.js.map +1 -0
- package/features/file/ListTags/ListTagsRepository.d.ts +16 -0
- package/features/file/ListTags/ListTagsRepository.js +42 -0
- package/features/file/ListTags/ListTagsRepository.js.map +1 -0
- package/features/file/ListTags/ListTagsUseCase.d.ts +13 -0
- package/features/file/ListTags/ListTagsUseCase.js +31 -0
- package/features/file/ListTags/ListTagsUseCase.js.map +1 -0
- package/features/file/ListTags/abstractions.d.ts +45 -0
- package/features/file/ListTags/abstractions.js +6 -0
- package/features/file/ListTags/abstractions.js.map +1 -0
- package/features/file/ListTags/feature.d.ts +4 -0
- package/features/file/ListTags/feature.js +13 -0
- package/features/file/ListTags/feature.js.map +1 -0
- package/features/file/ListTags/index.d.ts +1 -0
- package/features/file/ListTags/index.js +1 -0
- package/features/file/UpdateFile/UpdateFileRepository.d.ts +15 -0
- package/features/file/UpdateFile/UpdateFileRepository.js +37 -0
- package/features/file/UpdateFile/UpdateFileRepository.js.map +1 -0
- package/features/file/UpdateFile/UpdateFileUseCase.d.ts +20 -0
- package/features/file/UpdateFile/UpdateFileUseCase.js +71 -0
- package/features/file/UpdateFile/UpdateFileUseCase.js.map +1 -0
- package/features/file/UpdateFile/abstractions.d.ts +56 -0
- package/features/file/UpdateFile/abstractions.js +6 -0
- package/features/file/UpdateFile/abstractions.js.map +1 -0
- package/features/file/UpdateFile/events.d.ts +34 -0
- package/features/file/UpdateFile/events.js +23 -0
- package/features/file/UpdateFile/events.js.map +1 -0
- package/features/file/UpdateFile/feature.d.ts +4 -0
- package/features/file/UpdateFile/feature.js +13 -0
- package/features/file/UpdateFile/feature.js.map +1 -0
- package/features/file/UpdateFile/index.d.ts +2 -0
- package/features/file/UpdateFile/index.js +2 -0
- package/features/file/shared/EntryToFileMapper.d.ts +5 -0
- package/features/file/shared/EntryToFileMapper.js +28 -0
- package/features/file/shared/EntryToFileMapper.js.map +1 -0
- package/features/file/shared/FileInputToEntryInputMapper.d.ts +5 -0
- package/features/file/shared/FileInputToEntryInputMapper.js +32 -0
- package/features/file/shared/FileInputToEntryInputMapper.js.map +1 -0
- package/features/file/shared/FileToEntryMapper.d.ts +5 -0
- package/features/file/shared/FileToEntryMapper.js +31 -0
- package/features/file/shared/FileToEntryMapper.js.map +1 -0
- package/features/permissions/abstractions.d.ts +21 -0
- package/features/permissions/abstractions.js +6 -0
- package/features/permissions/abstractions.js.map +1 -0
- package/features/permissions/feature.d.ts +4 -0
- package/features/permissions/feature.js +7 -0
- package/features/permissions/feature.js.map +1 -0
- package/features/settings/GetSettings/GetSettingsUseCase.d.ts +13 -0
- package/features/settings/GetSettings/GetSettingsUseCase.js +28 -0
- package/features/settings/GetSettings/GetSettingsUseCase.js.map +1 -0
- package/features/settings/GetSettings/abstractions.d.ts +18 -0
- package/features/settings/GetSettings/abstractions.js +5 -0
- package/features/settings/GetSettings/abstractions.js.map +1 -0
- package/features/settings/GetSettings/feature.d.ts +4 -0
- package/features/settings/GetSettings/feature.js +11 -0
- package/features/settings/GetSettings/feature.js.map +1 -0
- package/features/settings/SettingsInstaller/SettingsInstaller.d.ts +15 -0
- package/features/settings/SettingsInstaller/SettingsInstaller.js +36 -0
- package/features/settings/SettingsInstaller/SettingsInstaller.js.map +1 -0
- package/features/settings/SettingsInstaller/feature.d.ts +4 -0
- package/features/settings/SettingsInstaller/feature.js +11 -0
- package/features/settings/SettingsInstaller/feature.js.map +1 -0
- package/features/settings/UpdateSettings/UpdateSettingsUseCase.d.ts +18 -0
- package/features/settings/UpdateSettings/UpdateSettingsUseCase.js +55 -0
- package/features/settings/UpdateSettings/UpdateSettingsUseCase.js.map +1 -0
- package/features/settings/UpdateSettings/abstractions.d.ts +23 -0
- package/features/settings/UpdateSettings/abstractions.js +5 -0
- package/features/settings/UpdateSettings/abstractions.js.map +1 -0
- package/features/settings/UpdateSettings/events.d.ts +34 -0
- package/features/settings/UpdateSettings/events.js +23 -0
- package/features/settings/UpdateSettings/events.js.map +1 -0
- package/features/settings/UpdateSettings/feature.d.ts +4 -0
- package/features/settings/UpdateSettings/feature.js +11 -0
- package/features/settings/UpdateSettings/feature.js.map +1 -0
- package/features/settings/UpdateSettings/index.d.ts +2 -0
- package/features/settings/UpdateSettings/index.js +2 -0
- package/features/shared/abstractions.d.ts +1 -0
- package/features/shared/abstractions.js +1 -0
- 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 +25 -0
- package/graphql/FmGraphQLSchema.js +450 -0
- package/graphql/FmGraphQLSchema.js.map +1 -0
- package/graphql/FmUploadGraphQLSchema.d.ts +11 -0
- package/graphql/FmUploadGraphQLSchema.js +229 -0
- package/graphql/FmUploadGraphQLSchema.js.map +1 -0
- package/index.d.ts +3 -5
- package/index.js +41 -66
- package/index.js.map +1 -1
- package/package.json +40 -40
- package/types.d.ts +2 -355
- package/types.js +1 -27
- package/createFileManager/checkBasePermissions.d.ts +0 -5
- package/createFileManager/checkBasePermissions.js +0 -24
- package/createFileManager/checkBasePermissions.js.map +0 -1
- package/createFileManager/files.crud.d.ts +0 -3
- package/createFileManager/files.crud.js +0 -318
- package/createFileManager/files.crud.js.map +0 -1
- package/createFileManager/filevalidation.disabled.js +0 -55
- package/createFileManager/filevalidation.disabled.js.map +0 -1
- package/createFileManager/index.d.ts +0 -13
- package/createFileManager/index.js +0 -20
- package/createFileManager/index.js.map +0 -1
- package/createFileManager/settings.crud.d.ts +0 -3
- package/createFileManager/settings.crud.js +0 -91
- package/createFileManager/settings.crud.js.map +0 -1
- package/createFileManager/system.crud.d.ts +0 -3
- package/createFileManager/system.crud.js +0 -86
- package/createFileManager/system.crud.js.map +0 -1
- package/graphql/index.d.ts +0 -3
- package/graphql/index.js +0 -288
- package/graphql/index.js.map +0 -1
- package/handlers/download/byAlias.d.ts +0 -6
- package/handlers/download/byAlias.js +0 -89
- package/handlers/download/byAlias.js.map +0 -1
- package/handlers/download/byExactKey.d.ts +0 -2
- package/handlers/download/byExactKey.js +0 -57
- package/handlers/download/byExactKey.js.map +0 -1
- package/handlers/download/extractFileInformation.d.ts +0 -9
- package/handlers/download/extractFileInformation.js +0 -20
- package/handlers/download/extractFileInformation.js.map +0 -1
- package/handlers/download/getS3Object.d.ts +0 -10
- package/handlers/download/getS3Object.js +0 -57
- package/handlers/download/getS3Object.js.map +0 -1
- package/handlers/download/index.d.ts +0 -2
- package/handlers/download/index.js +0 -27
- package/handlers/download/index.js.map +0 -1
- package/handlers/manage/index.d.ts +0 -5
- package/handlers/manage/index.js +0 -55
- package/handlers/manage/index.js.map +0 -1
- package/handlers/transform/index.d.ts +0 -2
- package/handlers/transform/index.js +0 -89
- package/handlers/transform/index.js.map +0 -1
- package/handlers/transform/legacyUtils.d.ts +0 -17
- package/handlers/transform/legacyUtils.js +0 -42
- package/handlers/transform/legacyUtils.js.map +0 -1
- package/handlers/transform/loaders/imageLoader.d.ts +0 -30
- package/handlers/transform/loaders/imageLoader.js +0 -94
- package/handlers/transform/loaders/imageLoader.js.map +0 -1
- package/handlers/transform/loaders/index.d.ts +0 -8
- package/handlers/transform/loaders/index.js +0 -10
- package/handlers/transform/loaders/index.js.map +0 -1
- package/handlers/transform/loaders/sanitizeImageTransformations.d.ts +0 -11
- package/handlers/transform/loaders/sanitizeImageTransformations.js +0 -45
- package/handlers/transform/loaders/sanitizeImageTransformations.js.map +0 -1
- package/handlers/transform/managers/imageManager.d.ts +0 -15
- package/handlers/transform/managers/imageManager.js +0 -74
- package/handlers/transform/managers/imageManager.js.map +0 -1
- package/handlers/transform/managers/index.d.ts +0 -5
- package/handlers/transform/managers/index.js +0 -10
- package/handlers/transform/managers/index.js.map +0 -1
- package/handlers/transform/optimizeImage.d.ts +0 -3
- package/handlers/transform/optimizeImage.js +0 -42
- package/handlers/transform/optimizeImage.js.map +0 -1
- package/handlers/transform/transformImage.d.ts +0 -10
- package/handlers/transform/transformImage.js +0 -25
- package/handlers/transform/transformImage.js.map +0 -1
- package/handlers/transform/utils.d.ts +0 -12
- package/handlers/transform/utils.js +0 -36
- package/handlers/transform/utils.js.map +0 -1
- package/handlers/types.d.ts +0 -8
- package/handlers/types.js +0 -5
- package/handlers/types.js.map +0 -1
- package/handlers/utils/getEnvironment.d.ts +0 -5
- package/handlers/utils/getEnvironment.js +0 -11
- package/handlers/utils/getEnvironment.js.map +0 -1
- package/handlers/utils/getObjectParams.d.ts +0 -9
- package/handlers/utils/getObjectParams.js +0 -21
- package/handlers/utils/getObjectParams.js.map +0 -1
- package/handlers/utils/index.d.ts +0 -2
- package/handlers/utils/index.js +0 -20
- package/handlers/utils/index.js.map +0 -1
- package/plugins/FilePhysicalStoragePlugin.d.ts +0 -21
- package/plugins/FilePhysicalStoragePlugin.js +0 -31
- package/plugins/FilePhysicalStoragePlugin.js.map +0 -1
- package/plugins/FileStorageTransformPlugin.d.ts +0 -34
- package/plugins/FileStorageTransformPlugin.js +0 -40
- package/plugins/FileStorageTransformPlugin.js.map +0 -1
- package/plugins/crud/files/validation.d.ts +0 -3
- package/plugins/crud/files/validation.js +0 -41
- package/plugins/crud/files/validation.js.map +0 -1
- package/plugins/crud/files.crud.d.ts +0 -4
- package/plugins/crud/files.crud.js +0 -431
- package/plugins/crud/files.crud.js.map +0 -1
- package/plugins/crud/settings.crud.d.ts +0 -5
- package/plugins/crud/settings.crud.js +0 -116
- package/plugins/crud/settings.crud.js.map +0 -1
- package/plugins/crud/system.crud.d.ts +0 -4
- package/plugins/crud/system.crud.js +0 -153
- package/plugins/crud/system.crud.js.map +0 -1
- package/plugins/crud/utils/checkBasePermissions.d.ts +0 -5
- package/plugins/crud/utils/checkBasePermissions.js +0 -33
- package/plugins/crud/utils/checkBasePermissions.js.map +0 -1
- package/plugins/crud/utils/createFileModel.d.ts +0 -5
- package/plugins/crud/utils/createFileModel.js +0 -77
- package/plugins/crud/utils/createFileModel.js.map +0 -1
- package/plugins/crud/utils/lifecycleEvents.d.ts +0 -6
- package/plugins/crud/utils/lifecycleEvents.js +0 -38
- package/plugins/crud/utils/lifecycleEvents.js.map +0 -1
- package/plugins/definitions/FilePhysicalStoragePlugin.d.ts +0 -21
- package/plugins/definitions/FilePhysicalStoragePlugin.js +0 -42
- package/plugins/definitions/FilePhysicalStoragePlugin.js.map +0 -1
- package/plugins/definitions/FilePlugin.d.ts +0 -136
- package/plugins/definitions/FilePlugin.js +0 -70
- package/plugins/definitions/FilePlugin.js.map +0 -1
- package/plugins/definitions/FileStorageTransformPlugin.d.ts +0 -34
- package/plugins/definitions/FileStorageTransformPlugin.js +0 -51
- package/plugins/definitions/FileStorageTransformPlugin.js.map +0 -1
- package/plugins/definitions/FilesStorageOperationsProviderPlugin.d.ts +0 -9
- package/plugins/definitions/FilesStorageOperationsProviderPlugin.js +0 -17
- package/plugins/definitions/FilesStorageOperationsProviderPlugin.js.map +0 -1
- package/plugins/definitions/InstallationPlugin.d.ts +0 -19
- package/plugins/definitions/InstallationPlugin.js +0 -42
- package/plugins/definitions/InstallationPlugin.js.map +0 -1
- package/plugins/definitions/SettingsStorageOperationsProviderPlugin.d.ts +0 -9
- package/plugins/definitions/SettingsStorageOperationsProviderPlugin.js +0 -17
- package/plugins/definitions/SettingsStorageOperationsProviderPlugin.js.map +0 -1
- package/plugins/definitions/SystemStorageOperationsProviderPlugin.d.ts +0 -9
- package/plugins/definitions/SystemStorageOperationsProviderPlugin.js +0 -17
- package/plugins/definitions/SystemStorageOperationsProviderPlugin.js.map +0 -1
- package/plugins/graphql.d.ts +0 -4
- package/plugins/graphql.js +0 -290
- package/plugins/graphql.js.map +0 -1
- package/plugins/index.d.ts +0 -2
- package/plugins/index.js +0 -27
- package/plugins/index.js.map +0 -1
- package/plugins/storage/FileStorage.d.ts +0 -30
- package/plugins/storage/FileStorage.js +0 -103
- package/plugins/storage/FileStorage.js.map +0 -1
- package/plugins/storage/index.d.ts +0 -4
- package/plugins/storage/index.js +0 -26
- package/plugins/storage/index.js.map +0 -1
- package/storage/FileStorage.d.ts +0 -32
- package/storage/FileStorage.js +0 -86
- package/storage/FileStorage.js.map +0 -1
- package/types/file.d.ts +0 -33
- package/types/file.js +0 -5
- package/types/file.js.map +0 -1
- package/types/file.lifecycle.d.ts +0 -40
- package/types/file.lifecycle.js +0 -5
- package/types/file.lifecycle.js.map +0 -1
- package/types.js.map +0 -1
- package/utils.d.ts +0 -4
- package/utils.js +0 -16
- package/utils.js.map +0 -1
- /package/{createFileManager/filevalidation.disabled.d.ts → domain/file/types.js} +0 -0
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.createSystemCrud = void 0;
|
|
8
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
9
|
-
var _pubsub = require("@webiny/pubsub");
|
|
10
|
-
var _apiSecurity = require("@webiny/api-security");
|
|
11
|
-
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
12
|
-
const createSystemCrud = ({
|
|
13
|
-
storageOperations,
|
|
14
|
-
getTenantId,
|
|
15
|
-
getIdentity,
|
|
16
|
-
WEBINY_VERSION
|
|
17
|
-
}) => {
|
|
18
|
-
return {
|
|
19
|
-
onSystemBeforeInstall: (0, _pubsub.createTopic)("fileManager.onSystemBeforeInstall"),
|
|
20
|
-
onSystemAfterInstall: (0, _pubsub.createTopic)("fileManager.onSystemAfterInstall"),
|
|
21
|
-
async getVersion() {
|
|
22
|
-
const system = await storageOperations.system.get({
|
|
23
|
-
tenant: getTenantId()
|
|
24
|
-
});
|
|
25
|
-
return system ? system.version : null;
|
|
26
|
-
},
|
|
27
|
-
async setVersion(version) {
|
|
28
|
-
const system = await storageOperations.system.get({
|
|
29
|
-
tenant: getTenantId()
|
|
30
|
-
});
|
|
31
|
-
if (system) {
|
|
32
|
-
const data = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, system), {}, {
|
|
33
|
-
tenant: system.tenant || getTenantId(),
|
|
34
|
-
version
|
|
35
|
-
});
|
|
36
|
-
try {
|
|
37
|
-
await storageOperations.system.update({
|
|
38
|
-
original: system,
|
|
39
|
-
data
|
|
40
|
-
});
|
|
41
|
-
return;
|
|
42
|
-
} catch (ex) {
|
|
43
|
-
throw new _error.default("Could not update the system data.", "SYSTEM_UPDATE_ERROR", {
|
|
44
|
-
data
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
const data = {
|
|
49
|
-
version,
|
|
50
|
-
tenant: getTenantId()
|
|
51
|
-
};
|
|
52
|
-
try {
|
|
53
|
-
await storageOperations.system.create({
|
|
54
|
-
data
|
|
55
|
-
});
|
|
56
|
-
return;
|
|
57
|
-
} catch (ex) {
|
|
58
|
-
throw new _error.default("Could not create the system data.", "SYSTEM_CREATE_ERROR", {
|
|
59
|
-
data
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
},
|
|
63
|
-
async install({
|
|
64
|
-
srcPrefix
|
|
65
|
-
}) {
|
|
66
|
-
const identity = getIdentity();
|
|
67
|
-
if (!identity) {
|
|
68
|
-
throw new _apiSecurity.NotAuthorizedError();
|
|
69
|
-
}
|
|
70
|
-
const version = await this.getVersion();
|
|
71
|
-
if (version) {
|
|
72
|
-
throw new _error.default("File Manager is already installed.", "FILES_INSTALL_ABORTED");
|
|
73
|
-
}
|
|
74
|
-
const data = {};
|
|
75
|
-
if (srcPrefix) {
|
|
76
|
-
data.srcPrefix = srcPrefix;
|
|
77
|
-
}
|
|
78
|
-
await this.onSystemBeforeInstall.publish({});
|
|
79
|
-
await this.createSettings(data);
|
|
80
|
-
await this.setVersion(WEBINY_VERSION);
|
|
81
|
-
await this.onSystemAfterInstall.publish({});
|
|
82
|
-
return true;
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
};
|
|
86
|
-
exports.createSystemCrud = createSystemCrud;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["createSystemCrud","storageOperations","getTenantId","getIdentity","WEBINY_VERSION","onSystemBeforeInstall","createTopic","onSystemAfterInstall","getVersion","system","get","tenant","version","setVersion","data","update","original","ex","WebinyError","create","install","srcPrefix","identity","NotAuthorizedError","publish","createSettings"],"sources":["system.crud.ts"],"sourcesContent":["import { createTopic } from \"@webiny/pubsub\";\nimport { NotAuthorizedError } from \"@webiny/api-security\";\nimport {\n FileManagerContextObject,\n FileManagerSettings,\n FileManagerSystem,\n SystemCRUD\n} from \"~/types\";\nimport WebinyError from \"@webiny/error\";\nimport { FileManagerConfig } from \"~/createFileManager/index\";\n\nexport const createSystemCrud = ({\n storageOperations,\n getTenantId,\n getIdentity,\n WEBINY_VERSION\n}: FileManagerConfig): SystemCRUD => {\n return {\n onSystemBeforeInstall: createTopic(\"fileManager.onSystemBeforeInstall\"),\n onSystemAfterInstall: createTopic(\"fileManager.onSystemAfterInstall\"),\n async getVersion() {\n const system = await storageOperations.system.get({ tenant: getTenantId() });\n\n return system ? system.version : null;\n },\n async setVersion(version: string) {\n const system = await storageOperations.system.get({ tenant: getTenantId() });\n\n if (system) {\n const data: FileManagerSystem = {\n ...system,\n tenant: system.tenant || getTenantId(),\n version\n };\n try {\n await storageOperations.system.update({\n original: system,\n data\n });\n return;\n } catch (ex) {\n throw new WebinyError(\n \"Could not update the system data.\",\n \"SYSTEM_UPDATE_ERROR\",\n {\n data\n }\n );\n }\n }\n\n const data: FileManagerSystem = {\n version,\n tenant: getTenantId()\n };\n try {\n await storageOperations.system.create({\n data\n });\n return;\n } catch (ex) {\n throw new WebinyError(\"Could not create the system data.\", \"SYSTEM_CREATE_ERROR\", {\n data\n });\n }\n },\n async install(this: FileManagerContextObject, { srcPrefix }) {\n const identity = getIdentity();\n\n if (!identity) {\n throw new NotAuthorizedError();\n }\n\n const version = await this.getVersion();\n\n if (version) {\n throw new WebinyError(\n \"File Manager is already installed.\",\n \"FILES_INSTALL_ABORTED\"\n );\n }\n\n const data: Partial<FileManagerSettings> = {};\n\n if (srcPrefix) {\n data.srcPrefix = srcPrefix;\n }\n\n await this.onSystemBeforeInstall.publish({});\n\n await this.createSettings(data);\n await this.setVersion(WEBINY_VERSION);\n\n await this.onSystemAfterInstall.publish({});\n\n return true;\n }\n };\n};\n"],"mappings":";;;;;;;;AAAA;AACA;AAOA;AAGO,MAAMA,gBAAgB,GAAG,CAAC;EAC7BC,iBAAiB;EACjBC,WAAW;EACXC,WAAW;EACXC;AACe,CAAC,KAAiB;EACjC,OAAO;IACHC,qBAAqB,EAAE,IAAAC,mBAAW,EAAC,mCAAmC,CAAC;IACvEC,oBAAoB,EAAE,IAAAD,mBAAW,EAAC,kCAAkC,CAAC;IACrE,MAAME,UAAU,GAAG;MACf,MAAMC,MAAM,GAAG,MAAMR,iBAAiB,CAACQ,MAAM,CAACC,GAAG,CAAC;QAAEC,MAAM,EAAET,WAAW;MAAG,CAAC,CAAC;MAE5E,OAAOO,MAAM,GAAGA,MAAM,CAACG,OAAO,GAAG,IAAI;IACzC,CAAC;IACD,MAAMC,UAAU,CAACD,OAAe,EAAE;MAC9B,MAAMH,MAAM,GAAG,MAAMR,iBAAiB,CAACQ,MAAM,CAACC,GAAG,CAAC;QAAEC,MAAM,EAAET,WAAW;MAAG,CAAC,CAAC;MAE5E,IAAIO,MAAM,EAAE;QACR,MAAMK,IAAuB,+DACtBL,MAAM;UACTE,MAAM,EAAEF,MAAM,CAACE,MAAM,IAAIT,WAAW,EAAE;UACtCU;QAAO,EACV;QACD,IAAI;UACA,MAAMX,iBAAiB,CAACQ,MAAM,CAACM,MAAM,CAAC;YAClCC,QAAQ,EAAEP,MAAM;YAChBK;UACJ,CAAC,CAAC;UACF;QACJ,CAAC,CAAC,OAAOG,EAAE,EAAE;UACT,MAAM,IAAIC,cAAW,CACjB,mCAAmC,EACnC,qBAAqB,EACrB;YACIJ;UACJ,CAAC,CACJ;QACL;MACJ;MAEA,MAAMA,IAAuB,GAAG;QAC5BF,OAAO;QACPD,MAAM,EAAET,WAAW;MACvB,CAAC;MACD,IAAI;QACA,MAAMD,iBAAiB,CAACQ,MAAM,CAACU,MAAM,CAAC;UAClCL;QACJ,CAAC,CAAC;QACF;MACJ,CAAC,CAAC,OAAOG,EAAE,EAAE;QACT,MAAM,IAAIC,cAAW,CAAC,mCAAmC,EAAE,qBAAqB,EAAE;UAC9EJ;QACJ,CAAC,CAAC;MACN;IACJ,CAAC;IACD,MAAMM,OAAO,CAAiC;MAAEC;IAAU,CAAC,EAAE;MACzD,MAAMC,QAAQ,GAAGnB,WAAW,EAAE;MAE9B,IAAI,CAACmB,QAAQ,EAAE;QACX,MAAM,IAAIC,+BAAkB,EAAE;MAClC;MAEA,MAAMX,OAAO,GAAG,MAAM,IAAI,CAACJ,UAAU,EAAE;MAEvC,IAAII,OAAO,EAAE;QACT,MAAM,IAAIM,cAAW,CACjB,oCAAoC,EACpC,uBAAuB,CAC1B;MACL;MAEA,MAAMJ,IAAkC,GAAG,CAAC,CAAC;MAE7C,IAAIO,SAAS,EAAE;QACXP,IAAI,CAACO,SAAS,GAAGA,SAAS;MAC9B;MAEA,MAAM,IAAI,CAAChB,qBAAqB,CAACmB,OAAO,CAAC,CAAC,CAAC,CAAC;MAE5C,MAAM,IAAI,CAACC,cAAc,CAACX,IAAI,CAAC;MAC/B,MAAM,IAAI,CAACD,UAAU,CAACT,cAAc,CAAC;MAErC,MAAM,IAAI,CAACG,oBAAoB,CAACiB,OAAO,CAAC,CAAC,CAAC,CAAC;MAE3C,OAAO,IAAI;IACf;EACJ,CAAC;AACL,CAAC;AAAC"}
|
package/graphql/index.d.ts
DELETED
package/graphql/index.js
DELETED
|
@@ -1,288 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.createGraphQLSchemaPlugin = void 0;
|
|
7
|
-
var _handlerGraphql = require("@webiny/handler-graphql");
|
|
8
|
-
const emptyResolver = () => ({});
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Use any because it really can be any.
|
|
12
|
-
* TODO @ts-refactor maybe use generics at some point?
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
const resolve = async fn => {
|
|
16
|
-
try {
|
|
17
|
-
return new _handlerGraphql.Response(await fn());
|
|
18
|
-
} catch (e) {
|
|
19
|
-
return new _handlerGraphql.ErrorResponse(e);
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
const createGraphQLSchemaPlugin = () => {
|
|
23
|
-
const fileManagerGraphQL = new _handlerGraphql.GraphQLSchemaPlugin({
|
|
24
|
-
typeDefs: /* GraphQL */`
|
|
25
|
-
type FmCreatedBy {
|
|
26
|
-
id: ID
|
|
27
|
-
displayName: String
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
input CreateFileInput {
|
|
31
|
-
id: ID!
|
|
32
|
-
key: String!
|
|
33
|
-
name: String!
|
|
34
|
-
size: Long!
|
|
35
|
-
type: String!
|
|
36
|
-
tags: [String!]
|
|
37
|
-
aliases: [String!]
|
|
38
|
-
meta: JSON
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
input UpdateFileInput {
|
|
42
|
-
key: String
|
|
43
|
-
name: String
|
|
44
|
-
size: Long
|
|
45
|
-
type: String
|
|
46
|
-
tags: [String!]
|
|
47
|
-
aliases: [String!]
|
|
48
|
-
meta: JSON
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
type UploadFileResponseDataFile {
|
|
52
|
-
id: ID!
|
|
53
|
-
name: String!
|
|
54
|
-
type: String!
|
|
55
|
-
size: Long!
|
|
56
|
-
key: String!
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
type UploadFileResponseData {
|
|
60
|
-
# Contains data that is necessary for initiating a file upload.
|
|
61
|
-
data: JSON
|
|
62
|
-
file: UploadFileResponseDataFile
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
type FileListMeta {
|
|
66
|
-
cursor: String
|
|
67
|
-
totalCount: Int
|
|
68
|
-
hasMoreItems: Boolean
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
type FileError {
|
|
72
|
-
code: String
|
|
73
|
-
message: String
|
|
74
|
-
data: JSON
|
|
75
|
-
stack: String
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
type FileListResponse {
|
|
79
|
-
data: [File]
|
|
80
|
-
meta: FileListMeta
|
|
81
|
-
error: FileError
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
type FileResponse {
|
|
85
|
-
data: File
|
|
86
|
-
error: FileError
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
type CreateFilesResponse {
|
|
90
|
-
data: [File!]
|
|
91
|
-
error: FileError
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
type File {
|
|
95
|
-
id: ID!
|
|
96
|
-
key: String!
|
|
97
|
-
name: String!
|
|
98
|
-
size: Long!
|
|
99
|
-
type: String!
|
|
100
|
-
src: String!
|
|
101
|
-
tags: [String!]
|
|
102
|
-
aliases: [String!]
|
|
103
|
-
meta: JSON
|
|
104
|
-
createdOn: DateTime
|
|
105
|
-
createdBy: FmCreatedBy
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
type FileManagerBooleanResponse {
|
|
109
|
-
data: Boolean
|
|
110
|
-
error: FileError
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
type FileManagerSettings {
|
|
114
|
-
uploadMinFileSize: Number
|
|
115
|
-
uploadMaxFileSize: Number
|
|
116
|
-
srcPrefix: String
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
input FileManagerSettingsInput {
|
|
120
|
-
uploadMinFileSize: Number
|
|
121
|
-
uploadMaxFileSize: Number
|
|
122
|
-
srcPrefix: String
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
type FileManagerSettingsResponse {
|
|
126
|
-
data: FileManagerSettings
|
|
127
|
-
error: FileError
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
input FileWhereInput {
|
|
131
|
-
search: String
|
|
132
|
-
type: String
|
|
133
|
-
type_in: [String!]
|
|
134
|
-
tag: String
|
|
135
|
-
tag_in: [String!]
|
|
136
|
-
tag_and_in: [String!]
|
|
137
|
-
tag_startsWith: String
|
|
138
|
-
tag_not_startsWith: String
|
|
139
|
-
id_in: [ID!]
|
|
140
|
-
id: ID
|
|
141
|
-
createdBy: ID
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
input TagWhereInput {
|
|
145
|
-
tag_startsWith: String
|
|
146
|
-
tag_not_startsWith: String
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
type ListTagResponseItem {
|
|
150
|
-
tag: String!
|
|
151
|
-
count: Number!
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
type ListTagsResponse {
|
|
155
|
-
data: [ListTagResponseItem!]
|
|
156
|
-
error: FileError
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
type FmQuery {
|
|
160
|
-
getFile(id: ID, where: JSON, sort: String): FileResponse
|
|
161
|
-
|
|
162
|
-
listFiles(
|
|
163
|
-
limit: Int
|
|
164
|
-
after: String
|
|
165
|
-
types: [String]
|
|
166
|
-
tags: [String]
|
|
167
|
-
ids: [ID]
|
|
168
|
-
search: String
|
|
169
|
-
where: FileWhereInput
|
|
170
|
-
): FileListResponse
|
|
171
|
-
|
|
172
|
-
listTags(where: TagWhereInput): ListTagsResponse!
|
|
173
|
-
|
|
174
|
-
# Get installed version
|
|
175
|
-
version: String
|
|
176
|
-
|
|
177
|
-
getSettings: FileManagerSettingsResponse
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
type FilesDeleteResponse {
|
|
181
|
-
data: Boolean
|
|
182
|
-
error: FileError
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
type FmMutation {
|
|
186
|
-
createFile(data: CreateFileInput!): FileResponse
|
|
187
|
-
createFiles(data: [CreateFileInput]!): CreateFilesResponse
|
|
188
|
-
updateFile(id: ID!, data: UpdateFileInput!): FileResponse
|
|
189
|
-
deleteFile(id: ID!): FilesDeleteResponse
|
|
190
|
-
install(srcPrefix: String): FileManagerBooleanResponse
|
|
191
|
-
updateSettings(data: FileManagerSettingsInput): FileManagerSettingsResponse
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
input FilesInstallInput {
|
|
195
|
-
srcPrefix: String!
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
extend type Query {
|
|
199
|
-
fileManager: FmQuery
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
extend type Mutation {
|
|
203
|
-
fileManager: FmMutation
|
|
204
|
-
}
|
|
205
|
-
`,
|
|
206
|
-
resolvers: {
|
|
207
|
-
File: {
|
|
208
|
-
async src(file, _, context) {
|
|
209
|
-
const settings = await context.fileManager.getSettings();
|
|
210
|
-
return ((settings === null || settings === void 0 ? void 0 : settings.srcPrefix) || "") + file.key;
|
|
211
|
-
}
|
|
212
|
-
},
|
|
213
|
-
Query: {
|
|
214
|
-
fileManager: emptyResolver
|
|
215
|
-
},
|
|
216
|
-
Mutation: {
|
|
217
|
-
fileManager: emptyResolver
|
|
218
|
-
},
|
|
219
|
-
FmQuery: {
|
|
220
|
-
getFile(_, args, context) {
|
|
221
|
-
return resolve(() => context.fileManager.getFile(args.id));
|
|
222
|
-
},
|
|
223
|
-
async listFiles(_, args, context) {
|
|
224
|
-
try {
|
|
225
|
-
const [data, meta] = await context.fileManager.listFiles(args);
|
|
226
|
-
return new _handlerGraphql.ListResponse(data, meta);
|
|
227
|
-
} catch (e) {
|
|
228
|
-
return new _handlerGraphql.ErrorResponse(e);
|
|
229
|
-
}
|
|
230
|
-
},
|
|
231
|
-
async listTags(_, args, context) {
|
|
232
|
-
try {
|
|
233
|
-
const tags = await context.fileManager.listTags(args || {});
|
|
234
|
-
return new _handlerGraphql.Response(tags);
|
|
235
|
-
} catch (error) {
|
|
236
|
-
return new _handlerGraphql.ErrorResponse(error);
|
|
237
|
-
}
|
|
238
|
-
},
|
|
239
|
-
async version(_, __, context) {
|
|
240
|
-
const {
|
|
241
|
-
i18n,
|
|
242
|
-
tenancy,
|
|
243
|
-
fileManager
|
|
244
|
-
} = context;
|
|
245
|
-
if (!tenancy.getCurrentTenant() || !i18n.getContentLocale()) {
|
|
246
|
-
return null;
|
|
247
|
-
}
|
|
248
|
-
return await fileManager.getVersion();
|
|
249
|
-
},
|
|
250
|
-
async getSettings(_, __, context) {
|
|
251
|
-
return resolve(() => context.fileManager.getSettings());
|
|
252
|
-
}
|
|
253
|
-
},
|
|
254
|
-
FmMutation: {
|
|
255
|
-
async createFile(_, args, context) {
|
|
256
|
-
return resolve(() => context.fileManager.createFile(args.data));
|
|
257
|
-
},
|
|
258
|
-
async updateFile(_, args, context) {
|
|
259
|
-
return resolve(() => context.fileManager.updateFile(args.id, args.data));
|
|
260
|
-
},
|
|
261
|
-
async createFiles(_, args, context) {
|
|
262
|
-
return resolve(() => context.fileManager.createFilesInBatch(args.data));
|
|
263
|
-
},
|
|
264
|
-
async deleteFile(_, args, context) {
|
|
265
|
-
return resolve(async () => {
|
|
266
|
-
// TODO: Ideally, this should work via a lifecycle hook; first we delete a record from DB, then from cloud storage.
|
|
267
|
-
const file = await context.fileManager.getFile(args.id);
|
|
268
|
-
return await context.fileManager.storage.delete({
|
|
269
|
-
id: file.id,
|
|
270
|
-
key: file.key
|
|
271
|
-
});
|
|
272
|
-
});
|
|
273
|
-
},
|
|
274
|
-
async install(_, args, context) {
|
|
275
|
-
return resolve(() => context.fileManager.install({
|
|
276
|
-
srcPrefix: args.srcPrefix
|
|
277
|
-
}));
|
|
278
|
-
},
|
|
279
|
-
async updateSettings(_, args, context) {
|
|
280
|
-
return resolve(() => context.fileManager.updateSettings(args.data));
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
});
|
|
285
|
-
fileManagerGraphQL.name = "fm.graphql.schema";
|
|
286
|
-
return fileManagerGraphQL;
|
|
287
|
-
};
|
|
288
|
-
exports.createGraphQLSchemaPlugin = createGraphQLSchemaPlugin;
|
package/graphql/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["emptyResolver","resolve","fn","Response","e","ErrorResponse","createGraphQLSchemaPlugin","fileManagerGraphQL","GraphQLSchemaPlugin","typeDefs","resolvers","File","src","file","_","context","settings","fileManager","getSettings","srcPrefix","key","Query","Mutation","FmQuery","getFile","args","id","listFiles","data","meta","ListResponse","listTags","tags","error","version","__","i18n","tenancy","getCurrentTenant","getContentLocale","getVersion","FmMutation","createFile","updateFile","createFiles","createFilesInBatch","deleteFile","storage","delete","install","updateSettings","name"],"sources":["index.ts"],"sourcesContent":["import {\n Response,\n ErrorResponse,\n ListResponse,\n GraphQLSchemaPlugin\n} from \"@webiny/handler-graphql\";\nimport { FileManagerContext, FilesListOpts } from \"~/types\";\n\nconst emptyResolver = () => ({});\n\n/**\n * Use any because it really can be any.\n * TODO @ts-refactor maybe use generics at some point?\n */\ninterface ResolveCallable {\n (): Promise<any>;\n}\n\nconst resolve = async (fn: ResolveCallable) => {\n try {\n return new Response(await fn());\n } catch (e) {\n return new ErrorResponse(e);\n }\n};\n\nexport const createGraphQLSchemaPlugin = () => {\n const fileManagerGraphQL = new GraphQLSchemaPlugin<FileManagerContext>({\n typeDefs: /* GraphQL */ `\n type FmCreatedBy {\n id: ID\n displayName: String\n }\n\n input CreateFileInput {\n id: ID!\n key: String!\n name: String!\n size: Long!\n type: String!\n tags: [String!]\n aliases: [String!]\n meta: JSON\n }\n\n input UpdateFileInput {\n key: String\n name: String\n size: Long\n type: String\n tags: [String!]\n aliases: [String!]\n meta: JSON\n }\n\n type UploadFileResponseDataFile {\n id: ID!\n name: String!\n type: String!\n size: Long!\n key: String!\n }\n\n type UploadFileResponseData {\n # Contains data that is necessary for initiating a file upload.\n data: JSON\n file: UploadFileResponseDataFile\n }\n\n type FileListMeta {\n cursor: String\n totalCount: Int\n hasMoreItems: Boolean\n }\n\n type FileError {\n code: String\n message: String\n data: JSON\n stack: String\n }\n\n type FileListResponse {\n data: [File]\n meta: FileListMeta\n error: FileError\n }\n\n type FileResponse {\n data: File\n error: FileError\n }\n\n type CreateFilesResponse {\n data: [File!]\n error: FileError\n }\n\n type File {\n id: ID!\n key: String!\n name: String!\n size: Long!\n type: String!\n src: String!\n tags: [String!]\n aliases: [String!]\n meta: JSON\n createdOn: DateTime\n createdBy: FmCreatedBy\n }\n\n type FileManagerBooleanResponse {\n data: Boolean\n error: FileError\n }\n\n type FileManagerSettings {\n uploadMinFileSize: Number\n uploadMaxFileSize: Number\n srcPrefix: String\n }\n\n input FileManagerSettingsInput {\n uploadMinFileSize: Number\n uploadMaxFileSize: Number\n srcPrefix: String\n }\n\n type FileManagerSettingsResponse {\n data: FileManagerSettings\n error: FileError\n }\n\n input FileWhereInput {\n search: String\n type: String\n type_in: [String!]\n tag: String\n tag_in: [String!]\n tag_and_in: [String!]\n tag_startsWith: String\n tag_not_startsWith: String\n id_in: [ID!]\n id: ID\n createdBy: ID\n }\n\n input TagWhereInput {\n tag_startsWith: String\n tag_not_startsWith: String\n }\n\n type ListTagResponseItem {\n tag: String!\n count: Number!\n }\n\n type ListTagsResponse {\n data: [ListTagResponseItem!]\n error: FileError\n }\n\n type FmQuery {\n getFile(id: ID, where: JSON, sort: String): FileResponse\n\n listFiles(\n limit: Int\n after: String\n types: [String]\n tags: [String]\n ids: [ID]\n search: String\n where: FileWhereInput\n ): FileListResponse\n\n listTags(where: TagWhereInput): ListTagsResponse!\n\n # Get installed version\n version: String\n\n getSettings: FileManagerSettingsResponse\n }\n\n type FilesDeleteResponse {\n data: Boolean\n error: FileError\n }\n\n type FmMutation {\n createFile(data: CreateFileInput!): FileResponse\n createFiles(data: [CreateFileInput]!): CreateFilesResponse\n updateFile(id: ID!, data: UpdateFileInput!): FileResponse\n deleteFile(id: ID!): FilesDeleteResponse\n install(srcPrefix: String): FileManagerBooleanResponse\n updateSettings(data: FileManagerSettingsInput): FileManagerSettingsResponse\n }\n\n input FilesInstallInput {\n srcPrefix: String!\n }\n\n extend type Query {\n fileManager: FmQuery\n }\n\n extend type Mutation {\n fileManager: FmMutation\n }\n `,\n resolvers: {\n File: {\n async src(file, _, context: FileManagerContext) {\n const settings = await context.fileManager.getSettings();\n return (settings?.srcPrefix || \"\") + file.key;\n }\n },\n Query: {\n fileManager: emptyResolver\n },\n Mutation: {\n fileManager: emptyResolver\n },\n FmQuery: {\n getFile(_, args: any, context) {\n return resolve(() => context.fileManager.getFile(args.id));\n },\n async listFiles(_, args: FilesListOpts, context) {\n try {\n const [data, meta] = await context.fileManager.listFiles(args);\n return new ListResponse(data, meta);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n async listTags(_, args: any, context) {\n try {\n const tags = await context.fileManager.listTags(args || {});\n\n return new Response(tags);\n } catch (error) {\n return new ErrorResponse(error);\n }\n },\n async version(_, __, context) {\n const { i18n, tenancy, fileManager } = context;\n if (!tenancy.getCurrentTenant() || !i18n.getContentLocale()) {\n return null;\n }\n\n return await fileManager.getVersion();\n },\n async getSettings(_, __, context) {\n return resolve(() => context.fileManager.getSettings());\n }\n },\n FmMutation: {\n async createFile(_, args: any, context) {\n return resolve(() => context.fileManager.createFile(args.data));\n },\n async updateFile(_, args: any, context) {\n return resolve(() => context.fileManager.updateFile(args.id, args.data));\n },\n async createFiles(_, args: any, context) {\n return resolve(() => context.fileManager.createFilesInBatch(args.data));\n },\n async deleteFile(_, args: any, context) {\n return resolve(async () => {\n // TODO: Ideally, this should work via a lifecycle hook; first we delete a record from DB, then from cloud storage.\n const file = await context.fileManager.getFile(args.id);\n return await context.fileManager.storage.delete({\n id: file.id,\n key: file.key\n });\n });\n },\n async install(_, args: any, context) {\n return resolve(() =>\n context.fileManager.install({ srcPrefix: args.srcPrefix })\n );\n },\n async updateSettings(_, args: any, context) {\n return resolve(() => context.fileManager.updateSettings(args.data));\n }\n }\n }\n });\n fileManagerGraphQL.name = \"fm.graphql.schema\";\n\n return fileManagerGraphQL;\n};\n"],"mappings":";;;;;;AAAA;AAQA,MAAMA,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC;;AAEhC;AACA;AACA;AACA;;AAKA,MAAMC,OAAO,GAAG,MAAOC,EAAmB,IAAK;EAC3C,IAAI;IACA,OAAO,IAAIC,wBAAQ,CAAC,MAAMD,EAAE,EAAE,CAAC;EACnC,CAAC,CAAC,OAAOE,CAAC,EAAE;IACR,OAAO,IAAIC,6BAAa,CAACD,CAAC,CAAC;EAC/B;AACJ,CAAC;AAEM,MAAME,yBAAyB,GAAG,MAAM;EAC3C,MAAMC,kBAAkB,GAAG,IAAIC,mCAAmB,CAAqB;IACnEC,QAAQ,EAAE,aAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;IACDC,SAAS,EAAE;MACPC,IAAI,EAAE;QACF,MAAMC,GAAG,CAACC,IAAI,EAAEC,CAAC,EAAEC,OAA2B,EAAE;UAC5C,MAAMC,QAAQ,GAAG,MAAMD,OAAO,CAACE,WAAW,CAACC,WAAW,EAAE;UACxD,OAAO,CAAC,CAAAF,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEG,SAAS,KAAI,EAAE,IAAIN,IAAI,CAACO,GAAG;QACjD;MACJ,CAAC;MACDC,KAAK,EAAE;QACHJ,WAAW,EAAEjB;MACjB,CAAC;MACDsB,QAAQ,EAAE;QACNL,WAAW,EAAEjB;MACjB,CAAC;MACDuB,OAAO,EAAE;QACLC,OAAO,CAACV,CAAC,EAAEW,IAAS,EAAEV,OAAO,EAAE;UAC3B,OAAOd,OAAO,CAAC,MAAMc,OAAO,CAACE,WAAW,CAACO,OAAO,CAACC,IAAI,CAACC,EAAE,CAAC,CAAC;QAC9D,CAAC;QACD,MAAMC,SAAS,CAACb,CAAC,EAAEW,IAAmB,EAAEV,OAAO,EAAE;UAC7C,IAAI;YACA,MAAM,CAACa,IAAI,EAAEC,IAAI,CAAC,GAAG,MAAMd,OAAO,CAACE,WAAW,CAACU,SAAS,CAACF,IAAI,CAAC;YAC9D,OAAO,IAAIK,4BAAY,CAACF,IAAI,EAAEC,IAAI,CAAC;UACvC,CAAC,CAAC,OAAOzB,CAAC,EAAE;YACR,OAAO,IAAIC,6BAAa,CAACD,CAAC,CAAC;UAC/B;QACJ,CAAC;QACD,MAAM2B,QAAQ,CAACjB,CAAC,EAAEW,IAAS,EAAEV,OAAO,EAAE;UAClC,IAAI;YACA,MAAMiB,IAAI,GAAG,MAAMjB,OAAO,CAACE,WAAW,CAACc,QAAQ,CAACN,IAAI,IAAI,CAAC,CAAC,CAAC;YAE3D,OAAO,IAAItB,wBAAQ,CAAC6B,IAAI,CAAC;UAC7B,CAAC,CAAC,OAAOC,KAAK,EAAE;YACZ,OAAO,IAAI5B,6BAAa,CAAC4B,KAAK,CAAC;UACnC;QACJ,CAAC;QACD,MAAMC,OAAO,CAACpB,CAAC,EAAEqB,EAAE,EAAEpB,OAAO,EAAE;UAC1B,MAAM;YAAEqB,IAAI;YAAEC,OAAO;YAAEpB;UAAY,CAAC,GAAGF,OAAO;UAC9C,IAAI,CAACsB,OAAO,CAACC,gBAAgB,EAAE,IAAI,CAACF,IAAI,CAACG,gBAAgB,EAAE,EAAE;YACzD,OAAO,IAAI;UACf;UAEA,OAAO,MAAMtB,WAAW,CAACuB,UAAU,EAAE;QACzC,CAAC;QACD,MAAMtB,WAAW,CAACJ,CAAC,EAAEqB,EAAE,EAAEpB,OAAO,EAAE;UAC9B,OAAOd,OAAO,CAAC,MAAMc,OAAO,CAACE,WAAW,CAACC,WAAW,EAAE,CAAC;QAC3D;MACJ,CAAC;MACDuB,UAAU,EAAE;QACR,MAAMC,UAAU,CAAC5B,CAAC,EAAEW,IAAS,EAAEV,OAAO,EAAE;UACpC,OAAOd,OAAO,CAAC,MAAMc,OAAO,CAACE,WAAW,CAACyB,UAAU,CAACjB,IAAI,CAACG,IAAI,CAAC,CAAC;QACnE,CAAC;QACD,MAAMe,UAAU,CAAC7B,CAAC,EAAEW,IAAS,EAAEV,OAAO,EAAE;UACpC,OAAOd,OAAO,CAAC,MAAMc,OAAO,CAACE,WAAW,CAAC0B,UAAU,CAAClB,IAAI,CAACC,EAAE,EAAED,IAAI,CAACG,IAAI,CAAC,CAAC;QAC5E,CAAC;QACD,MAAMgB,WAAW,CAAC9B,CAAC,EAAEW,IAAS,EAAEV,OAAO,EAAE;UACrC,OAAOd,OAAO,CAAC,MAAMc,OAAO,CAACE,WAAW,CAAC4B,kBAAkB,CAACpB,IAAI,CAACG,IAAI,CAAC,CAAC;QAC3E,CAAC;QACD,MAAMkB,UAAU,CAAChC,CAAC,EAAEW,IAAS,EAAEV,OAAO,EAAE;UACpC,OAAOd,OAAO,CAAC,YAAY;YACvB;YACA,MAAMY,IAAI,GAAG,MAAME,OAAO,CAACE,WAAW,CAACO,OAAO,CAACC,IAAI,CAACC,EAAE,CAAC;YACvD,OAAO,MAAMX,OAAO,CAACE,WAAW,CAAC8B,OAAO,CAACC,MAAM,CAAC;cAC5CtB,EAAE,EAAEb,IAAI,CAACa,EAAE;cACXN,GAAG,EAAEP,IAAI,CAACO;YACd,CAAC,CAAC;UACN,CAAC,CAAC;QACN,CAAC;QACD,MAAM6B,OAAO,CAACnC,CAAC,EAAEW,IAAS,EAAEV,OAAO,EAAE;UACjC,OAAOd,OAAO,CAAC,MACXc,OAAO,CAACE,WAAW,CAACgC,OAAO,CAAC;YAAE9B,SAAS,EAAEM,IAAI,CAACN;UAAU,CAAC,CAAC,CAC7D;QACL,CAAC;QACD,MAAM+B,cAAc,CAACpC,CAAC,EAAEW,IAAS,EAAEV,OAAO,EAAE;UACxC,OAAOd,OAAO,CAAC,MAAMc,OAAO,CAACE,WAAW,CAACiC,cAAc,CAACzB,IAAI,CAACG,IAAI,CAAC,CAAC;QACvE;MACJ;IACJ;EACJ,CAAC,CAAC;EACFrB,kBAAkB,CAAC4C,IAAI,GAAG,mBAAmB;EAE7C,OAAO5C,kBAAkB;AAC7B,CAAC;AAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { DocumentClient } from "aws-sdk/clients/dynamodb";
|
|
2
|
-
import { RoutePlugin } from "@webiny/handler-aws/gateway";
|
|
3
|
-
export interface DownloadByFileAliasConfig {
|
|
4
|
-
documentClient: DocumentClient;
|
|
5
|
-
}
|
|
6
|
-
export declare const createDownloadFileByAliasPlugins: ({ documentClient }: DownloadByFileAliasConfig) => RoutePlugin<import("@webiny/handler/types").Context>[];
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.createDownloadFileByAliasPlugins = void 0;
|
|
8
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
9
|
-
var _s = _interopRequireDefault(require("aws-sdk/clients/s3"));
|
|
10
|
-
var _utils = require("../utils");
|
|
11
|
-
var _gateway = require("@webiny/handler-aws/gateway");
|
|
12
|
-
var _extractFileInformation = require("./extractFileInformation");
|
|
13
|
-
var _getS3Object = require("./getS3Object");
|
|
14
|
-
const DEFAULT_CACHE_MAX_AGE = 30758400; // 1 year
|
|
15
|
-
const PRESIGNED_URL_EXPIRATION = 900; // 15 minutes
|
|
16
|
-
|
|
17
|
-
const createDownloadFileByAliasPlugins = ({
|
|
18
|
-
documentClient
|
|
19
|
-
}) => {
|
|
20
|
-
async function getFileByAlias(tenant, alias) {
|
|
21
|
-
const {
|
|
22
|
-
Items,
|
|
23
|
-
Count
|
|
24
|
-
} = await documentClient.query({
|
|
25
|
-
TableName: String(process.env.DB_TABLE),
|
|
26
|
-
IndexName: "GSI1",
|
|
27
|
-
Limit: 1,
|
|
28
|
-
KeyConditionExpression: "GSI1_PK = :GSI1_PK AND GSI1_SK = :GSI1_SK",
|
|
29
|
-
ExpressionAttributeValues: {
|
|
30
|
-
":GSI1_PK": `T#${tenant}#FM#FILE_ALIASES`,
|
|
31
|
-
":GSI1_SK": `/${alias}`
|
|
32
|
-
}
|
|
33
|
-
}).promise();
|
|
34
|
-
if (!Items || Count === 0) {
|
|
35
|
-
return null;
|
|
36
|
-
}
|
|
37
|
-
return Items[0].data.key ?? null;
|
|
38
|
-
}
|
|
39
|
-
return [new _gateway.RoutePlugin(({
|
|
40
|
-
onGet,
|
|
41
|
-
context
|
|
42
|
-
}) => {
|
|
43
|
-
onGet("/*", async (request, reply) => {
|
|
44
|
-
const {
|
|
45
|
-
region
|
|
46
|
-
} = (0, _utils.getEnvironment)();
|
|
47
|
-
const fileInfo = (0, _extractFileInformation.extractFileInformation)(request);
|
|
48
|
-
|
|
49
|
-
// TODO: `root` tenant is hardcoded for now, to satisfy the basic use case.
|
|
50
|
-
// We need to find a way to send tenant via `x-tenant` header, when images are being requested from
|
|
51
|
-
// the frontend (website, admin, etc.) by alias.
|
|
52
|
-
const realFilename = await getFileByAlias("root", fileInfo.filename);
|
|
53
|
-
if (!realFilename) {
|
|
54
|
-
return reply.code(404).type("text/html").send("Not Found");
|
|
55
|
-
}
|
|
56
|
-
const s3 = new _s.default({
|
|
57
|
-
region
|
|
58
|
-
});
|
|
59
|
-
const {
|
|
60
|
-
params,
|
|
61
|
-
object
|
|
62
|
-
} = await (0, _getS3Object.getS3Object)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, fileInfo), {}, {
|
|
63
|
-
filename: realFilename
|
|
64
|
-
}), s3, context);
|
|
65
|
-
|
|
66
|
-
// If there's an "object", it means we can return its body directly.
|
|
67
|
-
if (object) {
|
|
68
|
-
return reply.headers({
|
|
69
|
-
"Content-Type": object.ContentType,
|
|
70
|
-
"Cache-Control": `public, max-age=${DEFAULT_CACHE_MAX_AGE}`,
|
|
71
|
-
"x-webiny-base64-encoded": true
|
|
72
|
-
}).send(object.Body || "");
|
|
73
|
-
}
|
|
74
|
-
const presignedUrl = s3.getSignedUrl("getObject", {
|
|
75
|
-
Bucket: params.Bucket,
|
|
76
|
-
Key: params.Key,
|
|
77
|
-
Expires: PRESIGNED_URL_EXPIRATION
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
// Lambda can return max 6MB of content, so if our object's size is larger, we are sending
|
|
81
|
-
// a 301 Redirect, redirecting the user to the public URL of the object in S3.
|
|
82
|
-
return reply.code(301).headers({
|
|
83
|
-
Location: presignedUrl,
|
|
84
|
-
"Cache-Control": "public, max-age=" + PRESIGNED_URL_EXPIRATION
|
|
85
|
-
}).send("");
|
|
86
|
-
});
|
|
87
|
-
})];
|
|
88
|
-
};
|
|
89
|
-
exports.createDownloadFileByAliasPlugins = createDownloadFileByAliasPlugins;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["DEFAULT_CACHE_MAX_AGE","PRESIGNED_URL_EXPIRATION","createDownloadFileByAliasPlugins","documentClient","getFileByAlias","tenant","alias","Items","Count","query","TableName","String","process","env","DB_TABLE","IndexName","Limit","KeyConditionExpression","ExpressionAttributeValues","promise","data","key","RoutePlugin","onGet","context","request","reply","region","getEnvironment","fileInfo","extractFileInformation","realFilename","filename","code","type","send","s3","S3","params","object","getS3Object","headers","ContentType","Body","presignedUrl","getSignedUrl","Bucket","Key","Expires","Location"],"sources":["byAlias.ts"],"sourcesContent":["import S3 from \"aws-sdk/clients/s3\";\nimport { DocumentClient } from \"aws-sdk/clients/dynamodb\";\nimport { getEnvironment } from \"../utils\";\nimport { RoutePlugin } from \"@webiny/handler-aws/gateway\";\nimport { extractFileInformation } from \"./extractFileInformation\";\nimport { getS3Object } from \"./getS3Object\";\n\nconst DEFAULT_CACHE_MAX_AGE = 30758400; // 1 year\nconst PRESIGNED_URL_EXPIRATION = 900; // 15 minutes\n\nexport interface DownloadByFileAliasConfig {\n documentClient: DocumentClient;\n}\n\nexport const createDownloadFileByAliasPlugins = ({ documentClient }: DownloadByFileAliasConfig) => {\n async function getFileByAlias(tenant: string, alias: string): Promise<string | null> {\n const { Items, Count } = await documentClient\n .query({\n TableName: String(process.env.DB_TABLE),\n IndexName: \"GSI1\",\n Limit: 1,\n KeyConditionExpression: \"GSI1_PK = :GSI1_PK AND GSI1_SK = :GSI1_SK\",\n ExpressionAttributeValues: {\n \":GSI1_PK\": `T#${tenant}#FM#FILE_ALIASES`,\n \":GSI1_SK\": `/${alias}`\n }\n })\n .promise();\n\n if (!Items || Count === 0) {\n return null;\n }\n\n return Items[0].data.key ?? null;\n }\n\n return [\n new RoutePlugin(({ onGet, context }) => {\n onGet(\"/*\", async (request, reply) => {\n const { region } = getEnvironment();\n const fileInfo = extractFileInformation(request);\n\n // TODO: `root` tenant is hardcoded for now, to satisfy the basic use case.\n // We need to find a way to send tenant via `x-tenant` header, when images are being requested from\n // the frontend (website, admin, etc.) by alias.\n const realFilename = await getFileByAlias(\"root\", fileInfo.filename);\n\n if (!realFilename) {\n return reply.code(404).type(\"text/html\").send(\"Not Found\");\n }\n\n const s3 = new S3({ region });\n const { params, object } = await getS3Object(\n { ...fileInfo, filename: realFilename },\n s3,\n context\n );\n\n // If there's an \"object\", it means we can return its body directly.\n if (object) {\n return reply\n .headers({\n \"Content-Type\": object.ContentType,\n \"Cache-Control\": `public, max-age=${DEFAULT_CACHE_MAX_AGE}`,\n \"x-webiny-base64-encoded\": true\n })\n .send(object.Body || \"\");\n }\n\n const presignedUrl = s3.getSignedUrl(\"getObject\", {\n Bucket: params.Bucket,\n Key: params.Key,\n Expires: PRESIGNED_URL_EXPIRATION\n });\n\n // Lambda can return max 6MB of content, so if our object's size is larger, we are sending\n // a 301 Redirect, redirecting the user to the public URL of the object in S3.\n return reply\n .code(301)\n .headers({\n Location: presignedUrl,\n \"Cache-Control\": \"public, max-age=\" + PRESIGNED_URL_EXPIRATION\n })\n .send(\"\");\n });\n })\n ];\n};\n"],"mappings":";;;;;;;;AAAA;AAEA;AACA;AACA;AACA;AAEA,MAAMA,qBAAqB,GAAG,QAAQ,CAAC,CAAC;AACxC,MAAMC,wBAAwB,GAAG,GAAG,CAAC,CAAC;;AAM/B,MAAMC,gCAAgC,GAAG,CAAC;EAAEC;AAA0C,CAAC,KAAK;EAC/F,eAAeC,cAAc,CAACC,MAAc,EAAEC,KAAa,EAA0B;IACjF,MAAM;MAAEC,KAAK;MAAEC;IAAM,CAAC,GAAG,MAAML,cAAc,CACxCM,KAAK,CAAC;MACHC,SAAS,EAAEC,MAAM,CAACC,OAAO,CAACC,GAAG,CAACC,QAAQ,CAAC;MACvCC,SAAS,EAAE,MAAM;MACjBC,KAAK,EAAE,CAAC;MACRC,sBAAsB,EAAE,2CAA2C;MACnEC,yBAAyB,EAAE;QACvB,UAAU,EAAG,KAAIb,MAAO,kBAAiB;QACzC,UAAU,EAAG,IAAGC,KAAM;MAC1B;IACJ,CAAC,CAAC,CACDa,OAAO,EAAE;IAEd,IAAI,CAACZ,KAAK,IAAIC,KAAK,KAAK,CAAC,EAAE;MACvB,OAAO,IAAI;IACf;IAEA,OAAOD,KAAK,CAAC,CAAC,CAAC,CAACa,IAAI,CAACC,GAAG,IAAI,IAAI;EACpC;EAEA,OAAO,CACH,IAAIC,oBAAW,CAAC,CAAC;IAAEC,KAAK;IAAEC;EAAQ,CAAC,KAAK;IACpCD,KAAK,CAAC,IAAI,EAAE,OAAOE,OAAO,EAAEC,KAAK,KAAK;MAClC,MAAM;QAAEC;MAAO,CAAC,GAAG,IAAAC,qBAAc,GAAE;MACnC,MAAMC,QAAQ,GAAG,IAAAC,8CAAsB,EAACL,OAAO,CAAC;;MAEhD;MACA;MACA;MACA,MAAMM,YAAY,GAAG,MAAM3B,cAAc,CAAC,MAAM,EAAEyB,QAAQ,CAACG,QAAQ,CAAC;MAEpE,IAAI,CAACD,YAAY,EAAE;QACf,OAAOL,KAAK,CAACO,IAAI,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,WAAW,CAAC,CAACC,IAAI,CAAC,WAAW,CAAC;MAC9D;MAEA,MAAMC,EAAE,GAAG,IAAIC,UAAE,CAAC;QAAEV;MAAO,CAAC,CAAC;MAC7B,MAAM;QAAEW,MAAM;QAAEC;MAAO,CAAC,GAAG,MAAM,IAAAC,wBAAW,8DACnCX,QAAQ;QAAEG,QAAQ,EAAED;MAAY,IACrCK,EAAE,EACFZ,OAAO,CACV;;MAED;MACA,IAAIe,MAAM,EAAE;QACR,OAAOb,KAAK,CACPe,OAAO,CAAC;UACL,cAAc,EAAEF,MAAM,CAACG,WAAW;UAClC,eAAe,EAAG,mBAAkB1C,qBAAsB,EAAC;UAC3D,yBAAyB,EAAE;QAC/B,CAAC,CAAC,CACDmC,IAAI,CAACI,MAAM,CAACI,IAAI,IAAI,EAAE,CAAC;MAChC;MAEA,MAAMC,YAAY,GAAGR,EAAE,CAACS,YAAY,CAAC,WAAW,EAAE;QAC9CC,MAAM,EAAER,MAAM,CAACQ,MAAM;QACrBC,GAAG,EAAET,MAAM,CAACS,GAAG;QACfC,OAAO,EAAE/C;MACb,CAAC,CAAC;;MAEF;MACA;MACA,OAAOyB,KAAK,CACPO,IAAI,CAAC,GAAG,CAAC,CACTQ,OAAO,CAAC;QACLQ,QAAQ,EAAEL,YAAY;QACtB,eAAe,EAAE,kBAAkB,GAAG3C;MAC1C,CAAC,CAAC,CACDkC,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC,CAAC;EACN,CAAC,CAAC,CACL;AACL,CAAC;AAAC"}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.createDownloadFileByExactKeyPlugins = void 0;
|
|
8
|
-
var _s = _interopRequireDefault(require("aws-sdk/clients/s3"));
|
|
9
|
-
var _utils = require("../utils");
|
|
10
|
-
var _gateway = require("@webiny/handler-aws/gateway");
|
|
11
|
-
var _getS3Object = require("./getS3Object");
|
|
12
|
-
var _extractFileInformation = require("./extractFileInformation");
|
|
13
|
-
const DEFAULT_CACHE_MAX_AGE = 30758400; // 1 year
|
|
14
|
-
const PRESIGNED_URL_EXPIRATION = 900; // 15 minutes
|
|
15
|
-
|
|
16
|
-
const createDownloadFileByExactKeyPlugins = () => {
|
|
17
|
-
return [new _gateway.RoutePlugin(({
|
|
18
|
-
onGet,
|
|
19
|
-
context
|
|
20
|
-
}) => {
|
|
21
|
-
onGet("/files/*", async (request, reply) => {
|
|
22
|
-
const {
|
|
23
|
-
region
|
|
24
|
-
} = (0, _utils.getEnvironment)();
|
|
25
|
-
const fileInfo = (0, _extractFileInformation.extractFileInformation)(request);
|
|
26
|
-
const s3 = new _s.default({
|
|
27
|
-
region
|
|
28
|
-
});
|
|
29
|
-
const {
|
|
30
|
-
params,
|
|
31
|
-
object
|
|
32
|
-
} = await (0, _getS3Object.getS3Object)(fileInfo, s3, context);
|
|
33
|
-
|
|
34
|
-
// If there's an "object", it means we can return its body directly.
|
|
35
|
-
if (object) {
|
|
36
|
-
return reply.headers({
|
|
37
|
-
"Content-Type": object.ContentType,
|
|
38
|
-
"Cache-Control": `public, max-age=${DEFAULT_CACHE_MAX_AGE}`,
|
|
39
|
-
"x-webiny-base64-encoded": true
|
|
40
|
-
}).send(object.Body || "");
|
|
41
|
-
}
|
|
42
|
-
const presignedUrl = s3.getSignedUrl("getObject", {
|
|
43
|
-
Bucket: params.Bucket,
|
|
44
|
-
Key: params.Key,
|
|
45
|
-
Expires: PRESIGNED_URL_EXPIRATION
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
// Lambda can return max 6MB of content, so if our object's size is larger, we are sending
|
|
49
|
-
// a 301 Redirect, redirecting the user to the public URL of the object in S3.
|
|
50
|
-
return reply.code(301).headers({
|
|
51
|
-
Location: presignedUrl,
|
|
52
|
-
"Cache-Control": "public, max-age=" + PRESIGNED_URL_EXPIRATION
|
|
53
|
-
}).send("");
|
|
54
|
-
});
|
|
55
|
-
})];
|
|
56
|
-
};
|
|
57
|
-
exports.createDownloadFileByExactKeyPlugins = createDownloadFileByExactKeyPlugins;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["DEFAULT_CACHE_MAX_AGE","PRESIGNED_URL_EXPIRATION","createDownloadFileByExactKeyPlugins","RoutePlugin","onGet","context","request","reply","region","getEnvironment","fileInfo","extractFileInformation","s3","S3","params","object","getS3Object","headers","ContentType","send","Body","presignedUrl","getSignedUrl","Bucket","Key","Expires","code","Location"],"sources":["byExactKey.ts"],"sourcesContent":["import S3 from \"aws-sdk/clients/s3\";\nimport { getEnvironment } from \"../utils\";\nimport { RoutePlugin } from \"@webiny/handler-aws/gateway\";\nimport { getS3Object } from \"~/handlers/download/getS3Object\";\nimport { extractFileInformation } from \"~/handlers/download/extractFileInformation\";\n\nconst DEFAULT_CACHE_MAX_AGE = 30758400; // 1 year\nconst PRESIGNED_URL_EXPIRATION = 900; // 15 minutes\n\nexport const createDownloadFileByExactKeyPlugins = () => {\n return [\n new RoutePlugin(({ onGet, context }) => {\n onGet(\"/files/*\", async (request, reply) => {\n const { region } = getEnvironment();\n const fileInfo = extractFileInformation(request);\n const s3 = new S3({ region });\n\n const { params, object } = await getS3Object(fileInfo, s3, context);\n\n // If there's an \"object\", it means we can return its body directly.\n if (object) {\n return reply\n .headers({\n \"Content-Type\": object.ContentType,\n \"Cache-Control\": `public, max-age=${DEFAULT_CACHE_MAX_AGE}`,\n \"x-webiny-base64-encoded\": true\n })\n .send(object.Body || \"\");\n }\n\n const presignedUrl = s3.getSignedUrl(\"getObject\", {\n Bucket: params.Bucket,\n Key: params.Key,\n Expires: PRESIGNED_URL_EXPIRATION\n });\n\n // Lambda can return max 6MB of content, so if our object's size is larger, we are sending\n // a 301 Redirect, redirecting the user to the public URL of the object in S3.\n return reply\n .code(301)\n .headers({\n Location: presignedUrl,\n \"Cache-Control\": \"public, max-age=\" + PRESIGNED_URL_EXPIRATION\n })\n .send(\"\");\n });\n })\n ];\n};\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AAEA,MAAMA,qBAAqB,GAAG,QAAQ,CAAC,CAAC;AACxC,MAAMC,wBAAwB,GAAG,GAAG,CAAC,CAAC;;AAE/B,MAAMC,mCAAmC,GAAG,MAAM;EACrD,OAAO,CACH,IAAIC,oBAAW,CAAC,CAAC;IAAEC,KAAK;IAAEC;EAAQ,CAAC,KAAK;IACpCD,KAAK,CAAC,UAAU,EAAE,OAAOE,OAAO,EAAEC,KAAK,KAAK;MACxC,MAAM;QAAEC;MAAO,CAAC,GAAG,IAAAC,qBAAc,GAAE;MACnC,MAAMC,QAAQ,GAAG,IAAAC,8CAAsB,EAACL,OAAO,CAAC;MAChD,MAAMM,EAAE,GAAG,IAAIC,UAAE,CAAC;QAAEL;MAAO,CAAC,CAAC;MAE7B,MAAM;QAAEM,MAAM;QAAEC;MAAO,CAAC,GAAG,MAAM,IAAAC,wBAAW,EAACN,QAAQ,EAAEE,EAAE,EAAEP,OAAO,CAAC;;MAEnE;MACA,IAAIU,MAAM,EAAE;QACR,OAAOR,KAAK,CACPU,OAAO,CAAC;UACL,cAAc,EAAEF,MAAM,CAACG,WAAW;UAClC,eAAe,EAAG,mBAAkBlB,qBAAsB,EAAC;UAC3D,yBAAyB,EAAE;QAC/B,CAAC,CAAC,CACDmB,IAAI,CAACJ,MAAM,CAACK,IAAI,IAAI,EAAE,CAAC;MAChC;MAEA,MAAMC,YAAY,GAAGT,EAAE,CAACU,YAAY,CAAC,WAAW,EAAE;QAC9CC,MAAM,EAAET,MAAM,CAACS,MAAM;QACrBC,GAAG,EAAEV,MAAM,CAACU,GAAG;QACfC,OAAO,EAAExB;MACb,CAAC,CAAC;;MAEF;MACA;MACA,OAAOM,KAAK,CACPmB,IAAI,CAAC,GAAG,CAAC,CACTT,OAAO,CAAC;QACLU,QAAQ,EAAEN,YAAY;QACtB,eAAe,EAAE,kBAAkB,GAAGpB;MAC1C,CAAC,CAAC,CACDkB,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC,CAAC;EACN,CAAC,CAAC,CACL;AACL,CAAC;AAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { Request } from "@webiny/handler/types";
|
|
2
|
-
/**
|
|
3
|
-
* Based on given request path, extracts file key and additional options sent via query params.
|
|
4
|
-
*/
|
|
5
|
-
export declare const extractFileInformation: (request: Request) => {
|
|
6
|
-
filename: string;
|
|
7
|
-
options: any;
|
|
8
|
-
extension: string;
|
|
9
|
-
};
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.extractFileInformation = void 0;
|
|
8
|
-
var _path = _interopRequireDefault(require("path"));
|
|
9
|
-
/**
|
|
10
|
-
* Based on given request path, extracts file key and additional options sent via query params.
|
|
11
|
-
*/
|
|
12
|
-
const extractFileInformation = request => {
|
|
13
|
-
const path = request.params["*"];
|
|
14
|
-
return {
|
|
15
|
-
filename: decodeURI(path),
|
|
16
|
-
options: request.query,
|
|
17
|
-
extension: _path.default.extname(path)
|
|
18
|
-
};
|
|
19
|
-
};
|
|
20
|
-
exports.extractFileInformation = extractFileInformation;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["extractFileInformation","request","path","params","filename","decodeURI","options","query","extension","pathLib","extname"],"sources":["extractFileInformation.ts"],"sourcesContent":["import pathLib from \"path\";\nimport { Request } from \"@webiny/handler/types\";\n\n/**\n * Based on given request path, extracts file key and additional options sent via query params.\n */\nexport const extractFileInformation = (request: Request) => {\n const path = (request.params as any)[\"*\"];\n return {\n filename: decodeURI(path),\n options: request.query as any,\n extension: pathLib.extname(path)\n };\n};\n"],"mappings":";;;;;;;AAAA;AAGA;AACA;AACA;AACO,MAAMA,sBAAsB,GAAIC,OAAgB,IAAK;EACxD,MAAMC,IAAI,GAAID,OAAO,CAACE,MAAM,CAAS,GAAG,CAAC;EACzC,OAAO;IACHC,QAAQ,EAAEC,SAAS,CAACH,IAAI,CAAC;IACzBI,OAAO,EAAEL,OAAO,CAACM,KAAY;IAC7BC,SAAS,EAAEC,aAAO,CAACC,OAAO,CAACR,IAAI;EACnC,CAAC;AACL,CAAC;AAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import S3 from "aws-sdk/clients/s3";
|
|
2
|
-
import { Context } from "@webiny/handler/types";
|
|
3
|
-
import { ObjectParamsResponse } from "../utils/getObjectParams";
|
|
4
|
-
import { extractFileInformation } from "./extractFileInformation";
|
|
5
|
-
interface S3Object {
|
|
6
|
-
object?: S3.Types.GetObjectOutput;
|
|
7
|
-
params: ObjectParamsResponse;
|
|
8
|
-
}
|
|
9
|
-
export declare const getS3Object: (fileInfo: ReturnType<typeof extractFileInformation>, s3: S3, context: Context) => Promise<S3Object>;
|
|
10
|
-
export {};
|