react-native-ota-hot-update 2.3.5 → 2.4.0-rc.1

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 (38) hide show
  1. package/android/generated/java/com/otahotupdate/NativeOtaHotUpdateSpec.java +14 -1
  2. package/android/generated/jni/RNOtaHotUpdateSpec-generated.cpp +20 -2
  3. package/android/generated/jni/react/renderer/components/RNOtaHotUpdateSpec/RNOtaHotUpdateSpecJSI-generated.cpp +26 -2
  4. package/android/generated/jni/react/renderer/components/RNOtaHotUpdateSpec/RNOtaHotUpdateSpecJSI.h +32 -5
  5. package/android/gradle.properties +4 -0
  6. package/android/src/main/java/com/otahotupdate/OtaHotUpdate.kt +6 -1
  7. package/android/src/main/java/com/otahotupdate/OtaHotUpdateModule.kt +365 -36
  8. package/android/src/main/java/com/otahotupdate/SharedPrefs.kt +12 -0
  9. package/android/src/main/java/com/otahotupdate/Utils.kt +9 -3
  10. package/android/src/oldarch/OtaHotUpdateSpec.kt +4 -1
  11. package/ios/OtaHotUpdate.mm +383 -42
  12. package/ios/generated/RNOtaHotUpdateSpec/RNOtaHotUpdateSpec-generated.mm +23 -2
  13. package/ios/generated/RNOtaHotUpdateSpec/RNOtaHotUpdateSpec.h +12 -0
  14. package/ios/generated/RNOtaHotUpdateSpecJSI-generated.cpp +26 -2
  15. package/ios/generated/RNOtaHotUpdateSpecJSI.h +32 -5
  16. package/lib/commonjs/NativeOtaHotUpdate.js.map +1 -1
  17. package/lib/commonjs/index.js +26 -3
  18. package/lib/commonjs/index.js.map +1 -1
  19. package/lib/module/NativeOtaHotUpdate.js.map +1 -1
  20. package/lib/module/index.js +26 -3
  21. package/lib/module/index.js.map +1 -1
  22. package/lib/typescript/commonjs/src/NativeOtaHotUpdate.d.ts +4 -1
  23. package/lib/typescript/commonjs/src/NativeOtaHotUpdate.d.ts.map +1 -1
  24. package/lib/typescript/commonjs/src/index.d.ts +8 -2
  25. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  26. package/lib/typescript/commonjs/src/type.d.ts +36 -0
  27. package/lib/typescript/commonjs/src/type.d.ts.map +1 -1
  28. package/lib/typescript/module/src/NativeOtaHotUpdate.d.ts +4 -1
  29. package/lib/typescript/module/src/NativeOtaHotUpdate.d.ts.map +1 -1
  30. package/lib/typescript/module/src/index.d.ts +8 -2
  31. package/lib/typescript/module/src/index.d.ts.map +1 -1
  32. package/lib/typescript/module/src/type.d.ts +36 -0
  33. package/lib/typescript/module/src/type.d.ts.map +1 -1
  34. package/package.json +1 -1
  35. package/src/NativeOtaHotUpdate.ts +4 -1
  36. package/src/index.d.ts +25 -2
  37. package/src/index.tsx +36 -5
  38. package/src/type.ts +44 -1
@@ -19,6 +19,7 @@ import com.facebook.react.bridge.ReactContextBaseJavaModule;
19
19
  import com.facebook.react.bridge.ReactMethod;
20
20
  import com.facebook.react.turbomodule.core.interfaces.TurboModule;
21
21
  import javax.annotation.Nonnull;
22
+ import javax.annotation.Nullable;
22
23
 
23
24
  public abstract class NativeOtaHotUpdateSpec extends ReactContextBaseJavaModule implements TurboModule {
24
25
  public static final String NAME = "OtaHotUpdate";
@@ -34,7 +35,7 @@ public abstract class NativeOtaHotUpdateSpec extends ReactContextBaseJavaModule
34
35
 
35
36
  @ReactMethod
36
37
  @DoNotStrip
37
- public abstract void setupBundlePath(String path, String extension, Promise promise);
38
+ public abstract void setupBundlePath(String path, String extension, @Nullable Double version, @Nullable Double maxVersions, @Nullable String metadata, Promise promise);
38
39
 
39
40
  @ReactMethod
40
41
  @DoNotStrip
@@ -67,4 +68,16 @@ public abstract class NativeOtaHotUpdateSpec extends ReactContextBaseJavaModule
67
68
  @ReactMethod
68
69
  @DoNotStrip
69
70
  public abstract void rollbackToPreviousBundle(double a, Promise promise);
71
+
72
+ @ReactMethod
73
+ @DoNotStrip
74
+ public abstract void getBundleList(double a, Promise promise);
75
+
76
+ @ReactMethod
77
+ @DoNotStrip
78
+ public abstract void deleteBundleById(String id, Promise promise);
79
+
80
+ @ReactMethod
81
+ @DoNotStrip
82
+ public abstract void clearAllBundles(double a, Promise promise);
70
83
  }
@@ -14,7 +14,7 @@ namespace facebook::react {
14
14
 
15
15
  static facebook::jsi::Value __hostFunction_NativeOtaHotUpdateSpecJSI_setupBundlePath(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
16
16
  static jmethodID cachedMethodId = nullptr;
17
- return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "setupBundlePath", "(Ljava/lang/String;Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
17
+ return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "setupBundlePath", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Double;Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
18
18
  }
19
19
 
20
20
  static facebook::jsi::Value __hostFunction_NativeOtaHotUpdateSpecJSI_setExactBundlePath(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
@@ -57,9 +57,24 @@ static facebook::jsi::Value __hostFunction_NativeOtaHotUpdateSpecJSI_rollbackToP
57
57
  return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "rollbackToPreviousBundle", "(DLcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
58
58
  }
59
59
 
60
+ static facebook::jsi::Value __hostFunction_NativeOtaHotUpdateSpecJSI_getBundleList(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
61
+ static jmethodID cachedMethodId = nullptr;
62
+ return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "getBundleList", "(DLcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
63
+ }
64
+
65
+ static facebook::jsi::Value __hostFunction_NativeOtaHotUpdateSpecJSI_deleteBundleById(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
66
+ static jmethodID cachedMethodId = nullptr;
67
+ return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "deleteBundleById", "(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
68
+ }
69
+
70
+ static facebook::jsi::Value __hostFunction_NativeOtaHotUpdateSpecJSI_clearAllBundles(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
71
+ static jmethodID cachedMethodId = nullptr;
72
+ return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "clearAllBundles", "(DLcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
73
+ }
74
+
60
75
  NativeOtaHotUpdateSpecJSI::NativeOtaHotUpdateSpecJSI(const JavaTurboModule::InitParams &params)
61
76
  : JavaTurboModule(params) {
62
- methodMap_["setupBundlePath"] = MethodMetadata {2, __hostFunction_NativeOtaHotUpdateSpecJSI_setupBundlePath};
77
+ methodMap_["setupBundlePath"] = MethodMetadata {5, __hostFunction_NativeOtaHotUpdateSpecJSI_setupBundlePath};
63
78
  methodMap_["setExactBundlePath"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateSpecJSI_setExactBundlePath};
64
79
  methodMap_["deleteBundle"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateSpecJSI_deleteBundle};
65
80
  methodMap_["restart"] = MethodMetadata {0, __hostFunction_NativeOtaHotUpdateSpecJSI_restart};
@@ -68,6 +83,9 @@ NativeOtaHotUpdateSpecJSI::NativeOtaHotUpdateSpecJSI(const JavaTurboModule::Init
68
83
  methodMap_["setCurrentVersion"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateSpecJSI_setCurrentVersion};
69
84
  methodMap_["setUpdateMetadata"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateSpecJSI_setUpdateMetadata};
70
85
  methodMap_["rollbackToPreviousBundle"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateSpecJSI_rollbackToPreviousBundle};
86
+ methodMap_["getBundleList"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateSpecJSI_getBundleList};
87
+ methodMap_["deleteBundleById"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateSpecJSI_deleteBundleById};
88
+ methodMap_["clearAllBundles"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateSpecJSI_clearAllBundles};
71
89
  }
72
90
 
73
91
  std::shared_ptr<TurboModule> RNOtaHotUpdateSpec_ModuleProvider(const std::string &moduleName, const JavaTurboModule::InitParams &params) {
@@ -15,7 +15,10 @@ static jsi::Value __hostFunction_NativeOtaHotUpdateCxxSpecJSI_setupBundlePath(js
15
15
  return static_cast<NativeOtaHotUpdateCxxSpecJSI *>(&turboModule)->setupBundlePath(
16
16
  rt,
17
17
  count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
18
- count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asString(rt)
18
+ count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asString(rt),
19
+ count <= 2 || args[2].isUndefined() ? std::nullopt : std::make_optional(args[2].asNumber()),
20
+ count <= 3 || args[3].isUndefined() ? std::nullopt : std::make_optional(args[3].asNumber()),
21
+ count <= 4 || args[4].isUndefined() ? std::nullopt : std::make_optional(args[4].asString(rt))
19
22
  );
20
23
  }
21
24
  static jsi::Value __hostFunction_NativeOtaHotUpdateCxxSpecJSI_setExactBundlePath(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
@@ -66,10 +69,28 @@ static jsi::Value __hostFunction_NativeOtaHotUpdateCxxSpecJSI_rollbackToPrevious
66
69
  count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber()
67
70
  );
68
71
  }
72
+ static jsi::Value __hostFunction_NativeOtaHotUpdateCxxSpecJSI_getBundleList(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
73
+ return static_cast<NativeOtaHotUpdateCxxSpecJSI *>(&turboModule)->getBundleList(
74
+ rt,
75
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber()
76
+ );
77
+ }
78
+ static jsi::Value __hostFunction_NativeOtaHotUpdateCxxSpecJSI_deleteBundleById(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
79
+ return static_cast<NativeOtaHotUpdateCxxSpecJSI *>(&turboModule)->deleteBundleById(
80
+ rt,
81
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
82
+ );
83
+ }
84
+ static jsi::Value __hostFunction_NativeOtaHotUpdateCxxSpecJSI_clearAllBundles(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
85
+ return static_cast<NativeOtaHotUpdateCxxSpecJSI *>(&turboModule)->clearAllBundles(
86
+ rt,
87
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber()
88
+ );
89
+ }
69
90
 
70
91
  NativeOtaHotUpdateCxxSpecJSI::NativeOtaHotUpdateCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker)
71
92
  : TurboModule("OtaHotUpdate", jsInvoker) {
72
- methodMap_["setupBundlePath"] = MethodMetadata {2, __hostFunction_NativeOtaHotUpdateCxxSpecJSI_setupBundlePath};
93
+ methodMap_["setupBundlePath"] = MethodMetadata {5, __hostFunction_NativeOtaHotUpdateCxxSpecJSI_setupBundlePath};
73
94
  methodMap_["setExactBundlePath"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateCxxSpecJSI_setExactBundlePath};
74
95
  methodMap_["deleteBundle"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateCxxSpecJSI_deleteBundle};
75
96
  methodMap_["restart"] = MethodMetadata {0, __hostFunction_NativeOtaHotUpdateCxxSpecJSI_restart};
@@ -78,6 +99,9 @@ NativeOtaHotUpdateCxxSpecJSI::NativeOtaHotUpdateCxxSpecJSI(std::shared_ptr<CallI
78
99
  methodMap_["setCurrentVersion"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateCxxSpecJSI_setCurrentVersion};
79
100
  methodMap_["setUpdateMetadata"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateCxxSpecJSI_setUpdateMetadata};
80
101
  methodMap_["rollbackToPreviousBundle"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateCxxSpecJSI_rollbackToPreviousBundle};
102
+ methodMap_["getBundleList"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateCxxSpecJSI_getBundleList};
103
+ methodMap_["deleteBundleById"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateCxxSpecJSI_deleteBundleById};
104
+ methodMap_["clearAllBundles"] = MethodMetadata {1, __hostFunction_NativeOtaHotUpdateCxxSpecJSI_clearAllBundles};
81
105
  }
82
106
 
83
107
 
@@ -20,7 +20,7 @@ protected:
20
20
  NativeOtaHotUpdateCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker);
21
21
 
22
22
  public:
23
- virtual jsi::Value setupBundlePath(jsi::Runtime &rt, jsi::String path, jsi::String extension) = 0;
23
+ virtual jsi::Value setupBundlePath(jsi::Runtime &rt, jsi::String path, jsi::String extension, std::optional<double> version, std::optional<double> maxVersions, std::optional<jsi::String> metadata) = 0;
24
24
  virtual jsi::Value setExactBundlePath(jsi::Runtime &rt, jsi::String path) = 0;
25
25
  virtual jsi::Value deleteBundle(jsi::Runtime &rt, double i) = 0;
26
26
  virtual void restart(jsi::Runtime &rt) = 0;
@@ -29,6 +29,9 @@ public:
29
29
  virtual jsi::Value setCurrentVersion(jsi::Runtime &rt, jsi::String version) = 0;
30
30
  virtual jsi::Value setUpdateMetadata(jsi::Runtime &rt, jsi::String metadata) = 0;
31
31
  virtual jsi::Value rollbackToPreviousBundle(jsi::Runtime &rt, double a) = 0;
32
+ virtual jsi::Value getBundleList(jsi::Runtime &rt, double a) = 0;
33
+ virtual jsi::Value deleteBundleById(jsi::Runtime &rt, jsi::String id) = 0;
34
+ virtual jsi::Value clearAllBundles(jsi::Runtime &rt, double a) = 0;
32
35
 
33
36
  };
34
37
 
@@ -55,13 +58,13 @@ private:
55
58
 
56
59
  }
57
60
 
58
- jsi::Value setupBundlePath(jsi::Runtime &rt, jsi::String path, jsi::String extension) override {
61
+ jsi::Value setupBundlePath(jsi::Runtime &rt, jsi::String path, jsi::String extension, std::optional<double> version, std::optional<double> maxVersions, std::optional<jsi::String> metadata) override {
59
62
  static_assert(
60
- bridging::getParameterCount(&T::setupBundlePath) == 3,
61
- "Expected setupBundlePath(...) to have 3 parameters");
63
+ bridging::getParameterCount(&T::setupBundlePath) == 6,
64
+ "Expected setupBundlePath(...) to have 6 parameters");
62
65
 
63
66
  return bridging::callFromJs<jsi::Value>(
64
- rt, &T::setupBundlePath, jsInvoker_, instance_, std::move(path), std::move(extension));
67
+ rt, &T::setupBundlePath, jsInvoker_, instance_, std::move(path), std::move(extension), std::move(version), std::move(maxVersions), std::move(metadata));
65
68
  }
66
69
  jsi::Value setExactBundlePath(jsi::Runtime &rt, jsi::String path) override {
67
70
  static_assert(
@@ -127,6 +130,30 @@ private:
127
130
  return bridging::callFromJs<jsi::Value>(
128
131
  rt, &T::rollbackToPreviousBundle, jsInvoker_, instance_, std::move(a));
129
132
  }
133
+ jsi::Value getBundleList(jsi::Runtime &rt, double a) override {
134
+ static_assert(
135
+ bridging::getParameterCount(&T::getBundleList) == 2,
136
+ "Expected getBundleList(...) to have 2 parameters");
137
+
138
+ return bridging::callFromJs<jsi::Value>(
139
+ rt, &T::getBundleList, jsInvoker_, instance_, std::move(a));
140
+ }
141
+ jsi::Value deleteBundleById(jsi::Runtime &rt, jsi::String id) override {
142
+ static_assert(
143
+ bridging::getParameterCount(&T::deleteBundleById) == 2,
144
+ "Expected deleteBundleById(...) to have 2 parameters");
145
+
146
+ return bridging::callFromJs<jsi::Value>(
147
+ rt, &T::deleteBundleById, jsInvoker_, instance_, std::move(id));
148
+ }
149
+ jsi::Value clearAllBundles(jsi::Runtime &rt, double a) override {
150
+ static_assert(
151
+ bridging::getParameterCount(&T::clearAllBundles) == 2,
152
+ "Expected clearAllBundles(...) to have 2 parameters");
153
+
154
+ return bridging::callFromJs<jsi::Value>(
155
+ rt, &T::clearAllBundles, jsInvoker_, instance_, std::move(a));
156
+ }
130
157
 
131
158
  private:
132
159
  friend class NativeOtaHotUpdateCxxSpec;
@@ -3,3 +3,7 @@ OtaHotUpdate_minSdkVersion=21
3
3
  OtaHotUpdate_targetSdkVersion=31
4
4
  OtaHotUpdate_compileSdkVersion=31
5
5
  OtaHotUpdate_ndkversion=21.4.7075529
6
+
7
+ # Kotlin daemon configuration
8
+ kotlin.daemon.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m
9
+ kotlin.incremental=false
@@ -3,6 +3,7 @@ package com.otahotupdate
3
3
  import android.content.Context
4
4
  import android.content.pm.PackageManager
5
5
  import android.os.Build
6
+ import java.io.File
6
7
  import com.facebook.react.BaseReactPackage
7
8
  import com.facebook.react.bridge.NativeModule
8
9
  import com.facebook.react.bridge.ReactApplicationContext
@@ -66,7 +67,11 @@ class OtaHotUpdate : BaseReactPackage() {
66
67
  val pathBundle = sharedPrefs.getString(PATH)
67
68
  val version = sharedPrefs.getString(VERSION)
68
69
  val currentVersionName = sharedPrefs.getString(CURRENT_VERSION_CODE)
69
- if (pathBundle == "" || (currentVersionName != context.getVersionCode())) {
70
+ val hasBundlePath = !pathBundle.isNullOrBlank()
71
+ val isSameAppVersion = currentVersionName == context.getVersionCode()
72
+ val bundleFileExists = hasBundlePath && File(pathBundle!!).isFile
73
+
74
+ if (!hasBundlePath || !isSameAppVersion || !bundleFileExists) {
70
75
  if (pathBundle != "") {
71
76
  sharedPrefs.putString(PATH, "")
72
77
  }