react-native-ota-hot-update 2.1.0 → 2.1.2
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 +3 -0
- package/android/src/main/java/com/otahotupdate/OtaHotUpdate.kt +7 -1
- package/app.plugin.js +1 -0
- package/lib/commonjs/index.js +16 -22
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/index.js +16 -22
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/commonjs/plugin/src/index.d.ts +2 -0
- package/lib/typescript/commonjs/plugin/src/index.d.ts.map +1 -0
- package/lib/typescript/module/plugin/src/index.d.ts +2 -0
- package/lib/typescript/module/plugin/src/index.d.ts.map +1 -0
- package/package.json +7 -2
- package/plugin/build/index.d.ts +1 -0
- package/plugin/build/index.js +29 -0
- package/plugin/src/index.ts +41 -0
- package/plugin/tsconfig.json +9 -0
- package/plugin/tsconfig.tsbuildinfo +1 -0
- package/src/index.tsx +22 -22
package/README.md
CHANGED
|
@@ -145,6 +145,9 @@ MainApplication.java:
|
|
|
145
145
|
return OtaHotUpdate.getBundleJS();
|
|
146
146
|
}
|
|
147
147
|
```
|
|
148
|
+
|
|
149
|
+
For jave it maybe can be like: `OtaHotUpdate.Companion.getBundleJS()` depend on kotlin / jdk version on your project, you can use android studio to get the correct format coding.
|
|
150
|
+
|
|
148
151
|
Open `AndroidManifest.xml` :
|
|
149
152
|
|
|
150
153
|
`<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />`
|
|
@@ -12,6 +12,7 @@ import com.facebook.react.module.model.ReactModuleInfoProvider
|
|
|
12
12
|
import com.rnhotupdate.Common.CURRENT_VERSION_NAME
|
|
13
13
|
import com.rnhotupdate.Common.DEFAULT_BUNDLE
|
|
14
14
|
import com.rnhotupdate.Common.PATH
|
|
15
|
+
import com.rnhotupdate.Common.VERSION
|
|
15
16
|
import com.rnhotupdate.SharedPrefs
|
|
16
17
|
|
|
17
18
|
|
|
@@ -60,8 +61,13 @@ class OtaHotUpdate(context: Context?) : TurboReactPackage() {
|
|
|
60
61
|
}
|
|
61
62
|
val sharedPrefs = SharedPrefs(mContext!!)
|
|
62
63
|
val pathBundle = sharedPrefs.getString(PATH)
|
|
64
|
+
val version = sharedPrefs.getString(VERSION)
|
|
63
65
|
val currentVersionName = sharedPrefs.getString(CURRENT_VERSION_NAME)
|
|
64
|
-
if (pathBundle == "" || (
|
|
66
|
+
if (pathBundle == "" || (currentVersionName != mContext?.getPackageInfo()?.versionName)) {
|
|
67
|
+
if (version != "") {
|
|
68
|
+
// reset version number because bundle is wrong version, need download from new version
|
|
69
|
+
sharedPrefs.putString(VERSION, "")
|
|
70
|
+
}
|
|
65
71
|
return DEFAULT_BUNDLE
|
|
66
72
|
}
|
|
67
73
|
return pathBundle!!
|
package/app.plugin.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require('./plugin/build/index');
|
package/lib/commonjs/index.js
CHANGED
|
@@ -75,36 +75,30 @@ const installFail = (option, e) => {
|
|
|
75
75
|
};
|
|
76
76
|
async function downloadBundleUri(downloadManager, uri, version, option) {
|
|
77
77
|
if (!uri) {
|
|
78
|
-
installFail(option, 'Please give a valid URL!');
|
|
79
|
-
return;
|
|
78
|
+
return installFail(option, 'Please give a valid URL!');
|
|
80
79
|
}
|
|
81
80
|
if (!version) {
|
|
82
|
-
installFail(option, 'Please give a valid version!');
|
|
83
|
-
return;
|
|
81
|
+
return installFail(option, 'Please give a valid version!');
|
|
84
82
|
}
|
|
85
83
|
const currentVersion = await getVersionAsNumber();
|
|
86
84
|
if (version <= currentVersion) {
|
|
87
|
-
installFail(option, 'Please give a bigger version than the current version, the current version now has setted by: ' + currentVersion);
|
|
88
|
-
return;
|
|
85
|
+
return installFail(option, 'Please give a bigger version than the current version, the current version now has setted by: ' + currentVersion);
|
|
89
86
|
}
|
|
90
87
|
try {
|
|
91
88
|
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
|
-
} else {
|
|
107
|
-
installFail(option);
|
|
89
|
+
if (!path) {
|
|
90
|
+
return installFail(option);
|
|
91
|
+
}
|
|
92
|
+
const success = await setupBundlePath(path, option?.extensionBundle);
|
|
93
|
+
if (!success) {
|
|
94
|
+
return installFail(option);
|
|
95
|
+
}
|
|
96
|
+
setCurrentVersion(version);
|
|
97
|
+
option?.updateSuccess?.();
|
|
98
|
+
if (option?.restartAfterInstall) {
|
|
99
|
+
setTimeout(() => {
|
|
100
|
+
resetApp();
|
|
101
|
+
}, 300);
|
|
108
102
|
}
|
|
109
103
|
} catch (e) {
|
|
110
104
|
installFail(option, e);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_index","_interopRequireDefault","e","__esModule","default","LINKING_ERROR","Platform","select","ios","isTurboModuleEnabled","global","__turboModuleProxy","OtaHotUpdateModule","NativeModules","OtaHotUpdate","RNhotupdate","Proxy","get","Error","downloadBundleFile","downloadManager","uri","headers","callback","res","config","fileCache","OS","fetch","progress","received","total","path","setupBundlePath","extension","setupExactBundlePath","setExactBundlePath","deleteBundlePath","deleteBundle","getCurrentVersion","rollbackToPreviousBundle","getVersionAsNumber","rawVersion","setCurrentVersion","version","resetApp","restart","removeBundle","restartAfterRemoved","then","data","setTimeout","installFail","option","updateFail","JSON","stringify","console","error","downloadBundleUri","currentVersion","
|
|
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","success","extensionBundle","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":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -70,36 +70,30 @@ const installFail = (option, e) => {
|
|
|
70
70
|
};
|
|
71
71
|
async function downloadBundleUri(downloadManager, uri, version, option) {
|
|
72
72
|
if (!uri) {
|
|
73
|
-
installFail(option, 'Please give a valid URL!');
|
|
74
|
-
return;
|
|
73
|
+
return installFail(option, 'Please give a valid URL!');
|
|
75
74
|
}
|
|
76
75
|
if (!version) {
|
|
77
|
-
installFail(option, 'Please give a valid version!');
|
|
78
|
-
return;
|
|
76
|
+
return installFail(option, 'Please give a valid version!');
|
|
79
77
|
}
|
|
80
78
|
const currentVersion = await getVersionAsNumber();
|
|
81
79
|
if (version <= currentVersion) {
|
|
82
|
-
installFail(option, 'Please give a bigger version than the current version, the current version now has setted by: ' + currentVersion);
|
|
83
|
-
return;
|
|
80
|
+
return installFail(option, 'Please give a bigger version than the current version, the current version now has setted by: ' + currentVersion);
|
|
84
81
|
}
|
|
85
82
|
try {
|
|
86
83
|
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
|
-
} else {
|
|
102
|
-
installFail(option);
|
|
84
|
+
if (!path) {
|
|
85
|
+
return installFail(option);
|
|
86
|
+
}
|
|
87
|
+
const success = await setupBundlePath(path, option?.extensionBundle);
|
|
88
|
+
if (!success) {
|
|
89
|
+
return installFail(option);
|
|
90
|
+
}
|
|
91
|
+
setCurrentVersion(version);
|
|
92
|
+
option?.updateSuccess?.();
|
|
93
|
+
if (option?.restartAfterInstall) {
|
|
94
|
+
setTimeout(() => {
|
|
95
|
+
resetApp();
|
|
96
|
+
}, 300);
|
|
103
97
|
}
|
|
104
98
|
} catch (e) {
|
|
105
99
|
installFail(option, e);
|
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","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","
|
|
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","success","extensionBundle","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":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../plugin/src/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../plugin/src/index.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-ota-hot-update",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.2",
|
|
4
4
|
"description": "Hot update for react native",
|
|
5
5
|
"source": "./src/index.tsx",
|
|
6
6
|
"main": "./lib/commonjs/index.js",
|
|
@@ -25,7 +25,9 @@
|
|
|
25
25
|
"cpp",
|
|
26
26
|
"*.podspec",
|
|
27
27
|
"react-native.config.js",
|
|
28
|
+
"app.plugin.js",
|
|
28
29
|
"!ios/build",
|
|
30
|
+
"plugin",
|
|
29
31
|
"!android/build",
|
|
30
32
|
"!android/gradle",
|
|
31
33
|
"!android/gradlew",
|
|
@@ -43,7 +45,8 @@
|
|
|
43
45
|
"lint": "eslint \"**/*.{js,ts,tsx}\"",
|
|
44
46
|
"clean": "del-cli android/build example/android/build example/android/app/build example/ios/build lib",
|
|
45
47
|
"prepare": "bob build",
|
|
46
|
-
"release": "release-it"
|
|
48
|
+
"release": "release-it",
|
|
49
|
+
"build-plugin": "tsc --build plugin"
|
|
47
50
|
},
|
|
48
51
|
"keywords": [
|
|
49
52
|
"hot-update",
|
|
@@ -76,6 +79,7 @@
|
|
|
76
79
|
"devDependencies": {
|
|
77
80
|
"@commitlint/config-conventional": "^17.0.2",
|
|
78
81
|
"@evilmartians/lefthook": "^1.5.0",
|
|
82
|
+
"@expo/config-plugins": "^9.0.15",
|
|
79
83
|
"@react-native-community/cli": "15.0.1",
|
|
80
84
|
"@react-native/eslint-config": "^0.73.1",
|
|
81
85
|
"@release-it/conventional-changelog": "^9.0.2",
|
|
@@ -86,6 +90,7 @@
|
|
|
86
90
|
"eslint": "^8.51.0",
|
|
87
91
|
"eslint-config-prettier": "^9.0.0",
|
|
88
92
|
"eslint-plugin-prettier": "^5.0.1",
|
|
93
|
+
"expo-module-scripts": "^4.0.2",
|
|
89
94
|
"jest": "^29.7.0",
|
|
90
95
|
"prettier": "^3.0.3",
|
|
91
96
|
"react": "18.3.1",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const config_plugins_1 = require("@expo/config-plugins");
|
|
4
|
+
const withAndroidAction = (config) => {
|
|
5
|
+
return (0, config_plugins_1.withMainApplication)(config, (config) => {
|
|
6
|
+
config.modResults.contents = config.modResults.contents.replace(/override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED/g, `
|
|
7
|
+
override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED
|
|
8
|
+
|
|
9
|
+
override fun getJSBundleFile(): String = OtaHotUpdate.bundleJS`);
|
|
10
|
+
config.modResults.contents = config.modResults.contents.replace(/import expo.modules.ReactNativeHostWrapper/g, `
|
|
11
|
+
import expo.modules.ReactNativeHostWrapper
|
|
12
|
+
import com.otahotupdate.OtaHotUpdate`);
|
|
13
|
+
return config;
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
const withIosAction = (config) => {
|
|
17
|
+
return (0, config_plugins_1.withAppDelegate)(config, (config) => {
|
|
18
|
+
config.modResults.contents = config.modResults.contents.replace(/#import "AppDelegate.h"/g, `#import "AppDelegate.h"
|
|
19
|
+
#import "OtaHotUpdate.h"`);
|
|
20
|
+
config.modResults.contents = config.modResults.contents.replace(/\[\[NSBundle mainBundle\] URLForResource:@\"main\" withExtension:@\"jsbundle\"\]/, `[OtaHotUpdate getBundle]`);
|
|
21
|
+
return config;
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
const withAction = (config) => {
|
|
25
|
+
config = withAndroidAction(config);
|
|
26
|
+
config = withIosAction(config);
|
|
27
|
+
return config;
|
|
28
|
+
};
|
|
29
|
+
module.exports = withAction;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { withMainApplication, withAppDelegate } from '@expo/config-plugins';
|
|
2
|
+
const withAndroidAction: any = (config: any) => {
|
|
3
|
+
return withMainApplication(config, (config) => {
|
|
4
|
+
config.modResults.contents = config.modResults.contents.replace(
|
|
5
|
+
/override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED/g,
|
|
6
|
+
`
|
|
7
|
+
override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED
|
|
8
|
+
|
|
9
|
+
override fun getJSBundleFile(): String = OtaHotUpdate.bundleJS`
|
|
10
|
+
);
|
|
11
|
+
config.modResults.contents = config.modResults.contents.replace(
|
|
12
|
+
/import expo.modules.ReactNativeHostWrapper/g,
|
|
13
|
+
`
|
|
14
|
+
import expo.modules.ReactNativeHostWrapper
|
|
15
|
+
import com.otahotupdate.OtaHotUpdate`
|
|
16
|
+
);
|
|
17
|
+
return config;
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const withIosAction: any = (config: any) => {
|
|
22
|
+
return withAppDelegate(config, (config) => {
|
|
23
|
+
config.modResults.contents = config.modResults.contents.replace(
|
|
24
|
+
/#import "AppDelegate.h"/g,
|
|
25
|
+
`#import "AppDelegate.h"
|
|
26
|
+
#import "OtaHotUpdate.h"`
|
|
27
|
+
);
|
|
28
|
+
config.modResults.contents = config.modResults.contents.replace(
|
|
29
|
+
/\[\[NSBundle mainBundle\] URLForResource:@\"main\" withExtension:@\"jsbundle\"\]/,
|
|
30
|
+
`[OtaHotUpdate getBundle]`
|
|
31
|
+
);
|
|
32
|
+
return config;
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
const withAction: any = (config: any) => {
|
|
37
|
+
config = withAndroidAction(config);
|
|
38
|
+
config = withIosAction(config);
|
|
39
|
+
return config;
|
|
40
|
+
};
|
|
41
|
+
module.exports = withAction;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"root":["./src/index.ts"],"version":"5.7.2"}
|
package/src/index.tsx
CHANGED
|
@@ -95,22 +95,21 @@ async function downloadBundleUri(
|
|
|
95
95
|
option?: UpdateOption
|
|
96
96
|
) {
|
|
97
97
|
if (!uri) {
|
|
98
|
-
installFail(option, 'Please give a valid URL!');
|
|
99
|
-
return;
|
|
98
|
+
return installFail(option, 'Please give a valid URL!');
|
|
100
99
|
}
|
|
101
100
|
if (!version) {
|
|
102
|
-
installFail(option, 'Please give a valid version!');
|
|
103
|
-
return;
|
|
101
|
+
return installFail(option, 'Please give a valid version!');
|
|
104
102
|
}
|
|
103
|
+
|
|
105
104
|
const currentVersion = await getVersionAsNumber();
|
|
106
105
|
if (version <= currentVersion) {
|
|
107
|
-
installFail(
|
|
106
|
+
return installFail(
|
|
108
107
|
option,
|
|
109
108
|
'Please give a bigger version than the current version, the current version now has setted by: ' +
|
|
110
109
|
currentVersion
|
|
111
110
|
);
|
|
112
|
-
return;
|
|
113
111
|
}
|
|
112
|
+
|
|
114
113
|
try {
|
|
115
114
|
const path = await downloadBundleFile(
|
|
116
115
|
downloadManager,
|
|
@@ -118,22 +117,23 @@ async function downloadBundleUri(
|
|
|
118
117
|
option?.headers,
|
|
119
118
|
option?.progress
|
|
120
119
|
);
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
120
|
+
|
|
121
|
+
if (!path) {
|
|
122
|
+
return installFail(option);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
const success = await setupBundlePath(path, option?.extensionBundle);
|
|
126
|
+
if (!success) {
|
|
127
|
+
return installFail(option);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
setCurrentVersion(version);
|
|
131
|
+
option?.updateSuccess?.();
|
|
132
|
+
|
|
133
|
+
if (option?.restartAfterInstall) {
|
|
134
|
+
setTimeout(() => {
|
|
135
|
+
resetApp();
|
|
136
|
+
}, 300);
|
|
137
137
|
}
|
|
138
138
|
} catch (e) {
|
|
139
139
|
installFail(option, e);
|