@onekeyfe/react-native-bundle-update 1.1.38 → 1.1.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/src/main/java/com/margelo/nitro/reactnativebundleupdate/ReactNativeBundleUpdate.kt +74 -2
- package/ios/ReactNativeBundleUpdate.swift +58 -1
- package/lib/typescript/src/ReactNativeBundleUpdate.nitro.d.ts +2 -0
- package/lib/typescript/src/ReactNativeBundleUpdate.nitro.d.ts.map +1 -1
- package/nitrogen/generated/android/c++/JHybridReactNativeBundleUpdateSpec.cpp +32 -0
- package/nitrogen/generated/android/c++/JHybridReactNativeBundleUpdateSpec.hpp +2 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativebundleupdate/HybridReactNativeBundleUpdateSpec.kt +8 -0
- package/nitrogen/generated/ios/c++/HybridReactNativeBundleUpdateSpecSwift.hpp +16 -0
- package/nitrogen/generated/ios/swift/HybridReactNativeBundleUpdateSpec.swift +2 -0
- package/nitrogen/generated/ios/swift/HybridReactNativeBundleUpdateSpec_cxx.swift +38 -0
- package/nitrogen/generated/shared/c++/HybridReactNativeBundleUpdateSpec.cpp +2 -0
- package/nitrogen/generated/shared/c++/HybridReactNativeBundleUpdateSpec.hpp +2 -0
- package/package.json +1 -1
- package/src/ReactNativeBundleUpdate.nitro.ts +2 -0
package/android/src/main/java/com/margelo/nitro/reactnativebundleupdate/ReactNativeBundleUpdate.kt
CHANGED
|
@@ -95,7 +95,7 @@ P2Q5dClenjjjVA==
|
|
|
95
95
|
object BundleUpdateStoreAndroid {
|
|
96
96
|
private val bcProvider = BouncyCastleProvider()
|
|
97
97
|
private const val PREFS_NAME = "BundleUpdatePrefs"
|
|
98
|
-
|
|
98
|
+
internal const val NATIVE_VERSION_PREFS_NAME = "NativeVersionPrefs"
|
|
99
99
|
private const val CURRENT_BUNDLE_VERSION_KEY = "currentBundleVersion"
|
|
100
100
|
|
|
101
101
|
fun getDownloadBundleDir(context: Context): String {
|
|
@@ -173,7 +173,7 @@ object BundleUpdateStoreAndroid {
|
|
|
173
173
|
|
|
174
174
|
fun clearUpdateBundleData(context: Context) {
|
|
175
175
|
val prefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE)
|
|
176
|
-
prefs.edit().clear().
|
|
176
|
+
prefs.edit().clear().commit()
|
|
177
177
|
// Clear all signature files
|
|
178
178
|
val ascDir = File(getAscDir(context))
|
|
179
179
|
if (ascDir.exists()) {
|
|
@@ -207,6 +207,47 @@ object BundleUpdateStoreAndroid {
|
|
|
207
207
|
prefs.edit().putString("nativeVersion", nativeVersion).apply()
|
|
208
208
|
}
|
|
209
209
|
|
|
210
|
+
fun getBuildNumber(context: Context): String {
|
|
211
|
+
return try {
|
|
212
|
+
val pm = context.packageManager
|
|
213
|
+
val pi = pm.getPackageInfo(context.packageName, 0)
|
|
214
|
+
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.P) {
|
|
215
|
+
pi.longVersionCode.toString()
|
|
216
|
+
} else {
|
|
217
|
+
@Suppress("DEPRECATION")
|
|
218
|
+
pi.versionCode.toString()
|
|
219
|
+
}
|
|
220
|
+
} catch (e: Exception) {
|
|
221
|
+
OneKeyLog.error("BundleUpdate", "Error getting build number: ${e.message}")
|
|
222
|
+
""
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
fun getNativeBuildNumber(context: Context): String {
|
|
227
|
+
val prefs = context.getSharedPreferences(NATIVE_VERSION_PREFS_NAME, Context.MODE_PRIVATE)
|
|
228
|
+
return prefs.getString("nativeBuildNumber", "") ?: ""
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
fun setNativeBuildNumber(context: Context, buildNumber: String) {
|
|
232
|
+
val prefs = context.getSharedPreferences(NATIVE_VERSION_PREFS_NAME, Context.MODE_PRIVATE)
|
|
233
|
+
prefs.edit().putString("nativeBuildNumber", buildNumber).apply()
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
fun clearNativeVersionPrefs(context: Context) {
|
|
237
|
+
val prefs = context.getSharedPreferences(NATIVE_VERSION_PREFS_NAME, Context.MODE_PRIVATE)
|
|
238
|
+
prefs.edit().remove("nativeVersion").remove("nativeBuildNumber").apply()
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
fun getBuiltinBundleVersion(context: Context): String {
|
|
242
|
+
return try {
|
|
243
|
+
val appInfo = context.packageManager.getApplicationInfo(context.packageName, android.content.pm.PackageManager.GET_META_DATA)
|
|
244
|
+
appInfo.metaData?.getString("BUNDLE_VERSION") ?: ""
|
|
245
|
+
} catch (e: Exception) {
|
|
246
|
+
OneKeyLog.error("BundleUpdate", "Error getting builtin bundle version: ${e.message}")
|
|
247
|
+
""
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
|
|
210
251
|
fun calculateSHA256(filePath: String): String? {
|
|
211
252
|
return try {
|
|
212
253
|
val digest = MessageDigest.getInstance("SHA-256")
|
|
@@ -513,6 +554,16 @@ object BundleUpdateStoreAndroid {
|
|
|
513
554
|
if (currentAppVersion != prevNativeVersion) {
|
|
514
555
|
OneKeyLog.info("BundleUpdate", "currentAppVersion is not equal to prevNativeVersion $currentAppVersion $prevNativeVersion")
|
|
515
556
|
clearUpdateBundleData(context)
|
|
557
|
+
clearNativeVersionPrefs(context)
|
|
558
|
+
return null
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
val currentBuildNumber = getBuildNumber(context)
|
|
562
|
+
val prevBuildNumber = getNativeBuildNumber(context)
|
|
563
|
+
if (currentBuildNumber.isNotEmpty() && prevBuildNumber.isNotEmpty() && currentBuildNumber != prevBuildNumber) {
|
|
564
|
+
OneKeyLog.info("BundleUpdate", "buildNumber changed from $prevBuildNumber to $currentBuildNumber, clearing bundle data")
|
|
565
|
+
clearUpdateBundleData(context)
|
|
566
|
+
clearNativeVersionPrefs(context)
|
|
516
567
|
return null
|
|
517
568
|
}
|
|
518
569
|
|
|
@@ -1008,6 +1059,8 @@ class ReactNativeBundleUpdate : HybridReactNativeBundleUpdateSpec() {
|
|
|
1008
1059
|
BundleUpdateStoreAndroid.setCurrentBundleVersionAndSignature(context, folderName, signature)
|
|
1009
1060
|
val nativeVersion = BundleUpdateStoreAndroid.getAppVersion(context) ?: ""
|
|
1010
1061
|
BundleUpdateStoreAndroid.setNativeVersion(context, nativeVersion)
|
|
1062
|
+
val buildNumber = BundleUpdateStoreAndroid.getBuildNumber(context)
|
|
1063
|
+
BundleUpdateStoreAndroid.setNativeBuildNumber(context, buildNumber)
|
|
1011
1064
|
|
|
1012
1065
|
// Manage fallback data
|
|
1013
1066
|
try {
|
|
@@ -1097,6 +1150,7 @@ class ReactNativeBundleUpdate : HybridReactNativeBundleUpdateSpec() {
|
|
|
1097
1150
|
OneKeyLog.info("BundleUpdate", "clearAllJSBundleData: deleted bundle dir")
|
|
1098
1151
|
}
|
|
1099
1152
|
BundleUpdateStoreAndroid.clearUpdateBundleData(context)
|
|
1153
|
+
BundleUpdateStoreAndroid.clearNativeVersionPrefs(context)
|
|
1100
1154
|
|
|
1101
1155
|
OneKeyLog.info("BundleUpdate", "clearAllJSBundleData: completed successfully")
|
|
1102
1156
|
TestResult(success = true, message = "Successfully cleared all JS bundle data")
|
|
@@ -1197,6 +1251,24 @@ class ReactNativeBundleUpdate : HybridReactNativeBundleUpdateSpec() {
|
|
|
1197
1251
|
}
|
|
1198
1252
|
}
|
|
1199
1253
|
|
|
1254
|
+
override fun getNativeBuildNumber(): Promise<String> {
|
|
1255
|
+
return Promise.async {
|
|
1256
|
+
val context = getContext()
|
|
1257
|
+
val buildNumber = BundleUpdateStoreAndroid.getBuildNumber(context)
|
|
1258
|
+
OneKeyLog.info("BundleUpdate", "getNativeBuildNumber: $buildNumber")
|
|
1259
|
+
buildNumber
|
|
1260
|
+
}
|
|
1261
|
+
}
|
|
1262
|
+
|
|
1263
|
+
override fun getBuiltinBundleVersion(): Promise<String> {
|
|
1264
|
+
return Promise.async {
|
|
1265
|
+
val context = getContext()
|
|
1266
|
+
val version = BundleUpdateStoreAndroid.getBuiltinBundleVersion(context)
|
|
1267
|
+
OneKeyLog.info("BundleUpdate", "getBuiltinBundleVersion: $version")
|
|
1268
|
+
version
|
|
1269
|
+
}
|
|
1270
|
+
}
|
|
1271
|
+
|
|
1200
1272
|
override fun testVerification(): Promise<Boolean> {
|
|
1201
1273
|
return Promise.async {
|
|
1202
1274
|
val testSignature = """-----BEGIN PGP SIGNED MESSAGE-----
|
|
@@ -67,6 +67,7 @@ P2Q5dClenjjjVA==
|
|
|
67
67
|
public class BundleUpdateStore: NSObject {
|
|
68
68
|
private static let bundlePrefsKey = "currentBundleVersion"
|
|
69
69
|
private static let nativeVersionKey = "nativeVersion"
|
|
70
|
+
private static let nativeBuildNumberKey = "nativeBuildNumber"
|
|
70
71
|
|
|
71
72
|
public static func documentDirectory() -> String {
|
|
72
73
|
NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
|
|
@@ -178,6 +179,29 @@ public class BundleUpdateStore: NSObject {
|
|
|
178
179
|
UserDefaults.standard.synchronize()
|
|
179
180
|
}
|
|
180
181
|
|
|
182
|
+
public static func getCurrentNativeBuildNumber() -> String {
|
|
183
|
+
Bundle.main.infoDictionary?["CFBundleVersion"] as? String ?? ""
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
public static func getNativeBuildNumber() -> String? {
|
|
187
|
+
UserDefaults.standard.string(forKey: nativeBuildNumberKey)
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
public static func setNativeBuildNumber(_ buildNumber: String) {
|
|
191
|
+
UserDefaults.standard.set(buildNumber, forKey: nativeBuildNumberKey)
|
|
192
|
+
UserDefaults.standard.synchronize()
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
public static func clearNativeVersionPrefs() {
|
|
196
|
+
let ud = UserDefaults.standard
|
|
197
|
+
ud.removeObject(forKey: nativeVersionKey)
|
|
198
|
+
ud.removeObject(forKey: nativeBuildNumberKey)
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
public static func getBuiltinBundleVersion() -> String {
|
|
202
|
+
Bundle.main.infoDictionary?["BUNDLE_VERSION"] as? String ?? ""
|
|
203
|
+
}
|
|
204
|
+
|
|
181
205
|
public static func getMetadataFilePath(_ currentBundleVersion: String) -> String? {
|
|
182
206
|
let path = (bundleDir() as NSString)
|
|
183
207
|
.appendingPathComponent(currentBundleVersion)
|
|
@@ -402,6 +426,21 @@ public class BundleUpdateStore: NSObject {
|
|
|
402
426
|
deleteSignatureFile(cbv)
|
|
403
427
|
ud.removeObject(forKey: "currentBundleVersion")
|
|
404
428
|
}
|
|
429
|
+
clearNativeVersionPrefs()
|
|
430
|
+
ud.synchronize()
|
|
431
|
+
return nil
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
let currentBuildNumber = getCurrentNativeBuildNumber()
|
|
435
|
+
let prevBuildNumber = getNativeBuildNumber()
|
|
436
|
+
if !currentBuildNumber.isEmpty && prevBuildNumber != nil && currentBuildNumber != prevBuildNumber {
|
|
437
|
+
OneKeyLog.info("BundleUpdate", "buildNumber changed from \(prevBuildNumber ?? "") to \(currentBuildNumber), clearing bundle data")
|
|
438
|
+
let ud = UserDefaults.standard
|
|
439
|
+
if let cbv = ud.string(forKey: "currentBundleVersion") {
|
|
440
|
+
deleteSignatureFile(cbv)
|
|
441
|
+
ud.removeObject(forKey: "currentBundleVersion")
|
|
442
|
+
}
|
|
443
|
+
clearNativeVersionPrefs()
|
|
405
444
|
ud.synchronize()
|
|
406
445
|
return nil
|
|
407
446
|
}
|
|
@@ -972,6 +1011,8 @@ class ReactNativeBundleUpdate: HybridReactNativeBundleUpdateSpec {
|
|
|
972
1011
|
}
|
|
973
1012
|
let currentNativeVersion = BundleUpdateStore.getCurrentNativeVersion()
|
|
974
1013
|
BundleUpdateStore.setNativeVersion(currentNativeVersion)
|
|
1014
|
+
let currentBuildNumber = BundleUpdateStore.getCurrentNativeBuildNumber()
|
|
1015
|
+
BundleUpdateStore.setNativeBuildNumber(currentBuildNumber)
|
|
975
1016
|
ud.synchronize()
|
|
976
1017
|
|
|
977
1018
|
// Manage fallback data
|
|
@@ -1059,7 +1100,7 @@ class ReactNativeBundleUpdate: HybridReactNativeBundleUpdateSpec {
|
|
|
1059
1100
|
ud.removeObject(forKey: "currentBundleVersion")
|
|
1060
1101
|
OneKeyLog.info("BundleUpdate", "clearAllJSBundleData: removed currentBundleVersion=\(cbv)")
|
|
1061
1102
|
}
|
|
1062
|
-
|
|
1103
|
+
BundleUpdateStore.clearNativeVersionPrefs()
|
|
1063
1104
|
ud.synchronize()
|
|
1064
1105
|
|
|
1065
1106
|
OneKeyLog.info("BundleUpdate", "clearAllJSBundleData: completed successfully")
|
|
@@ -1157,6 +1198,22 @@ class ReactNativeBundleUpdate: HybridReactNativeBundleUpdateSpec {
|
|
|
1157
1198
|
}
|
|
1158
1199
|
}
|
|
1159
1200
|
|
|
1201
|
+
func getNativeBuildNumber() throws -> Promise<String> {
|
|
1202
|
+
return Promise.async {
|
|
1203
|
+
let buildNumber = BundleUpdateStore.getCurrentNativeBuildNumber()
|
|
1204
|
+
OneKeyLog.info("BundleUpdate", "getNativeBuildNumber: \(buildNumber)")
|
|
1205
|
+
return buildNumber
|
|
1206
|
+
}
|
|
1207
|
+
}
|
|
1208
|
+
|
|
1209
|
+
func getBuiltinBundleVersion() throws -> Promise<String> {
|
|
1210
|
+
return Promise.async {
|
|
1211
|
+
let version = BundleUpdateStore.getBuiltinBundleVersion()
|
|
1212
|
+
OneKeyLog.info("BundleUpdate", "getBuiltinBundleVersion: \(version)")
|
|
1213
|
+
return version
|
|
1214
|
+
}
|
|
1215
|
+
}
|
|
1216
|
+
|
|
1160
1217
|
func testVerification() throws -> Promise<Bool> {
|
|
1161
1218
|
return Promise.async {
|
|
1162
1219
|
let testSignature = """
|
|
@@ -87,6 +87,8 @@ export interface ReactNativeBundleUpdate extends HybridObject<{
|
|
|
87
87
|
getJsBundlePath(): string;
|
|
88
88
|
getJsBundlePathAsync(): Promise<string>;
|
|
89
89
|
getNativeAppVersion(): Promise<string>;
|
|
90
|
+
getNativeBuildNumber(): Promise<string>;
|
|
91
|
+
getBuiltinBundleVersion(): Promise<string>;
|
|
90
92
|
testVerification(): Promise<boolean>;
|
|
91
93
|
testSkipVerification(): Promise<boolean>;
|
|
92
94
|
isSkipGpgVerificationAllowed(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactNativeBundleUpdate.nitro.d.ts","sourceRoot":"","sources":["../../../src/ReactNativeBundleUpdate.nitro.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ReactNativeBundleUpdate.nitro.d.ts","sourceRoot":"","sources":["../../../src/ReactNativeBundleUpdate.nitro.ts"],"names":[],"mappings":"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"}
|
|
@@ -316,6 +316,38 @@ namespace margelo::nitro::reactnativebundleupdate {
|
|
|
316
316
|
return __promise;
|
|
317
317
|
}();
|
|
318
318
|
}
|
|
319
|
+
std::shared_ptr<Promise<std::string>> JHybridReactNativeBundleUpdateSpec::getNativeBuildNumber() {
|
|
320
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("getNativeBuildNumber");
|
|
321
|
+
auto __result = method(_javaPart);
|
|
322
|
+
return [&]() {
|
|
323
|
+
auto __promise = Promise<std::string>::create();
|
|
324
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
|
|
325
|
+
auto __result = jni::static_ref_cast<jni::JString>(__boxedResult);
|
|
326
|
+
__promise->resolve(__result->toStdString());
|
|
327
|
+
});
|
|
328
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
329
|
+
jni::JniException __jniError(__throwable);
|
|
330
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
331
|
+
});
|
|
332
|
+
return __promise;
|
|
333
|
+
}();
|
|
334
|
+
}
|
|
335
|
+
std::shared_ptr<Promise<std::string>> JHybridReactNativeBundleUpdateSpec::getBuiltinBundleVersion() {
|
|
336
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("getBuiltinBundleVersion");
|
|
337
|
+
auto __result = method(_javaPart);
|
|
338
|
+
return [&]() {
|
|
339
|
+
auto __promise = Promise<std::string>::create();
|
|
340
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
|
|
341
|
+
auto __result = jni::static_ref_cast<jni::JString>(__boxedResult);
|
|
342
|
+
__promise->resolve(__result->toStdString());
|
|
343
|
+
});
|
|
344
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
345
|
+
jni::JniException __jniError(__throwable);
|
|
346
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
347
|
+
});
|
|
348
|
+
return __promise;
|
|
349
|
+
}();
|
|
350
|
+
}
|
|
319
351
|
std::shared_ptr<Promise<bool>> JHybridReactNativeBundleUpdateSpec::testVerification() {
|
|
320
352
|
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("testVerification");
|
|
321
353
|
auto __result = method(_javaPart);
|
|
@@ -69,6 +69,8 @@ namespace margelo::nitro::reactnativebundleupdate {
|
|
|
69
69
|
std::string getJsBundlePath() override;
|
|
70
70
|
std::shared_ptr<Promise<std::string>> getJsBundlePathAsync() override;
|
|
71
71
|
std::shared_ptr<Promise<std::string>> getNativeAppVersion() override;
|
|
72
|
+
std::shared_ptr<Promise<std::string>> getNativeBuildNumber() override;
|
|
73
|
+
std::shared_ptr<Promise<std::string>> getBuiltinBundleVersion() override;
|
|
72
74
|
std::shared_ptr<Promise<bool>> testVerification() override;
|
|
73
75
|
std::shared_ptr<Promise<bool>> testSkipVerification() override;
|
|
74
76
|
bool isSkipGpgVerificationAllowed() override;
|
|
@@ -106,6 +106,14 @@ abstract class HybridReactNativeBundleUpdateSpec: HybridObject() {
|
|
|
106
106
|
@Keep
|
|
107
107
|
abstract fun getNativeAppVersion(): Promise<String>
|
|
108
108
|
|
|
109
|
+
@DoNotStrip
|
|
110
|
+
@Keep
|
|
111
|
+
abstract fun getNativeBuildNumber(): Promise<String>
|
|
112
|
+
|
|
113
|
+
@DoNotStrip
|
|
114
|
+
@Keep
|
|
115
|
+
abstract fun getBuiltinBundleVersion(): Promise<String>
|
|
116
|
+
|
|
109
117
|
@DoNotStrip
|
|
110
118
|
@Keep
|
|
111
119
|
abstract fun testVerification(): Promise<Boolean>
|
|
@@ -218,6 +218,22 @@ namespace margelo::nitro::reactnativebundleupdate {
|
|
|
218
218
|
auto __value = std::move(__result.value());
|
|
219
219
|
return __value;
|
|
220
220
|
}
|
|
221
|
+
inline std::shared_ptr<Promise<std::string>> getNativeBuildNumber() override {
|
|
222
|
+
auto __result = _swiftPart.getNativeBuildNumber();
|
|
223
|
+
if (__result.hasError()) [[unlikely]] {
|
|
224
|
+
std::rethrow_exception(__result.error());
|
|
225
|
+
}
|
|
226
|
+
auto __value = std::move(__result.value());
|
|
227
|
+
return __value;
|
|
228
|
+
}
|
|
229
|
+
inline std::shared_ptr<Promise<std::string>> getBuiltinBundleVersion() override {
|
|
230
|
+
auto __result = _swiftPart.getBuiltinBundleVersion();
|
|
231
|
+
if (__result.hasError()) [[unlikely]] {
|
|
232
|
+
std::rethrow_exception(__result.error());
|
|
233
|
+
}
|
|
234
|
+
auto __value = std::move(__result.value());
|
|
235
|
+
return __value;
|
|
236
|
+
}
|
|
221
237
|
inline std::shared_ptr<Promise<bool>> testVerification() override {
|
|
222
238
|
auto __result = _swiftPart.testVerification();
|
|
223
239
|
if (__result.hasError()) [[unlikely]] {
|
|
@@ -29,6 +29,8 @@ public protocol HybridReactNativeBundleUpdateSpec_protocol: HybridObject {
|
|
|
29
29
|
func getJsBundlePath() throws -> String
|
|
30
30
|
func getJsBundlePathAsync() throws -> Promise<String>
|
|
31
31
|
func getNativeAppVersion() throws -> Promise<String>
|
|
32
|
+
func getNativeBuildNumber() throws -> Promise<String>
|
|
33
|
+
func getBuiltinBundleVersion() throws -> Promise<String>
|
|
32
34
|
func testVerification() throws -> Promise<Bool>
|
|
33
35
|
func testSkipVerification() throws -> Promise<Bool>
|
|
34
36
|
func isSkipGpgVerificationAllowed() throws -> Bool
|
|
@@ -394,6 +394,44 @@ open class HybridReactNativeBundleUpdateSpec_cxx {
|
|
|
394
394
|
}
|
|
395
395
|
}
|
|
396
396
|
|
|
397
|
+
@inline(__always)
|
|
398
|
+
public final func getNativeBuildNumber() -> bridge.Result_std__shared_ptr_Promise_std__string___ {
|
|
399
|
+
do {
|
|
400
|
+
let __result = try self.__implementation.getNativeBuildNumber()
|
|
401
|
+
let __resultCpp = { () -> bridge.std__shared_ptr_Promise_std__string__ in
|
|
402
|
+
let __promise = bridge.create_std__shared_ptr_Promise_std__string__()
|
|
403
|
+
let __promiseHolder = bridge.wrap_std__shared_ptr_Promise_std__string__(__promise)
|
|
404
|
+
__result
|
|
405
|
+
.then({ __result in __promiseHolder.resolve(std.string(__result)) })
|
|
406
|
+
.catch({ __error in __promiseHolder.reject(__error.toCpp()) })
|
|
407
|
+
return __promise
|
|
408
|
+
}()
|
|
409
|
+
return bridge.create_Result_std__shared_ptr_Promise_std__string___(__resultCpp)
|
|
410
|
+
} catch (let __error) {
|
|
411
|
+
let __exceptionPtr = __error.toCpp()
|
|
412
|
+
return bridge.create_Result_std__shared_ptr_Promise_std__string___(__exceptionPtr)
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
@inline(__always)
|
|
417
|
+
public final func getBuiltinBundleVersion() -> bridge.Result_std__shared_ptr_Promise_std__string___ {
|
|
418
|
+
do {
|
|
419
|
+
let __result = try self.__implementation.getBuiltinBundleVersion()
|
|
420
|
+
let __resultCpp = { () -> bridge.std__shared_ptr_Promise_std__string__ in
|
|
421
|
+
let __promise = bridge.create_std__shared_ptr_Promise_std__string__()
|
|
422
|
+
let __promiseHolder = bridge.wrap_std__shared_ptr_Promise_std__string__(__promise)
|
|
423
|
+
__result
|
|
424
|
+
.then({ __result in __promiseHolder.resolve(std.string(__result)) })
|
|
425
|
+
.catch({ __error in __promiseHolder.reject(__error.toCpp()) })
|
|
426
|
+
return __promise
|
|
427
|
+
}()
|
|
428
|
+
return bridge.create_Result_std__shared_ptr_Promise_std__string___(__resultCpp)
|
|
429
|
+
} catch (let __error) {
|
|
430
|
+
let __exceptionPtr = __error.toCpp()
|
|
431
|
+
return bridge.create_Result_std__shared_ptr_Promise_std__string___(__exceptionPtr)
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
|
|
397
435
|
@inline(__always)
|
|
398
436
|
public final func testVerification() -> bridge.Result_std__shared_ptr_Promise_bool___ {
|
|
399
437
|
do {
|
|
@@ -29,6 +29,8 @@ namespace margelo::nitro::reactnativebundleupdate {
|
|
|
29
29
|
prototype.registerHybridMethod("getJsBundlePath", &HybridReactNativeBundleUpdateSpec::getJsBundlePath);
|
|
30
30
|
prototype.registerHybridMethod("getJsBundlePathAsync", &HybridReactNativeBundleUpdateSpec::getJsBundlePathAsync);
|
|
31
31
|
prototype.registerHybridMethod("getNativeAppVersion", &HybridReactNativeBundleUpdateSpec::getNativeAppVersion);
|
|
32
|
+
prototype.registerHybridMethod("getNativeBuildNumber", &HybridReactNativeBundleUpdateSpec::getNativeBuildNumber);
|
|
33
|
+
prototype.registerHybridMethod("getBuiltinBundleVersion", &HybridReactNativeBundleUpdateSpec::getBuiltinBundleVersion);
|
|
32
34
|
prototype.registerHybridMethod("testVerification", &HybridReactNativeBundleUpdateSpec::testVerification);
|
|
33
35
|
prototype.registerHybridMethod("testSkipVerification", &HybridReactNativeBundleUpdateSpec::testSkipVerification);
|
|
34
36
|
prototype.registerHybridMethod("isSkipGpgVerificationAllowed", &HybridReactNativeBundleUpdateSpec::isSkipGpgVerificationAllowed);
|
|
@@ -101,6 +101,8 @@ namespace margelo::nitro::reactnativebundleupdate {
|
|
|
101
101
|
virtual std::string getJsBundlePath() = 0;
|
|
102
102
|
virtual std::shared_ptr<Promise<std::string>> getJsBundlePathAsync() = 0;
|
|
103
103
|
virtual std::shared_ptr<Promise<std::string>> getNativeAppVersion() = 0;
|
|
104
|
+
virtual std::shared_ptr<Promise<std::string>> getNativeBuildNumber() = 0;
|
|
105
|
+
virtual std::shared_ptr<Promise<std::string>> getBuiltinBundleVersion() = 0;
|
|
104
106
|
virtual std::shared_ptr<Promise<bool>> testVerification() = 0;
|
|
105
107
|
virtual std::shared_ptr<Promise<bool>> testSkipVerification() = 0;
|
|
106
108
|
virtual bool isSkipGpgVerificationAllowed() = 0;
|
package/package.json
CHANGED
|
@@ -109,6 +109,8 @@ export interface ReactNativeBundleUpdate
|
|
|
109
109
|
getJsBundlePath(): string;
|
|
110
110
|
getJsBundlePathAsync(): Promise<string>;
|
|
111
111
|
getNativeAppVersion(): Promise<string>;
|
|
112
|
+
getNativeBuildNumber(): Promise<string>;
|
|
113
|
+
getBuiltinBundleVersion(): Promise<string>;
|
|
112
114
|
|
|
113
115
|
// Verification & testing
|
|
114
116
|
testVerification(): Promise<boolean>;
|