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.
Files changed (53) hide show
  1. package/README.md +3 -3
  2. package/android/build.gradle +18 -40
  3. package/android/src/main/java/vn/reactnativebspatch/BsPatchModule.kt +148 -13
  4. package/android/src/main/java/vn/reactnativebspatch/OtaBundleResolver.kt +21 -3
  5. package/cpp/CMakeLists.txt +0 -3
  6. package/cpp/bsdiff/bspatch_wrapper.c +3 -2
  7. package/ios/OtaBundleResolver.swift +22 -5
  8. package/ios/RNBsPatch.mm +220 -32
  9. package/lib/commonjs/NativeBsPatch.js.map +1 -1
  10. package/lib/commonjs/index.js +1 -13
  11. package/lib/commonjs/index.js.map +1 -1
  12. package/lib/commonjs/ota/OtaProvider.js +21 -21
  13. package/lib/commonjs/ota/OtaProvider.js.map +1 -1
  14. package/lib/commonjs/ota/otaCore.js +50 -88
  15. package/lib/commonjs/ota/otaCore.js.map +1 -1
  16. package/lib/commonjs/ota/otaMetadata.js +46 -23
  17. package/lib/commonjs/ota/otaMetadata.js.map +1 -1
  18. package/lib/commonjs/ota/storage/GitHubRawStorage.js +22 -12
  19. package/lib/commonjs/ota/storage/GitHubRawStorage.js.map +1 -1
  20. package/lib/module/NativeBsPatch.js.map +1 -1
  21. package/lib/module/index.js +0 -8
  22. package/lib/module/index.js.map +1 -1
  23. package/lib/module/ota/OtaProvider.js +22 -22
  24. package/lib/module/ota/OtaProvider.js.map +1 -1
  25. package/lib/module/ota/otaCore.js +50 -87
  26. package/lib/module/ota/otaCore.js.map +1 -1
  27. package/lib/module/ota/otaMetadata.js +44 -21
  28. package/lib/module/ota/otaMetadata.js.map +1 -1
  29. package/lib/module/ota/storage/GitHubRawStorage.js +20 -10
  30. package/lib/module/ota/storage/GitHubRawStorage.js.map +1 -1
  31. package/lib/typescript/NativeBsPatch.d.ts +36 -1
  32. package/lib/typescript/NativeBsPatch.d.ts.map +1 -1
  33. package/lib/typescript/index.d.ts +0 -7
  34. package/lib/typescript/index.d.ts.map +1 -1
  35. package/lib/typescript/ota/OtaProvider.d.ts.map +1 -1
  36. package/lib/typescript/ota/otaCore.d.ts +2 -1
  37. package/lib/typescript/ota/otaCore.d.ts.map +1 -1
  38. package/lib/typescript/ota/otaMetadata.d.ts +5 -0
  39. package/lib/typescript/ota/otaMetadata.d.ts.map +1 -1
  40. package/lib/typescript/ota/storage/GitHubRawStorage.d.ts +2 -0
  41. package/lib/typescript/ota/storage/GitHubRawStorage.d.ts.map +1 -1
  42. package/package.json +2 -3
  43. package/react-native-bspatch.podspec +3 -25
  44. package/src/NativeBsPatch.ts +44 -1
  45. package/src/index.ts +0 -7
  46. package/src/ota/OtaProvider.tsx +37 -23
  47. package/src/ota/otaCore.ts +55 -94
  48. package/src/ota/otaMetadata.ts +44 -25
  49. package/src/ota/storage/GitHubRawStorage.ts +17 -22
  50. package/tools/build_ota.sh +83 -58
  51. package/tools/update_registry.js +4 -2
  52. package/tools/upload_ota.sh +35 -19
  53. 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 <UIKit/UIKit.h>
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
- @interface RNBsPatch () <RCTBridgeModule>
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
- // Calculate SHA256 of file stream
145
- NSInputStream *stream = [NSInputStream inputStreamWithFileAtPath:filePath];
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
- // Don't compile this code when we build for the old architecture.
211
- #ifdef RCT_NEW_ARCH_ENABLED
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,GAiDpCC,gCAAmB,CAACC,YAAY,CAAO,SAAS,CAAC","ignoreList":[]}
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":[]}
@@ -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.initOtaAssetResolver = exports.default = void 0;
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","initOtaAssetResolver","_version","resetOtaAssetResolver","_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;AASA,IAAAW,iBAAA,GAAAhB,OAAA;AAA0E,SAAAD,uBAAAkB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AA3BnE,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;AAMA;AACA;AACA;AACA;AACO,MAAMC,oBAAoB,GAAG,MAAOC,QAAgB,IAAoB,CAAC,CAAC;AACjF;AAAAlB,OAAA,CAAAiB,oBAAA,GAAAA,oBAAA;AACO,MAAME,qBAAqB,GAAGA,CAAA,KAAY,CAAC,CAAC;AAACnB,OAAA,CAAAmB,qBAAA,GAAAA,qBAAA;AAAA,IAAAC,QAAA,GAAApB,OAAA,CAAAS,OAAA,GAGrC;EACbC,UAAU;EACVM,YAAY;EACZD;AACF,CAAC","ignoreList":[]}
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
- console.warn('[OtaProvider] No update entry found for', currentVer, '->', targetVer);
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
- console.error('[OtaProvider] Update error:', error);
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
- // Skip versions that crashed on boot and were rolled back by the native resolver
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
- _reactNativeBlobUtil.default.fs.ls(_reactNativeBlobUtil.default.fs.dirs.DocumentDir).then(dirs => {
222
+ _NativeBsPatch.default.readDir(_otaMetadata.DOCUMENT_DIR).then(dirs => {
223
223
  for (const dir of dirs) {
224
224
  if (dir.startsWith('ota_trash_')) {
225
- _reactNativeBlobUtil.default.fs.unlink(`${_reactNativeBlobUtil.default.fs.dirs.DocumentDir}/${dir}`).catch(() => {});
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
- const otaDir = `${_reactNativeBlobUtil.default.fs.dirs.DocumentDir}/ota`;
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
- const trashDir = `${_reactNativeBlobUtil.default.fs.dirs.DocumentDir}/ota_trash_${Date.now()}`;
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
- const value = {
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":[]}