@hot-updater/react-native 0.24.7 → 0.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/src/main/java/com/hotupdater/BundleFileStorageService.kt +43 -2
- package/android/src/main/java/com/hotupdater/BundleMetadata.kt +27 -2
- package/android/src/main/java/com/hotupdater/HotUpdaterImpl.kt +10 -0
- package/android/src/newarch/HotUpdaterModule.kt +5 -0
- package/android/src/oldarch/HotUpdaterModule.kt +6 -0
- package/android/src/oldarch/HotUpdaterSpec.kt +2 -0
- package/ios/HotUpdater/Internal/BundleFileStorageService.swift +64 -3
- package/ios/HotUpdater/Internal/BundleMetadata.swift +17 -1
- package/ios/HotUpdater/Internal/HotUpdater.mm +14 -0
- package/ios/HotUpdater/Internal/HotUpdaterImpl.swift +13 -1
- package/lib/commonjs/global.d.js +6 -0
- package/lib/commonjs/global.d.js.map +1 -0
- package/lib/commonjs/index.js +25 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/native.js +17 -1
- package/lib/commonjs/native.js.map +1 -1
- package/lib/commonjs/specs/NativeHotUpdater.js.map +1 -1
- package/lib/commonjs/wrap.js +1 -2
- package/lib/commonjs/wrap.js.map +1 -1
- package/lib/module/global.d.js +8 -0
- package/lib/module/global.d.js.map +1 -0
- package/lib/module/index.js +26 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/native.js +15 -0
- package/lib/module/native.js.map +1 -1
- package/lib/module/specs/NativeHotUpdater.js.map +1 -1
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/native.d.ts +8 -0
- package/lib/typescript/commonjs/native.d.ts.map +1 -1
- package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts +8 -0
- package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/native.d.ts +8 -0
- package/lib/typescript/module/native.d.ts.map +1 -1
- package/lib/typescript/module/specs/NativeHotUpdater.d.ts +8 -0
- package/lib/typescript/module/specs/NativeHotUpdater.d.ts.map +1 -1
- package/package.json +7 -7
- package/src/global.d.ts +23 -0
- package/src/index.ts +26 -0
- package/src/native.ts +15 -0
- package/src/specs/NativeHotUpdater.ts +9 -0
|
@@ -70,6 +70,12 @@ interface BundleStorageService {
|
|
|
70
70
|
* @return true if clearing was successful
|
|
71
71
|
*/
|
|
72
72
|
fun clearCrashHistory(): Boolean
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Gets the base URL for the current active bundle directory
|
|
76
|
+
* @return Base URL string (e.g., "file:///data/.../bundle-store/abc123") or empty string
|
|
77
|
+
*/
|
|
78
|
+
fun getBaseURL(): String
|
|
73
79
|
}
|
|
74
80
|
|
|
75
81
|
/**
|
|
@@ -81,6 +87,7 @@ class BundleFileStorageService(
|
|
|
81
87
|
private val downloadService: DownloadService,
|
|
82
88
|
private val decompressService: DecompressService,
|
|
83
89
|
private val preferences: PreferencesService,
|
|
90
|
+
private val isolationKey: String,
|
|
84
91
|
) : BundleStorageService {
|
|
85
92
|
companion object {
|
|
86
93
|
private const val TAG = "BundleStorage"
|
|
@@ -102,9 +109,12 @@ class BundleFileStorageService(
|
|
|
102
109
|
|
|
103
110
|
// MARK: - Metadata Operations
|
|
104
111
|
|
|
105
|
-
private fun loadMetadataOrNull(): BundleMetadata? = BundleMetadata.loadFromFile(getMetadataFile())
|
|
112
|
+
private fun loadMetadataOrNull(): BundleMetadata? = BundleMetadata.loadFromFile(getMetadataFile(), isolationKey)
|
|
106
113
|
|
|
107
|
-
private fun saveMetadata(metadata: BundleMetadata): Boolean
|
|
114
|
+
private fun saveMetadata(metadata: BundleMetadata): Boolean {
|
|
115
|
+
val updatedMetadata = metadata.copy(isolationKey = isolationKey)
|
|
116
|
+
return updatedMetadata.saveToFile(getMetadataFile())
|
|
117
|
+
}
|
|
108
118
|
|
|
109
119
|
private fun createInitialMetadata(): BundleMetadata {
|
|
110
120
|
val currentBundleId = extractBundleIdFromCurrentURL()
|
|
@@ -705,4 +715,35 @@ class BundleFileStorageService(
|
|
|
705
715
|
Log.e(TAG, "Error during cleanup: ${e.message}")
|
|
706
716
|
}
|
|
707
717
|
}
|
|
718
|
+
|
|
719
|
+
/**
|
|
720
|
+
* Gets the base URL for the current active bundle directory.
|
|
721
|
+
* Returns the file:// URL to the bundle directory without trailing slash.
|
|
722
|
+
* This is used for Expo DOM components to construct full asset paths.
|
|
723
|
+
* @return Base URL string (e.g., "file:///data/.../bundle-store/abc123") or empty string
|
|
724
|
+
*/
|
|
725
|
+
override fun getBaseURL(): String {
|
|
726
|
+
return try {
|
|
727
|
+
val metadata = loadMetadataOrNull()
|
|
728
|
+
val activeBundleId =
|
|
729
|
+
when {
|
|
730
|
+
metadata?.verificationPending == true && metadata.stagingBundleId != null ->
|
|
731
|
+
metadata.stagingBundleId
|
|
732
|
+
metadata?.stableBundleId != null -> metadata.stableBundleId
|
|
733
|
+
else -> extractBundleIdFromCurrentURL()
|
|
734
|
+
}
|
|
735
|
+
|
|
736
|
+
if (activeBundleId != null) {
|
|
737
|
+
val bundleDir = File(getBundleStoreDir(), activeBundleId)
|
|
738
|
+
if (bundleDir.exists()) {
|
|
739
|
+
return "file://${bundleDir.absolutePath}"
|
|
740
|
+
}
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
""
|
|
744
|
+
} catch (e: Exception) {
|
|
745
|
+
Log.e(TAG, "Error getting base URL: ${e.message}")
|
|
746
|
+
""
|
|
747
|
+
}
|
|
748
|
+
}
|
|
708
749
|
}
|
|
@@ -10,6 +10,7 @@ import java.io.File
|
|
|
10
10
|
*/
|
|
11
11
|
data class BundleMetadata(
|
|
12
12
|
val schema: String = SCHEMA_VERSION,
|
|
13
|
+
val isolationKey: String? = null,
|
|
13
14
|
val stableBundleId: String? = null,
|
|
14
15
|
val stagingBundleId: String? = null,
|
|
15
16
|
val verificationPending: Boolean = false,
|
|
@@ -25,6 +26,12 @@ data class BundleMetadata(
|
|
|
25
26
|
fun fromJson(json: JSONObject): BundleMetadata =
|
|
26
27
|
BundleMetadata(
|
|
27
28
|
schema = json.optString("schema", SCHEMA_VERSION),
|
|
29
|
+
isolationKey =
|
|
30
|
+
if (json.has("isolationKey") && !json.isNull("isolationKey")) {
|
|
31
|
+
json.getString("isolationKey").takeIf { it.isNotEmpty() }
|
|
32
|
+
} else {
|
|
33
|
+
null
|
|
34
|
+
},
|
|
28
35
|
stableBundleId =
|
|
29
36
|
if (json.has("stableBundleId") && !json.isNull("stableBundleId")) {
|
|
30
37
|
json.getString("stableBundleId").takeIf { it.isNotEmpty() }
|
|
@@ -53,7 +60,10 @@ data class BundleMetadata(
|
|
|
53
60
|
updatedAt = json.optLong("updatedAt", System.currentTimeMillis()),
|
|
54
61
|
)
|
|
55
62
|
|
|
56
|
-
fun loadFromFile(
|
|
63
|
+
fun loadFromFile(
|
|
64
|
+
file: File,
|
|
65
|
+
expectedIsolationKey: String,
|
|
66
|
+
): BundleMetadata? {
|
|
57
67
|
return try {
|
|
58
68
|
if (!file.exists()) {
|
|
59
69
|
Log.d(TAG, "Metadata file does not exist: ${file.absolutePath}")
|
|
@@ -61,7 +71,21 @@ data class BundleMetadata(
|
|
|
61
71
|
}
|
|
62
72
|
val jsonString = file.readText()
|
|
63
73
|
val json = JSONObject(jsonString)
|
|
64
|
-
fromJson(json)
|
|
74
|
+
val metadata = fromJson(json)
|
|
75
|
+
|
|
76
|
+
// Validate isolation key
|
|
77
|
+
val metadataKey = metadata.isolationKey
|
|
78
|
+
if (metadataKey != null) {
|
|
79
|
+
if (metadataKey != expectedIsolationKey) {
|
|
80
|
+
Log.d(TAG, "Isolation key mismatch: expected=$expectedIsolationKey, got=$metadataKey")
|
|
81
|
+
return null
|
|
82
|
+
}
|
|
83
|
+
} else {
|
|
84
|
+
Log.d(TAG, "Missing isolation key in metadata, treating as invalid")
|
|
85
|
+
return null
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
metadata
|
|
65
89
|
} catch (e: Exception) {
|
|
66
90
|
Log.e(TAG, "Failed to load metadata from file", e)
|
|
67
91
|
null
|
|
@@ -72,6 +96,7 @@ data class BundleMetadata(
|
|
|
72
96
|
fun toJson(): JSONObject =
|
|
73
97
|
JSONObject().apply {
|
|
74
98
|
put("schema", schema)
|
|
99
|
+
put("isolationKey", isolationKey ?: JSONObject.NULL)
|
|
75
100
|
put("stableBundleId", stableBundleId ?: JSONObject.NULL)
|
|
76
101
|
put("stagingBundleId", stagingBundleId ?: JSONObject.NULL)
|
|
77
102
|
put("verificationPending", verificationPending)
|
|
@@ -72,6 +72,7 @@ class HotUpdaterImpl {
|
|
|
72
72
|
val preferences = createPreferences(appContext)
|
|
73
73
|
val downloadService = OkHttpDownloadService()
|
|
74
74
|
val decompressService = DecompressService()
|
|
75
|
+
val isolationKey = getIsolationKey(appContext)
|
|
75
76
|
|
|
76
77
|
return BundleFileStorageService(
|
|
77
78
|
appContext,
|
|
@@ -79,6 +80,7 @@ class HotUpdaterImpl {
|
|
|
79
80
|
downloadService,
|
|
80
81
|
decompressService,
|
|
81
82
|
preferences,
|
|
83
|
+
isolationKey,
|
|
82
84
|
)
|
|
83
85
|
}
|
|
84
86
|
|
|
@@ -290,4 +292,12 @@ class HotUpdaterImpl {
|
|
|
290
292
|
* @return true if clearing was successful
|
|
291
293
|
*/
|
|
292
294
|
fun clearCrashHistory(): Boolean = bundleStorage.clearCrashHistory()
|
|
295
|
+
|
|
296
|
+
/**
|
|
297
|
+
* Gets the base URL for the current active bundle directory.
|
|
298
|
+
* Returns the file:// URL to the bundle directory with trailing slash.
|
|
299
|
+
* This is used for Expo DOM components to construct full asset paths.
|
|
300
|
+
* @return Base URL string (e.g., "file:///data/.../bundle-store/abc123/") or empty string
|
|
301
|
+
*/
|
|
302
|
+
fun getBaseURL(): String = bundleStorage.getBaseURL()
|
|
293
303
|
}
|
|
@@ -162,6 +162,11 @@ class HotUpdaterModule internal constructor(
|
|
|
162
162
|
return impl.clearCrashHistory()
|
|
163
163
|
}
|
|
164
164
|
|
|
165
|
+
override fun getBaseURL(): String {
|
|
166
|
+
val impl = getInstance()
|
|
167
|
+
return impl.getBaseURL()
|
|
168
|
+
}
|
|
169
|
+
|
|
165
170
|
companion object {
|
|
166
171
|
const val NAME = "HotUpdater"
|
|
167
172
|
}
|
|
@@ -170,6 +170,12 @@ class HotUpdaterModule internal constructor(
|
|
|
170
170
|
return impl.clearCrashHistory()
|
|
171
171
|
}
|
|
172
172
|
|
|
173
|
+
@ReactMethod(isBlockingSynchronousMethod = true)
|
|
174
|
+
override fun getBaseURL(): String {
|
|
175
|
+
val impl = getInstance()
|
|
176
|
+
return impl.getBaseURL()
|
|
177
|
+
}
|
|
178
|
+
|
|
173
179
|
companion object {
|
|
174
180
|
const val NAME = "HotUpdater"
|
|
175
181
|
}
|
|
@@ -112,6 +112,12 @@ public protocol BundleStorageService {
|
|
|
112
112
|
func notifyAppReady(bundleId: String) -> [String: Any]
|
|
113
113
|
func getCrashHistory() -> CrashedHistory
|
|
114
114
|
func clearCrashHistory() -> Bool
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Gets the base URL for the current active bundle directory
|
|
118
|
+
* @return Base URL string (e.g., "file:///data/.../bundle-store/abc123") or empty string
|
|
119
|
+
*/
|
|
120
|
+
func getBaseURL() -> String
|
|
115
121
|
}
|
|
116
122
|
|
|
117
123
|
class BundleFileStorageService: BundleStorageService {
|
|
@@ -119,6 +125,7 @@ class BundleFileStorageService: BundleStorageService {
|
|
|
119
125
|
private let downloadService: DownloadService
|
|
120
126
|
private let decompressService: DecompressService
|
|
121
127
|
private let preferences: PreferencesService
|
|
128
|
+
private let isolationKey: String
|
|
122
129
|
|
|
123
130
|
private let id = Int.random(in: 1..<100)
|
|
124
131
|
|
|
@@ -133,12 +140,14 @@ class BundleFileStorageService: BundleStorageService {
|
|
|
133
140
|
public init(fileSystem: FileSystemService,
|
|
134
141
|
downloadService: DownloadService,
|
|
135
142
|
decompressService: DecompressService,
|
|
136
|
-
preferences: PreferencesService
|
|
143
|
+
preferences: PreferencesService,
|
|
144
|
+
isolationKey: String) {
|
|
137
145
|
|
|
138
146
|
self.fileSystem = fileSystem
|
|
139
147
|
self.downloadService = downloadService
|
|
140
148
|
self.decompressService = decompressService
|
|
141
149
|
self.preferences = preferences
|
|
150
|
+
self.isolationKey = isolationKey
|
|
142
151
|
|
|
143
152
|
// Create queue for file operations
|
|
144
153
|
self.fileOperationQueue = DispatchQueue(label: "com.hotupdater.fileoperations",
|
|
@@ -168,14 +177,16 @@ class BundleFileStorageService: BundleStorageService {
|
|
|
168
177
|
guard let file = metadataFileURL() else {
|
|
169
178
|
return nil
|
|
170
179
|
}
|
|
171
|
-
return BundleMetadata.load(from: file)
|
|
180
|
+
return BundleMetadata.load(from: file, expectedIsolationKey: isolationKey)
|
|
172
181
|
}
|
|
173
182
|
|
|
174
183
|
private func saveMetadata(_ metadata: BundleMetadata) -> Bool {
|
|
175
184
|
guard let file = metadataFileURL() else {
|
|
176
185
|
return false
|
|
177
186
|
}
|
|
178
|
-
|
|
187
|
+
var updatedMetadata = metadata
|
|
188
|
+
updatedMetadata.isolationKey = isolationKey
|
|
189
|
+
return updatedMetadata.save(to: file)
|
|
179
190
|
}
|
|
180
191
|
|
|
181
192
|
// MARK: - Crashed History Operations
|
|
@@ -1090,6 +1101,56 @@ class BundleFileStorageService: BundleStorageService {
|
|
|
1090
1101
|
history.clear()
|
|
1091
1102
|
return saveCrashedHistory(history)
|
|
1092
1103
|
}
|
|
1104
|
+
|
|
1105
|
+
/**
|
|
1106
|
+
* Gets the base URL for the current active bundle directory
|
|
1107
|
+
* Returns the file:// URL to the bundle directory without trailing slash
|
|
1108
|
+
*/
|
|
1109
|
+
func getBaseURL() -> String {
|
|
1110
|
+
do {
|
|
1111
|
+
let metadata = loadMetadataOrNull()
|
|
1112
|
+
let activeBundleId: String?
|
|
1113
|
+
|
|
1114
|
+
// Prefer staging bundle if verification is pending
|
|
1115
|
+
if let meta = metadata, meta.verificationPending, let staging = meta.stagingBundleId {
|
|
1116
|
+
activeBundleId = staging
|
|
1117
|
+
} else if let stable = metadata?.stableBundleId {
|
|
1118
|
+
activeBundleId = stable
|
|
1119
|
+
} else {
|
|
1120
|
+
// Fall back to current bundle ID from preferences
|
|
1121
|
+
if let savedURL = try preferences.getItem(forKey: "HotUpdaterBundleURL") {
|
|
1122
|
+
// Extract bundle ID from path like "bundle-store/abc123/index.ios.bundle"
|
|
1123
|
+
if let range = savedURL.range(of: "bundle-store/([^/]+)/", options: .regularExpression) {
|
|
1124
|
+
let match = savedURL[range]
|
|
1125
|
+
let components = match.split(separator: "/")
|
|
1126
|
+
if components.count >= 2 {
|
|
1127
|
+
activeBundleId = String(components[1])
|
|
1128
|
+
} else {
|
|
1129
|
+
activeBundleId = nil
|
|
1130
|
+
}
|
|
1131
|
+
} else {
|
|
1132
|
+
activeBundleId = nil
|
|
1133
|
+
}
|
|
1134
|
+
} else {
|
|
1135
|
+
activeBundleId = nil
|
|
1136
|
+
}
|
|
1137
|
+
}
|
|
1138
|
+
|
|
1139
|
+
if let bundleId = activeBundleId {
|
|
1140
|
+
if case .success(let storeDir) = bundleStoreDir() {
|
|
1141
|
+
let bundleDir = (storeDir as NSString).appendingPathComponent(bundleId)
|
|
1142
|
+
if fileSystem.fileExists(atPath: bundleDir) {
|
|
1143
|
+
return "file://\(bundleDir)"
|
|
1144
|
+
}
|
|
1145
|
+
}
|
|
1146
|
+
}
|
|
1147
|
+
|
|
1148
|
+
return ""
|
|
1149
|
+
} catch {
|
|
1150
|
+
NSLog("[BundleStorage] Error getting base URL: \(error)")
|
|
1151
|
+
return ""
|
|
1152
|
+
}
|
|
1153
|
+
}
|
|
1093
1154
|
}
|
|
1094
1155
|
|
|
1095
1156
|
// Helper to get the associated error from a Result, if it's a failure
|
|
@@ -8,6 +8,7 @@ public struct BundleMetadata: Codable {
|
|
|
8
8
|
static let metadataFilename = "metadata.json"
|
|
9
9
|
|
|
10
10
|
let schema: String
|
|
11
|
+
var isolationKey: String?
|
|
11
12
|
var stableBundleId: String?
|
|
12
13
|
var stagingBundleId: String?
|
|
13
14
|
var verificationPending: Bool
|
|
@@ -17,6 +18,7 @@ public struct BundleMetadata: Codable {
|
|
|
17
18
|
|
|
18
19
|
enum CodingKeys: String, CodingKey {
|
|
19
20
|
case schema
|
|
21
|
+
case isolationKey = "isolation_key"
|
|
20
22
|
case stableBundleId = "stable_bundle_id"
|
|
21
23
|
case stagingBundleId = "staging_bundle_id"
|
|
22
24
|
case verificationPending = "verification_pending"
|
|
@@ -27,6 +29,7 @@ public struct BundleMetadata: Codable {
|
|
|
27
29
|
|
|
28
30
|
init(
|
|
29
31
|
schema: String = BundleMetadata.schemaVersion,
|
|
32
|
+
isolationKey: String? = nil,
|
|
30
33
|
stableBundleId: String? = nil,
|
|
31
34
|
stagingBundleId: String? = nil,
|
|
32
35
|
verificationPending: Bool = false,
|
|
@@ -35,6 +38,7 @@ public struct BundleMetadata: Codable {
|
|
|
35
38
|
updatedAt: Double = Date().timeIntervalSince1970 * 1000
|
|
36
39
|
) {
|
|
37
40
|
self.schema = schema
|
|
41
|
+
self.isolationKey = isolationKey
|
|
38
42
|
self.stableBundleId = stableBundleId
|
|
39
43
|
self.stagingBundleId = stagingBundleId
|
|
40
44
|
self.verificationPending = verificationPending
|
|
@@ -43,7 +47,7 @@ public struct BundleMetadata: Codable {
|
|
|
43
47
|
self.updatedAt = updatedAt
|
|
44
48
|
}
|
|
45
49
|
|
|
46
|
-
static func load(from file: URL) -> BundleMetadata? {
|
|
50
|
+
static func load(from file: URL, expectedIsolationKey: String) -> BundleMetadata? {
|
|
47
51
|
guard FileManager.default.fileExists(atPath: file.path) else {
|
|
48
52
|
print("[BundleMetadata] Metadata file does not exist: \(file.path)")
|
|
49
53
|
return nil
|
|
@@ -53,6 +57,18 @@ public struct BundleMetadata: Codable {
|
|
|
53
57
|
let data = try Data(contentsOf: file)
|
|
54
58
|
let decoder = JSONDecoder()
|
|
55
59
|
let metadata = try decoder.decode(BundleMetadata.self, from: data)
|
|
60
|
+
|
|
61
|
+
// Validate isolation key
|
|
62
|
+
if let metadataKey = metadata.isolationKey {
|
|
63
|
+
if metadataKey != expectedIsolationKey {
|
|
64
|
+
print("[BundleMetadata] Isolation key mismatch: expected=\(expectedIsolationKey), got=\(metadataKey)")
|
|
65
|
+
return nil
|
|
66
|
+
}
|
|
67
|
+
} else {
|
|
68
|
+
print("[BundleMetadata] Missing isolation key in metadata, treating as invalid")
|
|
69
|
+
return nil
|
|
70
|
+
}
|
|
71
|
+
|
|
56
72
|
return metadata
|
|
57
73
|
} catch {
|
|
58
74
|
print("[BundleMetadata] Failed to load metadata from file: \(error)")
|
|
@@ -313,6 +313,13 @@ RCT_EXPORT_MODULE();
|
|
|
313
313
|
return @(result);
|
|
314
314
|
}
|
|
315
315
|
|
|
316
|
+
- (NSString *)getBaseURL {
|
|
317
|
+
NSLog(@"[HotUpdater.mm] getBaseURL called");
|
|
318
|
+
HotUpdaterImpl *impl = [HotUpdater sharedImpl];
|
|
319
|
+
NSString *baseURL = [impl getBaseURL];
|
|
320
|
+
return baseURL ?: @"";
|
|
321
|
+
}
|
|
322
|
+
|
|
316
323
|
- (void)addListener:(NSString *)eventName {
|
|
317
324
|
// No-op for New Architecture - handled by event emitter
|
|
318
325
|
}
|
|
@@ -390,6 +397,13 @@ RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(clearCrashHistory) {
|
|
|
390
397
|
return @(result);
|
|
391
398
|
}
|
|
392
399
|
|
|
400
|
+
RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(getBaseURL) {
|
|
401
|
+
NSLog(@"[HotUpdater.mm] getBaseURL called");
|
|
402
|
+
HotUpdaterImpl *impl = [HotUpdater sharedImpl];
|
|
403
|
+
NSString *baseURL = [impl getBaseURL];
|
|
404
|
+
return baseURL ?: @"";
|
|
405
|
+
}
|
|
406
|
+
|
|
393
407
|
- (NSDictionary *)constantsToExport {
|
|
394
408
|
return [self _buildConstantsDictionary];
|
|
395
409
|
}
|
|
@@ -14,6 +14,7 @@ import React
|
|
|
14
14
|
*/
|
|
15
15
|
public convenience override init() {
|
|
16
16
|
let fileSystem = FileManagerService()
|
|
17
|
+
let isolationKey = HotUpdaterImpl.getIsolationKey()
|
|
17
18
|
let preferences = VersionedPreferencesService()
|
|
18
19
|
let downloadService = URLSessionDownloadService()
|
|
19
20
|
let decompressService = DecompressService()
|
|
@@ -22,7 +23,8 @@ import React
|
|
|
22
23
|
fileSystem: fileSystem,
|
|
23
24
|
downloadService: downloadService,
|
|
24
25
|
decompressService: decompressService,
|
|
25
|
-
preferences: preferences
|
|
26
|
+
preferences: preferences,
|
|
27
|
+
isolationKey: isolationKey
|
|
26
28
|
)
|
|
27
29
|
|
|
28
30
|
self.init(bundleStorage: bundleStorage, preferences: preferences)
|
|
@@ -263,4 +265,14 @@ import React
|
|
|
263
265
|
public func clearCrashHistory() -> Bool {
|
|
264
266
|
return bundleStorage.clearCrashHistory()
|
|
265
267
|
}
|
|
268
|
+
|
|
269
|
+
/**
|
|
270
|
+
* Gets the base URL for the current active bundle directory.
|
|
271
|
+
* Returns the file:// URL to the bundle directory with trailing slash.
|
|
272
|
+
* This is used for Expo DOM components to construct full asset paths.
|
|
273
|
+
* @return Base URL string (e.g., "file:///var/.../bundle-store/abc123/") or empty string
|
|
274
|
+
*/
|
|
275
|
+
public func getBaseURL() -> String {
|
|
276
|
+
return bundleStorage.getBaseURL()
|
|
277
|
+
}
|
|
266
278
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["global.d.ts"],"mappings":"","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -46,6 +46,31 @@ var _types = require("./types.js");
|
|
|
46
46
|
});
|
|
47
47
|
});
|
|
48
48
|
|
|
49
|
+
/**
|
|
50
|
+
* Register getBaseURL to global objects for use without imports.
|
|
51
|
+
* This is needed for Expo DOM components and Babel plugin generated code.
|
|
52
|
+
*/
|
|
53
|
+
const registerGlobalGetBaseURL = () => {
|
|
54
|
+
const fn = _native.getBaseURL;
|
|
55
|
+
|
|
56
|
+
// Register to globalThis (modern, cross-platform)
|
|
57
|
+
if (typeof globalThis !== "undefined") {
|
|
58
|
+
if (!globalThis.HotUpdaterGetBaseURL) {
|
|
59
|
+
globalThis.HotUpdaterGetBaseURL = fn;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// Register to global (React Native, Node.js)
|
|
64
|
+
if (typeof global !== "undefined") {
|
|
65
|
+
if (!global.HotUpdaterGetBaseURL) {
|
|
66
|
+
global.HotUpdaterGetBaseURL = fn;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
// Call registration immediately on module load
|
|
72
|
+
registerGlobalGetBaseURL();
|
|
73
|
+
|
|
49
74
|
/**
|
|
50
75
|
* Creates a HotUpdater client instance with all update management methods.
|
|
51
76
|
* This function is called once on module initialization to create a singleton instance.
|
|
@@ -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","addListener","progress","hotUpdaterStore","setState","createHotUpdaterClient","globalConfig","resolver","ensureGlobalResolver","methodName","Error","wrap","options","normalizedOptions","baseURL","rest","createDefaultResolver","requestHeaders","requestTimeout","reload","isUpdateDownloaded","getSnapshot","getAppVersion","getBundleId","getMinBundleId","getChannel","checkForUpdate","config","mergedConfig","updateBundle","params","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","addListener","progress","hotUpdaterStore","setState","registerGlobalGetBaseURL","fn","getBaseURL","globalThis","HotUpdaterGetBaseURL","global","createHotUpdaterClient","globalConfig","resolver","ensureGlobalResolver","methodName","Error","wrap","options","normalizedOptions","baseURL","rest","createDefaultResolver","requestHeaders","requestTimeout","reload","isUpdateDownloaded","getSnapshot","getAppVersion","getBundleId","getMinBundleId","getChannel","checkForUpdate","config","mergedConfig","updateBundle","params","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;AAcA,IAAAG,MAAA,GAAAH,OAAA;AAKAI,MAAA,CAAAC,IAAA,CAAAF,MAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,MAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,MAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AAHA,IAAAS,KAAA,GAAAhB,OAAA;AAIA,IAAAiB,MAAA,GAAAjB,OAAA;AAUA,IAAAkB,mBAAW,EAAC,YAAY,EAAE,CAAC;EAAEC;AAAS,CAAC,KAAK;EAC1CC,sBAAe,CAACC,QAAQ,CAAC;IACvBF;EACF,CAAC,CAAC;AACJ,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA,MAAMG,wBAAwB,GAAGA,CAAA,KAAM;EACrC,MAAMC,EAAE,GAAGC,kBAAU;;EAErB;EACA,IAAI,OAAOC,UAAU,KAAK,WAAW,EAAE;IACrC,IAAI,CAACA,UAAU,CAACC,oBAAoB,EAAE;MACpCD,UAAU,CAACC,oBAAoB,GAAGH,EAAE;IACtC;EACF;;EAEA;EACA,IAAI,OAAOI,MAAM,KAAK,WAAW,EAAE;IACjC,IAAI,CAACA,MAAM,CAACD,oBAAoB,EAAE;MAChCC,MAAM,CAACD,oBAAoB,GAAGH,EAAE;IAClC;EACF;AACF,CAAC;;AAED;AACAD,wBAAwB,CAAC,CAAC;;AAE1B;AACA;AACA;AACA;AACA,SAASM,sBAAsBA,CAAA,EAAG;EAChC;EACA,MAAMC,YAIL,GAAG;IACFC,QAAQ,EAAE;EACZ,CAAC;EAED,MAAMC,oBAAoB,GAAIC,UAAkB,IAAK;IACnD,IAAI,CAACH,YAAY,CAACC,QAAQ,EAAE;MAC1B,MAAM,IAAIG,KAAK,CACb,gBAAgBD,UAAU,6CAA6C,GACrE,yEAAyE,GACzE,oCAAoC,GACpC,sCAAsC,GACtC,4CAA4C,GAC5C,qCAAqC,GACrC,0BAA0B,GAC1B,gBAAgB,GAChB,+CAA+C,GAC/C,sCAAsC,GACtC,4CAA4C,GAC5C,4BAA4B,GAC5B,gBAAgB,GAChB,iFACJ,CAAC;IACH;IACA,OAAOH,YAAY,CAACC,QAAQ;EAC9B,CAAC;EAED,OAAO;IACL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACII,IAAI,EAAGC,OAA0B,IAAK;MACpC,IAAIC,iBAAsC;MAE1C,IAAI,SAAS,IAAID,OAAO,IAAIA,OAAO,CAACE,OAAO,EAAE;QAC3C,MAAM;UAAEA,OAAO;UAAE,GAAGC;QAAK,CAAC,GAAGH,OAAO;QACpCC,iBAAiB,GAAG;UAClB,GAAGE,IAAI;UACPR,QAAQ,EAAE,IAAAS,sCAAqB,EAACF,OAAO;QACzC,CAAC;MACH,CAAC,MAAM,IAAI,UAAU,IAAIF,OAAO,IAAIA,OAAO,CAACL,QAAQ,EAAE;QACpDM,iBAAiB,GAAGD,OAAO;MAC7B,CAAC,MAAM;QACL,MAAM,IAAIF,KAAK,CACb,+DAA+D,GAC7D,wDAAwD,GACxD,sCAAsC,GACtC,4CAA4C,GAC5C,qCAAqC,GACrC,0BAA0B,GAC1B,gBAAgB,GAChB,8CAA8C,GAC9C,sCAAsC,GACtC,mBAAmB,GACnB,gEAAgE,GAChE,kEAAkE,GAClE,UAAU,GACV,4BAA4B,GAC5B,gBAAgB,GAChB,iFACJ,CAAC;MACH;MAEAJ,YAAY,CAACC,QAAQ,GAAGM,iBAAiB,CAACN,QAAQ;MAClDD,YAAY,CAACW,cAAc,GAAGL,OAAO,CAACK,cAAc;MACpDX,YAAY,CAACY,cAAc,GAAGN,OAAO,CAACM,cAAc;MAEpD,OAAO,IAAAP,UAAI,EAACE,iBAAiB,CAAC;IAChC,CAAC;IAED;AACJ;AACA;IACIM,MAAM,EAANA,cAAM;IAEN;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,kBAAkB,EAAEA,CAAA,KAAMvB,sBAAe,CAACwB,WAAW,CAAC,CAAC,CAACD,kBAAkB;IAE1E;AACJ;AACA;IACIE,aAAa,EAAbA,qBAAa;IAEb;AACJ;AACA;IACIC,WAAW,EAAXA,mBAAW;IAEX;AACJ;AACA;IACIC,cAAc,EAAdA,sBAAc;IAEd;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;AACA;AACA;AACA;AACA;AACA;IACI9B,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;IACI+B,cAAc,EAAGC,MAA6B,IAAK;MACjD,MAAMpB,QAAQ,GAAGC,oBAAoB,CAAC,gBAAgB,CAAC;MAEvD,MAAMoB,YAA2C,GAAG;QAClD,GAAGD,MAAM;QACTpB,QAAQ;QACRU,cAAc,EAAE;UACd,GAAGX,YAAY,CAACW,cAAc;UAC9B,GAAGU,MAAM,CAACV;QACZ,CAAC;QACDC,cAAc,EAAES,MAAM,CAACT,cAAc,IAAIZ,YAAY,CAACY;MACxD,CAAC;MAED,OAAO,IAAAQ,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;MACtCtB,oBAAoB,CAAC,cAAc,CAAC;MACpC,OAAO,IAAAqB,oBAAY,EAACC,MAAM,CAAC;IAC7B,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,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,GAAA7C,OAAA,CAAA6C,UAAA,GAAG7B,sBAAsB,CAAC,CAAC","ignoreList":[]}
|
package/lib/commonjs/native.js
CHANGED
|
@@ -10,7 +10,7 @@ Object.defineProperty(exports, "HotUpdaterErrorCode", {
|
|
|
10
10
|
return _error.HotUpdaterErrorCode;
|
|
11
11
|
}
|
|
12
12
|
});
|
|
13
|
-
exports.getMinBundleId = exports.getFingerprintHash = exports.getCrashHistory = exports.getChannel = exports.getBundleId = exports.getAppVersion = exports.clearCrashHistory = exports.addListener = void 0;
|
|
13
|
+
exports.getMinBundleId = exports.getFingerprintHash = exports.getCrashHistory = exports.getChannel = exports.getBundleId = exports.getBaseURL = exports.getAppVersion = exports.clearCrashHistory = exports.addListener = void 0;
|
|
14
14
|
Object.defineProperty(exports, "isHotUpdaterError", {
|
|
15
15
|
enumerable: true,
|
|
16
16
|
get: function () {
|
|
@@ -235,5 +235,21 @@ exports.getCrashHistory = getCrashHistory;
|
|
|
235
235
|
const clearCrashHistory = () => {
|
|
236
236
|
return _NativeHotUpdater.default.clearCrashHistory();
|
|
237
237
|
};
|
|
238
|
+
|
|
239
|
+
/**
|
|
240
|
+
* Gets the base URL for the current active bundle directory.
|
|
241
|
+
* Returns the file:// URL to the bundle directory without trailing slash.
|
|
242
|
+
* This is used for Expo DOM components to construct full asset paths.
|
|
243
|
+
*
|
|
244
|
+
* @returns {string | null} Base URL string (e.g., "file:///data/.../bundle-store/abc123") or null if not available
|
|
245
|
+
*/
|
|
238
246
|
exports.clearCrashHistory = clearCrashHistory;
|
|
247
|
+
const getBaseURL = () => {
|
|
248
|
+
const result = _NativeHotUpdater.default.getBaseURL();
|
|
249
|
+
if (typeof result === "string" && result !== "") {
|
|
250
|
+
return result;
|
|
251
|
+
}
|
|
252
|
+
return null;
|
|
253
|
+
};
|
|
254
|
+
exports.getBaseURL = getBaseURL;
|
|
239
255
|
//# 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","addListener","eventName","listener","eventEmitter","NativeEventEmitter","HotUpdaterNative","subscription","remove","inflightUpdates","Map","lastInstalledBundleId","updateBundle","paramsOrBundleId","fileUrl","updateBundleId","bundleId","status","currentBundleId","getBundleId","localeCompare","Error","existing","get","targetFileUrl","targetFileHash","undefined","fileHash","promise","ok","delete","set","getAppVersion","constants","getConstants","APP_VERSION","reload","getMinBundleId","MIN_BUNDLE_ID","getChannel","CHANNEL","getFingerprintHash","FINGERPRINT_HASH","notifyAppReady","result","JSON","parse","getCrashHistory","clearCrashHistory"],"sourceRoot":"../../src","sources":["native.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_error","_NativeHotUpdater","_interopRequireDefault","e","__esModule","default","NIL_UUID","HotUpdaterConstants","exports","HOT_UPDATER_BUNDLE_ID","__HOT_UPDATER_BUNDLE_ID","addListener","eventName","listener","eventEmitter","NativeEventEmitter","HotUpdaterNative","subscription","remove","inflightUpdates","Map","lastInstalledBundleId","updateBundle","paramsOrBundleId","fileUrl","updateBundleId","bundleId","status","currentBundleId","getBundleId","localeCompare","Error","existing","get","targetFileUrl","targetFileHash","undefined","fileHash","promise","ok","delete","set","getAppVersion","constants","getConstants","APP_VERSION","reload","getMinBundleId","MIN_BUNDLE_ID","getChannel","CHANNEL","getFingerprintHash","FINGERPRINT_HASH","notifyAppReady","result","JSON","parse","getCrashHistory","clearCrashHistory","getBaseURL"],"sourceRoot":"../../src","sources":["native.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["specs/NativeHotUpdater.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["specs/NativeHotUpdater.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAyGpCC,gCAAmB,CAACC,YAAY,CAAO,YAAY,CAAC","ignoreList":[]}
|
package/lib/commonjs/wrap.js
CHANGED
|
@@ -10,8 +10,7 @@ var _useEventCallback = require("./hooks/useEventCallback.js");
|
|
|
10
10
|
var _native = require("./native.js");
|
|
11
11
|
var _store = require("./store.js");
|
|
12
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
-
function
|
|
14
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
13
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
15
14
|
/**
|
|
16
15
|
* Common options shared between auto and manual update modes
|
|
17
16
|
*/
|
package/lib/commonjs/wrap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_checkForUpdate","_useEventCallback","_native","_store","_jsxRuntime","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_checkForUpdate","_useEventCallback","_native","_store","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","handleNotifyAppReady","options","nativeResult","nativeNotifyAppReady","resolver","notifyAppReady","status","crashedBundleId","requestHeaders","requestTimeout","catch","console","warn","onNotifyAppReady","wrap","updateMode","WrappedComponent","ManualHOC","props","useLayoutEffect","jsx","reloadOnForceUpdate","restOptions","HotUpdaterHOC","progress","useHotUpdaterStore","state","message","setMessage","useState","updateStatus","setUpdateStatus","initHotUpdater","useEventCallback","updateInfo","checkForUpdate","updateStrategy","onError","onUpdateProcessCompleted","shouldForceUpdate","id","getBundleId","updateBundle","error","isSuccess","Error","reload","useEffect","onProgress","fallbackComponent","Fallback"],"sourceRoot":"../../src","sources":["wrap.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["global.d.ts"],"mappings":";;AAAA;AACA;AACA;;AAoBA","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { checkForUpdate } from "./checkForUpdate.js";
|
|
4
4
|
import { createDefaultResolver } from "./DefaultResolver.js";
|
|
5
|
-
import { addListener, clearCrashHistory, getAppVersion, getBundleId, getChannel, getCrashHistory, getFingerprintHash, getMinBundleId, reload, updateBundle } from "./native.js";
|
|
5
|
+
import { addListener, clearCrashHistory, getAppVersion, getBaseURL, getBundleId, getChannel, getCrashHistory, getFingerprintHash, getMinBundleId, reload, updateBundle } from "./native.js";
|
|
6
6
|
import { hotUpdaterStore } from "./store.js";
|
|
7
7
|
import { wrap } from "./wrap.js";
|
|
8
8
|
export * from "./store.js";
|
|
@@ -15,6 +15,31 @@ addListener("onProgress", ({
|
|
|
15
15
|
});
|
|
16
16
|
});
|
|
17
17
|
|
|
18
|
+
/**
|
|
19
|
+
* Register getBaseURL to global objects for use without imports.
|
|
20
|
+
* This is needed for Expo DOM components and Babel plugin generated code.
|
|
21
|
+
*/
|
|
22
|
+
const registerGlobalGetBaseURL = () => {
|
|
23
|
+
const fn = getBaseURL;
|
|
24
|
+
|
|
25
|
+
// Register to globalThis (modern, cross-platform)
|
|
26
|
+
if (typeof globalThis !== "undefined") {
|
|
27
|
+
if (!globalThis.HotUpdaterGetBaseURL) {
|
|
28
|
+
globalThis.HotUpdaterGetBaseURL = fn;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// Register to global (React Native, Node.js)
|
|
33
|
+
if (typeof global !== "undefined") {
|
|
34
|
+
if (!global.HotUpdaterGetBaseURL) {
|
|
35
|
+
global.HotUpdaterGetBaseURL = fn;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
// Call registration immediately on module load
|
|
41
|
+
registerGlobalGetBaseURL();
|
|
42
|
+
|
|
18
43
|
/**
|
|
19
44
|
* Creates a HotUpdater client instance with all update management methods.
|
|
20
45
|
* This function is called once on module initialization to create a singleton instance.
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["checkForUpdate","createDefaultResolver","addListener","clearCrashHistory","getAppVersion","getBundleId","getChannel","getCrashHistory","getFingerprintHash","getMinBundleId","reload","updateBundle","hotUpdaterStore","wrap","extractSignatureFailure","isSignatureVerificationError","progress","setState","createHotUpdaterClient","globalConfig","resolver","ensureGlobalResolver","methodName","Error","options","normalizedOptions","baseURL","rest","requestHeaders","requestTimeout","isUpdateDownloaded","getSnapshot","config","mergedConfig","params","HotUpdater"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SAEEA,cAAc,QAET,qBAAkB;AACzB,SAASC,qBAAqB,QAAQ,sBAAmB;AACzD,SACEC,WAAW,EACXC,iBAAiB,EACjBC,aAAa,EACbC,WAAW,EACXC,UAAU,EACVC,eAAe,EACfC,kBAAkB,EAClBC,cAAc,EACdC,MAAM,EAENC,YAAY,QACP,aAAU;AACjB,SAASC,eAAe,QAAQ,YAAS;AAEzC,SAA2DC,IAAI,QAAQ,WAAQ;AAG/E,cAAc,YAAS;AACvB,SACEC,uBAAuB,EAEvBC,4BAA4B,QAIvB,YAAS;
|
|
1
|
+
{"version":3,"names":["checkForUpdate","createDefaultResolver","addListener","clearCrashHistory","getAppVersion","getBaseURL","getBundleId","getChannel","getCrashHistory","getFingerprintHash","getMinBundleId","reload","updateBundle","hotUpdaterStore","wrap","extractSignatureFailure","isSignatureVerificationError","progress","setState","registerGlobalGetBaseURL","fn","globalThis","HotUpdaterGetBaseURL","global","createHotUpdaterClient","globalConfig","resolver","ensureGlobalResolver","methodName","Error","options","normalizedOptions","baseURL","rest","requestHeaders","requestTimeout","isUpdateDownloaded","getSnapshot","config","mergedConfig","params","HotUpdater"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SAEEA,cAAc,QAET,qBAAkB;AACzB,SAASC,qBAAqB,QAAQ,sBAAmB;AACzD,SACEC,WAAW,EACXC,iBAAiB,EACjBC,aAAa,EACbC,UAAU,EACVC,WAAW,EACXC,UAAU,EACVC,eAAe,EACfC,kBAAkB,EAClBC,cAAc,EACdC,MAAM,EAENC,YAAY,QACP,aAAU;AACjB,SAASC,eAAe,QAAQ,YAAS;AAEzC,SAA2DC,IAAI,QAAQ,WAAQ;AAG/E,cAAc,YAAS;AACvB,SACEC,uBAAuB,EAEvBC,4BAA4B,QAIvB,YAAS;AAGhBd,WAAW,CAAC,YAAY,EAAE,CAAC;EAAEe;AAAS,CAAC,KAAK;EAC1CJ,eAAe,CAACK,QAAQ,CAAC;IACvBD;EACF,CAAC,CAAC;AACJ,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA,MAAME,wBAAwB,GAAGA,CAAA,KAAM;EACrC,MAAMC,EAAE,GAAGf,UAAU;;EAErB;EACA,IAAI,OAAOgB,UAAU,KAAK,WAAW,EAAE;IACrC,IAAI,CAACA,UAAU,CAACC,oBAAoB,EAAE;MACpCD,UAAU,CAACC,oBAAoB,GAAGF,EAAE;IACtC;EACF;;EAEA;EACA,IAAI,OAAOG,MAAM,KAAK,WAAW,EAAE;IACjC,IAAI,CAACA,MAAM,CAACD,oBAAoB,EAAE;MAChCC,MAAM,CAACD,oBAAoB,GAAGF,EAAE;IAClC;EACF;AACF,CAAC;;AAED;AACAD,wBAAwB,CAAC,CAAC;;AAE1B;AACA;AACA;AACA;AACA,SAASK,sBAAsBA,CAAA,EAAG;EAChC;EACA,MAAMC,YAIL,GAAG;IACFC,QAAQ,EAAE;EACZ,CAAC;EAED,MAAMC,oBAAoB,GAAIC,UAAkB,IAAK;IACnD,IAAI,CAACH,YAAY,CAACC,QAAQ,EAAE;MAC1B,MAAM,IAAIG,KAAK,CACb,gBAAgBD,UAAU,6CAA6C,GACrE,yEAAyE,GACzE,oCAAoC,GACpC,sCAAsC,GACtC,4CAA4C,GAC5C,qCAAqC,GACrC,0BAA0B,GAC1B,gBAAgB,GAChB,+CAA+C,GAC/C,sCAAsC,GACtC,4CAA4C,GAC5C,4BAA4B,GAC5B,gBAAgB,GAChB,iFACJ,CAAC;IACH;IACA,OAAOH,YAAY,CAACC,QAAQ;EAC9B,CAAC;EAED,OAAO;IACL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIZ,IAAI,EAAGgB,OAA0B,IAAK;MACpC,IAAIC,iBAAsC;MAE1C,IAAI,SAAS,IAAID,OAAO,IAAIA,OAAO,CAACE,OAAO,EAAE;QAC3C,MAAM;UAAEA,OAAO;UAAE,GAAGC;QAAK,CAAC,GAAGH,OAAO;QACpCC,iBAAiB,GAAG;UAClB,GAAGE,IAAI;UACPP,QAAQ,EAAEzB,qBAAqB,CAAC+B,OAAO;QACzC,CAAC;MACH,CAAC,MAAM,IAAI,UAAU,IAAIF,OAAO,IAAIA,OAAO,CAACJ,QAAQ,EAAE;QACpDK,iBAAiB,GAAGD,OAAO;MAC7B,CAAC,MAAM;QACL,MAAM,IAAID,KAAK,CACb,+DAA+D,GAC7D,wDAAwD,GACxD,sCAAsC,GACtC,4CAA4C,GAC5C,qCAAqC,GACrC,0BAA0B,GAC1B,gBAAgB,GAChB,8CAA8C,GAC9C,sCAAsC,GACtC,mBAAmB,GACnB,gEAAgE,GAChE,kEAAkE,GAClE,UAAU,GACV,4BAA4B,GAC5B,gBAAgB,GAChB,iFACJ,CAAC;MACH;MAEAJ,YAAY,CAACC,QAAQ,GAAGK,iBAAiB,CAACL,QAAQ;MAClDD,YAAY,CAACS,cAAc,GAAGJ,OAAO,CAACI,cAAc;MACpDT,YAAY,CAACU,cAAc,GAAGL,OAAO,CAACK,cAAc;MAEpD,OAAOrB,IAAI,CAACiB,iBAAiB,CAAC;IAChC,CAAC;IAED;AACJ;AACA;IACIpB,MAAM;IAEN;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIyB,kBAAkB,EAAEA,CAAA,KAAMvB,eAAe,CAACwB,WAAW,CAAC,CAAC,CAACD,kBAAkB;IAE1E;AACJ;AACA;IACIhC,aAAa;IAEb;AACJ;AACA;IACIE,WAAW;IAEX;AACJ;AACA;IACII,cAAc;IAEd;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIH,UAAU;IAEV;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIL,WAAW;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;IACIF,cAAc,EAAGsC,MAA6B,IAAK;MACjD,MAAMZ,QAAQ,GAAGC,oBAAoB,CAAC,gBAAgB,CAAC;MAEvD,MAAMY,YAA2C,GAAG;QAClD,GAAGD,MAAM;QACTZ,QAAQ;QACRQ,cAAc,EAAE;UACd,GAAGT,YAAY,CAACS,cAAc;UAC9B,GAAGI,MAAM,CAACJ;QACZ,CAAC;QACDC,cAAc,EAAEG,MAAM,CAACH,cAAc,IAAIV,YAAY,CAACU;MACxD,CAAC;MAED,OAAOnC,cAAc,CAACuC,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;IACI3B,YAAY,EAAG4B,MAAoB,IAAK;MACtCb,oBAAoB,CAAC,cAAc,CAAC;MACpC,OAAOf,YAAY,CAAC4B,MAAM,CAAC;IAC7B,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACI/B,kBAAkB;IAElB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACID,eAAe;IAEf;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIL;EACF,CAAC;AACH;AAEA,OAAO,MAAMsC,UAAU,GAAGjB,sBAAsB,CAAC,CAAC","ignoreList":[]}
|
package/lib/module/native.js
CHANGED
|
@@ -208,4 +208,19 @@ export const getCrashHistory = () => {
|
|
|
208
208
|
export const clearCrashHistory = () => {
|
|
209
209
|
return HotUpdaterNative.clearCrashHistory();
|
|
210
210
|
};
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* Gets the base URL for the current active bundle directory.
|
|
214
|
+
* Returns the file:// URL to the bundle directory without trailing slash.
|
|
215
|
+
* This is used for Expo DOM components to construct full asset paths.
|
|
216
|
+
*
|
|
217
|
+
* @returns {string | null} Base URL string (e.g., "file:///data/.../bundle-store/abc123") or null if not available
|
|
218
|
+
*/
|
|
219
|
+
export const getBaseURL = () => {
|
|
220
|
+
const result = HotUpdaterNative.getBaseURL();
|
|
221
|
+
if (typeof result === "string" && result !== "") {
|
|
222
|
+
return result;
|
|
223
|
+
}
|
|
224
|
+
return null;
|
|
225
|
+
};
|
|
211
226
|
//# sourceMappingURL=native.js.map
|
package/lib/module/native.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeEventEmitter","HotUpdaterErrorCode","isHotUpdaterError","HotUpdaterNative","NIL_UUID","HotUpdaterConstants","HOT_UPDATER_BUNDLE_ID","__HOT_UPDATER_BUNDLE_ID","addListener","eventName","listener","eventEmitter","subscription","remove","inflightUpdates","Map","lastInstalledBundleId","updateBundle","paramsOrBundleId","fileUrl","updateBundleId","bundleId","status","currentBundleId","getBundleId","localeCompare","Error","existing","get","targetFileUrl","targetFileHash","undefined","fileHash","promise","ok","delete","set","getAppVersion","constants","getConstants","APP_VERSION","reload","getMinBundleId","MIN_BUNDLE_ID","getChannel","CHANNEL","getFingerprintHash","FINGERPRINT_HASH","notifyAppReady","result","JSON","parse","getCrashHistory","clearCrashHistory"],"sourceRoot":"../../src","sources":["native.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["NativeEventEmitter","HotUpdaterErrorCode","isHotUpdaterError","HotUpdaterNative","NIL_UUID","HotUpdaterConstants","HOT_UPDATER_BUNDLE_ID","__HOT_UPDATER_BUNDLE_ID","addListener","eventName","listener","eventEmitter","subscription","remove","inflightUpdates","Map","lastInstalledBundleId","updateBundle","paramsOrBundleId","fileUrl","updateBundleId","bundleId","status","currentBundleId","getBundleId","localeCompare","Error","existing","get","targetFileUrl","targetFileHash","undefined","fileHash","promise","ok","delete","set","getAppVersion","constants","getConstants","APP_VERSION","reload","getMinBundleId","MIN_BUNDLE_ID","getChannel","CHANNEL","getFingerprintHash","FINGERPRINT_HASH","notifyAppReady","result","JSON","parse","getCrashHistory","clearCrashHistory","getBaseURL"],"sourceRoot":"../../src","sources":["native.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["specs/NativeHotUpdater.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["specs/NativeHotUpdater.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AAyGlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,YAAY,CAAC","ignoreList":[]}
|
|
@@ -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,EAWL,KAAK,YAAY,EAElB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,KAAK,iBAAiB,EAAkC,MAAM,QAAQ,CAAC;AAEhF,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACtE,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;AA4U1E,eAAO,MAAM,UAAU;IAtQnB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;oBACa,iBAAiB;IAuCjC;;OAEG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;;;;;;;;;;OAYG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;6BACsB,qBAAqB;IAgB9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;2BACoB,YAAY;IAKnC;;;;;;;;;;OAUG;;IAGH;;;;;;;;;;;OAWG;;IAGH;;;;;;;;;;;OAWG;;CAK2C,CAAC"}
|
|
@@ -113,4 +113,12 @@ export declare const getCrashHistory: () => string[];
|
|
|
113
113
|
* @returns {boolean} true if clearing was successful
|
|
114
114
|
*/
|
|
115
115
|
export declare const clearCrashHistory: () => boolean;
|
|
116
|
+
/**
|
|
117
|
+
* Gets the base URL for the current active bundle directory.
|
|
118
|
+
* Returns the file:// URL to the bundle directory without trailing slash.
|
|
119
|
+
* This is used for Expo DOM components to construct full asset paths.
|
|
120
|
+
*
|
|
121
|
+
* @returns {string | null} Base URL string (e.g., "file:///data/.../bundle-store/abc123") or null if not available
|
|
122
|
+
*/
|
|
123
|
+
export declare const getBaseURL: () => string | null;
|
|
116
124
|
//# sourceMappingURL=native.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/native.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACjE,OAAyB,EACvB,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,CAAC;AAMlD,eAAO,MAAM,mBAAmB;;CAE/B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE;QACV,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,MAAM,eAAe,EACzD,WAAW,CAAC,EACZ,UAAU,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,eAQ9C,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,kBAAkB,GAAG;IAC9C,MAAM,EAAE,YAAY,CAAC;CACtB,CAAC;AAOF;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC3E;;GAEG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GAAG,IAAI,GACrB,OAAO,CAAC,OAAO,CAAC,CAAC;AAgEpB;;GAEG;AACH,eAAO,MAAM,aAAa,QAAO,MAAM,GAAG,IAGzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,MAAM,qBAElB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,QAAO,MAGjC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,QAAO,MAI9B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU,QAAO,MAG7B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,QAAO,MAAM,GAAG,IAG9C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC5C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,cAAc,QAAO,oBAYjC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,QAAO,MAAM,EAWxC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,QAAO,OAEpC,CAAC"}
|
|
1
|
+
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/native.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACjE,OAAyB,EACvB,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,CAAC;AAMlD,eAAO,MAAM,mBAAmB;;CAE/B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE;QACV,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,MAAM,eAAe,EACzD,WAAW,CAAC,EACZ,UAAU,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,eAQ9C,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,kBAAkB,GAAG;IAC9C,MAAM,EAAE,YAAY,CAAC;CACtB,CAAC;AAOF;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC3E;;GAEG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GAAG,IAAI,GACrB,OAAO,CAAC,OAAO,CAAC,CAAC;AAgEpB;;GAEG;AACH,eAAO,MAAM,aAAa,QAAO,MAAM,GAAG,IAGzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,MAAM,qBAElB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,QAAO,MAGjC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,QAAO,MAI9B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU,QAAO,MAG7B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,QAAO,MAAM,GAAG,IAG9C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC5C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,cAAc,QAAO,oBAYjC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,QAAO,MAAM,EAWxC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,QAAO,OAEpC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,QAAO,MAAM,GAAG,IAMtC,CAAC"}
|
|
@@ -78,6 +78,14 @@ export interface Spec extends TurboModule {
|
|
|
78
78
|
* @returns true if clearing was successful
|
|
79
79
|
*/
|
|
80
80
|
clearCrashHistory(): boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Gets the base URL for the current active bundle directory.
|
|
83
|
+
* Returns the file:// URL to the bundle directory without trailing slash.
|
|
84
|
+
* This is used for Expo DOM components to construct full asset paths.
|
|
85
|
+
*
|
|
86
|
+
* @returns Base URL string (e.g., "file:///data/.../bundle-store/abc123") or "" if not available
|
|
87
|
+
*/
|
|
88
|
+
getBaseURL: () => string;
|
|
81
89
|
addListener(eventName: string): void;
|
|
82
90
|
removeListeners(count: number): void;
|
|
83
91
|
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;AAGhD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3D;;;;;;;;;;OAUG;IACH,cAAc,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG;QAC5C,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;QAC5C,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IAEF;;;;;OAKG;IACH,eAAe,IAAI,MAAM,EAAE,CAAC;IAE5B;;;;;OAKG;IACH,iBAAiB,IAAI,OAAO,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;AAGhD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3D;;;;;;;;;;OAUG;IACH,cAAc,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG;QAC5C,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;QAC5C,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IAEF;;;;;OAKG;IACH,eAAe,IAAI,MAAM,EAAE,CAAC;IAE5B;;;;;OAKG;IACH,iBAAiB,IAAI,OAAO,CAAC;IAE7B;;;;;;OAMG;IACH,UAAU,EAAE,MAAM,MAAM,CAAC;IAGzB,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,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;KACjC,CAAC;CACH;;AAED,wBAAoE"}
|
|
@@ -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,EAWL,KAAK,YAAY,EAElB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,KAAK,iBAAiB,EAAkC,MAAM,QAAQ,CAAC;AAEhF,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACtE,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;AA4U1E,eAAO,MAAM,UAAU;IAtQnB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;oBACa,iBAAiB;IAuCjC;;OAEG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;;;;;;;;;;OAYG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;6BACsB,qBAAqB;IAgB9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;2BACoB,YAAY;IAKnC;;;;;;;;;;OAUG;;IAGH;;;;;;;;;;;OAWG;;IAGH;;;;;;;;;;;OAWG;;CAK2C,CAAC"}
|
|
@@ -113,4 +113,12 @@ export declare const getCrashHistory: () => string[];
|
|
|
113
113
|
* @returns {boolean} true if clearing was successful
|
|
114
114
|
*/
|
|
115
115
|
export declare const clearCrashHistory: () => boolean;
|
|
116
|
+
/**
|
|
117
|
+
* Gets the base URL for the current active bundle directory.
|
|
118
|
+
* Returns the file:// URL to the bundle directory without trailing slash.
|
|
119
|
+
* This is used for Expo DOM components to construct full asset paths.
|
|
120
|
+
*
|
|
121
|
+
* @returns {string | null} Base URL string (e.g., "file:///data/.../bundle-store/abc123") or null if not available
|
|
122
|
+
*/
|
|
123
|
+
export declare const getBaseURL: () => string | null;
|
|
116
124
|
//# sourceMappingURL=native.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/native.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACjE,OAAyB,EACvB,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,CAAC;AAMlD,eAAO,MAAM,mBAAmB;;CAE/B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE;QACV,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,MAAM,eAAe,EACzD,WAAW,CAAC,EACZ,UAAU,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,eAQ9C,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,kBAAkB,GAAG;IAC9C,MAAM,EAAE,YAAY,CAAC;CACtB,CAAC;AAOF;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC3E;;GAEG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GAAG,IAAI,GACrB,OAAO,CAAC,OAAO,CAAC,CAAC;AAgEpB;;GAEG;AACH,eAAO,MAAM,aAAa,QAAO,MAAM,GAAG,IAGzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,MAAM,qBAElB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,QAAO,MAGjC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,QAAO,MAI9B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU,QAAO,MAG7B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,QAAO,MAAM,GAAG,IAG9C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC5C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,cAAc,QAAO,oBAYjC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,QAAO,MAAM,EAWxC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,QAAO,OAEpC,CAAC"}
|
|
1
|
+
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/native.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACjE,OAAyB,EACvB,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,CAAC;AAMlD,eAAO,MAAM,mBAAmB;;CAE/B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE;QACV,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,MAAM,eAAe,EACzD,WAAW,CAAC,EACZ,UAAU,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,eAQ9C,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,kBAAkB,GAAG;IAC9C,MAAM,EAAE,YAAY,CAAC;CACtB,CAAC;AAOF;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC3E;;GAEG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GAAG,IAAI,GACrB,OAAO,CAAC,OAAO,CAAC,CAAC;AAgEpB;;GAEG;AACH,eAAO,MAAM,aAAa,QAAO,MAAM,GAAG,IAGzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,MAAM,qBAElB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,QAAO,MAGjC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,QAAO,MAI9B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU,QAAO,MAG7B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,QAAO,MAAM,GAAG,IAG9C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC5C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,cAAc,QAAO,oBAYjC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,QAAO,MAAM,EAWxC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,QAAO,OAEpC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,QAAO,MAAM,GAAG,IAMtC,CAAC"}
|
|
@@ -78,6 +78,14 @@ export interface Spec extends TurboModule {
|
|
|
78
78
|
* @returns true if clearing was successful
|
|
79
79
|
*/
|
|
80
80
|
clearCrashHistory(): boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Gets the base URL for the current active bundle directory.
|
|
83
|
+
* Returns the file:// URL to the bundle directory without trailing slash.
|
|
84
|
+
* This is used for Expo DOM components to construct full asset paths.
|
|
85
|
+
*
|
|
86
|
+
* @returns Base URL string (e.g., "file:///data/.../bundle-store/abc123") or "" if not available
|
|
87
|
+
*/
|
|
88
|
+
getBaseURL: () => string;
|
|
81
89
|
addListener(eventName: string): void;
|
|
82
90
|
removeListeners(count: number): void;
|
|
83
91
|
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;AAGhD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3D;;;;;;;;;;OAUG;IACH,cAAc,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG;QAC5C,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;QAC5C,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IAEF;;;;;OAKG;IACH,eAAe,IAAI,MAAM,EAAE,CAAC;IAE5B;;;;;OAKG;IACH,iBAAiB,IAAI,OAAO,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;AAGhD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3D;;;;;;;;;;OAUG;IACH,cAAc,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG;QAC5C,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;QAC5C,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IAEF;;;;;OAKG;IACH,eAAe,IAAI,MAAM,EAAE,CAAC;IAE5B;;;;;OAKG;IACH,iBAAiB,IAAI,OAAO,CAAC;IAE7B;;;;;;OAMG;IACH,UAAU,EAAE,MAAM,MAAM,CAAC;IAGzB,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,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;KACjC,CAAC;CACH;;AAED,wBAAoE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hot-updater/react-native",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.25.0",
|
|
4
4
|
"description": "React Native OTA solution for self-hosted",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
@@ -116,18 +116,18 @@
|
|
|
116
116
|
"@types/use-sync-external-store": "^0.0.6",
|
|
117
117
|
"del-cli": "^6.0.0",
|
|
118
118
|
"expo": "^50.0.0",
|
|
119
|
-
"react": "19.1.
|
|
119
|
+
"react": "19.1.3",
|
|
120
120
|
"react-native": "0.79.1",
|
|
121
121
|
"react-native-builder-bob": "^0.40.10",
|
|
122
122
|
"typescript": "^5.8.3",
|
|
123
|
-
"hot-updater": "0.
|
|
123
|
+
"hot-updater": "0.25.0"
|
|
124
124
|
},
|
|
125
125
|
"dependencies": {
|
|
126
126
|
"use-sync-external-store": "1.5.0",
|
|
127
|
-
"@hot-updater/
|
|
128
|
-
"@hot-updater/
|
|
129
|
-
"@hot-updater/
|
|
130
|
-
"@hot-updater/plugin-core": "0.
|
|
127
|
+
"@hot-updater/cli-tools": "0.25.0",
|
|
128
|
+
"@hot-updater/core": "0.25.0",
|
|
129
|
+
"@hot-updater/js": "0.25.0",
|
|
130
|
+
"@hot-updater/plugin-core": "0.25.0"
|
|
131
131
|
},
|
|
132
132
|
"scripts": {
|
|
133
133
|
"build": "bob build && tsc -p plugin/tsconfig.build.json",
|
package/src/global.d.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Global type definitions for HotUpdater
|
|
3
|
+
*/
|
|
4
|
+
declare global {
|
|
5
|
+
/**
|
|
6
|
+
* Gets the base URL for the current active bundle directory.
|
|
7
|
+
* Returns the file:// URL to the bundle directory without trailing slash.
|
|
8
|
+
*
|
|
9
|
+
* This function is globally available for use in Expo DOM components
|
|
10
|
+
* and Babel plugin generated code without requiring an import.
|
|
11
|
+
*
|
|
12
|
+
* @returns {string} Base URL string (e.g., "file:///data/.../bundle-store/abc123") or null if not available
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* const baseURL = globalThis.HotUpdaterGetBaseURL();
|
|
17
|
+
* const htmlPath = baseURL + "/www.bundle/index.html";
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
var HotUpdaterGetBaseURL: () => string | null;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export {};
|
package/src/index.ts
CHANGED
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
addListener,
|
|
9
9
|
clearCrashHistory,
|
|
10
10
|
getAppVersion,
|
|
11
|
+
getBaseURL,
|
|
11
12
|
getBundleId,
|
|
12
13
|
getChannel,
|
|
13
14
|
getCrashHistory,
|
|
@@ -39,6 +40,31 @@ addListener("onProgress", ({ progress }) => {
|
|
|
39
40
|
});
|
|
40
41
|
});
|
|
41
42
|
|
|
43
|
+
/**
|
|
44
|
+
* Register getBaseURL to global objects for use without imports.
|
|
45
|
+
* This is needed for Expo DOM components and Babel plugin generated code.
|
|
46
|
+
*/
|
|
47
|
+
const registerGlobalGetBaseURL = () => {
|
|
48
|
+
const fn = getBaseURL;
|
|
49
|
+
|
|
50
|
+
// Register to globalThis (modern, cross-platform)
|
|
51
|
+
if (typeof globalThis !== "undefined") {
|
|
52
|
+
if (!globalThis.HotUpdaterGetBaseURL) {
|
|
53
|
+
globalThis.HotUpdaterGetBaseURL = fn;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// Register to global (React Native, Node.js)
|
|
58
|
+
if (typeof global !== "undefined") {
|
|
59
|
+
if (!global.HotUpdaterGetBaseURL) {
|
|
60
|
+
global.HotUpdaterGetBaseURL = fn;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
// Call registration immediately on module load
|
|
66
|
+
registerGlobalGetBaseURL();
|
|
67
|
+
|
|
42
68
|
/**
|
|
43
69
|
* Creates a HotUpdater client instance with all update management methods.
|
|
44
70
|
* This function is called once on module initialization to create a singleton instance.
|
package/src/native.ts
CHANGED
|
@@ -259,3 +259,18 @@ export const getCrashHistory = (): string[] => {
|
|
|
259
259
|
export const clearCrashHistory = (): boolean => {
|
|
260
260
|
return HotUpdaterNative.clearCrashHistory();
|
|
261
261
|
};
|
|
262
|
+
|
|
263
|
+
/**
|
|
264
|
+
* Gets the base URL for the current active bundle directory.
|
|
265
|
+
* Returns the file:// URL to the bundle directory without trailing slash.
|
|
266
|
+
* This is used for Expo DOM components to construct full asset paths.
|
|
267
|
+
*
|
|
268
|
+
* @returns {string | null} Base URL string (e.g., "file:///data/.../bundle-store/abc123") or null if not available
|
|
269
|
+
*/
|
|
270
|
+
export const getBaseURL = (): string | null => {
|
|
271
|
+
const result = HotUpdaterNative.getBaseURL();
|
|
272
|
+
if (typeof result === "string" && result !== "") {
|
|
273
|
+
return result;
|
|
274
|
+
}
|
|
275
|
+
return null;
|
|
276
|
+
};
|
|
@@ -84,6 +84,15 @@ export interface Spec extends TurboModule {
|
|
|
84
84
|
*/
|
|
85
85
|
clearCrashHistory(): boolean;
|
|
86
86
|
|
|
87
|
+
/**
|
|
88
|
+
* Gets the base URL for the current active bundle directory.
|
|
89
|
+
* Returns the file:// URL to the bundle directory without trailing slash.
|
|
90
|
+
* This is used for Expo DOM components to construct full asset paths.
|
|
91
|
+
*
|
|
92
|
+
* @returns Base URL string (e.g., "file:///data/.../bundle-store/abc123") or "" if not available
|
|
93
|
+
*/
|
|
94
|
+
getBaseURL: () => string;
|
|
95
|
+
|
|
87
96
|
// EventEmitter
|
|
88
97
|
addListener(eventName: string): void;
|
|
89
98
|
removeListeners(count: number): void;
|