@swiftpatch/react-native 2.0.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 +430 -0
- package/android/build.gradle +105 -0
- package/android/src/main/AndroidManifest.xml +6 -0
- package/android/src/main/java/com/swiftpatch/BundleManager.kt +107 -0
- package/android/src/main/java/com/swiftpatch/CrashDetector.kt +79 -0
- package/android/src/main/java/com/swiftpatch/CryptoVerifier.kt +69 -0
- package/android/src/main/java/com/swiftpatch/DownloadManager.kt +120 -0
- package/android/src/main/java/com/swiftpatch/EventQueue.kt +86 -0
- package/android/src/main/java/com/swiftpatch/FileUtils.kt +60 -0
- package/android/src/main/java/com/swiftpatch/PatchApplier.kt +60 -0
- package/android/src/main/java/com/swiftpatch/SignalCrashHandler.kt +84 -0
- package/android/src/main/java/com/swiftpatch/SlotManager.kt +299 -0
- package/android/src/main/java/com/swiftpatch/SwiftPatchModule.kt +630 -0
- package/android/src/main/java/com/swiftpatch/SwiftPatchPackage.kt +21 -0
- package/android/src/main/jni/CMakeLists.txt +12 -0
- package/android/src/main/jni/bspatch.c +188 -0
- package/android/src/main/jni/bspatch.h +57 -0
- package/android/src/main/jni/bspatch_jni.c +28 -0
- package/ios/Libraries/bspatch/bspatch.c +188 -0
- package/ios/Libraries/bspatch/bspatch.h +50 -0
- package/ios/Libraries/bspatch/module.modulemap +4 -0
- package/ios/SwiftPatch/BundleManager.swift +113 -0
- package/ios/SwiftPatch/CrashDetector.swift +71 -0
- package/ios/SwiftPatch/CryptoVerifier.swift +70 -0
- package/ios/SwiftPatch/DownloadManager.swift +125 -0
- package/ios/SwiftPatch/EventQueue.swift +116 -0
- package/ios/SwiftPatch/FileUtils.swift +38 -0
- package/ios/SwiftPatch/PatchApplier.swift +41 -0
- package/ios/SwiftPatch/SignalCrashHandler.swift +129 -0
- package/ios/SwiftPatch/SlotManager.swift +360 -0
- package/ios/SwiftPatch/SwiftPatchModule.m +56 -0
- package/ios/SwiftPatch/SwiftPatchModule.swift +621 -0
- package/lib/commonjs/SwiftPatchCore.js +140 -0
- package/lib/commonjs/SwiftPatchCore.js.map +1 -0
- package/lib/commonjs/SwiftPatchProvider.js +617 -0
- package/lib/commonjs/SwiftPatchProvider.js.map +1 -0
- package/lib/commonjs/constants.js +50 -0
- package/lib/commonjs/constants.js.map +1 -0
- package/lib/commonjs/core/Downloader.js +63 -0
- package/lib/commonjs/core/Downloader.js.map +1 -0
- package/lib/commonjs/core/Installer.js +46 -0
- package/lib/commonjs/core/Installer.js.map +1 -0
- package/lib/commonjs/core/Rollback.js +36 -0
- package/lib/commonjs/core/Rollback.js.map +1 -0
- package/lib/commonjs/core/UpdateChecker.js +57 -0
- package/lib/commonjs/core/UpdateChecker.js.map +1 -0
- package/lib/commonjs/core/Verifier.js +82 -0
- package/lib/commonjs/core/Verifier.js.map +1 -0
- package/lib/commonjs/core/index.js +41 -0
- package/lib/commonjs/core/index.js.map +1 -0
- package/lib/commonjs/index.js +154 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/modal/SwiftPatchModal.js +667 -0
- package/lib/commonjs/modal/SwiftPatchModal.js.map +1 -0
- package/lib/commonjs/modal/useSwiftPatchModal.js +26 -0
- package/lib/commonjs/modal/useSwiftPatchModal.js.map +1 -0
- package/lib/commonjs/native/NativeSwiftPatch.js +85 -0
- package/lib/commonjs/native/NativeSwiftPatch.js.map +1 -0
- package/lib/commonjs/native/NativeSwiftPatchSpec.js +15 -0
- package/lib/commonjs/native/NativeSwiftPatchSpec.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/types.js +126 -0
- package/lib/commonjs/types.js.map +1 -0
- package/lib/commonjs/useSwiftPatch.js +31 -0
- package/lib/commonjs/useSwiftPatch.js.map +1 -0
- package/lib/commonjs/utils/api.js +206 -0
- package/lib/commonjs/utils/api.js.map +1 -0
- package/lib/commonjs/utils/device.js +23 -0
- package/lib/commonjs/utils/device.js.map +1 -0
- package/lib/commonjs/utils/logger.js +30 -0
- package/lib/commonjs/utils/logger.js.map +1 -0
- package/lib/commonjs/utils/storage.js +31 -0
- package/lib/commonjs/utils/storage.js.map +1 -0
- package/lib/commonjs/withSwiftPatch.js +42 -0
- package/lib/commonjs/withSwiftPatch.js.map +1 -0
- package/lib/module/SwiftPatchCore.js +135 -0
- package/lib/module/SwiftPatchCore.js.map +1 -0
- package/lib/module/SwiftPatchProvider.js +611 -0
- package/lib/module/SwiftPatchProvider.js.map +1 -0
- package/lib/module/constants.js +46 -0
- package/lib/module/constants.js.map +1 -0
- package/lib/module/core/Downloader.js +57 -0
- package/lib/module/core/Downloader.js.map +1 -0
- package/lib/module/core/Installer.js +41 -0
- package/lib/module/core/Installer.js.map +1 -0
- package/lib/module/core/Rollback.js +31 -0
- package/lib/module/core/Rollback.js.map +1 -0
- package/lib/module/core/UpdateChecker.js +51 -0
- package/lib/module/core/UpdateChecker.js.map +1 -0
- package/lib/module/core/Verifier.js +76 -0
- package/lib/module/core/Verifier.js.map +1 -0
- package/lib/module/core/index.js +8 -0
- package/lib/module/core/index.js.map +1 -0
- package/lib/module/index.js +34 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/modal/SwiftPatchModal.js +661 -0
- package/lib/module/modal/SwiftPatchModal.js.map +1 -0
- package/lib/module/modal/useSwiftPatchModal.js +22 -0
- package/lib/module/modal/useSwiftPatchModal.js.map +1 -0
- package/lib/module/native/NativeSwiftPatch.js +78 -0
- package/lib/module/native/NativeSwiftPatch.js.map +1 -0
- package/lib/module/native/NativeSwiftPatchSpec.js +12 -0
- package/lib/module/native/NativeSwiftPatchSpec.js.map +1 -0
- package/lib/module/types.js +139 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/useSwiftPatch.js +26 -0
- package/lib/module/useSwiftPatch.js.map +1 -0
- package/lib/module/utils/api.js +197 -0
- package/lib/module/utils/api.js.map +1 -0
- package/lib/module/utils/device.js +18 -0
- package/lib/module/utils/device.js.map +1 -0
- package/lib/module/utils/logger.js +26 -0
- package/lib/module/utils/logger.js.map +1 -0
- package/lib/module/utils/storage.js +24 -0
- package/lib/module/utils/storage.js.map +1 -0
- package/lib/module/withSwiftPatch.js +37 -0
- package/lib/module/withSwiftPatch.js.map +1 -0
- package/lib/typescript/SwiftPatchCore.d.ts +64 -0
- package/lib/typescript/SwiftPatchCore.d.ts.map +1 -0
- package/lib/typescript/SwiftPatchProvider.d.ts +22 -0
- package/lib/typescript/SwiftPatchProvider.d.ts.map +1 -0
- package/lib/typescript/constants.d.ts +33 -0
- package/lib/typescript/constants.d.ts.map +1 -0
- package/lib/typescript/core/Downloader.d.ts +34 -0
- package/lib/typescript/core/Downloader.d.ts.map +1 -0
- package/lib/typescript/core/Installer.d.ts +25 -0
- package/lib/typescript/core/Installer.d.ts.map +1 -0
- package/lib/typescript/core/Rollback.d.ts +18 -0
- package/lib/typescript/core/Rollback.d.ts.map +1 -0
- package/lib/typescript/core/UpdateChecker.d.ts +27 -0
- package/lib/typescript/core/UpdateChecker.d.ts.map +1 -0
- package/lib/typescript/core/Verifier.d.ts +31 -0
- package/lib/typescript/core/Verifier.d.ts.map +1 -0
- package/lib/typescript/core/index.d.ts +8 -0
- package/lib/typescript/core/index.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +13 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/modal/SwiftPatchModal.d.ts +11 -0
- package/lib/typescript/modal/SwiftPatchModal.d.ts.map +1 -0
- package/lib/typescript/modal/useSwiftPatchModal.d.ts +7 -0
- package/lib/typescript/modal/useSwiftPatchModal.d.ts.map +1 -0
- package/lib/typescript/native/NativeSwiftPatch.d.ts +61 -0
- package/lib/typescript/native/NativeSwiftPatch.d.ts.map +1 -0
- package/lib/typescript/native/NativeSwiftPatchSpec.d.ts +67 -0
- package/lib/typescript/native/NativeSwiftPatchSpec.d.ts.map +1 -0
- package/lib/typescript/types.d.ts +266 -0
- package/lib/typescript/types.d.ts.map +1 -0
- package/lib/typescript/useSwiftPatch.d.ts +12 -0
- package/lib/typescript/useSwiftPatch.d.ts.map +1 -0
- package/lib/typescript/utils/api.d.ts +87 -0
- package/lib/typescript/utils/api.d.ts.map +1 -0
- package/lib/typescript/utils/device.d.ts +9 -0
- package/lib/typescript/utils/device.d.ts.map +1 -0
- package/lib/typescript/utils/logger.d.ts +8 -0
- package/lib/typescript/utils/logger.d.ts.map +1 -0
- package/lib/typescript/utils/storage.d.ts +14 -0
- package/lib/typescript/utils/storage.d.ts.map +1 -0
- package/lib/typescript/withSwiftPatch.d.ts +12 -0
- package/lib/typescript/withSwiftPatch.d.ts.map +1 -0
- package/package.json +99 -0
- package/react-native-swiftpatch.podspec +50 -0
- package/src/SwiftPatchCore.ts +148 -0
- package/src/SwiftPatchProvider.tsx +514 -0
- package/src/constants.ts +49 -0
- package/src/core/Downloader.ts +74 -0
- package/src/core/Installer.ts +38 -0
- package/src/core/Rollback.ts +28 -0
- package/src/core/UpdateChecker.ts +70 -0
- package/src/core/Verifier.ts +92 -0
- package/src/core/index.ts +11 -0
- package/src/index.ts +64 -0
- package/src/modal/SwiftPatchModal.tsx +657 -0
- package/src/modal/useSwiftPatchModal.ts +24 -0
- package/src/native/NativeSwiftPatch.ts +205 -0
- package/src/native/NativeSwiftPatchSpec.ts +139 -0
- package/src/types.ts +336 -0
- package/src/useSwiftPatch.ts +29 -0
- package/src/utils/api.ts +244 -0
- package/src/utils/device.ts +15 -0
- package/src/utils/logger.ts +29 -0
- package/src/utils/storage.ts +23 -0
- package/src/withSwiftPatch.tsx +41 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.confirmInstall = confirmInstall;
|
|
7
|
+
exports.getCurrentBundleInfo = getCurrentBundleInfo;
|
|
8
|
+
exports.hasPendingInstall = hasPendingInstall;
|
|
9
|
+
var _NativeSwiftPatch = _interopRequireDefault(require("../native/NativeSwiftPatch"));
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
/**
|
|
12
|
+
* Get current bundle info from native storage
|
|
13
|
+
*/
|
|
14
|
+
async function getCurrentBundleInfo() {
|
|
15
|
+
return _NativeSwiftPatch.default.getCurrentBundle();
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Check if an install is pending confirmation
|
|
20
|
+
*/
|
|
21
|
+
async function hasPendingInstall() {
|
|
22
|
+
return _NativeSwiftPatch.default.hasPendingInstall();
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Confirm the current install is stable
|
|
27
|
+
*/
|
|
28
|
+
async function confirmInstall() {
|
|
29
|
+
return _NativeSwiftPatch.default.confirmInstall();
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_NativeSwiftPatch","_interopRequireDefault","require","e","__esModule","default","getCurrentBundleInfo","NativeSwiftPatch","getCurrentBundle","hasPendingInstall","confirmInstall"],"sourceRoot":"../../../src","sources":["utils/storage.ts"],"mappings":";;;;;;;;AAAA,IAAAA,iBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA0D,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAG1D;AACA;AACA;AACO,eAAeG,oBAAoBA,CAAA,EAA+B;EACvE,OAAOC,yBAAgB,CAACC,gBAAgB,CAAC,CAAC;AAC5C;;AAEA;AACA;AACA;AACO,eAAeC,iBAAiBA,CAAA,EAAqB;EAC1D,OAAOF,yBAAgB,CAACE,iBAAiB,CAAC,CAAC;AAC7C;;AAEA;AACA;AACA;AACO,eAAeC,cAAcA,CAAA,EAAkB;EACpD,OAAOH,yBAAgB,CAACG,cAAc,CAAC,CAAC;AAC1C","ignoreList":[]}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
exports.withSwiftPatch = withSwiftPatch;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _SwiftPatchProvider = require("./SwiftPatchProvider");
|
|
10
|
+
var _SwiftPatchModal = require("./modal/SwiftPatchModal");
|
|
11
|
+
var _constants = require("./constants");
|
|
12
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
14
|
+
/**
|
|
15
|
+
* Higher-order component to wrap your root component with SwiftPatchProvider.
|
|
16
|
+
* Also includes the built-in dashboard modal (accessible via useSwiftPatchModal).
|
|
17
|
+
*/
|
|
18
|
+
function withSwiftPatch(WrappedComponent, config) {
|
|
19
|
+
const mergedConfig = {
|
|
20
|
+
..._constants.DEFAULT_CONFIG,
|
|
21
|
+
...config
|
|
22
|
+
};
|
|
23
|
+
function WithSwiftPatch(props) {
|
|
24
|
+
const [modalVisible, setModalVisible] = (0, _react.useState)(false);
|
|
25
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_SwiftPatchProvider.SwiftPatchProvider, {
|
|
26
|
+
config: config,
|
|
27
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(WrappedComponent, {
|
|
28
|
+
...props
|
|
29
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_SwiftPatchModal.SwiftPatchModal, {
|
|
30
|
+
visible: modalVisible,
|
|
31
|
+
onClose: () => setModalVisible(false),
|
|
32
|
+
serverUrl: mergedConfig.serverUrl,
|
|
33
|
+
deploymentKey: config.deploymentKey,
|
|
34
|
+
customHeaders: mergedConfig.customHeaders
|
|
35
|
+
})]
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
WithSwiftPatch.displayName = `withSwiftPatch(${WrappedComponent.displayName || WrappedComponent.name || 'Component'})`;
|
|
39
|
+
return WithSwiftPatch;
|
|
40
|
+
}
|
|
41
|
+
var _default = exports.default = withSwiftPatch;
|
|
42
|
+
//# sourceMappingURL=withSwiftPatch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_SwiftPatchProvider","_SwiftPatchModal","_constants","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","withSwiftPatch","WrappedComponent","config","mergedConfig","DEFAULT_CONFIG","WithSwiftPatch","props","modalVisible","setModalVisible","useState","jsxs","SwiftPatchProvider","children","jsx","SwiftPatchModal","visible","onClose","serverUrl","deploymentKey","customHeaders","displayName","name","_default","exports"],"sourceRoot":"../../src","sources":["withSwiftPatch.tsx"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,mBAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AAEA,IAAAG,UAAA,GAAAH,OAAA;AAA6C,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAD,wBAAAM,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAR,uBAAA,YAAAA,CAAAM,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAE7C;AACA;AACA;AACA;AACO,SAASkB,cAAcA,CAC5BC,gBAAkC,EAClCC,MAAwB,EACxB;EACA,MAAMC,YAAY,GAAG;IAAE,GAAGC,yBAAc;IAAE,GAAGF;EAAO,CAAC;EAErD,SAASG,cAAcA,CAACC,KAAQ,EAAE;IAChC,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;IAEvD,oBACE,IAAA7B,WAAA,CAAA8B,IAAA,EAACjC,mBAAA,CAAAkC,kBAAkB;MAACT,MAAM,EAAEA,MAAO;MAAAU,QAAA,gBACjC,IAAAhC,WAAA,CAAAiC,GAAA,EAACZ,gBAAgB;QAAA,GAAKK;MAAK,CAAG,CAAC,eAC/B,IAAA1B,WAAA,CAAAiC,GAAA,EAACnC,gBAAA,CAAAoC,eAAe;QACdC,OAAO,EAAER,YAAa;QACtBS,OAAO,EAAEA,CAAA,KAAMR,eAAe,CAAC,KAAK,CAAE;QACtCS,SAAS,EAAEd,YAAY,CAACc,SAAW;QACnCC,aAAa,EAAEhB,MAAM,CAACgB,aAAc;QACpCC,aAAa,EAAEhB,YAAY,CAACgB;MAAc,CAC3C,CAAC;IAAA,CACgB,CAAC;EAEzB;EAEAd,cAAc,CAACe,WAAW,GAAG,kBAC3BnB,gBAAgB,CAACmB,WAAW,IAAInB,gBAAgB,CAACoB,IAAI,IAAI,WAAW,GACnE;EAEH,OAAOhB,cAAc;AACvB;AAAC,IAAAiB,QAAA,GAAAC,OAAA,CAAAhC,OAAA,GAEcS,cAAc","ignoreList":[]}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import NativeSwiftPatch from './native/NativeSwiftPatch';
|
|
4
|
+
import { reportInstallStatus } from './utils/api';
|
|
5
|
+
import { logger } from './utils/logger';
|
|
6
|
+
import { UpdateChecker } from './core/UpdateChecker';
|
|
7
|
+
import { Downloader } from './core/Downloader';
|
|
8
|
+
import { Installer } from './core/Installer';
|
|
9
|
+
import { Rollback as RollbackModule } from './core/Rollback';
|
|
10
|
+
import { DEFAULT_CONFIG } from './constants';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Imperative API for SwiftPatch (non-React usage).
|
|
14
|
+
*
|
|
15
|
+
* Use this when you need to interact with SwiftPatch outside of
|
|
16
|
+
* React components, such as in native module callbacks or background tasks.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* import { SwiftPatch } from '@orbitplus/react-native';
|
|
21
|
+
*
|
|
22
|
+
* const sp = new SwiftPatch({ deploymentKey: 'your-key' });
|
|
23
|
+
* await sp.init();
|
|
24
|
+
* const update = await sp.checkForUpdate();
|
|
25
|
+
* if (update) {
|
|
26
|
+
* await sp.downloadAndInstall(update);
|
|
27
|
+
* }
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export class SwiftPatch {
|
|
31
|
+
constructor(userConfig) {
|
|
32
|
+
this.config = {
|
|
33
|
+
...DEFAULT_CONFIG,
|
|
34
|
+
...userConfig
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Initialize the native module
|
|
40
|
+
*/
|
|
41
|
+
async init() {
|
|
42
|
+
await NativeSwiftPatch.initialize({
|
|
43
|
+
deploymentKey: this.config.deploymentKey,
|
|
44
|
+
serverUrl: this.config.serverUrl,
|
|
45
|
+
publicKey: this.config.publicKey
|
|
46
|
+
});
|
|
47
|
+
NativeSwiftPatch.setDebugMode(this.config.debug);
|
|
48
|
+
logger.setDebug(this.config.debug);
|
|
49
|
+
|
|
50
|
+
// Initialize core modules
|
|
51
|
+
this.updateChecker = new UpdateChecker({
|
|
52
|
+
serverUrl: this.config.serverUrl,
|
|
53
|
+
deploymentKey: this.config.deploymentKey,
|
|
54
|
+
customHeaders: this.config.customHeaders
|
|
55
|
+
});
|
|
56
|
+
this.downloader = new Downloader();
|
|
57
|
+
this.installer = new Installer();
|
|
58
|
+
this.rollbackModule = new RollbackModule();
|
|
59
|
+
logger.info('SwiftPatch initialized (imperative)');
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Check for an available update
|
|
64
|
+
*/
|
|
65
|
+
async checkForUpdate() {
|
|
66
|
+
const result = await this.updateChecker.check();
|
|
67
|
+
if (result.updateAvailable && result.release) {
|
|
68
|
+
return result.release;
|
|
69
|
+
}
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Download an update
|
|
75
|
+
*/
|
|
76
|
+
async download(release) {
|
|
77
|
+
await this.downloader.downloadRelease(release);
|
|
78
|
+
await reportInstallStatus({
|
|
79
|
+
serverUrl: this.config.serverUrl,
|
|
80
|
+
releaseId: release.id,
|
|
81
|
+
status: 'downloaded',
|
|
82
|
+
deploymentKey: this.config.deploymentKey
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Install a downloaded update
|
|
88
|
+
*/
|
|
89
|
+
async install(release) {
|
|
90
|
+
await this.installer.install(release.bundleHash);
|
|
91
|
+
await reportInstallStatus({
|
|
92
|
+
serverUrl: this.config.serverUrl,
|
|
93
|
+
releaseId: release.id,
|
|
94
|
+
status: 'installed',
|
|
95
|
+
deploymentKey: this.config.deploymentKey
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Download and install an update in one call
|
|
101
|
+
*/
|
|
102
|
+
async downloadAndInstall(release) {
|
|
103
|
+
await this.download(release);
|
|
104
|
+
await this.install(release);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Restart the app to apply the update
|
|
109
|
+
*/
|
|
110
|
+
restart() {
|
|
111
|
+
NativeSwiftPatch.restart();
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Rollback to the previous bundle
|
|
116
|
+
*/
|
|
117
|
+
async rollback() {
|
|
118
|
+
await this.rollbackModule.rollback();
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Get current bundle info
|
|
123
|
+
*/
|
|
124
|
+
async getCurrentBundle() {
|
|
125
|
+
return NativeSwiftPatch.getCurrentBundle();
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Clear any pending update
|
|
130
|
+
*/
|
|
131
|
+
async clearPendingUpdate() {
|
|
132
|
+
await this.rollbackModule.clearPending();
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=SwiftPatchCore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NativeSwiftPatch","reportInstallStatus","logger","UpdateChecker","Downloader","Installer","Rollback","RollbackModule","DEFAULT_CONFIG","SwiftPatch","constructor","userConfig","config","init","initialize","deploymentKey","serverUrl","publicKey","setDebugMode","debug","setDebug","updateChecker","customHeaders","downloader","installer","rollbackModule","info","checkForUpdate","result","check","updateAvailable","release","download","downloadRelease","releaseId","id","status","install","bundleHash","downloadAndInstall","restart","rollback","getCurrentBundle","clearPendingUpdate","clearPending"],"sourceRoot":"../../src","sources":["SwiftPatchCore.ts"],"mappings":"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","ignoreList":[]}
|