@hot-updater/react-native 0.36.7 → 1.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/src/main/java/com/hotupdater/BundleFileStorageService.kt +357 -6
- package/android/src/main/java/com/hotupdater/BundleMetadata.kt +268 -34
- package/android/src/main/java/com/hotupdater/HotUpdaterImpl.kt +75 -9
- package/android/src/main/java/com/hotupdater/NativeConfigUtils.kt +2 -16
- package/android/src/main/java/com/hotupdater/ReleaseCatalogCacheService.kt +166 -0
- package/android/src/main/java/com/hotupdater/SignatureVerifier.kt +1 -2
- package/android/src/newarch/HotUpdater.kt +1 -1
- package/android/src/newarch/HotUpdaterModule.kt +116 -0
- package/android/src/oldarch/HotUpdater.kt +1 -1
- package/android/src/oldarch/HotUpdaterModule.kt +128 -0
- package/android/src/oldarch/HotUpdaterSpec.kt +38 -0
- package/android/src/test/java/com/hotupdater/BundleFileStorageServiceTest.kt +280 -2
- package/android/src/test/java/com/hotupdater/HotUpdaterImplTest.kt +57 -2
- package/android/src/test/java/com/hotupdater/ReleaseCatalogCacheServiceTest.kt +118 -0
- package/ios/HotUpdater/Internal/BundleFileStorageService.swift +491 -30
- package/ios/HotUpdater/Internal/BundleMetadata.swift +229 -6
- package/ios/HotUpdater/Internal/HotUpdater.mm +122 -0
- package/ios/HotUpdater/Internal/HotUpdaterImpl.swift +176 -7
- package/ios/HotUpdater/Internal/ReleaseCatalogCacheService.swift +213 -0
- package/lib/commonjs/catalogCacheNative.js +44 -0
- package/lib/commonjs/catalogCacheNative.js.map +1 -0
- package/lib/commonjs/catalogCacheNative.spec.js +31 -0
- package/lib/commonjs/catalogCacheNative.spec.js.map +1 -0
- package/lib/commonjs/checkForUpdate.js +231 -60
- package/lib/commonjs/checkForUpdate.js.map +1 -1
- package/lib/commonjs/checkForUpdate.releaseCatalog.spec.js +604 -0
- package/lib/commonjs/checkForUpdate.releaseCatalog.spec.js.map +1 -0
- package/lib/commonjs/error.js +8 -1
- package/lib/commonjs/error.js.map +1 -1
- package/lib/commonjs/{fetchUpdateInfo.js → fetchJSON.js} +11 -14
- package/lib/commonjs/fetchJSON.js.map +1 -0
- package/lib/commonjs/httpClient.js +153 -0
- package/lib/commonjs/httpClient.js.map +1 -0
- package/lib/commonjs/httpClient.spec.js +102 -0
- package/lib/commonjs/httpClient.spec.js.map +1 -0
- package/lib/commonjs/index.js +47 -70
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/index.spec.js +115 -159
- package/lib/commonjs/index.spec.js.map +1 -1
- package/lib/commonjs/iosInterop.spec.js +18 -0
- package/lib/commonjs/iosInterop.spec.js.map +1 -0
- package/lib/commonjs/native.js +222 -53
- package/lib/commonjs/native.js.map +1 -1
- package/lib/commonjs/native.spec.js +226 -12
- package/lib/commonjs/native.spec.js.map +1 -1
- package/lib/commonjs/notifyAppReadyAnalytics.boundary.spec.js +218 -0
- package/lib/commonjs/notifyAppReadyAnalytics.boundary.spec.js.map +1 -0
- package/lib/commonjs/notifyAppReadyAnalytics.js +133 -0
- package/lib/commonjs/notifyAppReadyAnalytics.js.map +1 -0
- package/lib/commonjs/notifyAppReadyAnalytics.spec.js +246 -0
- package/lib/commonjs/notifyAppReadyAnalytics.spec.js.map +1 -0
- package/lib/commonjs/notifyAppReadyAnalytics.test-utils.js +24 -0
- package/lib/commonjs/notifyAppReadyAnalytics.test-utils.js.map +1 -0
- package/lib/commonjs/notifyAppReadyAnalytics.transport.spec.js +117 -0
- package/lib/commonjs/notifyAppReadyAnalytics.transport.spec.js.map +1 -0
- package/lib/commonjs/releaseCatalogCache.js +179 -0
- package/lib/commonjs/releaseCatalogCache.js.map +1 -0
- package/lib/commonjs/releaseCatalogCache.spec.js +195 -0
- package/lib/commonjs/releaseCatalogCache.spec.js.map +1 -0
- package/lib/commonjs/releaseCatalogCacheNativeContract.spec.js +64 -0
- package/lib/commonjs/releaseCatalogCacheNativeContract.spec.js.map +1 -0
- package/lib/commonjs/sdkVersion.js +1 -1
- package/lib/commonjs/sdkVersion.js.map +1 -1
- package/lib/commonjs/specs/NativeHotUpdater.js.map +1 -1
- package/lib/commonjs/types.js +0 -12
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/wrap.js +7 -82
- package/lib/commonjs/wrap.js.map +1 -1
- package/lib/commonjs/wrap.spec.js +203 -56
- package/lib/commonjs/wrap.spec.js.map +1 -1
- package/lib/commonjs/wrap.types.js +6 -0
- package/lib/commonjs/wrap.types.js.map +1 -0
- package/lib/module/catalogCacheNative.js +36 -0
- package/lib/module/catalogCacheNative.js.map +1 -0
- package/lib/module/catalogCacheNative.spec.js +31 -0
- package/lib/module/catalogCacheNative.spec.js.map +1 -0
- package/lib/module/checkForUpdate.js +233 -62
- package/lib/module/checkForUpdate.js.map +1 -1
- package/lib/module/checkForUpdate.releaseCatalog.spec.js +603 -0
- package/lib/module/checkForUpdate.releaseCatalog.spec.js.map +1 -0
- package/lib/module/error.js +6 -0
- package/lib/module/error.js.map +1 -1
- package/lib/module/{fetchUpdateInfo.js → fetchJSON.js} +9 -12
- package/lib/module/fetchJSON.js.map +1 -0
- package/lib/module/httpClient.js +148 -0
- package/lib/module/httpClient.js.map +1 -0
- package/lib/module/httpClient.spec.js +102 -0
- package/lib/module/httpClient.spec.js.map +1 -0
- package/lib/module/index.js +48 -65
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.spec.js +115 -159
- package/lib/module/index.spec.js.map +1 -1
- package/lib/module/iosInterop.spec.js +18 -0
- package/lib/module/iosInterop.spec.js.map +1 -0
- package/lib/module/native.js +206 -49
- package/lib/module/native.js.map +1 -1
- package/lib/module/native.spec.js +226 -12
- package/lib/module/native.spec.js.map +1 -1
- package/lib/module/notifyAppReadyAnalytics.boundary.spec.js +217 -0
- package/lib/module/notifyAppReadyAnalytics.boundary.spec.js.map +1 -0
- package/lib/module/notifyAppReadyAnalytics.js +128 -0
- package/lib/module/notifyAppReadyAnalytics.js.map +1 -0
- package/lib/module/notifyAppReadyAnalytics.spec.js +245 -0
- package/lib/module/notifyAppReadyAnalytics.spec.js.map +1 -0
- package/lib/module/notifyAppReadyAnalytics.test-utils.js +18 -0
- package/lib/module/notifyAppReadyAnalytics.test-utils.js.map +1 -0
- package/lib/module/notifyAppReadyAnalytics.transport.spec.js +116 -0
- package/lib/module/notifyAppReadyAnalytics.transport.spec.js.map +1 -0
- package/lib/module/releaseCatalogCache.js +171 -0
- package/lib/module/releaseCatalogCache.js.map +1 -0
- package/lib/module/releaseCatalogCache.spec.js +195 -0
- package/lib/module/releaseCatalogCache.spec.js.map +1 -0
- package/lib/module/releaseCatalogCacheNativeContract.spec.js +64 -0
- package/lib/module/releaseCatalogCacheNativeContract.spec.js.map +1 -0
- package/lib/module/sdkVersion.js +1 -1
- package/lib/module/sdkVersion.js.map +1 -1
- package/lib/module/specs/NativeHotUpdater.js.map +1 -1
- package/lib/module/types.js +0 -12
- package/lib/module/types.js.map +1 -1
- package/lib/module/wrap.js +6 -81
- package/lib/module/wrap.js.map +1 -1
- package/lib/module/wrap.spec.js +203 -56
- package/lib/module/wrap.spec.js.map +1 -1
- package/lib/module/wrap.types.js +4 -0
- package/lib/module/wrap.types.js.map +1 -0
- package/lib/typescript/commonjs/catalogCacheNative.d.ts +4 -0
- package/lib/typescript/commonjs/catalogCacheNative.d.ts.map +1 -0
- package/lib/typescript/commonjs/checkForUpdate.d.ts +14 -4
- package/lib/typescript/commonjs/checkForUpdate.d.ts.map +1 -1
- package/lib/typescript/commonjs/error.d.ts +3 -0
- package/lib/typescript/commonjs/error.d.ts.map +1 -1
- package/lib/typescript/commonjs/fetchJSON.d.ts +6 -0
- package/lib/typescript/commonjs/fetchJSON.d.ts.map +1 -0
- package/lib/typescript/commonjs/httpClient.d.ts +56 -0
- package/lib/typescript/commonjs/httpClient.d.ts.map +1 -0
- package/lib/typescript/commonjs/index.d.ts +31 -40
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/native.d.ts +84 -17
- package/lib/typescript/commonjs/native.d.ts.map +1 -1
- package/lib/typescript/commonjs/notifyAppReadyAnalytics.d.ts +13 -0
- package/lib/typescript/commonjs/notifyAppReadyAnalytics.d.ts.map +1 -0
- package/lib/typescript/commonjs/notifyAppReadyAnalytics.test-utils.d.ts +8 -0
- package/lib/typescript/commonjs/notifyAppReadyAnalytics.test-utils.d.ts.map +1 -0
- package/lib/typescript/commonjs/releaseCatalogCache.d.ts +25 -0
- package/lib/typescript/commonjs/releaseCatalogCache.d.ts.map +1 -0
- package/lib/typescript/commonjs/sdkVersion.d.ts +1 -1
- package/lib/typescript/commonjs/sdkVersion.d.ts.map +1 -1
- package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts +40 -5
- package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts.map +1 -1
- package/lib/typescript/commonjs/types.d.ts +0 -118
- package/lib/typescript/commonjs/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/wrap.d.ts +2 -191
- package/lib/typescript/commonjs/wrap.d.ts.map +1 -1
- package/lib/typescript/commonjs/wrap.types.d.ts +65 -0
- package/lib/typescript/commonjs/wrap.types.d.ts.map +1 -0
- package/lib/typescript/module/catalogCacheNative.d.ts +4 -0
- package/lib/typescript/module/catalogCacheNative.d.ts.map +1 -0
- package/lib/typescript/module/checkForUpdate.d.ts +14 -4
- package/lib/typescript/module/checkForUpdate.d.ts.map +1 -1
- package/lib/typescript/module/error.d.ts +3 -0
- package/lib/typescript/module/error.d.ts.map +1 -1
- package/lib/typescript/module/fetchJSON.d.ts +6 -0
- package/lib/typescript/module/fetchJSON.d.ts.map +1 -0
- package/lib/typescript/module/httpClient.d.ts +56 -0
- package/lib/typescript/module/httpClient.d.ts.map +1 -0
- package/lib/typescript/module/index.d.ts +31 -40
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/native.d.ts +84 -17
- package/lib/typescript/module/native.d.ts.map +1 -1
- package/lib/typescript/module/notifyAppReadyAnalytics.d.ts +13 -0
- package/lib/typescript/module/notifyAppReadyAnalytics.d.ts.map +1 -0
- package/lib/typescript/module/notifyAppReadyAnalytics.test-utils.d.ts +8 -0
- package/lib/typescript/module/notifyAppReadyAnalytics.test-utils.d.ts.map +1 -0
- package/lib/typescript/module/releaseCatalogCache.d.ts +25 -0
- package/lib/typescript/module/releaseCatalogCache.d.ts.map +1 -0
- package/lib/typescript/module/sdkVersion.d.ts +1 -1
- package/lib/typescript/module/sdkVersion.d.ts.map +1 -1
- package/lib/typescript/module/specs/NativeHotUpdater.d.ts +40 -5
- package/lib/typescript/module/specs/NativeHotUpdater.d.ts.map +1 -1
- package/lib/typescript/module/types.d.ts +0 -118
- package/lib/typescript/module/types.d.ts.map +1 -1
- package/lib/typescript/module/wrap.d.ts +2 -191
- package/lib/typescript/module/wrap.d.ts.map +1 -1
- package/lib/typescript/module/wrap.types.d.ts +65 -0
- package/lib/typescript/module/wrap.types.d.ts.map +1 -0
- package/package.json +6 -24
- package/src/catalogCacheNative.spec.ts +63 -0
- package/src/catalogCacheNative.ts +74 -0
- package/src/checkForUpdate.releaseCatalog.spec.ts +596 -0
- package/src/checkForUpdate.ts +367 -96
- package/src/error.ts +7 -0
- package/src/{fetchUpdateInfo.ts → fetchJSON.ts} +8 -15
- package/src/httpClient.spec.ts +132 -0
- package/src/httpClient.ts +261 -0
- package/src/index.spec.ts +108 -201
- package/src/index.ts +68 -91
- package/src/iosInterop.spec.ts +30 -0
- package/src/native.spec.ts +226 -10
- package/src/native.ts +385 -81
- package/src/notifyAppReadyAnalytics.boundary.spec.ts +234 -0
- package/src/notifyAppReadyAnalytics.spec.ts +243 -0
- package/src/notifyAppReadyAnalytics.test-utils.ts +31 -0
- package/src/notifyAppReadyAnalytics.transport.spec.ts +130 -0
- package/src/notifyAppReadyAnalytics.ts +194 -0
- package/src/releaseCatalogCache.spec.ts +282 -0
- package/src/releaseCatalogCache.ts +341 -0
- package/src/releaseCatalogCacheNativeContract.spec.ts +80 -0
- package/src/sdkVersion.ts +1 -1
- package/src/specs/NativeHotUpdater.ts +51 -5
- package/src/types.ts +0 -140
- package/src/wrap.spec.ts +251 -56
- package/src/wrap.tsx +23 -318
- package/src/wrap.types.ts +78 -0
- package/android/src/main/java/com/hotupdater/StringResourceUtils.kt +0 -45
- package/app.plugin.js +0 -1
- package/ios/HotUpdater/Internal/HotUpdaterCrashHandler.h +0 -7
- package/ios/HotUpdater/Internal/HotUpdaterCrashHandler.mm +0 -4
- package/lib/commonjs/DefaultResolver.js +0 -50
- package/lib/commonjs/DefaultResolver.js.map +0 -1
- package/lib/commonjs/DefaultResolver.spec.js +0 -144
- package/lib/commonjs/DefaultResolver.spec.js.map +0 -1
- package/lib/commonjs/fetchUpdateInfo.js.map +0 -1
- package/lib/module/DefaultResolver.js +0 -46
- package/lib/module/DefaultResolver.js.map +0 -1
- package/lib/module/DefaultResolver.spec.js +0 -144
- package/lib/module/DefaultResolver.spec.js.map +0 -1
- package/lib/module/fetchUpdateInfo.js.map +0 -1
- package/lib/typescript/commonjs/DefaultResolver.d.ts +0 -11
- package/lib/typescript/commonjs/DefaultResolver.d.ts.map +0 -1
- package/lib/typescript/commonjs/fetchUpdateInfo.d.ts +0 -7
- package/lib/typescript/commonjs/fetchUpdateInfo.d.ts.map +0 -1
- package/lib/typescript/module/DefaultResolver.d.ts +0 -11
- package/lib/typescript/module/DefaultResolver.d.ts.map +0 -1
- package/lib/typescript/module/fetchUpdateInfo.d.ts +0 -7
- package/lib/typescript/module/fetchUpdateInfo.d.ts.map +0 -1
- package/plugin/build/transformers.js +0 -314
- package/plugin/build/withHotUpdater.js +0 -228
- package/src/DefaultResolver.spec.ts +0 -193
- package/src/DefaultResolver.ts +0 -63
|
@@ -1,30 +1,12 @@
|
|
|
1
1
|
import { type CheckForUpdateOptions } from "./checkForUpdate";
|
|
2
|
-
import { addListener, clearCrashHistory, getAppVersion, getBundleId, getChannel, getCohort, getCrashHistory, getDefaultChannel, getFingerprintHash, getManifest, getMinBundleId, isChannelSwitched, reload, setCohort, setReloadBehavior, type UpdateParams } from "./native";
|
|
3
|
-
import { type AutoUpdateOptions, type HotUpdaterInitOptions, type HotUpdaterOptions,
|
|
4
|
-
export type { CustomReloadHandler, HotUpdaterEvent, HotUpdaterProgressArtifactType, HotUpdaterProgressEvent, Manifest, ManifestAsset, NotifyAppReadyResult, ReloadBehavior, ReloadBehaviorSetting, } from "./native";
|
|
2
|
+
import { addListener, clearCrashHistory, getAppVersion, getBundleId, getChannel, getCohort, getCrashHistory, getDefaultChannel, getFingerprintHash, getInstallId, getManifest, getMinBundleId, getReleaseId, isChannelSwitched, notifyAppReady, reload, setCohort, setReloadBehavior, setUser, type UpdateParams } from "./native";
|
|
3
|
+
import { type AutoUpdateOptions, type HotUpdaterInitOptions, type HotUpdaterOptions, wrap } from "./wrap";
|
|
4
|
+
export type { CustomReloadHandler, HotUpdaterEvent, HotUpdaterProgressArtifactType, HotUpdaterProgressEvent, Manifest, ManifestAsset, NotifyAppReadyResult, ActiveUpdateState, ReloadBehavior, ReloadBehaviorSetting, SetUserParams, } from "./native";
|
|
5
5
|
export * from "./store";
|
|
6
|
-
export {
|
|
7
|
-
export
|
|
8
|
-
export type { HotUpdaterFallbackComponentProps, HotUpdaterInitOptions, HotUpdaterOptions, ManualUpdateOptions, RunUpdateProcessResponse, } from "./wrap";
|
|
6
|
+
export { extractSignatureFailure, type HotUpdaterBaseURL, isSignatureVerificationError, type SignatureVerificationFailure, } from "./types";
|
|
7
|
+
export type { HotUpdaterFallbackComponentProps, HotUpdaterInitOptions, HotUpdaterOptions, RunUpdateProcessResponse, } from "./wrap";
|
|
9
8
|
type HotUpdaterWrap = {
|
|
10
9
|
(options: AutoUpdateOptions): ReturnType<typeof wrap>;
|
|
11
|
-
/**
|
|
12
|
-
* @deprecated Replace manual `HotUpdater.wrap` with `HotUpdater.init`.
|
|
13
|
-
*
|
|
14
|
-
* ```tsx
|
|
15
|
-
* import { HotUpdater } from "@hot-updater/react-native";
|
|
16
|
-
*
|
|
17
|
-
* HotUpdater.init({
|
|
18
|
-
* baseURL: "<your-update-server-url>",
|
|
19
|
-
* });
|
|
20
|
-
*
|
|
21
|
-
* export default App;
|
|
22
|
-
* ```
|
|
23
|
-
*
|
|
24
|
-
* Then call `HotUpdater.checkForUpdate(...)` from your manual update flow.
|
|
25
|
-
* See https://hot-updater.dev/docs/guides/custom-update
|
|
26
|
-
*/
|
|
27
|
-
(options: ManualUpdateOptions): ReturnType<typeof wrap>;
|
|
28
10
|
(options: HotUpdaterOptions): ReturnType<typeof wrap>;
|
|
29
11
|
};
|
|
30
12
|
/**
|
|
@@ -50,7 +32,7 @@ declare function createHotUpdaterClient(): {
|
|
|
50
32
|
* baseURL: "<your-update-server-url>",
|
|
51
33
|
* updateStrategy: "appVersion",
|
|
52
34
|
* requestHeaders: {
|
|
53
|
-
* "
|
|
35
|
+
* "x-api-key": "<your-api-key>",
|
|
54
36
|
* },
|
|
55
37
|
* })(App);
|
|
56
38
|
* ```
|
|
@@ -60,8 +42,7 @@ declare function createHotUpdaterClient(): {
|
|
|
60
42
|
* Initializes HotUpdater without wrapping a React component.
|
|
61
43
|
*
|
|
62
44
|
* Use this for manual update flows in runtimes where a root component HOC
|
|
63
|
-
* is not convenient.
|
|
64
|
-
* `HotUpdater.wrap({ updateMode: "manual" })(App)` usage with this API.
|
|
45
|
+
* is not convenient. Use this instead of wrapping the root component.
|
|
65
46
|
*
|
|
66
47
|
* @example
|
|
67
48
|
* ```tsx
|
|
@@ -110,14 +91,16 @@ declare function createHotUpdaterClient(): {
|
|
|
110
91
|
* Fetches the current app version.
|
|
111
92
|
*/
|
|
112
93
|
getAppVersion: typeof getAppVersion;
|
|
94
|
+
/** Reads the active and stable Release/Bundle state. */
|
|
95
|
+
getActiveUpdateState: () => Promise<import("./native").ActiveUpdateState>;
|
|
113
96
|
/**
|
|
114
97
|
* Fetches the current bundle ID of the app.
|
|
115
98
|
*/
|
|
116
99
|
getBundleId: typeof getBundleId;
|
|
117
|
-
/**
|
|
118
|
-
* Retrieves the initial bundle ID based on the build time of the native app.
|
|
119
|
-
*/
|
|
100
|
+
/** Returns the minimum bundle ID based on the native app build time. */
|
|
120
101
|
getMinBundleId: typeof getMinBundleId;
|
|
102
|
+
/** Returns the active Release identity, or null for BUILTIN/legacy state. */
|
|
103
|
+
getReleaseId: typeof getReleaseId;
|
|
121
104
|
/**
|
|
122
105
|
* Fetches the current manifest for the active bundle.
|
|
123
106
|
*/
|
|
@@ -186,18 +169,17 @@ declare function createHotUpdaterClient(): {
|
|
|
186
169
|
* Manually checks for updates.
|
|
187
170
|
*
|
|
188
171
|
* @param {Object} config - Update check configuration
|
|
189
|
-
* @param {string} config.source - Update server URL
|
|
190
172
|
* @param {string} [config.channel] - Optional channel override for this update check
|
|
191
173
|
* @param {Record<string, string>} [config.requestHeaders] - Request headers
|
|
192
174
|
*
|
|
193
|
-
* @returns {Promise<
|
|
175
|
+
* @returns {Promise<CheckForUpdateResult | null>} Update information or null if up to date
|
|
194
176
|
*
|
|
195
177
|
* @example
|
|
196
178
|
* ```ts
|
|
197
179
|
* const updateInfo = await HotUpdater.checkForUpdate({
|
|
198
|
-
*
|
|
180
|
+
* updateStrategy: "appVersion",
|
|
199
181
|
* requestHeaders: {
|
|
200
|
-
*
|
|
182
|
+
* "x-api-key": "<your-api-key>",
|
|
201
183
|
* },
|
|
202
184
|
* });
|
|
203
185
|
*
|
|
@@ -206,7 +188,7 @@ declare function createHotUpdaterClient(): {
|
|
|
206
188
|
* return;
|
|
207
189
|
* }
|
|
208
190
|
*
|
|
209
|
-
* await
|
|
191
|
+
* await updateInfo.updateBundle();
|
|
210
192
|
* if (updateInfo.shouldForceUpdate) {
|
|
211
193
|
* await HotUpdater.reload();
|
|
212
194
|
* }
|
|
@@ -225,9 +207,9 @@ declare function createHotUpdaterClient(): {
|
|
|
225
207
|
* @example
|
|
226
208
|
* ```ts
|
|
227
209
|
* const updateInfo = await HotUpdater.checkForUpdate({
|
|
228
|
-
*
|
|
210
|
+
* updateStrategy: "appVersion",
|
|
229
211
|
* requestHeaders: {
|
|
230
|
-
*
|
|
212
|
+
* "x-api-key": "<your-api-key>",
|
|
231
213
|
* },
|
|
232
214
|
* });
|
|
233
215
|
*
|
|
@@ -237,10 +219,7 @@ declare function createHotUpdaterClient(): {
|
|
|
237
219
|
* };
|
|
238
220
|
* }
|
|
239
221
|
*
|
|
240
|
-
* await
|
|
241
|
-
* bundleId: updateInfo.id,
|
|
242
|
-
* fileUrl: updateInfo.fileUrl
|
|
243
|
-
* });
|
|
222
|
+
* await updateInfo.updateBundle();
|
|
244
223
|
* if (updateInfo.shouldForceUpdate) {
|
|
245
224
|
* await HotUpdater.reload();
|
|
246
225
|
* }
|
|
@@ -265,6 +244,18 @@ declare function createHotUpdaterClient(): {
|
|
|
265
244
|
* ```
|
|
266
245
|
*/
|
|
267
246
|
getFingerprintHash: typeof getFingerprintHash;
|
|
247
|
+
/**
|
|
248
|
+
* Fetches the persisted install id for this app installation.
|
|
249
|
+
*/
|
|
250
|
+
getInstallId: typeof getInstallId;
|
|
251
|
+
/**
|
|
252
|
+
* Persists nullable user identity fields associated with this installation.
|
|
253
|
+
*/
|
|
254
|
+
setUser: typeof setUser;
|
|
255
|
+
/**
|
|
256
|
+
* Reads the native launch report for the current process.
|
|
257
|
+
*/
|
|
258
|
+
notifyAppReady: typeof notifyAppReady;
|
|
268
259
|
/**
|
|
269
260
|
* Gets the list of bundle IDs that have been marked as crashed.
|
|
270
261
|
* These bundles will be rejected if attempted to install again.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,qBAAqB,EAG3B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,qBAAqB,EAG3B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,WAAW,EAEX,iBAAiB,EACjB,aAAa,EAEb,WAAW,EACX,UAAU,EACV,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,MAAM,EAEN,SAAS,EACT,iBAAiB,EACjB,OAAO,EACP,KAAK,YAAY,EAElB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EAItB,IAAI,EACL,MAAM,QAAQ,CAAC;AAEhB,YAAY,EACV,mBAAmB,EACnB,eAAe,EACf,8BAA8B,EAC9B,uBAAuB,EACvB,QAAQ,EACR,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,aAAa,GACd,MAAM,UAAU,CAAC;AAClB,cAAc,SAAS,CAAC;AACxB,OAAO,EACL,uBAAuB,EACvB,KAAK,iBAAiB,EACtB,4BAA4B,EAC5B,KAAK,4BAA4B,GAClC,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,gCAAgC,EAChC,qBAAqB,EACrB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,QAAQ,CAAC;AAoBhB,KAAK,cAAc,GAAG;IACpB,CAAC,OAAO,EAAE,iBAAiB,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;IACtD,CAAC,OAAO,EAAE,iBAAiB,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;CACvD,CAAC;AAEF;;;GAGG;AACH,iBAAS,sBAAsB;IA0I3B;;;;;;;;;;;;;;;;;;;;;;OAsBG;oBACa,iBAAiB;IAQjC;;;;;;;;;;;;;;OAcG;oBACa,qBAAqB,KAAG,IAAI;IAS5C;;OAEG;;IAGH;;;;;;;;;OASG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;OAEG;;IAGH,wDAAwD;;IAGxD;;OAEG;;IAGH,wEAAwE;;IAGxE,6EAA6E;;IAG7E;;OAEG;;IAGH;;;;;;;;;;;;OAYG;;IAGH;;;;;;;;;;;OAWG;;IAGH;;;;OAIG;;IAGH;;;OAGG;;IAGH;;OAEG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;6BACsB,qBAAqB;IAkB9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;2BACoB,YAAY;IAKnC;;;;OAIG;;IAgBH;;;;;;;;;;OAUG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;;;;;;;;;OAWG;;IAGH;;;;;;;;;;;OAWG;;EAGN;AAED,KAAK,gBAAgB,GAAG,IAAI,CAC1B,UAAU,CAAC,OAAO,sBAAsB,CAAC,EACzC,MAAM,CACP,GAAG;IACF,IAAI,EAAE,cAAc,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,gBAA2C,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { type UpdateStatus } from "@hot-updater/core";
|
|
1
|
+
import { type CatalogHighWater, type UpdateStatus, type PersistedSelectionReceipt } from "@hot-updater/core";
|
|
2
2
|
import { HotUpdaterErrorCode, isHotUpdaterError } from "./error";
|
|
3
3
|
import { type UpdateBundleParams } from "./specs/NativeHotUpdater";
|
|
4
4
|
export { HotUpdaterErrorCode, isHotUpdaterError };
|
|
5
|
+
type PersistedUpdateStrategy = "fingerprint" | "appVersion";
|
|
5
6
|
export interface ManifestAsset {
|
|
6
7
|
fileHash: string;
|
|
7
8
|
signature?: string;
|
|
@@ -94,6 +95,41 @@ export type UpdateParams = UpdateBundleParams & {
|
|
|
94
95
|
status: UpdateStatus;
|
|
95
96
|
shouldSkipCurrentBundleIdCheck?: boolean;
|
|
96
97
|
};
|
|
98
|
+
export interface ActiveUpdateState {
|
|
99
|
+
readonly activeSelection: ActiveUpdateSelection | null;
|
|
100
|
+
readonly stableSelection: ActiveUpdateSelection | null;
|
|
101
|
+
readonly verificationPending: boolean;
|
|
102
|
+
}
|
|
103
|
+
type ActiveUpdateSelection = Pick<PersistedSelectionReceipt, "kind" | "releaseId" | "bundleId" | "channel">;
|
|
104
|
+
export interface InternalActiveUpdateState {
|
|
105
|
+
readonly activeSelection: PersistedSelectionReceipt | null;
|
|
106
|
+
readonly stableSelection: PersistedSelectionReceipt | null;
|
|
107
|
+
readonly verificationPending: boolean;
|
|
108
|
+
readonly highestSeenCatalogs: Readonly<Record<string, CatalogHighWater>>;
|
|
109
|
+
}
|
|
110
|
+
export interface ReleaseSelectionGuard {
|
|
111
|
+
readonly catalogId: string;
|
|
112
|
+
readonly scopeKey: string;
|
|
113
|
+
readonly generation: number;
|
|
114
|
+
readonly catalogHash: string;
|
|
115
|
+
readonly selectionContextHash: string;
|
|
116
|
+
readonly channel: string;
|
|
117
|
+
}
|
|
118
|
+
export declare const acceptReleaseCatalog: (input: {
|
|
119
|
+
readonly catalogId: string;
|
|
120
|
+
readonly scopeKey: string;
|
|
121
|
+
readonly generation: number;
|
|
122
|
+
readonly catalogHash: string;
|
|
123
|
+
readonly channel: string;
|
|
124
|
+
readonly selectionContextHash: string;
|
|
125
|
+
}) => boolean;
|
|
126
|
+
export declare const getActiveUpdateState: () => InternalActiveUpdateState;
|
|
127
|
+
export declare const getPublicActiveUpdateState: () => ActiveUpdateState;
|
|
128
|
+
export declare const isReleaseSelectionCurrent: (input: ReleaseSelectionGuard) => boolean;
|
|
129
|
+
export declare const commitReleaseSelection: (input: {
|
|
130
|
+
readonly selection: PersistedSelectionReceipt;
|
|
131
|
+
readonly guard: ReleaseSelectionGuard;
|
|
132
|
+
}) => Promise<boolean>;
|
|
97
133
|
/**
|
|
98
134
|
* Downloads files and applies them to the app.
|
|
99
135
|
*
|
|
@@ -102,10 +138,6 @@ export type UpdateParams = UpdateBundleParams & {
|
|
|
102
138
|
* @throws {Error} Rejects with error.code from HotUpdaterErrorCode enum and error.message
|
|
103
139
|
*/
|
|
104
140
|
export declare function updateBundle(params: UpdateParams): Promise<boolean>;
|
|
105
|
-
/**
|
|
106
|
-
* @deprecated Use updateBundle(params: UpdateBundleParamsWithStatus) instead
|
|
107
|
-
*/
|
|
108
|
-
export declare function updateBundle(bundleId: string, fileUrl: string | null): Promise<boolean>;
|
|
109
141
|
/**
|
|
110
142
|
* Fetches the current app version.
|
|
111
143
|
*/
|
|
@@ -140,12 +172,14 @@ export declare const reload: () => Promise<void>;
|
|
|
140
172
|
*/
|
|
141
173
|
export declare function setReloadBehavior(...args: [behavior: ReloadBehavior] | [behavior: "custom", handler: CustomReloadHandler]): void;
|
|
142
174
|
/**
|
|
143
|
-
* Fetches the minimum bundle id
|
|
144
|
-
*
|
|
175
|
+
* Fetches the minimum bundle id created from the native app build time.
|
|
176
|
+
*
|
|
177
|
+
* Release Catalog selection uses this value as its minimum Release id.
|
|
145
178
|
*
|
|
146
|
-
* @returns {string}
|
|
179
|
+
* @returns {string} The minimum bundle id.
|
|
147
180
|
*/
|
|
148
181
|
export declare const getMinBundleId: () => string;
|
|
182
|
+
export declare const getReleaseId: () => Promise<string | null>;
|
|
149
183
|
/**
|
|
150
184
|
* Fetches the current bundle version id.
|
|
151
185
|
*
|
|
@@ -184,12 +218,48 @@ export declare const isChannelSwitched: () => boolean;
|
|
|
184
218
|
* @returns {string | null} Resolves with the fingerprint hash
|
|
185
219
|
*/
|
|
186
220
|
export declare const getFingerprintHash: () => string | null;
|
|
221
|
+
export declare const getInstallId: () => string;
|
|
222
|
+
export type PersistedUserIdentity = {
|
|
223
|
+
userId?: string;
|
|
224
|
+
username?: string;
|
|
225
|
+
};
|
|
226
|
+
export declare const getPersistedUserIdentity: () => PersistedUserIdentity;
|
|
227
|
+
export type SetUserParams = {
|
|
228
|
+
userId?: string | number | null;
|
|
229
|
+
username?: string | null;
|
|
230
|
+
};
|
|
231
|
+
export declare function setUser(params: SetUserParams): void;
|
|
232
|
+
export declare function setUser(params: null): void;
|
|
187
233
|
/**
|
|
188
234
|
* Result returned by notifyAppReady()
|
|
189
235
|
*/
|
|
190
236
|
export type NotifyAppReadyResult = {
|
|
191
|
-
status: "
|
|
192
|
-
|
|
237
|
+
status: "UNCHANGED";
|
|
238
|
+
} | {
|
|
239
|
+
status: "UPDATE_APPLIED";
|
|
240
|
+
fromBundleId: string;
|
|
241
|
+
toBundleId: string;
|
|
242
|
+
fromReleaseId?: string;
|
|
243
|
+
toReleaseId?: string;
|
|
244
|
+
} | {
|
|
245
|
+
status: "RECOVERED";
|
|
246
|
+
fromBundleId: string;
|
|
247
|
+
toBundleId: string;
|
|
248
|
+
fromReleaseId?: string;
|
|
249
|
+
toReleaseId?: string;
|
|
250
|
+
};
|
|
251
|
+
export type NotifyAppReadyAnalyticsEvent = {
|
|
252
|
+
type: "UPDATE_APPLIED" | "RECOVERED";
|
|
253
|
+
fromBundleId: string;
|
|
254
|
+
toBundleId: string;
|
|
255
|
+
fromReleaseId?: string | null;
|
|
256
|
+
toReleaseId?: string | null;
|
|
257
|
+
updateStrategy: PersistedUpdateStrategy;
|
|
258
|
+
};
|
|
259
|
+
export declare const readNotifyAppReady: () => {
|
|
260
|
+
result: NotifyAppReadyResult;
|
|
261
|
+
analyticsEvent: NotifyAppReadyAnalyticsEvent | null;
|
|
262
|
+
pending: boolean;
|
|
193
263
|
};
|
|
194
264
|
/**
|
|
195
265
|
* Reads the native launch report for the current process.
|
|
@@ -197,19 +267,16 @@ export type NotifyAppReadyResult = {
|
|
|
197
267
|
* This function is called automatically after the app has rendered.
|
|
198
268
|
*
|
|
199
269
|
* @returns {NotifyAppReadyResult} Bundle state information
|
|
200
|
-
* - `status: "
|
|
201
|
-
* - `status: "
|
|
202
|
-
* - `
|
|
270
|
+
* - `status: "UNCHANGED"` - No qualifying OTA transition to report
|
|
271
|
+
* - `status: "UPDATE_APPLIED"` - A pending update became active
|
|
272
|
+
* - `status: "RECOVERED"` - Crash recovery rolled back to another bundle
|
|
203
273
|
*
|
|
204
274
|
* @example
|
|
205
275
|
* ```ts
|
|
206
276
|
* const result = HotUpdater.notifyAppReady();
|
|
207
277
|
*
|
|
208
278
|
* if (result.status === "RECOVERED") {
|
|
209
|
-
*
|
|
210
|
-
* analytics.track("bundle_rollback", {
|
|
211
|
-
* crashedBundleId: result.crashedBundleId,
|
|
212
|
-
* });
|
|
279
|
+
* console.log(result.fromBundleId, result.toBundleId);
|
|
213
280
|
* }
|
|
214
281
|
* ```
|
|
215
282
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/native.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/native.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { HotUpdaterError } from "./error";
|
|
2
|
+
import type { HotUpdaterHttpClient } from "./httpClient";
|
|
3
|
+
import { type NotifyAppReadyResult } from "./native";
|
|
4
|
+
export type NotifyAppReadyOptions = {
|
|
5
|
+
analytics?: boolean;
|
|
6
|
+
client: HotUpdaterHttpClient;
|
|
7
|
+
requestHeaders?: Record<string, string>;
|
|
8
|
+
requestTimeout?: number;
|
|
9
|
+
onNotifyAppReady?: (result: NotifyAppReadyResult) => void;
|
|
10
|
+
onError?: (error: HotUpdaterError | Error | unknown) => void;
|
|
11
|
+
};
|
|
12
|
+
export declare const handleNotifyAppReady: (options: NotifyAppReadyOptions) => Promise<void>;
|
|
13
|
+
//# sourceMappingURL=notifyAppReadyAnalytics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notifyAppReadyAnalytics.d.ts","sourceRoot":"","sources":["../../../src/notifyAppReadyAnalytics.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EAAwB,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EASL,KAAK,oBAAoB,EAE1B,MAAM,UAAU,CAAC;AAElB,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC1D,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,GAAG,KAAK,GAAG,OAAO,KAAK,IAAI,CAAC;CAC9D,CAAC;AA4IF,eAAO,MAAM,oBAAoB,YACtB,qBAAqB,KAC7B,OAAO,CAAC,IAAI,CA2Bd,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { NotifyAppReadyAnalyticsEvent, NotifyAppReadyResult } from "./native";
|
|
2
|
+
export declare const createNotifyReadResult: (result?: NotifyAppReadyResult, analyticsEvent?: NotifyAppReadyAnalyticsEvent | null, pending?: boolean) => {
|
|
3
|
+
analyticsEvent: NotifyAppReadyAnalyticsEvent | null;
|
|
4
|
+
pending: boolean;
|
|
5
|
+
result: NotifyAppReadyResult;
|
|
6
|
+
};
|
|
7
|
+
export declare const stubNotifyFrame: () => void;
|
|
8
|
+
//# sourceMappingURL=notifyAppReadyAnalytics.test-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notifyAppReadyAnalytics.test-utils.d.ts","sourceRoot":"","sources":["../../../src/notifyAppReadyAnalytics.test-utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,4BAA4B,EAC5B,oBAAoB,EACrB,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,sBAAsB,YACzB,oBAAoB,mBACZ,4BAA4B,GAAG,IAAI,wBAElD;IACD,cAAc,EAAE,4BAA4B,GAAG,IAAI,CAAC;IACpD,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,oBAAoB,CAAC;CAK7B,CAAC;AAEH,eAAO,MAAM,eAAe,YAS3B,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type ReleaseCatalog } from "@hot-updater/core";
|
|
2
|
+
export declare const MAX_RELEASE_CATALOG_WIRE_BYTES: number;
|
|
3
|
+
export declare const MAX_RELEASE_CATALOG_CACHE_ENTRY_BYTES: number;
|
|
4
|
+
export type ExpectedReleaseCatalogScope = {
|
|
5
|
+
readonly channelKey: string;
|
|
6
|
+
readonly platform: "ios" | "android";
|
|
7
|
+
} & ({
|
|
8
|
+
readonly strategy: "APP_VERSION";
|
|
9
|
+
readonly fingerprintHash?: never;
|
|
10
|
+
} | {
|
|
11
|
+
readonly strategy: "FINGERPRINT";
|
|
12
|
+
readonly fingerprintHash: string;
|
|
13
|
+
});
|
|
14
|
+
type FetchReleaseCatalogInput = {
|
|
15
|
+
readonly baseURL: string;
|
|
16
|
+
readonly expectedScope: ExpectedReleaseCatalogScope;
|
|
17
|
+
readonly requestHeaders?: Record<string, string>;
|
|
18
|
+
readonly requestTimeout?: number;
|
|
19
|
+
readonly url: string;
|
|
20
|
+
};
|
|
21
|
+
export declare const hasExpectedReleaseCatalogScope: (catalog: ReleaseCatalog, expected: ExpectedReleaseCatalogScope) => boolean;
|
|
22
|
+
export declare const createReleaseCatalogCachePartition: (input: Pick<FetchReleaseCatalogInput, "baseURL" | "requestHeaders" | "url">) => string;
|
|
23
|
+
export declare const fetchReleaseCatalogWithCache: (input: FetchReleaseCatalogInput) => Promise<ReleaseCatalog>;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=releaseCatalogCache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"releaseCatalogCache.d.ts","sourceRoot":"","sources":["../../../src/releaseCatalogCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;AAI3B,eAAO,MAAM,8BAA8B,QACA,CAAC;AAC5C,eAAO,MAAM,qCAAqC,QACG,CAAC;AAiCtD,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;CACtC,GAAG,CACA;IACE,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC;CAClC,GACD;IACE,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC,CACJ,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,2BAA2B,CAAC;IACpD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB,CAAC;AAiDF,eAAO,MAAM,8BAA8B,YAChC,cAAc,YACb,2BAA2B,KACpC,OAcF,CAAC;AAkGF,eAAO,MAAM,kCAAkC,UACtC,IAAI,CAAC,wBAAwB,EAAE,SAAS,GAAG,gBAAgB,GAAG,KAAK,CAAC,KAC1E,MAMC,CAAC;AAqFL,eAAO,MAAM,4BAA4B,UAChC,wBAAwB,KAC9B,OAAO,CAAC,cAAc,CAaxB,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const HOT_UPDATER_SDK_VERSION = "0.
|
|
1
|
+
export declare const HOT_UPDATER_SDK_VERSION = "1.0.0-rc.1";
|
|
2
2
|
//# sourceMappingURL=sdkVersion.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdkVersion.d.ts","sourceRoot":"","sources":["../../../src/sdkVersion.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,
|
|
1
|
+
{"version":3,"file":"sdkVersion.d.ts","sourceRoot":"","sources":["../../../src/sdkVersion.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,eAAe,CAAC"}
|
|
@@ -41,6 +41,8 @@ export interface UpdateBundleParams {
|
|
|
41
41
|
* the currently active bundle.
|
|
42
42
|
*/
|
|
43
43
|
changedAssets?: UnsafeObject | null;
|
|
44
|
+
/** Full Release Catalog selection receipt committed with the staged Bundle. */
|
|
45
|
+
selection?: UnsafeObject | null;
|
|
44
46
|
}
|
|
45
47
|
export interface Spec extends TurboModule {
|
|
46
48
|
reload(): Promise<void>;
|
|
@@ -82,17 +84,34 @@ export interface Spec extends TurboModule {
|
|
|
82
84
|
* or UNKNOWN_ERROR to keep the JS error surface small.
|
|
83
85
|
*/
|
|
84
86
|
updateBundle(params: UpdateBundleParams): Promise<boolean>;
|
|
87
|
+
/** Accepts and durably advances the catalog high-water for a scope. */
|
|
88
|
+
acceptReleaseCatalog(params: UnsafeObject): boolean;
|
|
89
|
+
/** Reads active/stable selection receipts and catalog high-water state. */
|
|
90
|
+
getActiveUpdateState(): UnsafeObject;
|
|
91
|
+
/** Reads a checksum-verified Release Catalog cache entry. */
|
|
92
|
+
getReleaseCatalogCache(partition: string): Promise<string | null>;
|
|
93
|
+
/** Atomically stores a bounded Release Catalog cache entry. */
|
|
94
|
+
setReleaseCatalogCache(partition: string, payload: string): Promise<boolean>;
|
|
95
|
+
/** Removes an incompatible Release Catalog cache entry. */
|
|
96
|
+
removeReleaseCatalogCache(partition: string): Promise<boolean>;
|
|
97
|
+
/** Rechecks generation/context immediately before a catalog side effect. */
|
|
98
|
+
isReleaseSelectionCurrent(params: UnsafeObject): boolean;
|
|
99
|
+
/** Atomically commits a metadata-only, EMBEDDED, or BUILTIN selection. */
|
|
100
|
+
commitReleaseSelection(params: UnsafeObject): Promise<boolean>;
|
|
85
101
|
/**
|
|
86
102
|
* Reads the launch report for the current process.
|
|
87
103
|
* This is a read-only API; native launch state has already been finalized.
|
|
88
104
|
*
|
|
89
|
-
* @returns Object
|
|
90
|
-
*
|
|
91
|
-
* - `status: "STABLE"` - No changes, already stable
|
|
92
|
-
* - `crashedBundleId` - Present only when status is "RECOVERED"
|
|
105
|
+
* @returns Object describing whether launch state changed and, for qualifying
|
|
106
|
+
* transitions, the relevant bundle ids plus persisted transition metadata.
|
|
93
107
|
*/
|
|
94
108
|
notifyAppReady(): {
|
|
95
|
-
status: "
|
|
109
|
+
status: "PENDING" | "UNCHANGED" | "UPDATE_APPLIED" | "RECOVERED";
|
|
110
|
+
fromReleaseId?: string;
|
|
111
|
+
fromBundleId?: string;
|
|
112
|
+
toReleaseId?: string;
|
|
113
|
+
toBundleId?: string;
|
|
114
|
+
updateStrategy?: "fingerprint" | "appVersion";
|
|
96
115
|
crashedBundleId?: string;
|
|
97
116
|
};
|
|
98
117
|
/**
|
|
@@ -150,6 +169,22 @@ export interface Spec extends TurboModule {
|
|
|
150
169
|
* persists it before returning.
|
|
151
170
|
*/
|
|
152
171
|
getCohort: () => string;
|
|
172
|
+
/**
|
|
173
|
+
* Gets the persisted install id for this app installation.
|
|
174
|
+
*/
|
|
175
|
+
getInstallId: () => string;
|
|
176
|
+
/**
|
|
177
|
+
* Gets the persisted nullable user id associated with this installation.
|
|
178
|
+
*/
|
|
179
|
+
getUserId: () => string | null;
|
|
180
|
+
/**
|
|
181
|
+
* Gets the persisted nullable username associated with this installation.
|
|
182
|
+
*/
|
|
183
|
+
getUsername: () => string | null;
|
|
184
|
+
/**
|
|
185
|
+
* Persists nullable user identity fields associated with this installation.
|
|
186
|
+
*/
|
|
187
|
+
setUser: (userId: string | null, username: string | null) => void;
|
|
153
188
|
addListener(eventName: string): void;
|
|
154
189
|
removeListeners(count: number): void;
|
|
155
190
|
readonly getConstants: () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeHotUpdater.d.ts","sourceRoot":"","sources":["../../../../src/specs/NativeHotUpdater.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAE9E,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE;QACL,WAAW,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;QAC1B,GAAG,EAAE,MAAM,CAAC;KACb,GAAG,IAAI,CAAC;IACT,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE;QACN,SAAS,EAAE,QAAQ,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;KAClB,GAAG,IAAI,CAAC;CACV;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;;;;;;;OAQG;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC;;;OAGG;IACH,aAAa,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"NativeHotUpdater.d.ts","sourceRoot":"","sources":["../../../../src/specs/NativeHotUpdater.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,122 +1,4 @@
|
|
|
1
|
-
import type { AppUpdateInfo } from "@hot-updater/core";
|
|
2
|
-
import type { NotifyAppReadyResult } from "./native";
|
|
3
1
|
export type HotUpdaterBaseURL = string | (() => string | Promise<string>);
|
|
4
|
-
/**
|
|
5
|
-
* Parameters passed to resolver.checkUpdate method
|
|
6
|
-
*/
|
|
7
|
-
export interface ResolverCheckUpdateParams {
|
|
8
|
-
/**
|
|
9
|
-
* The platform the app is running on
|
|
10
|
-
*/
|
|
11
|
-
platform: "ios" | "android";
|
|
12
|
-
/**
|
|
13
|
-
* The current app version
|
|
14
|
-
*/
|
|
15
|
-
appVersion: string;
|
|
16
|
-
/**
|
|
17
|
-
* The current bundle ID
|
|
18
|
-
*/
|
|
19
|
-
bundleId: string;
|
|
20
|
-
/**
|
|
21
|
-
* Minimum bundle ID from build time
|
|
22
|
-
*/
|
|
23
|
-
minBundleId: string;
|
|
24
|
-
/**
|
|
25
|
-
* The channel name (e.g., "production", "staging")
|
|
26
|
-
*/
|
|
27
|
-
channel: string;
|
|
28
|
-
/**
|
|
29
|
-
* Cohort identifier used for server-side rollout decisions.
|
|
30
|
-
*/
|
|
31
|
-
cohort: string;
|
|
32
|
-
/**
|
|
33
|
-
* Update strategy being used
|
|
34
|
-
*/
|
|
35
|
-
updateStrategy: "fingerprint" | "appVersion";
|
|
36
|
-
/**
|
|
37
|
-
* The fingerprint hash (only present when using fingerprint strategy)
|
|
38
|
-
*/
|
|
39
|
-
fingerprintHash: string | null;
|
|
40
|
-
/**
|
|
41
|
-
* Request headers from global config (for optional use)
|
|
42
|
-
*/
|
|
43
|
-
requestHeaders?: Record<string, string>;
|
|
44
|
-
/**
|
|
45
|
-
* Request timeout from global config (for optional use)
|
|
46
|
-
*/
|
|
47
|
-
requestTimeout?: number;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Parameters passed to resolver.notifyAppReady method
|
|
51
|
-
*/
|
|
52
|
-
export interface ResolverNotifyAppReadyParams {
|
|
53
|
-
/**
|
|
54
|
-
* The bundle state from native notifyAppReady
|
|
55
|
-
* - "RECOVERED": App recovered from crash, rollback occurred
|
|
56
|
-
* - "STABLE": No changes, bundle is stable
|
|
57
|
-
*/
|
|
58
|
-
status: "RECOVERED" | "STABLE";
|
|
59
|
-
/**
|
|
60
|
-
* Present only when status is "RECOVERED"
|
|
61
|
-
*/
|
|
62
|
-
crashedBundleId?: string;
|
|
63
|
-
/**
|
|
64
|
-
* Request headers from global config (for optional use)
|
|
65
|
-
*/
|
|
66
|
-
requestHeaders?: Record<string, string>;
|
|
67
|
-
/**
|
|
68
|
-
* Request timeout from global config (for optional use)
|
|
69
|
-
*/
|
|
70
|
-
requestTimeout?: number;
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Resolver interface for custom network operations
|
|
74
|
-
*/
|
|
75
|
-
export interface HotUpdaterResolver {
|
|
76
|
-
/**
|
|
77
|
-
* Custom implementation for checking updates.
|
|
78
|
-
* When provided, this completely replaces the default fetchUpdateInfo flow.
|
|
79
|
-
*
|
|
80
|
-
* @param params - All parameters needed to check for updates
|
|
81
|
-
* @returns Update information or null if up to date
|
|
82
|
-
*
|
|
83
|
-
* @example
|
|
84
|
-
* ```typescript
|
|
85
|
-
* checkUpdate: async (params) => {
|
|
86
|
-
* const response = await fetch(`https://api.custom.com/check`, {
|
|
87
|
-
* method: 'POST',
|
|
88
|
-
* body: JSON.stringify(params),
|
|
89
|
-
* headers: params.requestHeaders,
|
|
90
|
-
* });
|
|
91
|
-
*
|
|
92
|
-
* if (!response.ok) return null;
|
|
93
|
-
* return response.json();
|
|
94
|
-
* }
|
|
95
|
-
* ```
|
|
96
|
-
*/
|
|
97
|
-
checkUpdate?: (params: ResolverCheckUpdateParams) => Promise<AppUpdateInfo | null>;
|
|
98
|
-
/**
|
|
99
|
-
* Custom implementation for notifying app ready.
|
|
100
|
-
* When provided, this completely replaces the default notifyAppReady network flow.
|
|
101
|
-
* Note: Native rollback/promotion semantics are already finalized before this callback runs.
|
|
102
|
-
*
|
|
103
|
-
* @param params - All parameters about the current app state
|
|
104
|
-
* @returns Notification result
|
|
105
|
-
*
|
|
106
|
-
* @example
|
|
107
|
-
* ```typescript
|
|
108
|
-
* notifyAppReady: async (params) => {
|
|
109
|
-
* await fetch(`https://api.custom.com/notify`, {
|
|
110
|
-
* method: 'POST',
|
|
111
|
-
* body: JSON.stringify(params),
|
|
112
|
-
* });
|
|
113
|
-
*
|
|
114
|
-
* return { status: "STABLE" };
|
|
115
|
-
* }
|
|
116
|
-
* ```
|
|
117
|
-
*/
|
|
118
|
-
notifyAppReady?: (params: ResolverNotifyAppReadyParams) => Promise<NotifyAppReadyResult | undefined>;
|
|
119
|
-
}
|
|
120
2
|
/**
|
|
121
3
|
* Information about a signature verification failure.
|
|
122
4
|
* This is a security-critical event that indicates the bundle
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAE1E;;;;GAIG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,KAAK,EAAE,KAAK,CAAC;CACd;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAgBpE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,MAAM,GACf,4BAA4B,CAS9B"}
|