@webiny/api-file-manager 0.0.0-unstable.bca7b3e350 → 0.0.0-unstable.c27f4d8a31
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/contants.d.ts +1 -0
- package/contants.js +3 -0
- package/contants.js.map +1 -0
- package/delivery/AssetDelivery/Asset.d.ts +28 -0
- package/delivery/AssetDelivery/Asset.js +59 -0
- package/delivery/AssetDelivery/Asset.js.map +1 -0
- package/delivery/AssetDelivery/AssetDeliveryConfig.d.ts +65 -0
- package/delivery/AssetDelivery/AssetDeliveryConfig.js +94 -0
- package/delivery/AssetDelivery/AssetDeliveryConfig.js.map +1 -0
- package/delivery/AssetDelivery/AssetRequest.d.ts +25 -0
- package/delivery/AssetDelivery/AssetRequest.js +22 -0
- package/delivery/AssetDelivery/AssetRequest.js.map +1 -0
- package/delivery/AssetDelivery/FilesAssetRequestResolver.d.ts +6 -0
- package/delivery/AssetDelivery/FilesAssetRequestResolver.js +30 -0
- package/delivery/AssetDelivery/FilesAssetRequestResolver.js.map +1 -0
- package/delivery/AssetDelivery/NullAssetOutputStrategy.d.ts +4 -0
- package/delivery/AssetDelivery/NullAssetOutputStrategy.js +8 -0
- package/delivery/AssetDelivery/NullAssetOutputStrategy.js.map +1 -0
- package/delivery/AssetDelivery/NullAssetReply.d.ts +4 -0
- package/delivery/AssetDelivery/NullAssetReply.js +13 -0
- package/delivery/AssetDelivery/NullAssetReply.js.map +1 -0
- package/delivery/AssetDelivery/NullAssetResolver.d.ts +5 -0
- package/delivery/AssetDelivery/NullAssetResolver.js +7 -0
- package/delivery/AssetDelivery/NullAssetResolver.js.map +1 -0
- package/delivery/AssetDelivery/NullRequestResolver.d.ts +4 -0
- package/delivery/AssetDelivery/NullRequestResolver.js +7 -0
- package/delivery/AssetDelivery/NullRequestResolver.js.map +1 -0
- package/delivery/AssetDelivery/SetCacheControlHeaders.d.ts +8 -0
- package/delivery/AssetDelivery/SetCacheControlHeaders.js +18 -0
- package/delivery/AssetDelivery/SetCacheControlHeaders.js.map +1 -0
- package/delivery/AssetDelivery/SetResponseHeaders.d.ts +18 -0
- package/delivery/AssetDelivery/SetResponseHeaders.js +18 -0
- package/delivery/AssetDelivery/SetResponseHeaders.js.map +1 -0
- package/delivery/AssetDelivery/abstractions/AssetContentsReader.d.ts +4 -0
- package/delivery/AssetDelivery/abstractions/AssetContentsReader.js +3 -0
- package/delivery/AssetDelivery/abstractions/AssetContentsReader.js.map +1 -0
- package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.d.ts +4 -0
- package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.js +3 -0
- package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.js.map +1 -0
- package/delivery/AssetDelivery/abstractions/AssetProcessor.d.ts +4 -0
- package/delivery/AssetDelivery/abstractions/AssetProcessor.js +3 -0
- package/delivery/AssetDelivery/abstractions/AssetProcessor.js.map +1 -0
- package/delivery/AssetDelivery/abstractions/AssetReply.d.ts +25 -0
- package/delivery/AssetDelivery/abstractions/AssetReply.js +31 -0
- package/delivery/AssetDelivery/abstractions/AssetReply.js.map +1 -0
- package/delivery/AssetDelivery/abstractions/AssetRequestResolver.d.ts +5 -0
- package/delivery/AssetDelivery/abstractions/AssetRequestResolver.js +3 -0
- package/delivery/AssetDelivery/abstractions/AssetRequestResolver.js.map +1 -0
- package/delivery/AssetDelivery/abstractions/AssetResolver.d.ts +4 -0
- package/delivery/AssetDelivery/abstractions/AssetResolver.js +3 -0
- package/delivery/AssetDelivery/abstractions/AssetResolver.js.map +1 -0
- package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.d.ts +4 -0
- package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.js +3 -0
- package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.js.map +1 -0
- package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.d.ts +2 -0
- package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.js +8 -0
- package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.js.map +1 -0
- package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.d.ts +4 -0
- package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.js +3 -0
- package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.js.map +1 -0
- package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.d.ts +4 -0
- package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.js +19 -0
- package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.js.map +1 -0
- package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.d.ts +4 -0
- package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.js +8 -0
- package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.js.map +1 -0
- package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.d.ts +8 -0
- package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js +20 -0
- package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js.map +1 -0
- package/delivery/AssetDelivery/privateFiles/PrivateCache.d.ts +6 -0
- package/delivery/AssetDelivery/privateFiles/PrivateCache.js +21 -0
- package/delivery/AssetDelivery/privateFiles/PrivateCache.js.map +1 -0
- package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.d.ts +8 -0
- package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.js +30 -0
- package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.js.map +1 -0
- package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.d.ts +13 -0
- package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.js +63 -0
- package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.js.map +1 -0
- package/delivery/AssetDelivery/privateFiles/PublicCache.d.ts +6 -0
- package/delivery/AssetDelivery/privateFiles/PublicCache.js +21 -0
- package/delivery/AssetDelivery/privateFiles/PublicCache.js.map +1 -0
- package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.d.ts +7 -0
- package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js +20 -0
- package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js.map +1 -0
- package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.d.ts +7 -0
- package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js +20 -0
- package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js.map +1 -0
- package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.d.ts +4 -0
- package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.js +7 -0
- package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.js.map +1 -0
- package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.d.ts +4 -0
- package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.js +7 -0
- package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.js.map +1 -0
- package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.d.ts +6 -0
- package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.js +19 -0
- package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.js.map +1 -0
- package/delivery/index.d.ts +16 -0
- package/delivery/index.js +12 -0
- package/delivery/index.js.map +1 -0
- package/delivery/setupAssetDelivery.d.ts +2 -0
- package/delivery/setupAssetDelivery.js +114 -0
- package/delivery/setupAssetDelivery.js.map +1 -0
- package/domain/file/abstractions.d.ts +9 -0
- package/domain/file/abstractions.js +8 -0
- package/domain/file/abstractions.js.map +1 -0
- package/domain/file/errors.d.ts +59 -0
- package/domain/file/errors.js +89 -0
- package/domain/file/errors.js.map +1 -0
- package/domain/file/file.model.d.ts +12 -0
- package/domain/file/file.model.js +56 -0
- package/domain/file/file.model.js.map +1 -0
- package/domain/file/types.d.ts +51 -0
- package/domain/file/types.js +3 -0
- package/domain/file/types.js.map +1 -0
- package/domain/identity/Identity.d.ts +9 -0
- package/domain/identity/Identity.js +11 -0
- package/domain/identity/Identity.js.map +1 -0
- package/domain/settings/constants.d.ts +1 -0
- package/domain/settings/constants.js +3 -0
- package/domain/settings/constants.js.map +1 -0
- package/domain/settings/errors.d.ts +18 -0
- package/domain/settings/errors.js +30 -0
- package/domain/settings/errors.js.map +1 -0
- package/domain/settings/types.d.ts +10 -0
- package/domain/settings/types.js +3 -0
- package/domain/settings/types.js.map +1 -0
- package/domain/settings/validation.d.ts +6 -0
- package/domain/settings/validation.js +36 -0
- package/domain/settings/validation.js.map +1 -0
- package/features/FileManagerFeature.d.ts +1 -0
- package/features/FileManagerFeature.js +28 -0
- package/features/FileManagerFeature.js.map +1 -0
- package/features/file/CreateFile/CreateFileRepository.d.ts +15 -0
- package/features/file/CreateFile/CreateFileRepository.js +30 -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 +89 -0
- package/features/file/CreateFile/CreateFileUseCase.js.map +1 -0
- package/features/file/CreateFile/abstractions.d.ts +57 -0
- package/features/file/CreateFile/abstractions.js +15 -0
- package/features/file/CreateFile/abstractions.js.map +1 -0
- package/features/file/CreateFile/events.d.ts +29 -0
- package/features/file/CreateFile/events.js +28 -0
- package/features/file/CreateFile/events.js.map +1 -0
- package/features/file/CreateFile/feature.d.ts +1 -0
- package/features/file/CreateFile/feature.js +12 -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 +4 -0
- package/features/file/CreateFile/index.js.map +1 -0
- package/features/file/CreateFilesInBatch/CreateFilesInBatchRepository.d.ts +13 -0
- package/features/file/CreateFilesInBatch/CreateFilesInBatchRepository.js +24 -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 +84 -0
- package/features/file/CreateFilesInBatch/CreateFilesInBatchUseCase.js.map +1 -0
- package/features/file/CreateFilesInBatch/abstractions.d.ts +40 -0
- package/features/file/CreateFilesInBatch/abstractions.js +15 -0
- package/features/file/CreateFilesInBatch/abstractions.js.map +1 -0
- package/features/file/CreateFilesInBatch/events.d.ts +29 -0
- package/features/file/CreateFilesInBatch/events.js +28 -0
- package/features/file/CreateFilesInBatch/events.js.map +1 -0
- package/features/file/CreateFilesInBatch/feature.d.ts +1 -0
- package/features/file/CreateFilesInBatch/feature.js +12 -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 +3 -0
- package/features/file/CreateFilesInBatch/index.js.map +1 -0
- package/features/file/DeleteFile/DeleteFileRepository.d.ts +15 -0
- package/features/file/DeleteFile/DeleteFileRepository.js +30 -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 +45 -0
- package/features/file/DeleteFile/DeleteFileUseCase.js.map +1 -0
- package/features/file/DeleteFile/abstractions.d.ts +37 -0
- package/features/file/DeleteFile/abstractions.js +15 -0
- package/features/file/DeleteFile/abstractions.js.map +1 -0
- package/features/file/DeleteFile/events.d.ts +27 -0
- package/features/file/DeleteFile/events.js +28 -0
- package/features/file/DeleteFile/events.js.map +1 -0
- package/features/file/DeleteFile/feature.d.ts +1 -0
- package/features/file/DeleteFile/feature.js +12 -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 +4 -0
- package/features/file/DeleteFile/index.js.map +1 -0
- package/features/file/FileUrlGenerator/abstractions.d.ts +8 -0
- package/features/file/FileUrlGenerator/abstractions.js +4 -0
- package/features/file/FileUrlGenerator/abstractions.js.map +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 +31 -0
- package/features/file/GetFile/GetFileUseCase.js.map +1 -0
- package/features/file/GetFile/abstractions.d.ts +38 -0
- package/features/file/GetFile/abstractions.js +15 -0
- package/features/file/GetFile/abstractions.js.map +1 -0
- package/features/file/GetFile/feature.d.ts +1 -0
- package/features/file/GetFile/feature.js +12 -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 +3 -0
- package/features/file/GetFile/index.js.map +1 -0
- package/features/file/ListFiles/ListFilesRepository.d.ts +18 -0
- package/features/file/ListFiles/ListFilesRepository.js +51 -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 +45 -0
- package/features/file/ListFiles/ListFilesUseCase.js.map +1 -0
- package/features/file/ListFiles/abstractions.d.ts +47 -0
- package/features/file/ListFiles/abstractions.js +15 -0
- package/features/file/ListFiles/abstractions.js.map +1 -0
- package/features/file/ListFiles/feature.d.ts +1 -0
- package/features/file/ListFiles/feature.js +12 -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 +3 -0
- package/features/file/ListFiles/index.js.map +1 -0
- package/features/file/ListTags/ListTagsRepository.d.ts +16 -0
- package/features/file/ListTags/ListTagsRepository.js +47 -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 +43 -0
- package/features/file/ListTags/abstractions.js +15 -0
- package/features/file/ListTags/abstractions.js.map +1 -0
- package/features/file/ListTags/feature.d.ts +1 -0
- package/features/file/ListTags/feature.js +12 -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 +3 -0
- package/features/file/ListTags/index.js.map +1 -0
- package/features/file/UpdateFile/UpdateFileRepository.d.ts +15 -0
- package/features/file/UpdateFile/UpdateFileRepository.js +39 -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 +78 -0
- package/features/file/UpdateFile/UpdateFileUseCase.js.map +1 -0
- package/features/file/UpdateFile/abstractions.d.ts +53 -0
- package/features/file/UpdateFile/abstractions.js +15 -0
- package/features/file/UpdateFile/abstractions.js.map +1 -0
- package/features/file/UpdateFile/events.d.ts +32 -0
- package/features/file/UpdateFile/events.js +28 -0
- package/features/file/UpdateFile/events.js.map +1 -0
- package/features/file/UpdateFile/feature.d.ts +1 -0
- package/features/file/UpdateFile/feature.js +12 -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 +4 -0
- package/features/file/UpdateFile/index.js.map +1 -0
- package/features/file/shared/EntryToFileMapper.d.ts +5 -0
- package/features/file/shared/EntryToFileMapper.js +26 -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 +30 -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 +29 -0
- package/features/file/shared/FileToEntryMapper.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 +17 -0
- package/features/settings/GetSettings/abstractions.js +9 -0
- package/features/settings/GetSettings/abstractions.js.map +1 -0
- package/features/settings/GetSettings/feature.d.ts +1 -0
- package/features/settings/GetSettings/feature.js +10 -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 +35 -0
- package/features/settings/SettingsInstaller/SettingsInstaller.js.map +1 -0
- package/features/settings/SettingsInstaller/feature.d.ts +1 -0
- package/features/settings/SettingsInstaller/feature.js +10 -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 +62 -0
- package/features/settings/UpdateSettings/UpdateSettingsUseCase.js.map +1 -0
- package/features/settings/UpdateSettings/abstractions.d.ts +22 -0
- package/features/settings/UpdateSettings/abstractions.js +9 -0
- package/features/settings/UpdateSettings/abstractions.js.map +1 -0
- package/features/settings/UpdateSettings/events.d.ts +32 -0
- package/features/settings/UpdateSettings/events.js +28 -0
- package/features/settings/UpdateSettings/events.js.map +1 -0
- package/features/settings/UpdateSettings/feature.d.ts +1 -0
- package/features/settings/UpdateSettings/feature.js +10 -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 +4 -0
- package/features/settings/UpdateSettings/index.js.map +1 -0
- package/features/shared/abstractions.d.ts +1 -0
- package/features/shared/abstractions.js +3 -0
- package/features/shared/abstractions.js.map +1 -0
- package/graphql/baseSchema.d.ts +3 -0
- package/graphql/baseSchema.js +103 -0
- package/graphql/baseSchema.js.map +1 -0
- package/graphql/createFilesTypeDefs.d.ts +7 -0
- package/graphql/createFilesTypeDefs.js +199 -0
- package/graphql/createFilesTypeDefs.js.map +1 -0
- package/graphql/filesSchema.d.ts +4 -0
- package/graphql/filesSchema.js +116 -0
- package/graphql/filesSchema.js.map +1 -0
- package/graphql/getFileByUrl.d.ts +3 -0
- package/graphql/getFileByUrl.js +69 -0
- package/graphql/getFileByUrl.js.map +1 -0
- package/graphql/index.d.ts +4 -0
- package/graphql/index.js +53 -0
- package/graphql/index.js.map +1 -0
- package/graphql/utils.d.ts +11 -0
- package/graphql/utils.js +17 -0
- package/graphql/utils.js.map +1 -0
- package/index.d.ts +7 -0
- package/index.js +37 -0
- package/index.js.map +1 -0
- package/modelModifier/CmsModelModifier.d.ts +26 -0
- package/modelModifier/CmsModelModifier.js +54 -0
- package/modelModifier/CmsModelModifier.js.map +1 -0
- package/package.json +26 -39
- package/permissions/schema.d.ts +73 -0
- package/permissions/schema.js +20 -0
- package/permissions/schema.js.map +1 -0
- package/types.d.ts +1 -356
- package/types.js +2 -4
- package/types.js.map +1 -1
- package/handlers/download/index.d.ts +0 -3
- package/handlers/download/index.js +0 -132
- package/handlers/download/index.js.map +0 -1
- package/handlers/manage/index.d.ts +0 -5
- package/handlers/manage/index.js +0 -71
- package/handlers/manage/index.js.map +0 -1
- package/handlers/transform/index.d.ts +0 -2
- package/handlers/transform/index.js +0 -91
- package/handlers/transform/index.js.map +0 -1
- package/handlers/transform/loaders/imageLoader.d.ts +0 -30
- package/handlers/transform/loaders/imageLoader.js +0 -105
- 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 -13
- 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 -58
- 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 -63
- 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 -13
- package/handlers/transform/managers/index.js.map +0 -1
- package/handlers/transform/optimizeImage.d.ts +0 -3
- package/handlers/transform/optimizeImage.js +0 -48
- package/handlers/transform/optimizeImage.js.map +0 -1
- package/handlers/transform/transformImage.d.ts +0 -10
- package/handlers/transform/transformImage.js +0 -30
- package/handlers/transform/transformImage.js.map +0 -1
- package/handlers/transform/utils.d.ts +0 -12
- package/handlers/transform/utils.js +0 -46
- 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 -13
- package/handlers/utils/getEnvironment.js.map +0 -1
- package/handlers/utils/getObjectParams.d.ts +0 -9
- package/handlers/utils/getObjectParams.js +0 -25
- package/handlers/utils/getObjectParams.js.map +0 -1
- package/handlers/utils/index.d.ts +0 -2
- package/handlers/utils/index.js +0 -23
- package/handlers/utils/index.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 -24
- 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/utils.d.ts +0 -4
- package/utils.js +0 -16
- package/utils.js.map +0 -1
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { Permissions } from "@webiny/api-core/features/security/permissions/index.js";
|
|
2
|
+
declare const schema: {
|
|
3
|
+
readonly prefix: "fm";
|
|
4
|
+
readonly fullAccess: true;
|
|
5
|
+
readonly entities: readonly [{
|
|
6
|
+
readonly id: "file";
|
|
7
|
+
readonly permission: "fm.file";
|
|
8
|
+
readonly scopes: readonly ["full", "own"];
|
|
9
|
+
readonly actions: readonly [{
|
|
10
|
+
readonly name: "rwd";
|
|
11
|
+
}];
|
|
12
|
+
}, {
|
|
13
|
+
readonly id: "settings";
|
|
14
|
+
readonly permission: "fm.settings";
|
|
15
|
+
readonly scopes: readonly ["full"];
|
|
16
|
+
}];
|
|
17
|
+
};
|
|
18
|
+
type FmSchema = typeof schema;
|
|
19
|
+
export declare const FmPermissions: {
|
|
20
|
+
Abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/security/permissions/types").PermissionsTyped<{
|
|
21
|
+
readonly prefix: "fm";
|
|
22
|
+
readonly fullAccess: true;
|
|
23
|
+
readonly entities: readonly [{
|
|
24
|
+
readonly id: "file";
|
|
25
|
+
readonly permission: "fm.file";
|
|
26
|
+
readonly scopes: readonly ["full", "own"];
|
|
27
|
+
readonly actions: readonly [{
|
|
28
|
+
readonly name: "rwd";
|
|
29
|
+
}];
|
|
30
|
+
}, {
|
|
31
|
+
readonly id: "settings";
|
|
32
|
+
readonly permission: "fm.settings";
|
|
33
|
+
readonly scopes: readonly ["full"];
|
|
34
|
+
}];
|
|
35
|
+
}>>;
|
|
36
|
+
Implementation: import("@webiny/di").Constructor<import("@webiny/api-core/features/security/permissions/types").PermissionsTyped<{
|
|
37
|
+
readonly prefix: "fm";
|
|
38
|
+
readonly fullAccess: true;
|
|
39
|
+
readonly entities: readonly [{
|
|
40
|
+
readonly id: "file";
|
|
41
|
+
readonly permission: "fm.file";
|
|
42
|
+
readonly scopes: readonly ["full", "own"];
|
|
43
|
+
readonly actions: readonly [{
|
|
44
|
+
readonly name: "rwd";
|
|
45
|
+
}];
|
|
46
|
+
}, {
|
|
47
|
+
readonly id: "settings";
|
|
48
|
+
readonly permission: "fm.settings";
|
|
49
|
+
readonly scopes: readonly ["full"];
|
|
50
|
+
}];
|
|
51
|
+
}>> & {
|
|
52
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/security/permissions/types").PermissionsTyped<{
|
|
53
|
+
readonly prefix: "fm";
|
|
54
|
+
readonly fullAccess: true;
|
|
55
|
+
readonly entities: readonly [{
|
|
56
|
+
readonly id: "file";
|
|
57
|
+
readonly permission: "fm.file";
|
|
58
|
+
readonly scopes: readonly ["full", "own"];
|
|
59
|
+
readonly actions: readonly [{
|
|
60
|
+
readonly name: "rwd";
|
|
61
|
+
}];
|
|
62
|
+
}, {
|
|
63
|
+
readonly id: "settings";
|
|
64
|
+
readonly permission: "fm.settings";
|
|
65
|
+
readonly scopes: readonly ["full"];
|
|
66
|
+
}];
|
|
67
|
+
}>>;
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
export declare namespace FmPermissions {
|
|
71
|
+
type Interface = Permissions<FmSchema>;
|
|
72
|
+
}
|
|
73
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { createPermissions } from "@webiny/api-core/features/security/permissions/index.js";
|
|
2
|
+
const schema = {
|
|
3
|
+
prefix: "fm",
|
|
4
|
+
fullAccess: true,
|
|
5
|
+
entities: [{
|
|
6
|
+
id: "file",
|
|
7
|
+
permission: "fm.file",
|
|
8
|
+
scopes: ["full", "own"],
|
|
9
|
+
actions: [{
|
|
10
|
+
name: "rwd"
|
|
11
|
+
}]
|
|
12
|
+
}, {
|
|
13
|
+
id: "settings",
|
|
14
|
+
permission: "fm.settings",
|
|
15
|
+
scopes: ["full"]
|
|
16
|
+
}]
|
|
17
|
+
};
|
|
18
|
+
export const FmPermissions = createPermissions(schema);
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createPermissions","schema","prefix","fullAccess","entities","id","permission","scopes","actions","name","FmPermissions"],"sources":["schema.ts"],"sourcesContent":["import { createPermissions } from \"@webiny/api-core/features/security/permissions/index.js\";\nimport type { Permissions } from \"@webiny/api-core/features/security/permissions/index.js\";\n\nconst schema = {\n prefix: \"fm\",\n fullAccess: true,\n entities: [\n {\n id: \"file\",\n permission: \"fm.file\",\n scopes: [\"full\", \"own\"],\n actions: [{ name: \"rwd\" }]\n },\n {\n id: \"settings\",\n permission: \"fm.settings\",\n scopes: [\"full\"]\n }\n ]\n} as const;\n\ntype FmSchema = typeof schema;\n\nexport const FmPermissions = createPermissions(schema);\n\nexport namespace FmPermissions {\n export type Interface = Permissions<FmSchema>;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,yDAAyD;AAG3F,MAAMC,MAAM,GAAG;EACXC,MAAM,EAAE,IAAI;EACZC,UAAU,EAAE,IAAI;EAChBC,QAAQ,EAAE,CACN;IACIC,EAAE,EAAE,MAAM;IACVC,UAAU,EAAE,SAAS;IACrBC,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;IACvBC,OAAO,EAAE,CAAC;MAAEC,IAAI,EAAE;IAAM,CAAC;EAC7B,CAAC,EACD;IACIJ,EAAE,EAAE,UAAU;IACdC,UAAU,EAAE,aAAa;IACzBC,MAAM,EAAE,CAAC,MAAM;EACnB,CAAC;AAET,CAAU;AAIV,OAAO,MAAMG,aAAa,GAAGV,iBAAiB,CAACC,MAAM,CAAC","ignoreList":[]}
|
package/types.d.ts
CHANGED
|
@@ -1,361 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { FileStorage } from "./plugins/storage/FileStorage";
|
|
3
|
-
import { TenancyContext } from "@webiny/api-tenancy/types";
|
|
4
|
-
import { SecurityContext, SecurityPermission } from "@webiny/api-security/types";
|
|
5
|
-
import { Context } from "@webiny/api/types";
|
|
6
|
-
export interface FileManagerContext extends Context, SecurityContext, TenancyContext, I18NContext {
|
|
7
|
-
fileManager: {
|
|
8
|
-
files: FilesCRUD;
|
|
9
|
-
settings: SettingsCRUD;
|
|
10
|
-
storage: FileStorage;
|
|
11
|
-
system: SystemCRUD;
|
|
12
|
-
};
|
|
13
|
-
}
|
|
1
|
+
import type { SecurityPermission } from "@webiny/api-core/types/security.js";
|
|
14
2
|
export interface FilePermission extends SecurityPermission {
|
|
15
3
|
name: "fm.file";
|
|
16
4
|
rwd?: string;
|
|
17
5
|
own?: boolean;
|
|
18
6
|
}
|
|
19
|
-
export interface File {
|
|
20
|
-
id: string;
|
|
21
|
-
key: string;
|
|
22
|
-
size: number;
|
|
23
|
-
type: string;
|
|
24
|
-
name: string;
|
|
25
|
-
meta: Record<string, any>;
|
|
26
|
-
tags: string[];
|
|
27
|
-
createdOn: string;
|
|
28
|
-
createdBy: CreatedBy;
|
|
29
|
-
/**
|
|
30
|
-
* Added with new storage operations refactoring.
|
|
31
|
-
*/
|
|
32
|
-
tenant: string;
|
|
33
|
-
locale: string;
|
|
34
|
-
webinyVersion: string;
|
|
35
|
-
/**
|
|
36
|
-
* User can add new fields to the File object so we must allow it in the types.
|
|
37
|
-
*/
|
|
38
|
-
[key: string]: any;
|
|
39
|
-
}
|
|
40
|
-
export interface CreatedBy {
|
|
41
|
-
id: string;
|
|
42
|
-
displayName: string | null;
|
|
43
|
-
type: string;
|
|
44
|
-
}
|
|
45
|
-
export interface FileInput {
|
|
46
|
-
key: string;
|
|
47
|
-
name: string;
|
|
48
|
-
size: number;
|
|
49
|
-
type: string;
|
|
50
|
-
meta: Record<string, any>;
|
|
51
|
-
tags: string[];
|
|
52
|
-
}
|
|
53
|
-
export interface FileListWhereParams {
|
|
54
|
-
search?: string;
|
|
55
|
-
type?: string;
|
|
56
|
-
type_in?: string[];
|
|
57
|
-
tag?: string;
|
|
58
|
-
tag_in?: string[];
|
|
59
|
-
tag_and_in?: string[];
|
|
60
|
-
id_in?: string[];
|
|
61
|
-
id?: string;
|
|
62
|
-
}
|
|
63
|
-
export interface FilesListOpts {
|
|
64
|
-
search?: string;
|
|
65
|
-
types?: string[];
|
|
66
|
-
tags?: string[];
|
|
67
|
-
ids?: string[];
|
|
68
|
-
limit?: number;
|
|
69
|
-
after?: string;
|
|
70
|
-
where?: FileListWhereParams;
|
|
71
|
-
sort?: string[];
|
|
72
|
-
}
|
|
73
|
-
export interface FileListMeta {
|
|
74
|
-
cursor: string | null;
|
|
75
|
-
totalCount: number;
|
|
76
|
-
hasMoreItems: boolean;
|
|
77
|
-
}
|
|
78
|
-
interface FilesCrudListTagsWhere {
|
|
79
|
-
tag?: string;
|
|
80
|
-
tag_contains?: string;
|
|
81
|
-
tag_in?: string[];
|
|
82
|
-
tag_not_startsWith?: string;
|
|
83
|
-
tag_startsWith?: string;
|
|
84
|
-
}
|
|
85
|
-
interface FilesCrudListTagsParams {
|
|
86
|
-
where?: FilesCrudListTagsWhere;
|
|
87
|
-
limit?: number;
|
|
88
|
-
after?: string;
|
|
89
|
-
}
|
|
90
|
-
export interface FilesCRUD {
|
|
91
|
-
getFile(id: string): Promise<File>;
|
|
92
|
-
listFiles(opts?: FilesListOpts): Promise<[File[], FileListMeta]>;
|
|
93
|
-
listTags(params: FilesCrudListTagsParams): Promise<string[]>;
|
|
94
|
-
createFile(data: FileInput): Promise<File>;
|
|
95
|
-
updateFile(id: string, data: Partial<FileInput>): Promise<File>;
|
|
96
|
-
deleteFile(id: string): Promise<boolean>;
|
|
97
|
-
createFilesInBatch(data: FileInput[]): Promise<File[]>;
|
|
98
|
-
}
|
|
99
|
-
export interface SystemCRUD {
|
|
100
|
-
getVersion(): Promise<string | null>;
|
|
101
|
-
setVersion(version: string): Promise<void>;
|
|
102
|
-
install(args: {
|
|
103
|
-
srcPrefix: string;
|
|
104
|
-
}): Promise<boolean>;
|
|
105
|
-
upgrade(version: string, data?: Record<string, any>): Promise<boolean>;
|
|
106
|
-
}
|
|
107
|
-
export interface FileManagerSettings {
|
|
108
|
-
key: string;
|
|
109
|
-
uploadMinFileSize: number;
|
|
110
|
-
uploadMaxFileSize: number;
|
|
111
|
-
srcPrefix: string;
|
|
112
|
-
}
|
|
113
|
-
export interface FileManagerSystem {
|
|
114
|
-
version: string;
|
|
115
|
-
tenant: string;
|
|
116
|
-
}
|
|
117
|
-
export declare type SettingsCRUD = {
|
|
118
|
-
getSettings(): Promise<FileManagerSettings | null>;
|
|
119
|
-
createSettings(data?: Partial<FileManagerSettings>): Promise<FileManagerSettings>;
|
|
120
|
-
updateSettings(data: Partial<FileManagerSettings>): Promise<FileManagerSettings>;
|
|
121
|
-
deleteSettings(): Promise<boolean>;
|
|
122
|
-
};
|
|
123
|
-
/********
|
|
124
|
-
* Storage operations
|
|
125
|
-
*******/
|
|
126
|
-
/**
|
|
127
|
-
* @category StorageOperations
|
|
128
|
-
* @category SystemStorageOperations
|
|
129
|
-
* @category SystemStorageOperationsParams
|
|
130
|
-
*/
|
|
131
|
-
export interface FileManagerSystemStorageOperationsUpdateParams {
|
|
132
|
-
/**
|
|
133
|
-
* The system data to be updated.
|
|
134
|
-
*/
|
|
135
|
-
original: FileManagerSystem;
|
|
136
|
-
/**
|
|
137
|
-
* The system data with the updated fields.
|
|
138
|
-
*/
|
|
139
|
-
data: FileManagerSystem;
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* @category StorageOperations
|
|
143
|
-
* @category SystemStorageOperations
|
|
144
|
-
* @category SystemStorageOperationsParams
|
|
145
|
-
*/
|
|
146
|
-
export interface FileManagerSystemStorageOperationsCreateParams {
|
|
147
|
-
/**
|
|
148
|
-
* The system fields.
|
|
149
|
-
*/
|
|
150
|
-
data: FileManagerSystem;
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* @category StorageOperations
|
|
154
|
-
* @category SystemStorageOperations
|
|
155
|
-
*/
|
|
156
|
-
export interface FileManagerSystemStorageOperations {
|
|
157
|
-
/**
|
|
158
|
-
* Get the FileManager system data.
|
|
159
|
-
*/
|
|
160
|
-
get: () => Promise<FileManagerSystem | null>;
|
|
161
|
-
/**
|
|
162
|
-
* Update the FileManager system data..
|
|
163
|
-
*/
|
|
164
|
-
update: (params: FileManagerSystemStorageOperationsUpdateParams) => Promise<FileManagerSystem>;
|
|
165
|
-
/**
|
|
166
|
-
* Create the FileManagerSystemData
|
|
167
|
-
*/
|
|
168
|
-
create: (params: FileManagerSystemStorageOperationsCreateParams) => Promise<FileManagerSystem>;
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* @category StorageOperations
|
|
172
|
-
* @category SettingsStorageOperations
|
|
173
|
-
* @category SettingsStorageOperationsParams
|
|
174
|
-
*/
|
|
175
|
-
export interface FileManagerSettingsStorageOperationsUpdateParams {
|
|
176
|
-
/**
|
|
177
|
-
* Original settings to be updated.
|
|
178
|
-
*/
|
|
179
|
-
original: FileManagerSettings;
|
|
180
|
-
/**
|
|
181
|
-
* The settings with the updated fields.
|
|
182
|
-
*/
|
|
183
|
-
data: FileManagerSettings;
|
|
184
|
-
}
|
|
185
|
-
/**
|
|
186
|
-
* @category StorageOperations
|
|
187
|
-
* @category SettingsStorageOperations
|
|
188
|
-
* @category SettingsStorageOperationsParams
|
|
189
|
-
*/
|
|
190
|
-
export interface FileManagerSettingsStorageOperationsCreateParams {
|
|
191
|
-
/**
|
|
192
|
-
* The settings fields.
|
|
193
|
-
*/
|
|
194
|
-
data: FileManagerSettings;
|
|
195
|
-
}
|
|
196
|
-
/**
|
|
197
|
-
* @category StorageOperations
|
|
198
|
-
* @category SettingsStorageOperations
|
|
199
|
-
*/
|
|
200
|
-
export interface FileManagerSettingsStorageOperations {
|
|
201
|
-
/**
|
|
202
|
-
* Get the FileManager system data.
|
|
203
|
-
*/
|
|
204
|
-
get: () => Promise<FileManagerSettings | null>;
|
|
205
|
-
/**
|
|
206
|
-
* Create the FileManagerSettingsData
|
|
207
|
-
*/
|
|
208
|
-
create: (params: FileManagerSettingsStorageOperationsCreateParams) => Promise<FileManagerSettings>;
|
|
209
|
-
/**
|
|
210
|
-
* Update the FileManager system data..
|
|
211
|
-
*/
|
|
212
|
-
update: (params: FileManagerSettingsStorageOperationsUpdateParams) => Promise<FileManagerSettings>;
|
|
213
|
-
/**
|
|
214
|
-
* Delete the existing settings.
|
|
215
|
-
*/
|
|
216
|
-
delete: () => Promise<void>;
|
|
217
|
-
}
|
|
218
|
-
/**
|
|
219
|
-
* @category StorageOperations
|
|
220
|
-
* @category FilesStorageOperations
|
|
221
|
-
* @category FilesStorageOperationsParams
|
|
222
|
-
*/
|
|
223
|
-
export interface FileManagerFilesStorageOperationsGetParams {
|
|
224
|
-
where: {
|
|
225
|
-
id: string;
|
|
226
|
-
tenant: string;
|
|
227
|
-
locale: string;
|
|
228
|
-
};
|
|
229
|
-
}
|
|
230
|
-
/**
|
|
231
|
-
* @category StorageOperations
|
|
232
|
-
* @category FilesStorageOperations
|
|
233
|
-
* @category FilesStorageOperationsParams
|
|
234
|
-
*/
|
|
235
|
-
export interface FileManagerFilesStorageOperationsCreateParams {
|
|
236
|
-
file: File;
|
|
237
|
-
}
|
|
238
|
-
/**
|
|
239
|
-
* @category StorageOperations
|
|
240
|
-
* @category FilesStorageOperations
|
|
241
|
-
* @category FilesStorageOperationsParams
|
|
242
|
-
*/
|
|
243
|
-
export interface FileManagerFilesStorageOperationsUpdateParams {
|
|
244
|
-
original: File;
|
|
245
|
-
file: File;
|
|
246
|
-
}
|
|
247
|
-
/**
|
|
248
|
-
* @category StorageOperations
|
|
249
|
-
* @category FilesStorageOperations
|
|
250
|
-
* @category FilesStorageOperationsParams
|
|
251
|
-
*/
|
|
252
|
-
export interface FileManagerFilesStorageOperationsDeleteParams {
|
|
253
|
-
file: File;
|
|
254
|
-
}
|
|
255
|
-
/**
|
|
256
|
-
* @category StorageOperations
|
|
257
|
-
* @category FilesStorageOperations
|
|
258
|
-
* @category FilesStorageOperationsParams
|
|
259
|
-
*/
|
|
260
|
-
export interface FileManagerFilesStorageOperationsCreateBatchParams {
|
|
261
|
-
files: File[];
|
|
262
|
-
}
|
|
263
|
-
/**
|
|
264
|
-
* @category StorageOperations
|
|
265
|
-
* @category FilesStorageOperations
|
|
266
|
-
* @category FilesStorageOperationsParams
|
|
267
|
-
*/
|
|
268
|
-
export interface FileManagerFilesStorageOperationsListParamsWhere {
|
|
269
|
-
id?: string;
|
|
270
|
-
id_in?: string[];
|
|
271
|
-
name?: string;
|
|
272
|
-
name_contains?: string;
|
|
273
|
-
tag?: string;
|
|
274
|
-
tag_contains?: string;
|
|
275
|
-
tag_in?: string[];
|
|
276
|
-
createdBy?: string;
|
|
277
|
-
locale: string;
|
|
278
|
-
tenant: string;
|
|
279
|
-
private?: boolean;
|
|
280
|
-
type?: string;
|
|
281
|
-
type_in?: string[];
|
|
282
|
-
search?: string;
|
|
283
|
-
}
|
|
284
|
-
/**
|
|
285
|
-
* @category StorageOperations
|
|
286
|
-
* @category FilesStorageOperations
|
|
287
|
-
* @category FilesStorageOperationsParams
|
|
288
|
-
*/
|
|
289
|
-
export interface FileManagerFilesStorageOperationsListParams {
|
|
290
|
-
where: FileManagerFilesStorageOperationsListParamsWhere;
|
|
291
|
-
sort: string[];
|
|
292
|
-
limit: number;
|
|
293
|
-
after: string | null;
|
|
294
|
-
}
|
|
295
|
-
/**
|
|
296
|
-
* @category StorageOperations
|
|
297
|
-
* @category FilesStorageOperations
|
|
298
|
-
* @category FilesStorageOperationsParams
|
|
299
|
-
*/
|
|
300
|
-
export interface FileManagerFilesStorageOperationsListResponseMeta {
|
|
301
|
-
hasMoreItems: boolean;
|
|
302
|
-
totalCount: number;
|
|
303
|
-
cursor: string | null;
|
|
304
|
-
}
|
|
305
|
-
export declare type FileManagerFilesStorageOperationsListResponse = [
|
|
306
|
-
File[],
|
|
307
|
-
FileManagerFilesStorageOperationsListResponseMeta
|
|
308
|
-
];
|
|
309
|
-
export declare type FileManagerFilesStorageOperationsTagsResponse = [
|
|
310
|
-
string[],
|
|
311
|
-
FileManagerFilesStorageOperationsListResponseMeta
|
|
312
|
-
];
|
|
313
|
-
export interface FileManagerFilesStorageOperationsTagsParamsWhere extends FilesCrudListTagsWhere {
|
|
314
|
-
locale: string;
|
|
315
|
-
tenant: string;
|
|
316
|
-
}
|
|
317
|
-
/**
|
|
318
|
-
* @category StorageOperations
|
|
319
|
-
* @category FilesStorageOperations
|
|
320
|
-
* @category FilesStorageOperationsParams
|
|
321
|
-
*/
|
|
322
|
-
export interface FileManagerFilesStorageOperationsTagsParams {
|
|
323
|
-
where: FileManagerFilesStorageOperationsTagsParamsWhere;
|
|
324
|
-
limit: number;
|
|
325
|
-
after?: string;
|
|
326
|
-
}
|
|
327
|
-
/**
|
|
328
|
-
* @category StorageOperations
|
|
329
|
-
* @category FilesStorageOperations
|
|
330
|
-
*/
|
|
331
|
-
export interface FileManagerFilesStorageOperations {
|
|
332
|
-
/**
|
|
333
|
-
* Get a single file with given ID from the storage.
|
|
334
|
-
*/
|
|
335
|
-
get: (params: FileManagerFilesStorageOperationsGetParams) => Promise<File | null>;
|
|
336
|
-
/**
|
|
337
|
-
* Insert the file data into the database.
|
|
338
|
-
*/
|
|
339
|
-
create: (params: FileManagerFilesStorageOperationsCreateParams) => Promise<File>;
|
|
340
|
-
/**
|
|
341
|
-
* Update the file data in the database.
|
|
342
|
-
*/
|
|
343
|
-
update: (params: FileManagerFilesStorageOperationsUpdateParams) => Promise<File>;
|
|
344
|
-
/**
|
|
345
|
-
* Delete the file from the database.
|
|
346
|
-
*/
|
|
347
|
-
delete: (params: FileManagerFilesStorageOperationsDeleteParams) => Promise<void>;
|
|
348
|
-
/**
|
|
349
|
-
* Store multiple files at once to the database.
|
|
350
|
-
*/
|
|
351
|
-
createBatch: (params: FileManagerFilesStorageOperationsCreateBatchParams) => Promise<File[]>;
|
|
352
|
-
/**
|
|
353
|
-
* Get a list of files filtered by given parameters.
|
|
354
|
-
*/
|
|
355
|
-
list: (params: FileManagerFilesStorageOperationsListParams) => Promise<FileManagerFilesStorageOperationsListResponse>;
|
|
356
|
-
/**
|
|
357
|
-
* Get a list of all file tags filtered by given parameters.
|
|
358
|
-
*/
|
|
359
|
-
tags: (params: FileManagerFilesStorageOperationsTagsParams) => Promise<FileManagerFilesStorageOperationsTagsResponse>;
|
|
360
|
-
}
|
|
361
|
-
export {};
|
package/types.js
CHANGED
package/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import { I18NContext } from \"@webiny/api-i18n/types\";\nimport { FileStorage } from \"./plugins/storage/FileStorage\";\nimport { TenancyContext } from \"@webiny/api-tenancy/types\";\nimport { SecurityContext, SecurityPermission } from \"@webiny/api-security/types\";\nimport { Context } from \"@webiny/api/types\";\n\nexport interface FileManagerContext extends Context, SecurityContext, TenancyContext, I18NContext {\n fileManager: {\n files: FilesCRUD;\n settings: SettingsCRUD;\n storage: FileStorage;\n system: SystemCRUD;\n };\n}\n\nexport interface FilePermission extends SecurityPermission {\n name: \"fm.file\";\n rwd?: string;\n own?: boolean;\n}\n\nexport interface File {\n id: string;\n key: string;\n size: number;\n type: string;\n name: string;\n meta: Record<string, any>;\n tags: string[];\n createdOn: string;\n createdBy: CreatedBy;\n /**\n * Added with new storage operations refactoring.\n */\n tenant: string;\n locale: string;\n webinyVersion: string;\n /**\n * User can add new fields to the File object so we must allow it in the types.\n */\n [key: string]: any;\n}\n\nexport interface CreatedBy {\n id: string;\n displayName: string | null;\n type: string;\n}\n\nexport interface FileInput {\n key: string;\n name: string;\n size: number;\n type: string;\n meta: Record<string, any>;\n tags: string[];\n}\n\nexport interface FileListWhereParams {\n search?: string;\n type?: string;\n type_in?: string[];\n tag?: string;\n tag_in?: string[];\n tag_and_in?: string[];\n id_in?: string[];\n id?: string;\n}\nexport interface FilesListOpts {\n search?: string;\n types?: string[];\n tags?: string[];\n ids?: string[];\n limit?: number;\n after?: string;\n where?: FileListWhereParams;\n sort?: string[];\n}\n\nexport interface FileListMeta {\n cursor: string | null;\n totalCount: number;\n hasMoreItems: boolean;\n}\n\ninterface FilesCrudListTagsWhere {\n tag?: string;\n tag_contains?: string;\n tag_in?: string[];\n tag_not_startsWith?: string;\n tag_startsWith?: string;\n}\ninterface FilesCrudListTagsParams {\n where?: FilesCrudListTagsWhere;\n limit?: number;\n after?: string;\n}\n\nexport interface FilesCRUD {\n getFile(id: string): Promise<File>;\n listFiles(opts?: FilesListOpts): Promise<[File[], FileListMeta]>;\n listTags(params: FilesCrudListTagsParams): Promise<string[]>;\n createFile(data: FileInput): Promise<File>;\n updateFile(id: string, data: Partial<FileInput>): Promise<File>;\n deleteFile(id: string): Promise<boolean>;\n createFilesInBatch(data: FileInput[]): Promise<File[]>;\n}\n\nexport interface SystemCRUD {\n getVersion(): Promise<string | null>;\n setVersion(version: string): Promise<void>;\n install(args: { srcPrefix: string }): Promise<boolean>;\n upgrade(version: string, data?: Record<string, any>): Promise<boolean>;\n}\n\nexport interface FileManagerSettings {\n key: string;\n uploadMinFileSize: number;\n uploadMaxFileSize: number;\n srcPrefix: string;\n}\n\nexport interface FileManagerSystem {\n version: string;\n tenant: string;\n}\n\nexport type SettingsCRUD = {\n getSettings(): Promise<FileManagerSettings | null>;\n createSettings(data?: Partial<FileManagerSettings>): Promise<FileManagerSettings>;\n updateSettings(data: Partial<FileManagerSettings>): Promise<FileManagerSettings>;\n deleteSettings(): Promise<boolean>;\n};\n/********\n * Storage operations\n *******/\n\n/**\n * @category StorageOperations\n * @category SystemStorageOperations\n * @category SystemStorageOperationsParams\n */\nexport interface FileManagerSystemStorageOperationsUpdateParams {\n /**\n * The system data to be updated.\n */\n original: FileManagerSystem;\n /**\n * The system data with the updated fields.\n */\n data: FileManagerSystem;\n}\n/**\n * @category StorageOperations\n * @category SystemStorageOperations\n * @category SystemStorageOperationsParams\n */\nexport interface FileManagerSystemStorageOperationsCreateParams {\n /**\n * The system fields.\n */\n data: FileManagerSystem;\n}\n\n/**\n * @category StorageOperations\n * @category SystemStorageOperations\n */\nexport interface FileManagerSystemStorageOperations {\n /**\n * Get the FileManager system data.\n */\n get: () => Promise<FileManagerSystem | null>;\n /**\n * Update the FileManager system data..\n */\n update: (params: FileManagerSystemStorageOperationsUpdateParams) => Promise<FileManagerSystem>;\n /**\n * Create the FileManagerSystemData\n */\n create: (params: FileManagerSystemStorageOperationsCreateParams) => Promise<FileManagerSystem>;\n}\n\n/**\n * @category StorageOperations\n * @category SettingsStorageOperations\n * @category SettingsStorageOperationsParams\n */\nexport interface FileManagerSettingsStorageOperationsUpdateParams {\n /**\n * Original settings to be updated.\n */\n original: FileManagerSettings;\n /**\n * The settings with the updated fields.\n */\n data: FileManagerSettings;\n}\n/**\n * @category StorageOperations\n * @category SettingsStorageOperations\n * @category SettingsStorageOperationsParams\n */\nexport interface FileManagerSettingsStorageOperationsCreateParams {\n /**\n * The settings fields.\n */\n data: FileManagerSettings;\n}\n\n/**\n * @category StorageOperations\n * @category SettingsStorageOperations\n */\nexport interface FileManagerSettingsStorageOperations {\n /**\n * Get the FileManager system data.\n */\n get: () => Promise<FileManagerSettings | null>;\n /**\n * Create the FileManagerSettingsData\n */\n create: (\n params: FileManagerSettingsStorageOperationsCreateParams\n ) => Promise<FileManagerSettings>;\n /**\n * Update the FileManager system data..\n */\n update: (\n params: FileManagerSettingsStorageOperationsUpdateParams\n ) => Promise<FileManagerSettings>;\n /**\n * Delete the existing settings.\n */\n delete: () => Promise<void>;\n}\n\n/**\n * @category StorageOperations\n * @category FilesStorageOperations\n * @category FilesStorageOperationsParams\n */\nexport interface FileManagerFilesStorageOperationsGetParams {\n where: {\n id: string;\n tenant: string;\n locale: string;\n };\n}\n/**\n * @category StorageOperations\n * @category FilesStorageOperations\n * @category FilesStorageOperationsParams\n */\nexport interface FileManagerFilesStorageOperationsCreateParams {\n file: File;\n}\n/**\n * @category StorageOperations\n * @category FilesStorageOperations\n * @category FilesStorageOperationsParams\n */\nexport interface FileManagerFilesStorageOperationsUpdateParams {\n original: File;\n file: File;\n}\n\n/**\n * @category StorageOperations\n * @category FilesStorageOperations\n * @category FilesStorageOperationsParams\n */\nexport interface FileManagerFilesStorageOperationsDeleteParams {\n file: File;\n}\n/**\n * @category StorageOperations\n * @category FilesStorageOperations\n * @category FilesStorageOperationsParams\n */\nexport interface FileManagerFilesStorageOperationsCreateBatchParams {\n files: File[];\n}\n/**\n * @category StorageOperations\n * @category FilesStorageOperations\n * @category FilesStorageOperationsParams\n */\nexport interface FileManagerFilesStorageOperationsListParamsWhere {\n id?: string;\n id_in?: string[];\n name?: string;\n name_contains?: string;\n tag?: string;\n tag_contains?: string;\n tag_in?: string[];\n createdBy?: string;\n locale: string;\n tenant: string;\n private?: boolean;\n type?: string;\n type_in?: string[];\n search?: string;\n}\n/**\n * @category StorageOperations\n * @category FilesStorageOperations\n * @category FilesStorageOperationsParams\n */\nexport interface FileManagerFilesStorageOperationsListParams {\n where: FileManagerFilesStorageOperationsListParamsWhere;\n sort: string[];\n limit: number;\n after: string | null;\n}\n\n/**\n * @category StorageOperations\n * @category FilesStorageOperations\n * @category FilesStorageOperationsParams\n */\nexport interface FileManagerFilesStorageOperationsListResponseMeta {\n hasMoreItems: boolean;\n totalCount: number;\n cursor: string | null;\n}\nexport type FileManagerFilesStorageOperationsListResponse = [\n File[],\n FileManagerFilesStorageOperationsListResponseMeta\n];\n\nexport type FileManagerFilesStorageOperationsTagsResponse = [\n string[],\n FileManagerFilesStorageOperationsListResponseMeta\n];\n\nexport interface FileManagerFilesStorageOperationsTagsParamsWhere extends FilesCrudListTagsWhere {\n locale: string;\n tenant: string;\n}\n/**\n * @category StorageOperations\n * @category FilesStorageOperations\n * @category FilesStorageOperationsParams\n */\nexport interface FileManagerFilesStorageOperationsTagsParams {\n where: FileManagerFilesStorageOperationsTagsParamsWhere;\n limit: number;\n after?: string;\n}\n/**\n * @category StorageOperations\n * @category FilesStorageOperations\n */\nexport interface FileManagerFilesStorageOperations {\n /**\n * Get a single file with given ID from the storage.\n */\n get: (params: FileManagerFilesStorageOperationsGetParams) => Promise<File | null>;\n /**\n * Insert the file data into the database.\n */\n create: (params: FileManagerFilesStorageOperationsCreateParams) => Promise<File>;\n /**\n * Update the file data in the database.\n */\n update: (params: FileManagerFilesStorageOperationsUpdateParams) => Promise<File>;\n /**\n * Delete the file from the database.\n */\n delete: (params: FileManagerFilesStorageOperationsDeleteParams) => Promise<void>;\n /**\n * Store multiple files at once to the database.\n */\n createBatch: (params: FileManagerFilesStorageOperationsCreateBatchParams) => Promise<File[]>;\n /**\n * Get a list of files filtered by given parameters.\n */\n list: (\n params: FileManagerFilesStorageOperationsListParams\n ) => Promise<FileManagerFilesStorageOperationsListResponse>;\n /**\n * Get a list of all file tags filtered by given parameters.\n */\n tags: (\n params: FileManagerFilesStorageOperationsTagsParams\n ) => Promise<FileManagerFilesStorageOperationsTagsResponse>;\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { SecurityPermission } from \"@webiny/api-core/types/security.js\";\n\nexport interface FilePermission extends SecurityPermission {\n name: \"fm.file\";\n rwd?: string;\n own?: boolean;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.createDownloadFilePlugins = void 0;
|
|
9
|
-
|
|
10
|
-
var _s = _interopRequireDefault(require("aws-sdk/clients/s3"));
|
|
11
|
-
|
|
12
|
-
var _sanitizeFilename = _interopRequireDefault(require("sanitize-filename"));
|
|
13
|
-
|
|
14
|
-
var _path = _interopRequireDefault(require("path"));
|
|
15
|
-
|
|
16
|
-
var _utils = require("../utils");
|
|
17
|
-
|
|
18
|
-
var _loaders = _interopRequireDefault(require("../transform/loaders"));
|
|
19
|
-
|
|
20
|
-
var _gateway = require("@webiny/handler-aws/gateway");
|
|
21
|
-
|
|
22
|
-
const MAX_RETURN_CONTENT_LENGTH = 5000000; // ~4.77MB
|
|
23
|
-
|
|
24
|
-
const DEFAULT_CACHE_MAX_AGE = 30758400; // 1 year
|
|
25
|
-
|
|
26
|
-
const PRESIGNED_URL_EXPIRATION = 900; // 15 minutes
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Based on given path, extracts file key and additional options sent via query params.
|
|
30
|
-
*/
|
|
31
|
-
|
|
32
|
-
const extractFilenameOptions = request => {
|
|
33
|
-
const path = (0, _sanitizeFilename.default)(request.params.path);
|
|
34
|
-
return {
|
|
35
|
-
filename: decodeURI(path),
|
|
36
|
-
options: request.query,
|
|
37
|
-
extension: _path.default.extname(path)
|
|
38
|
-
};
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
const getS3Object = async (request, s3, context) => {
|
|
42
|
-
const {
|
|
43
|
-
options,
|
|
44
|
-
filename,
|
|
45
|
-
extension
|
|
46
|
-
} = extractFilenameOptions(request);
|
|
47
|
-
const params = (0, _utils.getObjectParams)(filename);
|
|
48
|
-
const objectHead = await s3.headObject(params).promise();
|
|
49
|
-
const contentLength = objectHead.ContentLength ? objectHead.ContentLength : 0;
|
|
50
|
-
|
|
51
|
-
for (const loader of _loaders.default) {
|
|
52
|
-
const canProcess = loader.canProcess({
|
|
53
|
-
context,
|
|
54
|
-
s3,
|
|
55
|
-
options,
|
|
56
|
-
file: {
|
|
57
|
-
name: filename,
|
|
58
|
-
extension,
|
|
59
|
-
contentLength
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
if (!canProcess) {
|
|
64
|
-
continue;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
return loader.process({
|
|
68
|
-
context,
|
|
69
|
-
s3,
|
|
70
|
-
options,
|
|
71
|
-
file: {
|
|
72
|
-
name: filename,
|
|
73
|
-
extension,
|
|
74
|
-
contentLength
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
} // If no processors handled the file request, just return the S3 object taking its size into consideration.
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
let object;
|
|
81
|
-
|
|
82
|
-
if (contentLength < MAX_RETURN_CONTENT_LENGTH) {
|
|
83
|
-
object = await s3.getObject(params).promise();
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
return {
|
|
87
|
-
object,
|
|
88
|
-
params
|
|
89
|
-
};
|
|
90
|
-
};
|
|
91
|
-
|
|
92
|
-
const createDownloadFilePlugins = () => {
|
|
93
|
-
return [new _gateway.RoutePlugin(({
|
|
94
|
-
onGet,
|
|
95
|
-
context
|
|
96
|
-
}) => {
|
|
97
|
-
onGet("/files/:path", async (request, reply) => {
|
|
98
|
-
const {
|
|
99
|
-
region
|
|
100
|
-
} = (0, _utils.getEnvironment)();
|
|
101
|
-
const s3 = new _s.default({
|
|
102
|
-
region
|
|
103
|
-
});
|
|
104
|
-
const {
|
|
105
|
-
params,
|
|
106
|
-
object
|
|
107
|
-
} = await getS3Object(request, s3, context); // If there's an "object", it means we can return its body directly.
|
|
108
|
-
|
|
109
|
-
if (object) {
|
|
110
|
-
return reply.headers({
|
|
111
|
-
"Content-Type": object.ContentType,
|
|
112
|
-
"Cache-Control": `public, max-age=${DEFAULT_CACHE_MAX_AGE}`,
|
|
113
|
-
"x-webiny-base64-encoded": true
|
|
114
|
-
}).send(object.Body || "");
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
const presignedUrl = s3.getSignedUrl("getObject", {
|
|
118
|
-
Bucket: params.Bucket,
|
|
119
|
-
Key: params.Key,
|
|
120
|
-
Expires: PRESIGNED_URL_EXPIRATION
|
|
121
|
-
}); // Lambda can return max 6MB of content, so if our object's size is larger, we are sending
|
|
122
|
-
// a 301 Redirect, redirecting the user to the public URL of the object in S3.
|
|
123
|
-
|
|
124
|
-
return reply.code(301).headers({
|
|
125
|
-
Location: presignedUrl,
|
|
126
|
-
"Cache-Control": "public, max-age=" + PRESIGNED_URL_EXPIRATION
|
|
127
|
-
}).send("");
|
|
128
|
-
});
|
|
129
|
-
})];
|
|
130
|
-
};
|
|
131
|
-
|
|
132
|
-
exports.createDownloadFilePlugins = createDownloadFilePlugins;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["MAX_RETURN_CONTENT_LENGTH","DEFAULT_CACHE_MAX_AGE","PRESIGNED_URL_EXPIRATION","extractFilenameOptions","request","path","sanitizeFilename","params","filename","decodeURI","options","query","extension","pathLib","extname","getS3Object","s3","context","getObjectParams","objectHead","headObject","promise","contentLength","ContentLength","loader","loaders","canProcess","file","name","process","object","getObject","createDownloadFilePlugins","RoutePlugin","onGet","reply","region","getEnvironment","S3","headers","ContentType","send","Body","presignedUrl","getSignedUrl","Bucket","Key","Expires","code","Location"],"sources":["index.ts"],"sourcesContent":["import S3 from \"aws-sdk/clients/s3\";\nimport sanitizeFilename from \"sanitize-filename\";\nimport pathLib from \"path\";\nimport { getEnvironment, getObjectParams } from \"../utils\";\nimport loaders from \"../transform/loaders\";\nimport { RoutePlugin } from \"@webiny/handler-aws/gateway\";\nimport { Context, Request } from \"@webiny/handler/types\";\nimport { ObjectParamsResponse } from \"~/handlers/utils/getObjectParams\";\n\nconst MAX_RETURN_CONTENT_LENGTH = 5000000; // ~4.77MB\nconst DEFAULT_CACHE_MAX_AGE = 30758400; // 1 year\nconst PRESIGNED_URL_EXPIRATION = 900; // 15 minutes\n/**\n * Based on given path, extracts file key and additional options sent via query params.\n */\nconst extractFilenameOptions = (request: Request) => {\n const path = sanitizeFilename((request.params as any).path);\n return {\n filename: decodeURI(path),\n options: request.query as any,\n extension: pathLib.extname(path)\n };\n};\n\ninterface S3Object {\n object?: S3.Types.GetObjectOutput;\n params: ObjectParamsResponse;\n}\n\nconst getS3Object = async (request: Request, s3: S3, context: Context): Promise<S3Object> => {\n const { options, filename, extension } = extractFilenameOptions(request);\n const params = getObjectParams(filename);\n const objectHead = await s3.headObject(params).promise();\n const contentLength = objectHead.ContentLength ? objectHead.ContentLength : 0;\n\n for (const loader of loaders) {\n const canProcess = loader.canProcess({\n context,\n s3,\n options,\n file: {\n name: filename,\n extension,\n contentLength\n }\n });\n\n if (!canProcess) {\n continue;\n }\n return loader.process({\n context,\n s3,\n options,\n file: {\n name: filename,\n extension,\n contentLength\n }\n });\n }\n\n // If no processors handled the file request, just return the S3 object taking its size into consideration.\n let object;\n if (contentLength < MAX_RETURN_CONTENT_LENGTH) {\n object = await s3.getObject(params).promise();\n }\n\n return { object, params };\n};\n\nexport const createDownloadFilePlugins = () => {\n return [\n new RoutePlugin(({ onGet, context }) => {\n onGet(\"/files/:path\", async (request, reply) => {\n const { region } = getEnvironment();\n const s3 = new S3({ region });\n\n const { params, object } = await getS3Object(request, 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;;AACA;;AAIA,MAAMA,yBAAyB,GAAG,OAAlC,C,CAA2C;;AAC3C,MAAMC,qBAAqB,GAAG,QAA9B,C,CAAwC;;AACxC,MAAMC,wBAAwB,GAAG,GAAjC,C,CAAsC;;AACtC;AACA;AACA;;AACA,MAAMC,sBAAsB,GAAIC,OAAD,IAAsB;EACjD,MAAMC,IAAI,GAAG,IAAAC,yBAAA,EAAkBF,OAAO,CAACG,MAAT,CAAwBF,IAAzC,CAAb;EACA,OAAO;IACHG,QAAQ,EAAEC,SAAS,CAACJ,IAAD,CADhB;IAEHK,OAAO,EAAEN,OAAO,CAACO,KAFd;IAGHC,SAAS,EAAEC,aAAA,CAAQC,OAAR,CAAgBT,IAAhB;EAHR,CAAP;AAKH,CAPD;;AAcA,MAAMU,WAAW,GAAG,OAAOX,OAAP,EAAyBY,EAAzB,EAAiCC,OAAjC,KAAyE;EACzF,MAAM;IAAEP,OAAF;IAAWF,QAAX;IAAqBI;EAArB,IAAmCT,sBAAsB,CAACC,OAAD,CAA/D;EACA,MAAMG,MAAM,GAAG,IAAAW,sBAAA,EAAgBV,QAAhB,CAAf;EACA,MAAMW,UAAU,GAAG,MAAMH,EAAE,CAACI,UAAH,CAAcb,MAAd,EAAsBc,OAAtB,EAAzB;EACA,MAAMC,aAAa,GAAGH,UAAU,CAACI,aAAX,GAA2BJ,UAAU,CAACI,aAAtC,GAAsD,CAA5E;;EAEA,KAAK,MAAMC,MAAX,IAAqBC,gBAArB,EAA8B;IAC1B,MAAMC,UAAU,GAAGF,MAAM,CAACE,UAAP,CAAkB;MACjCT,OADiC;MAEjCD,EAFiC;MAGjCN,OAHiC;MAIjCiB,IAAI,EAAE;QACFC,IAAI,EAAEpB,QADJ;QAEFI,SAFE;QAGFU;MAHE;IAJ2B,CAAlB,CAAnB;;IAWA,IAAI,CAACI,UAAL,EAAiB;MACb;IACH;;IACD,OAAOF,MAAM,CAACK,OAAP,CAAe;MAClBZ,OADkB;MAElBD,EAFkB;MAGlBN,OAHkB;MAIlBiB,IAAI,EAAE;QACFC,IAAI,EAAEpB,QADJ;QAEFI,SAFE;QAGFU;MAHE;IAJY,CAAf,CAAP;EAUH,CA/BwF,CAiCzF;;;EACA,IAAIQ,MAAJ;;EACA,IAAIR,aAAa,GAAGtB,yBAApB,EAA+C;IAC3C8B,MAAM,GAAG,MAAMd,EAAE,CAACe,SAAH,CAAaxB,MAAb,EAAqBc,OAArB,EAAf;EACH;;EAED,OAAO;IAAES,MAAF;IAAUvB;EAAV,CAAP;AACH,CAxCD;;AA0CO,MAAMyB,yBAAyB,GAAG,MAAM;EAC3C,OAAO,CACH,IAAIC,oBAAJ,CAAgB,CAAC;IAAEC,KAAF;IAASjB;EAAT,CAAD,KAAwB;IACpCiB,KAAK,CAAC,cAAD,EAAiB,OAAO9B,OAAP,EAAgB+B,KAAhB,KAA0B;MAC5C,MAAM;QAAEC;MAAF,IAAa,IAAAC,qBAAA,GAAnB;MACA,MAAMrB,EAAE,GAAG,IAAIsB,UAAJ,CAAO;QAAEF;MAAF,CAAP,CAAX;MAEA,MAAM;QAAE7B,MAAF;QAAUuB;MAAV,IAAqB,MAAMf,WAAW,CAACX,OAAD,EAAUY,EAAV,EAAcC,OAAd,CAA5C,CAJ4C,CAM5C;;MACA,IAAIa,MAAJ,EAAY;QACR,OAAOK,KAAK,CACPI,OADE,CACM;UACL,gBAAgBT,MAAM,CAACU,WADlB;UAEL,iBAAkB,mBAAkBvC,qBAAsB,EAFrD;UAGL,2BAA2B;QAHtB,CADN,EAMFwC,IANE,CAMGX,MAAM,CAACY,IAAP,IAAe,EANlB,CAAP;MAOH;;MAED,MAAMC,YAAY,GAAG3B,EAAE,CAAC4B,YAAH,CAAgB,WAAhB,EAA6B;QAC9CC,MAAM,EAAEtC,MAAM,CAACsC,MAD+B;QAE9CC,GAAG,EAAEvC,MAAM,CAACuC,GAFkC;QAG9CC,OAAO,EAAE7C;MAHqC,CAA7B,CAArB,CAjB4C,CAuB5C;MACA;;MACA,OAAOiC,KAAK,CACPa,IADE,CACG,GADH,EAEFT,OAFE,CAEM;QACLU,QAAQ,EAAEN,YADL;QAEL,iBAAiB,qBAAqBzC;MAFjC,CAFN,EAMFuC,IANE,CAMG,EANH,CAAP;IAOH,CAhCI,CAAL;EAiCH,CAlCD,CADG,CAAP;AAqCH,CAtCM"}
|