@webiny/api-file-manager 0.0.0-unstable.e622468070 → 0.0.0-unstable.e9333b3f0b
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/FileManagerAppFeature.d.ts +5 -0
- package/FileManagerAppFeature.js +21 -0
- package/FileManagerAppFeature.js.map +1 -0
- package/contants.js +2 -1
- package/contants.js.map +1 -1
- package/delivery/AssetDelivery/Asset.js +50 -56
- package/delivery/AssetDelivery/Asset.js.map +1 -1
- package/delivery/AssetDelivery/AssetRequest.d.ts +1 -1
- package/delivery/AssetDelivery/AssetRequest.js +20 -19
- package/delivery/AssetDelivery/AssetRequest.js.map +1 -1
- package/delivery/AssetDelivery/abstractions/AssetReply.js +28 -27
- package/delivery/AssetDelivery/abstractions/AssetReply.js.map +1 -1
- package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.js +4 -5
- package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.js.map +1 -1
- package/delivery/AssetDeliveryRoute.d.ts +24 -0
- package/delivery/AssetDeliveryRoute.js +69 -0
- package/delivery/AssetDeliveryRoute.js.map +1 -0
- package/delivery/index.d.ts +3 -12
- package/delivery/index.js +2 -8
- package/delivery/setupAssetDelivery.d.ts +1 -2
- package/delivery/setupAssetDelivery.js +2 -112
- package/delivery/setupAssetDelivery.js.map +1 -1
- package/domain/file/abstractions.d.ts +13 -5
- package/domain/file/abstractions.js +2 -5
- package/domain/file/abstractions.js.map +1 -1
- package/domain/file/errors.js +67 -76
- package/domain/file/errors.js.map +1 -1
- package/domain/file/file.model.d.ts +3 -3
- package/domain/file/file.model.js +63 -49
- package/domain/file/file.model.js.map +1 -1
- package/domain/file/types.d.ts +2 -0
- package/domain/file/types.js +0 -3
- package/domain/identity/Identity.js +9 -8
- package/domain/identity/Identity.js.map +1 -1
- package/domain/permissionsSchema.d.ts +16 -0
- package/domain/permissionsSchema.js +30 -0
- package/domain/permissionsSchema.js.map +1 -0
- package/domain/settings/constants.js +2 -1
- package/domain/settings/constants.js.map +1 -1
- package/domain/settings/errors.js +22 -24
- package/domain/settings/errors.js.map +1 -1
- package/domain/settings/types.js +0 -3
- package/domain/settings/validation.d.ts +4 -12
- package/domain/settings/validation.js +19 -28
- package/domain/settings/validation.js.map +1 -1
- package/exports/api/file-manager/assetDelivery.d.ts +10 -0
- package/exports/api/file-manager/assetDelivery.js +8 -0
- package/exports/api/file-manager/file.d.ts +13 -0
- package/exports/api/file-manager/file.js +13 -0
- package/exports/api/file-manager/permissions.d.ts +1 -0
- package/exports/api/file-manager/permissions.js +1 -0
- package/exports/api/file-manager/settings.d.ts +3 -0
- package/exports/api/file-manager/settings.js +3 -0
- package/features/FileManagerFeature.d.ts +4 -1
- package/features/FileManagerFeature.js +23 -14
- package/features/FileManagerFeature.js.map +1 -1
- package/features/assetDelivery/Asset/Asset.d.ts +8 -0
- package/features/assetDelivery/Asset/Asset.js +14 -0
- package/features/assetDelivery/Asset/Asset.js.map +1 -0
- package/features/assetDelivery/Asset/abstractions.d.ts +10 -0
- package/features/assetDelivery/Asset/abstractions.js +5 -0
- package/features/assetDelivery/Asset/abstractions.js.map +1 -0
- package/features/assetDelivery/Asset/index.d.ts +1 -0
- package/features/assetDelivery/Asset/index.js +1 -0
- package/features/assetDelivery/FilesAssetRequestResolver.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.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/ObjectKey/ObjectKey.d.ts +8 -0
- package/features/assetDelivery/ObjectKey/ObjectKey.js +28 -0
- package/features/assetDelivery/ObjectKey/ObjectKey.js.map +1 -0
- package/features/assetDelivery/ObjectKey/abstractions.d.ts +12 -0
- package/features/assetDelivery/ObjectKey/abstractions.js +5 -0
- package/features/assetDelivery/ObjectKey/abstractions.js.map +1 -0
- package/features/assetDelivery/ObjectKey/index.d.ts +1 -0
- package/features/assetDelivery/ObjectKey/index.js +1 -0
- package/features/assetDelivery/StreamAssetReply/StreamAssetReply.d.ts +8 -0
- package/features/assetDelivery/StreamAssetReply/StreamAssetReply.js +22 -0
- package/features/assetDelivery/StreamAssetReply/StreamAssetReply.js.map +1 -0
- package/features/assetDelivery/StreamAssetReply/abstractions.d.ts +11 -0
- package/features/assetDelivery/StreamAssetReply/abstractions.js +5 -0
- package/features/assetDelivery/StreamAssetReply/abstractions.js.map +1 -0
- package/features/assetDelivery/StreamAssetReply/index.d.ts +1 -0
- package/features/assetDelivery/StreamAssetReply/index.js +1 -0
- package/features/assetDelivery/abstractions/AssetType.d.ts +17 -0
- package/features/assetDelivery/abstractions/AssetType.js +5 -0
- package/features/assetDelivery/abstractions/AssetType.js.map +1 -0
- package/features/assetDelivery/abstractions.d.ts +65 -0
- package/features/assetDelivery/abstractions.js +11 -0
- package/features/assetDelivery/abstractions.js.map +1 -0
- package/features/assetDelivery/assetTypes/image/AssetKeyGenerator.d.ts +12 -0
- package/features/assetDelivery/assetTypes/image/AssetKeyGenerator.js +30 -0
- package/features/assetDelivery/assetTypes/image/AssetKeyGenerator.js.map +1 -0
- package/features/assetDelivery/assetTypes/image/ImageAssetType.d.ts +9 -0
- package/features/assetDelivery/assetTypes/image/ImageAssetType.js +18 -0
- package/features/assetDelivery/assetTypes/image/ImageAssetType.js.map +1 -0
- package/features/assetDelivery/assetTypes/image/ImageAssetTypeHandler.d.ts +5 -0
- package/features/assetDelivery/assetTypes/image/ImageAssetTypeHandler.js +5 -0
- package/features/assetDelivery/assetTypes/image/ImageAssetTypeHandler.js.map +1 -0
- package/features/assetDelivery/assetTypes/image/SharpTransformer.d.ts +18 -0
- package/features/assetDelivery/assetTypes/image/SharpTransformer.js +47 -0
- package/features/assetDelivery/assetTypes/image/SharpTransformer.js.map +1 -0
- package/features/assetDelivery/assetTypes/image/WidthCollection.d.ts +8 -0
- package/features/assetDelivery/assetTypes/image/WidthCollection.js +22 -0
- package/features/assetDelivery/assetTypes/image/WidthCollection.js.map +1 -0
- package/features/assetDelivery/assetTypes/image/imageFormat.d.ts +26 -0
- package/features/assetDelivery/assetTypes/image/imageFormat.js +51 -0
- package/features/assetDelivery/assetTypes/image/imageFormat.js.map +1 -0
- package/features/assetDelivery/assetTypes/image/imageTypes.d.ts +39 -0
- package/features/assetDelivery/assetTypes/image/imageTypes.js +0 -0
- package/features/assetDelivery/assetTypes/image/index.d.ts +5 -0
- package/features/assetDelivery/assetTypes/image/index.js +4 -0
- package/features/assetDelivery/assetTypes/image/normalizeImageOptions.d.ts +6 -0
- package/features/assetDelivery/assetTypes/image/normalizeImageOptions.js +56 -0
- package/features/assetDelivery/assetTypes/image/normalizeImageOptions.js.map +1 -0
- package/features/assetDelivery/assetTypes/image/transformImage.d.ts +59 -0
- package/features/assetDelivery/assetTypes/image/transformImage.js +146 -0
- package/features/assetDelivery/assetTypes/image/transformImage.js.map +1 -0
- package/features/assetDelivery/assetTypes/image/utils.d.ts +26 -0
- package/features/assetDelivery/assetTypes/image/utils.js +47 -0
- package/features/assetDelivery/assetTypes/image/utils.js.map +1 -0
- package/features/assetDelivery/feature.d.ts +4 -0
- package/features/assetDelivery/feature.js +35 -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/CallableContentsReader.d.ts +11 -0
- package/features/assetDelivery/transformation/CallableContentsReader.js +14 -0
- package/features/assetDelivery/transformation/CallableContentsReader.js.map +1 -0
- package/features/assetDelivery/transformation/TransformationAssetProcessor.d.ts +9 -0
- package/features/assetDelivery/transformation/TransformationAssetProcessor.js +25 -0
- package/features/assetDelivery/transformation/TransformationAssetProcessor.js.map +1 -0
- package/features/assetDelivery/transformation/index.d.ts +5 -0
- package/features/assetDelivery/transformation/index.js +4 -0
- package/features/extractMetadata/ExtractMetadataHandler.d.ts +11 -0
- package/features/extractMetadata/ExtractMetadataHandler.js +25 -0
- package/features/extractMetadata/ExtractMetadataHandler.js.map +1 -0
- package/features/extractMetadata/ExtractMetadataInput.d.ts +3 -0
- package/features/extractMetadata/ExtractMetadataInput.js +0 -0
- package/features/file/CreateFile/CreateFileRepository.d.ts +3 -3
- package/features/file/CreateFile/CreateFileRepository.js +22 -19
- package/features/file/CreateFile/CreateFileRepository.js.map +1 -1
- package/features/file/CreateFile/CreateFileUseCase.d.ts +4 -4
- package/features/file/CreateFile/CreateFileUseCase.js +70 -78
- package/features/file/CreateFile/CreateFileUseCase.js.map +1 -1
- package/features/file/CreateFile/abstractions.d.ts +3 -0
- package/features/file/CreateFile/abstractions.js +3 -12
- package/features/file/CreateFile/abstractions.js.map +1 -1
- package/features/file/CreateFile/events.d.ts +8 -6
- package/features/file/CreateFile/events.js +18 -23
- package/features/file/CreateFile/events.js.map +1 -1
- package/features/file/CreateFile/feature.d.ts +4 -1
- package/features/file/CreateFile/feature.js +7 -6
- package/features/file/CreateFile/feature.js.map +1 -1
- package/features/file/CreateFile/index.d.ts +1 -1
- package/features/file/CreateFile/index.js +1 -3
- package/features/file/CreateFilesInBatch/CreateFilesInBatchRepository.js +15 -17
- package/features/file/CreateFilesInBatch/CreateFilesInBatchRepository.js.map +1 -1
- package/features/file/CreateFilesInBatch/CreateFilesInBatchUseCase.d.ts +4 -4
- package/features/file/CreateFilesInBatch/CreateFilesInBatchUseCase.js +61 -75
- package/features/file/CreateFilesInBatch/CreateFilesInBatchUseCase.js.map +1 -1
- package/features/file/CreateFilesInBatch/abstractions.d.ts +2 -0
- package/features/file/CreateFilesInBatch/abstractions.js +3 -12
- package/features/file/CreateFilesInBatch/abstractions.js.map +1 -1
- package/features/file/CreateFilesInBatch/events.d.ts +8 -6
- package/features/file/CreateFilesInBatch/events.js +18 -23
- package/features/file/CreateFilesInBatch/events.js.map +1 -1
- package/features/file/CreateFilesInBatch/feature.d.ts +4 -1
- package/features/file/CreateFilesInBatch/feature.js +7 -6
- package/features/file/CreateFilesInBatch/feature.js.map +1 -1
- package/features/file/CreateFilesInBatch/index.js +0 -2
- package/features/file/DeleteFile/DeleteFileRepository.d.ts +3 -3
- package/features/file/DeleteFile/DeleteFileRepository.js +23 -21
- package/features/file/DeleteFile/DeleteFileRepository.js.map +1 -1
- package/features/file/DeleteFile/DeleteFileUseCase.d.ts +4 -4
- package/features/file/DeleteFile/DeleteFileUseCase.js +33 -38
- package/features/file/DeleteFile/DeleteFileUseCase.js.map +1 -1
- package/features/file/DeleteFile/abstractions.d.ts +2 -0
- package/features/file/DeleteFile/abstractions.js +3 -12
- package/features/file/DeleteFile/abstractions.js.map +1 -1
- package/features/file/DeleteFile/events.d.ts +8 -6
- package/features/file/DeleteFile/events.js +18 -23
- package/features/file/DeleteFile/events.js.map +1 -1
- package/features/file/DeleteFile/feature.d.ts +4 -1
- package/features/file/DeleteFile/feature.js +7 -6
- package/features/file/DeleteFile/feature.js.map +1 -1
- package/features/file/DeleteFile/index.d.ts +1 -1
- package/features/file/DeleteFile/index.js +1 -3
- package/features/file/FileModelProvider.d.ts +31 -0
- package/features/file/FileModelProvider.js +22 -0
- package/features/file/FileModelProvider.js.map +1 -0
- package/features/file/FileUrlGenerator/FileUrlGenerator.d.ts +12 -0
- package/features/file/FileUrlGenerator/FileUrlGenerator.js +19 -0
- package/features/file/FileUrlGenerator/FileUrlGenerator.js.map +1 -0
- package/features/file/FileUrlGenerator/SettingsFileUrlPrefixProvider.d.ts +13 -0
- package/features/file/FileUrlGenerator/SettingsFileUrlPrefixProvider.js +28 -0
- package/features/file/FileUrlGenerator/SettingsFileUrlPrefixProvider.js.map +1 -0
- package/features/file/FileUrlGenerator/abstractions.d.ts +15 -3
- package/features/file/FileUrlGenerator/abstractions.js +3 -1
- package/features/file/FileUrlGenerator/abstractions.js.map +1 -1
- package/features/file/FileUrlGenerator/feature.d.ts +4 -0
- package/features/file/FileUrlGenerator/feature.js +13 -0
- package/features/file/FileUrlGenerator/feature.js.map +1 -0
- package/features/file/FileUrlGenerator/index.d.ts +2 -0
- package/features/file/FileUrlGenerator/index.js +1 -0
- package/features/file/GetFile/GetFileRepository.d.ts +3 -3
- package/features/file/GetFile/GetFileRepository.js +24 -23
- package/features/file/GetFile/GetFileRepository.js.map +1 -1
- package/features/file/GetFile/GetFileUseCase.d.ts +3 -3
- package/features/file/GetFile/GetFileUseCase.js +20 -30
- package/features/file/GetFile/GetFileUseCase.js.map +1 -1
- package/features/file/GetFile/abstractions.d.ts +2 -0
- package/features/file/GetFile/abstractions.js +3 -12
- package/features/file/GetFile/abstractions.js.map +1 -1
- package/features/file/GetFile/feature.d.ts +4 -1
- package/features/file/GetFile/feature.js +7 -6
- package/features/file/GetFile/feature.js.map +1 -1
- package/features/file/GetFile/index.js +0 -2
- package/features/file/GetFileByUrl/GetFileByUrlUseCase.d.ts +15 -0
- package/features/file/GetFileByUrl/GetFileByUrlUseCase.js +37 -0
- package/features/file/GetFileByUrl/GetFileByUrlUseCase.js.map +1 -0
- package/features/file/GetFileByUrl/abstractions.d.ts +18 -0
- package/features/file/GetFileByUrl/abstractions.js +5 -0
- package/features/file/GetFileByUrl/abstractions.js.map +1 -0
- package/features/file/GetFileByUrl/feature.d.ts +4 -0
- package/features/file/GetFileByUrl/feature.js +11 -0
- package/features/file/GetFileByUrl/feature.js.map +1 -0
- package/features/file/GetFileByUrl/index.d.ts +1 -0
- package/features/file/GetFileByUrl/index.js +1 -0
- package/features/file/GetFileContentsById/abstractions.d.ts +20 -0
- package/features/file/GetFileContentsById/abstractions.js +5 -0
- package/features/file/GetFileContentsById/abstractions.js.map +1 -0
- package/features/file/GetFileContentsById/index.d.ts +1 -0
- package/features/file/GetFileContentsById/index.js +1 -0
- package/features/file/GetFileContentsByKey/abstractions.d.ts +17 -0
- package/features/file/GetFileContentsByKey/abstractions.js +5 -0
- package/features/file/GetFileContentsByKey/abstractions.js.map +1 -0
- package/features/file/GetFileContentsByKey/index.d.ts +1 -0
- package/features/file/GetFileContentsByKey/index.js +1 -0
- package/features/file/ListFiles/ListFilesRepository.d.ts +3 -3
- package/features/file/ListFiles/ListFilesRepository.js +44 -41
- package/features/file/ListFiles/ListFilesRepository.js.map +1 -1
- package/features/file/ListFiles/ListFilesUseCase.d.ts +4 -4
- package/features/file/ListFiles/ListFilesUseCase.js +35 -39
- package/features/file/ListFiles/ListFilesUseCase.js.map +1 -1
- package/features/file/ListFiles/abstractions.d.ts +2 -0
- package/features/file/ListFiles/abstractions.js +3 -12
- package/features/file/ListFiles/abstractions.js.map +1 -1
- package/features/file/ListFiles/feature.d.ts +4 -1
- package/features/file/ListFiles/feature.js +7 -6
- package/features/file/ListFiles/feature.js.map +1 -1
- package/features/file/ListFiles/index.js +0 -2
- package/features/file/ListImagesByTagTool/ListImagesByTagTool.d.ts +37 -0
- package/features/file/ListImagesByTagTool/ListImagesByTagTool.js +56 -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 +3 -3
- package/features/file/ListTags/ListTagsRepository.js +33 -37
- package/features/file/ListTags/ListTagsRepository.js.map +1 -1
- package/features/file/ListTags/ListTagsUseCase.d.ts +3 -3
- package/features/file/ListTags/ListTagsUseCase.js +22 -23
- package/features/file/ListTags/ListTagsUseCase.js.map +1 -1
- package/features/file/ListTags/abstractions.d.ts +2 -0
- package/features/file/ListTags/abstractions.js +3 -12
- package/features/file/ListTags/abstractions.js.map +1 -1
- package/features/file/ListTags/feature.d.ts +4 -1
- package/features/file/ListTags/feature.js +7 -6
- package/features/file/ListTags/feature.js.map +1 -1
- package/features/file/ListTags/index.js +0 -2
- package/features/file/UpdateFile/UpdateFileRepository.d.ts +3 -3
- package/features/file/UpdateFile/UpdateFileRepository.js +28 -29
- package/features/file/UpdateFile/UpdateFileRepository.js.map +1 -1
- package/features/file/UpdateFile/UpdateFileUseCase.d.ts +5 -5
- package/features/file/UpdateFile/UpdateFileUseCase.js +60 -70
- package/features/file/UpdateFile/UpdateFileUseCase.js.map +1 -1
- package/features/file/UpdateFile/abstractions.d.ts +3 -0
- package/features/file/UpdateFile/abstractions.js +3 -12
- package/features/file/UpdateFile/abstractions.js.map +1 -1
- package/features/file/UpdateFile/events.d.ts +8 -6
- package/features/file/UpdateFile/events.js +18 -23
- package/features/file/UpdateFile/events.js.map +1 -1
- package/features/file/UpdateFile/feature.d.ts +4 -1
- package/features/file/UpdateFile/feature.js +7 -6
- package/features/file/UpdateFile/feature.js.map +1 -1
- package/features/file/UpdateFile/index.d.ts +1 -1
- package/features/file/UpdateFile/index.js +1 -3
- package/features/file/shared/EntryToFileMapper.js +25 -23
- package/features/file/shared/EntryToFileMapper.js.map +1 -1
- package/features/file/shared/FileInputToEntryInputMapper.js +29 -27
- package/features/file/shared/FileInputToEntryInputMapper.js.map +1 -1
- package/features/file/shared/FileToEntryMapper.js +28 -26
- package/features/file/shared/FileToEntryMapper.js.map +1 -1
- 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.js +19 -19
- package/features/settings/GetSettings/GetSettingsUseCase.js.map +1 -1
- package/features/settings/GetSettings/abstractions.d.ts +1 -0
- package/features/settings/GetSettings/abstractions.js +2 -6
- package/features/settings/GetSettings/abstractions.js.map +1 -1
- package/features/settings/GetSettings/feature.d.ts +4 -1
- package/features/settings/GetSettings/feature.js +6 -5
- package/features/settings/GetSettings/feature.js.map +1 -1
- package/features/settings/SettingsInstaller/SettingsInstaller.d.ts +4 -2
- package/features/settings/SettingsInstaller/SettingsInstaller.js +30 -26
- package/features/settings/SettingsInstaller/SettingsInstaller.js.map +1 -1
- package/features/settings/SettingsInstaller/feature.d.ts +4 -1
- package/features/settings/SettingsInstaller/feature.js +6 -5
- package/features/settings/SettingsInstaller/feature.js.map +1 -1
- package/features/settings/UpdateSettings/UpdateSettingsUseCase.d.ts +1 -1
- package/features/settings/UpdateSettings/UpdateSettingsUseCase.js +42 -49
- package/features/settings/UpdateSettings/UpdateSettingsUseCase.js.map +1 -1
- package/features/settings/UpdateSettings/abstractions.d.ts +1 -0
- package/features/settings/UpdateSettings/abstractions.js +2 -6
- package/features/settings/UpdateSettings/abstractions.js.map +1 -1
- package/features/settings/UpdateSettings/events.d.ts +8 -6
- package/features/settings/UpdateSettings/events.js +18 -23
- package/features/settings/UpdateSettings/events.js.map +1 -1
- package/features/settings/UpdateSettings/feature.d.ts +4 -1
- package/features/settings/UpdateSettings/feature.js +6 -5
- package/features/settings/UpdateSettings/feature.js.map +1 -1
- package/features/settings/UpdateSettings/index.d.ts +1 -1
- package/features/settings/UpdateSettings/index.js +1 -3
- package/features/shared/abstractions.d.ts +1 -13
- package/features/shared/abstractions.js +1 -5
- package/features/upload/CompleteMultiPartUpload/abstractions.d.ts +12 -0
- package/features/upload/CompleteMultiPartUpload/abstractions.js +5 -0
- package/features/upload/CompleteMultiPartUpload/abstractions.js.map +1 -0
- package/features/upload/CompleteMultiPartUpload/index.d.ts +1 -0
- package/features/upload/CompleteMultiPartUpload/index.js +1 -0
- package/features/upload/CreateMultiPartUpload/abstractions.d.ts +14 -0
- package/features/upload/CreateMultiPartUpload/abstractions.js +5 -0
- package/features/upload/CreateMultiPartUpload/abstractions.js.map +1 -0
- package/features/upload/CreateMultiPartUpload/index.d.ts +1 -0
- package/features/upload/CreateMultiPartUpload/index.js +1 -0
- package/features/upload/GetUploadPayload/abstractions.d.ts +10 -0
- package/features/upload/GetUploadPayload/abstractions.js +5 -0
- package/features/upload/GetUploadPayload/abstractions.js.map +1 -0
- package/features/upload/GetUploadPayload/index.d.ts +1 -0
- package/features/upload/GetUploadPayload/index.js +1 -0
- package/features/upload/ReadFileMetadata/MetadataReader.d.ts +11 -0
- package/features/upload/ReadFileMetadata/MetadataReader.js +21 -0
- package/features/upload/ReadFileMetadata/MetadataReader.js.map +1 -0
- package/features/upload/ReadFileMetadata/abstractions.d.ts +15 -0
- package/features/upload/ReadFileMetadata/abstractions.js +5 -0
- package/features/upload/ReadFileMetadata/abstractions.js.map +1 -0
- package/features/upload/ReadFileMetadata/feature.d.ts +4 -0
- package/features/upload/ReadFileMetadata/feature.js +11 -0
- package/features/upload/ReadFileMetadata/feature.js.map +1 -0
- package/features/upload/ReadFileMetadata/index.d.ts +1 -0
- package/features/upload/ReadFileMetadata/index.js +1 -0
- package/features/upload/WriteFileMetadata/MetadataWriter.d.ts +14 -0
- package/features/upload/WriteFileMetadata/MetadataWriter.js +36 -0
- package/features/upload/WriteFileMetadata/MetadataWriter.js.map +1 -0
- package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.d.ts +11 -0
- package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.js +20 -0
- package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.js.map +1 -0
- package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.d.ts +11 -0
- package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.js +22 -0
- package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.js.map +1 -0
- package/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.d.ts +11 -0
- package/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.js +22 -0
- package/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.js.map +1 -0
- package/features/upload/WriteFileMetadata/abstractions.d.ts +9 -0
- package/features/upload/WriteFileMetadata/abstractions.js +5 -0
- package/features/upload/WriteFileMetadata/abstractions.js.map +1 -0
- package/features/upload/WriteFileMetadata/feature.d.ts +4 -0
- package/features/upload/WriteFileMetadata/feature.js +17 -0
- package/features/upload/WriteFileMetadata/feature.js.map +1 -0
- package/features/upload/index.d.ts +17 -0
- package/features/upload/index.js +10 -0
- package/features/upload/types.d.ts +28 -0
- package/features/upload/types.js +0 -0
- package/features/upload/utils/FileExtension.d.ts +6 -0
- package/features/upload/utils/FileExtension.js +16 -0
- package/features/upload/utils/FileExtension.js.map +1 -0
- package/features/upload/utils/FileKey.d.ts +11 -0
- package/features/upload/utils/FileKey.js +33 -0
- package/features/upload/utils/FileKey.js.map +1 -0
- package/features/upload/utils/FileNormalizer.d.ts +13 -0
- package/features/upload/utils/FileNormalizer.js +41 -0
- package/features/upload/utils/FileNormalizer.js.map +1 -0
- package/features/upload/utils/FileUploadModifier.d.ts +30 -0
- package/features/upload/utils/FileUploadModifier.js +39 -0
- package/features/upload/utils/FileUploadModifier.js.map +1 -0
- package/features/upload/utils/checkPermissions.d.ts +5 -0
- package/features/upload/utils/checkPermissions.js +22 -0
- package/features/upload/utils/checkPermissions.js.map +1 -0
- package/features/upload/utils/createFileNormalizerFromContext.d.ts +3 -0
- package/features/upload/utils/createFileNormalizerFromContext.js +9 -0
- package/features/upload/utils/createFileNormalizerFromContext.js.map +1 -0
- package/features/upload/utils/mimeTypes.d.ts +1 -0
- package/features/upload/utils/mimeTypes.js +9 -0
- package/features/upload/utils/mimeTypes.js.map +1 -0
- package/graphql/FmGraphQLSchema.d.ts +24 -0
- package/graphql/FmGraphQLSchema.js +458 -0
- package/graphql/FmGraphQLSchema.js.map +1 -0
- package/index.d.ts +3 -6
- package/index.js +11 -48
- package/index.js.map +1 -1
- package/package.json +34 -23
- package/types.d.ts +1 -3
- package/types.js +1 -3
- package/delivery/AssetDelivery/AssetDeliveryConfig.d.ts +0 -65
- package/delivery/AssetDelivery/AssetDeliveryConfig.js +0 -94
- package/delivery/AssetDelivery/AssetDeliveryConfig.js.map +0 -1
- package/delivery/AssetDelivery/FilesAssetRequestResolver.d.ts +0 -6
- package/delivery/AssetDelivery/FilesAssetRequestResolver.js +0 -30
- package/delivery/AssetDelivery/FilesAssetRequestResolver.js.map +0 -1
- package/delivery/AssetDelivery/NullAssetOutputStrategy.d.ts +0 -4
- package/delivery/AssetDelivery/NullAssetOutputStrategy.js +0 -8
- package/delivery/AssetDelivery/NullAssetOutputStrategy.js.map +0 -1
- package/delivery/AssetDelivery/NullAssetReply.js +0 -13
- package/delivery/AssetDelivery/NullAssetReply.js.map +0 -1
- package/delivery/AssetDelivery/NullAssetResolver.d.ts +0 -5
- package/delivery/AssetDelivery/NullAssetResolver.js +0 -7
- package/delivery/AssetDelivery/NullAssetResolver.js.map +0 -1
- package/delivery/AssetDelivery/NullRequestResolver.d.ts +0 -4
- package/delivery/AssetDelivery/NullRequestResolver.js +0 -7
- package/delivery/AssetDelivery/NullRequestResolver.js.map +0 -1
- package/delivery/AssetDelivery/SetCacheControlHeaders.d.ts +0 -8
- package/delivery/AssetDelivery/SetCacheControlHeaders.js +0 -18
- package/delivery/AssetDelivery/SetCacheControlHeaders.js.map +0 -1
- package/delivery/AssetDelivery/SetResponseHeaders.d.ts +0 -18
- package/delivery/AssetDelivery/SetResponseHeaders.js +0 -18
- package/delivery/AssetDelivery/SetResponseHeaders.js.map +0 -1
- package/delivery/AssetDelivery/abstractions/AssetContentsReader.d.ts +0 -4
- package/delivery/AssetDelivery/abstractions/AssetContentsReader.js +0 -3
- package/delivery/AssetDelivery/abstractions/AssetContentsReader.js.map +0 -1
- package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.d.ts +0 -4
- package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.js +0 -3
- package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.js.map +0 -1
- package/delivery/AssetDelivery/abstractions/AssetProcessor.d.ts +0 -4
- package/delivery/AssetDelivery/abstractions/AssetProcessor.js +0 -3
- package/delivery/AssetDelivery/abstractions/AssetProcessor.js.map +0 -1
- package/delivery/AssetDelivery/abstractions/AssetRequestResolver.d.ts +0 -5
- package/delivery/AssetDelivery/abstractions/AssetRequestResolver.js +0 -3
- package/delivery/AssetDelivery/abstractions/AssetRequestResolver.js.map +0 -1
- package/delivery/AssetDelivery/abstractions/AssetResolver.d.ts +0 -4
- package/delivery/AssetDelivery/abstractions/AssetResolver.js +0 -3
- package/delivery/AssetDelivery/abstractions/AssetResolver.js.map +0 -1
- package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.d.ts +0 -4
- package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.js +0 -3
- package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.js.map +0 -1
- package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.d.ts +0 -4
- package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.js +0 -3
- package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.js.map +0 -1
- package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.d.ts +0 -4
- package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.js +0 -19
- package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.js.map +0 -1
- package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.d.ts +0 -4
- package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.js +0 -8
- package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.js.map +0 -1
- package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.d.ts +0 -8
- package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js +0 -20
- package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js.map +0 -1
- package/delivery/AssetDelivery/privateFiles/PrivateCache.d.ts +0 -6
- package/delivery/AssetDelivery/privateFiles/PrivateCache.js +0 -21
- package/delivery/AssetDelivery/privateFiles/PrivateCache.js.map +0 -1
- package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.d.ts +0 -8
- package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.js +0 -30
- package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.js.map +0 -1
- package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.d.ts +0 -13
- package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.js +0 -63
- package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.js.map +0 -1
- package/delivery/AssetDelivery/privateFiles/PublicCache.d.ts +0 -6
- package/delivery/AssetDelivery/privateFiles/PublicCache.js +0 -21
- package/delivery/AssetDelivery/privateFiles/PublicCache.js.map +0 -1
- package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.d.ts +0 -7
- package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js +0 -20
- package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js.map +0 -1
- package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.d.ts +0 -7
- package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js +0 -20
- package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js.map +0 -1
- package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.d.ts +0 -4
- package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.js +0 -7
- package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.js.map +0 -1
- package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.d.ts +0 -4
- package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.js +0 -7
- package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.js.map +0 -1
- package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.d.ts +0 -6
- package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.js +0 -19
- package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.js.map +0 -1
- package/delivery/index.js.map +0 -1
- package/domain/file/types.js.map +0 -1
- package/domain/settings/types.js.map +0 -1
- package/features/file/CreateFile/index.js.map +0 -1
- package/features/file/CreateFilesInBatch/index.js.map +0 -1
- package/features/file/DeleteFile/index.js.map +0 -1
- package/features/file/GetFile/index.js.map +0 -1
- package/features/file/ListFiles/index.js.map +0 -1
- package/features/file/ListTags/index.js.map +0 -1
- package/features/file/UpdateFile/index.js.map +0 -1
- package/features/settings/UpdateSettings/index.js.map +0 -1
- package/features/shared/abstractions.js.map +0 -1
- package/graphql/baseSchema.d.ts +0 -3
- package/graphql/baseSchema.js +0 -103
- package/graphql/baseSchema.js.map +0 -1
- package/graphql/createFilesTypeDefs.d.ts +0 -7
- package/graphql/createFilesTypeDefs.js +0 -199
- package/graphql/createFilesTypeDefs.js.map +0 -1
- package/graphql/filesSchema.d.ts +0 -4
- package/graphql/filesSchema.js +0 -116
- package/graphql/filesSchema.js.map +0 -1
- package/graphql/getFileByUrl.d.ts +0 -3
- package/graphql/getFileByUrl.js +0 -69
- package/graphql/getFileByUrl.js.map +0 -1
- package/graphql/index.d.ts +0 -4
- package/graphql/index.js +0 -53
- package/graphql/index.js.map +0 -1
- package/graphql/utils.d.ts +0 -11
- package/graphql/utils.js +0 -17
- package/graphql/utils.js.map +0 -1
- package/modelModifier/CmsModelModifier.d.ts +0 -26
- package/modelModifier/CmsModelModifier.js +0 -54
- package/modelModifier/CmsModelModifier.js.map +0 -1
- package/permissions/FilesPermissions.d.ts +0 -4
- package/permissions/FilesPermissions.js +0 -4
- package/permissions/FilesPermissions.js.map +0 -1
- package/permissions/SettingsPermissions.d.ts +0 -4
- package/permissions/SettingsPermissions.js +0 -4
- package/permissions/SettingsPermissions.js.map +0 -1
- package/types.js.map +0 -1
- /package/{delivery/AssetDelivery → features/assetDelivery}/NullAssetReply.d.ts +0 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { AssetDeliveryFeature } from "./features/assetDelivery/feature.js";
|
|
3
|
+
import { AssetDeliveryRouteDefinition } from "./delivery/AssetDeliveryRoute.js";
|
|
4
|
+
import { FileModel } from "./domain/file/file.model.js";
|
|
5
|
+
import { FmPermissionsFeature } from "./features/permissions/feature.js";
|
|
6
|
+
import { FileManagerFeature } from "./features/FileManagerFeature.js";
|
|
7
|
+
import { FileModelProvider } from "./features/file/FileModelProvider.js";
|
|
8
|
+
const FileManagerAppFeature = createFeature({
|
|
9
|
+
name: "FileManagerApp",
|
|
10
|
+
register (container) {
|
|
11
|
+
AssetDeliveryFeature.register(container);
|
|
12
|
+
container.register(AssetDeliveryRouteDefinition);
|
|
13
|
+
container.register(FileModel);
|
|
14
|
+
FmPermissionsFeature.register(container);
|
|
15
|
+
FileManagerFeature.register(container);
|
|
16
|
+
container.register(FileModelProvider);
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
export { FileManagerAppFeature };
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=FileManagerAppFeature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileManagerAppFeature.js","sources":["../src/FileManagerAppFeature.ts"],"sourcesContent":["import { type Container, createFeature } from \"@webiny/feature/api\";\nimport { AssetDeliveryFeature } from \"~/features/assetDelivery/feature.js\";\nimport { AssetDeliveryRouteDefinition } from \"./delivery/AssetDeliveryRoute.js\";\nimport { FileModel } from \"~/domain/file/file.model.js\";\nimport { FmPermissionsFeature } from \"~/features/permissions/feature.js\";\nimport { FileManagerFeature } from \"~/features/FileManagerFeature.js\";\nimport { FileModelProvider } from \"~/features/file/FileModelProvider.js\";\n\nexport const FileManagerAppFeature = createFeature({\n name: \"FileManagerApp\",\n register(container: Container) {\n AssetDeliveryFeature.register(container);\n container.register(AssetDeliveryRouteDefinition);\n container.register(FileModel);\n FmPermissionsFeature.register(container);\n FileManagerFeature.register(container);\n\n // Stateless — the model list is already cached per request by the CMS (`ModelCache`), so the\n // provider holds nothing and needs no lifetime of its own.\n container.register(FileModelProvider);\n }\n});\n"],"names":["FileManagerAppFeature","createFeature","container","AssetDeliveryFeature","AssetDeliveryRouteDefinition","FileModel","FmPermissionsFeature","FileManagerFeature","FileModelProvider"],"mappings":";;;;;;;AAQO,MAAMA,wBAAwBC,cAAc;IAC/C,MAAM;IACN,UAASC,SAAoB;QACzBC,qBAAqB,QAAQ,CAACD;QAC9BA,UAAU,QAAQ,CAACE;QACnBF,UAAU,QAAQ,CAACG;QACnBC,qBAAqB,QAAQ,CAACJ;QAC9BK,mBAAmB,QAAQ,CAACL;QAI5BA,UAAU,QAAQ,CAACM;IACvB;AACJ"}
|
package/contants.js
CHANGED
package/contants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"contants.js","sources":["../src/contants.ts"],"sourcesContent":["export const ROOT_FOLDER = \"root\";\n"],"names":["ROOT_FOLDER"],"mappings":"AAAO,MAAMA,cAAc"}
|
|
@@ -1,59 +1,53 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
setOutputStrategy(setter) {
|
|
51
|
-
if (typeof setter === "function") {
|
|
52
|
-
this.outputStrategy = setter(this.outputStrategy);
|
|
53
|
-
} else {
|
|
54
|
-
this.outputStrategy = setter;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
1
|
+
class Asset {
|
|
2
|
+
constructor(props){
|
|
3
|
+
this.props = props;
|
|
4
|
+
}
|
|
5
|
+
clone() {
|
|
6
|
+
return this.withProps(structuredClone(this.props));
|
|
7
|
+
}
|
|
8
|
+
withProps(props) {
|
|
9
|
+
const newAsset = new Asset({
|
|
10
|
+
...this.props,
|
|
11
|
+
...props
|
|
12
|
+
});
|
|
13
|
+
newAsset.contentsReader = this.contentsReader;
|
|
14
|
+
newAsset.outputStrategy = this.outputStrategy;
|
|
15
|
+
return newAsset;
|
|
16
|
+
}
|
|
17
|
+
getId() {
|
|
18
|
+
return this.props.id;
|
|
19
|
+
}
|
|
20
|
+
getTenant() {
|
|
21
|
+
return this.props.tenant;
|
|
22
|
+
}
|
|
23
|
+
getKey() {
|
|
24
|
+
return this.props.key;
|
|
25
|
+
}
|
|
26
|
+
getSize() {
|
|
27
|
+
return this.props.size;
|
|
28
|
+
}
|
|
29
|
+
getContentType() {
|
|
30
|
+
return this.props.contentType;
|
|
31
|
+
}
|
|
32
|
+
getExtension() {
|
|
33
|
+
return this.getKey().split(".").pop() ?? "";
|
|
34
|
+
}
|
|
35
|
+
getContents() {
|
|
36
|
+
if (!this.contentsReader) throw Error("Asset contents reader was not configured!");
|
|
37
|
+
return this.contentsReader.read(this);
|
|
38
|
+
}
|
|
39
|
+
setContentsReader(reader) {
|
|
40
|
+
this.contentsReader = reader;
|
|
41
|
+
}
|
|
42
|
+
output() {
|
|
43
|
+
if (!this.outputStrategy) throw Error("Asset output strategy was not configured!");
|
|
44
|
+
return this.outputStrategy.output(this);
|
|
45
|
+
}
|
|
46
|
+
setOutputStrategy(setter) {
|
|
47
|
+
if ("function" == typeof setter) this.outputStrategy = setter(this.outputStrategy);
|
|
48
|
+
else this.outputStrategy = setter;
|
|
49
|
+
}
|
|
57
50
|
}
|
|
51
|
+
export { Asset };
|
|
58
52
|
|
|
59
53
|
//# sourceMappingURL=Asset.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"delivery/AssetDelivery/Asset.js","sources":["../../../src/delivery/AssetDelivery/Asset.ts"],"sourcesContent":["import type { AssetContentsReader, AssetOutputStrategy } from \"~/delivery/index.js\";\n\ntype Setter<T> = (arg: T | undefined) => T;\n\nexport interface AssetData {\n id: string;\n tenant: string;\n key: string;\n size: number;\n contentType: string;\n}\n\nexport class Asset {\n protected readonly props: AssetData;\n private outputStrategy: AssetOutputStrategy | undefined;\n private contentsReader: AssetContentsReader | undefined;\n\n constructor(props: AssetData) {\n this.props = props;\n }\n\n clone() {\n return this.withProps(structuredClone(this.props));\n }\n\n withProps(props: Partial<AssetData>) {\n const newAsset = new Asset({ ...this.props, ...props });\n newAsset.contentsReader = this.contentsReader;\n newAsset.outputStrategy = this.outputStrategy;\n return newAsset;\n }\n\n getId() {\n return this.props.id;\n }\n getTenant() {\n return this.props.tenant;\n }\n getKey() {\n return this.props.key;\n }\n getSize() {\n return this.props.size;\n }\n getContentType() {\n return this.props.contentType;\n }\n getExtension() {\n return this.getKey().split(\".\").pop() ?? \"\";\n }\n\n getContents() {\n if (!this.contentsReader) {\n throw Error(`Asset contents reader was not configured!`);\n }\n return this.contentsReader.read(this);\n }\n\n setContentsReader(reader: AssetContentsReader) {\n this.contentsReader = reader;\n }\n\n output() {\n if (!this.outputStrategy) {\n throw Error(`Asset output strategy was not configured!`);\n }\n\n return this.outputStrategy.output(this);\n }\n\n setOutputStrategy(setter: Setter<AssetOutputStrategy> | AssetOutputStrategy) {\n if (typeof setter === \"function\") {\n this.outputStrategy = setter(this.outputStrategy);\n } else {\n this.outputStrategy = setter;\n }\n }\n}\n"],"names":["Asset","props","structuredClone","newAsset","Error","reader","setter"],"mappings":"AAYO,MAAMA;IAKT,YAAYC,KAAgB,CAAE;QAC1B,IAAI,CAAC,KAAK,GAAGA;IACjB;IAEA,QAAQ;QACJ,OAAO,IAAI,CAAC,SAAS,CAACC,gBAAgB,IAAI,CAAC,KAAK;IACpD;IAEA,UAAUD,KAAyB,EAAE;QACjC,MAAME,WAAW,IAAIH,MAAM;YAAE,GAAG,IAAI,CAAC,KAAK;YAAE,GAAGC,KAAK;QAAC;QACrDE,SAAS,cAAc,GAAG,IAAI,CAAC,cAAc;QAC7CA,SAAS,cAAc,GAAG,IAAI,CAAC,cAAc;QAC7C,OAAOA;IACX;IAEA,QAAQ;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE;IACxB;IACA,YAAY;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM;IAC5B;IACA,SAAS;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG;IACzB;IACA,UAAU;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI;IAC1B;IACA,iBAAiB;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW;IACjC;IACA,eAAe;QACX,OAAO,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,GAAG,MAAM;IAC7C;IAEA,cAAc;QACV,IAAI,CAAC,IAAI,CAAC,cAAc,EACpB,MAAMC,MAAM;QAEhB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI;IACxC;IAEA,kBAAkBC,MAA2B,EAAE;QAC3C,IAAI,CAAC,cAAc,GAAGA;IAC1B;IAEA,SAAS;QACL,IAAI,CAAC,IAAI,CAAC,cAAc,EACpB,MAAMD,MAAM;QAGhB,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI;IAC1C;IAEA,kBAAkBE,MAAyD,EAAE;QACzE,IAAI,AAAkB,cAAlB,OAAOA,QACP,IAAI,CAAC,cAAc,GAAGA,OAAO,IAAI,CAAC,cAAc;aAEhD,IAAI,CAAC,cAAc,GAAGA;IAE9B;AACJ"}
|
|
@@ -1,22 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
1
|
+
class AssetRequest {
|
|
2
|
+
constructor(data){
|
|
3
|
+
this.data = data;
|
|
4
|
+
}
|
|
5
|
+
getKey() {
|
|
6
|
+
return this.data.key;
|
|
7
|
+
}
|
|
8
|
+
getOptions() {
|
|
9
|
+
return this.data.options;
|
|
10
|
+
}
|
|
11
|
+
setOptions(options) {
|
|
12
|
+
this.data.options = options;
|
|
13
|
+
}
|
|
14
|
+
getContext() {
|
|
15
|
+
return this.data.context;
|
|
16
|
+
}
|
|
17
|
+
getExtension() {
|
|
18
|
+
return this.data.key.split(".").pop();
|
|
19
|
+
}
|
|
20
20
|
}
|
|
21
|
+
export { AssetRequest };
|
|
21
22
|
|
|
22
23
|
//# sourceMappingURL=AssetRequest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"delivery/AssetDelivery/AssetRequest.js","sources":["../../../src/delivery/AssetDelivery/AssetRequest.ts"],"sourcesContent":["import type { GenericRecord } from \"@webiny/api/types.js\";\n\nexport interface AssetRequestOptions {\n original?: boolean;\n [key: string]: unknown;\n}\n\nexport type AssetRequestContext<T extends GenericRecord = GenericRecord> = T & {\n /**\n * Asset request URL.\n */\n url: string;\n};\n\nexport interface AssetRequestData<TOptions> {\n key: string;\n context: AssetRequestContext;\n options: TOptions;\n}\n\nexport class AssetRequest<TOptions extends AssetRequestOptions = AssetRequestOptions> {\n private data: AssetRequestData<TOptions>;\n\n constructor(data: AssetRequestData<TOptions>) {\n this.data = data;\n }\n\n getKey() {\n return this.data.key;\n }\n\n getOptions(): TOptions {\n return this.data.options;\n }\n\n setOptions(options: TOptions) {\n this.data.options = options;\n }\n\n getContext<T extends GenericRecord = GenericRecord>() {\n return this.data.context as AssetRequestContext<T>;\n }\n\n getExtension() {\n return this.data.key.split(\".\").pop();\n }\n}\n"],"names":["AssetRequest","data","options"],"mappings":"AAoBO,MAAMA;IAGT,YAAYC,IAAgC,CAAE;QAC1C,IAAI,CAAC,IAAI,GAAGA;IAChB;IAEA,SAAS;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG;IACxB;IAEA,aAAuB;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO;IAC5B;IAEA,WAAWC,OAAiB,EAAE;QAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,GAAGA;IACxB;IAEA,aAAsD;QAClD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO;IAC5B;IAEA,eAAe;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG;IACvC;AACJ"}
|
|
@@ -1,31 +1,32 @@
|
|
|
1
1
|
import { ResponseHeaders } from "@webiny/handler";
|
|
2
|
-
const defaultBody = ()
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
2
|
+
const defaultBody = ()=>"";
|
|
3
|
+
class AssetReply {
|
|
4
|
+
constructor(params = {
|
|
5
|
+
code: 200
|
|
6
|
+
}){
|
|
7
|
+
this.code = params.code;
|
|
8
|
+
this.headers = params.headers || ResponseHeaders.create();
|
|
9
|
+
this.body = params.body || defaultBody;
|
|
10
|
+
}
|
|
11
|
+
setHeaders(cb) {
|
|
12
|
+
this.headers = cb(this.headers);
|
|
13
|
+
}
|
|
14
|
+
getHeaders() {
|
|
15
|
+
return this.headers;
|
|
16
|
+
}
|
|
17
|
+
setCode(code) {
|
|
18
|
+
this.code = code;
|
|
19
|
+
}
|
|
20
|
+
getCode() {
|
|
21
|
+
return this.code;
|
|
22
|
+
}
|
|
23
|
+
setBody(body) {
|
|
24
|
+
this.body = body;
|
|
25
|
+
}
|
|
26
|
+
getBody() {
|
|
27
|
+
return this.body();
|
|
28
|
+
}
|
|
29
29
|
}
|
|
30
|
+
export { AssetReply };
|
|
30
31
|
|
|
31
32
|
//# sourceMappingURL=AssetReply.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"delivery/AssetDelivery/abstractions/AssetReply.js","sources":["../../../../src/delivery/AssetDelivery/abstractions/AssetReply.ts"],"sourcesContent":["import { ResponseHeaders } from \"@webiny/handler\";\n\ninterface HeadersSetter {\n (headers: ResponseHeaders): ResponseHeaders;\n}\n\ninterface AssetReplyParams {\n code: number;\n headers?: ResponseHeaders;\n body?: AssetReplyBody;\n}\n\ninterface AssetReplyBody {\n (): Promise<unknown> | unknown;\n}\n\nconst defaultBody = () => \"\";\n\nexport class AssetReply {\n private headers: ResponseHeaders;\n private code: number;\n private body: AssetReplyBody;\n\n constructor(params: AssetReplyParams = { code: 200 }) {\n this.code = params.code;\n this.headers = params.headers || ResponseHeaders.create();\n this.body = params.body || defaultBody;\n }\n\n setHeaders(cb: HeadersSetter) {\n this.headers = cb(this.headers);\n }\n\n getHeaders() {\n return this.headers;\n }\n\n setCode(code: number) {\n this.code = code;\n }\n\n getCode() {\n return this.code;\n }\n\n setBody(body: AssetReplyBody) {\n this.body = body;\n }\n\n getBody() {\n return this.body();\n }\n}\n"],"names":["defaultBody","AssetReply","params","ResponseHeaders","cb","code","body"],"mappings":";AAgBA,MAAMA,cAAc,IAAM;AAEnB,MAAMC;IAKT,YAAYC,SAA2B;QAAE,MAAM;IAAI,CAAC,CAAE;QAClD,IAAI,CAAC,IAAI,GAAGA,OAAO,IAAI;QACvB,IAAI,CAAC,OAAO,GAAGA,OAAO,OAAO,IAAIC,gBAAgB,MAAM;QACvD,IAAI,CAAC,IAAI,GAAGD,OAAO,IAAI,IAAIF;IAC/B;IAEA,WAAWI,EAAiB,EAAE;QAC1B,IAAI,CAAC,OAAO,GAAGA,GAAG,IAAI,CAAC,OAAO;IAClC;IAEA,aAAa;QACT,OAAO,IAAI,CAAC,OAAO;IACvB;IAEA,QAAQC,IAAY,EAAE;QAClB,IAAI,CAAC,IAAI,GAAGA;IAChB;IAEA,UAAU;QACN,OAAO,IAAI,CAAC,IAAI;IACpB;IAEA,QAAQC,IAAoB,EAAE;QAC1B,IAAI,CAAC,IAAI,GAAGA;IAChB;IAEA,UAAU;QACN,OAAO,IAAI,CAAC,IAAI;IACpB;AACJ"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
return ()
|
|
4
|
-
}
|
|
5
|
-
return () => Promise.resolve([]);
|
|
1
|
+
const createAssetDeliveryPluginLoader = (cb)=>{
|
|
2
|
+
if ("asset-delivery" === process.env.WEBINY_FUNCTION_TYPE) return ()=>cb();
|
|
3
|
+
return ()=>Promise.resolve([]);
|
|
6
4
|
};
|
|
5
|
+
export { createAssetDeliveryPluginLoader };
|
|
7
6
|
|
|
8
7
|
//# sourceMappingURL=createAssetDeliveryPluginLoader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"delivery/AssetDelivery/createAssetDeliveryPluginLoader.js","sources":["../../../src/delivery/AssetDelivery/createAssetDeliveryPluginLoader.ts"],"sourcesContent":["import type { PluginFactory } from \"@webiny/plugins/types.js\";\n\nexport const createAssetDeliveryPluginLoader = (cb: PluginFactory): PluginFactory => {\n if (process.env.WEBINY_FUNCTION_TYPE === \"asset-delivery\") {\n return () => cb();\n }\n\n return () => Promise.resolve([]);\n};\n"],"names":["createAssetDeliveryPluginLoader","cb","process","Promise"],"mappings":"AAEO,MAAMA,kCAAkC,CAACC;IAC5C,IAAIC,AAAqC,qBAArCA,QAAQ,GAAG,CAAC,oBAAoB,EAChC,OAAO,IAAMD;IAGjB,OAAO,IAAME,QAAQ,OAAO,CAAC,EAAE;AACnC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { HttpRouteDefinition, HttpRouteHandler } from "@webiny/event-handler-core";
|
|
2
|
+
import type { Container } from "@webiny/di";
|
|
3
|
+
declare class AssetDeliveryRouteImpl implements HttpRouteHandler.Interface {
|
|
4
|
+
private container;
|
|
5
|
+
constructor(container: Container);
|
|
6
|
+
handle(request: HttpRouteHandler.Request, response: HttpRouteHandler.Response): Promise<import("@webiny/event-handler-core").IHttpResponseBuilder>;
|
|
7
|
+
private deliver;
|
|
8
|
+
}
|
|
9
|
+
export declare const AssetDeliveryRoute: typeof AssetDeliveryRouteImpl & {
|
|
10
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/event-handler-core").IHttpRoute>;
|
|
11
|
+
};
|
|
12
|
+
declare class AssetDeliveryRouteDefinitionImpl implements HttpRouteDefinition.Interface {
|
|
13
|
+
readonly name = "asset-delivery";
|
|
14
|
+
readonly method = "GET";
|
|
15
|
+
readonly path = "/files/*";
|
|
16
|
+
readonly handler: typeof AssetDeliveryRouteImpl & {
|
|
17
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/event-handler-core").IHttpRoute>;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
/** What the router matches on. Zero dependencies, so building it costs nothing. */
|
|
21
|
+
export declare const AssetDeliveryRouteDefinition: typeof AssetDeliveryRouteDefinitionImpl & {
|
|
22
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/event-handler-core").IHttpRouteDefinition>;
|
|
23
|
+
};
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { HttpRouteDefinition, HttpRouteHandler, RequestContainer } from "@webiny/event-handler-core";
|
|
2
|
+
import { TenantContext } from "@webiny/api-core/features/tenancy/TenantContext/index.js";
|
|
3
|
+
import { GetTenantByIdUseCase } from "@webiny/api-core/features/tenancy/GetTenantById/index.js";
|
|
4
|
+
import { AssetOutputStrategy, AssetProcessor, AssetRequestResolver, AssetResolver } from "../features/assetDelivery/abstractions.js";
|
|
5
|
+
const NO_CACHE = "no-cache, no-store, must-revalidate";
|
|
6
|
+
class AssetDeliveryRouteImpl {
|
|
7
|
+
constructor(container){
|
|
8
|
+
this.container = container;
|
|
9
|
+
}
|
|
10
|
+
async handle(request, response) {
|
|
11
|
+
const requestResolver = this.container.resolve(AssetRequestResolver);
|
|
12
|
+
const assetResolver = this.container.resolve(AssetResolver);
|
|
13
|
+
const tenantContext = this.container.resolve(TenantContext);
|
|
14
|
+
const getTenantById = this.container.resolve(GetTenantByIdUseCase);
|
|
15
|
+
const fakeRequest = {
|
|
16
|
+
url: request.path,
|
|
17
|
+
params: {
|
|
18
|
+
"*": request.path.replace("/files/", "")
|
|
19
|
+
},
|
|
20
|
+
query: request.query ?? {},
|
|
21
|
+
headers: request.headers ?? {}
|
|
22
|
+
};
|
|
23
|
+
const resolvedRequest = await requestResolver.resolve(fakeRequest);
|
|
24
|
+
if (!resolvedRequest) return response.status(404).header("cache-control", NO_CACHE).json({
|
|
25
|
+
error: "Unable to resolve the request!"
|
|
26
|
+
});
|
|
27
|
+
const resolvedAsset = await assetResolver.resolve(resolvedRequest);
|
|
28
|
+
if (!resolvedAsset) return response.status(404).header("cache-control", NO_CACHE).json({
|
|
29
|
+
error: "Asset not found!"
|
|
30
|
+
});
|
|
31
|
+
const tenantResult = await getTenantById.execute(resolvedAsset.getTenant());
|
|
32
|
+
if (tenantResult.isFail()) return response.status(404).header("cache-control", NO_CACHE).json({
|
|
33
|
+
error: "Asset not found!"
|
|
34
|
+
});
|
|
35
|
+
return tenantContext.withTenant(tenantResult.value, ()=>this.deliver(resolvedRequest, resolvedAsset, response));
|
|
36
|
+
}
|
|
37
|
+
async deliver(resolvedRequest, resolvedAsset, response) {
|
|
38
|
+
const assetProcessor = this.container.resolve(AssetProcessor);
|
|
39
|
+
const outputStrategy = this.container.resolve(AssetOutputStrategy);
|
|
40
|
+
resolvedAsset.setOutputStrategy(outputStrategy);
|
|
41
|
+
const processedAsset = await assetProcessor.process(resolvedRequest, resolvedAsset);
|
|
42
|
+
const assetReply = await processedAsset.output();
|
|
43
|
+
const rawHeaders = assetReply.getHeaders().getHeaders();
|
|
44
|
+
for (const [k, v] of Object.entries(rawHeaders))if (void 0 !== v) response.header(k, String(v));
|
|
45
|
+
const body = await assetReply.getBody();
|
|
46
|
+
return response.status(assetReply.getCode()).end(body ?? "");
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
const AssetDeliveryRoute = HttpRouteHandler.createImplementation({
|
|
50
|
+
implementation: AssetDeliveryRouteImpl,
|
|
51
|
+
dependencies: [
|
|
52
|
+
RequestContainer
|
|
53
|
+
]
|
|
54
|
+
});
|
|
55
|
+
class AssetDeliveryRouteDefinitionImpl {
|
|
56
|
+
constructor(){
|
|
57
|
+
this.name = "asset-delivery";
|
|
58
|
+
this.method = "GET";
|
|
59
|
+
this.path = "/files/*";
|
|
60
|
+
this.handler = AssetDeliveryRoute;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
const AssetDeliveryRouteDefinition = HttpRouteDefinition.createImplementation({
|
|
64
|
+
implementation: AssetDeliveryRouteDefinitionImpl,
|
|
65
|
+
dependencies: []
|
|
66
|
+
});
|
|
67
|
+
export { AssetDeliveryRoute, AssetDeliveryRouteDefinition };
|
|
68
|
+
|
|
69
|
+
//# sourceMappingURL=AssetDeliveryRoute.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery/AssetDeliveryRoute.js","sources":["../../src/delivery/AssetDeliveryRoute.ts"],"sourcesContent":["import {\n HttpRouteDefinition,\n HttpRouteHandler,\n RequestContainer\n} from \"@webiny/event-handler-core\";\nimport type { Container } from \"@webiny/di\";\nimport { TenantContext } from \"@webiny/api-core/features/tenancy/TenantContext/index.js\";\nimport { GetTenantByIdUseCase } from \"@webiny/api-core/features/tenancy/GetTenantById/index.js\";\nimport {\n AssetRequestResolver,\n AssetResolver,\n AssetProcessor,\n AssetOutputStrategy\n} from \"~/features/assetDelivery/abstractions.js\";\nimport type { Asset } from \"~/delivery/AssetDelivery/Asset.js\";\nimport type { AssetRequest } from \"~/delivery/AssetDelivery/AssetRequest.js\";\n\nconst NO_CACHE = \"no-cache, no-store, must-revalidate\";\n\nclass AssetDeliveryRouteImpl implements HttpRouteHandler.Interface {\n constructor(private container: Container) {}\n\n async handle(request: HttpRouteHandler.Request, response: HttpRouteHandler.Response) {\n // Resolve asset-delivery collaborators lazily (request time), not as constructor deps.\n // HttpRouter eagerly constructs every route to match paths, and AssetProcessor's\n // PrivateFilesAssetProcessor decorator pulls in GetFileUseCase -> CMS entry repositories\n // that depend on EntryFromStorageTransform, which is only registered while a CMS GraphQL\n // request is in flight. Resolving here keeps route construction cheap so non-asset\n // requests (e.g. /graphql) don't trigger that chain before it is registered.\n const requestResolver = this.container.resolve(AssetRequestResolver);\n const assetResolver = this.container.resolve(AssetResolver);\n const tenantContext = this.container.resolve(TenantContext);\n const getTenantById = this.container.resolve(GetTenantByIdUseCase);\n\n // Reconstruct a minimal request object compatible with IAssetRequestResolver\n const fakeRequest = {\n url: request.path,\n params: { \"*\": request.path.replace(\"/files/\", \"\") },\n query: request.query ?? {},\n headers: request.headers ?? {}\n };\n\n const resolvedRequest = await requestResolver.resolve(fakeRequest as any);\n if (!resolvedRequest) {\n return response\n .status(404)\n .header(\"cache-control\", NO_CACHE)\n .json({ error: \"Unable to resolve the request!\" });\n }\n\n const resolvedAsset = await assetResolver.resolve(resolvedRequest);\n if (!resolvedAsset) {\n return response\n .status(404)\n .header(\"cache-control\", NO_CACHE)\n .json({ error: \"Asset not found!\" });\n }\n\n // Delivery requests carry no tenant header, so up to this point the request runs in the\n // root tenant. Now that we know which tenant owns the asset, switch to it for the rest of\n // the request, so processors, authorizers and output strategies (e.g. the private files\n // check, which loads the tenant-scoped file entry) all run in the asset's tenant.\n const tenantResult = await getTenantById.execute(resolvedAsset.getTenant());\n if (tenantResult.isFail()) {\n return response\n .status(404)\n .header(\"cache-control\", NO_CACHE)\n .json({ error: \"Asset not found!\" });\n }\n\n return tenantContext.withTenant(tenantResult.value, () =>\n this.deliver(resolvedRequest, resolvedAsset, response)\n );\n }\n\n private async deliver(\n resolvedRequest: AssetRequest,\n resolvedAsset: Asset,\n response: HttpRouteHandler.Response\n ) {\n const assetProcessor = this.container.resolve(AssetProcessor);\n const outputStrategy = this.container.resolve(AssetOutputStrategy);\n\n resolvedAsset.setOutputStrategy(outputStrategy);\n\n const processedAsset = await assetProcessor.process(resolvedRequest, resolvedAsset);\n const assetReply = await processedAsset.output();\n\n const rawHeaders = assetReply.getHeaders().getHeaders();\n for (const [k, v] of Object.entries(rawHeaders)) {\n if (v !== undefined) {\n response.header(k, String(v));\n }\n }\n\n const body = await assetReply.getBody();\n\n // `end()` (not `send()`) so the raw body passes through untouched and the asset's OWN\n // Content-Type — set from `rawHeaders` above — is preserved. The transport translator\n // (e.g. httpResponseToApiGatewayResult) base64-encodes Buffers and sets isBase64Encoded so\n // API Gateway returns proper binary. Pre-encoding to a base64 STRING here defeated that —\n // the string passed through undecoded and browsers received base64 text, not an image.\n return response.status(assetReply.getCode()).end(body ?? \"\");\n }\n}\n\nexport const AssetDeliveryRoute = HttpRouteHandler.createImplementation({\n implementation: AssetDeliveryRouteImpl,\n dependencies: [RequestContainer]\n});\n\nclass AssetDeliveryRouteDefinitionImpl implements HttpRouteDefinition.Interface {\n readonly name = \"asset-delivery\";\n readonly method = \"GET\";\n readonly path = \"/files/*\";\n readonly handler = AssetDeliveryRoute;\n}\n\n/** What the router matches on. Zero dependencies, so building it costs nothing. */\nexport const AssetDeliveryRouteDefinition = HttpRouteDefinition.createImplementation({\n implementation: AssetDeliveryRouteDefinitionImpl,\n dependencies: []\n});\n"],"names":["NO_CACHE","AssetDeliveryRouteImpl","container","request","response","requestResolver","AssetRequestResolver","assetResolver","AssetResolver","tenantContext","TenantContext","getTenantById","GetTenantByIdUseCase","fakeRequest","resolvedRequest","resolvedAsset","tenantResult","assetProcessor","AssetProcessor","outputStrategy","AssetOutputStrategy","processedAsset","assetReply","rawHeaders","k","v","Object","undefined","String","body","AssetDeliveryRoute","HttpRouteHandler","RequestContainer","AssetDeliveryRouteDefinitionImpl","AssetDeliveryRouteDefinition","HttpRouteDefinition"],"mappings":";;;;AAiBA,MAAMA,WAAW;AAEjB,MAAMC;IACF,YAAoBC,SAAoB,CAAE;aAAtBA,SAAS,GAATA;IAAuB;IAE3C,MAAM,OAAOC,OAAiC,EAAEC,QAAmC,EAAE;QAOjF,MAAMC,kBAAkB,IAAI,CAAC,SAAS,CAAC,OAAO,CAACC;QAC/C,MAAMC,gBAAgB,IAAI,CAAC,SAAS,CAAC,OAAO,CAACC;QAC7C,MAAMC,gBAAgB,IAAI,CAAC,SAAS,CAAC,OAAO,CAACC;QAC7C,MAAMC,gBAAgB,IAAI,CAAC,SAAS,CAAC,OAAO,CAACC;QAG7C,MAAMC,cAAc;YAChB,KAAKV,QAAQ,IAAI;YACjB,QAAQ;gBAAE,KAAKA,QAAQ,IAAI,CAAC,OAAO,CAAC,WAAW;YAAI;YACnD,OAAOA,QAAQ,KAAK,IAAI,CAAC;YACzB,SAASA,QAAQ,OAAO,IAAI,CAAC;QACjC;QAEA,MAAMW,kBAAkB,MAAMT,gBAAgB,OAAO,CAACQ;QACtD,IAAI,CAACC,iBACD,OAAOV,SACF,MAAM,CAAC,KACP,MAAM,CAAC,iBAAiBJ,UACxB,IAAI,CAAC;YAAE,OAAO;QAAiC;QAGxD,MAAMe,gBAAgB,MAAMR,cAAc,OAAO,CAACO;QAClD,IAAI,CAACC,eACD,OAAOX,SACF,MAAM,CAAC,KACP,MAAM,CAAC,iBAAiBJ,UACxB,IAAI,CAAC;YAAE,OAAO;QAAmB;QAO1C,MAAMgB,eAAe,MAAML,cAAc,OAAO,CAACI,cAAc,SAAS;QACxE,IAAIC,aAAa,MAAM,IACnB,OAAOZ,SACF,MAAM,CAAC,KACP,MAAM,CAAC,iBAAiBJ,UACxB,IAAI,CAAC;YAAE,OAAO;QAAmB;QAG1C,OAAOS,cAAc,UAAU,CAACO,aAAa,KAAK,EAAE,IAChD,IAAI,CAAC,OAAO,CAACF,iBAAiBC,eAAeX;IAErD;IAEA,MAAc,QACVU,eAA6B,EAC7BC,aAAoB,EACpBX,QAAmC,EACrC;QACE,MAAMa,iBAAiB,IAAI,CAAC,SAAS,CAAC,OAAO,CAACC;QAC9C,MAAMC,iBAAiB,IAAI,CAAC,SAAS,CAAC,OAAO,CAACC;QAE9CL,cAAc,iBAAiB,CAACI;QAEhC,MAAME,iBAAiB,MAAMJ,eAAe,OAAO,CAACH,iBAAiBC;QACrE,MAAMO,aAAa,MAAMD,eAAe,MAAM;QAE9C,MAAME,aAAaD,WAAW,UAAU,GAAG,UAAU;QACrD,KAAK,MAAM,CAACE,GAAGC,EAAE,IAAIC,OAAO,OAAO,CAACH,YAChC,IAAIE,AAAME,WAANF,GACArB,SAAS,MAAM,CAACoB,GAAGI,OAAOH;QAIlC,MAAMI,OAAO,MAAMP,WAAW,OAAO;QAOrC,OAAOlB,SAAS,MAAM,CAACkB,WAAW,OAAO,IAAI,GAAG,CAACO,QAAQ;IAC7D;AACJ;AAEO,MAAMC,qBAAqBC,iBAAiB,oBAAoB,CAAC;IACpE,gBAAgB9B;IAChB,cAAc;QAAC+B;KAAiB;AACpC;AAEA,MAAMC;;aACO,IAAI,GAAG;aACP,MAAM,GAAG;aACT,IAAI,GAAG;aACP,OAAO,GAAGH;;AACvB;AAGO,MAAMI,+BAA+BC,oBAAoB,oBAAoB,CAAC;IACjF,gBAAgBF;IAChB,cAAc,EAAE;AACpB"}
|
package/delivery/index.d.ts
CHANGED
|
@@ -1,16 +1,7 @@
|
|
|
1
|
-
export * from "./AssetDelivery/AssetDeliveryConfig.js";
|
|
2
1
|
export * from "./AssetDelivery/Asset.js";
|
|
3
2
|
export * from "./AssetDelivery/AssetRequest.js";
|
|
4
|
-
export type * from "./AssetDelivery/abstractions/AssetRequestResolver.js";
|
|
5
|
-
export type * from "./AssetDelivery/abstractions/AssetResolver.js";
|
|
6
|
-
export type * from "./AssetDelivery/abstractions/AssetProcessor.js";
|
|
7
|
-
export type * from "./AssetDelivery/abstractions/AssetContentsReader.js";
|
|
8
|
-
export type * from "./AssetDelivery/abstractions/AssetOutputStrategy.js";
|
|
9
|
-
export type * from "./AssetDelivery/abstractions/AssetTransformationStrategy.js";
|
|
10
3
|
export * from "./AssetDelivery/abstractions/AssetReply.js";
|
|
11
4
|
export * from "./AssetDelivery/createAssetDeliveryPluginLoader.js";
|
|
12
|
-
export
|
|
13
|
-
export
|
|
14
|
-
export
|
|
15
|
-
export * from "./AssetDelivery/privateFiles/PublicCache.js";
|
|
16
|
-
export * from "./AssetDelivery/privateFiles/PrivateCache.js";
|
|
5
|
+
export type { IAssetRequestResolver as AssetRequestResolver, IAssetResolver as AssetResolver, IAssetProcessor as AssetProcessor, IAssetOutputStrategy as AssetOutputStrategy, IAssetTransformationStrategy as AssetTransformationStrategy, IAssetContentsReader as AssetContentsReader } from "../features/assetDelivery/abstractions.js";
|
|
6
|
+
export { PublicCache } from "../features/assetDelivery/privateFiles/PublicCache.js";
|
|
7
|
+
export { PrivateCache } from "../features/assetDelivery/privateFiles/PrivateCache.js";
|
package/delivery/index.js
CHANGED
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
export * from "./AssetDelivery/AssetDeliveryConfig.js";
|
|
2
1
|
export * from "./AssetDelivery/Asset.js";
|
|
3
2
|
export * from "./AssetDelivery/AssetRequest.js";
|
|
4
3
|
export * from "./AssetDelivery/abstractions/AssetReply.js";
|
|
5
4
|
export * from "./AssetDelivery/createAssetDeliveryPluginLoader.js";
|
|
6
|
-
export
|
|
7
|
-
export
|
|
8
|
-
export * from "./AssetDelivery/SetResponseHeaders.js";
|
|
9
|
-
export * from "./AssetDelivery/privateFiles/PublicCache.js";
|
|
10
|
-
export * from "./AssetDelivery/privateFiles/PrivateCache.js";
|
|
11
|
-
|
|
12
|
-
//# sourceMappingURL=index.js.map
|
|
5
|
+
export { PublicCache } from "../features/assetDelivery/privateFiles/PublicCache.js";
|
|
6
|
+
export { PrivateCache } from "../features/assetDelivery/privateFiles/PrivateCache.js";
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const setupAssetDelivery: () => (AssetDeliveryConfigModifierPlugin | import("@webiny/handler").ModifyFastifyPlugin)[];
|
|
1
|
+
export declare const setupAssetDelivery: () => never[];
|
|
@@ -1,114 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import { PrivateAuthenticatedAuthorizer } from "./AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js";
|
|
4
|
-
import { PrivateFileAssetRequestResolver } from "./AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.js";
|
|
5
|
-
import { AssetDeliveryConfigBuilder, AssetDeliveryConfigModifierPlugin, FilesAssetRequestResolver, createAssetDeliveryConfig } from "./index.js";
|
|
6
|
-
const noCacheHeaders = ResponseHeaders.create({
|
|
7
|
-
"content-type": "application/json",
|
|
8
|
-
"cache-control": "no-cache, no-store, must-revalidate"
|
|
9
|
-
});
|
|
10
|
-
function assertAssetRequestWasResolved(request) {
|
|
11
|
-
if (request === undefined) {
|
|
12
|
-
throw new Error("Not an AssetRequest!");
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
function assertAssetWasResolved(asset) {
|
|
16
|
-
if (asset === undefined) {
|
|
17
|
-
throw new Error("Not an Asset!");
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
export const setupAssetDelivery = () => {
|
|
21
|
-
const outputAsset = async (reply, asset) => {
|
|
22
|
-
const assetReply = await asset.output();
|
|
23
|
-
const headers = assetReply.getHeaders();
|
|
24
|
-
|
|
25
|
-
// Set default headers.
|
|
26
|
-
headers.set("x-webiny-base64-encoded", "true");
|
|
27
|
-
reply.code(assetReply.getCode());
|
|
28
|
-
reply.headers(headers.getHeaders());
|
|
29
|
-
return reply.send(await assetReply.getBody());
|
|
30
|
-
};
|
|
31
|
-
return [createModifyFastifyPlugin(app => {
|
|
32
|
-
// Config builder allows config modification via plugins.
|
|
33
|
-
const configBuilder = new AssetDeliveryConfigBuilder();
|
|
34
|
-
|
|
35
|
-
// Apply config modifications.
|
|
36
|
-
const configPlugins = app.webiny.plugins.byType(AssetDeliveryConfigModifierPlugin.type);
|
|
37
|
-
configPlugins.forEach(configPlugin => configPlugin.buildConfig(configBuilder));
|
|
38
|
-
let resolvedRequest;
|
|
39
|
-
let resolvedAsset;
|
|
40
|
-
|
|
41
|
-
// Create a `HandlerOnRequest` plugin to resolve `tenant`, and allow the system to bootstrap.
|
|
42
|
-
const handlerOnRequest = createHandlerOnRequest(async (request, reply) => {
|
|
43
|
-
const requestResolver = configBuilder.getAssetRequestResolver();
|
|
44
|
-
resolvedRequest = await requestResolver.resolve(request);
|
|
45
|
-
if (!resolvedRequest) {
|
|
46
|
-
reply.code(404).headers(noCacheHeaders.getHeaders()).send({
|
|
47
|
-
error: "Unable to resolve the request!"
|
|
48
|
-
}).hijack();
|
|
49
|
-
return false;
|
|
50
|
-
}
|
|
51
|
-
const container = app.webiny.container;
|
|
52
|
-
const assetResolver = configBuilder.getAssetResolver(container);
|
|
53
|
-
resolvedAsset = await assetResolver.resolve(resolvedRequest);
|
|
54
|
-
if (!resolvedAsset) {
|
|
55
|
-
reply.code(404).headers(noCacheHeaders.getHeaders()).send({
|
|
56
|
-
error: "Asset not found!"
|
|
57
|
-
}).hijack();
|
|
58
|
-
return false;
|
|
59
|
-
}
|
|
60
|
-
request.headers = {
|
|
61
|
-
...request.headers,
|
|
62
|
-
"x-tenant": resolvedAsset.getTenant()
|
|
63
|
-
};
|
|
64
|
-
return;
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
// Create the `Route` plugin, to handle all GET requests, and output the resolved asset.
|
|
68
|
-
const deliveryRoute = createRoute(({
|
|
69
|
-
onGet,
|
|
70
|
-
context
|
|
71
|
-
}) => {
|
|
72
|
-
onGet("*", async (_, reply) => {
|
|
73
|
-
assertAssetRequestWasResolved(resolvedRequest);
|
|
74
|
-
assertAssetWasResolved(resolvedAsset);
|
|
75
|
-
if (context.wcp.canUsePrivateFiles()) {
|
|
76
|
-
configBuilder.decorateAssetProcessor(({
|
|
77
|
-
assetProcessor,
|
|
78
|
-
context
|
|
79
|
-
}) => {
|
|
80
|
-
// Currently, we only have one authorizer.
|
|
81
|
-
const assetAuthorizer = new PrivateAuthenticatedAuthorizer(context);
|
|
82
|
-
return new PrivateFilesAssetProcessor(context, assetAuthorizer, assetProcessor);
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
const outputStrategy = configBuilder.getAssetOutputStrategy(context, resolvedRequest, resolvedAsset);
|
|
86
|
-
resolvedAsset.setOutputStrategy(outputStrategy);
|
|
87
|
-
const assetProcessor = configBuilder.getAssetProcessor(context);
|
|
88
|
-
const processedAsset = await assetProcessor.process(resolvedRequest, resolvedAsset);
|
|
89
|
-
|
|
90
|
-
// Get reply object (runs the output strategy under the hood).
|
|
91
|
-
console.log(`Output asset (size: ${processedAsset.getSize()} bytes).`);
|
|
92
|
-
return outputAsset(reply, processedAsset);
|
|
93
|
-
}, {
|
|
94
|
-
override: true
|
|
95
|
-
});
|
|
96
|
-
});
|
|
97
|
-
app.webiny.plugins.register(handlerOnRequest, deliveryRoute);
|
|
98
|
-
}),
|
|
99
|
-
// Create the default configuration
|
|
100
|
-
createAssetDeliveryConfig(config => {
|
|
101
|
-
config.decorateAssetRequestResolver(() => {
|
|
102
|
-
// This resolver works with `/files/*` requests.
|
|
103
|
-
return new FilesAssetRequestResolver();
|
|
104
|
-
});
|
|
105
|
-
config.decorateAssetRequestResolver(({
|
|
106
|
-
assetRequestResolver
|
|
107
|
-
}) => {
|
|
108
|
-
// This resolver works with `/private/*` requests.
|
|
109
|
-
return new PrivateFileAssetRequestResolver(assetRequestResolver);
|
|
110
|
-
});
|
|
111
|
-
})];
|
|
112
|
-
};
|
|
1
|
+
const setupAssetDelivery = ()=>[];
|
|
2
|
+
export { setupAssetDelivery };
|
|
113
3
|
|
|
114
4
|
//# sourceMappingURL=setupAssetDelivery.js.map
|