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