├── .github └── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── config.yml │ └── feature_request.md ├── .gitignore ├── Dependencies ├── Sources │ ├── DownloadManager │ │ ├── Common │ │ │ ├── DownloadProgress.swift │ │ │ └── Utils.swift │ │ ├── Download │ │ │ ├── Download.swift │ │ │ ├── DownloadPublisher.swift │ │ │ ├── DownloadTask.swift │ │ │ └── DownloadTypes.swift │ │ ├── DownloadManager.swift │ │ └── URLSession │ │ │ ├── URLSessionCoordinator.swift │ │ │ └── URLSessionDelegate.swift │ ├── FileIndex │ │ ├── Common │ │ │ └── Bundle+Extensions.swift │ │ ├── File.swift │ │ └── FileIndex.swift │ ├── ImageDecoder │ │ └── ImageDecoder.swift │ ├── Log │ │ └── Log.swift │ ├── Model │ │ ├── FileManager+Extensions.swift │ │ ├── ImageInfo.swift │ │ ├── TransientImage+ImageDecoder.swift │ │ ├── TransientImage.swift │ │ └── URLImageError.swift │ └── PlainDatabase │ │ ├── CoreDataModel │ │ ├── CoreDataAttributeDescription.swift │ │ ├── CoreDataEntityDescription.swift │ │ ├── CoreDataFetchIndexDescription.swift │ │ ├── CoreDataModelDescription.swift │ │ └── ManagedObjectCodable.swift │ │ ├── Database.swift │ │ └── PlainDatabase.swift └── Tests │ ├── FileIndexTests │ ├── FileIndexTests.swift │ └── XCTestManifests.swift │ ├── ImageDecoderTests │ ├── ImageDecoderTests.swift │ ├── Resources │ │ ├── TestImages.json │ │ ├── gif-loop-count.gif │ │ ├── lenna.jpg │ │ ├── lenna.png │ │ ├── quicksort.gif │ │ ├── sea_animation.heics │ │ └── test.base64 │ └── XCTestManifests.swift │ └── PlainDatabaseTests │ ├── PlainDatabaseTests.swift │ └── XCTestManifests.swift ├── LICENSE ├── Package.swift ├── README.md ├── Sources ├── URLImage │ ├── Common │ │ ├── Image_Orientation+CGImagePropertyOrientation.swift │ │ ├── Synchronized.swift │ │ ├── TransientImage+SwiftUI.swift │ │ └── URLImageKey.swift │ ├── EnvironmentValues+URLImage.swift │ ├── RemoteImage │ │ ├── RemoteImage.swift │ │ └── RemoteImageLoadingState.swift │ ├── Service │ │ ├── URLImageService+Decode.swift │ │ ├── URLImageService+RemoteImage.swift │ │ └── URLImageService.swift │ ├── Store │ │ ├── Common │ │ │ └── URLImageStoreInfo.swift │ │ ├── URLImageFileStoreType+Combine.swift │ │ ├── URLImageFileStoreType.swift │ │ ├── URLImageInMemoryStoreType.swift │ │ └── URLImageStoreType.swift │ ├── URLImage.swift │ ├── URLImageOptions.swift │ └── Views │ │ ├── Auxiliary │ │ └── ActivityIndicator.swift │ │ └── RemoteImageView.swift └── URLImageStore │ ├── URLImageFileStore.swift │ └── URLImageInMemoryStore.swift └── Tests └── URLImageTests ├── URLImageTests.swift └── XCTestManifests.swift /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/.github/ISSUE_TEMPLATE/bug_report.md -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/.github/ISSUE_TEMPLATE/feature_request.md -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/.gitignore -------------------------------------------------------------------------------- /Dependencies/Sources/DownloadManager/Common/DownloadProgress.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Sources/DownloadManager/Common/DownloadProgress.swift -------------------------------------------------------------------------------- /Dependencies/Sources/DownloadManager/Common/Utils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Sources/DownloadManager/Common/Utils.swift -------------------------------------------------------------------------------- /Dependencies/Sources/DownloadManager/Download/Download.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Sources/DownloadManager/Download/Download.swift -------------------------------------------------------------------------------- /Dependencies/Sources/DownloadManager/Download/DownloadPublisher.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Sources/DownloadManager/Download/DownloadPublisher.swift -------------------------------------------------------------------------------- /Dependencies/Sources/DownloadManager/Download/DownloadTask.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Sources/DownloadManager/Download/DownloadTask.swift -------------------------------------------------------------------------------- /Dependencies/Sources/DownloadManager/Download/DownloadTypes.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Sources/DownloadManager/Download/DownloadTypes.swift -------------------------------------------------------------------------------- /Dependencies/Sources/DownloadManager/DownloadManager.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Sources/DownloadManager/DownloadManager.swift -------------------------------------------------------------------------------- /Dependencies/Sources/DownloadManager/URLSession/URLSessionCoordinator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Sources/DownloadManager/URLSession/URLSessionCoordinator.swift -------------------------------------------------------------------------------- /Dependencies/Sources/DownloadManager/URLSession/URLSessionDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Sources/DownloadManager/URLSession/URLSessionDelegate.swift -------------------------------------------------------------------------------- /Dependencies/Sources/FileIndex/Common/Bundle+Extensions.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Sources/FileIndex/Common/Bundle+Extensions.swift -------------------------------------------------------------------------------- /Dependencies/Sources/FileIndex/File.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Sources/FileIndex/File.swift -------------------------------------------------------------------------------- /Dependencies/Sources/FileIndex/FileIndex.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Sources/FileIndex/FileIndex.swift -------------------------------------------------------------------------------- /Dependencies/Sources/ImageDecoder/ImageDecoder.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Sources/ImageDecoder/ImageDecoder.swift -------------------------------------------------------------------------------- /Dependencies/Sources/Log/Log.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Sources/Log/Log.swift -------------------------------------------------------------------------------- /Dependencies/Sources/Model/FileManager+Extensions.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Sources/Model/FileManager+Extensions.swift -------------------------------------------------------------------------------- /Dependencies/Sources/Model/ImageInfo.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Sources/Model/ImageInfo.swift -------------------------------------------------------------------------------- /Dependencies/Sources/Model/TransientImage+ImageDecoder.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Sources/Model/TransientImage+ImageDecoder.swift -------------------------------------------------------------------------------- /Dependencies/Sources/Model/TransientImage.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Sources/Model/TransientImage.swift -------------------------------------------------------------------------------- /Dependencies/Sources/Model/URLImageError.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Sources/Model/URLImageError.swift -------------------------------------------------------------------------------- /Dependencies/Sources/PlainDatabase/CoreDataModel/CoreDataAttributeDescription.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Sources/PlainDatabase/CoreDataModel/CoreDataAttributeDescription.swift -------------------------------------------------------------------------------- /Dependencies/Sources/PlainDatabase/CoreDataModel/CoreDataEntityDescription.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Sources/PlainDatabase/CoreDataModel/CoreDataEntityDescription.swift -------------------------------------------------------------------------------- /Dependencies/Sources/PlainDatabase/CoreDataModel/CoreDataFetchIndexDescription.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Sources/PlainDatabase/CoreDataModel/CoreDataFetchIndexDescription.swift -------------------------------------------------------------------------------- /Dependencies/Sources/PlainDatabase/CoreDataModel/CoreDataModelDescription.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Sources/PlainDatabase/CoreDataModel/CoreDataModelDescription.swift -------------------------------------------------------------------------------- /Dependencies/Sources/PlainDatabase/CoreDataModel/ManagedObjectCodable.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Sources/PlainDatabase/CoreDataModel/ManagedObjectCodable.swift -------------------------------------------------------------------------------- /Dependencies/Sources/PlainDatabase/Database.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Sources/PlainDatabase/Database.swift -------------------------------------------------------------------------------- /Dependencies/Sources/PlainDatabase/PlainDatabase.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Sources/PlainDatabase/PlainDatabase.swift -------------------------------------------------------------------------------- /Dependencies/Tests/FileIndexTests/FileIndexTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Tests/FileIndexTests/FileIndexTests.swift -------------------------------------------------------------------------------- /Dependencies/Tests/FileIndexTests/XCTestManifests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Tests/FileIndexTests/XCTestManifests.swift -------------------------------------------------------------------------------- /Dependencies/Tests/ImageDecoderTests/ImageDecoderTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Tests/ImageDecoderTests/ImageDecoderTests.swift -------------------------------------------------------------------------------- /Dependencies/Tests/ImageDecoderTests/Resources/TestImages.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Tests/ImageDecoderTests/Resources/TestImages.json -------------------------------------------------------------------------------- /Dependencies/Tests/ImageDecoderTests/Resources/gif-loop-count.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Tests/ImageDecoderTests/Resources/gif-loop-count.gif -------------------------------------------------------------------------------- /Dependencies/Tests/ImageDecoderTests/Resources/lenna.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Tests/ImageDecoderTests/Resources/lenna.jpg -------------------------------------------------------------------------------- /Dependencies/Tests/ImageDecoderTests/Resources/lenna.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Tests/ImageDecoderTests/Resources/lenna.png -------------------------------------------------------------------------------- /Dependencies/Tests/ImageDecoderTests/Resources/quicksort.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Tests/ImageDecoderTests/Resources/quicksort.gif -------------------------------------------------------------------------------- /Dependencies/Tests/ImageDecoderTests/Resources/sea_animation.heics: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Tests/ImageDecoderTests/Resources/sea_animation.heics -------------------------------------------------------------------------------- /Dependencies/Tests/ImageDecoderTests/Resources/test.base64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Tests/ImageDecoderTests/Resources/test.base64 -------------------------------------------------------------------------------- /Dependencies/Tests/ImageDecoderTests/XCTestManifests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Tests/ImageDecoderTests/XCTestManifests.swift -------------------------------------------------------------------------------- /Dependencies/Tests/PlainDatabaseTests/PlainDatabaseTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Tests/PlainDatabaseTests/PlainDatabaseTests.swift -------------------------------------------------------------------------------- /Dependencies/Tests/PlainDatabaseTests/XCTestManifests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Dependencies/Tests/PlainDatabaseTests/XCTestManifests.swift -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/LICENSE -------------------------------------------------------------------------------- /Package.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Package.swift -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/README.md -------------------------------------------------------------------------------- /Sources/URLImage/Common/Image_Orientation+CGImagePropertyOrientation.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Sources/URLImage/Common/Image_Orientation+CGImagePropertyOrientation.swift -------------------------------------------------------------------------------- /Sources/URLImage/Common/Synchronized.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Sources/URLImage/Common/Synchronized.swift -------------------------------------------------------------------------------- /Sources/URLImage/Common/TransientImage+SwiftUI.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Sources/URLImage/Common/TransientImage+SwiftUI.swift -------------------------------------------------------------------------------- /Sources/URLImage/Common/URLImageKey.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Sources/URLImage/Common/URLImageKey.swift -------------------------------------------------------------------------------- /Sources/URLImage/EnvironmentValues+URLImage.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Sources/URLImage/EnvironmentValues+URLImage.swift -------------------------------------------------------------------------------- /Sources/URLImage/RemoteImage/RemoteImage.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Sources/URLImage/RemoteImage/RemoteImage.swift -------------------------------------------------------------------------------- /Sources/URLImage/RemoteImage/RemoteImageLoadingState.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Sources/URLImage/RemoteImage/RemoteImageLoadingState.swift -------------------------------------------------------------------------------- /Sources/URLImage/Service/URLImageService+Decode.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Sources/URLImage/Service/URLImageService+Decode.swift -------------------------------------------------------------------------------- /Sources/URLImage/Service/URLImageService+RemoteImage.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Sources/URLImage/Service/URLImageService+RemoteImage.swift -------------------------------------------------------------------------------- /Sources/URLImage/Service/URLImageService.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Sources/URLImage/Service/URLImageService.swift -------------------------------------------------------------------------------- /Sources/URLImage/Store/Common/URLImageStoreInfo.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Sources/URLImage/Store/Common/URLImageStoreInfo.swift -------------------------------------------------------------------------------- /Sources/URLImage/Store/URLImageFileStoreType+Combine.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Sources/URLImage/Store/URLImageFileStoreType+Combine.swift -------------------------------------------------------------------------------- /Sources/URLImage/Store/URLImageFileStoreType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Sources/URLImage/Store/URLImageFileStoreType.swift -------------------------------------------------------------------------------- /Sources/URLImage/Store/URLImageInMemoryStoreType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Sources/URLImage/Store/URLImageInMemoryStoreType.swift -------------------------------------------------------------------------------- /Sources/URLImage/Store/URLImageStoreType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Sources/URLImage/Store/URLImageStoreType.swift -------------------------------------------------------------------------------- /Sources/URLImage/URLImage.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Sources/URLImage/URLImage.swift -------------------------------------------------------------------------------- /Sources/URLImage/URLImageOptions.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Sources/URLImage/URLImageOptions.swift -------------------------------------------------------------------------------- /Sources/URLImage/Views/Auxiliary/ActivityIndicator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Sources/URLImage/Views/Auxiliary/ActivityIndicator.swift -------------------------------------------------------------------------------- /Sources/URLImage/Views/RemoteImageView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Sources/URLImage/Views/RemoteImageView.swift -------------------------------------------------------------------------------- /Sources/URLImageStore/URLImageFileStore.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Sources/URLImageStore/URLImageFileStore.swift -------------------------------------------------------------------------------- /Sources/URLImageStore/URLImageInMemoryStore.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Sources/URLImageStore/URLImageInMemoryStore.swift -------------------------------------------------------------------------------- /Tests/URLImageTests/URLImageTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Tests/URLImageTests/URLImageTests.swift -------------------------------------------------------------------------------- /Tests/URLImageTests/XCTestManifests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmytro-anokhin/url-image/HEAD/Tests/URLImageTests/XCTestManifests.swift --------------------------------------------------------------------------------