@webiny/api-file-manager 0.0.0-unstable.78f581c1d2 → 0.0.0-unstable.7be00a75a9
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 +4 -0
- package/contants.js.map +1 -0
- package/delivery/AssetDelivery/Asset.d.ts +28 -0
- package/delivery/AssetDelivery/Asset.js +53 -0
- package/delivery/AssetDelivery/Asset.js.map +1 -0
- package/delivery/AssetDelivery/AssetRequest.d.ts +25 -0
- package/delivery/AssetDelivery/AssetRequest.js +23 -0
- package/delivery/AssetDelivery/AssetRequest.js.map +1 -0
- package/delivery/AssetDelivery/abstractions/AssetReply.d.ts +25 -0
- package/delivery/AssetDelivery/abstractions/AssetReply.js +32 -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 +6 -0
- package/delivery/setupAssetDelivery.d.ts +1 -0
- package/delivery/setupAssetDelivery.js +69 -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 +65 -0
- package/domain/file/file.model.js.map +1 -0
- package/domain/file/types.d.ts +53 -0
- package/domain/file/types.js +0 -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/file.d.ts +12 -0
- package/exports/api/file-manager/file.js +12 -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 +31 -0
- package/features/FileManagerFeature.js.map +1 -0
- package/features/assetDelivery/FilesAssetRequestResolver.d.ts +9 -0
- package/features/assetDelivery/FilesAssetRequestResolver.js +29 -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 +4 -0
- package/features/assetDelivery/NullAssetReply.js +14 -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/abstractions.d.ts +54 -0
- package/features/assetDelivery/abstractions.js +11 -0
- package/features/assetDelivery/abstractions.js.map +1 -0
- package/features/assetDelivery/feature.d.ts +4 -0
- package/features/assetDelivery/feature.js +29 -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 +11 -0
- package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.js +31 -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 +65 -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 +9 -0
- package/features/assetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js +21 -0
- package/features/assetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js.map +1 -0
- package/features/assetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.d.ts +9 -0
- package/features/assetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js +21 -0
- package/features/assetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js.map +1 -0
- package/features/assetDelivery/transformation/PassthroughAssetTransformationStrategy.d.ts +9 -0
- package/features/assetDelivery/transformation/PassthroughAssetTransformationStrategy.js +13 -0
- package/features/assetDelivery/transformation/PassthroughAssetTransformationStrategy.js.map +1 -0
- package/features/assetDelivery/transformation/TransformationAssetProcessor.d.ts +11 -0
- package/features/assetDelivery/transformation/TransformationAssetProcessor.js +23 -0
- package/features/assetDelivery/transformation/TransformationAssetProcessor.js.map +1 -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/abstractions.d.ts +9 -0
- package/features/file/FileUrlGenerator/abstractions.js +5 -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 +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/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/graphql/baseSchema.d.ts +3 -0
- package/graphql/baseSchema.js +100 -0
- package/graphql/baseSchema.js.map +1 -0
- package/graphql/createFilesTypeDefs.d.ts +8 -0
- package/graphql/createFilesTypeDefs.js +191 -0
- package/graphql/createFilesTypeDefs.js.map +1 -0
- package/graphql/filesSchema.d.ts +4 -0
- package/graphql/filesSchema.js +96 -0
- package/graphql/filesSchema.js.map +1 -0
- package/graphql/getFileByUrl.d.ts +3 -0
- package/graphql/getFileByUrl.js +61 -0
- package/graphql/getFileByUrl.js.map +1 -0
- package/graphql/index.d.ts +4 -0
- package/graphql/index.js +47 -0
- package/graphql/index.js.map +1 -0
- package/graphql/utils.d.ts +11 -0
- package/graphql/utils.js +12 -0
- package/graphql/utils.js.map +1 -0
- package/index.d.ts +7 -0
- package/index.js +44 -0
- package/index.js.map +1 -0
- package/modelModifier/CmsModelModifier.d.ts +26 -0
- package/modelModifier/CmsModelModifier.js +51 -0
- package/modelModifier/CmsModelModifier.js.map +1 -0
- package/package.json +34 -42
- package/types.d.ts +2 -356
- package/types.js +1 -5
- 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/types.js.map +0 -1
- package/utils.d.ts +0 -4
- package/utils.js +0 -16
- package/utils.js.map +0 -1
package/types.d.ts
CHANGED
|
@@ -1,361 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
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 "@webiny/tasks/features/TaskController/augmentation.js";
|
|
2
|
+
import type { SecurityPermission } from "@webiny/api-core/types/security.js";
|
|
14
3
|
export interface FilePermission extends SecurityPermission {
|
|
15
4
|
name: "fm.file";
|
|
16
5
|
rwd?: string;
|
|
17
6
|
own?: boolean;
|
|
18
7
|
}
|
|
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
|
@@ -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":"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"}
|
package/handlers/manage/index.js
DELETED
|
@@ -1,71 +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.createManageFilePlugins = void 0;
|
|
9
|
-
|
|
10
|
-
var _path = _interopRequireDefault(require("path"));
|
|
11
|
-
|
|
12
|
-
var _s = _interopRequireDefault(require("aws-sdk/clients/s3"));
|
|
13
|
-
|
|
14
|
-
var _utils = require("../utils");
|
|
15
|
-
|
|
16
|
-
var _managers = _interopRequireDefault(require("../transform/managers"));
|
|
17
|
-
|
|
18
|
-
var _handlerAws = require("@webiny/handler-aws");
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* This handler must be run through @webiny/handler-aws/s3
|
|
22
|
-
*/
|
|
23
|
-
const createManageFilePlugins = () => {
|
|
24
|
-
return [new _handlerAws.S3EventHandler(async ({
|
|
25
|
-
event
|
|
26
|
-
}) => {
|
|
27
|
-
const keys = [];
|
|
28
|
-
|
|
29
|
-
for (let i = 0; i < event.Records.length; i++) {
|
|
30
|
-
const record = event.Records[i];
|
|
31
|
-
|
|
32
|
-
if (typeof record.s3.object.key === "string") {
|
|
33
|
-
keys.push(record.s3.object.key);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
if (keys.length === 0) {
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
const {
|
|
42
|
-
region
|
|
43
|
-
} = (0, _utils.getEnvironment)();
|
|
44
|
-
const s3 = new _s.default({
|
|
45
|
-
region
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
for (const key of keys) {
|
|
49
|
-
const extension = _path.default.extname(key);
|
|
50
|
-
|
|
51
|
-
for (const manager of _managers.default) {
|
|
52
|
-
const canProcess = manager.canProcess({
|
|
53
|
-
key,
|
|
54
|
-
extension
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
if (!canProcess) {
|
|
58
|
-
continue;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
await manager.process({
|
|
62
|
-
s3,
|
|
63
|
-
key,
|
|
64
|
-
extension
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
})];
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
exports.createManageFilePlugins = createManageFilePlugins;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["createManageFilePlugins","S3EventHandler","event","keys","i","Records","length","record","s3","object","key","push","region","getEnvironment","S3","extension","path","extname","manager","managers","canProcess","process"],"sources":["index.ts"],"sourcesContent":["import path from \"path\";\nimport S3 from \"aws-sdk/clients/s3\";\nimport { getEnvironment } from \"../utils\";\nimport managers from \"../transform/managers\";\nimport { S3EventHandler } from \"@webiny/handler-aws\";\n\n/**\n * This handler must be run through @webiny/handler-aws/s3\n */\nexport const createManageFilePlugins = () => {\n return [\n new S3EventHandler(async ({ event }) => {\n const keys: string[] = [];\n for (let i = 0; i < event.Records.length; i++) {\n const record = event.Records[i];\n if (typeof record.s3.object.key === \"string\") {\n keys.push(record.s3.object.key);\n }\n }\n\n if (keys.length === 0) {\n return;\n }\n\n const { region } = getEnvironment();\n const s3 = new S3({ region });\n\n for (const key of keys) {\n const extension = path.extname(key);\n\n for (const manager of managers) {\n const canProcess = manager.canProcess({\n key,\n extension\n });\n\n if (!canProcess) {\n continue;\n }\n await manager.process({\n s3,\n key,\n extension\n });\n }\n }\n })\n ];\n};\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEA;AACA;AACA;AACO,MAAMA,uBAAuB,GAAG,MAAM;EACzC,OAAO,CACH,IAAIC,0BAAJ,CAAmB,OAAO;IAAEC;EAAF,CAAP,KAAqB;IACpC,MAAMC,IAAc,GAAG,EAAvB;;IACA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,KAAK,CAACG,OAAN,CAAcC,MAAlC,EAA0CF,CAAC,EAA3C,EAA+C;MAC3C,MAAMG,MAAM,GAAGL,KAAK,CAACG,OAAN,CAAcD,CAAd,CAAf;;MACA,IAAI,OAAOG,MAAM,CAACC,EAAP,CAAUC,MAAV,CAAiBC,GAAxB,KAAgC,QAApC,EAA8C;QAC1CP,IAAI,CAACQ,IAAL,CAAUJ,MAAM,CAACC,EAAP,CAAUC,MAAV,CAAiBC,GAA3B;MACH;IACJ;;IAED,IAAIP,IAAI,CAACG,MAAL,KAAgB,CAApB,EAAuB;MACnB;IACH;;IAED,MAAM;MAAEM;IAAF,IAAa,IAAAC,qBAAA,GAAnB;IACA,MAAML,EAAE,GAAG,IAAIM,UAAJ,CAAO;MAAEF;IAAF,CAAP,CAAX;;IAEA,KAAK,MAAMF,GAAX,IAAkBP,IAAlB,EAAwB;MACpB,MAAMY,SAAS,GAAGC,aAAA,CAAKC,OAAL,CAAaP,GAAb,CAAlB;;MAEA,KAAK,MAAMQ,OAAX,IAAsBC,iBAAtB,EAAgC;QAC5B,MAAMC,UAAU,GAAGF,OAAO,CAACE,UAAR,CAAmB;UAClCV,GADkC;UAElCK;QAFkC,CAAnB,CAAnB;;QAKA,IAAI,CAACK,UAAL,EAAiB;UACb;QACH;;QACD,MAAMF,OAAO,CAACG,OAAR,CAAgB;UAClBb,EADkB;UAElBE,GAFkB;UAGlBK;QAHkB,CAAhB,CAAN;MAKH;IACJ;EACJ,CAnCD,CADG,CAAP;AAsCH,CAvCM"}
|