@hot-updater/react-native 0.36.7 → 1.0.0-rc.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/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 +48 -71
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/index.spec.js +117 -161
- 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 -55
- 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 +49 -66
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.spec.js +117 -161
- 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 -51
- 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 +32 -41
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/native.d.ts +83 -18
- 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 +32 -41
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/native.d.ts +83 -18
- 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 +368 -97
- 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 +110 -203
- package/src/index.ts +70 -93
- package/src/iosInterop.spec.ts +30 -0
- package/src/native.spec.ts +226 -10
- package/src/native.ts +385 -83
- 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,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,12 @@ 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
|
|
144
|
-
* since it is created at build time.
|
|
175
|
+
* Fetches the build-time minimum Release id.
|
|
145
176
|
*
|
|
146
|
-
* @returns {string}
|
|
177
|
+
* @returns {string} The minimum Release id.
|
|
147
178
|
*/
|
|
148
|
-
export declare const
|
|
179
|
+
export declare const getMinimumReleaseId: () => string;
|
|
180
|
+
export declare const getReleaseId: () => Promise<string | null>;
|
|
149
181
|
/**
|
|
150
182
|
* Fetches the current bundle version id.
|
|
151
183
|
*
|
|
@@ -184,12 +216,48 @@ export declare const isChannelSwitched: () => boolean;
|
|
|
184
216
|
* @returns {string | null} Resolves with the fingerprint hash
|
|
185
217
|
*/
|
|
186
218
|
export declare const getFingerprintHash: () => string | null;
|
|
219
|
+
export declare const getInstallId: () => string;
|
|
220
|
+
export type PersistedUserIdentity = {
|
|
221
|
+
userId?: string;
|
|
222
|
+
username?: string;
|
|
223
|
+
};
|
|
224
|
+
export declare const getPersistedUserIdentity: () => PersistedUserIdentity;
|
|
225
|
+
export type SetUserParams = {
|
|
226
|
+
userId?: string | number | null;
|
|
227
|
+
username?: string | null;
|
|
228
|
+
};
|
|
229
|
+
export declare function setUser(params: SetUserParams): void;
|
|
230
|
+
export declare function setUser(params: null): void;
|
|
187
231
|
/**
|
|
188
232
|
* Result returned by notifyAppReady()
|
|
189
233
|
*/
|
|
190
234
|
export type NotifyAppReadyResult = {
|
|
191
|
-
status: "
|
|
192
|
-
|
|
235
|
+
status: "UNCHANGED";
|
|
236
|
+
} | {
|
|
237
|
+
status: "UPDATE_APPLIED";
|
|
238
|
+
fromBundleId: string;
|
|
239
|
+
toBundleId: string;
|
|
240
|
+
fromReleaseId?: string;
|
|
241
|
+
toReleaseId?: string;
|
|
242
|
+
} | {
|
|
243
|
+
status: "RECOVERED";
|
|
244
|
+
fromBundleId: string;
|
|
245
|
+
toBundleId: string;
|
|
246
|
+
fromReleaseId?: string;
|
|
247
|
+
toReleaseId?: string;
|
|
248
|
+
};
|
|
249
|
+
export type NotifyAppReadyAnalyticsEvent = {
|
|
250
|
+
type: "UPDATE_APPLIED" | "RECOVERED";
|
|
251
|
+
fromBundleId: string;
|
|
252
|
+
toBundleId: string;
|
|
253
|
+
fromReleaseId?: string | null;
|
|
254
|
+
toReleaseId?: string | null;
|
|
255
|
+
updateStrategy: PersistedUpdateStrategy;
|
|
256
|
+
};
|
|
257
|
+
export declare const readNotifyAppReady: () => {
|
|
258
|
+
result: NotifyAppReadyResult;
|
|
259
|
+
analyticsEvent: NotifyAppReadyAnalyticsEvent | null;
|
|
260
|
+
pending: boolean;
|
|
193
261
|
};
|
|
194
262
|
/**
|
|
195
263
|
* Reads the native launch report for the current process.
|
|
@@ -197,19 +265,16 @@ export type NotifyAppReadyResult = {
|
|
|
197
265
|
* This function is called automatically after the app has rendered.
|
|
198
266
|
*
|
|
199
267
|
* @returns {NotifyAppReadyResult} Bundle state information
|
|
200
|
-
* - `status: "
|
|
201
|
-
* - `status: "
|
|
202
|
-
* - `
|
|
268
|
+
* - `status: "UNCHANGED"` - No qualifying OTA transition to report
|
|
269
|
+
* - `status: "UPDATE_APPLIED"` - A pending update became active
|
|
270
|
+
* - `status: "RECOVERED"` - Crash recovery rolled back to another bundle
|
|
203
271
|
*
|
|
204
272
|
* @example
|
|
205
273
|
* ```ts
|
|
206
274
|
* const result = HotUpdater.notifyAppReady();
|
|
207
275
|
*
|
|
208
276
|
* if (result.status === "RECOVERED") {
|
|
209
|
-
*
|
|
210
|
-
* analytics.track("bundle_rollback", {
|
|
211
|
-
* crashedBundleId: result.crashedBundleId,
|
|
212
|
-
* });
|
|
277
|
+
* console.log(result.fromBundleId, result.toBundleId);
|
|
213
278
|
* }
|
|
214
279
|
* ```
|
|
215
280
|
*/
|
|
@@ -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.0";
|
|
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"}
|
|
@@ -1,195 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import type {
|
|
3
|
-
|
|
4
|
-
import { type HotUpdaterState } from "./store";
|
|
5
|
-
import type { HotUpdaterBaseURL, HotUpdaterResolver } from "./types";
|
|
6
|
-
export interface RunUpdateProcessResponse {
|
|
7
|
-
status: "ROLLBACK" | "UPDATE" | "UP_TO_DATE";
|
|
8
|
-
shouldForceUpdate: boolean;
|
|
9
|
-
message: string | null;
|
|
10
|
-
id: string;
|
|
11
|
-
}
|
|
12
|
-
type UpdateStatus = "CHECK_FOR_UPDATE" | "UPDATING" | "UPDATE_PROCESS_COMPLETED";
|
|
13
|
-
export type HotUpdaterFallbackComponentProps = {
|
|
14
|
-
status: Exclude<UpdateStatus, "UPDATE_PROCESS_COMPLETED">;
|
|
15
|
-
progress: number;
|
|
16
|
-
downloadedBytes: HotUpdaterState["downloadedBytes"];
|
|
17
|
-
totalBytes: HotUpdaterState["totalBytes"];
|
|
18
|
-
message: string | null;
|
|
19
|
-
artifactType: HotUpdaterState["artifactType"];
|
|
20
|
-
details: HotUpdaterState["details"];
|
|
21
|
-
};
|
|
22
|
-
/**
|
|
23
|
-
* Common options shared by HotUpdater initialization APIs.
|
|
24
|
-
*/
|
|
25
|
-
interface CommonHotUpdaterOptions {
|
|
26
|
-
/**
|
|
27
|
-
* Custom request headers for update checks
|
|
28
|
-
*/
|
|
29
|
-
requestHeaders?: Record<string, string>;
|
|
30
|
-
/**
|
|
31
|
-
* Request timeout in milliseconds
|
|
32
|
-
* @default 5000
|
|
33
|
-
*/
|
|
34
|
-
requestTimeout?: number;
|
|
35
|
-
/**
|
|
36
|
-
* Callback invoked when the app is ready and the native launch report is available.
|
|
37
|
-
* Provides information about rollback recovery or stable state.
|
|
38
|
-
*
|
|
39
|
-
* @param result - Bundle state information
|
|
40
|
-
* @param result.status - Current bundle state:
|
|
41
|
-
* - "RECOVERED": App recovered from a crash, rollback occurred
|
|
42
|
-
* - "STABLE": No changes, bundle is stable
|
|
43
|
-
* @param result.crashedBundleId - Present only when status is "RECOVERED"
|
|
44
|
-
*
|
|
45
|
-
* @example
|
|
46
|
-
* ```tsx
|
|
47
|
-
* HotUpdater.init({
|
|
48
|
-
* baseURL: "https://api.example.com",
|
|
49
|
-
* onNotifyAppReady: ({ status, crashedBundleId }) => {
|
|
50
|
-
* if (status === "RECOVERED") {
|
|
51
|
-
* analytics.track("bundle_rollback", { crashedBundleId });
|
|
52
|
-
* }
|
|
53
|
-
* },
|
|
54
|
-
* });
|
|
55
|
-
* ```
|
|
56
|
-
*/
|
|
57
|
-
onNotifyAppReady?: (result: NotifyAppReadyResult) => void;
|
|
58
|
-
/**
|
|
59
|
-
* Default callback invoked when Hot Updater initialization or update checks
|
|
60
|
-
* fail. Per-call `HotUpdater.checkForUpdate({ onError })` handlers override
|
|
61
|
-
* this callback for that check.
|
|
62
|
-
*/
|
|
63
|
-
onError?: (error: HotUpdaterError | Error | unknown) => void;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Configuration with baseURL for standard server-based updates
|
|
67
|
-
*/
|
|
68
|
-
interface BaseURLConfig {
|
|
69
|
-
/**
|
|
70
|
-
* Base URL for update server. Use a function to resolve it dynamically
|
|
71
|
-
* before each update check.
|
|
72
|
-
* @example "https://update.example.com"
|
|
73
|
-
* @example () => getUpdateServerURL()
|
|
74
|
-
*/
|
|
75
|
-
baseURL: HotUpdaterBaseURL;
|
|
76
|
-
/**
|
|
77
|
-
* Resolver is not allowed when using baseURL
|
|
78
|
-
*/
|
|
79
|
-
resolver?: never;
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Configuration with resolver for custom network operations
|
|
83
|
-
*/
|
|
84
|
-
interface ResolverConfig {
|
|
85
|
-
/**
|
|
86
|
-
* Custom resolver for network operations
|
|
87
|
-
*/
|
|
88
|
-
resolver: HotUpdaterResolver;
|
|
89
|
-
/**
|
|
90
|
-
* baseURL is not allowed when using resolver
|
|
91
|
-
*/
|
|
92
|
-
baseURL?: never;
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Union type ensuring baseURL and resolver are mutually exclusive
|
|
96
|
-
*/
|
|
97
|
-
type NetworkConfig = BaseURLConfig | ResolverConfig;
|
|
98
|
-
export type AutoUpdateOptions = CommonHotUpdaterOptions & NetworkConfig & {
|
|
99
|
-
/**
|
|
100
|
-
* Automatic update mode. This is the default and can be omitted.
|
|
101
|
-
*/
|
|
102
|
-
updateMode?: "auto";
|
|
103
|
-
/**
|
|
104
|
-
* Update strategy
|
|
105
|
-
* - "fingerprint": Use fingerprint hash to check for updates
|
|
106
|
-
* - "appVersion": Use app version to check for updates
|
|
107
|
-
*/
|
|
108
|
-
updateStrategy: "fingerprint" | "appVersion";
|
|
109
|
-
/**
|
|
110
|
-
* Component to show while downloading a new bundle update.
|
|
111
|
-
*
|
|
112
|
-
* When an update exists and the bundle is being downloaded, this component will block access
|
|
113
|
-
* to the entry point and show download progress.
|
|
114
|
-
*
|
|
115
|
-
* @see {@link https://hot-updater.dev/docs/react-native-api/wrap#fallback-component}
|
|
116
|
-
*
|
|
117
|
-
* ```tsx
|
|
118
|
-
* HotUpdater.wrap({
|
|
119
|
-
* baseURL: "<update-server-url>",
|
|
120
|
-
* updateStrategy: "appVersion",
|
|
121
|
-
* fallbackComponent: ({ progress = 0 }) => (
|
|
122
|
-
* <View style={styles.container}>
|
|
123
|
-
* <Text style={styles.text}>Updating... {progress}%</Text>
|
|
124
|
-
* </View>
|
|
125
|
-
* )
|
|
126
|
-
* })(App)
|
|
127
|
-
* ```
|
|
128
|
-
*
|
|
129
|
-
* If not defined, the bundle will download in the background without blocking the screen.
|
|
130
|
-
*/
|
|
131
|
-
fallbackComponent?: React.FC<HotUpdaterFallbackComponentProps>;
|
|
132
|
-
onProgress?: (progress: number) => void;
|
|
133
|
-
/**
|
|
134
|
-
* When a force update exists, the app will automatically reload.
|
|
135
|
-
* If `false`, When a force update exists, the app will not reload. `shouldForceUpdate` will be returned as `true` in `onUpdateProcessCompleted`.
|
|
136
|
-
* If `true`, When a force update exists, the app will automatically reload.
|
|
137
|
-
* @default true
|
|
138
|
-
*/
|
|
139
|
-
reloadOnForceUpdate?: boolean;
|
|
140
|
-
/**
|
|
141
|
-
* Callback function that is called when the update process is completed.
|
|
142
|
-
*
|
|
143
|
-
* @see {@link https://hot-updater.dev/docs/react-native-api/wrap#onupdateprocesscompleted}
|
|
144
|
-
*/
|
|
145
|
-
onUpdateProcessCompleted?: (response: RunUpdateProcessResponse) => void;
|
|
146
|
-
};
|
|
147
|
-
export type ManualUpdateOptions = CommonHotUpdaterOptions & NetworkConfig & {
|
|
148
|
-
/**
|
|
149
|
-
* @deprecated Replace manual `HotUpdater.wrap` with `HotUpdater.init`.
|
|
150
|
-
*
|
|
151
|
-
* ```tsx
|
|
152
|
-
* import { HotUpdater } from "@hot-updater/react-native";
|
|
153
|
-
*
|
|
154
|
-
* HotUpdater.init({
|
|
155
|
-
* baseURL: "<your-update-server-url>",
|
|
156
|
-
* });
|
|
157
|
-
*
|
|
158
|
-
* export default App;
|
|
159
|
-
* ```
|
|
160
|
-
*
|
|
161
|
-
* Then call `HotUpdater.checkForUpdate(...)` from your manual update flow.
|
|
162
|
-
* See https://hot-updater.dev/docs/guides/custom-update
|
|
163
|
-
*/
|
|
164
|
-
updateMode: "manual";
|
|
165
|
-
};
|
|
166
|
-
export type HotUpdaterInitOptions = CommonHotUpdaterOptions & NetworkConfig;
|
|
167
|
-
export type HotUpdaterOptions = AutoUpdateOptions | ManualUpdateOptions;
|
|
168
|
-
/**
|
|
169
|
-
* Internal options after normalization in index.ts
|
|
170
|
-
* Always has resolver (never baseURL)
|
|
171
|
-
*/
|
|
172
|
-
type InternalCommonOptions = {
|
|
173
|
-
resolver: HotUpdaterResolver;
|
|
174
|
-
requestHeaders?: Record<string, string>;
|
|
175
|
-
requestTimeout?: number;
|
|
176
|
-
onNotifyAppReady?: (result: NotifyAppReadyResult) => void;
|
|
177
|
-
onError?: (error: HotUpdaterError | Error | unknown) => void;
|
|
178
|
-
};
|
|
179
|
-
type InternalAutoUpdateOptions = InternalCommonOptions & {
|
|
180
|
-
updateStrategy: "fingerprint" | "appVersion";
|
|
181
|
-
updateMode: "auto";
|
|
182
|
-
fallbackComponent?: React.FC<HotUpdaterFallbackComponentProps>;
|
|
183
|
-
onProgress?: (progress: number) => void;
|
|
184
|
-
reloadOnForceUpdate?: boolean;
|
|
185
|
-
onUpdateProcessCompleted?: (response: RunUpdateProcessResponse) => void;
|
|
186
|
-
};
|
|
187
|
-
type InternalManualUpdateOptions = InternalCommonOptions & {
|
|
188
|
-
updateMode: "manual";
|
|
189
|
-
};
|
|
190
|
-
export type InternalInitOptions = InternalCommonOptions;
|
|
191
|
-
export type InternalWrapOptions = InternalAutoUpdateOptions | InternalManualUpdateOptions;
|
|
2
|
+
import type { InternalInitOptions, InternalWrapOptions } from "./wrap.types";
|
|
3
|
+
export type { AutoUpdateOptions, HotUpdaterFallbackComponentProps, HotUpdaterInitOptions, HotUpdaterOptions, InternalInitOptions, InternalWrapOptions, RunUpdateProcessResponse, } from "./wrap.types";
|
|
192
4
|
export declare function init(options: InternalInitOptions): void;
|
|
193
5
|
export declare function wrap(options: InternalWrapOptions): <P extends object>(WrappedComponent: React.ComponentType<P>) => React.ComponentType<P>;
|
|
194
|
-
export {};
|
|
195
6
|
//# sourceMappingURL=wrap.d.ts.map
|