react-native-ota-hot-update 2.0.2 → 2.0.4
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 +21 -98
- package/android/generated/java/com/otahotupdate/NativeOtaHotUpdateSpec.java +4 -0
- package/android/generated/jni/RNOtaHotUpdateSpec-generated.cpp +6 -0
- package/android/generated/jni/react/renderer/components/RNOtaHotUpdateSpec/RNOtaHotUpdateSpecJSI-generated.cpp +7 -0
- package/android/generated/jni/react/renderer/components/RNOtaHotUpdateSpec/RNOtaHotUpdateSpecJSI.h +9 -0
- package/android/src/main/java/com/otahotupdate/OtaHotUpdateModule.kt +13 -2
- package/android/src/oldarch/OtaHotUpdateSpec.kt +1 -0
- package/ios/OtaHotUpdate.mm +14 -1
- package/ios/generated/RNOtaHotUpdateSpec/RNOtaHotUpdateSpec-generated.mm +7 -0
- package/ios/generated/RNOtaHotUpdateSpec/RNOtaHotUpdateSpec.h +3 -0
- package/ios/generated/RNOtaHotUpdateSpecJSI-generated.cpp +7 -0
- package/ios/generated/RNOtaHotUpdateSpecJSI.h +9 -0
- package/lib/commonjs/NativeOtaHotUpdate.js.map +1 -1
- package/lib/commonjs/gits/helper/fileReader.js +36 -0
- package/lib/commonjs/gits/helper/fileReader.js.map +1 -0
- package/lib/commonjs/gits/helper/fs.js +152 -0
- package/lib/commonjs/gits/helper/fs.js.map +1 -0
- package/lib/commonjs/gits/index.js +130 -0
- package/lib/commonjs/gits/index.js.map +1 -0
- package/lib/commonjs/index.d.js +6 -0
- package/lib/commonjs/index.d.js.map +1 -0
- package/lib/commonjs/index.js +63 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/type.js +2 -0
- package/lib/commonjs/type.js.map +1 -0
- package/lib/module/NativeOtaHotUpdate.js.map +1 -1
- package/lib/module/gits/helper/fileReader.js +36 -0
- package/lib/module/gits/helper/fileReader.js.map +1 -0
- package/lib/module/gits/helper/fs.js +139 -0
- package/lib/module/gits/helper/fs.js.map +1 -0
- package/lib/module/gits/index.js +123 -0
- package/lib/module/gits/index.js.map +1 -0
- package/lib/module/index.d.js +4 -0
- package/lib/module/index.d.js.map +1 -0
- package/lib/module/index.js +62 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/type.js +2 -0
- package/lib/module/type.js.map +1 -0
- package/lib/typescript/commonjs/src/NativeOtaHotUpdate.d.ts +1 -0
- package/lib/typescript/commonjs/src/NativeOtaHotUpdate.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/gits/helper/fs.d.ts +16 -0
- package/lib/typescript/commonjs/src/gits/helper/fs.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/gits/index.d.ts +25 -0
- package/lib/typescript/commonjs/src/gits/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/index.d.ts +25 -8
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/type.d.ts +145 -0
- package/lib/typescript/commonjs/src/type.d.ts.map +1 -0
- package/lib/typescript/module/src/NativeOtaHotUpdate.d.ts +1 -0
- package/lib/typescript/module/src/NativeOtaHotUpdate.d.ts.map +1 -1
- package/lib/typescript/module/src/gits/helper/fs.d.ts +16 -0
- package/lib/typescript/module/src/gits/helper/fs.d.ts.map +1 -0
- package/lib/typescript/module/src/gits/index.d.ts +25 -0
- package/lib/typescript/module/src/gits/index.d.ts.map +1 -0
- package/lib/typescript/module/src/index.d.ts +25 -8
- package/lib/typescript/module/src/index.d.ts.map +1 -1
- package/lib/typescript/module/src/type.d.ts +145 -0
- package/lib/typescript/module/src/type.d.ts.map +1 -0
- package/package.json +8 -2
- package/src/NativeOtaHotUpdate.ts +1 -0
- package/src/gits/helper/fileReader.js +44 -0
- package/src/gits/helper/fs.ts +154 -0
- package/src/gits/index.ts +118 -0
- package/src/index.d.ts +80 -0
- package/src/index.tsx +62 -9
- package/src/type.ts +163 -0
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
require("./helper/fileReader.js");
|
|
8
|
+
var _indexUmdMin = _interopRequireDefault(require("isomorphic-git/index.umd.min.js"));
|
|
9
|
+
var _index = _interopRequireDefault(require("isomorphic-git/http/web/index.js"));
|
|
10
|
+
var promises = _interopRequireWildcard(require("./helper/fs.js"));
|
|
11
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
12
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
13
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
+
// @ts-ignore
|
|
15
|
+
|
|
16
|
+
const fs = {
|
|
17
|
+
promises
|
|
18
|
+
};
|
|
19
|
+
const getFolder = folderName => {
|
|
20
|
+
try {
|
|
21
|
+
const {
|
|
22
|
+
DocumentDirectoryPath
|
|
23
|
+
} = require('react-native-fs');
|
|
24
|
+
return DocumentDirectoryPath + (folderName || '/git_hot_update');
|
|
25
|
+
} catch (e) {}
|
|
26
|
+
return '';
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Should set config after clone success, otherwise cannot pull
|
|
30
|
+
*/
|
|
31
|
+
const setConfig = async (folderName, options) => {
|
|
32
|
+
await _indexUmdMin.default.setConfig({
|
|
33
|
+
fs,
|
|
34
|
+
dir: getFolder(folderName),
|
|
35
|
+
path: options?.userName || 'user.name',
|
|
36
|
+
value: options?.email || 'hotupdate'
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
const cloneRepo = async options => {
|
|
40
|
+
try {
|
|
41
|
+
await _indexUmdMin.default.clone({
|
|
42
|
+
fs,
|
|
43
|
+
http: _index.default,
|
|
44
|
+
dir: getFolder(options?.folderName),
|
|
45
|
+
url: options?.url,
|
|
46
|
+
singleBranch: true,
|
|
47
|
+
depth: 1,
|
|
48
|
+
ref: options?.branch,
|
|
49
|
+
onProgress({
|
|
50
|
+
loaded,
|
|
51
|
+
total
|
|
52
|
+
}) {
|
|
53
|
+
if (options?.onProgress && total > 0) {
|
|
54
|
+
options?.onProgress(loaded, total);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
await setConfig(options?.folderName, {
|
|
59
|
+
email: options?.email,
|
|
60
|
+
userName: options?.userName
|
|
61
|
+
});
|
|
62
|
+
return {
|
|
63
|
+
success: true,
|
|
64
|
+
msg: null,
|
|
65
|
+
bundle: `${getFolder(options?.folderName)}/${options.bundlePath}`
|
|
66
|
+
};
|
|
67
|
+
} catch (e) {
|
|
68
|
+
return {
|
|
69
|
+
success: false,
|
|
70
|
+
msg: e.toString(),
|
|
71
|
+
bundle: null
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
const pullUpdate = async options => {
|
|
76
|
+
try {
|
|
77
|
+
let count = 0;
|
|
78
|
+
await _indexUmdMin.default.pull({
|
|
79
|
+
fs,
|
|
80
|
+
http: _index.default,
|
|
81
|
+
dir: getFolder(options?.folderName),
|
|
82
|
+
ref: options?.branch,
|
|
83
|
+
singleBranch: true,
|
|
84
|
+
onProgress({
|
|
85
|
+
loaded,
|
|
86
|
+
total
|
|
87
|
+
}) {
|
|
88
|
+
if (total > 0) {
|
|
89
|
+
count = total;
|
|
90
|
+
if (options?.onProgress) {
|
|
91
|
+
options?.onProgress(loaded, total);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
return {
|
|
97
|
+
success: count > 0,
|
|
98
|
+
msg: count > 0 ? 'Pull success' : 'No updated'
|
|
99
|
+
};
|
|
100
|
+
} catch (e) {
|
|
101
|
+
console.log(e.toString());
|
|
102
|
+
return {
|
|
103
|
+
success: false,
|
|
104
|
+
msg: e.toString()
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
const getBranchName = async folderName => {
|
|
109
|
+
try {
|
|
110
|
+
return await _indexUmdMin.default.currentBranch({
|
|
111
|
+
fs,
|
|
112
|
+
dir: getFolder(folderName),
|
|
113
|
+
fullname: false
|
|
114
|
+
});
|
|
115
|
+
} catch (e) {
|
|
116
|
+
console.log(e.toString());
|
|
117
|
+
return null;
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
const removeGitUpdate = folderName => {
|
|
121
|
+
fs.promises.unlink(getFolder(folderName));
|
|
122
|
+
};
|
|
123
|
+
var _default = exports.default = {
|
|
124
|
+
cloneRepo,
|
|
125
|
+
pullUpdate,
|
|
126
|
+
getBranchName,
|
|
127
|
+
setConfig,
|
|
128
|
+
removeGitUpdate
|
|
129
|
+
};
|
|
130
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["require","_indexUmdMin","_interopRequireDefault","_index","promises","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","fs","getFolder","folderName","DocumentDirectoryPath","setConfig","options","git","dir","path","userName","value","email","cloneRepo","clone","http","url","singleBranch","depth","ref","branch","onProgress","loaded","total","success","msg","bundle","bundlePath","toString","pullUpdate","count","pull","console","log","getBranchName","currentBranch","fullname","removeGitUpdate","unlink","_default","exports"],"sourceRoot":"../../../src","sources":["gits/index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["index.d.ts"],"mappings":"","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _reactNative = require("react-native");
|
|
8
|
+
var _index = _interopRequireDefault(require("./gits/index.js"));
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
8
10
|
const LINKING_ERROR = `The package 'react-native-ota-hot-update' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({
|
|
9
11
|
ios: "- You have run 'pod install'\n",
|
|
10
12
|
default: ''
|
|
@@ -33,6 +35,9 @@ const downloadBundleFile = async (downloadManager, uri, headers, callback) => {
|
|
|
33
35
|
function setupBundlePath(path, extension) {
|
|
34
36
|
return RNhotupdate.setupBundlePath(path, extension);
|
|
35
37
|
}
|
|
38
|
+
function setupExactBundlePath(path) {
|
|
39
|
+
return RNhotupdate.setExactBundlePath(path);
|
|
40
|
+
}
|
|
36
41
|
function deleteBundlePath() {
|
|
37
42
|
return RNhotupdate.deleteBundle(1);
|
|
38
43
|
}
|
|
@@ -102,12 +107,69 @@ async function downloadBundleUri(downloadManager, uri, version, option) {
|
|
|
102
107
|
installFail(option, e);
|
|
103
108
|
}
|
|
104
109
|
}
|
|
110
|
+
const checkForGitUpdate = async options => {
|
|
111
|
+
try {
|
|
112
|
+
if (!options.url || !options.bundlePath) {
|
|
113
|
+
throw new Error(`url or bundlePath should not be null`);
|
|
114
|
+
}
|
|
115
|
+
const branch = await _index.default.getBranchName();
|
|
116
|
+
if (branch) {
|
|
117
|
+
const pull = await _index.default.pullUpdate({
|
|
118
|
+
branch,
|
|
119
|
+
onProgress: options?.onProgress,
|
|
120
|
+
folderName: options?.folderName
|
|
121
|
+
});
|
|
122
|
+
if (pull.success) {
|
|
123
|
+
options?.onPullSuccess?.();
|
|
124
|
+
if (options?.restartAfterInstall) {
|
|
125
|
+
setTimeout(() => {
|
|
126
|
+
resetApp();
|
|
127
|
+
}, 300);
|
|
128
|
+
}
|
|
129
|
+
} else {
|
|
130
|
+
options?.onPullFailed?.(pull.msg);
|
|
131
|
+
}
|
|
132
|
+
} else {
|
|
133
|
+
const clone = await _index.default.cloneRepo({
|
|
134
|
+
onProgress: options?.onProgress,
|
|
135
|
+
folderName: options?.folderName,
|
|
136
|
+
url: options.url,
|
|
137
|
+
branch: options?.branch,
|
|
138
|
+
bundlePath: options.bundlePath
|
|
139
|
+
});
|
|
140
|
+
if (clone.success && clone.bundle) {
|
|
141
|
+
await setupExactBundlePath(clone.bundle);
|
|
142
|
+
options?.onCloneSuccess?.();
|
|
143
|
+
if (options?.restartAfterInstall) {
|
|
144
|
+
setTimeout(() => {
|
|
145
|
+
resetApp();
|
|
146
|
+
}, 300);
|
|
147
|
+
}
|
|
148
|
+
} else {
|
|
149
|
+
options?.onCloneFailed?.(clone.msg);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
} catch (e) {
|
|
153
|
+
options?.onCloneFailed?.(e.toString());
|
|
154
|
+
} finally {
|
|
155
|
+
options?.onFinishProgress?.();
|
|
156
|
+
}
|
|
157
|
+
};
|
|
105
158
|
var _default = exports.default = {
|
|
106
159
|
setupBundlePath,
|
|
160
|
+
setupExactBundlePath,
|
|
107
161
|
removeUpdate: removeBundle,
|
|
108
162
|
downloadBundleUri,
|
|
109
163
|
resetApp,
|
|
110
164
|
getCurrentVersion: getVersionAsNumber,
|
|
111
|
-
setCurrentVersion
|
|
165
|
+
setCurrentVersion,
|
|
166
|
+
git: {
|
|
167
|
+
checkForGitUpdate,
|
|
168
|
+
..._index.default,
|
|
169
|
+
removeGitUpdate: folder => {
|
|
170
|
+
RNhotupdate.setExactBundlePath('');
|
|
171
|
+
_index.default.removeGitUpdate(folder);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
112
174
|
};
|
|
113
175
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","LINKING_ERROR","Platform","select","ios","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_index","_interopRequireDefault","e","__esModule","default","LINKING_ERROR","Platform","select","ios","isTurboModuleEnabled","global","__turboModuleProxy","OtaHotUpdateModule","NativeModules","OtaHotUpdate","RNhotupdate","Proxy","get","Error","downloadBundleFile","downloadManager","uri","headers","callback","res","config","fileCache","OS","fetch","progress","received","total","path","setupBundlePath","extension","setupExactBundlePath","setExactBundlePath","deleteBundlePath","deleteBundle","getCurrentVersion","getVersionAsNumber","rawVersion","setCurrentVersion","version","resetApp","restart","removeBundle","restartAfterRemoved","then","data","setTimeout","installFail","option","updateFail","JSON","stringify","console","error","downloadBundleUri","currentVersion","extensionBundle","success","updateSuccess","restartAfterInstall","checkForGitUpdate","options","url","bundlePath","branch","git","getBranchName","pull","pullUpdate","onProgress","folderName","onPullSuccess","onPullFailed","msg","clone","cloneRepo","bundle","onCloneSuccess","onCloneFailed","toString","onFinishProgress","_default","exports","removeUpdate","removeGitUpdate","folder"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["type.ts"],"mappings":"","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;AAWlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,cAAc,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @format
|
|
5
|
+
*/
|
|
6
|
+
FileReader.prototype.readAsArrayBuffer = function (blob) {
|
|
7
|
+
if (this.readyState === this.LOADING) throw new Error('InvalidStateError');
|
|
8
|
+
this._setReadyState(this.LOADING);
|
|
9
|
+
this._result = null;
|
|
10
|
+
this._error = null;
|
|
11
|
+
const fr = new FileReader();
|
|
12
|
+
fr.onloadend = () => {
|
|
13
|
+
const content = atob(fr.result.replace(/data:[^;]+;base64,/, ''));
|
|
14
|
+
const buffer = new ArrayBuffer(content.length);
|
|
15
|
+
const view = new Uint8Array(buffer);
|
|
16
|
+
view.set(Array.from(content).map(c => c.charCodeAt(0)));
|
|
17
|
+
this._result = buffer;
|
|
18
|
+
this._setReadyState(this.DONE);
|
|
19
|
+
};
|
|
20
|
+
fr.readAsDataURL(blob);
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
// from: https://stackoverflow.com/questions/42829838/react-native-atob-btoa-not-working-without-remote-js-debugging
|
|
24
|
+
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
|
|
25
|
+
const atob = (input = '') => {
|
|
26
|
+
let str = input.replace(/[=]+$/, '');
|
|
27
|
+
let output = '';
|
|
28
|
+
if (str.length % 4 == 1) {
|
|
29
|
+
throw new Error("'atob' failed: The string to be decoded is not correctly encoded.");
|
|
30
|
+
}
|
|
31
|
+
for (let bc = 0, bs = 0, buffer, i = 0; buffer = str.charAt(i++); ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer, bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0) {
|
|
32
|
+
buffer = chars.indexOf(buffer);
|
|
33
|
+
}
|
|
34
|
+
return output;
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=fileReader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["FileReader","prototype","readAsArrayBuffer","blob","readyState","LOADING","Error","_setReadyState","_result","_error","fr","onloadend","content","atob","result","replace","buffer","ArrayBuffer","length","view","Uint8Array","set","Array","from","map","c","charCodeAt","DONE","readAsDataURL","chars","input","str","output","bc","bs","i","charAt","String","fromCharCode","indexOf"],"sourceRoot":"../../../../src","sources":["gits/helper/fileReader.js"],"mappings":";;AAAA;AACA;AACA;AACAA,UAAU,CAACC,SAAS,CAACC,iBAAiB,GAAG,UAAUC,IAAI,EAAE;EACvD,IAAI,IAAI,CAACC,UAAU,KAAK,IAAI,CAACC,OAAO,EAAE,MAAM,IAAIC,KAAK,CAAC,mBAAmB,CAAC;EAC1E,IAAI,CAACC,cAAc,CAAC,IAAI,CAACF,OAAO,CAAC;EACjC,IAAI,CAACG,OAAO,GAAG,IAAI;EACnB,IAAI,CAACC,MAAM,GAAG,IAAI;EAClB,MAAMC,EAAE,GAAG,IAAIV,UAAU,CAAC,CAAC;EAC3BU,EAAE,CAACC,SAAS,GAAG,MAAM;IACnB,MAAMC,OAAO,GAAGC,IAAI,CAACH,EAAE,CAACI,MAAM,CAACC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;IACjE,MAAMC,MAAM,GAAG,IAAIC,WAAW,CAACL,OAAO,CAACM,MAAM,CAAC;IAC9C,MAAMC,IAAI,GAAG,IAAIC,UAAU,CAACJ,MAAM,CAAC;IACnCG,IAAI,CAACE,GAAG,CAACC,KAAK,CAACC,IAAI,CAACX,OAAO,CAAC,CAACY,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,IAAI,CAAClB,OAAO,GAAGQ,MAAM;IACrB,IAAI,CAACT,cAAc,CAAC,IAAI,CAACoB,IAAI,CAAC;EAChC,CAAC;EACDjB,EAAE,CAACkB,aAAa,CAACzB,IAAI,CAAC;AACxB,CAAC;;AAED;AACA,MAAM0B,KAAK,GACT,mEAAmE;AACrE,MAAMhB,IAAI,GAAGA,CAACiB,KAAK,GAAG,EAAE,KAAK;EAC3B,IAAIC,GAAG,GAAGD,KAAK,CAACf,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;EACpC,IAAIiB,MAAM,GAAG,EAAE;EAEf,IAAID,GAAG,CAACb,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE;IACvB,MAAM,IAAIZ,KAAK,CACb,mEACF,CAAC;EACH;EACA,KACE,IAAI2B,EAAE,GAAG,CAAC,EAAEC,EAAE,GAAG,CAAC,EAAElB,MAAM,EAAEmB,CAAC,GAAG,CAAC,EAChCnB,MAAM,GAAGe,GAAG,CAACK,MAAM,CAACD,CAAC,EAAE,CAAC,EACzB,CAACnB,MAAM,KAAMkB,EAAE,GAAGD,EAAE,GAAG,CAAC,GAAGC,EAAE,GAAG,EAAE,GAAGlB,MAAM,GAAGA,MAAM,EAAGiB,EAAE,EAAE,GAAG,CAAC,CAAC,GAC3DD,MAAM,IAAIK,MAAM,CAACC,YAAY,CAAC,GAAG,GAAIJ,EAAE,KAAM,CAAC,CAAC,GAAGD,EAAE,GAAI,CAAC,CAAE,CAAC,GAC7D,CAAC,EACL;IACAjB,MAAM,GAAGa,KAAK,CAACU,OAAO,CAACvB,MAAM,CAAC;EAChC;EAEA,OAAOgB,MAAM;AACf,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Buffer } from 'buffer';
|
|
4
|
+
let RNFS = {
|
|
5
|
+
unlink: console.log,
|
|
6
|
+
readdir: console.log,
|
|
7
|
+
mkdir: console.log,
|
|
8
|
+
readFile: console.log,
|
|
9
|
+
writeFile: console.log,
|
|
10
|
+
stat: console.log
|
|
11
|
+
};
|
|
12
|
+
try {
|
|
13
|
+
RNFS = require('react-native-fs');
|
|
14
|
+
} catch {}
|
|
15
|
+
function Err(name) {
|
|
16
|
+
return class extends Error {
|
|
17
|
+
code = name;
|
|
18
|
+
constructor(...args) {
|
|
19
|
+
super(...args);
|
|
20
|
+
if (this.message) {
|
|
21
|
+
this.message = name + ': ' + this.message;
|
|
22
|
+
} else {
|
|
23
|
+
this.message = name;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// const EEXIST = Err('EEXIST'); // <-- Unused because RNFS's mkdir never throws
|
|
30
|
+
const ENOENT = Err('ENOENT');
|
|
31
|
+
const ENOTDIR = Err('ENOTDIR');
|
|
32
|
+
// const ENOTEMPTY = Err('ENOTEMPTY'); // <-- Unused because RNFS's unlink is recursive by default
|
|
33
|
+
|
|
34
|
+
export const readdir = async path => {
|
|
35
|
+
try {
|
|
36
|
+
return await RNFS.readdir(path);
|
|
37
|
+
} catch (err) {
|
|
38
|
+
switch (err.message) {
|
|
39
|
+
case 'Attempt to get length of null array':
|
|
40
|
+
{
|
|
41
|
+
throw new ENOTDIR(path);
|
|
42
|
+
}
|
|
43
|
+
case 'Folder does not exist':
|
|
44
|
+
{
|
|
45
|
+
throw new ENOENT(path);
|
|
46
|
+
}
|
|
47
|
+
default:
|
|
48
|
+
throw err;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
export const mkdir = async path => {
|
|
53
|
+
return RNFS.mkdir(path);
|
|
54
|
+
};
|
|
55
|
+
export const readFile = async (path, opts) => {
|
|
56
|
+
let encoding;
|
|
57
|
+
if (typeof opts === 'string') {
|
|
58
|
+
encoding = opts;
|
|
59
|
+
} else if (typeof opts === 'object') {
|
|
60
|
+
encoding = opts.encoding;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// @ts-ignore
|
|
64
|
+
let result = await RNFS.readFile(path, encoding || 'base64');
|
|
65
|
+
if (!encoding) {
|
|
66
|
+
// @ts-ignore
|
|
67
|
+
result = Buffer.from(result, 'base64');
|
|
68
|
+
}
|
|
69
|
+
return result;
|
|
70
|
+
};
|
|
71
|
+
export const writeFile = async (path, content, opts) => {
|
|
72
|
+
let encoding;
|
|
73
|
+
if (typeof opts === 'string') {
|
|
74
|
+
encoding = opts;
|
|
75
|
+
} else if (typeof opts === 'object') {
|
|
76
|
+
encoding = opts.encoding;
|
|
77
|
+
}
|
|
78
|
+
if (typeof content === 'string') {
|
|
79
|
+
encoding = encoding || 'utf8';
|
|
80
|
+
} else {
|
|
81
|
+
encoding = 'base64';
|
|
82
|
+
content = Buffer.from(content).toString('base64');
|
|
83
|
+
}
|
|
84
|
+
await RNFS.writeFile(path, content, encoding);
|
|
85
|
+
};
|
|
86
|
+
export const stat = async path => {
|
|
87
|
+
try {
|
|
88
|
+
const r = await RNFS.stat(path);
|
|
89
|
+
// we monkeypatch the result with a `isSymbolicLink` method because isomorphic-git needs it.
|
|
90
|
+
// Since RNFS doesn't appear to support symlinks at all, we'll just always return false.
|
|
91
|
+
// @ts-ignore
|
|
92
|
+
r.isSymbolicLink = () => false;
|
|
93
|
+
return r;
|
|
94
|
+
} catch (err) {
|
|
95
|
+
switch (err.message) {
|
|
96
|
+
case 'File does not exist':
|
|
97
|
+
{
|
|
98
|
+
throw new ENOENT(path);
|
|
99
|
+
}
|
|
100
|
+
default:
|
|
101
|
+
throw err;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
// Since there are no symbolic links, lstat and stat are equivalent
|
|
107
|
+
export const lstat = stat;
|
|
108
|
+
export const unlink = async path => {
|
|
109
|
+
try {
|
|
110
|
+
await RNFS.unlink(path);
|
|
111
|
+
} catch (err) {
|
|
112
|
+
switch (err.message) {
|
|
113
|
+
case 'File does not exist':
|
|
114
|
+
{
|
|
115
|
+
throw new ENOENT(path);
|
|
116
|
+
}
|
|
117
|
+
default:
|
|
118
|
+
throw err;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
// RNFS doesn't have a separate rmdir method, so we can use unlink for deleting directories too
|
|
124
|
+
export const rmdir = unlink;
|
|
125
|
+
|
|
126
|
+
// These are optional, which is good because there is no equivalent in RNFS
|
|
127
|
+
export const readlink = async () => {
|
|
128
|
+
throw new Error('not implemented');
|
|
129
|
+
};
|
|
130
|
+
export const symlink = async () => {
|
|
131
|
+
throw new Error('not implemented');
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
// Technically we could pull this off by using `readFile` + `writeFile` with the `mode` option
|
|
135
|
+
// However, it's optional, because isomorphic-git will do exactly that (a readFile and a writeFile with the new mode)
|
|
136
|
+
export const chmod = async () => {
|
|
137
|
+
throw new Error('not implemented');
|
|
138
|
+
};
|
|
139
|
+
//# sourceMappingURL=fs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Buffer","RNFS","unlink","console","log","readdir","mkdir","readFile","writeFile","stat","require","Err","name","Error","code","constructor","args","message","ENOENT","ENOTDIR","path","err","opts","encoding","result","from","content","toString","r","isSymbolicLink","lstat","rmdir","readlink","symlink","chmod"],"sourceRoot":"../../../../src","sources":["gits/helper/fs.ts"],"mappings":";;AAAA,SAASA,MAAM,QAAQ,QAAQ;AAE/B,IAAIC,IAAI,GAAG;EACTC,MAAM,EAAEC,OAAO,CAACC,GAAG;EACnBC,OAAO,EAAEF,OAAO,CAACC,GAAG;EACpBE,KAAK,EAAEH,OAAO,CAACC,GAAG;EAClBG,QAAQ,EAAEJ,OAAO,CAACC,GAAG;EACrBI,SAAS,EAAEL,OAAO,CAACC,GAAG;EACtBK,IAAI,EAAEN,OAAO,CAACC;AAChB,CAAC;AACD,IAAI;EACFH,IAAI,GAAGS,OAAO,CAAC,iBAAiB,CAAC;AACnC,CAAC,CAAC,MAAM,CAAC;AAET,SAASC,GAAGA,CAACC,IAAY,EAAE;EACzB,OAAO,cAAcC,KAAK,CAAC;IAClBC,IAAI,GAAGF,IAAI;IAClBG,WAAWA,CAAC,GAAGC,IAAS,EAAE;MACxB,KAAK,CAAC,GAAGA,IAAI,CAAC;MACd,IAAI,IAAI,CAACC,OAAO,EAAE;QAChB,IAAI,CAACA,OAAO,GAAGL,IAAI,GAAG,IAAI,GAAG,IAAI,CAACK,OAAO;MAC3C,CAAC,MAAM;QACL,IAAI,CAACA,OAAO,GAAGL,IAAI;MACrB;IACF;EACF,CAAC;AACH;;AAEA;AACA,MAAMM,MAAM,GAAGP,GAAG,CAAC,QAAQ,CAAC;AAC5B,MAAMQ,OAAO,GAAGR,GAAG,CAAC,SAAS,CAAC;AAC9B;;AAEA,OAAO,MAAMN,OAAO,GAAG,MAAOe,IAAY,IAAK;EAC7C,IAAI;IACF,OAAO,MAAMnB,IAAI,CAACI,OAAO,CAACe,IAAI,CAAC;EACjC,CAAC,CAAC,OAAOC,GAAQ,EAAE;IACjB,QAAQA,GAAG,CAACJ,OAAO;MACjB,KAAK,qCAAqC;QAAE;UAC1C,MAAM,IAAIE,OAAO,CAACC,IAAI,CAAC;QACzB;MACA,KAAK,uBAAuB;QAAE;UAC5B,MAAM,IAAIF,MAAM,CAACE,IAAI,CAAC;QACxB;MACA;QACE,MAAMC,GAAG;IACb;EACF;AACF,CAAC;AAED,OAAO,MAAMf,KAAK,GAAG,MAAOc,IAAY,IAAK;EAC3C,OAAOnB,IAAI,CAACK,KAAK,CAACc,IAAI,CAAC;AACzB,CAAC;AAED,OAAO,MAAMb,QAAQ,GAAG,MAAAA,CACtBa,IAAY,EACZE,IAAyC,KACtC;EACH,IAAIC,QAAQ;EAEZ,IAAI,OAAOD,IAAI,KAAK,QAAQ,EAAE;IAC5BC,QAAQ,GAAGD,IAAI;EACjB,CAAC,MAAM,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IACnCC,QAAQ,GAAGD,IAAI,CAACC,QAAQ;EAC1B;;EAEA;EACA,IAAIC,MAA2B,GAAG,MAAMvB,IAAI,CAACM,QAAQ,CACnDa,IAAI,EACJG,QAAQ,IAAI,QACd,CAAC;EAED,IAAI,CAACA,QAAQ,EAAE;IACb;IACAC,MAAM,GAAGxB,MAAM,CAACyB,IAAI,CAACD,MAAM,EAAE,QAAQ,CAAC;EACxC;EAEA,OAAOA,MAAM;AACf,CAAC;AACD,OAAO,MAAMhB,SAAS,GAAG,MAAAA,CACvBY,IAAY,EACZM,OAA4B,EAC5BJ,IAAyC,KACtC;EACH,IAAIC,QAAQ;EAEZ,IAAI,OAAOD,IAAI,KAAK,QAAQ,EAAE;IAC5BC,QAAQ,GAAGD,IAAI;EACjB,CAAC,MAAM,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IACnCC,QAAQ,GAAGD,IAAI,CAACC,QAAQ;EAC1B;EAEA,IAAI,OAAOG,OAAO,KAAK,QAAQ,EAAE;IAC/BH,QAAQ,GAAGA,QAAQ,IAAI,MAAM;EAC/B,CAAC,MAAM;IACLA,QAAQ,GAAG,QAAQ;IACnBG,OAAO,GAAG1B,MAAM,CAACyB,IAAI,CAACC,OAAO,CAAC,CAACC,QAAQ,CAAC,QAAQ,CAAC;EACnD;EAEA,MAAM1B,IAAI,CAACO,SAAS,CAACY,IAAI,EAAEM,OAAO,EAAYH,QAAQ,CAAC;AACzD,CAAC;AAED,OAAO,MAAMd,IAAI,GAAG,MAAOW,IAAY,IAAK;EAC1C,IAAI;IACF,MAAMQ,CAAC,GAAG,MAAM3B,IAAI,CAACQ,IAAI,CAACW,IAAI,CAAC;IAC/B;IACA;IACA;IACAQ,CAAC,CAACC,cAAc,GAAG,MAAM,KAAK;IAC9B,OAAOD,CAAC;EACV,CAAC,CAAC,OAAOP,GAAQ,EAAE;IACjB,QAAQA,GAAG,CAACJ,OAAO;MACjB,KAAK,qBAAqB;QAAE;UAC1B,MAAM,IAAIC,MAAM,CAACE,IAAI,CAAC;QACxB;MACA;QACE,MAAMC,GAAG;IACb;EACF;AACF,CAAC;;AAED;AACA,OAAO,MAAMS,KAAK,GAAGrB,IAAI;AAEzB,OAAO,MAAMP,MAAM,GAAG,MAAOkB,IAAY,IAAK;EAC5C,IAAI;IACF,MAAMnB,IAAI,CAACC,MAAM,CAACkB,IAAI,CAAC;EACzB,CAAC,CAAC,OAAOC,GAAQ,EAAE;IACjB,QAAQA,GAAG,CAACJ,OAAO;MACjB,KAAK,qBAAqB;QAAE;UAC1B,MAAM,IAAIC,MAAM,CAACE,IAAI,CAAC;QACxB;MACA;QACE,MAAMC,GAAG;IACb;EACF;AACF,CAAC;;AAED;AACA,OAAO,MAAMU,KAAK,GAAG7B,MAAM;;AAE3B;AACA,OAAO,MAAM8B,QAAQ,GAAG,MAAAA,CAAA,KAAY;EAClC,MAAM,IAAInB,KAAK,CAAC,iBAAiB,CAAC;AACpC,CAAC;AACD,OAAO,MAAMoB,OAAO,GAAG,MAAAA,CAAA,KAAY;EACjC,MAAM,IAAIpB,KAAK,CAAC,iBAAiB,CAAC;AACpC,CAAC;;AAED;AACA;AACA,OAAO,MAAMqB,KAAK,GAAG,MAAAA,CAAA,KAAY;EAC/B,MAAM,IAAIrB,KAAK,CAAC,iBAAiB,CAAC;AACpC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import './helper/fileReader.js';
|
|
4
|
+
|
|
5
|
+
// @ts-ignore
|
|
6
|
+
import git from 'isomorphic-git/index.umd.min.js';
|
|
7
|
+
import http from 'isomorphic-git/http/web/index.js';
|
|
8
|
+
import * as promises from "./helper/fs.js";
|
|
9
|
+
const fs = {
|
|
10
|
+
promises
|
|
11
|
+
};
|
|
12
|
+
const getFolder = folderName => {
|
|
13
|
+
try {
|
|
14
|
+
const {
|
|
15
|
+
DocumentDirectoryPath
|
|
16
|
+
} = require('react-native-fs');
|
|
17
|
+
return DocumentDirectoryPath + (folderName || '/git_hot_update');
|
|
18
|
+
} catch (e) {}
|
|
19
|
+
return '';
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Should set config after clone success, otherwise cannot pull
|
|
23
|
+
*/
|
|
24
|
+
const setConfig = async (folderName, options) => {
|
|
25
|
+
await git.setConfig({
|
|
26
|
+
fs,
|
|
27
|
+
dir: getFolder(folderName),
|
|
28
|
+
path: options?.userName || 'user.name',
|
|
29
|
+
value: options?.email || 'hotupdate'
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
const cloneRepo = async options => {
|
|
33
|
+
try {
|
|
34
|
+
await git.clone({
|
|
35
|
+
fs,
|
|
36
|
+
http,
|
|
37
|
+
dir: getFolder(options?.folderName),
|
|
38
|
+
url: options?.url,
|
|
39
|
+
singleBranch: true,
|
|
40
|
+
depth: 1,
|
|
41
|
+
ref: options?.branch,
|
|
42
|
+
onProgress({
|
|
43
|
+
loaded,
|
|
44
|
+
total
|
|
45
|
+
}) {
|
|
46
|
+
if (options?.onProgress && total > 0) {
|
|
47
|
+
options?.onProgress(loaded, total);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
await setConfig(options?.folderName, {
|
|
52
|
+
email: options?.email,
|
|
53
|
+
userName: options?.userName
|
|
54
|
+
});
|
|
55
|
+
return {
|
|
56
|
+
success: true,
|
|
57
|
+
msg: null,
|
|
58
|
+
bundle: `${getFolder(options?.folderName)}/${options.bundlePath}`
|
|
59
|
+
};
|
|
60
|
+
} catch (e) {
|
|
61
|
+
return {
|
|
62
|
+
success: false,
|
|
63
|
+
msg: e.toString(),
|
|
64
|
+
bundle: null
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
const pullUpdate = async options => {
|
|
69
|
+
try {
|
|
70
|
+
let count = 0;
|
|
71
|
+
await git.pull({
|
|
72
|
+
fs,
|
|
73
|
+
http,
|
|
74
|
+
dir: getFolder(options?.folderName),
|
|
75
|
+
ref: options?.branch,
|
|
76
|
+
singleBranch: true,
|
|
77
|
+
onProgress({
|
|
78
|
+
loaded,
|
|
79
|
+
total
|
|
80
|
+
}) {
|
|
81
|
+
if (total > 0) {
|
|
82
|
+
count = total;
|
|
83
|
+
if (options?.onProgress) {
|
|
84
|
+
options?.onProgress(loaded, total);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
return {
|
|
90
|
+
success: count > 0,
|
|
91
|
+
msg: count > 0 ? 'Pull success' : 'No updated'
|
|
92
|
+
};
|
|
93
|
+
} catch (e) {
|
|
94
|
+
console.log(e.toString());
|
|
95
|
+
return {
|
|
96
|
+
success: false,
|
|
97
|
+
msg: e.toString()
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
const getBranchName = async folderName => {
|
|
102
|
+
try {
|
|
103
|
+
return await git.currentBranch({
|
|
104
|
+
fs,
|
|
105
|
+
dir: getFolder(folderName),
|
|
106
|
+
fullname: false
|
|
107
|
+
});
|
|
108
|
+
} catch (e) {
|
|
109
|
+
console.log(e.toString());
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
const removeGitUpdate = folderName => {
|
|
114
|
+
fs.promises.unlink(getFolder(folderName));
|
|
115
|
+
};
|
|
116
|
+
export default {
|
|
117
|
+
cloneRepo,
|
|
118
|
+
pullUpdate,
|
|
119
|
+
getBranchName,
|
|
120
|
+
setConfig,
|
|
121
|
+
removeGitUpdate
|
|
122
|
+
};
|
|
123
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["git","http","promises","fs","getFolder","folderName","DocumentDirectoryPath","require","e","setConfig","options","dir","path","userName","value","email","cloneRepo","clone","url","singleBranch","depth","ref","branch","onProgress","loaded","total","success","msg","bundle","bundlePath","toString","pullUpdate","count","pull","console","log","getBranchName","currentBranch","fullname","removeGitUpdate","unlink"],"sourceRoot":"../../../src","sources":["gits/index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["index.d.ts"],"mappings":"","ignoreList":[]}
|