react-native-ota-hot-update 2.1.15 → 2.2.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 (41) hide show
  1. package/README.md +16 -2
  2. package/android/generated/java/com/otahotupdate/NativeOtaHotUpdateSpec.java +8 -0
  3. package/android/generated/jni/RNOtaHotUpdateSpec-generated.cpp +12 -0
  4. package/android/generated/jni/react/renderer/components/RNOtaHotUpdateSpec/RNOtaHotUpdateSpecJSI-generated.cpp +14 -0
  5. package/android/generated/jni/react/renderer/components/RNOtaHotUpdateSpec/RNOtaHotUpdateSpecJSI.h +18 -0
  6. package/android/src/main/java/com/otahotupdate/CrashHandler.kt +55 -0
  7. package/android/src/main/java/com/otahotupdate/OtaHotUpdate.kt +15 -23
  8. package/android/src/main/java/com/otahotupdate/OtaHotUpdateModule.kt +36 -95
  9. package/android/src/main/java/com/otahotupdate/SharedPrefs.kt +1 -0
  10. package/android/src/main/java/com/otahotupdate/Utils.kt +94 -0
  11. package/android/src/oldarch/OtaHotUpdateSpec.kt +2 -0
  12. package/ios/OtaHotUpdate.mm +76 -10
  13. package/ios/generated/RNOtaHotUpdateSpec/RNOtaHotUpdateSpec-generated.mm +14 -0
  14. package/ios/generated/RNOtaHotUpdateSpec/RNOtaHotUpdateSpec.h +6 -0
  15. package/ios/generated/RNOtaHotUpdateSpecJSI-generated.cpp +14 -0
  16. package/ios/generated/RNOtaHotUpdateSpecJSI.h +18 -0
  17. package/lib/commonjs/NativeOtaHotUpdate.js.map +1 -1
  18. package/lib/commonjs/index.js +45 -27
  19. package/lib/commonjs/index.js.map +1 -1
  20. package/lib/module/NativeOtaHotUpdate.js.map +1 -1
  21. package/lib/module/index.js +45 -27
  22. package/lib/module/index.js.map +1 -1
  23. package/lib/typescript/commonjs/src/NativeOtaHotUpdate.d.ts +2 -0
  24. package/lib/typescript/commonjs/src/NativeOtaHotUpdate.d.ts.map +1 -1
  25. package/lib/typescript/commonjs/src/index.d.ts +5 -1
  26. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  27. package/lib/typescript/commonjs/src/type.d.ts +10 -0
  28. package/lib/typescript/commonjs/src/type.d.ts.map +1 -1
  29. package/lib/typescript/module/src/NativeOtaHotUpdate.d.ts +2 -0
  30. package/lib/typescript/module/src/NativeOtaHotUpdate.d.ts.map +1 -1
  31. package/lib/typescript/module/src/index.d.ts +5 -1
  32. package/lib/typescript/module/src/index.d.ts.map +1 -1
  33. package/lib/typescript/module/src/type.d.ts +10 -0
  34. package/lib/typescript/module/src/type.d.ts.map +1 -1
  35. package/package.json +2 -13
  36. package/plugin/build/index.js +1 -1
  37. package/plugin/src/index.ts +1 -1
  38. package/react-native.config.js +1 -1
  39. package/src/NativeOtaHotUpdate.ts +2 -0
  40. package/src/index.tsx +52 -30
  41. package/src/type.ts +12 -0
@@ -1,10 +1,48 @@
1
1
  #import "OtaHotUpdate.h"
2
2
  #import <SSZipArchive/SSZipArchive.h>
3
+ static NSUncaughtExceptionHandler *previousHandler = NULL;
4
+ static BOOL isBeginning = YES;
3
5
  @implementation OtaHotUpdate
4
6
  RCT_EXPORT_MODULE()
5
7
 
8
+
9
+ - (instancetype)init {
10
+ self = [super init];
11
+ if (self) {
12
+ previousHandler = NSGetUncaughtExceptionHandler();
13
+ NSSetUncaughtExceptionHandler(&OTAExceptionHandler);
14
+ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
15
+ isBeginning = NO;
16
+ });
17
+ }
18
+ return self;
19
+ }
20
+
21
+ void OTAExceptionHandler(NSException *exception) {
22
+ NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
23
+ if (isBeginning) {
24
+ NSString *oldPath = [defaults stringForKey:@"OLD_PATH"];
25
+ if (oldPath) {
26
+ BOOL isDeleted = [OtaHotUpdate removeBundleIfNeeded:@"PATH"];
27
+ if (isDeleted) {
28
+ [defaults setObject:oldPath forKey:@"PATH"];
29
+ [defaults removeObjectForKey:@"OLD_PATH"];
30
+ } else {
31
+ [defaults removeObjectForKey:@"OLD_PATH"];
32
+ [defaults removeObjectForKey:@"PATH"];
33
+ }
34
+ } else {
35
+ [defaults removeObjectForKey:@"PATH"];
36
+ }
37
+ [defaults removeObjectForKey:@"VERSION"];
38
+ [defaults synchronize];
39
+ } else if (previousHandler) {
40
+ previousHandler(exception);
41
+ }
42
+ }
43
+
6
44
  // Check if a file path is valid
7
- - (BOOL)isFilePathValid:(NSString *)path {
45
+ + (BOOL)isFilePathValid:(NSString *)path {
8
46
  NSFileManager *fileManager = [NSFileManager defaultManager];
9
47
  return [fileManager fileExistsAtPath:path];
10
48
  }
@@ -19,7 +57,7 @@ RCT_EXPORT_MODULE()
19
57
  }
20
58
  return success;
21
59
  }
22
- - (BOOL)deleteAllContentsOfParentDirectoryOfFile:(NSString *)filePath error:(NSError **)error {
60
+ + (BOOL)deleteAllContentsOfParentDirectoryOfFile:(NSString *)filePath error:(NSError **)error {
23
61
  NSFileManager *fileManager = [NSFileManager defaultManager];
24
62
 
25
63
  // Get the parent directory of the file
@@ -66,12 +104,12 @@ RCT_EXPORT_MODULE()
66
104
  return success;
67
105
  }
68
106
 
69
- - (BOOL)removeBundleIfNeeded:(NSString *)pathKey {
107
+ + (BOOL)removeBundleIfNeeded:(NSString *)pathKey {
70
108
  NSString *keyToUse = pathKey ? pathKey : @"OLD_PATH";
71
109
  NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
72
110
  NSString *retrievedString = [defaults stringForKey:keyToUse];
73
111
  NSError *error = nil;
74
- if (retrievedString && [self isFilePathValid:retrievedString]) {
112
+ if (retrievedString && [self isFilePathValid:retrievedString]) {
75
113
  BOOL isDeleted = [self deleteAllContentsOfParentDirectoryOfFile:retrievedString error:&error];
76
114
  [defaults removeObjectForKey:keyToUse];
77
115
  [defaults synchronize];
@@ -203,8 +241,8 @@ RCT_EXPORT_MODULE()
203
241
  RCT_EXPORT_METHOD(setupBundlePath:(NSString *)path extension:(NSString *)extension
204
242
  resolve:(RCTPromiseResolveBlock)resolve
205
243
  reject:(RCTPromiseRejectBlock)reject) {
206
- if ([self isFilePathValid:path]) {
207
- [self removeBundleIfNeeded:nil];
244
+ if ([OtaHotUpdate isFilePathValid:path]) {
245
+ [OtaHotUpdate removeBundleIfNeeded:nil];
208
246
  //Unzip file
209
247
  NSString *extractedFilePath = [self unzipFileAtPath:path extension:(extension != nil) ? extension : @".jsbundle"];
210
248
  if (extractedFilePath) {
@@ -216,6 +254,7 @@ RCT_EXPORT_METHOD(setupBundlePath:(NSString *)path extension:(NSString *)extensi
216
254
  [defaults setObject:extractedFilePath forKey:@"PATH"];
217
255
  [defaults setObject:[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"] forKey:@"VERSION_NAME"];
218
256
  [defaults synchronize];
257
+ isBeginning = YES;
219
258
  resolve(@(YES));
220
259
  } else {
221
260
  resolve(@(NO));
@@ -227,8 +266,8 @@ RCT_EXPORT_METHOD(setupBundlePath:(NSString *)path extension:(NSString *)extensi
227
266
  RCT_EXPORT_METHOD(deleteBundle:(double)i
228
267
  resolve:(RCTPromiseResolveBlock)resolve
229
268
  reject:(RCTPromiseRejectBlock)reject) {
230
- BOOL isDeleted = [self removeBundleIfNeeded:@"PATH"];
231
- BOOL isDeletedOld = [self removeBundleIfNeeded:nil];
269
+ BOOL isDeleted = [OtaHotUpdate removeBundleIfNeeded:@"PATH"];
270
+ BOOL isDeletedOld = [OtaHotUpdate removeBundleIfNeeded:nil];
232
271
  if (isDeleted && isDeletedOld) {
233
272
  resolve(@(YES));
234
273
  } else {
@@ -241,8 +280,8 @@ RCT_EXPORT_METHOD(rollbackToPreviousBundle:(double)i
241
280
  reject:(RCTPromiseRejectBlock)reject) {
242
281
  NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
243
282
  NSString *oldPath = [defaults stringForKey:@"OLD_PATH"];
244
- if (oldPath && [self isFilePathValid:oldPath]) {
245
- BOOL isDeleted = [self removeBundleIfNeeded:@"PATH"];
283
+ if (oldPath && [OtaHotUpdate isFilePathValid:oldPath]) {
284
+ BOOL isDeleted = [OtaHotUpdate removeBundleIfNeeded:@"PATH"];
246
285
  if (isDeleted) {
247
286
  [defaults setObject:oldPath forKey:@"PATH"];
248
287
  [defaults removeObjectForKey:@"OLD_PATH"];
@@ -282,6 +321,33 @@ RCT_EXPORT_METHOD(setCurrentVersion:(NSString *)version
282
321
  }
283
322
  }
284
323
 
324
+ RCT_EXPORT_METHOD(setUpdateMetadata:(NSString *)metadataString
325
+ resolve:(RCTPromiseResolveBlock)resolve
326
+ reject:(RCTPromiseRejectBlock)reject) {
327
+ if (metadataString) {
328
+ NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
329
+ [defaults setObject:metadataString forKey:@"METADATA"];
330
+ [defaults synchronize];
331
+ resolve(@(YES));
332
+ } else {
333
+ resolve(@(NO));
334
+ }
335
+ }
336
+
337
+ RCT_EXPORT_METHOD(getUpdateMetadata:(double)a
338
+ resolve:(RCTPromiseResolveBlock)resolve
339
+ reject:(RCTPromiseRejectBlock)reject)
340
+ {
341
+ NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
342
+ NSString *metadata = [defaults stringForKey:@"METADATA"];
343
+
344
+ if (metadata) {
345
+ resolve(metadata);
346
+ } else {
347
+ resolve(nil);
348
+ }
349
+ }
350
+
285
351
  RCT_EXPORT_METHOD(setExactBundlePath:(NSString *)path
286
352
  resolve:(RCTPromiseResolveBlock)resolve
287
353
  reject:(RCTPromiseRejectBlock)reject) {
@@ -46,10 +46,18 @@ namespace facebook::react {
46
46
  return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, PromiseKind, "getCurrentVersion", @selector(getCurrentVersion:resolve:reject:), args, count);
47
47
  }
48
48
 
49
+ static facebook::jsi::Value __hostFunction_NativeOtaHotUpdateSpecJSI_getUpdateMetadata(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
50
+ return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, PromiseKind, "getUpdateMetadata", @selector(getUpdateMetadata:resolve:reject:), args, count);
51
+ }
52
+
49
53
  static facebook::jsi::Value __hostFunction_NativeOtaHotUpdateSpecJSI_setCurrentVersion(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
50
54
  return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, PromiseKind, "setCurrentVersion", @selector(setCurrentVersion:resolve:reject:), args, count);
51
55
  }
52
56
 
57
+ static facebook::jsi::Value __hostFunction_NativeOtaHotUpdateSpecJSI_setUpdateMetadata(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
58
+ return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, PromiseKind, "setUpdateMetadata", @selector(setUpdateMetadata:resolve:reject:), args, count);
59
+ }
60
+
53
61
  static facebook::jsi::Value __hostFunction_NativeOtaHotUpdateSpecJSI_rollbackToPreviousBundle(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
54
62
  return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, PromiseKind, "rollbackToPreviousBundle", @selector(rollbackToPreviousBundle:resolve:reject:), args, count);
55
63
  }
@@ -72,9 +80,15 @@ namespace facebook::react {
72
80
  methodMap_["getCurrentVersion"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateSpecJSI_getCurrentVersion};
73
81
 
74
82
 
83
+ methodMap_["getUpdateMetadata"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateSpecJSI_getUpdateMetadata};
84
+
85
+
75
86
  methodMap_["setCurrentVersion"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateSpecJSI_setCurrentVersion};
76
87
 
77
88
 
89
+ methodMap_["setUpdateMetadata"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateSpecJSI_setUpdateMetadata};
90
+
91
+
78
92
  methodMap_["rollbackToPreviousBundle"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateSpecJSI_rollbackToPreviousBundle};
79
93
 
80
94
  }
@@ -47,9 +47,15 @@
47
47
  - (void)getCurrentVersion:(double)a
48
48
  resolve:(RCTPromiseResolveBlock)resolve
49
49
  reject:(RCTPromiseRejectBlock)reject;
50
+ - (void)getUpdateMetadata:(double)a
51
+ resolve:(RCTPromiseResolveBlock)resolve
52
+ reject:(RCTPromiseRejectBlock)reject;
50
53
  - (void)setCurrentVersion:(NSString *)version
51
54
  resolve:(RCTPromiseResolveBlock)resolve
52
55
  reject:(RCTPromiseRejectBlock)reject;
56
+ - (void)setUpdateMetadata:(NSString *)metadata
57
+ resolve:(RCTPromiseResolveBlock)resolve
58
+ reject:(RCTPromiseRejectBlock)reject;
53
59
  - (void)rollbackToPreviousBundle:(double)a
54
60
  resolve:(RCTPromiseResolveBlock)resolve
55
61
  reject:(RCTPromiseRejectBlock)reject;
@@ -42,12 +42,24 @@ static jsi::Value __hostFunction_NativeOtaHotUpdateCxxSpecJSI_getCurrentVersion(
42
42
  count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber()
43
43
  );
44
44
  }
45
+ static jsi::Value __hostFunction_NativeOtaHotUpdateCxxSpecJSI_getUpdateMetadata(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
46
+ return static_cast<NativeOtaHotUpdateCxxSpecJSI *>(&turboModule)->getUpdateMetadata(
47
+ rt,
48
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber()
49
+ );
50
+ }
45
51
  static jsi::Value __hostFunction_NativeOtaHotUpdateCxxSpecJSI_setCurrentVersion(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
46
52
  return static_cast<NativeOtaHotUpdateCxxSpecJSI *>(&turboModule)->setCurrentVersion(
47
53
  rt,
48
54
  count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
49
55
  );
50
56
  }
57
+ static jsi::Value __hostFunction_NativeOtaHotUpdateCxxSpecJSI_setUpdateMetadata(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
58
+ return static_cast<NativeOtaHotUpdateCxxSpecJSI *>(&turboModule)->setUpdateMetadata(
59
+ rt,
60
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
61
+ );
62
+ }
51
63
  static jsi::Value __hostFunction_NativeOtaHotUpdateCxxSpecJSI_rollbackToPreviousBundle(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
52
64
  return static_cast<NativeOtaHotUpdateCxxSpecJSI *>(&turboModule)->rollbackToPreviousBundle(
53
65
  rt,
@@ -62,7 +74,9 @@ NativeOtaHotUpdateCxxSpecJSI::NativeOtaHotUpdateCxxSpecJSI(std::shared_ptr<CallI
62
74
  methodMap_["deleteBundle"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateCxxSpecJSI_deleteBundle};
63
75
  methodMap_["restart"] = MethodMetadata {0, __hostFunction_NativeOtaHotUpdateCxxSpecJSI_restart};
64
76
  methodMap_["getCurrentVersion"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateCxxSpecJSI_getCurrentVersion};
77
+ methodMap_["getUpdateMetadata"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateCxxSpecJSI_getUpdateMetadata};
65
78
  methodMap_["setCurrentVersion"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateCxxSpecJSI_setCurrentVersion};
79
+ methodMap_["setUpdateMetadata"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateCxxSpecJSI_setUpdateMetadata};
66
80
  methodMap_["rollbackToPreviousBundle"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateCxxSpecJSI_rollbackToPreviousBundle};
67
81
  }
68
82
 
@@ -25,7 +25,9 @@ public:
25
25
  virtual jsi::Value deleteBundle(jsi::Runtime &rt, double i) = 0;
26
26
  virtual void restart(jsi::Runtime &rt) = 0;
27
27
  virtual jsi::Value getCurrentVersion(jsi::Runtime &rt, double a) = 0;
28
+ virtual jsi::Value getUpdateMetadata(jsi::Runtime &rt, double a) = 0;
28
29
  virtual jsi::Value setCurrentVersion(jsi::Runtime &rt, jsi::String version) = 0;
30
+ virtual jsi::Value setUpdateMetadata(jsi::Runtime &rt, jsi::String metadata) = 0;
29
31
  virtual jsi::Value rollbackToPreviousBundle(jsi::Runtime &rt, double a) = 0;
30
32
 
31
33
  };
@@ -93,6 +95,14 @@ private:
93
95
  return bridging::callFromJs<jsi::Value>(
94
96
  rt, &T::getCurrentVersion, jsInvoker_, instance_, std::move(a));
95
97
  }
98
+ jsi::Value getUpdateMetadata(jsi::Runtime &rt, double a) override {
99
+ static_assert(
100
+ bridging::getParameterCount(&T::getUpdateMetadata) == 2,
101
+ "Expected getUpdateMetadata(...) to have 2 parameters");
102
+
103
+ return bridging::callFromJs<jsi::Value>(
104
+ rt, &T::getUpdateMetadata, jsInvoker_, instance_, std::move(a));
105
+ }
96
106
  jsi::Value setCurrentVersion(jsi::Runtime &rt, jsi::String version) override {
97
107
  static_assert(
98
108
  bridging::getParameterCount(&T::setCurrentVersion) == 2,
@@ -101,6 +111,14 @@ private:
101
111
  return bridging::callFromJs<jsi::Value>(
102
112
  rt, &T::setCurrentVersion, jsInvoker_, instance_, std::move(version));
103
113
  }
114
+ jsi::Value setUpdateMetadata(jsi::Runtime &rt, jsi::String metadata) override {
115
+ static_assert(
116
+ bridging::getParameterCount(&T::setUpdateMetadata) == 2,
117
+ "Expected setUpdateMetadata(...) to have 2 parameters");
118
+
119
+ return bridging::callFromJs<jsi::Value>(
120
+ rt, &T::setUpdateMetadata, jsInvoker_, instance_, std::move(metadata));
121
+ }
104
122
  jsi::Value rollbackToPreviousBundle(jsi::Runtime &rt, double a) override {
105
123
  static_assert(
106
124
  bridging::getParameterCount(&T::rollbackToPreviousBundle) == 2,
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeOtaHotUpdate.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAYpCC,gCAAmB,CAACC,YAAY,CAAO,cAAc,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeOtaHotUpdate.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAcpCC,gCAAmB,CAACC,YAAY,CAAO,cAAc,CAAC","ignoreList":[]}
@@ -22,7 +22,8 @@ const RNhotupdate = OtaHotUpdateModule ? OtaHotUpdateModule : new Proxy({}, {
22
22
  });
23
23
  const downloadBundleFile = async (downloadManager, uri, headers, callback) => {
24
24
  const res = await downloadManager.config({
25
- fileCache: _reactNative.Platform.OS === 'android'
25
+ fileCache: _reactNative.Platform.OS === 'android',
26
+ path: !!downloadManager?.fs?.dirs?.LibraryDir && _reactNative.Platform.OS === 'ios' ? `${downloadManager.fs.dirs.LibraryDir}/${new Date().valueOf()}_hotupdate.zip` : undefined
26
27
  }).fetch('GET', uri, {
27
28
  ...headers
28
29
  }).progress((received, total) => {
@@ -44,6 +45,15 @@ function deleteBundlePath() {
44
45
  function getCurrentVersion() {
45
46
  return RNhotupdate.getCurrentVersion(0);
46
47
  }
48
+ function getUpdateMetadata() {
49
+ return RNhotupdate.getUpdateMetadata(0).then(metadataString => {
50
+ try {
51
+ return metadataString ? JSON.parse(metadataString) : null;
52
+ } catch (error) {
53
+ return Promise.reject(new Error('Error parsing metadata'));
54
+ }
55
+ });
56
+ }
47
57
  function rollbackToPreviousBundle() {
48
58
  return RNhotupdate.rollbackToPreviousBundle(0);
49
59
  }
@@ -54,6 +64,14 @@ async function getVersionAsNumber() {
54
64
  function setCurrentVersion(version) {
55
65
  return RNhotupdate.setCurrentVersion(version + '');
56
66
  }
67
+ function setUpdateMetadata(metadata) {
68
+ try {
69
+ const metadataString = JSON.stringify(metadata);
70
+ return RNhotupdate.setUpdateMetadata(metadataString);
71
+ } catch (error) {
72
+ return Promise.reject(new Error('Failed to stringify metadata'));
73
+ }
74
+ }
57
75
  async function resetApp() {
58
76
  RNhotupdate.restart();
59
77
  }
@@ -75,36 +93,34 @@ const installFail = (option, e) => {
75
93
  };
76
94
  async function downloadBundleUri(downloadManager, uri, version, option) {
77
95
  if (!uri) {
78
- installFail(option, 'Please give a valid URL!');
79
- return;
80
- }
81
- if (!version) {
82
- installFail(option, 'Please give a valid version!');
83
- return;
96
+ return installFail(option, 'Please give a valid URL!');
84
97
  }
85
- const currentVersion = await getVersionAsNumber();
86
- if (version <= currentVersion) {
87
- installFail(option, 'Please give a bigger version than the current version, the current version now has setted by: ' + currentVersion);
88
- return;
98
+ if (version) {
99
+ const currentVersion = await getVersionAsNumber();
100
+ if (version <= currentVersion) {
101
+ return installFail(option, 'Please give a bigger version than the current version, the current version now has setted by: ' + currentVersion);
102
+ }
89
103
  }
90
104
  try {
91
105
  const path = await downloadBundleFile(downloadManager, uri, option?.headers, option?.progress);
92
- if (path) {
93
- setupBundlePath(path, option?.extensionBundle).then(success => {
94
- if (success) {
95
- setCurrentVersion(version);
96
- option?.updateSuccess?.();
97
- if (option?.restartAfterInstall) {
98
- setTimeout(() => {
99
- resetApp();
100
- }, 300);
101
- }
102
- } else {
103
- installFail(option);
104
- }
105
- });
106
- } else {
107
- installFail(option);
106
+ if (!path) {
107
+ return installFail(option);
108
+ }
109
+ const success = await setupBundlePath(path, option?.extensionBundle);
110
+ if (!success) {
111
+ return installFail(option);
112
+ }
113
+ if (version) {
114
+ setCurrentVersion(version);
115
+ }
116
+ if (option?.metadata) {
117
+ setUpdateMetadata(option.metadata);
118
+ }
119
+ option?.updateSuccess?.();
120
+ if (option?.restartAfterInstall) {
121
+ setTimeout(() => {
122
+ resetApp();
123
+ }, option?.restartDelay || 300);
108
124
  }
109
125
  } catch (e) {
110
126
  installFail(option, e);
@@ -166,6 +182,8 @@ var _default = exports.default = {
166
182
  resetApp,
167
183
  getCurrentVersion: getVersionAsNumber,
168
184
  setCurrentVersion,
185
+ getUpdateMetadata,
186
+ setUpdateMetadata,
169
187
  rollbackToPreviousBundle,
170
188
  git: {
171
189
  checkForGitUpdate,
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_index","_interopRequireDefault","e","__esModule","default","LINKING_ERROR","Platform","select","ios","isTurboModuleEnabled","global","__turboModuleProxy","OtaHotUpdateModule","NativeModules","OtaHotUpdate","RNhotupdate","Proxy","get","Error","downloadBundleFile","downloadManager","uri","headers","callback","res","config","fileCache","OS","fetch","progress","received","total","path","setupBundlePath","extension","setupExactBundlePath","setExactBundlePath","deleteBundlePath","deleteBundle","getCurrentVersion","rollbackToPreviousBundle","getVersionAsNumber","rawVersion","setCurrentVersion","version","resetApp","restart","removeBundle","restartAfterRemoved","then","data","setTimeout","installFail","option","updateFail","JSON","stringify","console","error","downloadBundleUri","currentVersion","extensionBundle","success","updateSuccess","restartAfterInstall","checkForGitUpdate","options","url","bundlePath","branch","Promise","all","git","getConfig","getBranchName","pull","pullUpdate","onProgress","folderName","onPullSuccess","onPullFailed","msg","clone","cloneRepo","bundle","onCloneSuccess","onCloneFailed","toString","onFinishProgress","_default","exports","removeUpdate","removeGitUpdate","folder"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_index","_interopRequireDefault","e","__esModule","default","LINKING_ERROR","Platform","select","ios","isTurboModuleEnabled","global","__turboModuleProxy","OtaHotUpdateModule","NativeModules","OtaHotUpdate","RNhotupdate","Proxy","get","Error","downloadBundleFile","downloadManager","uri","headers","callback","res","config","fileCache","OS","path","fs","dirs","LibraryDir","Date","valueOf","undefined","fetch","progress","received","total","setupBundlePath","extension","setupExactBundlePath","setExactBundlePath","deleteBundlePath","deleteBundle","getCurrentVersion","getUpdateMetadata","then","metadataString","JSON","parse","error","Promise","reject","rollbackToPreviousBundle","getVersionAsNumber","rawVersion","setCurrentVersion","version","setUpdateMetadata","metadata","stringify","resetApp","restart","removeBundle","restartAfterRemoved","data","setTimeout","installFail","option","updateFail","console","downloadBundleUri","currentVersion","success","extensionBundle","updateSuccess","restartAfterInstall","restartDelay","checkForGitUpdate","options","url","bundlePath","branch","all","git","getConfig","getBranchName","pull","pullUpdate","onProgress","folderName","onPullSuccess","onPullFailed","msg","clone","cloneRepo","bundle","onCloneSuccess","onCloneFailed","toString","onFinishProgress","_default","exports","removeUpdate","removeGitUpdate","folder"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeOtaHotUpdate.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AAYlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,cAAc,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeOtaHotUpdate.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AAclD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,cAAc,CAAC","ignoreList":[]}
@@ -17,7 +17,8 @@ const RNhotupdate = OtaHotUpdateModule ? OtaHotUpdateModule : new Proxy({}, {
17
17
  });
18
18
  const downloadBundleFile = async (downloadManager, uri, headers, callback) => {
19
19
  const res = await downloadManager.config({
20
- fileCache: Platform.OS === 'android'
20
+ fileCache: Platform.OS === 'android',
21
+ path: !!downloadManager?.fs?.dirs?.LibraryDir && Platform.OS === 'ios' ? `${downloadManager.fs.dirs.LibraryDir}/${new Date().valueOf()}_hotupdate.zip` : undefined
21
22
  }).fetch('GET', uri, {
22
23
  ...headers
23
24
  }).progress((received, total) => {
@@ -39,6 +40,15 @@ function deleteBundlePath() {
39
40
  function getCurrentVersion() {
40
41
  return RNhotupdate.getCurrentVersion(0);
41
42
  }
43
+ function getUpdateMetadata() {
44
+ return RNhotupdate.getUpdateMetadata(0).then(metadataString => {
45
+ try {
46
+ return metadataString ? JSON.parse(metadataString) : null;
47
+ } catch (error) {
48
+ return Promise.reject(new Error('Error parsing metadata'));
49
+ }
50
+ });
51
+ }
42
52
  function rollbackToPreviousBundle() {
43
53
  return RNhotupdate.rollbackToPreviousBundle(0);
44
54
  }
@@ -49,6 +59,14 @@ async function getVersionAsNumber() {
49
59
  function setCurrentVersion(version) {
50
60
  return RNhotupdate.setCurrentVersion(version + '');
51
61
  }
62
+ function setUpdateMetadata(metadata) {
63
+ try {
64
+ const metadataString = JSON.stringify(metadata);
65
+ return RNhotupdate.setUpdateMetadata(metadataString);
66
+ } catch (error) {
67
+ return Promise.reject(new Error('Failed to stringify metadata'));
68
+ }
69
+ }
52
70
  async function resetApp() {
53
71
  RNhotupdate.restart();
54
72
  }
@@ -70,36 +88,34 @@ const installFail = (option, e) => {
70
88
  };
71
89
  async function downloadBundleUri(downloadManager, uri, version, option) {
72
90
  if (!uri) {
73
- installFail(option, 'Please give a valid URL!');
74
- return;
75
- }
76
- if (!version) {
77
- installFail(option, 'Please give a valid version!');
78
- return;
91
+ return installFail(option, 'Please give a valid URL!');
79
92
  }
80
- const currentVersion = await getVersionAsNumber();
81
- if (version <= currentVersion) {
82
- installFail(option, 'Please give a bigger version than the current version, the current version now has setted by: ' + currentVersion);
83
- return;
93
+ if (version) {
94
+ const currentVersion = await getVersionAsNumber();
95
+ if (version <= currentVersion) {
96
+ return installFail(option, 'Please give a bigger version than the current version, the current version now has setted by: ' + currentVersion);
97
+ }
84
98
  }
85
99
  try {
86
100
  const path = await downloadBundleFile(downloadManager, uri, option?.headers, option?.progress);
87
- if (path) {
88
- setupBundlePath(path, option?.extensionBundle).then(success => {
89
- if (success) {
90
- setCurrentVersion(version);
91
- option?.updateSuccess?.();
92
- if (option?.restartAfterInstall) {
93
- setTimeout(() => {
94
- resetApp();
95
- }, 300);
96
- }
97
- } else {
98
- installFail(option);
99
- }
100
- });
101
- } else {
102
- installFail(option);
101
+ if (!path) {
102
+ return installFail(option);
103
+ }
104
+ const success = await setupBundlePath(path, option?.extensionBundle);
105
+ if (!success) {
106
+ return installFail(option);
107
+ }
108
+ if (version) {
109
+ setCurrentVersion(version);
110
+ }
111
+ if (option?.metadata) {
112
+ setUpdateMetadata(option.metadata);
113
+ }
114
+ option?.updateSuccess?.();
115
+ if (option?.restartAfterInstall) {
116
+ setTimeout(() => {
117
+ resetApp();
118
+ }, option?.restartDelay || 300);
103
119
  }
104
120
  } catch (e) {
105
121
  installFail(option, e);
@@ -161,6 +177,8 @@ export default {
161
177
  resetApp,
162
178
  getCurrentVersion: getVersionAsNumber,
163
179
  setCurrentVersion,
180
+ getUpdateMetadata,
181
+ setUpdateMetadata,
164
182
  rollbackToPreviousBundle,
165
183
  git: {
166
184
  checkForGitUpdate,
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","Platform","git","LINKING_ERROR","select","ios","default","isTurboModuleEnabled","global","__turboModuleProxy","OtaHotUpdateModule","require","OtaHotUpdate","RNhotupdate","Proxy","get","Error","downloadBundleFile","downloadManager","uri","headers","callback","res","config","fileCache","OS","fetch","progress","received","total","path","setupBundlePath","extension","setupExactBundlePath","setExactBundlePath","deleteBundlePath","deleteBundle","getCurrentVersion","rollbackToPreviousBundle","getVersionAsNumber","rawVersion","setCurrentVersion","version","resetApp","restart","removeBundle","restartAfterRemoved","then","data","setTimeout","installFail","option","e","updateFail","JSON","stringify","console","error","downloadBundleUri","currentVersion","extensionBundle","success","updateSuccess","restartAfterInstall","checkForGitUpdate","options","url","bundlePath","branch","Promise","all","getConfig","getBranchName","pull","pullUpdate","onProgress","folderName","onPullSuccess","onPullFailed","msg","clone","cloneRepo","bundle","onCloneSuccess","onCloneFailed","toString","onFinishProgress","removeUpdate","removeGitUpdate","folder"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["NativeModules","Platform","git","LINKING_ERROR","select","ios","default","isTurboModuleEnabled","global","__turboModuleProxy","OtaHotUpdateModule","require","OtaHotUpdate","RNhotupdate","Proxy","get","Error","downloadBundleFile","downloadManager","uri","headers","callback","res","config","fileCache","OS","path","fs","dirs","LibraryDir","Date","valueOf","undefined","fetch","progress","received","total","setupBundlePath","extension","setupExactBundlePath","setExactBundlePath","deleteBundlePath","deleteBundle","getCurrentVersion","getUpdateMetadata","then","metadataString","JSON","parse","error","Promise","reject","rollbackToPreviousBundle","getVersionAsNumber","rawVersion","setCurrentVersion","version","setUpdateMetadata","metadata","stringify","resetApp","restart","removeBundle","restartAfterRemoved","data","setTimeout","installFail","option","e","updateFail","console","downloadBundleUri","currentVersion","success","extensionBundle","updateSuccess","restartAfterInstall","restartDelay","checkForGitUpdate","options","url","bundlePath","branch","all","getConfig","getBranchName","pull","pullUpdate","onProgress","folderName","onPullSuccess","onPullFailed","msg","clone","cloneRepo","bundle","onCloneSuccess","onCloneFailed","toString","onFinishProgress","removeUpdate","removeGitUpdate","folder"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
@@ -5,7 +5,9 @@ export interface Spec extends TurboModule {
5
5
  deleteBundle(i: number): Promise<boolean>;
6
6
  restart(): void;
7
7
  getCurrentVersion(a: number): Promise<string>;
8
+ getUpdateMetadata(a: number): Promise<string>;
8
9
  setCurrentVersion(version: string): Promise<boolean>;
10
+ setUpdateMetadata(metadata: string): Promise<boolean>;
9
11
  rollbackToPreviousBundle(a: number): Promise<boolean>;
10
12
  }
11
13
  declare const _default: Spec;
@@ -1 +1 @@
1
- {"version":3,"file":"NativeOtaHotUpdate.d.ts","sourceRoot":"","sources":["../../../../src/NativeOtaHotUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnE,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnD,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C,OAAO,IAAI,IAAI,CAAC;IAChB,iBAAiB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9C,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,wBAAwB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACvD;;AAED,wBAAsE"}
1
+ {"version":3,"file":"NativeOtaHotUpdate.d.ts","sourceRoot":"","sources":["../../../../src/NativeOtaHotUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnE,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnD,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C,OAAO,IAAI,IAAI,CAAC;IAChB,iBAAiB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9C,iBAAiB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9C,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtD,wBAAwB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACvD;;AAED,wBAAsE"}
@@ -2,12 +2,14 @@ import type { DownloadManager } from './download';
2
2
  import type { UpdateGitOption, UpdateOption } from './type';
3
3
  declare function setupBundlePath(path: string, extension?: string): Promise<boolean>;
4
4
  declare function setupExactBundlePath(path: string): Promise<boolean>;
5
+ declare function getUpdateMetadata(): Promise<object | null>;
5
6
  declare function rollbackToPreviousBundle(): Promise<boolean>;
6
7
  declare function getVersionAsNumber(): Promise<number>;
7
8
  declare function setCurrentVersion(version: number): Promise<boolean>;
9
+ declare function setUpdateMetadata(metadata: any): Promise<boolean>;
8
10
  declare function resetApp(): Promise<void>;
9
11
  declare function removeBundle(restartAfterRemoved?: boolean): void;
10
- declare function downloadBundleUri(downloadManager: DownloadManager, uri: string, version: number, option?: UpdateOption): Promise<void>;
12
+ declare function downloadBundleUri(downloadManager: DownloadManager, uri: string, version?: number, option?: UpdateOption): Promise<void>;
11
13
  declare const _default: {
12
14
  setupBundlePath: typeof setupBundlePath;
13
15
  setupExactBundlePath: typeof setupExactBundlePath;
@@ -16,6 +18,8 @@ declare const _default: {
16
18
  resetApp: typeof resetApp;
17
19
  getCurrentVersion: typeof getVersionAsNumber;
18
20
  setCurrentVersion: typeof setCurrentVersion;
21
+ getUpdateMetadata: typeof getUpdateMetadata;
22
+ setUpdateMetadata: typeof setUpdateMetadata;
19
23
  rollbackToPreviousBundle: typeof rollbackToPreviousBundle;
20
24
  git: {
21
25
  removeGitUpdate: (folder?: string) => void;