react-native-ota-hot-update 2.0.6 → 2.0.8

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 (39) hide show
  1. package/README.md +66 -1
  2. package/android/generated/java/com/otahotupdate/NativeOtaHotUpdateSpec.java +4 -0
  3. package/android/generated/jni/RNOtaHotUpdateSpec-generated.cpp +6 -0
  4. package/android/generated/jni/react/renderer/components/RNOtaHotUpdateSpec/RNOtaHotUpdateSpecJSI-generated.cpp +7 -0
  5. package/android/generated/jni/react/renderer/components/RNOtaHotUpdateSpec/RNOtaHotUpdateSpecJSI.h +9 -0
  6. package/android/src/main/java/com/otahotupdate/OtaHotUpdateModule.kt +59 -14
  7. package/android/src/main/java/com/otahotupdate/SharedPrefs.kt +1 -0
  8. package/android/src/oldarch/OtaHotUpdateSpec.kt +1 -0
  9. package/ios/OtaHotUpdate.mm +71 -8
  10. package/ios/generated/RNOtaHotUpdateSpec/RNOtaHotUpdateSpec-generated.mm +7 -0
  11. package/ios/generated/RNOtaHotUpdateSpec/RNOtaHotUpdateSpec.h +3 -0
  12. package/ios/generated/RNOtaHotUpdateSpecJSI-generated.cpp +7 -0
  13. package/ios/generated/RNOtaHotUpdateSpecJSI.h +9 -0
  14. package/lib/commonjs/NativeOtaHotUpdate.js.map +1 -1
  15. package/lib/commonjs/gits/index.js +19 -5
  16. package/lib/commonjs/gits/index.js.map +1 -1
  17. package/lib/commonjs/index.js +6 -2
  18. package/lib/commonjs/index.js.map +1 -1
  19. package/lib/module/NativeOtaHotUpdate.js.map +1 -1
  20. package/lib/module/gits/index.js +19 -5
  21. package/lib/module/gits/index.js.map +1 -1
  22. package/lib/module/index.js +6 -2
  23. package/lib/module/index.js.map +1 -1
  24. package/lib/typescript/commonjs/src/NativeOtaHotUpdate.d.ts +1 -0
  25. package/lib/typescript/commonjs/src/NativeOtaHotUpdate.d.ts.map +1 -1
  26. package/lib/typescript/commonjs/src/gits/index.d.ts +1 -0
  27. package/lib/typescript/commonjs/src/gits/index.d.ts.map +1 -1
  28. package/lib/typescript/commonjs/src/index.d.ts +3 -0
  29. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  30. package/lib/typescript/module/src/NativeOtaHotUpdate.d.ts +1 -0
  31. package/lib/typescript/module/src/NativeOtaHotUpdate.d.ts.map +1 -1
  32. package/lib/typescript/module/src/gits/index.d.ts +1 -0
  33. package/lib/typescript/module/src/gits/index.d.ts.map +1 -1
  34. package/lib/typescript/module/src/index.d.ts +3 -0
  35. package/lib/typescript/module/src/index.d.ts.map +1 -1
  36. package/package.json +1 -1
  37. package/src/NativeOtaHotUpdate.ts +1 -0
  38. package/src/gits/index.ts +18 -4
  39. package/src/index.tsx +9 -2
package/README.md CHANGED
@@ -49,6 +49,31 @@ Open `AppDelegate.m` and add this:
49
49
  #endif
50
50
  }
51
51
  ```
52
+ ### IOS React native 0.77 or above
53
+
54
+ From react native 0.77, AppDelegate changed to swift file, so the configuration will be change a bit.
55
+
56
+ 1. Create a Bridging Header
57
+ - Right-click on your project in the Xcode navigator and select New File from template.
58
+ - Select Header File under the iOS section and click Next.
59
+ - Name it something like `YourProjectName-Bridging-Header.h` and save it in your project directory.
60
+ - In your project's Build Settings: Search for `Objective-C Bridging Header`.
61
+ Set its value to the relative path of your bridging header file, e.g., YourProjectName/YourProjectName-Bridging-Header.h.
62
+ 2. Open `YourProjectName-Bridging-Header.h` and add this line:
63
+
64
+ `#import "OtaHotUpdate.h"`
65
+ 3. Open AppDelegate.swift:
66
+
67
+ ```bash
68
+ override func bundleURL() -> URL? {
69
+ #if DEBUG
70
+ RCTBundleURLProvider.sharedSettings().jsBundleURL(forBundleRoot: "index")
71
+ #else
72
+ OtaHotUpdate.getBundle() // -> Add this line
73
+ #endif
74
+ }
75
+ ```
76
+
52
77
  #### For downloading in background mode on IOS, following this (optional):
53
78
 
54
79
  AppDelegate.h:
@@ -74,9 +99,35 @@ AppDelegate.mm:
74
99
  }
75
100
  ```
76
101
 
102
+ AppDelegate.swift(RN >= 0.77):
103
+
104
+ ```bash
105
+ class AppDelegate: RCTAppDelegate {
106
+ var taskIdentifier: UIBackgroundTaskIdentifier = .invalid
107
+ ...
108
+ ```
109
+ ```bash
110
+ override func applicationWillResignActive(_ application: UIApplication) {
111
+ // End any existing background task
112
+ if taskIdentifier != .invalid {
113
+ application.endBackgroundTask(taskIdentifier)
114
+ taskIdentifier = .invalid
115
+ }
116
+
117
+ // Start a new background task
118
+ taskIdentifier = application.beginBackgroundTask(withName: nil) { [weak self] in
119
+ if let strongSelf = self {
120
+ application.endBackgroundTask(strongSelf.taskIdentifier)
121
+ strongSelf.taskIdentifier = .invalid
122
+ }
123
+ }
124
+ }
125
+
126
+ ```
127
+
77
128
 
78
129
  ### Android
79
- Open `MainApplication.java/kt` and add these codes bellow:
130
+ Open `MainApplication.kt` and add these codes bellow:
80
131
  ```bash
81
132
  import com.otahotupdate.OtaHotUpdate
82
133
  ...
@@ -85,6 +136,15 @@ override fun getJSBundleFile(): String? {
85
136
  }
86
137
 
87
138
  ```
139
+
140
+ MainApplication.java:
141
+ ```bash
142
+ @Nullable
143
+ @Override
144
+ protected String getJSBundleFile() {
145
+ return OtaHotUpdate.getBundleJS();
146
+ }
147
+ ```
88
148
  Open `AndroidManifest.xml` :
89
149
 
90
150
  `<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />`
@@ -110,6 +170,11 @@ This method allows you to use a Git repository to host the bundle JS. The app pu
110
170
 
111
171
  For detailed instructions on how to implement this, refer to [**DOC_OTA_GIT.md**](DOC_OTA_GIT.md).
112
172
 
173
+
174
+ ### Build a Custom Admin Panel with CMS
175
+ Using Strapi, you can build a tailored admin panel to manage React Native hot updates effectively. This approach allows you to centralize the control of versioning and OTA updates while providing a user-friendly interface for managing content. To get started, refer to the detailed steps and code examples in this guide. For additional details, see [**OTA_CMS.md**](OTA_CMS.md).
176
+
177
+
113
178
  ## License
114
179
 
115
180
  [MIT](LICENSE)
@@ -55,4 +55,8 @@ public abstract class NativeOtaHotUpdateSpec extends ReactContextBaseJavaModule
55
55
  @ReactMethod
56
56
  @DoNotStrip
57
57
  public abstract void setCurrentVersion(String version, Promise promise);
58
+
59
+ @ReactMethod
60
+ @DoNotStrip
61
+ public abstract void rollbackToPreviousBundle(double a, Promise promise);
58
62
  }
@@ -42,6 +42,11 @@ static facebook::jsi::Value __hostFunction_NativeOtaHotUpdateSpecJSI_setCurrentV
42
42
  return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "setCurrentVersion", "(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
43
43
  }
44
44
 
45
+ static facebook::jsi::Value __hostFunction_NativeOtaHotUpdateSpecJSI_rollbackToPreviousBundle(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
46
+ static jmethodID cachedMethodId = nullptr;
47
+ return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "rollbackToPreviousBundle", "(DLcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
48
+ }
49
+
45
50
  NativeOtaHotUpdateSpecJSI::NativeOtaHotUpdateSpecJSI(const JavaTurboModule::InitParams &params)
46
51
  : JavaTurboModule(params) {
47
52
  methodMap_["setupBundlePath"] = MethodMetadata {2, __hostFunction_NativeOtaHotUpdateSpecJSI_setupBundlePath};
@@ -50,6 +55,7 @@ NativeOtaHotUpdateSpecJSI::NativeOtaHotUpdateSpecJSI(const JavaTurboModule::Init
50
55
  methodMap_["restart"] = MethodMetadata {0, __hostFunction_NativeOtaHotUpdateSpecJSI_restart};
51
56
  methodMap_["getCurrentVersion"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateSpecJSI_getCurrentVersion};
52
57
  methodMap_["setCurrentVersion"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateSpecJSI_setCurrentVersion};
58
+ methodMap_["rollbackToPreviousBundle"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateSpecJSI_rollbackToPreviousBundle};
53
59
  }
54
60
 
55
61
  std::shared_ptr<TurboModule> RNOtaHotUpdateSpec_ModuleProvider(const std::string &moduleName, const JavaTurboModule::InitParams &params) {
@@ -48,6 +48,12 @@ static jsi::Value __hostFunction_NativeOtaHotUpdateCxxSpecJSI_setCurrentVersion(
48
48
  count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
49
49
  );
50
50
  }
51
+ static jsi::Value __hostFunction_NativeOtaHotUpdateCxxSpecJSI_rollbackToPreviousBundle(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
52
+ return static_cast<NativeOtaHotUpdateCxxSpecJSI *>(&turboModule)->rollbackToPreviousBundle(
53
+ rt,
54
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber()
55
+ );
56
+ }
51
57
 
52
58
  NativeOtaHotUpdateCxxSpecJSI::NativeOtaHotUpdateCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker)
53
59
  : TurboModule("OtaHotUpdate", jsInvoker) {
@@ -57,6 +63,7 @@ NativeOtaHotUpdateCxxSpecJSI::NativeOtaHotUpdateCxxSpecJSI(std::shared_ptr<CallI
57
63
  methodMap_["restart"] = MethodMetadata {0, __hostFunction_NativeOtaHotUpdateCxxSpecJSI_restart};
58
64
  methodMap_["getCurrentVersion"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateCxxSpecJSI_getCurrentVersion};
59
65
  methodMap_["setCurrentVersion"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateCxxSpecJSI_setCurrentVersion};
66
+ methodMap_["rollbackToPreviousBundle"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateCxxSpecJSI_rollbackToPreviousBundle};
60
67
  }
61
68
 
62
69
 
@@ -26,6 +26,7 @@ public:
26
26
  virtual void restart(jsi::Runtime &rt) = 0;
27
27
  virtual jsi::Value getCurrentVersion(jsi::Runtime &rt, double a) = 0;
28
28
  virtual jsi::Value setCurrentVersion(jsi::Runtime &rt, jsi::String version) = 0;
29
+ virtual jsi::Value rollbackToPreviousBundle(jsi::Runtime &rt, double a) = 0;
29
30
 
30
31
  };
31
32
 
@@ -100,6 +101,14 @@ private:
100
101
  return bridging::callFromJs<jsi::Value>(
101
102
  rt, &T::setCurrentVersion, jsInvoker_, instance_, std::move(version));
102
103
  }
104
+ jsi::Value rollbackToPreviousBundle(jsi::Runtime &rt, double a) override {
105
+ static_assert(
106
+ bridging::getParameterCount(&T::rollbackToPreviousBundle) == 2,
107
+ "Expected rollbackToPreviousBundle(...) to have 2 parameters");
108
+
109
+ return bridging::callFromJs<jsi::Value>(
110
+ rt, &T::rollbackToPreviousBundle, jsInvoker_, instance_, std::move(a));
111
+ }
103
112
 
104
113
  private:
105
114
  friend class NativeOtaHotUpdateCxxSpec;
@@ -1,6 +1,7 @@
1
1
  package com.otahotupdate
2
2
 
3
3
  import android.content.Context
4
+ import android.icu.text.SimpleDateFormat
4
5
  import android.util.Log
5
6
  import com.facebook.react.bridge.Promise
6
7
  import com.facebook.react.bridge.ReactApplicationContext
@@ -9,9 +10,12 @@ import com.jakewharton.processphoenix.ProcessPhoenix
9
10
  import com.otahotupdate.OtaHotUpdate.Companion.getPackageInfo
10
11
  import com.rnhotupdate.Common.CURRENT_VERSION_NAME
11
12
  import com.rnhotupdate.Common.PATH
13
+ import com.rnhotupdate.Common.PREVIOUS_PATH
12
14
  import com.rnhotupdate.Common.VERSION
13
15
  import com.rnhotupdate.SharedPrefs
14
16
  import java.io.File
17
+ import java.util.Date
18
+ import java.util.Locale
15
19
  import java.util.zip.ZipFile
16
20
 
17
21
  class OtaHotUpdateModule internal constructor(context: ReactApplicationContext) :
@@ -37,13 +41,14 @@ class OtaHotUpdateModule internal constructor(context: ReactApplicationContext)
37
41
  // Finally, delete the empty directory or file
38
42
  return directory.delete()
39
43
  }
40
- private fun deleteOldBundleIfneeded(): Boolean {
44
+ private fun deleteOldBundleIfneeded(pathKey: String?): Boolean {
45
+ val pathName = if (pathKey != null) pathKey else PREVIOUS_PATH
41
46
  val sharedPrefs = SharedPrefs(reactApplicationContext)
42
- val path = sharedPrefs.getString(PATH)
47
+ val path = sharedPrefs.getString(pathName)
43
48
  val file = File(path)
44
49
  if (file.exists() && file.isFile) {
45
50
  val isDeleted = deleteDirectory(file.parentFile)
46
- sharedPrefs.clear()
51
+ sharedPrefs.putString(pathName, "")
47
52
  return isDeleted
48
53
  } else {
49
54
  return false
@@ -54,27 +59,44 @@ class OtaHotUpdateModule internal constructor(context: ReactApplicationContext)
54
59
  ): String? {
55
60
  return try {
56
61
  val outputDir = zipFile.parentFile
62
+ val timestamp = SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(Date())
63
+ var topLevelFolder: String? = null
57
64
  var bundlePath: String? = null
58
65
  ZipFile(zipFile).use { zip ->
59
66
  zip.entries().asSequence().forEach { entry ->
60
67
  zip.getInputStream(entry).use { input ->
68
+ if (topLevelFolder == null) {
69
+ val parts = entry.name.split("/")
70
+ if (parts.size > 1) {
71
+ topLevelFolder = parts.first()
72
+ }
73
+ }
74
+ val outputFile = File(outputDir, entry.name)
61
75
  if (entry.isDirectory) {
62
- val d = File(outputDir, entry.name)
63
- if (!d.exists()) d.mkdirs()
76
+ if (!outputFile.exists()) outputFile.mkdirs()
64
77
  } else {
65
- val f = File(outputDir, entry.name)
66
- if (f.parentFile?.exists() != true) f.parentFile?.mkdirs()
67
-
68
- f.outputStream().use { output ->
78
+ if (outputFile.parentFile?.exists() != true) outputFile.parentFile?.mkdirs()
79
+ outputFile.outputStream().use { output ->
69
80
  input.copyTo(output)
70
81
  }
71
- if (f.absolutePath.contains(extension)) {
72
- bundlePath = f.absolutePath
82
+ if (outputFile.absolutePath.endsWith(extension)) {
83
+ bundlePath = outputFile.absolutePath
84
+ return@use // Exit early if found
73
85
  }
74
86
  }
75
87
  }
76
88
  }
77
89
  }
90
+ // Rename the detected top-level folder
91
+ if (topLevelFolder != null) {
92
+ val extractedFolder = File(outputDir, topLevelFolder)
93
+ val renamedFolder = File(outputDir, "output_$timestamp")
94
+ if (extractedFolder.exists()) {
95
+ extractedFolder.renameTo(renamedFolder)
96
+ // Update bundlePath if the file was inside the renamed folder
97
+ bundlePath = bundlePath?.replace(extractedFolder.absolutePath, renamedFolder.absolutePath)
98
+ }
99
+ }
78
100
  bundlePath
79
101
  } catch (e: Exception) {
80
102
  e.printStackTrace()
@@ -88,12 +110,16 @@ class OtaHotUpdateModule internal constructor(context: ReactApplicationContext)
88
110
  if (path != null) {
89
111
  val file = File(path)
90
112
  if (file.exists() && file.isFile) {
91
- deleteOldBundleIfneeded()
113
+ deleteOldBundleIfneeded(null)
92
114
  val fileUnzip = extractZipFile(file, extension ?: ".bundle")
93
115
  if (fileUnzip != null) {
94
116
  Log.d("setupBundlePath----: ", fileUnzip)
95
117
  file.delete()
96
118
  val sharedPrefs = SharedPrefs(reactApplicationContext)
119
+ val oldPath = sharedPrefs.getString(PATH)
120
+ if (!oldPath.equals("")) {
121
+ sharedPrefs.putString(PREVIOUS_PATH, oldPath)
122
+ }
97
123
  sharedPrefs.putString(PATH, fileUnzip)
98
124
  sharedPrefs.putString(CURRENT_VERSION_NAME, reactApplicationContext?.getPackageInfo()?.versionName)
99
125
  promise.resolve(true)
@@ -114,10 +140,11 @@ class OtaHotUpdateModule internal constructor(context: ReactApplicationContext)
114
140
 
115
141
  @ReactMethod
116
142
  override fun deleteBundle(i: Double, promise: Promise) {
117
- val isDeleted = deleteOldBundleIfneeded()
143
+ val isDeleted = deleteOldBundleIfneeded(PATH)
144
+ val isDeletedOldPath = deleteOldBundleIfneeded(PREVIOUS_PATH)
118
145
  val sharedPrefs = SharedPrefs(reactApplicationContext)
119
146
  sharedPrefs.putString(VERSION, "0")
120
- promise.resolve(isDeleted)
147
+ promise.resolve(isDeleted && isDeletedOldPath)
121
148
  }
122
149
 
123
150
  @ReactMethod
@@ -151,6 +178,24 @@ class OtaHotUpdateModule internal constructor(context: ReactApplicationContext)
151
178
  sharedPrefs.putString(CURRENT_VERSION_NAME, reactApplicationContext?.getPackageInfo()?.versionName)
152
179
  promise.resolve(true)
153
180
  }
181
+
182
+ @ReactMethod
183
+ override fun rollbackToPreviousBundle(a: Double, promise: Promise) {
184
+ val sharedPrefs = SharedPrefs(reactApplicationContext)
185
+ val oldPath = sharedPrefs.getString(PREVIOUS_PATH)
186
+ if (oldPath != "") {
187
+ val isDeleted = deleteOldBundleIfneeded(PATH)
188
+ if (isDeleted) {
189
+ sharedPrefs.putString(PATH, oldPath)
190
+ sharedPrefs.putString(PREVIOUS_PATH, "")
191
+ promise.resolve(true)
192
+ } else {
193
+ promise.resolve(false)
194
+ }
195
+ } else {
196
+ promise.resolve(false)
197
+ }
198
+ }
154
199
  companion object {
155
200
  const val NAME = "OtaHotUpdate"
156
201
  }
@@ -25,6 +25,7 @@ class SharedPrefs internal constructor(context: Context) {
25
25
  }
26
26
  object Common {
27
27
  val PATH = "PATH"
28
+ val PREVIOUS_PATH = "PREVIOUS_PATH"
28
29
  val VERSION = "VERSION"
29
30
  val CURRENT_VERSION_NAME = "CURRENT_VERSION_NAME"
30
31
  val SHARED_PREFERENCE_NAME = "HOT-UPDATE-REACT_NATIVE"
@@ -13,4 +13,5 @@ abstract class OtaHotUpdateSpec internal constructor(context: ReactApplicationCo
13
13
  abstract fun getCurrentVersion(a: Double, promise: Promise)
14
14
  abstract fun setCurrentVersion(version: String?, promise: Promise)
15
15
  abstract fun setExactBundlePath(path: String?, promise: Promise)
16
+ abstract fun rollbackToPreviousBundle()
16
17
  }
@@ -66,13 +66,14 @@ RCT_EXPORT_MODULE()
66
66
  return success;
67
67
  }
68
68
 
69
- - (BOOL)removeBundleIfNeeded {
69
+ - (BOOL)removeBundleIfNeeded:(NSString *)pathKey {
70
+ NSString *keyToUse = pathKey ? pathKey : @"OLD_PATH";
70
71
  NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
71
- NSString *retrievedString = [defaults stringForKey:@"PATH"];
72
+ NSString *retrievedString = [defaults stringForKey:keyToUse];
72
73
  NSError *error = nil;
73
74
  if (retrievedString && [self isFilePathValid:retrievedString]) {
74
75
  BOOL isDeleted = [self deleteAllContentsOfParentDirectoryOfFile:retrievedString error:&error];
75
- [defaults removeObjectForKey:@"PATH"];
76
+ [defaults removeObjectForKey:keyToUse];
76
77
  [defaults synchronize];
77
78
  return isDeleted;
78
79
  } else {
@@ -129,6 +130,34 @@ RCT_EXPORT_MODULE()
129
130
 
130
131
  return nil;
131
132
  }
133
+ - (NSString *)renameExtractedFolderInDirectory:(NSString *)directoryPath {
134
+ NSFileManager *fileManager = [NSFileManager defaultManager];
135
+ NSError *error = nil;
136
+
137
+ // Get the contents of the extracted directory
138
+ NSArray *contents = [fileManager contentsOfDirectoryAtPath:directoryPath error:&error];
139
+ if (error || contents.count != 1) {
140
+ NSLog(@"Error retrieving extracted folder or unexpected structure: %@", error.localizedDescription);
141
+ return nil;
142
+ }
143
+
144
+ // Get the original extracted folder name (assuming only one folder exists)
145
+ NSString *originalFolderName = contents.firstObject;
146
+ NSString *originalFolderPath = [directoryPath stringByAppendingPathComponent:originalFolderName];
147
+
148
+ // Generate new folder name with timestamp
149
+ NSString *timestamp = [NSString stringWithFormat:@"output_%ld", (long)[[NSDate date] timeIntervalSince1970]];
150
+ NSString *newFolderPath = [directoryPath stringByAppendingPathComponent:timestamp];
151
+
152
+ // Rename the extracted folder
153
+ if (![fileManager moveItemAtPath:originalFolderPath toPath:newFolderPath error:&error]) {
154
+ NSLog(@"Failed to rename folder: %@", error.localizedDescription);
155
+ return nil;
156
+ }
157
+
158
+ NSLog(@"Renamed extracted folder to: %@", newFolderPath);
159
+ return newFolderPath;
160
+ }
132
161
  - (NSString *)unzipFileAtPath:(NSString *)zipFilePath extension:(NSString *)extension {
133
162
  // Define the directory where the files will be extracted
134
163
  NSString *extractedFolderPath = [[zipFilePath stringByDeletingPathExtension] stringByAppendingPathExtension:@"unzip"];
@@ -152,8 +181,14 @@ RCT_EXPORT_MODULE()
152
181
  NSLog(@"Failed to unzip file");
153
182
  return nil;
154
183
  }
184
+ // Try renaming the extracted folder
185
+ NSString *renamedFolderPath = [self renameExtractedFolderInDirectory:extractedFolderPath];
186
+
187
+ // If renaming fails, use the original extracted folder path
188
+ NSString *finalFolderPath = renamedFolderPath ? renamedFolderPath : extractedFolderPath;
189
+
155
190
  // Find .jsbundle files in the extracted directory
156
- NSString *jsbundleFilePath = [self searchForJsBundleInDirectory:extractedFolderPath extension:extension];
191
+ NSString *jsbundleFilePath = [self searchForJsBundleInDirectory:finalFolderPath extension:extension];
157
192
 
158
193
  // Delete the zip file after extraction
159
194
  NSError *removeError = nil;
@@ -171,12 +206,16 @@ RCT_EXPORT_METHOD(setupBundlePath:(NSString *)path extension:(NSString *)extensi
171
206
  resolve:(RCTPromiseResolveBlock)resolve
172
207
  reject:(RCTPromiseRejectBlock)reject) {
173
208
  if ([self isFilePathValid:path]) {
174
- [self removeBundleIfNeeded];
209
+ [self removeBundleIfNeeded:nil];
175
210
  //Unzip file
176
211
  NSString *extractedFilePath = [self unzipFileAtPath:path extension:(extension != nil) ? extension : @".jsbundle"];
177
212
  if (extractedFilePath) {
178
213
  NSLog(@"file extraction----- %@", extractedFilePath);
179
214
  NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
215
+ NSString *oldPath = [defaults stringForKey:@"PATH"];
216
+ if (oldPath) {
217
+ [defaults setObject:oldPath forKey:@"OLD_PATH"];
218
+ }
180
219
  [defaults setObject:extractedFilePath forKey:@"PATH"];
181
220
  [defaults setObject:[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"] forKey:@"VERSION_NAME"];
182
221
  [defaults synchronize];
@@ -188,12 +227,36 @@ RCT_EXPORT_METHOD(setupBundlePath:(NSString *)path extension:(NSString *)extensi
188
227
  resolve(@(NO));
189
228
  }
190
229
  }
191
- // Expose deleteBundle method to JavaScript
192
230
  RCT_EXPORT_METHOD(deleteBundle:(double)i
193
231
  resolve:(RCTPromiseResolveBlock)resolve
194
232
  reject:(RCTPromiseRejectBlock)reject) {
195
- BOOL isDeleted = [self removeBundleIfNeeded];
196
- resolve(@(isDeleted));
233
+ BOOL isDeleted = [self removeBundleIfNeeded:@"PATH"];
234
+ BOOL isDeletedOld = [self removeBundleIfNeeded:nil];
235
+ if (isDeleted && isDeletedOld) {
236
+ resolve(@(YES));
237
+ } else {
238
+ resolve(@(NO));
239
+ }
240
+ }
241
+ // Expose deleteBundle method to JavaScript
242
+ RCT_EXPORT_METHOD(rollbackToPreviousBundle:(double)i
243
+ resolve:(RCTPromiseResolveBlock)resolve
244
+ reject:(RCTPromiseRejectBlock)reject) {
245
+ NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
246
+ NSString *oldPath = [defaults stringForKey:@"OLD_PATH"];
247
+ if (oldPath && [self isFilePathValid:oldPath]) {
248
+ BOOL isDeleted = [self removeBundleIfNeeded:@"PATH"];
249
+ if (isDeleted) {
250
+ [defaults setObject:oldPath forKey:@"PATH"];
251
+ [defaults removeObjectForKey:@"OLD_PATH"];
252
+ [defaults synchronize];
253
+ resolve(@(YES));
254
+ } else {
255
+ resolve(@(NO));
256
+ }
257
+ } else {
258
+ resolve(@(NO));
259
+ }
197
260
  }
198
261
 
199
262
  RCT_EXPORT_METHOD(getCurrentVersion:(double)a
@@ -50,6 +50,10 @@ namespace facebook::react {
50
50
  return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, PromiseKind, "setCurrentVersion", @selector(setCurrentVersion:resolve:reject:), args, count);
51
51
  }
52
52
 
53
+ static facebook::jsi::Value __hostFunction_NativeOtaHotUpdateSpecJSI_rollbackToPreviousBundle(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
54
+ return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, PromiseKind, "rollbackToPreviousBundle", @selector(rollbackToPreviousBundle:resolve:reject:), args, count);
55
+ }
56
+
53
57
  NativeOtaHotUpdateSpecJSI::NativeOtaHotUpdateSpecJSI(const ObjCTurboModule::InitParams &params)
54
58
  : ObjCTurboModule(params) {
55
59
 
@@ -70,5 +74,8 @@ namespace facebook::react {
70
74
 
71
75
  methodMap_["setCurrentVersion"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateSpecJSI_setCurrentVersion};
72
76
 
77
+
78
+ methodMap_["rollbackToPreviousBundle"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateSpecJSI_rollbackToPreviousBundle};
79
+
73
80
  }
74
81
  } // namespace facebook::react
@@ -50,6 +50,9 @@
50
50
  - (void)setCurrentVersion:(NSString *)version
51
51
  resolve:(RCTPromiseResolveBlock)resolve
52
52
  reject:(RCTPromiseRejectBlock)reject;
53
+ - (void)rollbackToPreviousBundle:(double)a
54
+ resolve:(RCTPromiseResolveBlock)resolve
55
+ reject:(RCTPromiseRejectBlock)reject;
53
56
 
54
57
  @end
55
58
 
@@ -48,6 +48,12 @@ static jsi::Value __hostFunction_NativeOtaHotUpdateCxxSpecJSI_setCurrentVersion(
48
48
  count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
49
49
  );
50
50
  }
51
+ static jsi::Value __hostFunction_NativeOtaHotUpdateCxxSpecJSI_rollbackToPreviousBundle(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
52
+ return static_cast<NativeOtaHotUpdateCxxSpecJSI *>(&turboModule)->rollbackToPreviousBundle(
53
+ rt,
54
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber()
55
+ );
56
+ }
51
57
 
52
58
  NativeOtaHotUpdateCxxSpecJSI::NativeOtaHotUpdateCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker)
53
59
  : TurboModule("OtaHotUpdate", jsInvoker) {
@@ -57,6 +63,7 @@ NativeOtaHotUpdateCxxSpecJSI::NativeOtaHotUpdateCxxSpecJSI(std::shared_ptr<CallI
57
63
  methodMap_["restart"] = MethodMetadata {0, __hostFunction_NativeOtaHotUpdateCxxSpecJSI_restart};
58
64
  methodMap_["getCurrentVersion"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateCxxSpecJSI_getCurrentVersion};
59
65
  methodMap_["setCurrentVersion"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateCxxSpecJSI_setCurrentVersion};
66
+ methodMap_["rollbackToPreviousBundle"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateCxxSpecJSI_rollbackToPreviousBundle};
60
67
  }
61
68
 
62
69
 
@@ -26,6 +26,7 @@ public:
26
26
  virtual void restart(jsi::Runtime &rt) = 0;
27
27
  virtual jsi::Value getCurrentVersion(jsi::Runtime &rt, double a) = 0;
28
28
  virtual jsi::Value setCurrentVersion(jsi::Runtime &rt, jsi::String version) = 0;
29
+ virtual jsi::Value rollbackToPreviousBundle(jsi::Runtime &rt, double a) = 0;
29
30
 
30
31
  };
31
32
 
@@ -100,6 +101,14 @@ private:
100
101
  return bridging::callFromJs<jsi::Value>(
101
102
  rt, &T::setCurrentVersion, jsInvoker_, instance_, std::move(version));
102
103
  }
104
+ jsi::Value rollbackToPreviousBundle(jsi::Runtime &rt, double a) override {
105
+ static_assert(
106
+ bridging::getParameterCount(&T::rollbackToPreviousBundle) == 2,
107
+ "Expected rollbackToPreviousBundle(...) to have 2 parameters");
108
+
109
+ return bridging::callFromJs<jsi::Value>(
110
+ rt, &T::rollbackToPreviousBundle, jsInvoker_, instance_, std::move(a));
111
+ }
103
112
 
104
113
  private:
105
114
  friend class NativeOtaHotUpdateCxxSpec;
@@ -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,GAWpCC,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,GAYpCC,gCAAmB,CAACC,YAAY,CAAO,cAAc,CAAC","ignoreList":[]}
@@ -55,10 +55,6 @@ const cloneRepo = async options => {
55
55
  }
56
56
  }
57
57
  });
58
- await setConfig(options?.folderName, {
59
- email: options?.email,
60
- userName: options?.userName
61
- });
62
58
  return {
63
59
  success: true,
64
60
  msg: null,
@@ -70,6 +66,11 @@ const cloneRepo = async options => {
70
66
  msg: e.toString(),
71
67
  bundle: null
72
68
  };
69
+ } finally {
70
+ setConfig(options?.folderName, {
71
+ email: options?.email,
72
+ userName: options?.userName
73
+ });
73
74
  }
74
75
  };
75
76
  const pullUpdate = async options => {
@@ -117,6 +118,18 @@ const getBranchName = async folderName => {
117
118
  return null;
118
119
  }
119
120
  };
121
+ const getConfig = async folderName => {
122
+ try {
123
+ return await _indexUmdMin.default.getConfig({
124
+ fs,
125
+ dir: getFolder(folderName),
126
+ path: 'remote.origin.url'
127
+ });
128
+ } catch (e) {
129
+ console.log(e.toString());
130
+ return null;
131
+ }
132
+ };
120
133
  const removeGitUpdate = folderName => {
121
134
  fs.promises.unlink(getFolder(folderName));
122
135
  };
@@ -125,6 +138,7 @@ var _default = exports.default = {
125
138
  pullUpdate,
126
139
  getBranchName,
127
140
  setConfig,
128
- removeGitUpdate
141
+ removeGitUpdate,
142
+ getConfig
129
143
  };
130
144
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["require","_indexUmdMin","_interopRequireDefault","_index","promises","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","fs","getFolder","folderName","DocumentDirectoryPath","setConfig","options","git","dir","path","userName","value","email","cloneRepo","clone","http","url","singleBranch","depth","ref","branch","onProgress","loaded","total","success","msg","bundle","bundlePath","toString","pullUpdate","count","pull","console","log","getBranchName","currentBranch","fullname","removeGitUpdate","unlink","_default","exports"],"sourceRoot":"../../../src","sources":["gits/index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["require","_indexUmdMin","_interopRequireDefault","_index","promises","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","fs","getFolder","folderName","DocumentDirectoryPath","setConfig","options","git","dir","path","userName","value","email","cloneRepo","clone","http","url","singleBranch","depth","ref","branch","onProgress","loaded","total","success","msg","bundle","bundlePath","toString","pullUpdate","count","pull","console","log","getBranchName","currentBranch","fullname","getConfig","removeGitUpdate","unlink","_default","exports"],"sourceRoot":"../../../src","sources":["gits/index.ts"],"mappings":"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","ignoreList":[]}
@@ -44,6 +44,9 @@ function deleteBundlePath() {
44
44
  function getCurrentVersion() {
45
45
  return RNhotupdate.getCurrentVersion(0);
46
46
  }
47
+ function rollbackToPreviousBundle() {
48
+ return RNhotupdate.rollbackToPreviousBundle(0);
49
+ }
47
50
  async function getVersionAsNumber() {
48
51
  const rawVersion = await getCurrentVersion();
49
52
  return +rawVersion;
@@ -112,8 +115,8 @@ const checkForGitUpdate = async options => {
112
115
  if (!options.url || !options.bundlePath) {
113
116
  throw new Error(`url or bundlePath should not be null`);
114
117
  }
115
- const branch = await _index.default.getBranchName();
116
- if (branch) {
118
+ const [config, branch] = await Promise.all([_index.default.getConfig(), _index.default.getBranchName()]);
119
+ if (branch && config) {
117
120
  const pull = await _index.default.pullUpdate({
118
121
  branch,
119
122
  onProgress: options?.onProgress,
@@ -163,6 +166,7 @@ var _default = exports.default = {
163
166
  resetApp,
164
167
  getCurrentVersion: getVersionAsNumber,
165
168
  setCurrentVersion,
169
+ rollbackToPreviousBundle,
166
170
  git: {
167
171
  checkForGitUpdate,
168
172
  ..._index.default,
@@ -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","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","git","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","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 +1 @@
1
- {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeOtaHotUpdate.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AAWlD,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;AAYlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,cAAc,CAAC","ignoreList":[]}
@@ -48,10 +48,6 @@ const cloneRepo = async options => {
48
48
  }
49
49
  }
50
50
  });
51
- await setConfig(options?.folderName, {
52
- email: options?.email,
53
- userName: options?.userName
54
- });
55
51
  return {
56
52
  success: true,
57
53
  msg: null,
@@ -63,6 +59,11 @@ const cloneRepo = async options => {
63
59
  msg: e.toString(),
64
60
  bundle: null
65
61
  };
62
+ } finally {
63
+ setConfig(options?.folderName, {
64
+ email: options?.email,
65
+ userName: options?.userName
66
+ });
66
67
  }
67
68
  };
68
69
  const pullUpdate = async options => {
@@ -110,6 +111,18 @@ const getBranchName = async folderName => {
110
111
  return null;
111
112
  }
112
113
  };
114
+ const getConfig = async folderName => {
115
+ try {
116
+ return await git.getConfig({
117
+ fs,
118
+ dir: getFolder(folderName),
119
+ path: 'remote.origin.url'
120
+ });
121
+ } catch (e) {
122
+ console.log(e.toString());
123
+ return null;
124
+ }
125
+ };
113
126
  const removeGitUpdate = folderName => {
114
127
  fs.promises.unlink(getFolder(folderName));
115
128
  };
@@ -118,6 +131,7 @@ export default {
118
131
  pullUpdate,
119
132
  getBranchName,
120
133
  setConfig,
121
- removeGitUpdate
134
+ removeGitUpdate,
135
+ getConfig
122
136
  };
123
137
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["git","http","promises","fs","getFolder","folderName","DocumentDirectoryPath","require","e","setConfig","options","dir","path","userName","value","email","cloneRepo","clone","url","singleBranch","depth","ref","branch","onProgress","loaded","total","success","msg","bundle","bundlePath","toString","pullUpdate","count","pull","console","log","getBranchName","currentBranch","fullname","removeGitUpdate","unlink"],"sourceRoot":"../../../src","sources":["gits/index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["git","http","promises","fs","getFolder","folderName","DocumentDirectoryPath","require","e","setConfig","options","dir","path","userName","value","email","cloneRepo","clone","url","singleBranch","depth","ref","branch","onProgress","loaded","total","success","msg","bundle","bundlePath","toString","pullUpdate","count","pull","console","log","getBranchName","currentBranch","fullname","getConfig","removeGitUpdate","unlink"],"sourceRoot":"../../../src","sources":["gits/index.ts"],"mappings":"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","ignoreList":[]}
@@ -39,6 +39,9 @@ function deleteBundlePath() {
39
39
  function getCurrentVersion() {
40
40
  return RNhotupdate.getCurrentVersion(0);
41
41
  }
42
+ function rollbackToPreviousBundle() {
43
+ return RNhotupdate.rollbackToPreviousBundle(0);
44
+ }
42
45
  async function getVersionAsNumber() {
43
46
  const rawVersion = await getCurrentVersion();
44
47
  return +rawVersion;
@@ -107,8 +110,8 @@ const checkForGitUpdate = async options => {
107
110
  if (!options.url || !options.bundlePath) {
108
111
  throw new Error(`url or bundlePath should not be null`);
109
112
  }
110
- const branch = await git.getBranchName();
111
- if (branch) {
113
+ const [config, branch] = await Promise.all([git.getConfig(), git.getBranchName()]);
114
+ if (branch && config) {
112
115
  const pull = await git.pullUpdate({
113
116
  branch,
114
117
  onProgress: options?.onProgress,
@@ -158,6 +161,7 @@ export default {
158
161
  resetApp,
159
162
  getCurrentVersion: getVersionAsNumber,
160
163
  setCurrentVersion,
164
+ rollbackToPreviousBundle,
161
165
  git: {
162
166
  checkForGitUpdate,
163
167
  ...git,
@@ -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","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","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","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":[]}
@@ -6,6 +6,7 @@ export interface Spec extends TurboModule {
6
6
  restart(): void;
7
7
  getCurrentVersion(a: number): Promise<string>;
8
8
  setCurrentVersion(version: string): Promise<boolean>;
9
+ rollbackToPreviousBundle(a: number): Promise<boolean>;
9
10
  }
10
11
  declare const _default: Spec;
11
12
  export default _default;
@@ -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;CACtD;;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,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,wBAAwB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACvD;;AAED,wBAAsE"}
@@ -20,6 +20,7 @@ declare const _default: {
20
20
  email?: string;
21
21
  }) => Promise<void>;
22
22
  removeGitUpdate: (folderName?: string) => void;
23
+ getConfig: (folderName?: string) => Promise<any>;
23
24
  };
24
25
  export default _default;
25
26
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/gits/index.ts"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,CAAC;AAMhC,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;;yBA2BrB,WAAW;;;;;;;;;0BAiCV,UAAU;;;;iCA8BH,MAAM;6BA5EjC,MAAM,YACT;QACR,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB;mCAoFmC,MAAM;;AAG5C,wBAME"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/gits/index.ts"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,CAAC;AAMhC,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;;yBA2BrB,WAAW;;;;;;;;;0BAkCV,UAAU;;;;iCA8BH,MAAM;6BA7EjC,MAAM,YACT;QACR,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB;mCAiGmC,MAAM;6BAZN,MAAM;;AAe5C,wBAOE"}
@@ -2,6 +2,7 @@ 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 rollbackToPreviousBundle(): Promise<boolean>;
5
6
  declare function getVersionAsNumber(): Promise<number>;
6
7
  declare function setCurrentVersion(version: number): Promise<boolean>;
7
8
  declare function resetApp(): Promise<void>;
@@ -15,6 +16,7 @@ declare const _default: {
15
16
  resetApp: typeof resetApp;
16
17
  getCurrentVersion: typeof getVersionAsNumber;
17
18
  setCurrentVersion: typeof setCurrentVersion;
19
+ rollbackToPreviousBundle: typeof rollbackToPreviousBundle;
18
20
  git: {
19
21
  removeGitUpdate: (folder?: string) => void;
20
22
  cloneRepo: (options: import("./type").CloneOption) => Promise<{
@@ -35,6 +37,7 @@ declare const _default: {
35
37
  userName?: string;
36
38
  email?: string;
37
39
  }) => Promise<void>;
40
+ getConfig: (folderName?: string) => Promise<any>;
38
41
  checkForGitUpdate: (options: UpdateGitOption) => Promise<void>;
39
42
  };
40
43
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AA+C5D,iBAAS,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE3E;AACD,iBAAS,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE5D;AAOD,iBAAe,kBAAkB,oBAGhC;AACD,iBAAS,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE5D;AACD,iBAAe,QAAQ,kBAEtB;AACD,iBAAS,YAAY,CAAC,mBAAmB,CAAC,EAAE,OAAO,QAWlD;AAKD,iBAAe,iBAAiB,CAC9B,eAAe,EAAE,eAAe,EAChC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,YAAY,iBA8CtB;;;;;;;;;;mCA4D8B,MAAM;;;;;;;;;;;;;;;;oBArLX,CAAC;iBAEd,CAAC;;qCAwH4B,eAAe;;;AAgDzD,wBAgBE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AA+C5D,iBAAS,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE3E;AACD,iBAAS,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE5D;AAOD,iBAAS,wBAAwB,IAAI,OAAO,CAAC,OAAO,CAAC,CAEpD;AACD,iBAAe,kBAAkB,oBAGhC;AACD,iBAAS,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE5D;AACD,iBAAe,QAAQ,kBAEtB;AACD,iBAAS,YAAY,CAAC,mBAAmB,CAAC,EAAE,OAAO,QAWlD;AAKD,iBAAe,iBAAiB,CAC9B,eAAe,EAAE,eAAe,EAChC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,YAAY,iBA8CtB;;;;;;;;;;;mCAgE8B,MAAM;;;;;;;;;;;;;;;;oBA5LX,CAAC;iBAEd,CAAC;;;qCA2H4B,eAAe;;;AAmDzD,wBAiBE"}
@@ -6,6 +6,7 @@ export interface Spec extends TurboModule {
6
6
  restart(): void;
7
7
  getCurrentVersion(a: number): Promise<string>;
8
8
  setCurrentVersion(version: string): Promise<boolean>;
9
+ rollbackToPreviousBundle(a: number): Promise<boolean>;
9
10
  }
10
11
  declare const _default: Spec;
11
12
  export default _default;
@@ -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;CACtD;;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,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,wBAAwB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACvD;;AAED,wBAAsE"}
@@ -20,6 +20,7 @@ declare const _default: {
20
20
  email?: string;
21
21
  }) => Promise<void>;
22
22
  removeGitUpdate: (folderName?: string) => void;
23
+ getConfig: (folderName?: string) => Promise<any>;
23
24
  };
24
25
  export default _default;
25
26
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/gits/index.ts"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,CAAC;AAMhC,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;;yBA2BrB,WAAW;;;;;;;;;0BAiCV,UAAU;;;;iCA8BH,MAAM;6BA5EjC,MAAM,YACT;QACR,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB;mCAoFmC,MAAM;;AAG5C,wBAME"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/gits/index.ts"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,CAAC;AAMhC,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;;yBA2BrB,WAAW;;;;;;;;;0BAkCV,UAAU;;;;iCA8BH,MAAM;6BA7EjC,MAAM,YACT;QACR,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB;mCAiGmC,MAAM;6BAZN,MAAM;;AAe5C,wBAOE"}
@@ -2,6 +2,7 @@ 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 rollbackToPreviousBundle(): Promise<boolean>;
5
6
  declare function getVersionAsNumber(): Promise<number>;
6
7
  declare function setCurrentVersion(version: number): Promise<boolean>;
7
8
  declare function resetApp(): Promise<void>;
@@ -15,6 +16,7 @@ declare const _default: {
15
16
  resetApp: typeof resetApp;
16
17
  getCurrentVersion: typeof getVersionAsNumber;
17
18
  setCurrentVersion: typeof setCurrentVersion;
19
+ rollbackToPreviousBundle: typeof rollbackToPreviousBundle;
18
20
  git: {
19
21
  removeGitUpdate: (folder?: string) => void;
20
22
  cloneRepo: (options: import("./type").CloneOption) => Promise<{
@@ -35,6 +37,7 @@ declare const _default: {
35
37
  userName?: string;
36
38
  email?: string;
37
39
  }) => Promise<void>;
40
+ getConfig: (folderName?: string) => Promise<any>;
38
41
  checkForGitUpdate: (options: UpdateGitOption) => Promise<void>;
39
42
  };
40
43
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AA+C5D,iBAAS,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE3E;AACD,iBAAS,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE5D;AAOD,iBAAe,kBAAkB,oBAGhC;AACD,iBAAS,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE5D;AACD,iBAAe,QAAQ,kBAEtB;AACD,iBAAS,YAAY,CAAC,mBAAmB,CAAC,EAAE,OAAO,QAWlD;AAKD,iBAAe,iBAAiB,CAC9B,eAAe,EAAE,eAAe,EAChC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,YAAY,iBA8CtB;;;;;;;;;;mCA4D8B,MAAM;;;;;;;;;;;;;;;;oBArLX,CAAC;iBAEd,CAAC;;qCAwH4B,eAAe;;;AAgDzD,wBAgBE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AA+C5D,iBAAS,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE3E;AACD,iBAAS,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE5D;AAOD,iBAAS,wBAAwB,IAAI,OAAO,CAAC,OAAO,CAAC,CAEpD;AACD,iBAAe,kBAAkB,oBAGhC;AACD,iBAAS,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE5D;AACD,iBAAe,QAAQ,kBAEtB;AACD,iBAAS,YAAY,CAAC,mBAAmB,CAAC,EAAE,OAAO,QAWlD;AAKD,iBAAe,iBAAiB,CAC9B,eAAe,EAAE,eAAe,EAChC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,YAAY,iBA8CtB;;;;;;;;;;;mCAgE8B,MAAM;;;;;;;;;;;;;;;;oBA5LX,CAAC;iBAEd,CAAC;;;qCA2H4B,eAAe;;;AAmDzD,wBAiBE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-ota-hot-update",
3
- "version": "2.0.6",
3
+ "version": "2.0.8",
4
4
  "description": "Hot update for react native",
5
5
  "source": "./src/index.tsx",
6
6
  "main": "./lib/commonjs/index.js",
@@ -8,6 +8,7 @@ export interface Spec extends TurboModule {
8
8
  restart(): void;
9
9
  getCurrentVersion(a: number): Promise<string>;
10
10
  setCurrentVersion(version: string): Promise<boolean>;
11
+ rollbackToPreviousBundle(a: number): Promise<boolean>;
11
12
  }
12
13
 
13
14
  export default TurboModuleRegistry.getEnforcing<Spec>('OtaHotUpdate');
package/src/gits/index.ts CHANGED
@@ -47,10 +47,6 @@ const cloneRepo = async (options: CloneOption) => {
47
47
  }
48
48
  },
49
49
  });
50
- await setConfig(options?.folderName, {
51
- email: options?.email,
52
- userName: options?.userName,
53
- });
54
50
  return {
55
51
  success: true,
56
52
  msg: null,
@@ -62,6 +58,11 @@ const cloneRepo = async (options: CloneOption) => {
62
58
  msg: e.toString(),
63
59
  bundle: null,
64
60
  };
61
+ } finally {
62
+ setConfig(options?.folderName, {
63
+ email: options?.email,
64
+ userName: options?.userName,
65
+ });
65
66
  }
66
67
  };
67
68
  const pullUpdate = async (options: PullOption) => {
@@ -106,6 +107,18 @@ const getBranchName = async (folderName?: string) => {
106
107
  return null;
107
108
  }
108
109
  };
110
+ const getConfig = async (folderName?: string) => {
111
+ try {
112
+ return await git.getConfig({
113
+ fs,
114
+ dir: getFolder(folderName),
115
+ path: 'remote.origin.url',
116
+ });
117
+ } catch (e: any) {
118
+ console.log(e.toString());
119
+ return null;
120
+ }
121
+ };
109
122
  const removeGitUpdate = (folderName?: string) => {
110
123
  fs.promises.unlink(getFolder(folderName));
111
124
  };
@@ -115,4 +128,5 @@ export default {
115
128
  getBranchName,
116
129
  setConfig,
117
130
  removeGitUpdate,
131
+ getConfig,
118
132
  };
package/src/index.tsx CHANGED
@@ -59,6 +59,9 @@ function deleteBundlePath(): Promise<boolean> {
59
59
  function getCurrentVersion(): Promise<string> {
60
60
  return RNhotupdate.getCurrentVersion(0);
61
61
  }
62
+ function rollbackToPreviousBundle(): Promise<boolean> {
63
+ return RNhotupdate.rollbackToPreviousBundle(0);
64
+ }
62
65
  async function getVersionAsNumber() {
63
66
  const rawVersion = await getCurrentVersion();
64
67
  return +rawVersion;
@@ -141,8 +144,11 @@ const checkForGitUpdate = async (options: UpdateGitOption) => {
141
144
  if (!options.url || !options.bundlePath) {
142
145
  throw new Error(`url or bundlePath should not be null`);
143
146
  }
144
- const branch = await git.getBranchName();
145
- if (branch) {
147
+ const [config, branch] = await Promise.all([
148
+ git.getConfig(),
149
+ git.getBranchName(),
150
+ ]);
151
+ if (branch && config) {
146
152
  const pull = await git.pullUpdate({
147
153
  branch,
148
154
  onProgress: options?.onProgress,
@@ -192,6 +198,7 @@ export default {
192
198
  resetApp,
193
199
  getCurrentVersion: getVersionAsNumber,
194
200
  setCurrentVersion,
201
+ rollbackToPreviousBundle,
195
202
  git: {
196
203
  checkForGitUpdate,
197
204
  ...git,