@hot-updater/react-native 0.28.0 → 0.29.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/src/main/java/com/hotupdater/BundleFileStorageService.kt +156 -7
- 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 +12 -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 -19
- package/android/src/oldarch/HotUpdaterModule.kt +20 -20
- package/android/src/oldarch/HotUpdaterSpec.kt +12 -2
- package/ios/HotUpdater/Internal/BundleFileStorageService.swift +153 -31
- package/ios/HotUpdater/Internal/CohortService.swift +63 -0
- package/ios/HotUpdater/Internal/DecompressService.swift +53 -30
- package/ios/HotUpdater/Internal/HotUpdater.mm +111 -59
- package/ios/HotUpdater/Internal/HotUpdaterImpl.swift +28 -0
- 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 +193 -18
- package/lib/commonjs/native.js.map +1 -1
- package/lib/commonjs/native.spec.js +361 -4
- package/lib/commonjs/native.spec.js.map +1 -1
- package/lib/commonjs/specs/NativeHotUpdater.js.map +1 -1
- package/lib/commonjs/types.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 +187 -14
- package/lib/module/native.js.map +1 -1
- package/lib/module/native.spec.js +361 -4
- package/lib/module/native.spec.js.map +1 -1
- package/lib/module/specs/NativeHotUpdater.js.map +1 -1
- package/lib/module/types.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 +39 -8
- package/lib/typescript/commonjs/native.d.ts.map +1 -1
- package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts +28 -0
- package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts.map +1 -1
- package/lib/typescript/commonjs/types.d.ts +4 -0
- package/lib/typescript/commonjs/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/wrap.d.ts +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 +39 -8
- package/lib/typescript/module/native.d.ts.map +1 -1
- package/lib/typescript/module/specs/NativeHotUpdater.d.ts +28 -0
- package/lib/typescript/module/specs/NativeHotUpdater.d.ts.map +1 -1
- package/lib/typescript/module/types.d.ts +4 -0
- package/lib/typescript/module/types.d.ts.map +1 -1
- package/lib/typescript/module/wrap.d.ts +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 +400 -4
- package/src/native.ts +265 -20
- package/src/specs/NativeHotUpdater.ts +32 -0
- package/src/types.ts +5 -0
- package/src/wrap.tsx +1 -1
- package/lib/typescript/commonjs/native.spec.d.ts +0 -2
- package/lib/typescript/commonjs/native.spec.d.ts.map +0 -1
- package/lib/typescript/module/native.spec.d.ts +0 -2
- package/lib/typescript/module/native.spec.d.ts.map +0 -1
|
@@ -32,6 +32,7 @@ private func hotUpdaterPerformRecoveryReload() -> Bool {
|
|
|
32
32
|
@objcMembers public class HotUpdaterImpl: NSObject {
|
|
33
33
|
private let bundleStorage: BundleStorageService
|
|
34
34
|
private let preferences: PreferencesService
|
|
35
|
+
private let cohortService: CohortService
|
|
35
36
|
private let recoveryManager: HotUpdaterRecoveryManager
|
|
36
37
|
private var currentLaunchSelection: LaunchSelection?
|
|
37
38
|
|
|
@@ -70,6 +71,7 @@ private func hotUpdaterPerformRecoveryReload() -> Bool {
|
|
|
70
71
|
internal init(bundleStorage: BundleStorageService, preferences: PreferencesService, recoveryManager: HotUpdaterRecoveryManager) {
|
|
71
72
|
self.bundleStorage = bundleStorage
|
|
72
73
|
self.preferences = preferences
|
|
74
|
+
self.cohortService = CohortService()
|
|
73
75
|
self.recoveryManager = recoveryManager
|
|
74
76
|
super.init()
|
|
75
77
|
|
|
@@ -144,6 +146,16 @@ private func hotUpdaterPerformRecoveryReload() -> Bool {
|
|
|
144
146
|
return Bundle.main.object(forInfoDictionaryKey: "HOT_UPDATER_FINGERPRINT_HASH") as? String
|
|
145
147
|
}
|
|
146
148
|
|
|
149
|
+
// MARK: - Cohort Management
|
|
150
|
+
|
|
151
|
+
public func setCohort(_ cohort: String) {
|
|
152
|
+
cohortService.setCohort(cohort)
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
public func getCohort() -> String {
|
|
156
|
+
return cohortService.getCohort()
|
|
157
|
+
}
|
|
158
|
+
|
|
147
159
|
// MARK: - Bundle URL Management
|
|
148
160
|
|
|
149
161
|
/**
|
|
@@ -334,6 +346,22 @@ private func hotUpdaterPerformRecoveryReload() -> Bool {
|
|
|
334
346
|
return bundleStorage.getBaseURL()
|
|
335
347
|
}
|
|
336
348
|
|
|
349
|
+
/**
|
|
350
|
+
* Gets the current active bundle ID from bundle storage.
|
|
351
|
+
* Reads manifest.json first and falls back to the legacy BUNDLE_ID file.
|
|
352
|
+
* Built-in bundle fallback is handled in JS.
|
|
353
|
+
*/
|
|
354
|
+
public func getBundleId() -> String? {
|
|
355
|
+
return bundleStorage.getBundleId()
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
/**
|
|
359
|
+
* Gets the current manifest from bundle storage.
|
|
360
|
+
*/
|
|
361
|
+
public func getManifest() -> ManifestAssets {
|
|
362
|
+
return bundleStorage.getManifest()
|
|
363
|
+
}
|
|
364
|
+
|
|
337
365
|
public func resetLaunchPreparation() {
|
|
338
366
|
currentLaunchSelection = nil
|
|
339
367
|
}
|
|
@@ -25,15 +25,22 @@ class TarBrDecompressionStrategy: DecompressionStrategy {
|
|
|
25
25
|
return false
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
if !isBrotli {
|
|
33
|
-
NSLog("[TarBrStrategy] Invalid file: not a .tar.br or .br file")
|
|
28
|
+
guard let compressedData = try? Data(contentsOf: URL(fileURLWithPath: file)) else {
|
|
29
|
+
NSLog("[TarBrStrategy] Invalid file: cannot read file data")
|
|
30
|
+
return false
|
|
34
31
|
}
|
|
35
32
|
|
|
36
|
-
|
|
33
|
+
do {
|
|
34
|
+
let tarEntries = try readTarEntries(from: compressedData)
|
|
35
|
+
if tarEntries.isEmpty {
|
|
36
|
+
NSLog("[TarBrStrategy] Invalid file: tar archive has no entries")
|
|
37
|
+
return false
|
|
38
|
+
}
|
|
39
|
+
return true
|
|
40
|
+
} catch {
|
|
41
|
+
NSLog("[TarBrStrategy] Invalid file: Brotli/TAR validation failed - \(error.localizedDescription)")
|
|
42
|
+
return false
|
|
43
|
+
}
|
|
37
44
|
}
|
|
38
45
|
|
|
39
46
|
func decompress(file: String, to destination: String, progressHandler: @escaping (Double) -> Void) throws {
|
|
@@ -63,7 +70,7 @@ class TarBrDecompressionStrategy: DecompressionStrategy {
|
|
|
63
70
|
|
|
64
71
|
let tarEntries: [TarEntry]
|
|
65
72
|
do {
|
|
66
|
-
tarEntries = try
|
|
73
|
+
tarEntries = try readTarEntries(fromDecompressedData: decompressedData)
|
|
67
74
|
NSLog("[TarBrStrategy] Tar extraction successful, found \(tarEntries.count) entries")
|
|
68
75
|
} catch {
|
|
69
76
|
throw NSError(
|
|
@@ -94,6 +101,15 @@ class TarBrDecompressionStrategy: DecompressionStrategy {
|
|
|
94
101
|
NSLog("[TarBrStrategy] Successfully extracted all entries")
|
|
95
102
|
}
|
|
96
103
|
|
|
104
|
+
private func readTarEntries(from compressedData: Data) throws -> [TarEntry] {
|
|
105
|
+
let decompressedData = try decompressBrotli(compressedData)
|
|
106
|
+
return try readTarEntries(fromDecompressedData: decompressedData)
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
private func readTarEntries(fromDecompressedData decompressedData: Data) throws -> [TarEntry] {
|
|
110
|
+
return try TarContainer.open(container: decompressedData)
|
|
111
|
+
}
|
|
112
|
+
|
|
97
113
|
private func decompressBrotli(_ data: Data) throws -> Data {
|
|
98
114
|
let bufferSize = 64 * 1024
|
|
99
115
|
var decompressedData = Data()
|
|
@@ -15,18 +15,16 @@ var _fetchUpdateInfo = require("./fetchUpdateInfo.js");
|
|
|
15
15
|
function createDefaultResolver(baseURL) {
|
|
16
16
|
return {
|
|
17
17
|
checkUpdate: async params => {
|
|
18
|
-
// Build URL based on strategy (existing buildUpdateUrl logic)
|
|
19
18
|
let url;
|
|
19
|
+
const cohortPath = `/${encodeURIComponent(params.cohort)}`;
|
|
20
20
|
if (params.updateStrategy === "fingerprint") {
|
|
21
21
|
if (!params.fingerprintHash) {
|
|
22
22
|
throw new Error("Fingerprint hash is required");
|
|
23
23
|
}
|
|
24
|
-
url = `${baseURL}/fingerprint/${params.platform}/${params.fingerprintHash}/${params.channel}/${params.minBundleId}/${params.bundleId}`;
|
|
24
|
+
url = `${baseURL}/fingerprint/${params.platform}/${params.fingerprintHash}/${params.channel}/${params.minBundleId}/${params.bundleId}${cohortPath}`;
|
|
25
25
|
} else {
|
|
26
|
-
url = `${baseURL}/app-version/${params.platform}/${params.appVersion}/${params.channel}/${params.minBundleId}/${params.bundleId}`;
|
|
26
|
+
url = `${baseURL}/app-version/${params.platform}/${params.appVersion}/${params.channel}/${params.minBundleId}/${params.bundleId}${cohortPath}`;
|
|
27
27
|
}
|
|
28
|
-
|
|
29
|
-
// Use existing fetchUpdateInfo
|
|
30
28
|
return (0, _fetchUpdateInfo.fetchUpdateInfo)({
|
|
31
29
|
url,
|
|
32
30
|
requestHeaders: params.requestHeaders,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_fetchUpdateInfo","require","createDefaultResolver","baseURL","checkUpdate","params","url","updateStrategy","fingerprintHash","Error","platform","channel","minBundleId","bundleId","appVersion","fetchUpdateInfo","requestHeaders","requestTimeout"],"sourceRoot":"../../src","sources":["DefaultResolver.ts"],"mappings":";;;;;;AACA,IAAAA,gBAAA,GAAAC,OAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,qBAAqBA,CAACC,OAAe,EAAsB;EACzE,OAAO;IACLC,WAAW,EAAE,MACXC,MAAiC,IACC;MAClC
|
|
1
|
+
{"version":3,"names":["_fetchUpdateInfo","require","createDefaultResolver","baseURL","checkUpdate","params","url","cohortPath","encodeURIComponent","cohort","updateStrategy","fingerprintHash","Error","platform","channel","minBundleId","bundleId","appVersion","fetchUpdateInfo","requestHeaders","requestTimeout"],"sourceRoot":"../../src","sources":["DefaultResolver.ts"],"mappings":";;;;;;AACA,IAAAA,gBAAA,GAAAC,OAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,qBAAqBA,CAACC,OAAe,EAAsB;EACzE,OAAO;IACLC,WAAW,EAAE,MACXC,MAAiC,IACC;MAClC,IAAIC,GAAW;MACf,MAAMC,UAAU,GAAG,IAAIC,kBAAkB,CAACH,MAAM,CAACI,MAAM,CAAC,EAAE;MAE1D,IAAIJ,MAAM,CAACK,cAAc,KAAK,aAAa,EAAE;QAC3C,IAAI,CAACL,MAAM,CAACM,eAAe,EAAE;UAC3B,MAAM,IAAIC,KAAK,CAAC,8BAA8B,CAAC;QACjD;QACAN,GAAG,GAAG,GAAGH,OAAO,gBAAgBE,MAAM,CAACQ,QAAQ,IAAIR,MAAM,CAACM,eAAe,IAAIN,MAAM,CAACS,OAAO,IAAIT,MAAM,CAACU,WAAW,IAAIV,MAAM,CAACW,QAAQ,GAAGT,UAAU,EAAE;MACrJ,CAAC,MAAM;QACLD,GAAG,GAAG,GAAGH,OAAO,gBAAgBE,MAAM,CAACQ,QAAQ,IAAIR,MAAM,CAACY,UAAU,IAAIZ,MAAM,CAACS,OAAO,IAAIT,MAAM,CAACU,WAAW,IAAIV,MAAM,CAACW,QAAQ,GAAGT,UAAU,EAAE;MAChJ;MAEA,OAAO,IAAAW,gCAAe,EAAC;QACrBZ,GAAG;QACHa,cAAc,EAAEd,MAAM,CAACc,cAAc;QACrCC,cAAc,EAAEf,MAAM,CAACe;MACzB,CAAC,CAAC;IACJ;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -33,6 +33,7 @@ async function checkForUpdate(options) {
|
|
|
33
33
|
const targetChannel = explicitChannel || currentChannel;
|
|
34
34
|
const isFirstRuntimeChannelSwitchAttempt = !isSwitched && explicitChannel !== undefined && explicitChannel !== defaultChannel;
|
|
35
35
|
const requestBundleId = isFirstRuntimeChannelSwitchAttempt ? minBundleId : currentBundleId;
|
|
36
|
+
const cohort = (0, _native.getCohort)();
|
|
36
37
|
if (!currentAppVersion) {
|
|
37
38
|
options.onError?.(new _error.HotUpdaterError("Failed to get app version"));
|
|
38
39
|
return null;
|
|
@@ -54,6 +55,7 @@ async function checkForUpdate(options) {
|
|
|
54
55
|
appVersion: currentAppVersion,
|
|
55
56
|
bundleId: requestBundleId,
|
|
56
57
|
minBundleId,
|
|
58
|
+
cohort,
|
|
57
59
|
channel: targetChannel,
|
|
58
60
|
updateStrategy: options.updateStrategy,
|
|
59
61
|
fingerprintHash,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_error","_native","NIL_UUID","isResetToBuiltInResponse","updateInfo","status","id","fileUrl","checkForUpdate","options","__DEV__","includes","Platform","OS","onError","HotUpdaterError","currentAppVersion","getAppVersion","platform","currentBundleId","getBundleId","minBundleId","getMinBundleId","defaultChannel","getDefaultChannel","isSwitched","isChannelSwitched","currentChannel","getChannel","explicitChannel","channel","undefined","targetChannel","isFirstRuntimeChannelSwitchAttempt","requestBundleId","error","fingerprintHash","getFingerprintHash","resolver","checkUpdate","appVersion","bundleId","updateStrategy","requestHeaders","requestTimeout","updateBundle","resetChannel","runtimeChannel","fileHash","shouldSkipCurrentBundleIdCheck"],"sourceRoot":"../../src","sources":["checkForUpdate.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_error","_native","NIL_UUID","isResetToBuiltInResponse","updateInfo","status","id","fileUrl","checkForUpdate","options","__DEV__","includes","Platform","OS","onError","HotUpdaterError","currentAppVersion","getAppVersion","platform","currentBundleId","getBundleId","minBundleId","getMinBundleId","defaultChannel","getDefaultChannel","isSwitched","isChannelSwitched","currentChannel","getChannel","explicitChannel","channel","undefined","targetChannel","isFirstRuntimeChannelSwitchAttempt","requestBundleId","cohort","getCohort","error","fingerprintHash","getFingerprintHash","resolver","checkUpdate","appVersion","bundleId","updateStrategy","requestHeaders","requestTimeout","updateBundle","resetChannel","runtimeChannel","fileHash","shouldSkipCurrentBundleIdCheck"],"sourceRoot":"../../src","sources":["checkForUpdate.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAcA,MAAMG,QAAQ,GAAG,sCAAsC;;AAkCvD;;AAKA,MAAMC,wBAAwB,GAAIC,UAAyB,IAAc;EACvE,OACEA,UAAU,CAACC,MAAM,KAAK,UAAU,IAChCD,UAAU,CAACE,EAAE,KAAKJ,QAAQ,IAC1BE,UAAU,CAACG,OAAO,KAAK,IAAI;AAE/B,CAAC;AAEM,eAAeC,cAAcA,CAClCC,OAAsC,EACA;EACtC,IAAIC,OAAO,EAAE;IACX,OAAO,IAAI;EACb;EAEA,IAAI,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAACC,QAAQ,CAACC,qBAAQ,CAACC,EAAE,CAAC,EAAE;IAC7CJ,OAAO,CAACK,OAAO,GACb,IAAIC,sBAAe,CAAC,iDAAiD,CACvE,CAAC;IACD,OAAO,IAAI;EACb;EAEA,MAAMC,iBAAiB,GAAG,IAAAC,qBAAa,EAAC,CAAC;EACzC,MAAMC,QAAQ,GAAGN,qBAAQ,CAACC,EAAuB;EACjD,MAAMM,eAAe,GAAG,IAAAC,mBAAW,EAAC,CAAC;EACrC,MAAMC,WAAW,GAAG,IAAAC,sBAAc,EAAC,CAAC;EACpC,MAAMC,cAAc,GAAG,IAAAC,yBAAiB,EAAC,CAAC;EAC1C,MAAMC,UAAU,GAAG,IAAAC,yBAAiB,EAAC,CAAC;EACtC,MAAMC,cAAc,GAAGF,UAAU,GAAG,IAAAG,kBAAU,EAAC,CAAC,GAAGL,cAAc;EACjE,MAAMM,eAAe,GAAGpB,OAAO,CAACqB,OAAO,IAAIC,SAAS;EACpD,MAAMC,aAAa,GAAGH,eAAe,IAAIF,cAAc;EACvD,MAAMM,kCAAkC,GACtC,CAACR,UAAU,IACXI,eAAe,KAAKE,SAAS,IAC7BF,eAAe,KAAKN,cAAc;EACpC,MAAMW,eAAe,GAAGD,kCAAkC,GACtDZ,WAAW,GACXF,eAAe;EAEnB,MAAMgB,MAAM,GAAG,IAAAC,iBAAS,EAAC,CAAC;EAE1B,IAAI,CAACpB,iBAAiB,EAAE;IACtBP,OAAO,CAACK,OAAO,GAAG,IAAIC,sBAAe,CAAC,2BAA2B,CAAC,CAAC;IACnE,OAAO,IAAI;EACb;EAEA,IAAIU,UAAU,IAAII,eAAe,IAAIA,eAAe,KAAKF,cAAc,EAAE;IACvE,MAAMU,KAAK,GAAG,IAAItB,sBAAe,CAC/B,2CAA2CY,cAAc,sDAAsDE,eAAe,IAChI,CAAC;IACDpB,OAAO,CAACK,OAAO,GAAGuB,KAAK,CAAC;IACxB,MAAMA,KAAK;EACb;EAEA,MAAMC,eAAe,GAAG,IAAAC,0BAAkB,EAAC,CAAC;EAE5C,IAAI,CAAC9B,OAAO,CAAC+B,QAAQ,EAAEC,WAAW,EAAE;IAClChC,OAAO,CAACK,OAAO,GACb,IAAIC,sBAAe,CAAC,yCAAyC,CAC/D,CAAC;IACD,OAAO,IAAI;EACb;EAEA,IAAIX,UAAgC,GAAG,IAAI;EAE3C,IAAI;IACFA,UAAU,GAAG,MAAMK,OAAO,CAAC+B,QAAQ,CAACC,WAAW,CAAC;MAC9CvB,QAAQ;MACRwB,UAAU,EAAE1B,iBAAiB;MAC7B2B,QAAQ,EAAET,eAAe;MACzBb,WAAW;MACXc,MAAM;MACNL,OAAO,EAAEE,aAAa;MACtBY,cAAc,EAAEnC,OAAO,CAACmC,cAAc;MACtCN,eAAe;MACfO,cAAc,EAAEpC,OAAO,CAACoC,cAAc;MACtCC,cAAc,EAAErC,OAAO,CAACqC;IAC1B,CAAC,CAAC;EACJ,CAAC,CAAC,OAAOT,KAAK,EAAE;IACd5B,OAAO,CAACK,OAAO,GAAGuB,KAAc,CAAC;IACjC,OAAO,IAAI;EACb;EAEA,IAAI,CAACjC,UAAU,EAAE;IACf,OAAO,IAAI;EACb;EAEA,IACEyB,eAAe,IACfA,eAAe,KAAKN,cAAc,IAClC,CAACE,UAAU,IACXrB,UAAU,CAACC,MAAM,KAAK,UAAU,EAChC;IACA,OAAO,IAAI;EACb;EAEA,OAAO;IACL,GAAGD,UAAU;IACb2C,YAAY,EAAE,MAAAA,CAAA,KAAY;MACxB,IACElB,eAAe,IACfJ,UAAU,IACVtB,wBAAwB,CAACC,UAAU,CAAC,EACpC;QACA,OAAO,IAAA4C,oBAAY,EAAC,CAAC;MACvB;MAEA,MAAMC,cAAc,GAClB7C,UAAU,CAACG,OAAO,KAAK,IAAI,GAAGyB,aAAa,GAAGD,SAAS;MAEzD,OAAO,IAAAgB,oBAAY,EAAC;QAClBJ,QAAQ,EAAEvC,UAAU,CAACE,EAAE;QACvBwB,OAAO,EAAEmB,cAAc;QACvB1C,OAAO,EAAEH,UAAU,CAACG,OAAO;QAC3B2C,QAAQ,EAAE9C,UAAU,CAAC8C,QAAQ;QAC7B7C,MAAM,EAAED,UAAU,CAACC,MAAM;QACzB8C,8BAA8B,EAAElB;MAClC,CAAC,CAAC;IACJ;EACF,CAAC;AACH","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -169,6 +169,10 @@ function createHotUpdaterClient() {
|
|
|
169
169
|
* Retrieves the initial bundle ID based on the build time of the native app.
|
|
170
170
|
*/
|
|
171
171
|
getMinBundleId: _native.getMinBundleId,
|
|
172
|
+
/**
|
|
173
|
+
* Fetches the current manifest for the active bundle.
|
|
174
|
+
*/
|
|
175
|
+
getManifest: _native.getManifest,
|
|
172
176
|
/**
|
|
173
177
|
* Fetches the current channel of the app.
|
|
174
178
|
*
|
|
@@ -202,6 +206,15 @@ function createHotUpdaterClient() {
|
|
|
202
206
|
* @returns {boolean} true when a non-default channel has been applied
|
|
203
207
|
*/
|
|
204
208
|
isChannelSwitched: _native.isChannelSwitched,
|
|
209
|
+
/**
|
|
210
|
+
* Sets the persisted cohort used for rollout calculations.
|
|
211
|
+
* Call `getCohort()` first if you need to restore the initial value later.
|
|
212
|
+
*/
|
|
213
|
+
setCohort: _native.setCohort,
|
|
214
|
+
/**
|
|
215
|
+
* Gets the persisted cohort used for rollout calculations.
|
|
216
|
+
*/
|
|
217
|
+
getCohort: _native.getCohort,
|
|
205
218
|
/**
|
|
206
219
|
* Adds a listener to HotUpdater events.
|
|
207
220
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_checkForUpdate","require","_DefaultResolver","_native","_store","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_wrap","_types","registerGlobalGetBaseURL","fn","getBaseURL","globalThis","HotUpdaterGetBaseURL","global","createHotUpdaterClient","globalConfig","resolver","ensureGlobalResolver","methodName","Error","wrap","options","normalizedOptions","baseURL","rest","createDefaultResolver","requestHeaders","requestTimeout","reload","setReloadBehavior","isUpdateDownloaded","hotUpdaterStore","getSnapshot","getAppVersion","getBundleId","getMinBundleId","getChannel","getDefaultChannel","isChannelSwitched","addListener","checkForUpdate","config","mergedConfig","updateBundle","params","resetChannel","ok","setState","progress","getFingerprintHash","getCrashHistory","clearCrashHistory","HotUpdater"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AAKA,IAAAC,gBAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;
|
|
1
|
+
{"version":3,"names":["_checkForUpdate","require","_DefaultResolver","_native","_store","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_wrap","_types","registerGlobalGetBaseURL","fn","getBaseURL","globalThis","HotUpdaterGetBaseURL","global","createHotUpdaterClient","globalConfig","resolver","ensureGlobalResolver","methodName","Error","wrap","options","normalizedOptions","baseURL","rest","createDefaultResolver","requestHeaders","requestTimeout","reload","setReloadBehavior","isUpdateDownloaded","hotUpdaterStore","getSnapshot","getAppVersion","getBundleId","getMinBundleId","getManifest","getChannel","getDefaultChannel","isChannelSwitched","setCohort","getCohort","addListener","checkForUpdate","config","mergedConfig","updateBundle","params","resetChannel","ok","setState","progress","getFingerprintHash","getCrashHistory","clearCrashHistory","HotUpdater"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,kBAAkB,EAAEA,CAAA,KAAMC,sBAAe,CAACC,WAAW,CAAC,CAAC,CAACF,kBAAkB;IAE1E;AACJ;AACA;IACIG,aAAa,EAAbA,qBAAa;IAEb;AACJ;AACA;IACIC,WAAW,EAAXA,mBAAW;IAEX;AACJ;AACA;IACIC,cAAc,EAAdA,sBAAc;IAEd;AACJ;AACA;IACIC,WAAW,EAAXA,mBAAW;IAEX;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,UAAU,EAAVA,kBAAU;IAEV;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,iBAAiB,EAAjBA,yBAAiB;IAEjB;AACJ;AACA;AACA;AACA;IACIC,iBAAiB,EAAjBA,yBAAiB;IAEjB;AACJ;AACA;AACA;IACIC,SAAS,EAATA,iBAAS;IAET;AACJ;AACA;IACIC,SAAS,EAATA,iBAAS;IAET;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,WAAW,EAAXA,mBAAW;IAEX;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,cAAc,EAAGC,MAA6B,IAAK;MACjD,MAAM5B,QAAQ,GAAGC,oBAAoB,CAAC,gBAAgB,CAAC;MAEvD,MAAM4B,YAA2C,GAAG;QAClD,GAAGD,MAAM;QACT5B,QAAQ;QACRU,cAAc,EAAE;UACd,GAAGX,YAAY,CAACW,cAAc;UAC9B,GAAGkB,MAAM,CAAClB;QACZ,CAAC;QACDC,cAAc,EAAEiB,MAAM,CAACjB,cAAc,IAAIZ,YAAY,CAACY;MACxD,CAAC;MAED,OAAO,IAAAgB,8BAAc,EAACE,YAAY,CAAC;IACrC,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,YAAY,EAAGC,MAAoB,IAAK;MACtC9B,oBAAoB,CAAC,cAAc,CAAC;MACpC,OAAO,IAAA6B,oBAAY,EAACC,MAAM,CAAC;IAC7B,CAAC;IAED;AACJ;AACA;AACA;AACA;IACIC,YAAY,EAAE,MAAAA,CAAA,KAAY;MACxB,MAAMC,EAAE,GAAG,MAAM,IAAAD,oBAAY,EAAC,CAAC;MAC/B,IAAIC,EAAE,EAAE;QACNlB,sBAAe,CAACmB,QAAQ,CAAC;UACvBpB,kBAAkB,EAAE,KAAK;UACzBqB,QAAQ,EAAE;QACZ,CAAC,CAAC;MACJ;MACA,OAAOF,EAAE;IACX,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIG,kBAAkB,EAAlBA,0BAAkB;IAElB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,eAAe,EAAfA,uBAAe;IAEf;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,iBAAiB,EAAjBA;EACF,CAAC;AACH;AAEO,MAAMC,UAAU,GAAArD,OAAA,CAAAqD,UAAA,GAAGzC,sBAAsB,CAAC,CAAC","ignoreList":[]}
|
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
|
};
|
|
@@ -308,14 +401,16 @@ exports.getFingerprintHash = getFingerprintHash;
|
|
|
308
401
|
* const result = HotUpdater.notifyAppReady();
|
|
309
402
|
*
|
|
310
403
|
* if (result.status === "RECOVERED") {
|
|
311
|
-
*
|
|
312
|
-
*
|
|
404
|
+
* // Send ROLLBACK analytics event
|
|
405
|
+
* analytics.track("bundle_rollback", {
|
|
406
|
+
* crashedBundleId: result.crashedBundleId,
|
|
407
|
+
* });
|
|
313
408
|
* }
|
|
314
409
|
* ```
|
|
315
410
|
*/
|
|
316
411
|
const notifyAppReady = () => {
|
|
317
412
|
const result = _NativeHotUpdater.default.notifyAppReady();
|
|
318
|
-
//
|
|
413
|
+
// Older Android old-arch implementations returned JSON strings.
|
|
319
414
|
if (typeof result === "string") {
|
|
320
415
|
try {
|
|
321
416
|
return normalizeNotifyAppReadyResult(JSON.parse(result));
|
|
@@ -339,6 +434,53 @@ const normalizeNotifyAppReadyResult = result => {
|
|
|
339
434
|
status: "STABLE"
|
|
340
435
|
};
|
|
341
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
|
+
}));
|
|
483
|
+
};
|
|
342
484
|
|
|
343
485
|
/**
|
|
344
486
|
* Gets the list of bundle IDs that have been marked as crashed.
|
|
@@ -348,7 +490,7 @@ const normalizeNotifyAppReadyResult = result => {
|
|
|
348
490
|
*/
|
|
349
491
|
const getCrashHistory = () => {
|
|
350
492
|
const result = _NativeHotUpdater.default.getCrashHistory();
|
|
351
|
-
//
|
|
493
|
+
// Older Android old-arch implementations returned JSON strings.
|
|
352
494
|
if (typeof result === "string") {
|
|
353
495
|
try {
|
|
354
496
|
return JSON.parse(result);
|
|
@@ -379,11 +521,14 @@ const clearCrashHistory = () => {
|
|
|
379
521
|
*/
|
|
380
522
|
exports.clearCrashHistory = clearCrashHistory;
|
|
381
523
|
const getBaseURL = () => {
|
|
382
|
-
const
|
|
383
|
-
if (
|
|
384
|
-
return
|
|
524
|
+
const cachedBaseURL = sessionState.getCachedBaseURL();
|
|
525
|
+
if (cachedBaseURL !== undefined) {
|
|
526
|
+
return cachedBaseURL;
|
|
385
527
|
}
|
|
386
|
-
|
|
528
|
+
const result = _NativeHotUpdater.default.getBaseURL();
|
|
529
|
+
const baseURL = typeof result === "string" && result !== "" ? result : null;
|
|
530
|
+
sessionState.cacheBaseURL(baseURL);
|
|
531
|
+
return baseURL;
|
|
387
532
|
};
|
|
388
533
|
|
|
389
534
|
/**
|
|
@@ -400,5 +545,35 @@ const resetChannel = async () => {
|
|
|
400
545
|
}
|
|
401
546
|
return ok;
|
|
402
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
|
+
*/
|
|
403
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;
|
|
404
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","normalizeNotifyAppReadyResult","JSON","parse","crashedBundleId","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":[]}
|