1 // Copyright 2015-present 650 Industries. All rights reserved.
2 
3 #import "EXCachedResource.h"
4 
5 @class EXManifestsManifest;
6 
7 NS_ASSUME_NONNULL_BEGIN
8 
9 @interface EXManifestResource : EXCachedResource
10 
11 - (instancetype)initWithResourceName:(NSString *)resourceName
12                         resourceType:(NSString *)resourceType
13                            remoteUrl:(NSURL *)url
14                            cachePath:(NSString * _Nullable)cachePath NS_UNAVAILABLE;
15 
16 /**
17  *  @param manifestUrl the actual http url from which to download the manifest
18  *  @param originalUrl whatever url the user originally requested
19  */
20 - (instancetype)initWithManifestUrl:(NSURL *)url
21                         originalUrl:(NSURL * _Nullable)originalUrl NS_DESIGNATED_INITIALIZER;
22 
23 /**
24  *  Manifests will not be cached implicitly as we want to wait until we've also
25  *  downloaded the whole bundle. This method tells the ManifestResource it's safe to cache
26  */
27 - (void)writeToCache;
28 
29 - (NSError *)verifyManifestSdkVersion:(EXManifestsManifest *)maybeManifest;
30 - (NSError *)formatError:(NSError *)error;
31 + (NSString * _Nonnull)formatHeader:(NSError * _Nonnull)error;
32 + (NSAttributedString * _Nonnull)addErrorStringHyperlinks:(NSString * _Nonnull)errorString;
33 @end
34 
35 NS_ASSUME_NONNULL_END
36