react-native-bspatch 4.1.0 → 5.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 +83 -27
- package/android/build.gradle +25 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/java/vn/reactnativebspatch/BsPatchModule.kt +86 -6
- package/android/src/main/res/values/bspatch_public_key.xml +5 -0
- package/cpp/bsdiff/bspatch_wrapper.c +34 -0
- package/cpp/bsdiff/bspatch_wrapper.h +2 -0
- package/cpp/bspatch_jni.cpp +18 -0
- package/ios/RNBsPatch.mm +142 -1
- package/lib/commonjs/NativeBsPatch.js.map +1 -1
- package/lib/commonjs/index.js +9 -2
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/ota/OtaProvider.js +116 -20
- package/lib/commonjs/ota/OtaProvider.js.map +1 -1
- package/lib/commonjs/ota/eligibility.js +40 -0
- package/lib/commonjs/ota/eligibility.js.map +1 -0
- package/lib/commonjs/ota/entrySignature.js +23 -0
- package/lib/commonjs/ota/entrySignature.js.map +1 -0
- package/lib/commonjs/ota/installId.js +27 -0
- package/lib/commonjs/ota/installId.js.map +1 -0
- package/lib/commonjs/ota/otaCore.js +96 -21
- package/lib/commonjs/ota/otaCore.js.map +1 -1
- package/lib/commonjs/ota/storage/{GitHubRawStorage.js → R2Storage.js} +20 -15
- package/lib/commonjs/ota/storage/R2Storage.js.map +1 -0
- package/lib/commonjs/ota/types.js.map +1 -1
- package/lib/module/NativeBsPatch.js.map +1 -1
- package/lib/module/index.js +2 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/ota/OtaProvider.js +116 -20
- package/lib/module/ota/OtaProvider.js.map +1 -1
- package/lib/module/ota/eligibility.js +34 -0
- package/lib/module/ota/eligibility.js.map +1 -0
- package/lib/module/ota/entrySignature.js +17 -0
- package/lib/module/ota/entrySignature.js.map +1 -0
- package/lib/module/ota/installId.js +22 -0
- package/lib/module/ota/installId.js.map +1 -0
- package/lib/module/ota/otaCore.js +96 -21
- package/lib/module/ota/otaCore.js.map +1 -1
- package/lib/module/ota/storage/{GitHubRawStorage.js → R2Storage.js} +18 -14
- package/lib/module/ota/storage/R2Storage.js.map +1 -0
- package/lib/module/ota/types.js.map +1 -1
- package/lib/typescript/NativeBsPatch.d.ts +28 -2
- package/lib/typescript/NativeBsPatch.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +3 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/ota/OtaProvider.d.ts.map +1 -1
- package/lib/typescript/ota/eligibility.d.ts +19 -0
- package/lib/typescript/ota/eligibility.d.ts.map +1 -0
- package/lib/typescript/ota/entrySignature.d.ts +9 -0
- package/lib/typescript/ota/entrySignature.d.ts.map +1 -0
- package/lib/typescript/ota/installId.d.ts +3 -0
- package/lib/typescript/ota/installId.d.ts.map +1 -0
- package/lib/typescript/ota/otaCore.d.ts.map +1 -1
- package/lib/typescript/ota/storage/{GitHubRawStorage.d.ts → R2Storage.d.ts} +4 -3
- package/lib/typescript/ota/storage/R2Storage.d.ts.map +1 -0
- package/lib/typescript/ota/types.d.ts +52 -5
- package/lib/typescript/ota/types.d.ts.map +1 -1
- package/package.json +3 -2
- package/react-native-bspatch.podspec +3 -1
- package/src/NativeBsPatch.ts +34 -2
- package/src/index.ts +5 -1
- package/src/ota/OtaProvider.tsx +115 -24
- package/src/ota/eligibility.ts +48 -0
- package/src/ota/entrySignature.ts +31 -0
- package/src/ota/installId.ts +18 -0
- package/src/ota/otaCore.ts +102 -21
- package/src/ota/storage/{GitHubRawStorage.ts → R2Storage.ts} +17 -13
- package/src/ota/types.ts +49 -5
- package/tools/build_ota.sh +343 -116
- package/tools/doctor.js +130 -0
- package/tools/ensure_signing_key.js +216 -0
- package/tools/fingerprint.js +111 -0
- package/tools/ios_fingerprint.sh +9 -0
- package/tools/ota_admin.js +131 -0
- package/tools/setup_project.js +41 -15
- package/tools/update_registry.js +111 -11
- package/tools/upload_ota.sh +85 -184
- package/tools/verify_publish.js +81 -0
- package/lib/commonjs/ota/storage/GitHubRawStorage.js.map +0 -1
- package/lib/module/ota/storage/GitHubRawStorage.js.map +0 -1
- package/lib/typescript/ota/storage/GitHubRawStorage.d.ts.map +0 -1
package/ios/RNBsPatch.mm
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
#import <Foundation/Foundation.h>
|
|
2
|
+
#import <Network/Network.h>
|
|
2
3
|
#import <QuartzCore/QuartzCore.h>
|
|
3
4
|
#import <CommonCrypto/CommonDigest.h>
|
|
4
5
|
#import <Security/Security.h>
|
|
5
6
|
#import <React/RCTLog.h>
|
|
6
7
|
#import <React/RCTReloadCommand.h>
|
|
8
|
+
#include <zlib.h>
|
|
7
9
|
|
|
8
10
|
#if __has_include(<react_native_bspatch/react_native_bspatch-Swift.h>)
|
|
9
11
|
#import <react_native_bspatch/react_native_bspatch-Swift.h>
|
|
@@ -29,6 +31,8 @@ extern "C" {
|
|
|
29
31
|
/** One download: streams to a system temp file, moved to destPath only on a 2xx response. */
|
|
30
32
|
@interface RNBsPatchDownload : NSObject <NSURLSessionDownloadDelegate>
|
|
31
33
|
@property (nonatomic, copy) NSString *destPath;
|
|
34
|
+
/** Where a failed attempt leaves NSURLSession resume data for the next call */
|
|
35
|
+
@property (nonatomic, copy) NSString *resumePath;
|
|
32
36
|
@property (nonatomic, copy) RCTPromiseResolveBlock resolve;
|
|
33
37
|
@property (nonatomic, copy) RCTPromiseRejectBlock reject;
|
|
34
38
|
@property (nonatomic, copy) void (^onProgress)(int64_t received, int64_t total);
|
|
@@ -48,6 +52,10 @@ totalBytesExpectedToWrite:(int64_t)expected
|
|
|
48
52
|
CFTimeInterval now = CACurrentMediaTime();
|
|
49
53
|
if (now - self.lastEmit < 0.25) return;
|
|
50
54
|
self.lastEmit = now;
|
|
55
|
+
// written counts decoded bytes, expected the Content-Length on the wire: with a
|
|
56
|
+
// Content-Encoding they don't compare, so report the total as unknown like Android
|
|
57
|
+
NSString *encoding = [(NSHTTPURLResponse *)task.response valueForHTTPHeaderField:@"Content-Encoding"];
|
|
58
|
+
if (encoding.length > 0 && ![encoding isEqualToString:@"identity"]) expected = -1;
|
|
51
59
|
self.onProgress(written, expected); // expected is -1 without a Content-Length
|
|
52
60
|
}
|
|
53
61
|
|
|
@@ -79,6 +87,10 @@ didFinishDownloadingToURL:(NSURL *)location
|
|
|
79
87
|
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error
|
|
80
88
|
{
|
|
81
89
|
NSError *e = error ?: self.error;
|
|
90
|
+
NSData *resumeData = error.userInfo[NSURLSessionDownloadTaskResumeData];
|
|
91
|
+
if (resumeData) {
|
|
92
|
+
[resumeData writeToFile:self.resumePath atomically:YES];
|
|
93
|
+
}
|
|
82
94
|
if (e) {
|
|
83
95
|
self.reject(@"ERR_DOWNLOAD", e.localizedDescription, e);
|
|
84
96
|
} else {
|
|
@@ -109,6 +121,32 @@ static NSData *RNBsPatchSHA256(NSString *path)
|
|
|
109
121
|
return [NSData dataWithBytes:digest length:sizeof(digest)];
|
|
110
122
|
}
|
|
111
123
|
|
|
124
|
+
/** Gunzips src into dst; NO on unreadable, non-gzip or truncated input. */
|
|
125
|
+
static BOOL RNBsPatchGunzip(NSString *src, NSString *dst)
|
|
126
|
+
{
|
|
127
|
+
gzFile in = gzopen(src.fileSystemRepresentation, "rb");
|
|
128
|
+
if (!in) return NO;
|
|
129
|
+
FILE *out = fopen(dst.fileSystemRepresentation, "wb");
|
|
130
|
+
if (!out) {
|
|
131
|
+
gzclose(in);
|
|
132
|
+
return NO;
|
|
133
|
+
}
|
|
134
|
+
char buffer[65536];
|
|
135
|
+
int n;
|
|
136
|
+
BOOL ok = YES;
|
|
137
|
+
while ((n = gzread(in, buffer, sizeof(buffer))) > 0) {
|
|
138
|
+
// gzdirect: zlib copies non-gzip input through as-is
|
|
139
|
+
if (gzdirect(in) || fwrite(buffer, 1, n, out) != (size_t)n) {
|
|
140
|
+
ok = NO;
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
if (n < 0) ok = NO;
|
|
145
|
+
if (gzclose_r(in) != Z_OK) ok = NO; // Z_BUF_ERROR: input ended mid-stream
|
|
146
|
+
if (fclose(out) != 0) ok = NO;
|
|
147
|
+
return ok;
|
|
148
|
+
}
|
|
149
|
+
|
|
112
150
|
/** Runs block off the JS thread: resolves *result, or rejects with *error when it returns NO. */
|
|
113
151
|
static void RNBsPatchIO(RCTPromiseResolveBlock resolve, RCTPromiseRejectBlock reject, BOOL (^block)(id *result, NSError **error))
|
|
114
152
|
{
|
|
@@ -152,6 +190,34 @@ RCT_EXPORT_METHOD(applyPatch:(NSString *)oldPath
|
|
|
152
190
|
});
|
|
153
191
|
}
|
|
154
192
|
|
|
193
|
+
RCT_EXPORT_METHOD(decompressFile:(NSString *)srcPath
|
|
194
|
+
destPath:(NSString *)destPath
|
|
195
|
+
format:(NSString *)format
|
|
196
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
197
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
198
|
+
{
|
|
199
|
+
RNBsPatchIO(resolve, reject, ^BOOL(id *result, NSError **error) {
|
|
200
|
+
NSString *part = [destPath stringByAppendingString:@".part"];
|
|
201
|
+
BOOL ok;
|
|
202
|
+
if ([format isEqualToString:@"gzip"]) {
|
|
203
|
+
ok = RNBsPatchGunzip(srcPath, part);
|
|
204
|
+
} else if ([format isEqualToString:@"bz2"]) {
|
|
205
|
+
ok = decompress_bz2(srcPath.fileSystemRepresentation, part.fileSystemRepresentation) == 0;
|
|
206
|
+
} else {
|
|
207
|
+
*error = [NSError errorWithDomain:@"RNBsPatch" code:1 userInfo:@{NSLocalizedDescriptionKey: [@"Unknown compression format: " stringByAppendingString:format]}];
|
|
208
|
+
return NO;
|
|
209
|
+
}
|
|
210
|
+
if (ok) ok = rename(part.fileSystemRepresentation, destPath.fileSystemRepresentation) == 0;
|
|
211
|
+
if (!ok) {
|
|
212
|
+
NSFileManager *fm = NSFileManager.defaultManager;
|
|
213
|
+
[fm removeItemAtPath:part error:nil];
|
|
214
|
+
[fm removeItemAtPath:destPath error:nil];
|
|
215
|
+
*error = [NSError errorWithDomain:@"RNBsPatch" code:2 userInfo:@{NSLocalizedDescriptionKey: [NSString stringWithFormat:@"Corrupt or unreadable %@ file: %@", format, srcPath]}];
|
|
216
|
+
}
|
|
217
|
+
return ok;
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
|
|
155
221
|
RCT_EXPORT_METHOD(reloadBundle)
|
|
156
222
|
{
|
|
157
223
|
dispatch_async(dispatch_get_main_queue(), ^{
|
|
@@ -288,9 +354,69 @@ RCT_EXPORT_METHOD(getAppVersion:(RCTPromiseResolveBlock)resolve
|
|
|
288
354
|
return NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
|
|
289
355
|
}
|
|
290
356
|
|
|
357
|
+
- (NSString *)getEmbeddedPublicKeys
|
|
358
|
+
{
|
|
359
|
+
id keys = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"BsPatchPublicKey"];
|
|
360
|
+
return [keys isKindOfClass:[NSString class]] ? keys : @"";
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
- (NSString *)getAppBuild
|
|
364
|
+
{
|
|
365
|
+
id build = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"];
|
|
366
|
+
return [build isKindOfClass:[NSString class]] ? build : @"";
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
// Written into the .app by the build phase `setup` adds (tools/fingerprint.js)
|
|
370
|
+
- (NSString *)getRuntimeFingerprint
|
|
371
|
+
{
|
|
372
|
+
NSString *path = [[NSBundle mainBundle] pathForResource:@"bspatch_fingerprint" ofType:@"txt"];
|
|
373
|
+
NSString *fingerprint = path ? [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil] : nil;
|
|
374
|
+
return [fingerprint stringByTrimmingCharactersInSet:NSCharacterSet.whitespaceAndNewlineCharacterSet] ?: @"";
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
- (void)getFreeDiskSpace:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject
|
|
378
|
+
{
|
|
379
|
+
RNBsPatchIO(resolve, reject, ^BOOL(id *result, NSError **error) {
|
|
380
|
+
NSString *dir = [self getDocumentDir];
|
|
381
|
+
NSNumber *free = nil;
|
|
382
|
+
[[NSURL fileURLWithPath:dir] getResourceValue:&free forKey:NSURLVolumeAvailableCapacityForImportantUsageKey error:nil];
|
|
383
|
+
if (free.longLongValue <= 0) {
|
|
384
|
+
free = [NSFileManager.defaultManager attributesOfFileSystemForPath:dir error:error][NSFileSystemFreeSize];
|
|
385
|
+
}
|
|
386
|
+
*result = free;
|
|
387
|
+
return free != nil;
|
|
388
|
+
});
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
- (void)getNetworkType:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject
|
|
392
|
+
{
|
|
393
|
+
nw_path_monitor_t monitor = nw_path_monitor_create();
|
|
394
|
+
nw_path_monitor_set_queue(monitor, dispatch_get_global_queue(QOS_CLASS_UTILITY, 0));
|
|
395
|
+
__block BOOL done = NO;
|
|
396
|
+
// The first update is the current path; cancelling releases the handler (and the monitor)
|
|
397
|
+
nw_path_monitor_set_update_handler(monitor, ^(nw_path_t path) {
|
|
398
|
+
if (done) return;
|
|
399
|
+
done = YES;
|
|
400
|
+
NSString *type = @"unknown";
|
|
401
|
+
if (nw_path_get_status(path) != nw_path_status_satisfied) {
|
|
402
|
+
type = @"none";
|
|
403
|
+
} else if (nw_path_uses_interface_type(path, nw_interface_type_wifi)) {
|
|
404
|
+
type = @"wifi";
|
|
405
|
+
} else if (nw_path_uses_interface_type(path, nw_interface_type_cellular)) {
|
|
406
|
+
type = @"cellular";
|
|
407
|
+
} else if (nw_path_uses_interface_type(path, nw_interface_type_wired)) {
|
|
408
|
+
type = @"ethernet";
|
|
409
|
+
}
|
|
410
|
+
resolve(type);
|
|
411
|
+
nw_path_monitor_cancel(monitor);
|
|
412
|
+
});
|
|
413
|
+
nw_path_monitor_start(monitor);
|
|
414
|
+
}
|
|
415
|
+
|
|
291
416
|
- (void)downloadFile:(NSString *)url
|
|
292
417
|
destPath:(NSString *)destPath
|
|
293
418
|
timeoutMs:(double)timeoutMs
|
|
419
|
+
headersJson:(NSString *)headersJson
|
|
294
420
|
resolve:(RCTPromiseResolveBlock)resolve
|
|
295
421
|
reject:(RCTPromiseRejectBlock)reject
|
|
296
422
|
{
|
|
@@ -299,8 +425,18 @@ RCT_EXPORT_METHOD(getAppVersion:(RCTPromiseResolveBlock)resolve
|
|
|
299
425
|
reject(@"ERR_DOWNLOAD", [NSString stringWithFormat:@"Invalid URL: %@", url], nil);
|
|
300
426
|
return;
|
|
301
427
|
}
|
|
428
|
+
id headers = [NSJSONSerialization JSONObjectWithData:[headersJson dataUsingEncoding:NSUTF8StringEncoding] options:0 error:nil];
|
|
429
|
+
if (![headers isKindOfClass:[NSDictionary class]]) {
|
|
430
|
+
reject(@"ERR_DOWNLOAD", [@"headersJson must be a JSON object, got: " stringByAppendingString:headersJson], nil);
|
|
431
|
+
return;
|
|
432
|
+
}
|
|
433
|
+
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:nsurl];
|
|
434
|
+
for (NSString *name in headers) {
|
|
435
|
+
[request setValue:[headers[name] description] forHTTPHeaderField:name];
|
|
436
|
+
}
|
|
302
437
|
RNBsPatchDownload *download = [RNBsPatchDownload new];
|
|
303
438
|
download.destPath = destPath;
|
|
439
|
+
download.resumePath = [destPath stringByAppendingString:@".resumedata"];
|
|
304
440
|
download.resolve = resolve;
|
|
305
441
|
download.reject = reject;
|
|
306
442
|
__weak RNBsPatch *weakSelf = self;
|
|
@@ -312,7 +448,12 @@ RCT_EXPORT_METHOD(getAppVersion:(RCTPromiseResolveBlock)resolve
|
|
|
312
448
|
config.requestCachePolicy = NSURLRequestReloadIgnoringLocalCacheData;
|
|
313
449
|
config.timeoutIntervalForRequest = timeoutMs / 1000.0; // idle timeout, same as Android readTimeout
|
|
314
450
|
NSURLSession *session = [NSURLSession sessionWithConfiguration:config delegate:download delegateQueue:nil];
|
|
315
|
-
|
|
451
|
+
// Single use: a failed attempt writes fresh resume data, invalid data fails this
|
|
452
|
+
// attempt and the next one starts over
|
|
453
|
+
NSData *resumeData = [NSData dataWithContentsOfFile:download.resumePath];
|
|
454
|
+
[NSFileManager.defaultManager removeItemAtPath:download.resumePath error:nil];
|
|
455
|
+
NSURLSessionDownloadTask *task = resumeData ? [session downloadTaskWithResumeData:resumeData] : nil;
|
|
456
|
+
[task ?: [session downloadTaskWithRequest:request] resume];
|
|
316
457
|
}
|
|
317
458
|
|
|
318
459
|
- (void)hashFile:(NSString *)path resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject
|
|
@@ -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,GA4HpCC,gCAAmB,CAACC,YAAY,CAAO,SAAS,CAAC","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -7,12 +7,19 @@ var _exportNames = {
|
|
|
7
7
|
applyPatch: true,
|
|
8
8
|
markAsHealthy: true,
|
|
9
9
|
reloadBundle: true,
|
|
10
|
+
R2StorageProvider: true,
|
|
10
11
|
GitHubRawStorageProvider: true
|
|
11
12
|
};
|
|
12
13
|
Object.defineProperty(exports, "GitHubRawStorageProvider", {
|
|
13
14
|
enumerable: true,
|
|
14
15
|
get: function () {
|
|
15
|
-
return
|
|
16
|
+
return _R2Storage.R2StorageProvider;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports, "R2StorageProvider", {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function () {
|
|
22
|
+
return _R2Storage.R2StorageProvider;
|
|
16
23
|
}
|
|
17
24
|
});
|
|
18
25
|
exports.applyPatch = applyPatch;
|
|
@@ -56,7 +63,7 @@ Object.keys(_types).forEach(function (key) {
|
|
|
56
63
|
}
|
|
57
64
|
});
|
|
58
65
|
});
|
|
59
|
-
var
|
|
66
|
+
var _R2Storage = require("./ota/storage/R2Storage");
|
|
60
67
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
61
68
|
function applyPatch(oldBundlePath, newBundlePath, patchPath) {
|
|
62
69
|
return _NativeBsPatch.default.applyPatch(oldBundlePath, newBundlePath, patchPath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_NativeBsPatch","_interopRequireDefault","require","_otaLogger","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_OtaProvider","_types","
|
|
1
|
+
{"version":3,"names":["_NativeBsPatch","_interopRequireDefault","require","_otaLogger","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_OtaProvider","_types","_R2Storage","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,UAAA,GAAAhB,OAAA;AAIiC,SAAAD,uBAAAkB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAxB1B,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,GAYc;EACbC,UAAU;EACVM,YAAY;EACZD;AACF,CAAC","ignoreList":[]}
|
|
@@ -8,6 +8,8 @@ exports.useOta = useOta;
|
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
9
|
var _reactNative = require("react-native");
|
|
10
10
|
var _NativeBsPatch = _interopRequireDefault(require("../NativeBsPatch"));
|
|
11
|
+
var _eligibility = require("./eligibility");
|
|
12
|
+
var _installId = require("./installId");
|
|
11
13
|
var _otaCore = require("./otaCore");
|
|
12
14
|
var _otaLogger = require("./otaLogger");
|
|
13
15
|
var _otaMetadata = require("./otaMetadata");
|
|
@@ -16,6 +18,22 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
16
18
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
19
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
18
20
|
const OtaContext = /*#__PURE__*/(0, _react.createContext)(undefined);
|
|
21
|
+
const DEFAULT_MIN_CHECK_INTERVAL_MS = 10 * 60 * 1000;
|
|
22
|
+
|
|
23
|
+
/** Sync native getter, '' if it throws */
|
|
24
|
+
const nativeString = get => {
|
|
25
|
+
try {
|
|
26
|
+
return get() ?? '';
|
|
27
|
+
} catch {
|
|
28
|
+
return '';
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
/** Bytecode version the running Hermes reads (undefined off Hermes) */
|
|
33
|
+
const hermesBytecodeVersion = () => {
|
|
34
|
+
const v = globalThis.HermesInternal?.getRuntimeProperties?.()?.['Bytecode Version'];
|
|
35
|
+
return v ? Number(v) : undefined;
|
|
36
|
+
};
|
|
19
37
|
function OtaProvider({
|
|
20
38
|
children,
|
|
21
39
|
config,
|
|
@@ -33,12 +51,17 @@ function OtaProvider({
|
|
|
33
51
|
const [patches, setPatches] = (0, _react.useState)([]);
|
|
34
52
|
const [isInitialized, setIsInitialized] = (0, _react.useState)(false);
|
|
35
53
|
const [isUpdateReady, setIsUpdateReady] = (0, _react.useState)(false);
|
|
54
|
+
const [isMandatory, setIsMandatory] = (0, _react.useState)(false);
|
|
55
|
+
const [installId, setInstallId] = (0, _react.useState)('');
|
|
36
56
|
const appState = (0, _react.useRef)(_reactNative.AppState.currentState);
|
|
37
57
|
const isCheckingRef = (0, _react.useRef)(false);
|
|
38
58
|
const bootstrapDone = (0, _react.useRef)(false);
|
|
39
59
|
/** Version the native resolver loaded for this JS session */
|
|
40
60
|
const runningVersionRef = (0, _react.useRef)(config.baseAppVersion);
|
|
41
61
|
const progressRef = (0, _react.useRef)(0);
|
|
62
|
+
const lastCheckRef = (0, _react.useRef)(0);
|
|
63
|
+
const appVersionRef = (0, _react.useRef)(config.appVersion ?? '');
|
|
64
|
+
const installIdRef = (0, _react.useRef)('');
|
|
42
65
|
const isDebugUpdateEnabled = !__DEV__ || config.allowDebugUpdates === true;
|
|
43
66
|
|
|
44
67
|
// No fallbacks: a missing env value disables OTA instead of silently pointing elsewhere.
|
|
@@ -57,21 +80,53 @@ function OtaProvider({
|
|
|
57
80
|
progressRef.current = nextProgress;
|
|
58
81
|
setProgress(nextProgress);
|
|
59
82
|
}, []);
|
|
83
|
+
|
|
84
|
+
/** config.onEvent, plus a fire-and-forget POST to config.telemetry.url */
|
|
85
|
+
const onEvent = (0, _react.useCallback)(entry => {
|
|
86
|
+
config.onEvent?.(entry);
|
|
87
|
+
const telemetry = config.telemetry;
|
|
88
|
+
if (!telemetry) return;
|
|
89
|
+
fetch(telemetry.url, {
|
|
90
|
+
method: 'POST',
|
|
91
|
+
headers: {
|
|
92
|
+
'Content-Type': 'application/json',
|
|
93
|
+
...telemetry.headers
|
|
94
|
+
},
|
|
95
|
+
body: JSON.stringify({
|
|
96
|
+
...entry,
|
|
97
|
+
installId: installIdRef.current,
|
|
98
|
+
platform: _reactNative.Platform.OS,
|
|
99
|
+
appVersion: appVersionRef.current,
|
|
100
|
+
appBuild: nativeString(() => _NativeBsPatch.default.getAppBuild()),
|
|
101
|
+
runtimeFingerprint: nativeString(() => _NativeBsPatch.default.getRuntimeFingerprint()),
|
|
102
|
+
flavor: config.customServer?.channel,
|
|
103
|
+
otaVersion: runningVersionRef.current
|
|
104
|
+
})
|
|
105
|
+
}).catch(() => {});
|
|
106
|
+
}, [config]);
|
|
60
107
|
const getEffectiveConfig = (0, _react.useCallback)(async () => {
|
|
61
|
-
|
|
108
|
+
// The keys `patch` embedded in the app (primary + backup), unless the app passes its own
|
|
109
|
+
const publicKey = config.publicKey || nativeString(() => _NativeBsPatch.default.getEmbeddedPublicKeys()) || undefined;
|
|
110
|
+
const base = {
|
|
111
|
+
...config,
|
|
112
|
+
publicKey,
|
|
113
|
+
onEvent
|
|
114
|
+
};
|
|
115
|
+
if (config.appVersion) return base;
|
|
62
116
|
try {
|
|
63
117
|
const nativeVer = await _NativeBsPatch.default.getAppVersion();
|
|
64
118
|
if (!nativeVer) {
|
|
65
119
|
throw new Error('Native appVersion is empty');
|
|
66
120
|
}
|
|
121
|
+
appVersionRef.current = nativeVer;
|
|
67
122
|
return {
|
|
68
|
-
...
|
|
123
|
+
...base,
|
|
69
124
|
appVersion: nativeVer
|
|
70
125
|
};
|
|
71
126
|
} catch (e) {
|
|
72
127
|
throw new Error(`[OtaProvider] Failed to auto-detect appVersion from native: ${e.message}. ` + `Please set versionName (Android) / CFBundleShortVersionString (iOS), or provide config.appVersion explicitly.`);
|
|
73
128
|
}
|
|
74
|
-
}, [config]);
|
|
129
|
+
}, [config, onEvent]);
|
|
75
130
|
|
|
76
131
|
/**
|
|
77
132
|
* Core apply update logic — separated so it can be mapped to button clicks
|
|
@@ -132,6 +187,12 @@ function OtaProvider({
|
|
|
132
187
|
setStatus(_types.OtaStatus.UP_TO_DATE);
|
|
133
188
|
setMessage(`Update V${targetV} ready for next launch`);
|
|
134
189
|
if (m) setMetrics(m);
|
|
190
|
+
if (directPatch.mandatory) {
|
|
191
|
+
setIsMandatory(true);
|
|
192
|
+
// Only in the foreground: a reload in the background is rolled back (see the
|
|
193
|
+
// AppState effect); the effect reloads once the app comes back
|
|
194
|
+
if (_reactNative.AppState.currentState === 'active') _NativeBsPatch.default.reloadBundle();
|
|
195
|
+
}
|
|
135
196
|
}
|
|
136
197
|
}, () => {},
|
|
137
198
|
// silent: background doesn't spam progress
|
|
@@ -149,8 +210,9 @@ function OtaProvider({
|
|
|
149
210
|
/**
|
|
150
211
|
* Check for updates from the manifest.
|
|
151
212
|
* Uses a ref to guard against concurrent calls (avoids stale closure).
|
|
213
|
+
* Automatic calls are throttled by minCheckIntervalMs; { force: true } always checks.
|
|
152
214
|
*/
|
|
153
|
-
const checkUpdates = (0, _react.useCallback)(async
|
|
215
|
+
const checkUpdates = (0, _react.useCallback)(async options => {
|
|
154
216
|
if (isCheckingRef.current || configError) return;
|
|
155
217
|
if (!isDebugUpdateEnabled) {
|
|
156
218
|
setPendingCount(0);
|
|
@@ -159,6 +221,9 @@ function OtaProvider({
|
|
|
159
221
|
setMessage('OTA updates are disabled while running a debug build.');
|
|
160
222
|
return;
|
|
161
223
|
}
|
|
224
|
+
const minInterval = config.minCheckIntervalMs ?? DEFAULT_MIN_CHECK_INTERVAL_MS;
|
|
225
|
+
if (!options?.force && Date.now() - lastCheckRef.current < minInterval) return;
|
|
226
|
+
lastCheckRef.current = Date.now();
|
|
162
227
|
isCheckingRef.current = true;
|
|
163
228
|
setIsChecking(true);
|
|
164
229
|
setStatus(_types.OtaStatus.CHECKING);
|
|
@@ -170,10 +235,22 @@ function OtaProvider({
|
|
|
170
235
|
const metadata = await (0, _otaMetadata.loadMetadata)(config.baseAppVersion);
|
|
171
236
|
const localV = metadata.currentVersion;
|
|
172
237
|
|
|
173
|
-
//
|
|
174
|
-
//
|
|
175
|
-
const
|
|
176
|
-
|
|
238
|
+
// Storage providers return every platform: keep what this install may take (platform,
|
|
239
|
+
// native fingerprint, Hermes, rollout/QA lists, kill switch, versions that crashed here)
|
|
240
|
+
const context = {
|
|
241
|
+
platform: _reactNative.Platform.OS,
|
|
242
|
+
failedVersions: metadata.failedVersions ?? [],
|
|
243
|
+
runtimeFingerprint: nativeString(() => _NativeBsPatch.default.getRuntimeFingerprint()),
|
|
244
|
+
hermesBytecodeVersion: hermesBytecodeVersion(),
|
|
245
|
+
installId: await (0, _installId.getInstallId)()
|
|
246
|
+
};
|
|
247
|
+
const platformPatches = remotePatches.filter(p => {
|
|
248
|
+
const reason = (0, _eligibility.ineligibleReason)(p, context);
|
|
249
|
+
if (reason && __DEV__ && p.toVersion > localV) {
|
|
250
|
+
console.log(`[OtaProvider] Skipping V${p.toVersion} (${p.id}): ${reason}`);
|
|
251
|
+
}
|
|
252
|
+
return !reason;
|
|
253
|
+
});
|
|
177
254
|
const maxV = platformPatches.length > 0 ? Math.max(...platformPatches.map(p => p.toVersion)) : localV;
|
|
178
255
|
setPatches(platformPatches);
|
|
179
256
|
setCurrentVersion(localV);
|
|
@@ -184,7 +261,10 @@ function OtaProvider({
|
|
|
184
261
|
setStatus(_types.OtaStatus.UPDATE_AVAILABLE);
|
|
185
262
|
|
|
186
263
|
// Trigger behaviors based on mode
|
|
187
|
-
|
|
264
|
+
const network = config.network?.wifiOnly ? await _NativeBsPatch.default.getNetworkType().catch(() => 'unknown') : 'wifi';
|
|
265
|
+
if (network !== 'wifi' && network !== 'ethernet') {
|
|
266
|
+
setMessage(`Update available: V${localV} → V${maxV} (waiting for Wi-Fi)`);
|
|
267
|
+
} else if (config.updateMode === _types.OtaUpdateMode.BACKGROUND_DOWNLOAD) {
|
|
188
268
|
downloadBackgroundUpdate(platformPatches, localV, maxV);
|
|
189
269
|
} else if (config.updateMode === _types.OtaUpdateMode.ON_APP_START || config.updateMode === _types.OtaUpdateMode.ON_APP_FOREGROUND) {
|
|
190
270
|
// Auto-apply immediately!
|
|
@@ -217,6 +297,11 @@ function OtaProvider({
|
|
|
217
297
|
*/
|
|
218
298
|
(0, _react.useEffect)(() => {
|
|
219
299
|
const bootstrap = async () => {
|
|
300
|
+
(0, _installId.getInstallId)().then(id => {
|
|
301
|
+
installIdRef.current = id;
|
|
302
|
+
setInstallId(id);
|
|
303
|
+
}).catch(() => {});
|
|
304
|
+
|
|
220
305
|
// Clean up any pending trash directories from previous resets (non-blocking)
|
|
221
306
|
_NativeBsPatch.default.readDir(_otaMetadata.DOCUMENT_DIR).then(dirs => {
|
|
222
307
|
for (const dir of dirs) {
|
|
@@ -249,23 +334,32 @@ function OtaProvider({
|
|
|
249
334
|
setStatus(_types.OtaStatus.UP_TO_DATE);
|
|
250
335
|
}
|
|
251
336
|
};
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
337
|
+
|
|
338
|
+
// OTA must never take the app down: if bootstrap fails, render the app with OTA idle
|
|
339
|
+
bootstrap().catch(error => {
|
|
340
|
+
console.warn('[OtaProvider] Bootstrap failed, OTA disabled for this session:', error);
|
|
341
|
+
setMessage(`OTA disabled: ${error.message}`);
|
|
342
|
+
setStatus(_types.OtaStatus.ERROR);
|
|
343
|
+
}).finally(() => setIsInitialized(true));
|
|
257
344
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
258
345
|
}, []);
|
|
259
346
|
|
|
260
347
|
/**
|
|
261
|
-
* AppState listener for ON_APP_FOREGROUND mode
|
|
348
|
+
* AppState listener for ON_APP_FOREGROUND mode, and for a mandatory update that got
|
|
349
|
+
* ready while in the background.
|
|
262
350
|
* A downloaded update is not reloaded on background: iOS suspends JS before the
|
|
263
351
|
* first render, so the native resolver counts the launch as failed and rolls it back.
|
|
264
352
|
* metadata already points at the new version, so the next cold start applies it
|
|
265
353
|
*/
|
|
354
|
+
const isMandatoryRef = (0, _react.useRef)(false);
|
|
355
|
+
isMandatoryRef.current = isMandatory && isUpdateReady;
|
|
266
356
|
(0, _react.useEffect)(() => {
|
|
267
357
|
const subscription = _reactNative.AppState.addEventListener('change', nextAppState => {
|
|
268
358
|
if (appState.current.match(/inactive|background/) && nextAppState === 'active' && bootstrapDone.current) {
|
|
359
|
+
if (isMandatoryRef.current) {
|
|
360
|
+
_NativeBsPatch.default.reloadBundle();
|
|
361
|
+
return;
|
|
362
|
+
}
|
|
269
363
|
const mode = config.updateMode ?? _types.OtaUpdateMode.MANUAL;
|
|
270
364
|
if (mode === _types.OtaUpdateMode.ON_APP_FOREGROUND) {
|
|
271
365
|
checkUpdates();
|
|
@@ -278,13 +372,13 @@ function OtaProvider({
|
|
|
278
372
|
};
|
|
279
373
|
}, [config.updateMode, checkUpdates]);
|
|
280
374
|
const markAsHealthy = (0, _react.useCallback)(async () => {
|
|
281
|
-
const log = (0, _otaLogger.createOtaLogger)(
|
|
375
|
+
const log = (0, _otaLogger.createOtaLogger)(onEvent);
|
|
282
376
|
log.emit(_otaLogger.OtaEvent.MARK_HEALTHY);
|
|
283
377
|
const appVersion = await _NativeBsPatch.default.getAppVersion().catch(() => config.appVersion);
|
|
284
378
|
await (0, _otaMetadata.markHealthy)(config.baseAppVersion, runningVersionRef.current, appVersion);
|
|
285
|
-
}, [config]);
|
|
379
|
+
}, [config, onEvent]);
|
|
286
380
|
const resetToFactory = (0, _react.useCallback)(async () => {
|
|
287
|
-
const log = (0, _otaLogger.createOtaLogger)(
|
|
381
|
+
const log = (0, _otaLogger.createOtaLogger)(onEvent);
|
|
288
382
|
try {
|
|
289
383
|
setStatus(_types.OtaStatus.APPLYING);
|
|
290
384
|
setMessage('Executing system wipe...');
|
|
@@ -300,7 +394,7 @@ function OtaProvider({
|
|
|
300
394
|
setStatus(_types.OtaStatus.ERROR);
|
|
301
395
|
setMessage(`Reset failed: ${error.message}`);
|
|
302
396
|
}
|
|
303
|
-
}, [
|
|
397
|
+
}, [onEvent]);
|
|
304
398
|
|
|
305
399
|
// Memoized: consumers re-render only when something they can see changes
|
|
306
400
|
const value = (0, _react.useMemo)(() => ({
|
|
@@ -313,13 +407,15 @@ function OtaProvider({
|
|
|
313
407
|
isChecking,
|
|
314
408
|
metrics,
|
|
315
409
|
isUpdateReady,
|
|
410
|
+
isMandatory,
|
|
411
|
+
installId,
|
|
316
412
|
applyUpdate,
|
|
317
413
|
applyVersion,
|
|
318
414
|
resetToFactory,
|
|
319
415
|
markAsHealthy,
|
|
320
416
|
checkUpdate: checkUpdates,
|
|
321
417
|
reloadBundle: () => _NativeBsPatch.default.reloadBundle()
|
|
322
|
-
}), [status, message, progress, currentVersion, latestVersion, pendingCount, isChecking, metrics, isUpdateReady, applyUpdate, applyVersion, resetToFactory, markAsHealthy, checkUpdates]);
|
|
418
|
+
}), [status, message, progress, currentVersion, latestVersion, pendingCount, isChecking, metrics, isUpdateReady, isMandatory, installId, applyUpdate, applyVersion, resetToFactory, markAsHealthy, checkUpdates]);
|
|
323
419
|
|
|
324
420
|
// Logic to determine if we should block the UI
|
|
325
421
|
const isBlocking = (0, _react.useMemo)(() => {
|
|
@@ -1 +1 @@
|
|
|
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","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","applyVersion","targetVersion","UP_TO_DATE","applyUpdate","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","match","remove","markAsHealthy","log","MARK_HEALTHY","markHealthy","resetToFactory","APPLYING","RESET_FACTORY","exists","OTA_DIR","moveFile","Date","now","reloadBundle","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","_eligibility","_installId","_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","DEFAULT_MIN_CHECK_INTERVAL_MS","nativeString","hermesBytecodeVersion","v","globalThis","HermesInternal","getRuntimeProperties","Number","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","isMandatory","setIsMandatory","installId","setInstallId","appState","useRef","AppState","currentState","isCheckingRef","bootstrapDone","runningVersionRef","progressRef","lastCheckRef","appVersionRef","appVersion","installIdRef","isDebugUpdateEnabled","__DEV__","allowDebugUpdates","configError","useMemo","validateOtaConfig","Error","setProgressIfChanged","useCallback","nextProgress","current","onEvent","entry","telemetry","fetch","url","method","headers","body","JSON","stringify","platform","Platform","OS","appBuild","NativeBsPatch","getAppBuild","runtimeFingerprint","getRuntimeFingerprint","flavor","customServer","channel","otaVersion","catch","getEffectiveConfig","publicKey","getEmbeddedPublicKeys","base","nativeVer","getAppVersion","executeApplyUpdate","patchList","currentVer","targetVer","directPatch","selectUpdate","console","warn","ERROR","effectiveConfig","DOWNLOADING","applyOtaPatchInternal","s","msg","m","percent","error","applyVersion","targetVersion","UP_TO_DATE","applyUpdate","downloadBackgroundUpdate","localV","targetV","SUCCESS","mandatory","reloadBundle","autoReload","checkUpdates","options","minInterval","minCheckIntervalMs","force","Date","now","CHECKING","createOtaLogger","emit","OtaEvent","CHECK_UPDATE","remotePatches","fetchOtaManifest","metadata","loadMetadata","context","failedVersions","getInstallId","platformPatches","filter","p","reason","ineligibleReason","toVersion","log","id","maxV","length","Math","max","map","UPDATE_AVAILABLE","network","wifiOnly","getNetworkType","updateMode","OtaUpdateMode","BACKGROUND_DOWNLOAD","ON_APP_START","ON_APP_FOREGROUND","useEffect","bootstrap","then","readDir","DOCUMENT_DIR","dirs","dir","startsWith","removePath","mode","MANUAL","finally","isMandatoryRef","subscription","addEventListener","nextAppState","match","remove","markAsHealthy","MARK_HEALTHY","markHealthy","resetToFactory","APPLYING","RESET_FACTORY","exists","OTA_DIR","moveFile","value","checkUpdate","isBlocking","healthyMarkedRef","jsx","Provider","View","style","styles","loadingContainer","jsxs","loadingCard","ActivityIndicator","size","color","Text","loadingTitle","loadingText","progressText","toFixed","useOta","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":[]}
|