@vanikya/ota-react-native 0.1.8 → 0.2.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/README.md +135 -1
- package/android/src/main/java/com/otaupdate/OTAUpdateModule.kt +94 -0
- package/app.plugin.js +201 -21
- package/ios/OTAUpdate.m +9 -0
- package/ios/OTAUpdate.swift +106 -0
- package/lib/commonjs/hooks/useOTAUpdate.js +22 -10
- package/lib/commonjs/hooks/useOTAUpdate.js.map +1 -1
- package/lib/commonjs/utils/storage.js +149 -0
- package/lib/commonjs/utils/storage.js.map +1 -1
- package/lib/module/hooks/useOTAUpdate.js +22 -10
- package/lib/module/hooks/useOTAUpdate.js.map +1 -1
- package/lib/module/utils/storage.js +149 -0
- package/lib/module/utils/storage.js.map +1 -1
- package/lib/typescript/hooks/useOTAUpdate.d.ts.map +1 -1
- package/lib/typescript/utils/storage.d.ts +24 -0
- package/lib/typescript/utils/storage.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/hooks/useOTAUpdate.ts +24 -16
- package/src/utils/storage.ts +170 -0
package/ios/OTAUpdate.swift
CHANGED
|
@@ -85,6 +85,70 @@ class OTAUpdate: NSObject {
|
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
+
// Download file directly to disk - bypasses JS memory entirely
|
|
89
|
+
// This is critical for large bundles (5MB+)
|
|
90
|
+
@objc
|
|
91
|
+
func downloadFile(_ urlString: String, destPath: String, resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
|
|
92
|
+
guard let url = URL(string: urlString) else {
|
|
93
|
+
rejecter("DOWNLOAD_ERROR", "Invalid URL: \(urlString)", nil)
|
|
94
|
+
return
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
let destURL = URL(fileURLWithPath: destPath)
|
|
98
|
+
|
|
99
|
+
// Ensure parent directory exists
|
|
100
|
+
let parentDir = destURL.deletingLastPathComponent()
|
|
101
|
+
do {
|
|
102
|
+
try FileManager.default.createDirectory(at: parentDir, withIntermediateDirectories: true, attributes: nil)
|
|
103
|
+
} catch {
|
|
104
|
+
rejecter("DOWNLOAD_ERROR", "Failed to create directory: \(error.localizedDescription)", error)
|
|
105
|
+
return
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
let task = URLSession.shared.downloadTask(with: url) { tempURL, response, error in
|
|
109
|
+
if let error = error {
|
|
110
|
+
rejecter("DOWNLOAD_ERROR", "Download failed: \(error.localizedDescription)", error)
|
|
111
|
+
return
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
guard let httpResponse = response as? HTTPURLResponse else {
|
|
115
|
+
rejecter("DOWNLOAD_ERROR", "Invalid response", nil)
|
|
116
|
+
return
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
guard httpResponse.statusCode == 200 else {
|
|
120
|
+
rejecter("DOWNLOAD_ERROR", "Download failed with status \(httpResponse.statusCode)", nil)
|
|
121
|
+
return
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
guard let tempURL = tempURL else {
|
|
125
|
+
rejecter("DOWNLOAD_ERROR", "No temporary file created", nil)
|
|
126
|
+
return
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
do {
|
|
130
|
+
// Remove existing file if it exists
|
|
131
|
+
if FileManager.default.fileExists(atPath: destPath) {
|
|
132
|
+
try FileManager.default.removeItem(atPath: destPath)
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// Move downloaded file to destination
|
|
136
|
+
try FileManager.default.moveItem(at: tempURL, to: destURL)
|
|
137
|
+
|
|
138
|
+
// Get file size
|
|
139
|
+
let attributes = try FileManager.default.attributesOfItem(atPath: destPath)
|
|
140
|
+
let fileSize = attributes[.size] as? Int64 ?? 0
|
|
141
|
+
|
|
142
|
+
let result: [String: Any] = ["fileSize": fileSize]
|
|
143
|
+
resolver(result)
|
|
144
|
+
} catch {
|
|
145
|
+
rejecter("DOWNLOAD_ERROR", "Failed to save file: \(error.localizedDescription)", error)
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
task.resume()
|
|
150
|
+
}
|
|
151
|
+
|
|
88
152
|
// MARK: - Cryptography
|
|
89
153
|
|
|
90
154
|
@objc
|
|
@@ -103,6 +167,48 @@ class OTAUpdate: NSObject {
|
|
|
103
167
|
resolver(hexString)
|
|
104
168
|
}
|
|
105
169
|
|
|
170
|
+
// Calculate SHA256 from file path - streams file to avoid memory issues
|
|
171
|
+
// Critical for large bundles (5MB+)
|
|
172
|
+
@objc
|
|
173
|
+
func calculateSHA256FromFile(_ filePath: String, resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
|
|
174
|
+
DispatchQueue.global(qos: .userInitiated).async {
|
|
175
|
+
guard FileManager.default.fileExists(atPath: filePath) else {
|
|
176
|
+
rejecter("FILE_ERROR", "File not found: \(filePath)", nil)
|
|
177
|
+
return
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
guard let inputStream = InputStream(fileAtPath: filePath) else {
|
|
181
|
+
rejecter("FILE_ERROR", "Could not open file: \(filePath)", nil)
|
|
182
|
+
return
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
inputStream.open()
|
|
186
|
+
defer { inputStream.close() }
|
|
187
|
+
|
|
188
|
+
var context = CC_SHA256_CTX()
|
|
189
|
+
CC_SHA256_Init(&context)
|
|
190
|
+
|
|
191
|
+
let bufferSize = 8192 // 8KB buffer
|
|
192
|
+
var buffer = [UInt8](repeating: 0, count: bufferSize)
|
|
193
|
+
|
|
194
|
+
while inputStream.hasBytesAvailable {
|
|
195
|
+
let bytesRead = inputStream.read(&buffer, maxLength: bufferSize)
|
|
196
|
+
if bytesRead > 0 {
|
|
197
|
+
CC_SHA256_Update(&context, buffer, CC_LONG(bytesRead))
|
|
198
|
+
} else if bytesRead < 0 {
|
|
199
|
+
rejecter("READ_ERROR", "Error reading file", inputStream.streamError)
|
|
200
|
+
return
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
var hash = [UInt8](repeating: 0, count: Int(CC_SHA256_DIGEST_LENGTH))
|
|
205
|
+
CC_SHA256_Final(&hash, &context)
|
|
206
|
+
|
|
207
|
+
let hexString = hash.map { String(format: "%02x", $0) }.joined()
|
|
208
|
+
resolver(hexString)
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
|
|
106
212
|
@objc
|
|
107
213
|
func verifySignature(_ base64Content: String, signatureHex: String, publicKeyHex: String, resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
|
|
108
214
|
// Ed25519 signature verification
|
|
@@ -8,7 +8,6 @@ var _react = require("react");
|
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
9
|
var _api = require("../utils/api");
|
|
10
10
|
var _storage = require("../utils/storage");
|
|
11
|
-
var _verification = require("../utils/verification");
|
|
12
11
|
// Generate or get device ID
|
|
13
12
|
async function getDeviceId() {
|
|
14
13
|
// Try to get from native module or AsyncStorage
|
|
@@ -125,23 +124,36 @@ function useOTAUpdate(config) {
|
|
|
125
124
|
deviceInfo: (0, _api.getDeviceInfo)()
|
|
126
125
|
});
|
|
127
126
|
|
|
128
|
-
// Download bundle
|
|
129
|
-
const
|
|
127
|
+
// Download bundle directly to file (bypasses JS memory - critical for large bundles)
|
|
128
|
+
const downloadResult = await storage.current.downloadBundleToFile(release.bundleUrl, release.id);
|
|
130
129
|
setDownloadProgress({
|
|
131
|
-
downloadedBytes:
|
|
130
|
+
downloadedBytes: downloadResult.fileSize,
|
|
132
131
|
totalBytes: release.bundleSize,
|
|
133
132
|
percentage: 100
|
|
134
133
|
});
|
|
135
134
|
|
|
136
|
-
// Verify bundle
|
|
135
|
+
// Verify bundle hash
|
|
137
136
|
setStatus('verifying');
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
137
|
+
|
|
138
|
+
// Calculate hash from file (streaming to avoid memory issues)
|
|
139
|
+
const actualHash = await storage.current.calculateBundleHash(release.id);
|
|
140
|
+
const expectedHashWithoutPrefix = release.bundleHash.replace(/^sha256:/, '');
|
|
141
|
+
if (actualHash !== expectedHashWithoutPrefix) {
|
|
142
|
+
// Delete corrupted bundle
|
|
143
|
+
await storage.current.deleteBundle(release.id);
|
|
144
|
+
throw new Error(`Bundle hash mismatch: expected ${expectedHashWithoutPrefix}, got ${actualHash}`);
|
|
141
145
|
}
|
|
142
146
|
|
|
143
|
-
//
|
|
144
|
-
const
|
|
147
|
+
// Validate bundle content (check it's actually JavaScript, not an error page)
|
|
148
|
+
const isValid = await storage.current.validateBundle(release.id);
|
|
149
|
+
if (!isValid) {
|
|
150
|
+
await storage.current.deleteBundle(release.id);
|
|
151
|
+
throw new Error('Downloaded content is not a valid JavaScript bundle');
|
|
152
|
+
}
|
|
153
|
+
if (__DEV__) {
|
|
154
|
+
console.log('[OTAUpdate] Bundle verified successfully');
|
|
155
|
+
}
|
|
156
|
+
const bundlePath = downloadResult.path;
|
|
145
157
|
|
|
146
158
|
// Save metadata
|
|
147
159
|
await storage.current.saveMetadata({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_api","_storage","_verification","getDeviceId","id","Math","random","toString","substring","useOTAUpdate","config","serverUrl","appSlug","channel","appVersion","publicKey","checkOnMount","checkOnForeground","status","setStatus","useState","updateInfo","setUpdateInfo","downloadProgress","setDownloadProgress","error","setError","currentVersion","setCurrentVersion","isDismissed","setIsDismissed","apiClient","useRef","OTAApiClient","storage","UpdateStorage","deviceIdRef","releaseRef","useEffect","loadCurrentVersion","metadata","current","getMetadata","version","getDeviceIdCached","useCallback","checkForUpdate","deviceId","currentMetadata","response","checkUpdate","platform","Platform","OS","updateAvailable","release","info","releaseId","bundleSize","isMandatory","releaseNotes","err","Error","String","downloadUpdate","downloadedBytes","totalBytes","percentage","reportEvent","eventType","deviceInfo","getDeviceInfo","bundleData","downloadBundle","bundleUrl","byteLength","verification","verifyBundle","bundleHash","bundleSignature","valid","bundlePath","saveBundle","saveMetadata","downloadedAt","Date","now","registered","registerBundleWithNative","__DEV__","console","log","errorMessage","message","applyUpdate","restartApp","clearPendingUpdate","deleteBundle","clearMetadata","clearNativePendingBundle","dismissUpdate","resetDismiss","handleAppStateChange","nextAppState","subscription","AppState","addEventListener","remove"],"sourceRoot":"../../../src","sources":["hooks/useOTAUpdate.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,IAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,aAAA,GAAAJ,OAAA;AAoDA;AACA,eAAeK,WAAWA,CAAA,EAAoB;EAC5C;EACA;EACA;EACA,MAAMC,EAAE,GAAG,UAAUC,IAAI,CAACC,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;EAClE,OAAOJ,EAAE;AACX;AAEO,SAASK,YAAYA,CAACC,MAAuB,EAAsB;EACxE,MAAM;IACJC,SAAS;IACTC,OAAO;IACPC,OAAO,GAAG,YAAY;IACtBC,UAAU;IACVC,SAAS;IACTC,YAAY,GAAG,IAAI;IACnBC,iBAAiB,GAAG;EACtB,CAAC,GAAGP,MAAM;EAEV,MAAM,CAACQ,MAAM,EAAEC,SAAS,CAAC,GAAG,IAAAC,eAAQ,EAAe,MAAM,CAAC;EAC1D,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAF,eAAQ,EAAoB,IAAI,CAAC;EACrE,MAAM,CAACG,gBAAgB,EAAEC,mBAAmB,CAAC,GAAG,IAAAJ,eAAQ,EAA0B,IAAI,CAAC;EACvF,MAAM,CAACK,KAAK,EAAEC,QAAQ,CAAC,GAAG,IAAAN,eAAQ,EAAe,IAAI,CAAC;EACtD,MAAM,CAACO,cAAc,EAAEC,iBAAiB,CAAC,GAAG,IAAAR,eAAQ,EAAgB,IAAI,CAAC;EACzE,MAAM,CAACS,WAAW,EAAEC,cAAc,CAAC,GAAG,IAAAV,eAAQ,EAAU,KAAK,CAAC;EAE9D,MAAMW,SAAS,GAAG,IAAAC,aAAM,EAAC,IAAIC,iBAAY,CAACtB,SAAS,CAAC,CAAC;EACrD,MAAMuB,OAAO,GAAG,IAAAF,aAAM,EAAC,IAAIG,sBAAa,CAAC,CAAC,CAAC;EAC3C,MAAMC,WAAW,GAAG,IAAAJ,aAAM,EAAgB,IAAI,CAAC;EAC/C,MAAMK,UAAU,GAAG,IAAAL,aAAM,EAAqB,IAAI,CAAC;;EAEnD;EACA,IAAAM,gBAAS,EAAC,MAAM;IACd,MAAMC,kBAAkB,GAAG,MAAAA,CAAA,KAAY;MACrC,MAAMC,QAAQ,GAAG,MAAMN,OAAO,CAACO,OAAO,CAACC,WAAW,CAAC,CAAC;MACpD,IAAIF,QAAQ,EAAE;QACZZ,iBAAiB,CAACY,QAAQ,CAACG,OAAO,CAAC;MACrC;IACF,CAAC;IACDJ,kBAAkB,CAAC,CAAC;EACtB,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA,MAAMK,iBAAiB,GAAG,IAAAC,kBAAW,EAAC,YAAY;IAChD,IAAI,CAACT,WAAW,CAACK,OAAO,EAAE;MACxBL,WAAW,CAACK,OAAO,GAAG,MAAMtC,WAAW,CAAC,CAAC;IAC3C;IACA,OAAOiC,WAAW,CAACK,OAAO;EAC5B,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA,MAAMK,cAAc,GAAG,IAAAD,kBAAW,EAAC,YAAwC;IACzE,IAAI;MACF1B,SAAS,CAAC,UAAU,CAAC;MACrBO,QAAQ,CAAC,IAAI,CAAC;MAEd,MAAMqB,QAAQ,GAAG,MAAMH,iBAAiB,CAAC,CAAC;MAC1C,MAAMI,eAAe,GAAG,MAAMd,OAAO,CAACO,OAAO,CAACC,WAAW,CAAC,CAAC;MAE3D,MAAMO,QAAQ,GAAG,MAAMlB,SAAS,CAACU,OAAO,CAACS,WAAW,CAAC;QACnDtC,OAAO;QACPC,OAAO;QACPsC,QAAQ,EAAEC,qBAAQ,CAACC,EAAuB;QAC1C1B,cAAc,EAAEqB,eAAe,EAAEL,OAAO,IAAI,IAAI;QAChD7B,UAAU;QACViC;MACF,CAAC,CAAC;MAEF,IAAI,CAACE,QAAQ,CAACK,eAAe,IAAI,CAACL,QAAQ,CAACM,OAAO,EAAE;QAClDpC,SAAS,CAAC,YAAY,CAAC;QACvB,OAAO,IAAI;MACb;MAEAkB,UAAU,CAACI,OAAO,GAAGQ,QAAQ,CAACM,OAAO;MAErC,MAAMC,IAAgB,GAAG;QACvBb,OAAO,EAAEM,QAAQ,CAACM,OAAO,CAACZ,OAAO;QACjCc,SAAS,EAAER,QAAQ,CAACM,OAAO,CAACnD,EAAE;QAC9BsD,UAAU,EAAET,QAAQ,CAACM,OAAO,CAACG,UAAU;QACvCC,WAAW,EAAEV,QAAQ,CAACM,OAAO,CAACI,WAAW;QACzCC,YAAY,EAAEX,QAAQ,CAACM,OAAO,CAACK;MACjC,CAAC;;MAED;MACA,IAAI,CAACvC,UAAU,IAAIA,UAAU,CAACsB,OAAO,KAAKa,IAAI,CAACb,OAAO,EAAE;QACtDb,cAAc,CAAC,KAAK,CAAC;MACvB;MAEAR,aAAa,CAACkC,IAAI,CAAC;MACnBrC,SAAS,CAAC,WAAW,CAAC;MAEtB,OAAOqC,IAAI;IACb,CAAC,CAAC,OAAOK,GAAG,EAAE;MACZ,MAAMpC,KAAK,GAAGoC,GAAG,YAAYC,KAAK,GAAGD,GAAG,GAAG,IAAIC,KAAK,CAACC,MAAM,CAACF,GAAG,CAAC,CAAC;MACjEnC,QAAQ,CAACD,KAAK,CAAC;MACfN,SAAS,CAAC,OAAO,CAAC;MAClB,OAAO,IAAI;IACb;EACF,CAAC,EAAE,CAACP,OAAO,EAAEC,OAAO,EAAEC,UAAU,EAAE8B,iBAAiB,CAAC,CAAC;;EAErD;EACA,MAAMoB,cAAc,GAAG,IAAAnB,kBAAW,EAAC,YAA2B;IAC5D,IAAI,CAACR,UAAU,CAACI,OAAO,EAAE;MACvB,MAAM,IAAIqB,KAAK,CAAC,iCAAiC,CAAC;IACpD;IAEA,MAAMP,OAAO,GAAGlB,UAAU,CAACI,OAAO;IAClC,MAAMM,QAAQ,GAAG,MAAMH,iBAAiB,CAAC,CAAC;IAE1C,IAAI;MACFzB,SAAS,CAAC,aAAa,CAAC;MACxBK,mBAAmB,CAAC;QAAEyC,eAAe,EAAE,CAAC;QAAEC,UAAU,EAAEX,OAAO,CAACG,UAAU;QAAES,UAAU,EAAE;MAAE,CAAC,CAAC;;MAE1F;MACApC,SAAS,CAACU,OAAO,CAAC2B,WAAW,CAAC;QAC5BxD,OAAO;QACP6C,SAAS,EAAEF,OAAO,CAACnD,EAAE;QACrB2C,QAAQ;QACRsB,SAAS,EAAE,UAAU;QACrBvD,UAAU;QACVwD,UAAU,EAAE,IAAAC,kBAAa,EAAC;MAC5B,CAAC,CAAC;;MAEF;MACA,MAAMC,UAAU,GAAG,MAAMzC,SAAS,CAACU,OAAO,CAACgC,cAAc,CAAClB,OAAO,CAACmB,SAAS,CAAC;MAE5ElD,mBAAmB,CAAC;QAClByC,eAAe,EAAEO,UAAU,CAACG,UAAU;QACtCT,UAAU,EAAEX,OAAO,CAACG,UAAU;QAC9BS,UAAU,EAAE;MACd,CAAC,CAAC;;MAEF;MACAhD,SAAS,CAAC,WAAW,CAAC;MAEtB,MAAMyD,YAAY,GAAG,MAAM,IAAAC,0BAAY,EACrCL,UAAU,EACVjB,OAAO,CAACuB,UAAU,EAClBvB,OAAO,CAACwB,eAAe,EACvBhE,SAAS,IAAI,IACf,CAAC;MAED,IAAI,CAAC6D,YAAY,CAACI,KAAK,EAAE;QACvB,MAAM,IAAIlB,KAAK,CAACc,YAAY,CAACnD,KAAK,IAAI,4BAA4B,CAAC;MACrE;;MAEA;MACA,MAAMwD,UAAU,GAAG,MAAM/C,OAAO,CAACO,OAAO,CAACyC,UAAU,CAAC3B,OAAO,CAACnD,EAAE,EAAEoE,UAAU,CAAC;;MAE3E;MACA,MAAMtC,OAAO,CAACO,OAAO,CAAC0C,YAAY,CAAC;QACjC1B,SAAS,EAAEF,OAAO,CAACnD,EAAE;QACrBuC,OAAO,EAAEY,OAAO,CAACZ,OAAO;QACxBsC,UAAU;QACVH,UAAU,EAAEvB,OAAO,CAACuB,UAAU;QAC9BM,YAAY,EAAEC,IAAI,CAACC,GAAG,CAAC;MACzB,CAAC,CAAC;;MAEF;MACA;MACA,MAAMC,UAAU,GAAG,MAAMrD,OAAO,CAACO,OAAO,CAAC+C,wBAAwB,CAACP,UAAU,EAAE,KAAK,CAAC;MAEpF,IAAIQ,OAAO,EAAE;QACX,IAAIF,UAAU,EAAE;UACdG,OAAO,CAACC,GAAG,CAAC,8EAA8E,CAAC;QAC7F,CAAC,MAAM;UACLD,OAAO,CAACC,GAAG,CAAC,wFAAwF,CAAC;QACvG;MACF;MAEAxE,SAAS,CAAC,OAAO,CAAC;IACpB,CAAC,CAAC,OAAO0C,GAAG,EAAE;MACZ,MAAMpC,KAAK,GAAGoC,GAAG,YAAYC,KAAK,GAAGD,GAAG,GAAG,IAAIC,KAAK,CAACC,MAAM,CAACF,GAAG,CAAC,CAAC;;MAEjE;MACA9B,SAAS,CAACU,OAAO,CAAC2B,WAAW,CAAC;QAC5BxD,OAAO;QACP6C,SAAS,EAAEF,OAAO,CAACnD,EAAE;QACrB2C,QAAQ;QACRsB,SAAS,EAAE,SAAS;QACpBuB,YAAY,EAAEnE,KAAK,CAACoE,OAAO;QAC3B/E,UAAU;QACVwD,UAAU,EAAE,IAAAC,kBAAa,EAAC;MAC5B,CAAC,CAAC;MAEF7C,QAAQ,CAACD,KAAK,CAAC;MACfN,SAAS,CAAC,OAAO,CAAC;MAClB,MAAMM,KAAK;IACb;EACF,CAAC,EAAE,CAACb,OAAO,EAAEE,UAAU,EAAEC,SAAS,EAAE6B,iBAAiB,CAAC,CAAC;;EAEvD;EACA,MAAMkD,WAAW,GAAG,IAAAjD,kBAAW,EAAC,OAAOkD,UAAmB,GAAG,IAAI,KAAoB;IACnF,MAAMvD,QAAQ,GAAG,MAAMN,OAAO,CAACO,OAAO,CAACC,WAAW,CAAC,CAAC;IAEpD,IAAI,CAACF,QAAQ,EAAE;MACb,MAAM,IAAIsB,KAAK,CAAC,8BAA8B,CAAC;IACjD;IAEA,MAAMf,QAAQ,GAAG,MAAMH,iBAAiB,CAAC,CAAC;IAE1C,IAAI;MACFzB,SAAS,CAAC,UAAU,CAAC;;MAErB;MACAY,SAAS,CAACU,OAAO,CAAC2B,WAAW,CAAC;QAC5BxD,OAAO;QACP6C,SAAS,EAAEjB,QAAQ,CAACiB,SAAS;QAC7BV,QAAQ;QACRsB,SAAS,EAAE,OAAO;QAClBvD,UAAU;QACVwD,UAAU,EAAE,IAAAC,kBAAa,EAAC;MAC5B,CAAC,CAAC;;MAEF;MACA;MACA,MAAMgB,UAAU,GAAG,MAAMrD,OAAO,CAACO,OAAO,CAAC+C,wBAAwB,CAAChD,QAAQ,CAACyC,UAAU,EAAEc,UAAU,CAAC;MAElG,IAAI,CAACR,UAAU,IAAIQ,UAAU,EAAE;QAC7B;QACA,IAAIN,OAAO,EAAE;UACXC,OAAO,CAACC,GAAG,CAAC,yEAAyE,CAAC;UACtFD,OAAO,CAACC,GAAG,CAAC,gFAAgF,CAAC;QAC/F;MACF,CAAC,MAAM,IAAIJ,UAAU,IAAI,CAACQ,UAAU,EAAE;QACpC,IAAIN,OAAO,EAAE;UACXC,OAAO,CAACC,GAAG,CAAC,gEAAgE,CAAC;QAC/E;MACF;;MAEA;MACA5D,SAAS,CAACU,OAAO,CAAC2B,WAAW,CAAC;QAC5BxD,OAAO;QACP6C,SAAS,EAAEjB,QAAQ,CAACiB,SAAS;QAC7BV,QAAQ;QACRsB,SAAS,EAAE,SAAS;QACpBvD,UAAU;QACVwD,UAAU,EAAE,IAAAC,kBAAa,EAAC;MAC5B,CAAC,CAAC;MAEF3C,iBAAiB,CAACY,QAAQ,CAACG,OAAO,CAAC;MACnCxB,SAAS,CAAC,MAAM,CAAC;IACnB,CAAC,CAAC,OAAO0C,GAAG,EAAE;MACZ,MAAMpC,KAAK,GAAGoC,GAAG,YAAYC,KAAK,GAAGD,GAAG,GAAG,IAAIC,KAAK,CAACC,MAAM,CAACF,GAAG,CAAC,CAAC;MAEjE9B,SAAS,CAACU,OAAO,CAAC2B,WAAW,CAAC;QAC5BxD,OAAO;QACP6C,SAAS,EAAEjB,QAAQ,CAACiB,SAAS;QAC7BV,QAAQ;QACRsB,SAAS,EAAE,SAAS;QACpBuB,YAAY,EAAEnE,KAAK,CAACoE,OAAO;QAC3B/E,UAAU;QACVwD,UAAU,EAAE,IAAAC,kBAAa,EAAC;MAC5B,CAAC,CAAC;MAEF7C,QAAQ,CAACD,KAAK,CAAC;MACfN,SAAS,CAAC,OAAO,CAAC;MAClB,MAAMM,KAAK;IACb;EACF,CAAC,EAAE,CAACb,OAAO,EAAEE,UAAU,EAAE8B,iBAAiB,CAAC,CAAC;;EAE5C;EACA,MAAMoD,kBAAkB,GAAG,IAAAnD,kBAAW,EAAC,YAA2B;IAChE,MAAML,QAAQ,GAAG,MAAMN,OAAO,CAACO,OAAO,CAACC,WAAW,CAAC,CAAC;IAEpD,IAAIF,QAAQ,EAAE;MACZ,MAAMN,OAAO,CAACO,OAAO,CAACwD,YAAY,CAACzD,QAAQ,CAACiB,SAAS,CAAC;MACtD,MAAMvB,OAAO,CAACO,OAAO,CAACyD,aAAa,CAAC,CAAC;IACvC;;IAEA;IACA,MAAMhE,OAAO,CAACO,OAAO,CAAC0D,wBAAwB,CAAC,CAAC;IAEhD7E,aAAa,CAAC,IAAI,CAAC;IACnBe,UAAU,CAACI,OAAO,GAAG,IAAI;IACzBtB,SAAS,CAAC,MAAM,CAAC;EACnB,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA,MAAMiF,aAAa,GAAG,IAAAvD,kBAAW,EAAC,MAAM;IACtCf,cAAc,CAAC,IAAI,CAAC;EACtB,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA,MAAMuE,YAAY,GAAG,IAAAxD,kBAAW,EAAC,MAAM;IACrCf,cAAc,CAAC,KAAK,CAAC;EACvB,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA,IAAAQ,gBAAS,EAAC,MAAM;IACd,IAAItB,YAAY,EAAE;MAChB8B,cAAc,CAAC,CAAC;IAClB;EACF,CAAC,EAAE,CAAC9B,YAAY,EAAE8B,cAAc,CAAC,CAAC;;EAElC;EACA,IAAAR,gBAAS,EAAC,MAAM;IACd,IAAI,CAACrB,iBAAiB,EAAE;IAExB,MAAMqF,oBAAoB,GAAIC,YAA4B,IAAK;MAC7D,IAAIA,YAAY,KAAK,QAAQ,IAAIrF,MAAM,KAAK,MAAM,EAAE;QAClD4B,cAAc,CAAC,CAAC;MAClB;IACF,CAAC;IAED,MAAM0D,YAAY,GAAGC,qBAAQ,CAACC,gBAAgB,CAAC,QAAQ,EAAEJ,oBAAoB,CAAC;IAE9E,OAAO,MAAM;MACXE,YAAY,CAACG,MAAM,CAAC,CAAC;IACvB,CAAC;EACH,CAAC,EAAE,CAAC1F,iBAAiB,EAAE6B,cAAc,EAAE5B,MAAM,CAAC,CAAC;EAE/C,OAAO;IACLA,MAAM;IACNG,UAAU;IACVE,gBAAgB;IAChBE,KAAK;IACLE,cAAc;IACdE,WAAW;IACXiB,cAAc;IACdkB,cAAc;IACd8B,WAAW;IACXE,kBAAkB;IAClBI,aAAa;IACbC;EACF,CAAC;AACH","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_api","_storage","getDeviceId","id","Math","random","toString","substring","useOTAUpdate","config","serverUrl","appSlug","channel","appVersion","publicKey","checkOnMount","checkOnForeground","status","setStatus","useState","updateInfo","setUpdateInfo","downloadProgress","setDownloadProgress","error","setError","currentVersion","setCurrentVersion","isDismissed","setIsDismissed","apiClient","useRef","OTAApiClient","storage","UpdateStorage","deviceIdRef","releaseRef","useEffect","loadCurrentVersion","metadata","current","getMetadata","version","getDeviceIdCached","useCallback","checkForUpdate","deviceId","currentMetadata","response","checkUpdate","platform","Platform","OS","updateAvailable","release","info","releaseId","bundleSize","isMandatory","releaseNotes","err","Error","String","downloadUpdate","downloadedBytes","totalBytes","percentage","reportEvent","eventType","deviceInfo","getDeviceInfo","downloadResult","downloadBundleToFile","bundleUrl","fileSize","actualHash","calculateBundleHash","expectedHashWithoutPrefix","bundleHash","replace","deleteBundle","isValid","validateBundle","__DEV__","console","log","bundlePath","path","saveMetadata","downloadedAt","Date","now","registered","registerBundleWithNative","errorMessage","message","applyUpdate","restartApp","clearPendingUpdate","clearMetadata","clearNativePendingBundle","dismissUpdate","resetDismiss","handleAppStateChange","nextAppState","subscription","AppState","addEventListener","remove"],"sourceRoot":"../../../src","sources":["hooks/useOTAUpdate.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -107,6 +107,61 @@ class ExpoStorageAdapter {
|
|
|
107
107
|
intermediates: true
|
|
108
108
|
});
|
|
109
109
|
}
|
|
110
|
+
async downloadToFile(url, destPath) {
|
|
111
|
+
// Use Expo's downloadAsync which downloads directly to file
|
|
112
|
+
// This bypasses JS memory entirely - critical for large bundles
|
|
113
|
+
const result = await ExpoFileSystem.downloadAsync(url, destPath);
|
|
114
|
+
if (result.status !== 200) {
|
|
115
|
+
throw new Error(`Download failed with status ${result.status}`);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// Get file size
|
|
119
|
+
const info = await ExpoFileSystem.getInfoAsync(destPath);
|
|
120
|
+
return {
|
|
121
|
+
fileSize: info.size || 0
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
async calculateHashFromFile(path) {
|
|
125
|
+
// For Expo, we need to read the file and use expo-crypto
|
|
126
|
+
// Try to use expo-crypto if available
|
|
127
|
+
let ExpoCrypto = null;
|
|
128
|
+
try {
|
|
129
|
+
ExpoCrypto = require('expo-crypto');
|
|
130
|
+
} catch {
|
|
131
|
+
// expo-crypto not available
|
|
132
|
+
}
|
|
133
|
+
if (ExpoCrypto?.digest) {
|
|
134
|
+
// Read file as base64 and convert to Uint8Array
|
|
135
|
+
const base64 = await ExpoFileSystem.readAsStringAsync(path, {
|
|
136
|
+
encoding: ExpoFileSystem.EncodingType.Base64
|
|
137
|
+
});
|
|
138
|
+
const binary = atob(base64);
|
|
139
|
+
const bytes = new Uint8Array(binary.length);
|
|
140
|
+
for (let i = 0; i < binary.length; i++) {
|
|
141
|
+
bytes[i] = binary.charCodeAt(i);
|
|
142
|
+
}
|
|
143
|
+
const hashBuffer = await ExpoCrypto.digest(ExpoCrypto.CryptoDigestAlgorithm.SHA256, bytes);
|
|
144
|
+
// Convert ArrayBuffer to hex
|
|
145
|
+
const hashBytes = new Uint8Array(hashBuffer);
|
|
146
|
+
return Array.from(hashBytes).map(b => b.toString(16).padStart(2, '0')).join('');
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// Fallback to SubtleCrypto if available
|
|
150
|
+
if (typeof crypto !== 'undefined' && crypto.subtle) {
|
|
151
|
+
const base64 = await ExpoFileSystem.readAsStringAsync(path, {
|
|
152
|
+
encoding: ExpoFileSystem.EncodingType.Base64
|
|
153
|
+
});
|
|
154
|
+
const binary = atob(base64);
|
|
155
|
+
const bytes = new Uint8Array(binary.length);
|
|
156
|
+
for (let i = 0; i < binary.length; i++) {
|
|
157
|
+
bytes[i] = binary.charCodeAt(i);
|
|
158
|
+
}
|
|
159
|
+
const hashBuffer = await crypto.subtle.digest('SHA-256', bytes.buffer);
|
|
160
|
+
const hashBytes = new Uint8Array(hashBuffer);
|
|
161
|
+
return Array.from(hashBytes).map(b => b.toString(16).padStart(2, '0')).join('');
|
|
162
|
+
}
|
|
163
|
+
throw new Error('No crypto implementation available for hash calculation');
|
|
164
|
+
}
|
|
110
165
|
}
|
|
111
166
|
|
|
112
167
|
// Native implementation for bare React Native
|
|
@@ -165,6 +220,50 @@ class NativeStorageAdapter {
|
|
|
165
220
|
}
|
|
166
221
|
await OTAUpdateNative.makeDirectory(path);
|
|
167
222
|
}
|
|
223
|
+
async downloadToFile(url, destPath) {
|
|
224
|
+
if (!OTAUpdateNative) {
|
|
225
|
+
throw new Error('OTAUpdate native module not found');
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
// Use native module's downloadFile method if available (preferred)
|
|
229
|
+
if (OTAUpdateNative.downloadFile) {
|
|
230
|
+
const result = await OTAUpdateNative.downloadFile(url, destPath);
|
|
231
|
+
return {
|
|
232
|
+
fileSize: result.fileSize || 0
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
// Fallback: download via fetch and write in chunks
|
|
237
|
+
// This is less efficient but works without native download support
|
|
238
|
+
const response = await fetch(url);
|
|
239
|
+
if (!response.ok) {
|
|
240
|
+
throw new Error(`Download failed with status ${response.status}`);
|
|
241
|
+
}
|
|
242
|
+
const data = await response.arrayBuffer();
|
|
243
|
+
const base64 = arrayBufferToBase64(data);
|
|
244
|
+
await OTAUpdateNative.writeFileBase64(destPath, base64);
|
|
245
|
+
return {
|
|
246
|
+
fileSize: data.byteLength
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
async calculateHashFromFile(path) {
|
|
250
|
+
if (!OTAUpdateNative) {
|
|
251
|
+
throw new Error('OTAUpdate native module not found');
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
// Use native module's calculateSHA256FromFile if available (preferred - streams file)
|
|
255
|
+
if (OTAUpdateNative.calculateSHA256FromFile) {
|
|
256
|
+
return OTAUpdateNative.calculateSHA256FromFile(path);
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
// Fallback: read file as base64 and use the base64 hash method
|
|
260
|
+
// This loads the file into memory, but is better than nothing
|
|
261
|
+
if (OTAUpdateNative.calculateSHA256 && OTAUpdateNative.readFileBase64) {
|
|
262
|
+
const base64 = await OTAUpdateNative.readFileBase64(path);
|
|
263
|
+
return OTAUpdateNative.calculateSHA256(base64);
|
|
264
|
+
}
|
|
265
|
+
throw new Error('No hash calculation method available');
|
|
266
|
+
}
|
|
168
267
|
}
|
|
169
268
|
|
|
170
269
|
// Factory function to get the appropriate storage adapter
|
|
@@ -259,6 +358,56 @@ class UpdateStorage {
|
|
|
259
358
|
// In a more advanced implementation, we might keep a few for rollback
|
|
260
359
|
}
|
|
261
360
|
|
|
361
|
+
/**
|
|
362
|
+
* Download bundle directly to file, bypassing JS memory.
|
|
363
|
+
* Critical for large bundles (5MB+).
|
|
364
|
+
*
|
|
365
|
+
* @param url The URL to download from
|
|
366
|
+
* @param releaseId The release ID (used for filename)
|
|
367
|
+
* @returns The normalized file path where bundle was saved
|
|
368
|
+
*/
|
|
369
|
+
async downloadBundleToFile(url, releaseId) {
|
|
370
|
+
await this.ensureDirectory();
|
|
371
|
+
const bundlePath = `${this.baseDir}${releaseId}.bundle`;
|
|
372
|
+
const result = await this.storage.downloadToFile(url, bundlePath);
|
|
373
|
+
|
|
374
|
+
// Return normalized path for native module compatibility
|
|
375
|
+
return {
|
|
376
|
+
path: normalizePath(bundlePath),
|
|
377
|
+
fileSize: result.fileSize
|
|
378
|
+
};
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
/**
|
|
382
|
+
* Calculate SHA256 hash of a stored bundle file.
|
|
383
|
+
* Uses streaming to avoid loading entire file into memory.
|
|
384
|
+
*
|
|
385
|
+
* @param releaseId The release ID of the bundle
|
|
386
|
+
* @returns The hash string (without 'sha256:' prefix)
|
|
387
|
+
*/
|
|
388
|
+
async calculateBundleHash(releaseId) {
|
|
389
|
+
const bundlePath = this.getRawBundlePath(releaseId);
|
|
390
|
+
if (!(await this.storage.exists(bundlePath))) {
|
|
391
|
+
throw new Error('Bundle file not found');
|
|
392
|
+
}
|
|
393
|
+
if (this.storage.calculateHashFromFile) {
|
|
394
|
+
return this.storage.calculateHashFromFile(bundlePath);
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
// Fallback: read file into memory and calculate hash
|
|
398
|
+
// This is not ideal for large files but works as a fallback
|
|
399
|
+
const data = await this.storage.readFileAsBuffer(bundlePath);
|
|
400
|
+
const bytes = new Uint8Array(data);
|
|
401
|
+
|
|
402
|
+
// Use SubtleCrypto if available
|
|
403
|
+
if (typeof crypto !== 'undefined' && crypto.subtle) {
|
|
404
|
+
const hashBuffer = await crypto.subtle.digest('SHA-256', bytes.buffer);
|
|
405
|
+
const hashBytes = new Uint8Array(hashBuffer);
|
|
406
|
+
return Array.from(hashBytes).map(b => b.toString(16).padStart(2, '0')).join('');
|
|
407
|
+
}
|
|
408
|
+
throw new Error('No hash calculation method available');
|
|
409
|
+
}
|
|
410
|
+
|
|
262
411
|
/**
|
|
263
412
|
* Validate that a stored bundle is a valid JavaScript file.
|
|
264
413
|
* This helps detect corrupted downloads (e.g., HTML error pages saved as bundles).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","normalizePath","path","startsWith","slice","arrayBufferToBase64","buffer","bytes","Uint8Array","chunkSize","chunks","i","length","chunk","subarray","Math","min","binary","j","String","fromCharCode","push","btoa","join","base64ToArrayBuffer","base64","atob","charCodeAt","ExpoFileSystem","OTAUpdateNative","NativeModules","OTAUpdate","ExpoStorageAdapter","getDocumentDirectory","documentDirectory","writeFile","data","ArrayBuffer","writeAsStringAsync","encoding","EncodingType","Base64","readFile","readAsStringAsync","readFileAsBuffer","deleteFile","deleteAsync","idempotent","exists","info","getInfoAsync","makeDirectory","makeDirectoryAsync","intermediates","NativeStorageAdapter","Error","writeFileBase64","readFileBase64","getStorageAdapter","UpdateStorage","constructor","storage","isExpo","baseDir","baseDirNormalized","ensureDirectory","getNormalizedPath","saveBundle","releaseId","bundlePath","getRawBundlePath","getBundlePath","readBundle","deleteBundle","saveMetadata","update","metadataPath","JSON","stringify","getMetadata","content","parse","clearMetadata","cleanOldBundles","keepReleaseId","validateBundle","bundleData","byteLength","preview","trimmed","trim","includes","jsIndicators","pattern","test","clearCorruptedBundle","metadata","isValid","__DEV__","console","warn","clearNativePendingBundle","error","registerBundleWithNative","restart","applyBundle","normalizedPath","log","clearPendingBundle","exports"],"sourceRoot":"../../../src","sources":["utils/storage.ts"],"mappings":";;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA;;AAmBA;AACA,SAASC,aAAaA,CAACC,IAAY,EAAU;EAC3C,IAAIA,IAAI,CAACC,UAAU,CAAC,SAAS,CAAC,EAAE;IAC9B,OAAOD,IAAI,CAACE,KAAK,CAAC,CAAC,CAAC;EACtB;EACA,OAAOF,IAAI;AACb;;AAEA;AACA;AACA;AACA,SAASG,mBAAmBA,CAACC,MAAmB,EAAU;EACxD,MAAMC,KAAK,GAAG,IAAIC,UAAU,CAACF,MAAM,CAAC;EACpC;EACA,MAAMG,SAAS,GAAG,KAAK;EACvB,MAAMC,MAAgB,GAAG,EAAE;EAE3B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGJ,KAAK,CAACK,MAAM,EAAED,CAAC,IAAIF,SAAS,EAAE;IAChD,MAAMI,KAAK,GAAGN,KAAK,CAACO,QAAQ,CAACH,CAAC,EAAEI,IAAI,CAACC,GAAG,CAACL,CAAC,GAAGF,SAAS,EAAEF,KAAK,CAACK,MAAM,CAAC,CAAC;IACtE,IAAIK,MAAM,GAAG,EAAE;IACf,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,KAAK,CAACD,MAAM,EAAEM,CAAC,EAAE,EAAE;MACrCD,MAAM,IAAIE,MAAM,CAACC,YAAY,CAACP,KAAK,CAACK,CAAC,CAAC,CAAC;IACzC;IACAR,MAAM,CAACW,IAAI,CAACC,IAAI,CAACL,MAAM,CAAC,CAAC;EAC3B;EAEA,OAAOP,MAAM,CAACa,IAAI,CAAC,EAAE,CAAC;AACxB;;AAEA;AACA,SAASC,mBAAmBA,CAACC,MAAc,EAAe;EACxD,MAAMR,MAAM,GAAGS,IAAI,CAACD,MAAM,CAAC;EAC3B,MAAMlB,KAAK,GAAG,IAAIC,UAAU,CAACS,MAAM,CAACL,MAAM,CAAC;EAC3C,KAAK,IAAID,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGM,MAAM,CAACL,MAAM,EAAED,CAAC,EAAE,EAAE;IACtCJ,KAAK,CAACI,CAAC,CAAC,GAAGM,MAAM,CAACU,UAAU,CAAChB,CAAC,CAAC;EACjC;EACA,OAAOJ,KAAK,CAACD,MAAM;AACrB;;AAEA;AACA;AACA,IAAIsB,cAAmB,GAAG,IAAI;AAC9B,IAAI;EACF;EACAA,cAAc,GAAG5B,OAAO,CAAC,yBAAyB,CAAC;AACrD,CAAC,CAAC,MAAM;EACN,IAAI;IACF;IACA4B,cAAc,GAAG5B,OAAO,CAAC,kBAAkB,CAAC;EAC9C,CAAC,CAAC,MAAM;IACN;EAAA;AAEJ;;AAEA;AACA,MAAM6B,eAAe,GAAGC,0BAAa,CAACC,SAAS;;AAE/C;AACA,MAAMC,kBAAkB,CAA2B;EACjDC,oBAAoBA,CAAA,EAAW;IAC7B,OAAOL,cAAc,CAACM,iBAAiB,IAAI,EAAE;EAC/C;EAEA,MAAMC,SAASA,CAACjC,IAAY,EAAEkC,IAA0B,EAAiB;IACvE,IAAIA,IAAI,YAAYC,WAAW,EAAE;MAC/B;MACA,MAAMZ,MAAM,GAAGpB,mBAAmB,CAAC+B,IAAI,CAAC;MACxC,MAAMR,cAAc,CAACU,kBAAkB,CAACpC,IAAI,EAAEuB,MAAM,EAAE;QACpDc,QAAQ,EAAEX,cAAc,CAACY,YAAY,CAACC;MACxC,CAAC,CAAC;IACJ,CAAC,MAAM;MACL,MAAMb,cAAc,CAACU,kBAAkB,CAACpC,IAAI,EAAEkC,IAAI,CAAC;IACrD;EACF;EAEA,MAAMM,QAAQA,CAACxC,IAAY,EAAmB;IAC5C,OAAO0B,cAAc,CAACe,iBAAiB,CAACzC,IAAI,CAAC;EAC/C;EAEA,MAAM0C,gBAAgBA,CAAC1C,IAAY,EAAwB;IACzD,MAAMuB,MAAM,GAAG,MAAMG,cAAc,CAACe,iBAAiB,CAACzC,IAAI,EAAE;MAC1DqC,QAAQ,EAAEX,cAAc,CAACY,YAAY,CAACC;IACxC,CAAC,CAAC;IACF,MAAMxB,MAAM,GAAGS,IAAI,CAACD,MAAM,CAAC;IAC3B,MAAMlB,KAAK,GAAG,IAAIC,UAAU,CAACS,MAAM,CAACL,MAAM,CAAC;IAC3C,KAAK,IAAID,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGM,MAAM,CAACL,MAAM,EAAED,CAAC,EAAE,EAAE;MACtCJ,KAAK,CAACI,CAAC,CAAC,GAAGM,MAAM,CAACU,UAAU,CAAChB,CAAC,CAAC;IACjC;IACA,OAAOJ,KAAK,CAACD,MAAM;EACrB;EAEA,MAAMuC,UAAUA,CAAC3C,IAAY,EAAiB;IAC5C,MAAM0B,cAAc,CAACkB,WAAW,CAAC5C,IAAI,EAAE;MAAE6C,UAAU,EAAE;IAAK,CAAC,CAAC;EAC9D;EAEA,MAAMC,MAAMA,CAAC9C,IAAY,EAAoB;IAC3C,MAAM+C,IAAI,GAAG,MAAMrB,cAAc,CAACsB,YAAY,CAAChD,IAAI,CAAC;IACpD,OAAO+C,IAAI,CAACD,MAAM;EACpB;EAEA,MAAMG,aAAaA,CAACjD,IAAY,EAAiB;IAC/C,MAAM0B,cAAc,CAACwB,kBAAkB,CAAClD,IAAI,EAAE;MAAEmD,aAAa,EAAE;IAAK,CAAC,CAAC;EACxE;AACF;;AAEA;AACA,MAAMC,oBAAoB,CAA2B;EACnDrB,oBAAoBA,CAAA,EAAW;IAC7B,IAAI,CAACJ,eAAe,EAAE;MACpB,MAAM,IAAI0B,KAAK,CAAC,8DAA8D,CAAC;IACjF;IACA,OAAO1B,eAAe,CAACI,oBAAoB,CAAC,CAAC;EAC/C;EAEA,MAAME,SAASA,CAACjC,IAAY,EAAEkC,IAA0B,EAAiB;IACvE,IAAI,CAACP,eAAe,EAAE;MACpB,MAAM,IAAI0B,KAAK,CAAC,mCAAmC,CAAC;IACtD;IAEA,IAAInB,IAAI,YAAYC,WAAW,EAAE;MAC/B;MACA,MAAMZ,MAAM,GAAGpB,mBAAmB,CAAC+B,IAAI,CAAC;MACxC,MAAMP,eAAe,CAAC2B,eAAe,CAACtD,IAAI,EAAEuB,MAAM,CAAC;IACrD,CAAC,MAAM;MACL,MAAMI,eAAe,CAACM,SAAS,CAACjC,IAAI,EAAEkC,IAAI,CAAC;IAC7C;EACF;EAEA,MAAMM,QAAQA,CAACxC,IAAY,EAAmB;IAC5C,IAAI,CAAC2B,eAAe,EAAE;MACpB,MAAM,IAAI0B,KAAK,CAAC,mCAAmC,CAAC;IACtD;IACA,OAAO1B,eAAe,CAACa,QAAQ,CAACxC,IAAI,CAAC;EACvC;EAEA,MAAM0C,gBAAgBA,CAAC1C,IAAY,EAAwB;IACzD,IAAI,CAAC2B,eAAe,EAAE;MACpB,MAAM,IAAI0B,KAAK,CAAC,mCAAmC,CAAC;IACtD;IACA,MAAM9B,MAAc,GAAG,MAAMI,eAAe,CAAC4B,cAAc,CAACvD,IAAI,CAAC;IACjE,MAAMe,MAAM,GAAGS,IAAI,CAACD,MAAM,CAAC;IAC3B,MAAMlB,KAAK,GAAG,IAAIC,UAAU,CAACS,MAAM,CAACL,MAAM,CAAC;IAC3C,KAAK,IAAID,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGM,MAAM,CAACL,MAAM,EAAED,CAAC,EAAE,EAAE;MACtCJ,KAAK,CAACI,CAAC,CAAC,GAAGM,MAAM,CAACU,UAAU,CAAChB,CAAC,CAAC;IACjC;IACA,OAAOJ,KAAK,CAACD,MAAM;EACrB;EAEA,MAAMuC,UAAUA,CAAC3C,IAAY,EAAiB;IAC5C,IAAI,CAAC2B,eAAe,EAAE;MACpB,MAAM,IAAI0B,KAAK,CAAC,mCAAmC,CAAC;IACtD;IACA,MAAM1B,eAAe,CAACgB,UAAU,CAAC3C,IAAI,CAAC;EACxC;EAEA,MAAM8C,MAAMA,CAAC9C,IAAY,EAAoB;IAC3C,IAAI,CAAC2B,eAAe,EAAE;MACpB,MAAM,IAAI0B,KAAK,CAAC,mCAAmC,CAAC;IACtD;IACA,OAAO1B,eAAe,CAACmB,MAAM,CAAC9C,IAAI,CAAC;EACrC;EAEA,MAAMiD,aAAaA,CAACjD,IAAY,EAAiB;IAC/C,IAAI,CAAC2B,eAAe,EAAE;MACpB,MAAM,IAAI0B,KAAK,CAAC,mCAAmC,CAAC;IACtD;IACA,MAAM1B,eAAe,CAACsB,aAAa,CAACjD,IAAI,CAAC;EAC3C;AACF;;AAEA;AACO,SAASwD,iBAAiBA,CAAA,EAAmB;EAClD,IAAI9B,cAAc,EAAE;IAClB,OAAO,IAAII,kBAAkB,CAAC,CAAC;EACjC;EAEA,IAAIH,eAAe,EAAE;IACnB,OAAO,IAAIyB,oBAAoB,CAAC,CAAC;EACnC;EAEA,MAAM,IAAIC,KAAK,CACb,6FACF,CAAC;AACH;;AAEA;AACO,MAAMI,aAAa,CAAC;EAMzBC,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,OAAO,GAAGH,iBAAiB,CAAC,CAAC;IAClC,IAAI,CAACI,MAAM,GAAG,CAAC,CAAClC,cAAc;IAC9B,IAAI,CAACmC,OAAO,GAAG,GAAG,IAAI,CAACF,OAAO,CAAC5B,oBAAoB,CAAC,CAAC,aAAa;IAClE;IACA,IAAI,CAAC+B,iBAAiB,GAAG/D,aAAa,CAAC,IAAI,CAAC8D,OAAO,CAAC;EACtD;EAEA,MAAcE,eAAeA,CAAA,EAAkB;IAC7C,MAAMjB,MAAM,GAAG,MAAM,IAAI,CAACa,OAAO,CAACb,MAAM,CAAC,IAAI,CAACe,OAAO,CAAC;IACtD,IAAI,CAACf,MAAM,EAAE;MACX,MAAM,IAAI,CAACa,OAAO,CAACV,aAAa,CAAC,IAAI,CAACY,OAAO,CAAC;IAChD;EACF;;EAEA;EACAG,iBAAiBA,CAAChE,IAAY,EAAU;IACtC,OAAOD,aAAa,CAACC,IAAI,CAAC;EAC5B;EAEA,MAAMiE,UAAUA,CAACC,SAAiB,EAAEhC,IAAiB,EAAmB;IACtE,MAAM,IAAI,CAAC6B,eAAe,CAAC,CAAC;IAE5B,MAAMI,UAAU,GAAG,GAAG,IAAI,CAACN,OAAO,GAAGK,SAAS,SAAS;IACvD,MAAM,IAAI,CAACP,OAAO,CAAC1B,SAAS,CAACkC,UAAU,EAAEjC,IAAI,CAAC;;IAE9C;IACA,OAAOnC,aAAa,CAACoE,UAAU,CAAC;EAClC;;EAEA;EACQC,gBAAgBA,CAACF,SAAiB,EAAU;IAClD,OAAO,GAAG,IAAI,CAACL,OAAO,GAAGK,SAAS,SAAS;EAC7C;EAEA,MAAMG,aAAaA,CAACH,SAAiB,EAA0B;IAC7D,MAAMC,UAAU,GAAG,IAAI,CAACC,gBAAgB,CAACF,SAAS,CAAC;IACnD,MAAMpB,MAAM,GAAG,MAAM,IAAI,CAACa,OAAO,CAACb,MAAM,CAACqB,UAAU,CAAC;IACpD;IACA,OAAOrB,MAAM,GAAG/C,aAAa,CAACoE,UAAU,CAAC,GAAG,IAAI;EAClD;EAEA,MAAMG,UAAUA,CAACJ,SAAiB,EAA+B;IAC/D,MAAMC,UAAU,GAAG,IAAI,CAACC,gBAAgB,CAACF,SAAS,CAAC;IACnD,MAAMpB,MAAM,GAAG,MAAM,IAAI,CAACa,OAAO,CAACb,MAAM,CAACqB,UAAU,CAAC;IACpD,IAAI,CAACrB,MAAM,EAAE,OAAO,IAAI;;IAExB;IACA,OAAO,IAAI,CAACa,OAAO,CAACjB,gBAAgB,CAACyB,UAAU,CAAC;EAClD;EAEA,MAAMI,YAAYA,CAACL,SAAiB,EAAiB;IACnD,MAAMC,UAAU,GAAG,IAAI,CAACC,gBAAgB,CAACF,SAAS,CAAC;IACnD,IAAI,MAAM,IAAI,CAACP,OAAO,CAACb,MAAM,CAACqB,UAAU,CAAC,EAAE;MACzC,MAAM,IAAI,CAACR,OAAO,CAAChB,UAAU,CAACwB,UAAU,CAAC;IAC3C;EACF;EAEA,MAAMK,YAAYA,CAACC,MAAoB,EAAiB;IACtD,MAAM,IAAI,CAACV,eAAe,CAAC,CAAC;IAE5B,MAAMW,YAAY,GAAG,GAAG,IAAI,CAACb,OAAO,cAAc;IAClD,MAAM,IAAI,CAACF,OAAO,CAAC1B,SAAS,CAACyC,YAAY,EAAEC,IAAI,CAACC,SAAS,CAACH,MAAM,CAAC,CAAC;EACpE;EAEA,MAAMI,WAAWA,CAAA,EAAiC;IAChD,MAAMH,YAAY,GAAG,GAAG,IAAI,CAACb,OAAO,cAAc;IAElD,IAAI;MACF,IAAI,MAAM,IAAI,CAACF,OAAO,CAACb,MAAM,CAAC4B,YAAY,CAAC,EAAE;QAC3C,MAAMI,OAAO,GAAG,MAAM,IAAI,CAACnB,OAAO,CAACnB,QAAQ,CAACkC,YAAY,CAAC;QACzD,OAAOC,IAAI,CAACI,KAAK,CAACD,OAAO,CAAC;MAC5B;IACF,CAAC,CAAC,MAAM;MACN;IAAA;IAGF,OAAO,IAAI;EACb;EAEA,MAAME,aAAaA,CAAA,EAAkB;IACnC,MAAMN,YAAY,GAAG,GAAG,IAAI,CAACb,OAAO,cAAc;IAClD,IAAI,MAAM,IAAI,CAACF,OAAO,CAACb,MAAM,CAAC4B,YAAY,CAAC,EAAE;MAC3C,MAAM,IAAI,CAACf,OAAO,CAAChB,UAAU,CAAC+B,YAAY,CAAC;IAC7C;EACF;EAEA,MAAMO,eAAeA,CAACC,aAAqB,EAAiB;IAC1D;IACA;EAAA;;EAGF;AACF;AACA;AACA;AACA;AACA;AACA;EACE,MAAMC,cAAcA,CAACjB,SAAiB,EAAoB;IACxD,IAAI;MACF,MAAMkB,UAAU,GAAG,MAAM,IAAI,CAACd,UAAU,CAACJ,SAAS,CAAC;MACnD,IAAI,CAACkB,UAAU,EAAE;QACf,OAAO,KAAK;MACd;;MAEA;MACA,IAAIA,UAAU,CAACC,UAAU,GAAG,EAAE,EAAE;QAC9B,OAAO,KAAK;MACd;;MAEA;MACA,MAAMhF,KAAK,GAAG,IAAIC,UAAU,CAAC8E,UAAU,EAAE,CAAC,EAAEvE,IAAI,CAACC,GAAG,CAAC,IAAI,EAAEsE,UAAU,CAACC,UAAU,CAAC,CAAC;MAClF,IAAIC,OAAO,GAAG,EAAE;MAChB,KAAK,IAAI7E,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGJ,KAAK,CAACK,MAAM,EAAED,CAAC,EAAE,EAAE;QACrC6E,OAAO,IAAIrE,MAAM,CAACC,YAAY,CAACb,KAAK,CAACI,CAAC,CAAC,CAAC;MAC1C;MACA,MAAM8E,OAAO,GAAGD,OAAO,CAACE,IAAI,CAAC,CAAC;;MAE9B;MACA,IACED,OAAO,CAACtF,UAAU,CAAC,WAAW,CAAC,IAC/BsF,OAAO,CAACtF,UAAU,CAAC,WAAW,CAAC,IAC/BsF,OAAO,CAACtF,UAAU,CAAC,OAAO,CAAC,IAC3BsF,OAAO,CAACtF,UAAU,CAAC,OAAO,CAAC,IAC3BsF,OAAO,CAACE,QAAQ,CAAC,QAAQ,CAAC,IAC1BF,OAAO,CAACE,QAAQ,CAAC,QAAQ,CAAC,EAC1B;QACA,OAAO,KAAK;MACd;;MAEA;MACA,MAAMC,YAAY,GAAG,CACnB,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,aAAa,EACb,YAAY,EACZ,qBAAqB,EACrB,yBAAyB,EACzB,QAAQ,EACR,SAAS,EACT,eAAe,EACf,wBAAwB,CACzB;MAED,KAAK,MAAMC,OAAO,IAAID,YAAY,EAAE;QAClC,IAAIC,OAAO,CAACC,IAAI,CAACL,OAAO,CAAC,EAAE;UACzB,OAAO,IAAI;QACb;MACF;;MAEA;MACA,IACEA,OAAO,CAACE,QAAQ,CAAC,UAAU,CAAC,IAC5BF,OAAO,CAACE,QAAQ,CAAC,SAAS,CAAC,IAC3BF,OAAO,CAACE,QAAQ,CAAC,UAAU,CAAC,IAC5BF,OAAO,CAACE,QAAQ,CAAC,MAAM,CAAC,EACxB;QACA,OAAO,IAAI;MACb;MAEA,OAAO,KAAK;IACd,CAAC,CAAC,MAAM;MACN,OAAO,KAAK;IACd;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE,MAAMI,oBAAoBA,CAAA,EAAqB;IAC7C,IAAI;MACF,MAAMC,QAAQ,GAAG,MAAM,IAAI,CAACjB,WAAW,CAAC,CAAC;MACzC,IAAI,CAACiB,QAAQ,EAAE;QACb,OAAO,KAAK;MACd;MAEA,MAAMC,OAAO,GAAG,MAAM,IAAI,CAACZ,cAAc,CAACW,QAAQ,CAAC5B,SAAS,CAAC;MAC7D,IAAI,CAAC6B,OAAO,EAAE;QACZ,IAAIC,OAAO,EAAE;UACXC,OAAO,CAACC,IAAI,CAAC,oDAAoD,CAAC;QACpE;;QAEA;QACA,MAAM,IAAI,CAAC3B,YAAY,CAACuB,QAAQ,CAAC5B,SAAS,CAAC;QAC3C,MAAM,IAAI,CAACc,aAAa,CAAC,CAAC;QAC1B,MAAM,IAAI,CAACmB,wBAAwB,CAAC,CAAC;QAErC,OAAO,IAAI;MACb;MAEA,OAAO,KAAK;IACd,CAAC,CAAC,OAAOC,KAAK,EAAE;MACd,IAAIJ,OAAO,EAAE;QACXC,OAAO,CAACG,KAAK,CAAC,oCAAoC,EAAEA,KAAK,CAAC;MAC5D;MACA,OAAO,KAAK;IACd;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMC,wBAAwBA,CAAClC,UAAkB,EAAEmC,OAAgB,GAAG,KAAK,EAAoB;IAC7F,IAAI;MACF,IAAI3E,eAAe,EAAE4E,WAAW,EAAE;QAChC;QACA,MAAMC,cAAc,GAAGzG,aAAa,CAACoE,UAAU,CAAC;QAChD,MAAMxC,eAAe,CAAC4E,WAAW,CAACC,cAAc,EAAEF,OAAO,CAAC;QAC1D,OAAO,IAAI;MACb,CAAC,MAAM;QACL;QACA;QACA,IAAIN,OAAO,EAAE;UACXC,OAAO,CAACQ,GAAG,CAAC,+FAA+F,CAAC;QAC9G;QACA,OAAO,KAAK;MACd;IACF,CAAC,CAAC,OAAOL,KAAK,EAAE;MACd,IAAIJ,OAAO,EAAE;QACXC,OAAO,CAACG,KAAK,CAAC,2DAA2D,EAAEA,KAAK,CAAC;MACnF;MACA,OAAO,KAAK;IACd;EACF;;EAEA;AACF;AACA;AACA;EACE,MAAMD,wBAAwBA,CAAA,EAAkB;IAC9C,IAAI;MACF,IAAIxE,eAAe,EAAE+E,kBAAkB,EAAE;QACvC,MAAM/E,eAAe,CAAC+E,kBAAkB,CAAC,CAAC;MAC5C;IACF,CAAC,CAAC,OAAON,KAAK,EAAE;MACd,IAAIJ,OAAO,EAAE;QACXC,OAAO,CAACG,KAAK,CAAC,6CAA6C,EAAEA,KAAK,CAAC;MACrE;IACF;EACF;AACF;AAACO,OAAA,CAAAlD,aAAA,GAAAA,aAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_reactNative","require","normalizePath","path","startsWith","slice","arrayBufferToBase64","buffer","bytes","Uint8Array","chunkSize","chunks","i","length","chunk","subarray","Math","min","binary","j","String","fromCharCode","push","btoa","join","base64ToArrayBuffer","base64","atob","charCodeAt","ExpoFileSystem","OTAUpdateNative","NativeModules","OTAUpdate","ExpoStorageAdapter","getDocumentDirectory","documentDirectory","writeFile","data","ArrayBuffer","writeAsStringAsync","encoding","EncodingType","Base64","readFile","readAsStringAsync","readFileAsBuffer","deleteFile","deleteAsync","idempotent","exists","info","getInfoAsync","makeDirectory","makeDirectoryAsync","intermediates","downloadToFile","url","destPath","result","downloadAsync","status","Error","fileSize","size","calculateHashFromFile","ExpoCrypto","digest","hashBuffer","CryptoDigestAlgorithm","SHA256","hashBytes","Array","from","map","b","toString","padStart","crypto","subtle","NativeStorageAdapter","writeFileBase64","readFileBase64","downloadFile","response","fetch","ok","arrayBuffer","byteLength","calculateSHA256FromFile","calculateSHA256","getStorageAdapter","UpdateStorage","constructor","storage","isExpo","baseDir","baseDirNormalized","ensureDirectory","getNormalizedPath","saveBundle","releaseId","bundlePath","getRawBundlePath","getBundlePath","readBundle","deleteBundle","saveMetadata","update","metadataPath","JSON","stringify","getMetadata","content","parse","clearMetadata","cleanOldBundles","keepReleaseId","downloadBundleToFile","calculateBundleHash","validateBundle","bundleData","preview","trimmed","trim","includes","jsIndicators","pattern","test","clearCorruptedBundle","metadata","isValid","__DEV__","console","warn","clearNativePendingBundle","error","registerBundleWithNative","restart","applyBundle","normalizedPath","log","clearPendingBundle","exports"],"sourceRoot":"../../../src","sources":["utils/storage.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,7 +2,6 @@ import { useState, useCallback, useEffect, useRef } from 'react';
|
|
|
2
2
|
import { AppState, Platform } from 'react-native';
|
|
3
3
|
import { OTAApiClient, getDeviceInfo } from '../utils/api';
|
|
4
4
|
import { UpdateStorage } from '../utils/storage';
|
|
5
|
-
import { verifyBundle } from '../utils/verification';
|
|
6
5
|
// Generate or get device ID
|
|
7
6
|
async function getDeviceId() {
|
|
8
7
|
// Try to get from native module or AsyncStorage
|
|
@@ -119,23 +118,36 @@ export function useOTAUpdate(config) {
|
|
|
119
118
|
deviceInfo: getDeviceInfo()
|
|
120
119
|
});
|
|
121
120
|
|
|
122
|
-
// Download bundle
|
|
123
|
-
const
|
|
121
|
+
// Download bundle directly to file (bypasses JS memory - critical for large bundles)
|
|
122
|
+
const downloadResult = await storage.current.downloadBundleToFile(release.bundleUrl, release.id);
|
|
124
123
|
setDownloadProgress({
|
|
125
|
-
downloadedBytes:
|
|
124
|
+
downloadedBytes: downloadResult.fileSize,
|
|
126
125
|
totalBytes: release.bundleSize,
|
|
127
126
|
percentage: 100
|
|
128
127
|
});
|
|
129
128
|
|
|
130
|
-
// Verify bundle
|
|
129
|
+
// Verify bundle hash
|
|
131
130
|
setStatus('verifying');
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
131
|
+
|
|
132
|
+
// Calculate hash from file (streaming to avoid memory issues)
|
|
133
|
+
const actualHash = await storage.current.calculateBundleHash(release.id);
|
|
134
|
+
const expectedHashWithoutPrefix = release.bundleHash.replace(/^sha256:/, '');
|
|
135
|
+
if (actualHash !== expectedHashWithoutPrefix) {
|
|
136
|
+
// Delete corrupted bundle
|
|
137
|
+
await storage.current.deleteBundle(release.id);
|
|
138
|
+
throw new Error(`Bundle hash mismatch: expected ${expectedHashWithoutPrefix}, got ${actualHash}`);
|
|
135
139
|
}
|
|
136
140
|
|
|
137
|
-
//
|
|
138
|
-
const
|
|
141
|
+
// Validate bundle content (check it's actually JavaScript, not an error page)
|
|
142
|
+
const isValid = await storage.current.validateBundle(release.id);
|
|
143
|
+
if (!isValid) {
|
|
144
|
+
await storage.current.deleteBundle(release.id);
|
|
145
|
+
throw new Error('Downloaded content is not a valid JavaScript bundle');
|
|
146
|
+
}
|
|
147
|
+
if (__DEV__) {
|
|
148
|
+
console.log('[OTAUpdate] Bundle verified successfully');
|
|
149
|
+
}
|
|
150
|
+
const bundlePath = downloadResult.path;
|
|
139
151
|
|
|
140
152
|
// Save metadata
|
|
141
153
|
await storage.current.saveMetadata({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useState","useCallback","useEffect","useRef","AppState","Platform","OTAApiClient","getDeviceInfo","UpdateStorage","
|
|
1
|
+
{"version":3,"names":["useState","useCallback","useEffect","useRef","AppState","Platform","OTAApiClient","getDeviceInfo","UpdateStorage","getDeviceId","id","Math","random","toString","substring","useOTAUpdate","config","serverUrl","appSlug","channel","appVersion","publicKey","checkOnMount","checkOnForeground","status","setStatus","updateInfo","setUpdateInfo","downloadProgress","setDownloadProgress","error","setError","currentVersion","setCurrentVersion","isDismissed","setIsDismissed","apiClient","storage","deviceIdRef","releaseRef","loadCurrentVersion","metadata","current","getMetadata","version","getDeviceIdCached","checkForUpdate","deviceId","currentMetadata","response","checkUpdate","platform","OS","updateAvailable","release","info","releaseId","bundleSize","isMandatory","releaseNotes","err","Error","String","downloadUpdate","downloadedBytes","totalBytes","percentage","reportEvent","eventType","deviceInfo","downloadResult","downloadBundleToFile","bundleUrl","fileSize","actualHash","calculateBundleHash","expectedHashWithoutPrefix","bundleHash","replace","deleteBundle","isValid","validateBundle","__DEV__","console","log","bundlePath","path","saveMetadata","downloadedAt","Date","now","registered","registerBundleWithNative","errorMessage","message","applyUpdate","restartApp","clearPendingUpdate","clearMetadata","clearNativePendingBundle","dismissUpdate","resetDismiss","handleAppStateChange","nextAppState","subscription","addEventListener","remove"],"sourceRoot":"../../../src","sources":["hooks/useOTAUpdate.ts"],"mappings":"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","ignoreList":[]}
|