@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
package/lib/commonjs/native.js
CHANGED
|
@@ -3,28 +3,35 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.HotUpdaterConstants = void 0;
|
|
7
6
|
Object.defineProperty(exports, "HotUpdaterErrorCode", {
|
|
8
7
|
enumerable: true,
|
|
9
8
|
get: function () {
|
|
10
9
|
return _error.HotUpdaterErrorCode;
|
|
11
10
|
}
|
|
12
11
|
});
|
|
13
|
-
exports.isChannelSwitched = exports.getMinBundleId = exports.getFingerprintHash = exports.getDefaultChannel = exports.getCrashHistory = exports.getChannel = exports.getBundleId = exports.getBaseURL = exports.getAppVersion = exports.clearCrashHistory = exports.addListener = void 0;
|
|
12
|
+
exports.isChannelSwitched = exports.getMinBundleId = exports.getManifest = exports.getFingerprintHash = exports.getDefaultChannel = exports.getCrashHistory = exports.getCohort = exports.getChannel = exports.getBundleId = exports.getBaseURL = exports.getAppVersion = exports.clearCrashHistory = exports.addListener = void 0;
|
|
14
13
|
Object.defineProperty(exports, "isHotUpdaterError", {
|
|
15
14
|
enumerable: true,
|
|
16
15
|
get: function () {
|
|
17
16
|
return _error.isHotUpdaterError;
|
|
18
17
|
}
|
|
19
18
|
});
|
|
20
|
-
exports.resetChannel = exports.reload = exports.notifyAppReady = void 0;
|
|
19
|
+
exports.setCohort = exports.resetChannel = exports.reload = exports.notifyAppReady = void 0;
|
|
21
20
|
exports.setReloadBehavior = setReloadBehavior;
|
|
22
21
|
exports.updateBundle = updateBundle;
|
|
22
|
+
var _core = require("@hot-updater/core");
|
|
23
23
|
var _reactNative = require("react-native");
|
|
24
24
|
var _error = require("./error.js");
|
|
25
25
|
var _NativeHotUpdater = _interopRequireDefault(require("./specs/NativeHotUpdater.js"));
|
|
26
26
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
27
27
|
const NIL_UUID = "00000000-0000-0000-0000-000000000000";
|
|
28
|
+
const normalizeAndValidateCohort = cohort => {
|
|
29
|
+
const normalized = (0, _core.normalizeCohortValue)(cohort);
|
|
30
|
+
if (!(0, _core.isValidCohort)(normalized)) {
|
|
31
|
+
throw new Error(_core.INVALID_COHORT_ERROR_MESSAGE);
|
|
32
|
+
}
|
|
33
|
+
return normalized;
|
|
34
|
+
};
|
|
28
35
|
|
|
29
36
|
/**
|
|
30
37
|
* Built-in reload behaviors used by `HotUpdater.reload()`.
|
|
@@ -48,12 +55,10 @@ const NIL_UUID = "00000000-0000-0000-0000-000000000000";
|
|
|
48
55
|
* - `custom`: Run a user-provided JS handler on both platforms
|
|
49
56
|
*/
|
|
50
57
|
|
|
51
|
-
const HotUpdaterConstants = exports.HotUpdaterConstants = {
|
|
52
|
-
HOT_UPDATER_BUNDLE_ID: __HOT_UPDATER_BUNDLE_ID || NIL_UUID
|
|
53
|
-
};
|
|
54
58
|
class HotUpdaterSessionState {
|
|
55
59
|
inflightUpdates = new Map();
|
|
56
60
|
lastInstalledBundleId = null;
|
|
61
|
+
activeBundleSnapshotCache = new Map();
|
|
57
62
|
constructor() {
|
|
58
63
|
const constants = _NativeHotUpdater.default.getConstants();
|
|
59
64
|
this.defaultChannel = constants.DEFAULT_CHANNEL ?? constants.CHANNEL;
|
|
@@ -85,16 +90,58 @@ class HotUpdaterSessionState {
|
|
|
85
90
|
if (channel) {
|
|
86
91
|
this.currentChannel = channel;
|
|
87
92
|
}
|
|
93
|
+
this.clearActiveBundleSnapshotCache();
|
|
88
94
|
}
|
|
89
95
|
resetChannelState() {
|
|
90
96
|
this.currentChannel = this.defaultChannel;
|
|
91
97
|
this.lastInstalledBundleId = null;
|
|
92
98
|
this.inflightUpdates.clear();
|
|
99
|
+
this.clearActiveBundleSnapshotCache();
|
|
100
|
+
}
|
|
101
|
+
getCachedBundleId() {
|
|
102
|
+
return this.getActiveBundleSnapshotValue("bundleId");
|
|
103
|
+
}
|
|
104
|
+
cacheBundleId(bundleId) {
|
|
105
|
+
this.setActiveBundleSnapshotValue("bundleId", bundleId);
|
|
106
|
+
}
|
|
107
|
+
getCachedManifest() {
|
|
108
|
+
const manifest = this.getActiveBundleSnapshotValue("manifest");
|
|
109
|
+
return manifest ? cloneManifest(manifest) : undefined;
|
|
110
|
+
}
|
|
111
|
+
cacheManifest(manifest) {
|
|
112
|
+
this.setActiveBundleSnapshotValue("manifest", cloneManifest(manifest));
|
|
113
|
+
}
|
|
114
|
+
getCachedBaseURL() {
|
|
115
|
+
return this.getActiveBundleSnapshotValue("baseURL");
|
|
116
|
+
}
|
|
117
|
+
cacheBaseURL(baseURL) {
|
|
118
|
+
this.setActiveBundleSnapshotValue("baseURL", baseURL);
|
|
119
|
+
}
|
|
120
|
+
getCachedCohort() {
|
|
121
|
+
return this.cachedCohort;
|
|
122
|
+
}
|
|
123
|
+
cacheCohort(cohort) {
|
|
124
|
+
this.cachedCohort = cohort;
|
|
125
|
+
}
|
|
126
|
+
clearActiveBundleSnapshotCache() {
|
|
127
|
+
this.activeBundleSnapshotCache.clear();
|
|
128
|
+
}
|
|
129
|
+
getActiveBundleSnapshotValue(key) {
|
|
130
|
+
return this.activeBundleSnapshotCache.get(key);
|
|
131
|
+
}
|
|
132
|
+
setActiveBundleSnapshotValue(key, value) {
|
|
133
|
+
this.activeBundleSnapshotCache.set(key, value);
|
|
93
134
|
}
|
|
94
135
|
}
|
|
95
136
|
const sessionState = new HotUpdaterSessionState();
|
|
96
137
|
let reloadBehavior = "processRestart";
|
|
97
138
|
let customReloadHandler = null;
|
|
139
|
+
const cloneManifest = manifest => ({
|
|
140
|
+
bundleId: manifest.bundleId,
|
|
141
|
+
assets: Object.fromEntries(Object.entries(manifest.assets).map(([key, asset]) => [key, {
|
|
142
|
+
fileHash: asset.fileHash
|
|
143
|
+
}]))
|
|
144
|
+
});
|
|
98
145
|
const getReloadProcess = () => {
|
|
99
146
|
const nativeModule = _NativeHotUpdater.default;
|
|
100
147
|
return typeof nativeModule.reloadProcess === "function" ? nativeModule.reloadProcess.bind(nativeModule) : null;
|
|
@@ -244,12 +291,58 @@ const getMinBundleId = () => {
|
|
|
244
291
|
/**
|
|
245
292
|
* Fetches the current bundle version id.
|
|
246
293
|
*
|
|
247
|
-
*
|
|
248
|
-
*
|
|
294
|
+
* JS falls back to MIN_BUNDLE_ID only after native confirms there is no active
|
|
295
|
+
* downloaded bundle. When the native module does not expose `getBundleId()`,
|
|
296
|
+
* treat it as a JS/native SDK mismatch instead of silently reporting the
|
|
297
|
+
* built-in bundle.
|
|
298
|
+
*
|
|
299
|
+
* @returns {string} Resolves with the current version id.
|
|
249
300
|
*/
|
|
250
301
|
exports.getMinBundleId = getMinBundleId;
|
|
251
302
|
const getBundleId = () => {
|
|
252
|
-
|
|
303
|
+
const cachedBundleId = sessionState.getCachedBundleId();
|
|
304
|
+
if (cachedBundleId !== undefined) {
|
|
305
|
+
return cachedBundleId;
|
|
306
|
+
}
|
|
307
|
+
const nativeModule = _NativeHotUpdater.default;
|
|
308
|
+
if (typeof nativeModule.getBundleId !== "function") {
|
|
309
|
+
throw new Error("[HotUpdater] Native module is missing 'getBundleId()'. This JS bundle requires a newer native @hot-updater/react-native SDK. Rebuild and release a new app version before delivering this OTA update.");
|
|
310
|
+
}
|
|
311
|
+
const bundleId = nativeModule.getBundleId();
|
|
312
|
+
const resolvedBundleId = !bundleId || bundleId === NIL_UUID ? getMinBundleId() : bundleId;
|
|
313
|
+
sessionState.cacheBundleId(resolvedBundleId);
|
|
314
|
+
return resolvedBundleId;
|
|
315
|
+
};
|
|
316
|
+
|
|
317
|
+
/**
|
|
318
|
+
* Fetches the current manifest for the active bundle.
|
|
319
|
+
*
|
|
320
|
+
* Returns a normalized manifest with empty assets when manifest.json is missing
|
|
321
|
+
* or invalid.
|
|
322
|
+
*/
|
|
323
|
+
exports.getBundleId = getBundleId;
|
|
324
|
+
const getManifest = () => {
|
|
325
|
+
const cachedManifest = sessionState.getCachedManifest();
|
|
326
|
+
if (cachedManifest !== undefined) {
|
|
327
|
+
return cachedManifest;
|
|
328
|
+
}
|
|
329
|
+
const nativeModule = _NativeHotUpdater.default;
|
|
330
|
+
const manifest = nativeModule.getManifest?.();
|
|
331
|
+
let normalizedManifest;
|
|
332
|
+
if (!manifest) {
|
|
333
|
+
normalizedManifest = createEmptyManifest();
|
|
334
|
+
} else if (typeof manifest === "string") {
|
|
335
|
+
try {
|
|
336
|
+
normalizedManifest = normalizeManifest(JSON.parse(manifest));
|
|
337
|
+
} catch {
|
|
338
|
+
normalizedManifest = createEmptyManifest();
|
|
339
|
+
}
|
|
340
|
+
} else {
|
|
341
|
+
normalizedManifest = normalizeManifest(manifest);
|
|
342
|
+
}
|
|
343
|
+
sessionState.cacheBundleId(normalizedManifest.bundleId);
|
|
344
|
+
sessionState.cacheManifest(normalizedManifest);
|
|
345
|
+
return cloneManifest(normalizedManifest);
|
|
253
346
|
};
|
|
254
347
|
|
|
255
348
|
/**
|
|
@@ -257,7 +350,7 @@ const getBundleId = () => {
|
|
|
257
350
|
*
|
|
258
351
|
* @returns {string} Resolves with the channel or null if not available.
|
|
259
352
|
*/
|
|
260
|
-
exports.
|
|
353
|
+
exports.getManifest = getManifest;
|
|
261
354
|
const getChannel = () => {
|
|
262
355
|
return sessionState.getChannel();
|
|
263
356
|
};
|
|
@@ -294,13 +387,11 @@ const getFingerprintHash = () => {
|
|
|
294
387
|
*/
|
|
295
388
|
exports.getFingerprintHash = getFingerprintHash;
|
|
296
389
|
/**
|
|
297
|
-
*
|
|
298
|
-
* If the bundle matches the staging bundle, it promotes to stable.
|
|
390
|
+
* Reads the native launch report for the current process.
|
|
299
391
|
*
|
|
300
|
-
* This function is called automatically
|
|
392
|
+
* This function is called automatically after the app has rendered.
|
|
301
393
|
*
|
|
302
394
|
* @returns {NotifyAppReadyResult} Bundle state information
|
|
303
|
-
* - `status: "PROMOTED"` - Staging bundle was promoted to stable (ACTIVE event)
|
|
304
395
|
* - `status: "RECOVERED"` - App recovered from crash, rollback occurred (ROLLBACK event)
|
|
305
396
|
* - `status: "STABLE"` - No changes, already stable
|
|
306
397
|
* - `crashedBundleId` - Present only when status is "RECOVERED"
|
|
@@ -309,37 +400,86 @@ exports.getFingerprintHash = getFingerprintHash;
|
|
|
309
400
|
* ```ts
|
|
310
401
|
* const result = HotUpdater.notifyAppReady();
|
|
311
402
|
*
|
|
312
|
-
*
|
|
313
|
-
*
|
|
314
|
-
*
|
|
315
|
-
*
|
|
316
|
-
*
|
|
317
|
-
* case "RECOVERED":
|
|
318
|
-
* // Send ROLLBACK analytics event
|
|
319
|
-
* analytics.track('bundle_rollback', { crashedBundleId: result.crashedBundleId });
|
|
320
|
-
* break;
|
|
321
|
-
* case "STABLE":
|
|
322
|
-
* // No special action needed
|
|
323
|
-
* break;
|
|
403
|
+
* if (result.status === "RECOVERED") {
|
|
404
|
+
* // Send ROLLBACK analytics event
|
|
405
|
+
* analytics.track("bundle_rollback", {
|
|
406
|
+
* crashedBundleId: result.crashedBundleId,
|
|
407
|
+
* });
|
|
324
408
|
* }
|
|
325
409
|
* ```
|
|
326
410
|
*/
|
|
327
411
|
const notifyAppReady = () => {
|
|
328
|
-
const
|
|
329
|
-
|
|
330
|
-
bundleId
|
|
331
|
-
});
|
|
332
|
-
// Oldarch returns JSON string, newarch returns array
|
|
412
|
+
const result = _NativeHotUpdater.default.notifyAppReady();
|
|
413
|
+
// Older Android old-arch implementations returned JSON strings.
|
|
333
414
|
if (typeof result === "string") {
|
|
334
415
|
try {
|
|
335
|
-
return JSON.parse(result);
|
|
416
|
+
return normalizeNotifyAppReadyResult(JSON.parse(result));
|
|
336
417
|
} catch {
|
|
337
418
|
return {
|
|
338
419
|
status: "STABLE"
|
|
339
420
|
};
|
|
340
421
|
}
|
|
341
422
|
}
|
|
342
|
-
return result;
|
|
423
|
+
return normalizeNotifyAppReadyResult(result);
|
|
424
|
+
};
|
|
425
|
+
exports.notifyAppReady = notifyAppReady;
|
|
426
|
+
const normalizeNotifyAppReadyResult = result => {
|
|
427
|
+
if (result.status === "RECOVERED") {
|
|
428
|
+
return {
|
|
429
|
+
status: "RECOVERED",
|
|
430
|
+
crashedBundleId: result.crashedBundleId
|
|
431
|
+
};
|
|
432
|
+
}
|
|
433
|
+
return {
|
|
434
|
+
status: "STABLE"
|
|
435
|
+
};
|
|
436
|
+
};
|
|
437
|
+
const createEmptyManifest = () => ({
|
|
438
|
+
bundleId: getBundleId(),
|
|
439
|
+
assets: {}
|
|
440
|
+
});
|
|
441
|
+
const normalizeManifest = value => {
|
|
442
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
443
|
+
return createEmptyManifest();
|
|
444
|
+
}
|
|
445
|
+
const bundleIdValue = value.bundleId;
|
|
446
|
+
const bundleId = typeof bundleIdValue === "string" && bundleIdValue.trim() ? bundleIdValue.trim() : getBundleId();
|
|
447
|
+
return {
|
|
448
|
+
bundleId,
|
|
449
|
+
assets: normalizeManifestAssets(value.assets)
|
|
450
|
+
};
|
|
451
|
+
};
|
|
452
|
+
const normalizeManifestAssets = value => {
|
|
453
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
454
|
+
return {};
|
|
455
|
+
}
|
|
456
|
+
return Object.fromEntries(Object.entries(value).flatMap(([key, entry]) => {
|
|
457
|
+
const trimmedKey = key.trim();
|
|
458
|
+
if (!trimmedKey) {
|
|
459
|
+
return [];
|
|
460
|
+
}
|
|
461
|
+
if (typeof entry === "string") {
|
|
462
|
+
const fileHash = entry.trim();
|
|
463
|
+
if (!fileHash) {
|
|
464
|
+
return [];
|
|
465
|
+
}
|
|
466
|
+
return [[trimmedKey, {
|
|
467
|
+
fileHash
|
|
468
|
+
}]];
|
|
469
|
+
}
|
|
470
|
+
if (!entry || typeof entry !== "object" || Array.isArray(entry)) {
|
|
471
|
+
return [];
|
|
472
|
+
}
|
|
473
|
+
const {
|
|
474
|
+
fileHash
|
|
475
|
+
} = entry;
|
|
476
|
+
if (typeof fileHash !== "string" || !fileHash.trim()) {
|
|
477
|
+
return [];
|
|
478
|
+
}
|
|
479
|
+
return [[trimmedKey, {
|
|
480
|
+
fileHash: fileHash.trim()
|
|
481
|
+
}]];
|
|
482
|
+
}));
|
|
343
483
|
};
|
|
344
484
|
|
|
345
485
|
/**
|
|
@@ -348,10 +488,9 @@ const notifyAppReady = () => {
|
|
|
348
488
|
*
|
|
349
489
|
* @returns {string[]} Array of crashed bundle IDs
|
|
350
490
|
*/
|
|
351
|
-
exports.notifyAppReady = notifyAppReady;
|
|
352
491
|
const getCrashHistory = () => {
|
|
353
492
|
const result = _NativeHotUpdater.default.getCrashHistory();
|
|
354
|
-
//
|
|
493
|
+
// Older Android old-arch implementations returned JSON strings.
|
|
355
494
|
if (typeof result === "string") {
|
|
356
495
|
try {
|
|
357
496
|
return JSON.parse(result);
|
|
@@ -382,11 +521,14 @@ const clearCrashHistory = () => {
|
|
|
382
521
|
*/
|
|
383
522
|
exports.clearCrashHistory = clearCrashHistory;
|
|
384
523
|
const getBaseURL = () => {
|
|
385
|
-
const
|
|
386
|
-
if (
|
|
387
|
-
return
|
|
524
|
+
const cachedBaseURL = sessionState.getCachedBaseURL();
|
|
525
|
+
if (cachedBaseURL !== undefined) {
|
|
526
|
+
return cachedBaseURL;
|
|
388
527
|
}
|
|
389
|
-
|
|
528
|
+
const result = _NativeHotUpdater.default.getBaseURL();
|
|
529
|
+
const baseURL = typeof result === "string" && result !== "" ? result : null;
|
|
530
|
+
sessionState.cacheBaseURL(baseURL);
|
|
531
|
+
return baseURL;
|
|
390
532
|
};
|
|
391
533
|
|
|
392
534
|
/**
|
|
@@ -403,5 +545,35 @@ const resetChannel = async () => {
|
|
|
403
545
|
}
|
|
404
546
|
return ok;
|
|
405
547
|
};
|
|
548
|
+
|
|
549
|
+
/**
|
|
550
|
+
* Sets the persisted cohort used for update checks.
|
|
551
|
+
*
|
|
552
|
+
* HotUpdater only derives a device-based cohort when nothing has been stored
|
|
553
|
+
* yet. If you need to restore that initial value later, read it with
|
|
554
|
+
* `getCohort()` before calling `setCohort()`, then store it yourself.
|
|
555
|
+
*/
|
|
406
556
|
exports.resetChannel = resetChannel;
|
|
557
|
+
const setCohort = cohort => {
|
|
558
|
+
const normalized = normalizeAndValidateCohort(cohort);
|
|
559
|
+
_NativeHotUpdater.default.setCohort(normalized);
|
|
560
|
+
sessionState.cacheCohort(normalized);
|
|
561
|
+
};
|
|
562
|
+
|
|
563
|
+
/**
|
|
564
|
+
* Gets the persisted cohort used for rollout calculations.
|
|
565
|
+
* If none has been stored yet, native derives the initial value once and
|
|
566
|
+
* persists it before returning.
|
|
567
|
+
*/
|
|
568
|
+
exports.setCohort = setCohort;
|
|
569
|
+
const getCohort = () => {
|
|
570
|
+
const cachedCohort = sessionState.getCachedCohort();
|
|
571
|
+
if (cachedCohort !== undefined) {
|
|
572
|
+
return cachedCohort;
|
|
573
|
+
}
|
|
574
|
+
const cohort = normalizeAndValidateCohort(_NativeHotUpdater.default.getCohort());
|
|
575
|
+
sessionState.cacheCohort(cohort);
|
|
576
|
+
return cohort;
|
|
577
|
+
};
|
|
578
|
+
exports.getCohort = getCohort;
|
|
407
579
|
//# sourceMappingURL=native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_error","_NativeHotUpdater","_interopRequireDefault","e","__esModule","default","NIL_UUID","HotUpdaterConstants","exports","HOT_UPDATER_BUNDLE_ID","__HOT_UPDATER_BUNDLE_ID","HotUpdaterSessionState","inflightUpdates","Map","lastInstalledBundleId","constructor","constants","HotUpdaterNative","getConstants","defaultChannel","DEFAULT_CHANNEL","CHANNEL","currentChannel","getChannel","getDefaultChannel","isChannelSwitched","hasInstalledBundle","bundleId","getInflightUpdate","get","trackInflightUpdate","promise","set","clearInflightUpdate","delete","markBundleInstalled","channel","resetChannelState","clear","sessionState","reloadBehavior","customReloadHandler","getReloadProcess","nativeModule","reloadProcess","bind","eventEmitter","NativeEventEmitter","addListener","eventName","listener","subscription","remove","updateBundle","paramsOrBundleId","fileUrl","updateBundleId","status","shouldSkipCurrentBundleIdCheck","localeCompare","getBundleId","Error","existing","targetFileUrl","targetFileHash","undefined","fileHash","targetChannel","ok","getAppVersion","APP_VERSION","reload","Platform","OS","setReloadBehavior","args","behavior","handler","getMinBundleId","MIN_BUNDLE_ID","getFingerprintHash","FINGERPRINT_HASH","notifyAppReady","result","JSON","parse","getCrashHistory","clearCrashHistory","getBaseURL","resetChannel"],"sourceRoot":"../../src","sources":["native.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_core","require","_reactNative","_error","_NativeHotUpdater","_interopRequireDefault","e","__esModule","default","NIL_UUID","normalizeAndValidateCohort","cohort","normalized","normalizeCohortValue","isValidCohort","Error","INVALID_COHORT_ERROR_MESSAGE","HotUpdaterSessionState","inflightUpdates","Map","lastInstalledBundleId","activeBundleSnapshotCache","constructor","constants","HotUpdaterNative","getConstants","defaultChannel","DEFAULT_CHANNEL","CHANNEL","currentChannel","getChannel","getDefaultChannel","isChannelSwitched","hasInstalledBundle","bundleId","getInflightUpdate","get","trackInflightUpdate","promise","set","clearInflightUpdate","delete","markBundleInstalled","channel","clearActiveBundleSnapshotCache","resetChannelState","clear","getCachedBundleId","getActiveBundleSnapshotValue","cacheBundleId","setActiveBundleSnapshotValue","getCachedManifest","manifest","cloneManifest","undefined","cacheManifest","getCachedBaseURL","cacheBaseURL","baseURL","getCachedCohort","cachedCohort","cacheCohort","key","value","sessionState","reloadBehavior","customReloadHandler","assets","Object","fromEntries","entries","map","asset","fileHash","getReloadProcess","nativeModule","reloadProcess","bind","eventEmitter","NativeEventEmitter","addListener","eventName","listener","subscription","remove","exports","updateBundle","paramsOrBundleId","fileUrl","updateBundleId","status","shouldSkipCurrentBundleIdCheck","localeCompare","getBundleId","existing","targetFileUrl","targetFileHash","targetChannel","ok","getAppVersion","APP_VERSION","reload","Platform","OS","setReloadBehavior","args","behavior","handler","getMinBundleId","MIN_BUNDLE_ID","cachedBundleId","resolvedBundleId","getManifest","cachedManifest","normalizedManifest","createEmptyManifest","normalizeManifest","JSON","parse","getFingerprintHash","FINGERPRINT_HASH","notifyAppReady","result","normalizeNotifyAppReadyResult","crashedBundleId","Array","isArray","bundleIdValue","trim","normalizeManifestAssets","flatMap","entry","trimmedKey","getCrashHistory","clearCrashHistory","getBaseURL","cachedBaseURL","resetChannel","setCohort","getCohort"],"sourceRoot":"../../src","sources":["native.ts"],"mappings":"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","ignoreList":[]}
|