react-native-bspatch 3.1.1 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/android/build.gradle +18 -40
- package/android/src/main/java/vn/reactnativebspatch/BsPatchModule.kt +148 -13
- package/android/src/main/java/vn/reactnativebspatch/OtaBundleResolver.kt +21 -3
- package/cpp/CMakeLists.txt +0 -3
- package/cpp/bsdiff/bspatch_wrapper.c +3 -2
- package/ios/OtaBundleResolver.swift +22 -5
- package/ios/RNBsPatch.mm +220 -32
- package/lib/commonjs/NativeBsPatch.js.map +1 -1
- package/lib/commonjs/index.js +1 -13
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/ota/OtaProvider.js +21 -21
- package/lib/commonjs/ota/OtaProvider.js.map +1 -1
- package/lib/commonjs/ota/otaCore.js +50 -88
- package/lib/commonjs/ota/otaCore.js.map +1 -1
- package/lib/commonjs/ota/otaMetadata.js +46 -23
- package/lib/commonjs/ota/otaMetadata.js.map +1 -1
- package/lib/commonjs/ota/storage/GitHubRawStorage.js +22 -12
- package/lib/commonjs/ota/storage/GitHubRawStorage.js.map +1 -1
- package/lib/module/NativeBsPatch.js.map +1 -1
- package/lib/module/index.js +0 -8
- package/lib/module/index.js.map +1 -1
- package/lib/module/ota/OtaProvider.js +22 -22
- package/lib/module/ota/OtaProvider.js.map +1 -1
- package/lib/module/ota/otaCore.js +50 -87
- package/lib/module/ota/otaCore.js.map +1 -1
- package/lib/module/ota/otaMetadata.js +44 -21
- package/lib/module/ota/otaMetadata.js.map +1 -1
- package/lib/module/ota/storage/GitHubRawStorage.js +20 -10
- package/lib/module/ota/storage/GitHubRawStorage.js.map +1 -1
- package/lib/typescript/NativeBsPatch.d.ts +36 -1
- package/lib/typescript/NativeBsPatch.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +0 -7
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/ota/OtaProvider.d.ts.map +1 -1
- package/lib/typescript/ota/otaCore.d.ts +2 -1
- package/lib/typescript/ota/otaCore.d.ts.map +1 -1
- package/lib/typescript/ota/otaMetadata.d.ts +5 -0
- package/lib/typescript/ota/otaMetadata.d.ts.map +1 -1
- package/lib/typescript/ota/storage/GitHubRawStorage.d.ts +2 -0
- package/lib/typescript/ota/storage/GitHubRawStorage.d.ts.map +1 -1
- package/package.json +2 -3
- package/react-native-bspatch.podspec +3 -25
- package/src/NativeBsPatch.ts +44 -1
- package/src/index.ts +0 -7
- package/src/ota/OtaProvider.tsx +37 -23
- package/src/ota/otaCore.ts +55 -94
- package/src/ota/otaMetadata.ts +44 -25
- package/src/ota/storage/GitHubRawStorage.ts +17 -22
- package/tools/build_ota.sh +83 -58
- package/tools/update_registry.js +4 -2
- package/tools/upload_ota.sh +35 -19
- package/ios/RNBsPatch.h +0 -8
package/ios/RNBsPatch.mm
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
#import "RNBsPatch.h"
|
|
2
1
|
#import <Foundation/Foundation.h>
|
|
3
|
-
#import <
|
|
2
|
+
#import <QuartzCore/QuartzCore.h>
|
|
4
3
|
#import <CommonCrypto/CommonDigest.h>
|
|
5
4
|
#import <Security/Security.h>
|
|
6
5
|
#import <React/RCTLog.h>
|
|
@@ -20,14 +19,110 @@ extern "C" {
|
|
|
20
19
|
}
|
|
21
20
|
#endif
|
|
22
21
|
|
|
23
|
-
// Import codegen headers for New Architecture
|
|
24
|
-
#ifdef RCT_NEW_ARCH_ENABLED
|
|
25
22
|
#import "RNBsPatchSpec.h"
|
|
26
|
-
#endif
|
|
27
23
|
|
|
28
|
-
|
|
24
|
+
// Declared here, not in a public header: the codegen header is C++, which the
|
|
25
|
+
// pod's Swift module umbrella can't import
|
|
26
|
+
@interface RNBsPatch : NativeBsPatchSpecBase <NativeBsPatchSpec>
|
|
27
|
+
@end
|
|
28
|
+
|
|
29
|
+
/** One download: streams to a system temp file, moved to destPath only on a 2xx response. */
|
|
30
|
+
@interface RNBsPatchDownload : NSObject <NSURLSessionDownloadDelegate>
|
|
31
|
+
@property (nonatomic, copy) NSString *destPath;
|
|
32
|
+
@property (nonatomic, copy) RCTPromiseResolveBlock resolve;
|
|
33
|
+
@property (nonatomic, copy) RCTPromiseRejectBlock reject;
|
|
34
|
+
@property (nonatomic, copy) void (^onProgress)(int64_t received, int64_t total);
|
|
35
|
+
@property (nonatomic, strong) NSError *error;
|
|
36
|
+
@property (nonatomic) unsigned long long size;
|
|
37
|
+
@property (nonatomic) CFTimeInterval lastEmit;
|
|
38
|
+
@end
|
|
39
|
+
|
|
40
|
+
@implementation RNBsPatchDownload
|
|
41
|
+
|
|
42
|
+
- (void)URLSession:(NSURLSession *)session
|
|
43
|
+
downloadTask:(NSURLSessionDownloadTask *)task
|
|
44
|
+
didWriteData:(int64_t)bytesWritten
|
|
45
|
+
totalBytesWritten:(int64_t)written
|
|
46
|
+
totalBytesExpectedToWrite:(int64_t)expected
|
|
47
|
+
{
|
|
48
|
+
CFTimeInterval now = CACurrentMediaTime();
|
|
49
|
+
if (now - self.lastEmit < 0.25) return;
|
|
50
|
+
self.lastEmit = now;
|
|
51
|
+
self.onProgress(written, expected); // expected is -1 without a Content-Length
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// The temp file is deleted when this returns, so move it here
|
|
55
|
+
- (void)URLSession:(NSURLSession *)session
|
|
56
|
+
downloadTask:(NSURLSessionDownloadTask *)task
|
|
57
|
+
didFinishDownloadingToURL:(NSURL *)location
|
|
58
|
+
{
|
|
59
|
+
NSInteger status = [(NSHTTPURLResponse *)task.response statusCode];
|
|
60
|
+
if (status < 200 || status >= 300) {
|
|
61
|
+
self.error = [NSError errorWithDomain:@"RNBsPatch" code:status userInfo:@{
|
|
62
|
+
NSLocalizedDescriptionKey: [NSString stringWithFormat:@"HTTP %ld for %@", (long)status, task.originalRequest.URL]
|
|
63
|
+
}];
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
NSFileManager *fm = NSFileManager.defaultManager;
|
|
67
|
+
NSString *dir = self.destPath.stringByDeletingLastPathComponent;
|
|
68
|
+
NSError *error = nil;
|
|
69
|
+
[fm createDirectoryAtPath:dir withIntermediateDirectories:YES attributes:nil error:nil];
|
|
70
|
+
[fm removeItemAtPath:self.destPath error:nil];
|
|
71
|
+
if (![fm moveItemAtPath:location.path toPath:self.destPath error:&error]) {
|
|
72
|
+
self.error = error;
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
self.size = [[fm attributesOfItemAtPath:self.destPath error:nil] fileSize];
|
|
76
|
+
self.onProgress((int64_t)self.size, (int64_t)self.size);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error
|
|
80
|
+
{
|
|
81
|
+
NSError *e = error ?: self.error;
|
|
82
|
+
if (e) {
|
|
83
|
+
self.reject(@"ERR_DOWNLOAD", e.localizedDescription, e);
|
|
84
|
+
} else {
|
|
85
|
+
self.resolve(@(self.size));
|
|
86
|
+
}
|
|
87
|
+
[session finishTasksAndInvalidate]; // releases this delegate
|
|
88
|
+
}
|
|
89
|
+
|
|
29
90
|
@end
|
|
30
91
|
|
|
92
|
+
/** Streaming SHA-256 of a file, or nil if it can't be read. */
|
|
93
|
+
static NSData *RNBsPatchSHA256(NSString *path)
|
|
94
|
+
{
|
|
95
|
+
NSInputStream *stream = [NSInputStream inputStreamWithFileAtPath:path];
|
|
96
|
+
if (!stream) return nil;
|
|
97
|
+
[stream open];
|
|
98
|
+
CC_SHA256_CTX ctx;
|
|
99
|
+
CC_SHA256_Init(&ctx);
|
|
100
|
+
uint8_t buffer[65536];
|
|
101
|
+
NSInteger n;
|
|
102
|
+
while ((n = [stream read:buffer maxLength:sizeof(buffer)]) > 0) {
|
|
103
|
+
CC_SHA256_Update(&ctx, buffer, (CC_LONG)n);
|
|
104
|
+
}
|
|
105
|
+
[stream close];
|
|
106
|
+
if (n < 0) return nil;
|
|
107
|
+
unsigned char digest[CC_SHA256_DIGEST_LENGTH];
|
|
108
|
+
CC_SHA256_Final(digest, &ctx);
|
|
109
|
+
return [NSData dataWithBytes:digest length:sizeof(digest)];
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/** Runs block off the JS thread: resolves *result, or rejects with *error when it returns NO. */
|
|
113
|
+
static void RNBsPatchIO(RCTPromiseResolveBlock resolve, RCTPromiseRejectBlock reject, BOOL (^block)(id *result, NSError **error))
|
|
114
|
+
{
|
|
115
|
+
dispatch_async(dispatch_get_global_queue(QOS_CLASS_UTILITY, 0), ^{
|
|
116
|
+
id result = nil;
|
|
117
|
+
NSError *error = nil;
|
|
118
|
+
if (block(&result, &error)) {
|
|
119
|
+
resolve(result);
|
|
120
|
+
} else {
|
|
121
|
+
reject(@"ERR_FS", error.localizedDescription ?: @"File operation failed", error);
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
|
|
31
126
|
@implementation RNBsPatch
|
|
32
127
|
|
|
33
128
|
RCT_EXPORT_MODULE(BsPatch)
|
|
@@ -141,32 +236,11 @@ RCT_EXPORT_METHOD(verifySignature:(NSString *)filePath
|
|
|
141
236
|
return;
|
|
142
237
|
}
|
|
143
238
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
if (!stream) {
|
|
239
|
+
NSData *sha256Data = RNBsPatchSHA256(filePath);
|
|
240
|
+
if (!sha256Data) {
|
|
147
241
|
resolve(@(NO));
|
|
148
242
|
return;
|
|
149
243
|
}
|
|
150
|
-
[stream open];
|
|
151
|
-
|
|
152
|
-
CC_SHA256_CTX shaCtx;
|
|
153
|
-
CC_SHA256_Init(&shaCtx);
|
|
154
|
-
uint8_t buffer[65536];
|
|
155
|
-
while ([stream hasBytesAvailable]) {
|
|
156
|
-
NSInteger bytesRead = [stream read:buffer maxLength:sizeof(buffer)];
|
|
157
|
-
if (bytesRead > 0) {
|
|
158
|
-
CC_SHA256_Update(&shaCtx, buffer, (CC_LONG)bytesRead);
|
|
159
|
-
} else if (bytesRead < 0) {
|
|
160
|
-
[stream close];
|
|
161
|
-
resolve(@(NO));
|
|
162
|
-
return;
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
[stream close];
|
|
166
|
-
|
|
167
|
-
unsigned char sha256[CC_SHA256_DIGEST_LENGTH];
|
|
168
|
-
CC_SHA256_Final(sha256, &shaCtx);
|
|
169
|
-
NSData *sha256Data = [NSData dataWithBytes:sha256 length:CC_SHA256_DIGEST_LENGTH];
|
|
170
244
|
|
|
171
245
|
BOOL isRSA = NO;
|
|
172
246
|
NSData *rawKey = RNBsPatchKeyFromSPKI(keyData, &isRSA);
|
|
@@ -207,13 +281,127 @@ RCT_EXPORT_METHOD(getAppVersion:(RCTPromiseResolveBlock)resolve
|
|
|
207
281
|
}
|
|
208
282
|
}
|
|
209
283
|
|
|
210
|
-
//
|
|
211
|
-
|
|
284
|
+
// ─── File I/O ─────────────────────────────────────────────────────────
|
|
285
|
+
|
|
286
|
+
- (NSString *)getDocumentDir
|
|
287
|
+
{
|
|
288
|
+
return NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
- (void)downloadFile:(NSString *)url
|
|
292
|
+
destPath:(NSString *)destPath
|
|
293
|
+
timeoutMs:(double)timeoutMs
|
|
294
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
295
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
296
|
+
{
|
|
297
|
+
NSURL *nsurl = [NSURL URLWithString:url];
|
|
298
|
+
if (!nsurl) {
|
|
299
|
+
reject(@"ERR_DOWNLOAD", [NSString stringWithFormat:@"Invalid URL: %@", url], nil);
|
|
300
|
+
return;
|
|
301
|
+
}
|
|
302
|
+
RNBsPatchDownload *download = [RNBsPatchDownload new];
|
|
303
|
+
download.destPath = destPath;
|
|
304
|
+
download.resolve = resolve;
|
|
305
|
+
download.reject = reject;
|
|
306
|
+
__weak RNBsPatch *weakSelf = self;
|
|
307
|
+
download.onProgress = ^(int64_t received, int64_t total) {
|
|
308
|
+
[weakSelf emitOnDownloadProgress:@{@"path": destPath, @"received": @(received), @"total": @(total)}];
|
|
309
|
+
};
|
|
310
|
+
|
|
311
|
+
NSURLSessionConfiguration *config = NSURLSessionConfiguration.defaultSessionConfiguration;
|
|
312
|
+
config.requestCachePolicy = NSURLRequestReloadIgnoringLocalCacheData;
|
|
313
|
+
config.timeoutIntervalForRequest = timeoutMs / 1000.0; // idle timeout, same as Android readTimeout
|
|
314
|
+
NSURLSession *session = [NSURLSession sessionWithConfiguration:config delegate:download delegateQueue:nil];
|
|
315
|
+
[[session downloadTaskWithURL:nsurl] resume];
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
- (void)hashFile:(NSString *)path resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject
|
|
319
|
+
{
|
|
320
|
+
RNBsPatchIO(resolve, reject, ^BOOL(id *result, NSError **error) {
|
|
321
|
+
NSData *digest = RNBsPatchSHA256(path);
|
|
322
|
+
if (!digest) {
|
|
323
|
+
*error = [NSError errorWithDomain:@"RNBsPatch" code:1 userInfo:@{NSLocalizedDescriptionKey: [@"Cannot read " stringByAppendingString:path]}];
|
|
324
|
+
return NO;
|
|
325
|
+
}
|
|
326
|
+
const uint8_t *b = (const uint8_t *)digest.bytes;
|
|
327
|
+
NSMutableString *hex = [NSMutableString stringWithCapacity:digest.length * 2];
|
|
328
|
+
for (NSUInteger i = 0; i < digest.length; i++) [hex appendFormat:@"%02x", b[i]];
|
|
329
|
+
*result = hex;
|
|
330
|
+
return YES;
|
|
331
|
+
});
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
- (void)exists:(NSString *)path resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject
|
|
335
|
+
{
|
|
336
|
+
RNBsPatchIO(resolve, reject, ^BOOL(id *result, NSError **error) {
|
|
337
|
+
*result = @([NSFileManager.defaultManager fileExistsAtPath:path]);
|
|
338
|
+
return YES;
|
|
339
|
+
});
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
- (void)mkdir:(NSString *)path resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject
|
|
343
|
+
{
|
|
344
|
+
RNBsPatchIO(resolve, reject, ^BOOL(id *result, NSError **error) {
|
|
345
|
+
return [NSFileManager.defaultManager createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:error];
|
|
346
|
+
});
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
- (void)removePath:(NSString *)path resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject
|
|
350
|
+
{
|
|
351
|
+
RNBsPatchIO(resolve, reject, ^BOOL(id *result, NSError **error) {
|
|
352
|
+
NSFileManager *fm = NSFileManager.defaultManager;
|
|
353
|
+
return ![fm fileExistsAtPath:path] || [fm removeItemAtPath:path error:error];
|
|
354
|
+
});
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
- (void)moveFile:(NSString *)from to:(NSString *)to resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject
|
|
358
|
+
{
|
|
359
|
+
RNBsPatchIO(resolve, reject, ^BOOL(id *result, NSError **error) {
|
|
360
|
+
// rename() replaces a file atomically; a non-empty directory must go first
|
|
361
|
+
if (rename(from.fileSystemRepresentation, to.fileSystemRepresentation) == 0) return YES;
|
|
362
|
+
NSFileManager *fm = NSFileManager.defaultManager;
|
|
363
|
+
[fm removeItemAtPath:to error:nil];
|
|
364
|
+
return [fm moveItemAtPath:from toPath:to error:error];
|
|
365
|
+
});
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
- (void)copyFile:(NSString *)from to:(NSString *)to resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject
|
|
369
|
+
{
|
|
370
|
+
RNBsPatchIO(resolve, reject, ^BOOL(id *result, NSError **error) {
|
|
371
|
+
NSFileManager *fm = NSFileManager.defaultManager;
|
|
372
|
+
[fm removeItemAtPath:to error:nil];
|
|
373
|
+
return [fm copyItemAtPath:from toPath:to error:error];
|
|
374
|
+
});
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
- (void)readDir:(NSString *)path resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject
|
|
378
|
+
{
|
|
379
|
+
RNBsPatchIO(resolve, reject, ^BOOL(id *result, NSError **error) {
|
|
380
|
+
*result = [NSFileManager.defaultManager contentsOfDirectoryAtPath:path error:error];
|
|
381
|
+
return *result != nil;
|
|
382
|
+
});
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
- (void)readFile:(NSString *)path resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject
|
|
386
|
+
{
|
|
387
|
+
RNBsPatchIO(resolve, reject, ^BOOL(id *result, NSError **error) {
|
|
388
|
+
*result = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:error];
|
|
389
|
+
return *result != nil;
|
|
390
|
+
});
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
- (void)writeFile:(NSString *)path content:(NSString *)content resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject
|
|
394
|
+
{
|
|
395
|
+
RNBsPatchIO(resolve, reject, ^BOOL(id *result, NSError **error) {
|
|
396
|
+
// atomically: temp file + rename, a kill mid-write never leaves a truncated file
|
|
397
|
+
return [content writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:error];
|
|
398
|
+
});
|
|
399
|
+
}
|
|
400
|
+
|
|
212
401
|
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
|
|
213
402
|
(const facebook::react::ObjCTurboModule::InitParams &)params
|
|
214
403
|
{
|
|
215
404
|
return std::make_shared<facebook::react::NativeBsPatchSpecJSI>(params);
|
|
216
405
|
}
|
|
217
|
-
#endif
|
|
218
406
|
|
|
219
407
|
@end
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeBsPatch.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeBsPatch.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GA4FpCC,gCAAmB,CAACC,YAAY,CAAO,SAAS,CAAC","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -7,8 +7,6 @@ var _exportNames = {
|
|
|
7
7
|
applyPatch: true,
|
|
8
8
|
markAsHealthy: true,
|
|
9
9
|
reloadBundle: true,
|
|
10
|
-
initOtaAssetResolver: true,
|
|
11
|
-
resetOtaAssetResolver: true,
|
|
12
10
|
GitHubRawStorageProvider: true
|
|
13
11
|
};
|
|
14
12
|
Object.defineProperty(exports, "GitHubRawStorageProvider", {
|
|
@@ -18,10 +16,9 @@ Object.defineProperty(exports, "GitHubRawStorageProvider", {
|
|
|
18
16
|
}
|
|
19
17
|
});
|
|
20
18
|
exports.applyPatch = applyPatch;
|
|
21
|
-
exports.
|
|
19
|
+
exports.default = void 0;
|
|
22
20
|
exports.markAsHealthy = markAsHealthy;
|
|
23
21
|
exports.reloadBundle = reloadBundle;
|
|
24
|
-
exports.resetOtaAssetResolver = void 0;
|
|
25
22
|
var _NativeBsPatch = _interopRequireDefault(require("./NativeBsPatch"));
|
|
26
23
|
var _otaLogger = require("./ota/otaLogger");
|
|
27
24
|
Object.keys(_otaLogger).forEach(function (key) {
|
|
@@ -70,15 +67,6 @@ function markAsHealthy() {
|
|
|
70
67
|
function reloadBundle() {
|
|
71
68
|
return _NativeBsPatch.default.reloadBundle();
|
|
72
69
|
}
|
|
73
|
-
/**
|
|
74
|
-
* @deprecated No-ops since 3.1: OTA assets are placed next to the bundle, where React
|
|
75
|
-
* Native resolves them by default, so no source transformer is needed.
|
|
76
|
-
*/
|
|
77
|
-
const initOtaAssetResolver = async _version => {};
|
|
78
|
-
/** @deprecated No-op since 3.1, see initOtaAssetResolver. */
|
|
79
|
-
exports.initOtaAssetResolver = initOtaAssetResolver;
|
|
80
|
-
const resetOtaAssetResolver = () => {};
|
|
81
|
-
exports.resetOtaAssetResolver = resetOtaAssetResolver;
|
|
82
70
|
var _default = exports.default = {
|
|
83
71
|
applyPatch,
|
|
84
72
|
reloadBundle,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_NativeBsPatch","_interopRequireDefault","require","_otaLogger","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_OtaProvider","_types","_GitHubRawStorage","e","__esModule","default","applyPatch","oldBundlePath","newBundlePath","patchPath","NativeBsPatch","markAsHealthy","reloadBundle","
|
|
1
|
+
{"version":3,"names":["_NativeBsPatch","_interopRequireDefault","require","_otaLogger","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_OtaProvider","_types","_GitHubRawStorage","e","__esModule","default","applyPatch","oldBundlePath","newBundlePath","patchPath","NativeBsPatch","markAsHealthy","reloadBundle","_default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,cAAA,GAAAC,sBAAA,CAAAC,OAAA;AAkBA,IAAAC,UAAA,GAAAD,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAF,UAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,UAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,UAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,YAAA,GAAAd,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAW,YAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,YAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,YAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AACA,IAAAU,MAAA,GAAAf,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAY,MAAA,EAAAX,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAU,MAAA,CAAAV,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,MAAA,CAAAV,GAAA;IAAA;EAAA;AAAA;AAEA,IAAAW,iBAAA,GAAAhB,OAAA;AAA0E,SAAAD,uBAAAkB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AApBnE,SAASG,UAAUA,CACxBC,aAAqB,EACrBC,aAAqB,EACrBC,SAAiB,EACC;EAClB,OAAOC,sBAAa,CAACJ,UAAU,CAACC,aAAa,EAAEC,aAAa,EAAEC,SAAS,CAAC;AAC1E;AAEO,SAASE,aAAaA,CAAA,EAAS;EACpC,OAAOD,sBAAa,CAACC,aAAa,CAAC,CAAC;AACtC;AAEO,SAASC,YAAYA,CAAA,EAAS;EACnC,OAAOF,sBAAa,CAACE,YAAY,CAAC,CAAC;AACrC;AAAC,IAAAC,QAAA,GAAAjB,OAAA,CAAAS,OAAA,GAQc;EACbC,UAAU;EACVM,YAAY;EACZD;AACF,CAAC","ignoreList":[]}
|
|
@@ -7,7 +7,6 @@ exports.OtaProvider = OtaProvider;
|
|
|
7
7
|
exports.useOta = useOta;
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
9
|
var _reactNative = require("react-native");
|
|
10
|
-
var _reactNativeBlobUtil = _interopRequireDefault(require("react-native-blob-util"));
|
|
11
10
|
var _NativeBsPatch = _interopRequireDefault(require("../NativeBsPatch"));
|
|
12
11
|
var _otaCore = require("./otaCore");
|
|
13
12
|
var _otaLogger = require("./otaLogger");
|
|
@@ -80,10 +79,11 @@ function OtaProvider({
|
|
|
80
79
|
* OR called automatically by checkUpdates()
|
|
81
80
|
*/
|
|
82
81
|
const executeApplyUpdate = (0, _react.useCallback)(async (patchList, currentVer, targetVer) => {
|
|
83
|
-
console.log('[OtaProvider] executeApplyUpdate | targetV:', targetVer, 'currentV:', currentVer);
|
|
84
82
|
const directPatch = (0, _otaCore.selectUpdate)(patchList, currentVer, targetVer);
|
|
85
83
|
if (!directPatch) {
|
|
86
|
-
|
|
84
|
+
if (__DEV__) {
|
|
85
|
+
console.warn('[OtaProvider] No update entry found for', currentVer, '->', targetVer);
|
|
86
|
+
}
|
|
87
87
|
setStatus(_types.OtaStatus.ERROR);
|
|
88
88
|
setMessage('No upgrade path found.');
|
|
89
89
|
return;
|
|
@@ -101,7 +101,9 @@ function OtaProvider({
|
|
|
101
101
|
setProgressIfChanged(percent);
|
|
102
102
|
});
|
|
103
103
|
} catch (error) {
|
|
104
|
-
|
|
104
|
+
if (__DEV__) {
|
|
105
|
+
console.error('[OtaProvider] Update error:', error);
|
|
106
|
+
}
|
|
105
107
|
setStatus(_types.OtaStatus.ERROR);
|
|
106
108
|
setMessage(`Update failed: ${error.message}`);
|
|
107
109
|
}
|
|
@@ -168,14 +170,12 @@ function OtaProvider({
|
|
|
168
170
|
const remotePatches = await (0, _otaCore.fetchOtaManifest)(effectiveConfig);
|
|
169
171
|
const metadata = await (0, _otaMetadata.loadMetadata)(config.baseAppVersion);
|
|
170
172
|
const localV = metadata.currentVersion;
|
|
171
|
-
console.log('[OtaProvider] checkUpdates | localV:', localV, 'remotePatches count:', remotePatches.length);
|
|
172
173
|
|
|
173
|
-
//
|
|
174
|
+
// The one platform filter (storage providers return every platform).
|
|
175
|
+
// Also skips versions that crashed on boot and were rolled back natively.
|
|
174
176
|
const failed = metadata.failedVersions ?? [];
|
|
175
|
-
const platformPatches = remotePatches.filter(p => (!p.platform || p.platform === _reactNative.Platform.OS) && !failed.includes(p.toVersion));
|
|
176
|
-
console.log('[OtaProvider] platformPatches count:', platformPatches.length);
|
|
177
|
+
const platformPatches = remotePatches.filter(p => (!p.platform || p.platform.toLowerCase() === _reactNative.Platform.OS) && !failed.includes(p.toVersion));
|
|
177
178
|
const maxV = platformPatches.length > 0 ? Math.max(...platformPatches.map(p => p.toVersion)) : localV;
|
|
178
|
-
console.log('[OtaProvider] latestV determined:', maxV);
|
|
179
179
|
setPatches(platformPatches);
|
|
180
180
|
setCurrentVersion(localV);
|
|
181
181
|
setLatestVersion(maxV);
|
|
@@ -219,10 +219,10 @@ function OtaProvider({
|
|
|
219
219
|
(0, _react.useEffect)(() => {
|
|
220
220
|
const bootstrap = async () => {
|
|
221
221
|
// Clean up any pending trash directories from previous resets (non-blocking)
|
|
222
|
-
|
|
222
|
+
_NativeBsPatch.default.readDir(_otaMetadata.DOCUMENT_DIR).then(dirs => {
|
|
223
223
|
for (const dir of dirs) {
|
|
224
224
|
if (dir.startsWith('ota_trash_')) {
|
|
225
|
-
|
|
225
|
+
_NativeBsPatch.default.removePath(`${_otaMetadata.DOCUMENT_DIR}/${dir}`).catch(() => {});
|
|
226
226
|
}
|
|
227
227
|
}
|
|
228
228
|
}).catch(() => {});
|
|
@@ -282,23 +282,21 @@ function OtaProvider({
|
|
|
282
282
|
subscription.remove();
|
|
283
283
|
};
|
|
284
284
|
}, [config.updateMode, checkUpdates]);
|
|
285
|
-
const markAsHealthy = async () => {
|
|
285
|
+
const markAsHealthy = (0, _react.useCallback)(async () => {
|
|
286
286
|
const log = (0, _otaLogger.createOtaLogger)(config.onEvent);
|
|
287
287
|
log.emit(_otaLogger.OtaEvent.MARK_HEALTHY);
|
|
288
288
|
const appVersion = await _NativeBsPatch.default.getAppVersion().catch(() => config.appVersion);
|
|
289
289
|
await (0, _otaMetadata.markHealthy)(config.baseAppVersion, runningVersionRef.current, appVersion);
|
|
290
|
-
};
|
|
291
|
-
const resetToFactory = async () => {
|
|
290
|
+
}, [config]);
|
|
291
|
+
const resetToFactory = (0, _react.useCallback)(async () => {
|
|
292
292
|
const log = (0, _otaLogger.createOtaLogger)(config.onEvent);
|
|
293
293
|
try {
|
|
294
294
|
setStatus(_types.OtaStatus.APPLYING);
|
|
295
295
|
setMessage('Executing system wipe...');
|
|
296
296
|
log.emit(_otaLogger.OtaEvent.RESET_FACTORY);
|
|
297
|
-
|
|
298
|
-
if (await _reactNativeBlobUtil.default.fs.exists(otaDir)) {
|
|
297
|
+
if (await _NativeBsPatch.default.exists(_otaMetadata.OTA_DIR)) {
|
|
299
298
|
// Fast atomic rename to prevent blocking the JS thread during deletion of potentially 1000s of files
|
|
300
|
-
|
|
301
|
-
await _reactNativeBlobUtil.default.fs.mv(otaDir, trashDir);
|
|
299
|
+
await _NativeBsPatch.default.moveFile(_otaMetadata.OTA_DIR, `${_otaMetadata.DOCUMENT_DIR}/ota_trash_${Date.now()}`);
|
|
302
300
|
// Deletion is deferred to the next app bootstrap to prevent blocking the bridge before reload
|
|
303
301
|
}
|
|
304
302
|
setMessage('Reset complete. Core reload initiated...');
|
|
@@ -307,8 +305,10 @@ function OtaProvider({
|
|
|
307
305
|
setStatus(_types.OtaStatus.ERROR);
|
|
308
306
|
setMessage(`Reset failed: ${error.message}`);
|
|
309
307
|
}
|
|
310
|
-
};
|
|
311
|
-
|
|
308
|
+
}, [config]);
|
|
309
|
+
|
|
310
|
+
// Memoized: consumers re-render only when something they can see changes
|
|
311
|
+
const value = (0, _react.useMemo)(() => ({
|
|
312
312
|
status,
|
|
313
313
|
message,
|
|
314
314
|
progress,
|
|
@@ -323,7 +323,7 @@ function OtaProvider({
|
|
|
323
323
|
markAsHealthy,
|
|
324
324
|
checkUpdate: checkUpdates,
|
|
325
325
|
reloadBundle: () => _NativeBsPatch.default.reloadBundle()
|
|
326
|
-
};
|
|
326
|
+
}), [status, message, progress, currentVersion, latestVersion, pendingCount, isChecking, metrics, isUpdateReady, applyUpdate, resetToFactory, markAsHealthy, checkUpdates]);
|
|
327
327
|
|
|
328
328
|
// Logic to determine if we should block the UI
|
|
329
329
|
const isBlocking = (0, _react.useMemo)(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeBlobUtil","_interopRequireDefault","_NativeBsPatch","_otaCore","_otaLogger","_otaMetadata","_types","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","OtaContext","createContext","undefined","OtaProvider","children","config","loadingView","useLoadingView","status","setStatus","useState","OtaStatus","IDLE","message","setMessage","progress","setProgress","currentVersion","setCurrentVersion","baseAppVersion","latestVersion","setLatestVersion","pendingCount","setPendingCount","isChecking","setIsChecking","metrics","setMetrics","patches","setPatches","isInitialized","setIsInitialized","isUpdateReady","setIsUpdateReady","appState","useRef","AppState","currentState","isCheckingRef","pendingReloadRef","bootstrapDone","runningVersionRef","progressRef","isDebugUpdateEnabled","__DEV__","allowDebugUpdates","configError","useMemo","validateOtaConfig","Error","setProgressIfChanged","useCallback","nextProgress","current","getEffectiveConfig","appVersion","nativeVer","NativeBsPatch","getAppVersion","executeApplyUpdate","patchList","currentVer","targetVer","console","log","directPatch","selectUpdate","warn","ERROR","effectiveConfig","DOWNLOADING","applyOtaPatchInternal","s","msg","m","percent","error","applyUpdate","UP_TO_DATE","downloadBackgroundUpdate","localV","targetV","SUCCESS","autoReload","checkUpdates","CHECKING","createOtaLogger","onEvent","emit","OtaEvent","CHECK_UPDATE","remotePatches","fetchOtaManifest","metadata","loadMetadata","length","failed","failedVersions","platformPatches","filter","p","platform","Platform","OS","includes","toVersion","maxV","Math","max","map","UPDATE_AVAILABLE","updateMode","OtaUpdateMode","BACKGROUND_DOWNLOAD","ON_APP_START","ON_APP_FOREGROUND","useEffect","bootstrap","ReactNativeBlobUtil","fs","ls","dirs","DocumentDir","then","dir","startsWith","unlink","catch","mode","MANUAL","subscription","addEventListener","nextAppState","reloadBundle","match","remove","markAsHealthy","MARK_HEALTHY","markHealthy","resetToFactory","APPLYING","RESET_FACTORY","otaDir","exists","trashDir","Date","now","mv","value","checkUpdate","isBlocking","healthyMarkedRef","jsx","Provider","View","style","styles","loadingContainer","jsxs","loadingCard","ActivityIndicator","size","color","Text","loadingTitle","loadingText","progressText","toFixed","useOta","context","useContext","StyleSheet","create","flex","justifyContent","alignItems","backgroundColor","paddingHorizontal","width","maxWidth","borderRadius","paddingVertical","borderWidth","borderColor","marginTop","fontSize","fontWeight","lineHeight","textAlign"],"sourceRoot":"../../../src","sources":["ota/OtaProvider.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_NativeBsPatch","_interopRequireDefault","_otaCore","_otaLogger","_otaMetadata","_types","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","OtaContext","createContext","undefined","OtaProvider","children","config","loadingView","useLoadingView","status","setStatus","useState","OtaStatus","IDLE","message","setMessage","progress","setProgress","currentVersion","setCurrentVersion","baseAppVersion","latestVersion","setLatestVersion","pendingCount","setPendingCount","isChecking","setIsChecking","metrics","setMetrics","patches","setPatches","isInitialized","setIsInitialized","isUpdateReady","setIsUpdateReady","appState","useRef","AppState","currentState","isCheckingRef","pendingReloadRef","bootstrapDone","runningVersionRef","progressRef","isDebugUpdateEnabled","__DEV__","allowDebugUpdates","configError","useMemo","validateOtaConfig","Error","setProgressIfChanged","useCallback","nextProgress","current","getEffectiveConfig","appVersion","nativeVer","NativeBsPatch","getAppVersion","executeApplyUpdate","patchList","currentVer","targetVer","directPatch","selectUpdate","console","warn","ERROR","effectiveConfig","DOWNLOADING","applyOtaPatchInternal","s","msg","m","percent","error","applyUpdate","UP_TO_DATE","downloadBackgroundUpdate","localV","targetV","SUCCESS","autoReload","checkUpdates","CHECKING","createOtaLogger","onEvent","emit","OtaEvent","CHECK_UPDATE","remotePatches","fetchOtaManifest","metadata","loadMetadata","failed","failedVersions","platformPatches","filter","p","platform","toLowerCase","Platform","OS","includes","toVersion","maxV","length","Math","max","map","UPDATE_AVAILABLE","updateMode","OtaUpdateMode","BACKGROUND_DOWNLOAD","ON_APP_START","ON_APP_FOREGROUND","useEffect","bootstrap","readDir","DOCUMENT_DIR","then","dirs","dir","startsWith","removePath","catch","mode","MANUAL","subscription","addEventListener","nextAppState","reloadBundle","match","remove","markAsHealthy","log","MARK_HEALTHY","markHealthy","resetToFactory","APPLYING","RESET_FACTORY","exists","OTA_DIR","moveFile","Date","now","value","checkUpdate","isBlocking","healthyMarkedRef","jsx","Provider","View","style","styles","loadingContainer","jsxs","loadingCard","ActivityIndicator","size","color","Text","loadingTitle","loadingText","progressText","toFixed","useOta","context","useContext","StyleSheet","create","flex","justifyContent","alignItems","backgroundColor","paddingHorizontal","width","maxWidth","borderRadius","paddingVertical","borderWidth","borderColor","marginTop","fontSize","fontWeight","lineHeight","textAlign"],"sourceRoot":"../../../src","sources":["ota/OtaProvider.tsx"],"mappings":"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","ignoreList":[]}
|