@hot-updater/react-native 0.27.1 → 0.29.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/build.gradle +12 -0
- package/android/src/main/AndroidManifest.xml +3 -0
- package/android/src/main/AndroidManifestNew.xml +3 -0
- package/android/src/main/cpp/CMakeLists.txt +9 -0
- package/android/src/main/cpp/HotUpdaterRecovery.cpp +143 -0
- package/android/src/main/java/com/hotupdater/BundleFileStorageService.kt +325 -210
- package/android/src/main/java/com/hotupdater/BundleMetadata.kt +73 -16
- package/android/src/main/java/com/hotupdater/CohortService.kt +73 -0
- package/android/src/main/java/com/hotupdater/DecompressService.kt +28 -22
- package/android/src/main/java/com/hotupdater/HotUpdaterException.kt +1 -1
- package/android/src/main/java/com/hotupdater/HotUpdaterImpl.kt +51 -13
- package/android/src/main/java/com/hotupdater/HotUpdaterRecoveryManager.kt +533 -0
- package/android/src/main/java/com/hotupdater/HotUpdaterRecoveryReceiver.kt +14 -0
- package/android/src/main/java/com/hotupdater/ReactNativeValueConverters.kt +55 -0
- package/android/src/main/java/com/hotupdater/TarBrDecompressionStrategy.kt +19 -7
- package/android/src/newarch/HotUpdaterModule.kt +16 -25
- package/android/src/oldarch/HotUpdaterModule.kt +20 -26
- package/android/src/oldarch/HotUpdaterSpec.kt +12 -2
- package/ios/HotUpdater/Internal/BundleFileStorageService.swift +340 -232
- package/ios/HotUpdater/Internal/BundleMetadata.swift +61 -8
- package/ios/HotUpdater/Internal/CohortService.swift +63 -0
- package/ios/HotUpdater/Internal/DecompressService.swift +53 -30
- package/ios/HotUpdater/Internal/HotUpdater-Bridging-Header.h +9 -1
- package/ios/HotUpdater/Internal/HotUpdater.mm +376 -70
- package/ios/HotUpdater/Internal/HotUpdaterCrashHandler.h +7 -0
- package/ios/HotUpdater/Internal/HotUpdaterCrashHandler.mm +4 -0
- package/ios/HotUpdater/Internal/HotUpdaterImpl.swift +321 -9
- package/ios/HotUpdater/Internal/TarBrDecompressionStrategy.swift +24 -8
- package/lib/commonjs/DefaultResolver.js +3 -5
- package/lib/commonjs/DefaultResolver.js.map +1 -1
- package/lib/commonjs/checkForUpdate.js +2 -0
- package/lib/commonjs/checkForUpdate.js.map +1 -1
- package/lib/commonjs/index.js +13 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/native.js +211 -39
- package/lib/commonjs/native.js.map +1 -1
- package/lib/commonjs/native.spec.js +443 -0
- package/lib/commonjs/native.spec.js.map +1 -0
- package/lib/commonjs/specs/NativeHotUpdater.js.map +1 -1
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/wrap.js +4 -5
- package/lib/commonjs/wrap.js.map +1 -1
- package/lib/module/DefaultResolver.js +3 -5
- package/lib/module/DefaultResolver.js.map +1 -1
- package/lib/module/checkForUpdate.js +3 -1
- package/lib/module/checkForUpdate.js.map +1 -1
- package/lib/module/index.js +14 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/native.js +204 -34
- package/lib/module/native.js.map +1 -1
- package/lib/module/native.spec.js +442 -0
- package/lib/module/native.spec.js.map +1 -0
- package/lib/module/specs/NativeHotUpdater.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/module/wrap.js +5 -6
- package/lib/module/wrap.js.map +1 -1
- package/lib/typescript/commonjs/checkForUpdate.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +14 -1
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/native.d.ts +43 -23
- package/lib/typescript/commonjs/native.d.ts.map +1 -1
- package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts +32 -8
- package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts.map +1 -1
- package/lib/typescript/commonjs/types.d.ts +6 -3
- package/lib/typescript/commonjs/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/wrap.d.ts +3 -6
- package/lib/typescript/commonjs/wrap.d.ts.map +1 -1
- package/lib/typescript/module/checkForUpdate.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +14 -1
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/native.d.ts +43 -23
- package/lib/typescript/module/native.d.ts.map +1 -1
- package/lib/typescript/module/specs/NativeHotUpdater.d.ts +32 -8
- package/lib/typescript/module/specs/NativeHotUpdater.d.ts.map +1 -1
- package/lib/typescript/module/types.d.ts +6 -3
- package/lib/typescript/module/types.d.ts.map +1 -1
- package/lib/typescript/module/wrap.d.ts +3 -6
- package/lib/typescript/module/wrap.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/DefaultResolver.ts +4 -4
- package/src/checkForUpdate.ts +4 -0
- package/src/index.ts +21 -0
- package/src/native.spec.ts +480 -0
- package/src/native.ts +285 -39
- package/src/specs/NativeHotUpdater.ts +36 -6
- package/src/types.ts +7 -3
- package/src/wrap.tsx +8 -12
|
@@ -1,7 +1,14 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type UpdateStatus } 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
|
+
export interface ManifestAsset {
|
|
6
|
+
fileHash: string;
|
|
7
|
+
}
|
|
8
|
+
export interface Manifest {
|
|
9
|
+
bundleId: string;
|
|
10
|
+
assets: Record<string, ManifestAsset>;
|
|
11
|
+
}
|
|
5
12
|
/**
|
|
6
13
|
* Built-in reload behaviors used by `HotUpdater.reload()`.
|
|
7
14
|
*
|
|
@@ -24,9 +31,6 @@ export type CustomReloadHandler = () => void | Promise<void>;
|
|
|
24
31
|
* - `custom`: Run a user-provided JS handler on both platforms
|
|
25
32
|
*/
|
|
26
33
|
export type ReloadBehaviorSetting = ReloadBehavior | "custom";
|
|
27
|
-
export declare const HotUpdaterConstants: {
|
|
28
|
-
HOT_UPDATER_BUNDLE_ID: string;
|
|
29
|
-
};
|
|
30
34
|
export type HotUpdaterEvent = {
|
|
31
35
|
onProgress: {
|
|
32
36
|
progress: number;
|
|
@@ -92,10 +96,21 @@ export declare const getMinBundleId: () => string;
|
|
|
92
96
|
/**
|
|
93
97
|
* Fetches the current bundle version id.
|
|
94
98
|
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
99
|
+
* JS falls back to MIN_BUNDLE_ID only after native confirms there is no active
|
|
100
|
+
* downloaded bundle. When the native module does not expose `getBundleId()`,
|
|
101
|
+
* treat it as a JS/native SDK mismatch instead of silently reporting the
|
|
102
|
+
* built-in bundle.
|
|
103
|
+
*
|
|
104
|
+
* @returns {string} Resolves with the current version id.
|
|
97
105
|
*/
|
|
98
106
|
export declare const getBundleId: () => string;
|
|
107
|
+
/**
|
|
108
|
+
* Fetches the current manifest for the active bundle.
|
|
109
|
+
*
|
|
110
|
+
* Returns a normalized manifest with empty assets when manifest.json is missing
|
|
111
|
+
* or invalid.
|
|
112
|
+
*/
|
|
113
|
+
export declare const getManifest: () => Manifest;
|
|
99
114
|
/**
|
|
100
115
|
* Fetches the channel for the app.
|
|
101
116
|
*
|
|
@@ -120,17 +135,15 @@ export declare const getFingerprintHash: () => string | null;
|
|
|
120
135
|
* Result returned by notifyAppReady()
|
|
121
136
|
*/
|
|
122
137
|
export type NotifyAppReadyResult = {
|
|
123
|
-
status: "
|
|
138
|
+
status: "RECOVERED" | "STABLE";
|
|
124
139
|
crashedBundleId?: string;
|
|
125
140
|
};
|
|
126
141
|
/**
|
|
127
|
-
*
|
|
128
|
-
* If the bundle matches the staging bundle, it promotes to stable.
|
|
142
|
+
* Reads the native launch report for the current process.
|
|
129
143
|
*
|
|
130
|
-
* This function is called automatically
|
|
144
|
+
* This function is called automatically after the app has rendered.
|
|
131
145
|
*
|
|
132
146
|
* @returns {NotifyAppReadyResult} Bundle state information
|
|
133
|
-
* - `status: "PROMOTED"` - Staging bundle was promoted to stable (ACTIVE event)
|
|
134
147
|
* - `status: "RECOVERED"` - App recovered from crash, rollback occurred (ROLLBACK event)
|
|
135
148
|
* - `status: "STABLE"` - No changes, already stable
|
|
136
149
|
* - `crashedBundleId` - Present only when status is "RECOVERED"
|
|
@@ -139,18 +152,11 @@ export type NotifyAppReadyResult = {
|
|
|
139
152
|
* ```ts
|
|
140
153
|
* const result = HotUpdater.notifyAppReady();
|
|
141
154
|
*
|
|
142
|
-
*
|
|
143
|
-
*
|
|
144
|
-
*
|
|
145
|
-
*
|
|
146
|
-
*
|
|
147
|
-
* case "RECOVERED":
|
|
148
|
-
* // Send ROLLBACK analytics event
|
|
149
|
-
* analytics.track('bundle_rollback', { crashedBundleId: result.crashedBundleId });
|
|
150
|
-
* break;
|
|
151
|
-
* case "STABLE":
|
|
152
|
-
* // No special action needed
|
|
153
|
-
* break;
|
|
155
|
+
* if (result.status === "RECOVERED") {
|
|
156
|
+
* // Send ROLLBACK analytics event
|
|
157
|
+
* analytics.track("bundle_rollback", {
|
|
158
|
+
* crashedBundleId: result.crashedBundleId,
|
|
159
|
+
* });
|
|
154
160
|
* }
|
|
155
161
|
* ```
|
|
156
162
|
*/
|
|
@@ -181,4 +187,18 @@ export declare const getBaseURL: () => string | null;
|
|
|
181
187
|
* Clears the runtime channel override and restores the original bundle.
|
|
182
188
|
*/
|
|
183
189
|
export declare const resetChannel: () => Promise<boolean>;
|
|
190
|
+
/**
|
|
191
|
+
* Sets the persisted cohort used for update checks.
|
|
192
|
+
*
|
|
193
|
+
* HotUpdater only derives a device-based cohort when nothing has been stored
|
|
194
|
+
* yet. If you need to restore that initial value later, read it with
|
|
195
|
+
* `getCohort()` before calling `setCohort()`, then store it yourself.
|
|
196
|
+
*/
|
|
197
|
+
export declare const setCohort: (cohort: string) => void;
|
|
198
|
+
/**
|
|
199
|
+
* Gets the persisted cohort used for rollout calculations.
|
|
200
|
+
* If none has been stored yet, native derives the initial value once and
|
|
201
|
+
* persists it before returning.
|
|
202
|
+
*/
|
|
203
|
+
export declare const getCohort: () => string;
|
|
184
204
|
//# sourceMappingURL=native.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/native.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/native.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { TurboModule } from "react-native";
|
|
2
|
+
import type { UnsafeObject } from "react-native/Libraries/Types/CodegenTypes";
|
|
2
3
|
export interface UpdateBundleParams {
|
|
3
4
|
bundleId: string;
|
|
4
5
|
channel?: string;
|
|
@@ -55,20 +56,16 @@ export interface Spec extends TurboModule {
|
|
|
55
56
|
*/
|
|
56
57
|
updateBundle(params: UpdateBundleParams): Promise<boolean>;
|
|
57
58
|
/**
|
|
58
|
-
*
|
|
59
|
-
*
|
|
59
|
+
* Reads the launch report for the current process.
|
|
60
|
+
* This is a read-only API; native launch state has already been finalized.
|
|
60
61
|
*
|
|
61
|
-
* @param params - Parameters containing the bundle ID
|
|
62
62
|
* @returns Object with status and optional crashedBundleId
|
|
63
|
-
* - `status: "PROMOTED"` - Staging bundle was promoted to stable (ACTIVE event)
|
|
64
63
|
* - `status: "RECOVERED"` - App recovered from crash, rollback occurred (ROLLBACK event)
|
|
65
64
|
* - `status: "STABLE"` - No changes, already stable
|
|
66
65
|
* - `crashedBundleId` - Present only when status is "RECOVERED"
|
|
67
66
|
*/
|
|
68
|
-
notifyAppReady(
|
|
69
|
-
|
|
70
|
-
}): {
|
|
71
|
-
status: "PROMOTED" | "RECOVERED" | "STABLE";
|
|
67
|
+
notifyAppReady(): {
|
|
68
|
+
status: "RECOVERED" | "STABLE";
|
|
72
69
|
crashedBundleId?: string;
|
|
73
70
|
};
|
|
74
71
|
/**
|
|
@@ -99,6 +96,33 @@ export interface Spec extends TurboModule {
|
|
|
99
96
|
* @returns Base URL string (e.g., "file:///data/.../bundle-store/abc123") or "" if not available
|
|
100
97
|
*/
|
|
101
98
|
getBaseURL: () => string;
|
|
99
|
+
/**
|
|
100
|
+
* Gets the current active bundle ID from native bundle storage.
|
|
101
|
+
* Native reads the extracted bundle manifest first and falls back to the
|
|
102
|
+
* legacy BUNDLE_ID file when needed. Built-in bundle fallback is handled in JS.
|
|
103
|
+
*
|
|
104
|
+
* @returns Active bundle ID from bundle storage, or null when unavailable
|
|
105
|
+
*/
|
|
106
|
+
getBundleId: () => string | null;
|
|
107
|
+
/**
|
|
108
|
+
* Gets the current manifest from native bundle storage.
|
|
109
|
+
* Returns an empty object when manifest.json is missing or invalid.
|
|
110
|
+
*/
|
|
111
|
+
getManifest: () => UnsafeObject;
|
|
112
|
+
/**
|
|
113
|
+
* Sets the persisted cohort used for rollout calculations.
|
|
114
|
+
*
|
|
115
|
+
* Native only derives a device-based cohort when nothing has been stored
|
|
116
|
+
* yet. Call `getCohort()` first if the app needs to save that initial value
|
|
117
|
+
* for a later restore.
|
|
118
|
+
*/
|
|
119
|
+
setCohort: (cohort: string) => void;
|
|
120
|
+
/**
|
|
121
|
+
* Gets the persisted cohort used for rollout calculations.
|
|
122
|
+
* If none has been stored yet, native derives the initial value once and
|
|
123
|
+
* persists it before returning.
|
|
124
|
+
*/
|
|
125
|
+
getCohort: () => string;
|
|
102
126
|
addListener(eventName: string): void;
|
|
103
127
|
removeListeners(count: number): void;
|
|
104
128
|
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;
|
|
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,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;CACzB;AAED,MAAM,WAAW,IAAK,SAAQ,WAAW;IAEvC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB;;;;OAIG;IACH,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3D;;;;;;;;OAQG;IACH,cAAc,IAAI;QAChB,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC;QAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IAEF;;;;;OAKG;IACH,eAAe,IAAI,MAAM,EAAE,CAAC;IAE5B;;;;;OAKG;IACH,iBAAiB,IAAI,OAAO,CAAC;IAE7B;;;;OAIG;IACH,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjC;;;;;;OAMG;IACH,UAAU,EAAE,MAAM,MAAM,CAAC;IAEzB;;;;;;OAMG;IACH,WAAW,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAEjC;;;OAGG;IACH,WAAW,EAAE,MAAM,YAAY,CAAC;IAEhC;;;;;;OAMG;IACH,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAEpC;;;;OAIG;IACH,SAAS,EAAE,MAAM,MAAM,CAAC;IAGxB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM;QAC3B,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,OAAO,EAAE,MAAM,CAAC;QAChB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;KACjC,CAAC;CACH;;AAED,wBAAoE"}
|
|
@@ -24,6 +24,10 @@ export interface ResolverCheckUpdateParams {
|
|
|
24
24
|
* The channel name (e.g., "production", "staging")
|
|
25
25
|
*/
|
|
26
26
|
channel: string;
|
|
27
|
+
/**
|
|
28
|
+
* Cohort identifier used for server-side rollout decisions.
|
|
29
|
+
*/
|
|
30
|
+
cohort: string;
|
|
27
31
|
/**
|
|
28
32
|
* Update strategy being used
|
|
29
33
|
*/
|
|
@@ -47,11 +51,10 @@ export interface ResolverCheckUpdateParams {
|
|
|
47
51
|
export interface ResolverNotifyAppReadyParams {
|
|
48
52
|
/**
|
|
49
53
|
* The bundle state from native notifyAppReady
|
|
50
|
-
* - "PROMOTED": Staging bundle was promoted to stable
|
|
51
54
|
* - "RECOVERED": App recovered from crash, rollback occurred
|
|
52
55
|
* - "STABLE": No changes, bundle is stable
|
|
53
56
|
*/
|
|
54
|
-
status: "
|
|
57
|
+
status: "RECOVERED" | "STABLE";
|
|
55
58
|
/**
|
|
56
59
|
* Present only when status is "RECOVERED"
|
|
57
60
|
*/
|
|
@@ -94,7 +97,7 @@ export interface HotUpdaterResolver {
|
|
|
94
97
|
/**
|
|
95
98
|
* Custom implementation for notifying app ready.
|
|
96
99
|
* When provided, this completely replaces the default notifyAppReady network flow.
|
|
97
|
-
* Note:
|
|
100
|
+
* Note: Native rollback/promotion semantics are already finalized before this callback runs.
|
|
98
101
|
*
|
|
99
102
|
* @param params - All parameters about the current app state
|
|
100
103
|
* @returns Notification result
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;IAE5B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,cAAc,EAAE,aAAa,GAAG,YAAY,CAAC;IAE7C;;OAEG;IACH,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/B;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAExC;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;IAE5B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,cAAc,EAAE,aAAa,GAAG,YAAY,CAAC;IAE7C;;OAEG;IACH,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/B;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAExC;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;;;OAIG;IACH,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC;IAE/B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAExC;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,WAAW,CAAC,EAAE,CACZ,MAAM,EAAE,yBAAyB,KAC9B,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IAEnC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,cAAc,CAAC,EAAE,CACf,MAAM,EAAE,4BAA4B,KACjC,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAAC;CAChD;AAED;;;;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"}
|
|
@@ -23,12 +23,11 @@ interface CommonHotUpdaterOptions {
|
|
|
23
23
|
*/
|
|
24
24
|
requestTimeout?: number;
|
|
25
25
|
/**
|
|
26
|
-
* Callback invoked when the app is ready and
|
|
27
|
-
* Provides information about
|
|
26
|
+
* Callback invoked when the app is ready and the native launch report is available.
|
|
27
|
+
* Provides information about rollback recovery or stable state.
|
|
28
28
|
*
|
|
29
29
|
* @param result - Bundle state information
|
|
30
30
|
* @param result.status - Current bundle state:
|
|
31
|
-
* - "PROMOTED": Staging bundle was promoted to stable (new update applied)
|
|
32
31
|
* - "RECOVERED": App recovered from a crash, rollback occurred
|
|
33
32
|
* - "STABLE": No changes, bundle is stable
|
|
34
33
|
* @param result.crashedBundleId - Present only when status is "RECOVERED"
|
|
@@ -40,9 +39,7 @@ interface CommonHotUpdaterOptions {
|
|
|
40
39
|
* updateMode: "manual",
|
|
41
40
|
* onNotifyAppReady: ({ status, crashedBundleId }) => {
|
|
42
41
|
* if (status === "RECOVERED") {
|
|
43
|
-
* analytics.track(
|
|
44
|
-
* } else if (status === "PROMOTED") {
|
|
45
|
-
* analytics.track('bundle_promoted');
|
|
42
|
+
* analytics.track("bundle_rollback", { crashedBundleId });
|
|
46
43
|
* }
|
|
47
44
|
* }
|
|
48
45
|
* })(App);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrap.d.ts","sourceRoot":"","sources":["../../../src/wrap.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"wrap.d.ts","sourceRoot":"","sources":["../../../src/wrap.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkForUpdate.d.ts","sourceRoot":"","sources":["../../../src/checkForUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"checkForUpdate.d.ts","sourceRoot":"","sources":["../../../src/checkForUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAevD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAIlD,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,cAAc,EAAE,YAAY,GAAG,aAAa,CAAC;IAE7C;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG;IACjD;;;OAGG;IACH,YAAY,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACtC,CAAC;AAGF,MAAM,WAAW,6BAA8B,SAAQ,qBAAqB;IAC1E,QAAQ,EAAE,kBAAkB,CAAC;CAC9B;AAUD,wBAAsB,cAAc,CAClC,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CA8GtC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type CheckForUpdateOptions } from "./checkForUpdate";
|
|
2
2
|
import { setReloadBehavior, type UpdateParams } from "./native";
|
|
3
3
|
import { type HotUpdaterOptions } from "./wrap";
|
|
4
|
-
export type { CustomReloadHandler, HotUpdaterEvent, NotifyAppReadyResult, ReloadBehavior, ReloadBehaviorSetting, } from "./native";
|
|
4
|
+
export type { CustomReloadHandler, HotUpdaterEvent, Manifest, ManifestAsset, NotifyAppReadyResult, ReloadBehavior, ReloadBehaviorSetting, } from "./native";
|
|
5
5
|
export * from "./store";
|
|
6
6
|
export { extractSignatureFailure, type HotUpdaterResolver, isSignatureVerificationError, type ResolverCheckUpdateParams, type ResolverNotifyAppReadyParams, type SignatureVerificationFailure, } from "./types";
|
|
7
7
|
export type { HotUpdaterOptions, RunUpdateProcessResponse } from "./wrap";
|
|
@@ -76,6 +76,10 @@ export declare const HotUpdater: {
|
|
|
76
76
|
* Retrieves the initial bundle ID based on the build time of the native app.
|
|
77
77
|
*/
|
|
78
78
|
getMinBundleId: () => string;
|
|
79
|
+
/**
|
|
80
|
+
* Fetches the current manifest for the active bundle.
|
|
81
|
+
*/
|
|
82
|
+
getManifest: () => import("./native").Manifest;
|
|
79
83
|
/**
|
|
80
84
|
* Fetches the current channel of the app.
|
|
81
85
|
*
|
|
@@ -109,6 +113,15 @@ export declare const HotUpdater: {
|
|
|
109
113
|
* @returns {boolean} true when a non-default channel has been applied
|
|
110
114
|
*/
|
|
111
115
|
isChannelSwitched: () => boolean;
|
|
116
|
+
/**
|
|
117
|
+
* Sets the persisted cohort used for rollout calculations.
|
|
118
|
+
* Call `getCohort()` first if you need to restore the initial value later.
|
|
119
|
+
*/
|
|
120
|
+
setCohort: (cohort: string) => void;
|
|
121
|
+
/**
|
|
122
|
+
* Gets the persisted cohort used for rollout calculations.
|
|
123
|
+
*/
|
|
124
|
+
getCohort: () => string;
|
|
112
125
|
/**
|
|
113
126
|
* Adds a listener to HotUpdater events.
|
|
114
127
|
*
|
|
@@ -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,
|
|
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,EAiBL,iBAAiB,EACjB,KAAK,YAAY,EAElB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,KAAK,iBAAiB,EAAkC,MAAM,QAAQ,CAAC;AAEhF,YAAY,EACV,mBAAmB,EACnB,eAAe,EACf,QAAQ,EACR,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,qBAAqB,GACtB,MAAM,UAAU,CAAC;AAClB,cAAc,SAAS,CAAC;AACxB,OAAO,EACL,uBAAuB,EACvB,KAAK,kBAAkB,EACvB,4BAA4B,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,GAClC,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,QAAQ,CAAC;AAwY1E,eAAO,MAAM,UAAU;IAxUnB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;oBACa,iBAAiB;IAuCjC;;OAEG;;IAGH;;;;;;;;;OASG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;;;;;;;;;;OAYG;;IAGH;;;;;;;;;;;OAWG;;IAGH;;;;OAIG;;IAGH;;;OAGG;;IAGH;;OAEG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;6BACsB,qBAAqB;IAgB9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;2BACoB,YAAY;IAKnC;;;;OAIG;;IAYH;;;;;;;;;;OAUG;;IAGH;;;;;;;;;;;OAWG;;IAGH;;;;;;;;;;;OAWG;;CAK2C,CAAC"}
|
|
@@ -1,7 +1,14 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type UpdateStatus } 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
|
+
export interface ManifestAsset {
|
|
6
|
+
fileHash: string;
|
|
7
|
+
}
|
|
8
|
+
export interface Manifest {
|
|
9
|
+
bundleId: string;
|
|
10
|
+
assets: Record<string, ManifestAsset>;
|
|
11
|
+
}
|
|
5
12
|
/**
|
|
6
13
|
* Built-in reload behaviors used by `HotUpdater.reload()`.
|
|
7
14
|
*
|
|
@@ -24,9 +31,6 @@ export type CustomReloadHandler = () => void | Promise<void>;
|
|
|
24
31
|
* - `custom`: Run a user-provided JS handler on both platforms
|
|
25
32
|
*/
|
|
26
33
|
export type ReloadBehaviorSetting = ReloadBehavior | "custom";
|
|
27
|
-
export declare const HotUpdaterConstants: {
|
|
28
|
-
HOT_UPDATER_BUNDLE_ID: string;
|
|
29
|
-
};
|
|
30
34
|
export type HotUpdaterEvent = {
|
|
31
35
|
onProgress: {
|
|
32
36
|
progress: number;
|
|
@@ -92,10 +96,21 @@ export declare const getMinBundleId: () => string;
|
|
|
92
96
|
/**
|
|
93
97
|
* Fetches the current bundle version id.
|
|
94
98
|
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
99
|
+
* JS falls back to MIN_BUNDLE_ID only after native confirms there is no active
|
|
100
|
+
* downloaded bundle. When the native module does not expose `getBundleId()`,
|
|
101
|
+
* treat it as a JS/native SDK mismatch instead of silently reporting the
|
|
102
|
+
* built-in bundle.
|
|
103
|
+
*
|
|
104
|
+
* @returns {string} Resolves with the current version id.
|
|
97
105
|
*/
|
|
98
106
|
export declare const getBundleId: () => string;
|
|
107
|
+
/**
|
|
108
|
+
* Fetches the current manifest for the active bundle.
|
|
109
|
+
*
|
|
110
|
+
* Returns a normalized manifest with empty assets when manifest.json is missing
|
|
111
|
+
* or invalid.
|
|
112
|
+
*/
|
|
113
|
+
export declare const getManifest: () => Manifest;
|
|
99
114
|
/**
|
|
100
115
|
* Fetches the channel for the app.
|
|
101
116
|
*
|
|
@@ -120,17 +135,15 @@ export declare const getFingerprintHash: () => string | null;
|
|
|
120
135
|
* Result returned by notifyAppReady()
|
|
121
136
|
*/
|
|
122
137
|
export type NotifyAppReadyResult = {
|
|
123
|
-
status: "
|
|
138
|
+
status: "RECOVERED" | "STABLE";
|
|
124
139
|
crashedBundleId?: string;
|
|
125
140
|
};
|
|
126
141
|
/**
|
|
127
|
-
*
|
|
128
|
-
* If the bundle matches the staging bundle, it promotes to stable.
|
|
142
|
+
* Reads the native launch report for the current process.
|
|
129
143
|
*
|
|
130
|
-
* This function is called automatically
|
|
144
|
+
* This function is called automatically after the app has rendered.
|
|
131
145
|
*
|
|
132
146
|
* @returns {NotifyAppReadyResult} Bundle state information
|
|
133
|
-
* - `status: "PROMOTED"` - Staging bundle was promoted to stable (ACTIVE event)
|
|
134
147
|
* - `status: "RECOVERED"` - App recovered from crash, rollback occurred (ROLLBACK event)
|
|
135
148
|
* - `status: "STABLE"` - No changes, already stable
|
|
136
149
|
* - `crashedBundleId` - Present only when status is "RECOVERED"
|
|
@@ -139,18 +152,11 @@ export type NotifyAppReadyResult = {
|
|
|
139
152
|
* ```ts
|
|
140
153
|
* const result = HotUpdater.notifyAppReady();
|
|
141
154
|
*
|
|
142
|
-
*
|
|
143
|
-
*
|
|
144
|
-
*
|
|
145
|
-
*
|
|
146
|
-
*
|
|
147
|
-
* case "RECOVERED":
|
|
148
|
-
* // Send ROLLBACK analytics event
|
|
149
|
-
* analytics.track('bundle_rollback', { crashedBundleId: result.crashedBundleId });
|
|
150
|
-
* break;
|
|
151
|
-
* case "STABLE":
|
|
152
|
-
* // No special action needed
|
|
153
|
-
* break;
|
|
155
|
+
* if (result.status === "RECOVERED") {
|
|
156
|
+
* // Send ROLLBACK analytics event
|
|
157
|
+
* analytics.track("bundle_rollback", {
|
|
158
|
+
* crashedBundleId: result.crashedBundleId,
|
|
159
|
+
* });
|
|
154
160
|
* }
|
|
155
161
|
* ```
|
|
156
162
|
*/
|
|
@@ -181,4 +187,18 @@ export declare const getBaseURL: () => string | null;
|
|
|
181
187
|
* Clears the runtime channel override and restores the original bundle.
|
|
182
188
|
*/
|
|
183
189
|
export declare const resetChannel: () => Promise<boolean>;
|
|
190
|
+
/**
|
|
191
|
+
* Sets the persisted cohort used for update checks.
|
|
192
|
+
*
|
|
193
|
+
* HotUpdater only derives a device-based cohort when nothing has been stored
|
|
194
|
+
* yet. If you need to restore that initial value later, read it with
|
|
195
|
+
* `getCohort()` before calling `setCohort()`, then store it yourself.
|
|
196
|
+
*/
|
|
197
|
+
export declare const setCohort: (cohort: string) => void;
|
|
198
|
+
/**
|
|
199
|
+
* Gets the persisted cohort used for rollout calculations.
|
|
200
|
+
* If none has been stored yet, native derives the initial value once and
|
|
201
|
+
* persists it before returning.
|
|
202
|
+
*/
|
|
203
|
+
export declare const getCohort: () => string;
|
|
184
204
|
//# sourceMappingURL=native.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/native.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/native.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { TurboModule } from "react-native";
|
|
2
|
+
import type { UnsafeObject } from "react-native/Libraries/Types/CodegenTypes";
|
|
2
3
|
export interface UpdateBundleParams {
|
|
3
4
|
bundleId: string;
|
|
4
5
|
channel?: string;
|
|
@@ -55,20 +56,16 @@ export interface Spec extends TurboModule {
|
|
|
55
56
|
*/
|
|
56
57
|
updateBundle(params: UpdateBundleParams): Promise<boolean>;
|
|
57
58
|
/**
|
|
58
|
-
*
|
|
59
|
-
*
|
|
59
|
+
* Reads the launch report for the current process.
|
|
60
|
+
* This is a read-only API; native launch state has already been finalized.
|
|
60
61
|
*
|
|
61
|
-
* @param params - Parameters containing the bundle ID
|
|
62
62
|
* @returns Object with status and optional crashedBundleId
|
|
63
|
-
* - `status: "PROMOTED"` - Staging bundle was promoted to stable (ACTIVE event)
|
|
64
63
|
* - `status: "RECOVERED"` - App recovered from crash, rollback occurred (ROLLBACK event)
|
|
65
64
|
* - `status: "STABLE"` - No changes, already stable
|
|
66
65
|
* - `crashedBundleId` - Present only when status is "RECOVERED"
|
|
67
66
|
*/
|
|
68
|
-
notifyAppReady(
|
|
69
|
-
|
|
70
|
-
}): {
|
|
71
|
-
status: "PROMOTED" | "RECOVERED" | "STABLE";
|
|
67
|
+
notifyAppReady(): {
|
|
68
|
+
status: "RECOVERED" | "STABLE";
|
|
72
69
|
crashedBundleId?: string;
|
|
73
70
|
};
|
|
74
71
|
/**
|
|
@@ -99,6 +96,33 @@ export interface Spec extends TurboModule {
|
|
|
99
96
|
* @returns Base URL string (e.g., "file:///data/.../bundle-store/abc123") or "" if not available
|
|
100
97
|
*/
|
|
101
98
|
getBaseURL: () => string;
|
|
99
|
+
/**
|
|
100
|
+
* Gets the current active bundle ID from native bundle storage.
|
|
101
|
+
* Native reads the extracted bundle manifest first and falls back to the
|
|
102
|
+
* legacy BUNDLE_ID file when needed. Built-in bundle fallback is handled in JS.
|
|
103
|
+
*
|
|
104
|
+
* @returns Active bundle ID from bundle storage, or null when unavailable
|
|
105
|
+
*/
|
|
106
|
+
getBundleId: () => string | null;
|
|
107
|
+
/**
|
|
108
|
+
* Gets the current manifest from native bundle storage.
|
|
109
|
+
* Returns an empty object when manifest.json is missing or invalid.
|
|
110
|
+
*/
|
|
111
|
+
getManifest: () => UnsafeObject;
|
|
112
|
+
/**
|
|
113
|
+
* Sets the persisted cohort used for rollout calculations.
|
|
114
|
+
*
|
|
115
|
+
* Native only derives a device-based cohort when nothing has been stored
|
|
116
|
+
* yet. Call `getCohort()` first if the app needs to save that initial value
|
|
117
|
+
* for a later restore.
|
|
118
|
+
*/
|
|
119
|
+
setCohort: (cohort: string) => void;
|
|
120
|
+
/**
|
|
121
|
+
* Gets the persisted cohort used for rollout calculations.
|
|
122
|
+
* If none has been stored yet, native derives the initial value once and
|
|
123
|
+
* persists it before returning.
|
|
124
|
+
*/
|
|
125
|
+
getCohort: () => string;
|
|
102
126
|
addListener(eventName: string): void;
|
|
103
127
|
removeListeners(count: number): void;
|
|
104
128
|
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;
|
|
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,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;CACzB;AAED,MAAM,WAAW,IAAK,SAAQ,WAAW;IAEvC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB;;;;OAIG;IACH,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3D;;;;;;;;OAQG;IACH,cAAc,IAAI;QAChB,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC;QAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IAEF;;;;;OAKG;IACH,eAAe,IAAI,MAAM,EAAE,CAAC;IAE5B;;;;;OAKG;IACH,iBAAiB,IAAI,OAAO,CAAC;IAE7B;;;;OAIG;IACH,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjC;;;;;;OAMG;IACH,UAAU,EAAE,MAAM,MAAM,CAAC;IAEzB;;;;;;OAMG;IACH,WAAW,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAEjC;;;OAGG;IACH,WAAW,EAAE,MAAM,YAAY,CAAC;IAEhC;;;;;;OAMG;IACH,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAEpC;;;;OAIG;IACH,SAAS,EAAE,MAAM,MAAM,CAAC;IAGxB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM;QAC3B,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,OAAO,EAAE,MAAM,CAAC;QAChB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;KACjC,CAAC;CACH;;AAED,wBAAoE"}
|
|
@@ -24,6 +24,10 @@ export interface ResolverCheckUpdateParams {
|
|
|
24
24
|
* The channel name (e.g., "production", "staging")
|
|
25
25
|
*/
|
|
26
26
|
channel: string;
|
|
27
|
+
/**
|
|
28
|
+
* Cohort identifier used for server-side rollout decisions.
|
|
29
|
+
*/
|
|
30
|
+
cohort: string;
|
|
27
31
|
/**
|
|
28
32
|
* Update strategy being used
|
|
29
33
|
*/
|
|
@@ -47,11 +51,10 @@ export interface ResolverCheckUpdateParams {
|
|
|
47
51
|
export interface ResolverNotifyAppReadyParams {
|
|
48
52
|
/**
|
|
49
53
|
* The bundle state from native notifyAppReady
|
|
50
|
-
* - "PROMOTED": Staging bundle was promoted to stable
|
|
51
54
|
* - "RECOVERED": App recovered from crash, rollback occurred
|
|
52
55
|
* - "STABLE": No changes, bundle is stable
|
|
53
56
|
*/
|
|
54
|
-
status: "
|
|
57
|
+
status: "RECOVERED" | "STABLE";
|
|
55
58
|
/**
|
|
56
59
|
* Present only when status is "RECOVERED"
|
|
57
60
|
*/
|
|
@@ -94,7 +97,7 @@ export interface HotUpdaterResolver {
|
|
|
94
97
|
/**
|
|
95
98
|
* Custom implementation for notifying app ready.
|
|
96
99
|
* When provided, this completely replaces the default notifyAppReady network flow.
|
|
97
|
-
* Note:
|
|
100
|
+
* Note: Native rollback/promotion semantics are already finalized before this callback runs.
|
|
98
101
|
*
|
|
99
102
|
* @param params - All parameters about the current app state
|
|
100
103
|
* @returns Notification result
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;IAE5B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,cAAc,EAAE,aAAa,GAAG,YAAY,CAAC;IAE7C;;OAEG;IACH,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/B;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAExC;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;IAE5B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,cAAc,EAAE,aAAa,GAAG,YAAY,CAAC;IAE7C;;OAEG;IACH,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/B;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAExC;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;;;OAIG;IACH,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC;IAE/B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAExC;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,WAAW,CAAC,EAAE,CACZ,MAAM,EAAE,yBAAyB,KAC9B,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IAEnC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,cAAc,CAAC,EAAE,CACf,MAAM,EAAE,4BAA4B,KACjC,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAAC;CAChD;AAED;;;;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"}
|
|
@@ -23,12 +23,11 @@ interface CommonHotUpdaterOptions {
|
|
|
23
23
|
*/
|
|
24
24
|
requestTimeout?: number;
|
|
25
25
|
/**
|
|
26
|
-
* Callback invoked when the app is ready and
|
|
27
|
-
* Provides information about
|
|
26
|
+
* Callback invoked when the app is ready and the native launch report is available.
|
|
27
|
+
* Provides information about rollback recovery or stable state.
|
|
28
28
|
*
|
|
29
29
|
* @param result - Bundle state information
|
|
30
30
|
* @param result.status - Current bundle state:
|
|
31
|
-
* - "PROMOTED": Staging bundle was promoted to stable (new update applied)
|
|
32
31
|
* - "RECOVERED": App recovered from a crash, rollback occurred
|
|
33
32
|
* - "STABLE": No changes, bundle is stable
|
|
34
33
|
* @param result.crashedBundleId - Present only when status is "RECOVERED"
|
|
@@ -40,9 +39,7 @@ interface CommonHotUpdaterOptions {
|
|
|
40
39
|
* updateMode: "manual",
|
|
41
40
|
* onNotifyAppReady: ({ status, crashedBundleId }) => {
|
|
42
41
|
* if (status === "RECOVERED") {
|
|
43
|
-
* analytics.track(
|
|
44
|
-
* } else if (status === "PROMOTED") {
|
|
45
|
-
* analytics.track('bundle_promoted');
|
|
42
|
+
* analytics.track("bundle_rollback", { crashedBundleId });
|
|
46
43
|
* }
|
|
47
44
|
* }
|
|
48
45
|
* })(App);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrap.d.ts","sourceRoot":"","sources":["../../../src/wrap.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"wrap.d.ts","sourceRoot":"","sources":["../../../src/wrap.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAEnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,OAAO,EAEL,KAAK,oBAAoB,EAG1B,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,UAAU,GAAG,QAAQ,GAAG,YAAY,CAAC;IAC7C,iBAAiB,EAAE,OAAO,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,KAAK,YAAY,GACb,kBAAkB,GAClB,UAAU,GACV,0BAA0B,CAAC;AAE/B;;GAEG;AACH,UAAU,uBAAuB;IAC/B;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAExC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;CAC3D;AAED;;GAEG;AACH,UAAU,aAAa;IACrB;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB;AAED;;GAEG;AACH,UAAU,cAAc;IACtB;;OAEG;IACH,QAAQ,EAAE,kBAAkB,CAAC;IAE7B;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC;CACjB;AAED;;GAEG;AACH,KAAK,aAAa,GAAG,aAAa,GAAG,cAAc,CAAC;AAEpD,MAAM,MAAM,iBAAiB,GAAG,uBAAuB,GACrD,aAAa,GAAG;IACd;;;;OAIG;IACH,cAAc,EAAE,aAAa,GAAG,YAAY,CAAC;IAE7C;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,GAAG,KAAK,GAAG,OAAO,KAAK,IAAI,CAAC;IAE7D;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,iBAAiB,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE,0BAA0B,CAAC,CAAC;QAC1D,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,CAAC,CAAC;IAEH,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAExC;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,CAAC,QAAQ,EAAE,wBAAwB,KAAK,IAAI,CAAC;CACzE,CAAC;AAEJ,MAAM,MAAM,mBAAmB,GAAG,uBAAuB,GACvD,aAAa,GAAG;IACd;;;OAGG;IACH,UAAU,EAAE,QAAQ,CAAC;CACtB,CAAC;AAEJ,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,GAAG,mBAAmB,CAAC;AAExE;;;GAGG;AACH,KAAK,qBAAqB,GAAG;IAC3B,QAAQ,EAAE,kBAAkB,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;CAC3D,CAAC;AAEF,KAAK,yBAAyB,GAAG,qBAAqB,GAAG;IACvD,cAAc,EAAE,aAAa,GAAG,YAAY,CAAC;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,GAAG,KAAK,GAAG,OAAO,KAAK,IAAI,CAAC;IAC7D,iBAAiB,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE,0BAA0B,CAAC,CAAC;QAC1D,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,CAAC,CAAC;IACH,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,wBAAwB,CAAC,EAAE,CAAC,QAAQ,EAAE,wBAAwB,KAAK,IAAI,CAAC;CACzE,CAAC;AAEF,KAAK,2BAA2B,GAAG,qBAAqB,GAAG;IACzD,UAAU,EAAE,QAAQ,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAC3B,yBAAyB,GACzB,2BAA2B,CAAC;AAkChC,wBAAgB,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,mBAAmB,GAAG,MAAM,EACnE,OAAO,EAAE,mBAAmB,GAC3B,CAAC,gBAAgB,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CA8HtE"}
|