@vanikya/ota-react-native 0.1.7 → 0.1.9

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.
Files changed (36) hide show
  1. package/README.md +82 -7
  2. package/android/src/main/java/com/otaupdate/OTAUpdateModule.kt +94 -0
  3. package/ios/OTAUpdate.m +9 -0
  4. package/ios/OTAUpdate.swift +106 -0
  5. package/lib/commonjs/hooks/useOTAUpdate.js +42 -11
  6. package/lib/commonjs/hooks/useOTAUpdate.js.map +1 -1
  7. package/lib/commonjs/index.js +1 -1
  8. package/lib/commonjs/utils/api.js +53 -1
  9. package/lib/commonjs/utils/api.js.map +1 -1
  10. package/lib/commonjs/utils/storage.js +265 -13
  11. package/lib/commonjs/utils/storage.js.map +1 -1
  12. package/lib/commonjs/utils/verification.js +23 -12
  13. package/lib/commonjs/utils/verification.js.map +1 -1
  14. package/lib/module/hooks/useOTAUpdate.js +42 -11
  15. package/lib/module/hooks/useOTAUpdate.js.map +1 -1
  16. package/lib/module/index.js +1 -1
  17. package/lib/module/utils/api.js +53 -1
  18. package/lib/module/utils/api.js.map +1 -1
  19. package/lib/module/utils/storage.js +265 -13
  20. package/lib/module/utils/storage.js.map +1 -1
  21. package/lib/module/utils/verification.js +23 -12
  22. package/lib/module/utils/verification.js.map +1 -1
  23. package/lib/typescript/hooks/useOTAUpdate.d.ts +3 -0
  24. package/lib/typescript/hooks/useOTAUpdate.d.ts.map +1 -1
  25. package/lib/typescript/index.d.ts +1 -1
  26. package/lib/typescript/utils/api.d.ts +1 -0
  27. package/lib/typescript/utils/api.d.ts.map +1 -1
  28. package/lib/typescript/utils/storage.d.ts +39 -0
  29. package/lib/typescript/utils/storage.d.ts.map +1 -1
  30. package/lib/typescript/utils/verification.d.ts.map +1 -1
  31. package/package.json +2 -2
  32. package/src/hooks/useOTAUpdate.ts +46 -16
  33. package/src/index.ts +1 -1
  34. package/src/utils/api.ts +81 -1
  35. package/src/utils/storage.ts +317 -13
  36. package/src/utils/verification.ts +25 -12
@@ -16,6 +16,35 @@ function normalizePath(path) {
16
16
  return path;
17
17
  }
18
18
 
19
+ // Convert ArrayBuffer to base64 in chunks to avoid btoa() size limits
20
+ // btoa() can fail for strings > 2MB on some JS engines
21
+ // Chunk size must be multiple of 3 to avoid base64 padding issues between chunks
22
+ function arrayBufferToBase64(buffer) {
23
+ const bytes = new Uint8Array(buffer);
24
+ // 32766 is divisible by 3, so each chunk produces valid base64 without padding (except last)
25
+ const chunkSize = 32766;
26
+ const chunks = [];
27
+ for (let i = 0; i < bytes.length; i += chunkSize) {
28
+ const chunk = bytes.subarray(i, Math.min(i + chunkSize, bytes.length));
29
+ let binary = '';
30
+ for (let j = 0; j < chunk.length; j++) {
31
+ binary += String.fromCharCode(chunk[j]);
32
+ }
33
+ chunks.push(btoa(binary));
34
+ }
35
+ return chunks.join('');
36
+ }
37
+
38
+ // Convert base64 to ArrayBuffer
39
+ function base64ToArrayBuffer(base64) {
40
+ const binary = atob(base64);
41
+ const bytes = new Uint8Array(binary.length);
42
+ for (let i = 0; i < binary.length; i++) {
43
+ bytes[i] = binary.charCodeAt(i);
44
+ }
45
+ return bytes.buffer;
46
+ }
47
+
19
48
  // Try to use Expo FileSystem if available
20
49
  // Use legacy API to avoid deprecation warnings in expo-file-system v54+
21
50
  let ExpoFileSystem = null;
@@ -41,13 +70,8 @@ class ExpoStorageAdapter {
41
70
  }
42
71
  async writeFile(path, data) {
43
72
  if (data instanceof ArrayBuffer) {
44
- // Convert ArrayBuffer to base64
45
- const bytes = new Uint8Array(data);
46
- let binary = '';
47
- for (let i = 0; i < bytes.length; i++) {
48
- binary += String.fromCharCode(bytes[i]);
49
- }
50
- const base64 = btoa(binary);
73
+ // Convert ArrayBuffer to base64 using chunked approach for large bundles
74
+ const base64 = arrayBufferToBase64(data);
51
75
  await ExpoFileSystem.writeAsStringAsync(path, base64, {
52
76
  encoding: ExpoFileSystem.EncodingType.Base64
53
77
  });
@@ -83,6 +107,61 @@ class ExpoStorageAdapter {
83
107
  intermediates: true
84
108
  });
85
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
+ }
86
165
  }
87
166
 
88
167
  // Native implementation for bare React Native
@@ -98,12 +177,8 @@ class NativeStorageAdapter {
98
177
  throw new Error('OTAUpdate native module not found');
99
178
  }
100
179
  if (data instanceof ArrayBuffer) {
101
- const bytes = new Uint8Array(data);
102
- let binary = '';
103
- for (let i = 0; i < bytes.length; i++) {
104
- binary += String.fromCharCode(bytes[i]);
105
- }
106
- const base64 = btoa(binary);
180
+ // Convert ArrayBuffer to base64 using chunked approach for large bundles
181
+ const base64 = arrayBufferToBase64(data);
107
182
  await OTAUpdateNative.writeFileBase64(path, base64);
108
183
  } else {
109
184
  await OTAUpdateNative.writeFile(path, data);
@@ -145,6 +220,50 @@ class NativeStorageAdapter {
145
220
  }
146
221
  await OTAUpdateNative.makeDirectory(path);
147
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
+ }
148
267
  }
149
268
 
150
269
  // Factory function to get the appropriate storage adapter
@@ -239,6 +358,139 @@ class UpdateStorage {
239
358
  // In a more advanced implementation, we might keep a few for rollback
240
359
  }
241
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
+
411
+ /**
412
+ * Validate that a stored bundle is a valid JavaScript file.
413
+ * This helps detect corrupted downloads (e.g., HTML error pages saved as bundles).
414
+ *
415
+ * @param releaseId The release ID to validate
416
+ * @returns true if bundle is valid JavaScript, false otherwise
417
+ */
418
+ async validateBundle(releaseId) {
419
+ try {
420
+ const bundleData = await this.readBundle(releaseId);
421
+ if (!bundleData) {
422
+ return false;
423
+ }
424
+
425
+ // Check minimum size
426
+ if (bundleData.byteLength < 10) {
427
+ return false;
428
+ }
429
+
430
+ // Read first 1000 bytes to check content
431
+ const bytes = new Uint8Array(bundleData, 0, Math.min(1000, bundleData.byteLength));
432
+ let preview = '';
433
+ for (let i = 0; i < bytes.length; i++) {
434
+ preview += String.fromCharCode(bytes[i]);
435
+ }
436
+ const trimmed = preview.trim();
437
+
438
+ // Check for HTML indicators (common error page patterns)
439
+ if (trimmed.startsWith('<!DOCTYPE') || trimmed.startsWith('<!doctype') || trimmed.startsWith('<html') || trimmed.startsWith('<HTML') || trimmed.includes('<head>') || trimmed.includes('<body>')) {
440
+ return false;
441
+ }
442
+
443
+ // Accept if it looks like JavaScript
444
+ const jsIndicators = [/^var\s/, /^let\s/, /^const\s/, /^\(function/, /^!function/, /^["']use strict["']/, /^Object\.defineProperty/, /^__d\(/, /^\/[/*]/, /^"use strict"/, /^__BUNDLE_START_TIME__/];
445
+ for (const pattern of jsIndicators) {
446
+ if (pattern.test(trimmed)) {
447
+ return true;
448
+ }
449
+ }
450
+
451
+ // Also check for common JS tokens in minified bundles
452
+ if (trimmed.includes('function') || trimmed.includes('exports') || trimmed.includes('require(') || trimmed.includes('__d(')) {
453
+ return true;
454
+ }
455
+ return false;
456
+ } catch {
457
+ return false;
458
+ }
459
+ }
460
+
461
+ /**
462
+ * Clear corrupted bundle if detected.
463
+ * Call this on app startup to recover from bad OTA updates.
464
+ *
465
+ * @returns true if a corrupted bundle was cleared, false otherwise
466
+ */
467
+ async clearCorruptedBundle() {
468
+ try {
469
+ const metadata = await this.getMetadata();
470
+ if (!metadata) {
471
+ return false;
472
+ }
473
+ const isValid = await this.validateBundle(metadata.releaseId);
474
+ if (!isValid) {
475
+ if (__DEV__) {
476
+ console.warn('[OTAUpdate] Detected corrupted bundle, clearing...');
477
+ }
478
+
479
+ // Clear the corrupted bundle
480
+ await this.deleteBundle(metadata.releaseId);
481
+ await this.clearMetadata();
482
+ await this.clearNativePendingBundle();
483
+ return true;
484
+ }
485
+ return false;
486
+ } catch (error) {
487
+ if (__DEV__) {
488
+ console.error('[OTAUpdate] Error checking bundle:', error);
489
+ }
490
+ return false;
491
+ }
492
+ }
493
+
242
494
  /**
243
495
  * Register the bundle path with the native module.
244
496
  * This saves the path to SharedPreferences (Android) or UserDefaults (iOS)
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","normalizePath","path","startsWith","slice","ExpoFileSystem","OTAUpdateNative","NativeModules","OTAUpdate","ExpoStorageAdapter","getDocumentDirectory","documentDirectory","writeFile","data","ArrayBuffer","bytes","Uint8Array","binary","i","length","String","fromCharCode","base64","btoa","writeAsStringAsync","encoding","EncodingType","Base64","readFile","readAsStringAsync","readFileAsBuffer","atob","charCodeAt","buffer","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","registerBundleWithNative","restart","applyBundle","normalizedPath","__DEV__","console","log","error","clearNativePendingBundle","clearPendingBundle","exports"],"sourceRoot":"../../../src","sources":["utils/storage.ts"],"mappings":"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","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":[]}
@@ -32,16 +32,31 @@ function hexToBytes(hex) {
32
32
  return bytes;
33
33
  }
34
34
 
35
+ // Convert ArrayBuffer to base64 in chunks to avoid btoa() size limits
36
+ // btoa() can fail for strings > 2MB on some JS engines
37
+ // Chunk size must be multiple of 3 to avoid base64 padding issues between chunks
38
+ function arrayBufferToBase64(buffer) {
39
+ const bytes = new Uint8Array(buffer);
40
+ // 32766 is divisible by 3, so each chunk produces valid base64 without padding (except last)
41
+ const chunkSize = 32766;
42
+ const chunks = [];
43
+ for (let i = 0; i < bytes.length; i += chunkSize) {
44
+ const chunk = bytes.subarray(i, Math.min(i + chunkSize, bytes.length));
45
+ let binary = '';
46
+ for (let j = 0; j < chunk.length; j++) {
47
+ binary += String.fromCharCode(chunk[j]);
48
+ }
49
+ chunks.push(btoa(binary));
50
+ }
51
+ return chunks.join('');
52
+ }
53
+
35
54
  // Calculate SHA-256 hash of data
36
55
  async function calculateHash(data) {
37
56
  // Use native module first (most reliable for binary data)
38
57
  if (OTAUpdateNative?.calculateSHA256) {
39
- const bytes = new Uint8Array(data);
40
- let binary = '';
41
- for (let i = 0; i < bytes.length; i++) {
42
- binary += String.fromCharCode(bytes[i]);
43
- }
44
- const base64 = btoa(binary);
58
+ // Use chunked base64 encoding for large bundles
59
+ const base64 = arrayBufferToBase64(data);
45
60
  const hash = await OTAUpdateNative.calculateSHA256(base64);
46
61
  return 'sha256:' + hash;
47
62
  }
@@ -71,12 +86,8 @@ async function verifySignature(data, signatureHex, publicKeyHex) {
71
86
  // We rely on native modules or skip if not available
72
87
 
73
88
  if (OTAUpdateNative?.verifySignature) {
74
- const bytes = new Uint8Array(data);
75
- let binary = '';
76
- for (let i = 0; i < bytes.length; i++) {
77
- binary += String.fromCharCode(bytes[i]);
78
- }
79
- const base64 = btoa(binary);
89
+ // Use chunked base64 encoding for large bundles
90
+ const base64 = arrayBufferToBase64(data);
80
91
  return OTAUpdateNative.verifySignature(base64, signatureHex, publicKeyHex);
81
92
  }
82
93
 
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","ExpoCrypto","OTAUpdateNative","NativeModules","OTAUpdate","bufferToHex","buffer","bytes","Uint8Array","Array","from","map","b","toString","padStart","join","hexToBytes","hex","length","i","parseInt","substr","calculateHash","data","calculateSHA256","binary","String","fromCharCode","base64","btoa","hash","digest","hashBuffer","CryptoDigestAlgorithm","SHA256","crypto","subtle","Error","verifyBundleHash","expectedHash","actualHash","verifySignature","signatureHex","publicKeyHex","__DEV__","console","warn","verifyBundle","signature","publicKey","hashValid","error","valid","signatureValid"],"sourceRoot":"../../../src","sources":["utils/verification.ts"],"mappings":";;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA;AACA,IAAIC,UAAe,GAAG,IAAI;AAC1B,IAAI;EACFA,UAAU,GAAGD,OAAO,CAAC,aAAa,CAAC;AACrC,CAAC,CAAC,MAAM;EACN;AAAA;AAGF,MAAME,eAAe,GAAGC,0BAAa,CAACC,SAAS;;AAE/C;AACA,SAASC,WAAWA,CAACC,MAAmB,EAAU;EAChD,MAAMC,KAAK,GAAG,IAAIC,UAAU,CAACF,MAAM,CAAC;EACpC,OAAOG,KAAK,CAACC,IAAI,CAACH,KAAK,CAAC,CACrBI,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CACzCC,IAAI,CAAC,EAAE,CAAC;AACb;;AAEA;AACA,SAASC,UAAUA,CAACC,GAAW,EAAc;EAC3C,MAAMV,KAAK,GAAG,IAAIC,UAAU,CAACS,GAAG,CAACC,MAAM,GAAG,CAAC,CAAC;EAC5C,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,GAAG,CAACC,MAAM,EAAEC,CAAC,IAAI,CAAC,EAAE;IACtCZ,KAAK,CAACY,CAAC,GAAG,CAAC,CAAC,GAAGC,QAAQ,CAACH,GAAG,CAACI,MAAM,CAACF,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;EAC/C;EACA,OAAOZ,KAAK;AACd;;AAEA;AACO,eAAee,aAAaA,CAACC,IAAiB,EAAmB;EACtE;EACA,IAAIrB,eAAe,EAAEsB,eAAe,EAAE;IACpC,MAAMjB,KAAK,GAAG,IAAIC,UAAU,CAACe,IAAI,CAAC;IAClC,IAAIE,MAAM,GAAG,EAAE;IACf,KAAK,IAAIN,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGZ,KAAK,CAACW,MAAM,EAAEC,CAAC,EAAE,EAAE;MACrCM,MAAM,IAAIC,MAAM,CAACC,YAAY,CAACpB,KAAK,CAACY,CAAC,CAAC,CAAC;IACzC;IACA,MAAMS,MAAM,GAAGC,IAAI,CAACJ,MAAM,CAAC;IAC3B,MAAMK,IAAI,GAAG,MAAM5B,eAAe,CAACsB,eAAe,CAACI,MAAM,CAAC;IAC1D,OAAO,SAAS,GAAGE,IAAI;EACzB;EAEA,IAAI7B,UAAU,EAAE8B,MAAM,EAAE;IACtB;IACA,MAAMC,UAAU,GAAG,MAAM/B,UAAU,CAAC8B,MAAM,CACxC9B,UAAU,CAACgC,qBAAqB,CAACC,MAAM,EACvC,IAAI1B,UAAU,CAACe,IAAI,CACrB,CAAC;IACD,OAAO,SAAS,GAAGlB,WAAW,CAAC2B,UAAU,CAAC;EAC5C;;EAEA;EACA,IAAI,OAAOG,MAAM,KAAK,WAAW,IAAIA,MAAM,CAACC,MAAM,EAAE;IAClD,MAAMJ,UAAU,GAAG,MAAMG,MAAM,CAACC,MAAM,CAACL,MAAM,CAAC,SAAS,EAAER,IAAI,CAAC;IAC9D,OAAO,SAAS,GAAGlB,WAAW,CAAC2B,UAAU,CAAC;EAC5C;EAEA,MAAM,IAAIK,KAAK,CAAC,oCAAoC,CAAC;AACvD;;AAEA;AACO,eAAeC,gBAAgBA,CACpCf,IAAiB,EACjBgB,YAAoB,EACF;EAClB,MAAMC,UAAU,GAAG,MAAMlB,aAAa,CAACC,IAAI,CAAC;EAC5C,OAAOiB,UAAU,KAAKD,YAAY;AACpC;;AAEA;AACO,eAAeE,eAAeA,CACnClB,IAAiB,EACjBmB,YAAoB,EACpBC,YAAoB,EACF;EAClB;EACA;;EAEA,IAAIzC,eAAe,EAAEuC,eAAe,EAAE;IACpC,MAAMlC,KAAK,GAAG,IAAIC,UAAU,CAACe,IAAI,CAAC;IAClC,IAAIE,MAAM,GAAG,EAAE;IACf,KAAK,IAAIN,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGZ,KAAK,CAACW,MAAM,EAAEC,CAAC,EAAE,EAAE;MACrCM,MAAM,IAAIC,MAAM,CAACC,YAAY,CAACpB,KAAK,CAACY,CAAC,CAAC,CAAC;IACzC;IACA,MAAMS,MAAM,GAAGC,IAAI,CAACJ,MAAM,CAAC;IAC3B,OAAOvB,eAAe,CAACuC,eAAe,CAACb,MAAM,EAAEc,YAAY,EAAEC,YAAY,CAAC;EAC5E;;EAEA;EACA;EACA,IAAIC,OAAO,EAAE;IACXC,OAAO,CAACC,IAAI,CACV,yEACF,CAAC;EACH;EAEA,OAAO,IAAI,CAAC,CAAC;AACf;;AAEA;;AAQO,eAAeC,YAAYA,CAChCxB,IAAiB,EACjBgB,YAAoB,EACpBS,SAAwB,EACxBC,SAAwB,EACK;EAC7B;EACA,IAAIC,SAAS,GAAG,KAAK;EACrB,IAAI;IACFA,SAAS,GAAG,MAAMZ,gBAAgB,CAACf,IAAI,EAAEgB,YAAY,CAAC;EACxD,CAAC,CAAC,OAAOY,KAAK,EAAE;IACd,OAAO;MACLC,KAAK,EAAE,KAAK;MACZF,SAAS,EAAE,KAAK;MAChBG,cAAc,EAAE,KAAK;MACrBF,KAAK,EAAE,6BAA6BA,KAAK;IAC3C,CAAC;EACH;EAEA,IAAI,CAACD,SAAS,EAAE;IACd,OAAO;MACLE,KAAK,EAAE,KAAK;MACZF,SAAS,EAAE,KAAK;MAChBG,cAAc,EAAE,KAAK;MACrBF,KAAK,EAAE;IACT,CAAC;EACH;;EAEA;EACA,IAAIE,cAAc,GAAG,IAAI;EACzB,IAAIL,SAAS,IAAIC,SAAS,EAAE;IAC1B,IAAI;MACFI,cAAc,GAAG,MAAMZ,eAAe,CAAClB,IAAI,EAAEyB,SAAS,EAAEC,SAAS,CAAC;IACpE,CAAC,CAAC,OAAOE,KAAK,EAAE;MACd,OAAO;QACLC,KAAK,EAAE,KAAK;QACZF,SAAS,EAAE,IAAI;QACfG,cAAc,EAAE,KAAK;QACrBF,KAAK,EAAE,kCAAkCA,KAAK;MAChD,CAAC;IACH;IAEA,IAAI,CAACE,cAAc,EAAE;MACnB,OAAO;QACLD,KAAK,EAAE,KAAK;QACZF,SAAS,EAAE,IAAI;QACfG,cAAc,EAAE,KAAK;QACrBF,KAAK,EAAE;MACT,CAAC;IACH;EACF;EAEA,OAAO;IACLC,KAAK,EAAE,IAAI;IACXF,SAAS,EAAE,IAAI;IACfG;EACF,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","ExpoCrypto","OTAUpdateNative","NativeModules","OTAUpdate","bufferToHex","buffer","bytes","Uint8Array","Array","from","map","b","toString","padStart","join","hexToBytes","hex","length","i","parseInt","substr","arrayBufferToBase64","chunkSize","chunks","chunk","subarray","Math","min","binary","j","String","fromCharCode","push","btoa","calculateHash","data","calculateSHA256","base64","hash","digest","hashBuffer","CryptoDigestAlgorithm","SHA256","crypto","subtle","Error","verifyBundleHash","expectedHash","actualHash","verifySignature","signatureHex","publicKeyHex","__DEV__","console","warn","verifyBundle","signature","publicKey","hashValid","error","valid","signatureValid"],"sourceRoot":"../../../src","sources":["utils/verification.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
@@ -26,6 +25,7 @@ export function useOTAUpdate(config) {
26
25
  const [downloadProgress, setDownloadProgress] = useState(null);
27
26
  const [error, setError] = useState(null);
28
27
  const [currentVersion, setCurrentVersion] = useState(null);
28
+ const [isDismissed, setIsDismissed] = useState(false);
29
29
  const apiClient = useRef(new OTAApiClient(serverUrl));
30
30
  const storage = useRef(new UpdateStorage());
31
31
  const deviceIdRef = useRef(null);
@@ -77,6 +77,11 @@ export function useOTAUpdate(config) {
77
77
  isMandatory: response.release.isMandatory,
78
78
  releaseNotes: response.release.releaseNotes
79
79
  };
80
+
81
+ // Reset dismiss state if this is a different version than what was previously dismissed
82
+ if (!updateInfo || updateInfo.version !== info.version) {
83
+ setIsDismissed(false);
84
+ }
80
85
  setUpdateInfo(info);
81
86
  setStatus('available');
82
87
  return info;
@@ -113,23 +118,36 @@ export function useOTAUpdate(config) {
113
118
  deviceInfo: getDeviceInfo()
114
119
  });
115
120
 
116
- // Download bundle
117
- const bundleData = await apiClient.current.downloadBundle(release.bundleUrl);
121
+ // Download bundle directly to file (bypasses JS memory - critical for large bundles)
122
+ const downloadResult = await storage.current.downloadBundleToFile(release.bundleUrl, release.id);
118
123
  setDownloadProgress({
119
- downloadedBytes: bundleData.byteLength,
124
+ downloadedBytes: downloadResult.fileSize,
120
125
  totalBytes: release.bundleSize,
121
126
  percentage: 100
122
127
  });
123
128
 
124
- // Verify bundle
129
+ // Verify bundle hash
125
130
  setStatus('verifying');
126
- const verification = await verifyBundle(bundleData, release.bundleHash, release.bundleSignature, publicKey || null);
127
- if (!verification.valid) {
128
- throw new Error(verification.error || 'Bundle verification failed');
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}`);
129
139
  }
130
140
 
131
- // Save bundle
132
- const bundlePath = await storage.current.saveBundle(release.id, bundleData);
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;
133
151
 
134
152
  // Save metadata
135
153
  await storage.current.saveMetadata({
@@ -248,6 +266,16 @@ export function useOTAUpdate(config) {
248
266
  setStatus('idle');
249
267
  }, []);
250
268
 
269
+ // Dismiss the update notification (user can hide the banner)
270
+ const dismissUpdate = useCallback(() => {
271
+ setIsDismissed(true);
272
+ }, []);
273
+
274
+ // Reset dismiss state (useful when a new update is found)
275
+ const resetDismiss = useCallback(() => {
276
+ setIsDismissed(false);
277
+ }, []);
278
+
251
279
  // Check on mount
252
280
  useEffect(() => {
253
281
  if (checkOnMount) {
@@ -274,10 +302,13 @@ export function useOTAUpdate(config) {
274
302
  downloadProgress,
275
303
  error,
276
304
  currentVersion,
305
+ isDismissed,
277
306
  checkForUpdate,
278
307
  downloadUpdate,
279
308
  applyUpdate,
280
- clearPendingUpdate
309
+ clearPendingUpdate,
310
+ dismissUpdate,
311
+ resetDismiss
281
312
  };
282
313
  }
283
314
  //# sourceMappingURL=useOTAUpdate.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useState","useCallback","useEffect","useRef","AppState","Platform","OTAApiClient","getDeviceInfo","UpdateStorage","verifyBundle","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","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","bundleData","downloadBundle","bundleUrl","byteLength","verification","bundleHash","bundleSignature","valid","bundlePath","saveBundle","saveMetadata","downloadedAt","Date","now","registered","registerBundleWithNative","__DEV__","console","log","errorMessage","message","applyUpdate","restartApp","clearPendingUpdate","deleteBundle","clearMetadata","clearNativePendingBundle","handleAppStateChange","nextAppState","subscription","addEventListener","remove"],"sourceRoot":"../../../src","sources":["hooks/useOTAUpdate.ts"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,WAAW,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAChE,SAASC,QAAQ,EAAkBC,QAAQ,QAAQ,cAAc;AACjE,SAASC,YAAY,EAAeC,aAAa,QAAQ,cAAc;AACvE,SAASC,aAAa,QAAsB,kBAAkB;AAC9D,SAASC,YAAY,QAA4B,uBAAuB;AAiDxE;AACA,eAAeC,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;AAEA,OAAO,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,GAAG1B,QAAQ,CAAe,MAAM,CAAC;EAC1D,MAAM,CAAC2B,UAAU,EAAEC,aAAa,CAAC,GAAG5B,QAAQ,CAAoB,IAAI,CAAC;EACrE,MAAM,CAAC6B,gBAAgB,EAAEC,mBAAmB,CAAC,GAAG9B,QAAQ,CAA0B,IAAI,CAAC;EACvF,MAAM,CAAC+B,KAAK,EAAEC,QAAQ,CAAC,GAAGhC,QAAQ,CAAe,IAAI,CAAC;EACtD,MAAM,CAACiC,cAAc,EAAEC,iBAAiB,CAAC,GAAGlC,QAAQ,CAAgB,IAAI,CAAC;EAEzE,MAAMmC,SAAS,GAAGhC,MAAM,CAAC,IAAIG,YAAY,CAACY,SAAS,CAAC,CAAC;EACrD,MAAMkB,OAAO,GAAGjC,MAAM,CAAC,IAAIK,aAAa,CAAC,CAAC,CAAC;EAC3C,MAAM6B,WAAW,GAAGlC,MAAM,CAAgB,IAAI,CAAC;EAC/C,MAAMmC,UAAU,GAAGnC,MAAM,CAAqB,IAAI,CAAC;;EAEnD;EACAD,SAAS,CAAC,MAAM;IACd,MAAMqC,kBAAkB,GAAG,MAAAA,CAAA,KAAY;MACrC,MAAMC,QAAQ,GAAG,MAAMJ,OAAO,CAACK,OAAO,CAACC,WAAW,CAAC,CAAC;MACpD,IAAIF,QAAQ,EAAE;QACZN,iBAAiB,CAACM,QAAQ,CAACG,OAAO,CAAC;MACrC;IACF,CAAC;IACDJ,kBAAkB,CAAC,CAAC;EACtB,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA,MAAMK,iBAAiB,GAAG3C,WAAW,CAAC,YAAY;IAChD,IAAI,CAACoC,WAAW,CAACI,OAAO,EAAE;MACxBJ,WAAW,CAACI,OAAO,GAAG,MAAM/B,WAAW,CAAC,CAAC;IAC3C;IACA,OAAO2B,WAAW,CAACI,OAAO;EAC5B,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA,MAAMI,cAAc,GAAG5C,WAAW,CAAC,YAAwC;IACzE,IAAI;MACFyB,SAAS,CAAC,UAAU,CAAC;MACrBM,QAAQ,CAAC,IAAI,CAAC;MAEd,MAAMc,QAAQ,GAAG,MAAMF,iBAAiB,CAAC,CAAC;MAC1C,MAAMG,eAAe,GAAG,MAAMX,OAAO,CAACK,OAAO,CAACC,WAAW,CAAC,CAAC;MAE3D,MAAMM,QAAQ,GAAG,MAAMb,SAAS,CAACM,OAAO,CAACQ,WAAW,CAAC;QACnD9B,OAAO;QACPC,OAAO;QACP8B,QAAQ,EAAE7C,QAAQ,CAAC8C,EAAuB;QAC1ClB,cAAc,EAAEc,eAAe,EAAEJ,OAAO,IAAI,IAAI;QAChDtB,UAAU;QACVyB;MACF,CAAC,CAAC;MAEF,IAAI,CAACE,QAAQ,CAACI,eAAe,IAAI,CAACJ,QAAQ,CAACK,OAAO,EAAE;QAClD3B,SAAS,CAAC,YAAY,CAAC;QACvB,OAAO,IAAI;MACb;MAEAY,UAAU,CAACG,OAAO,GAAGO,QAAQ,CAACK,OAAO;MAErC,MAAMC,IAAgB,GAAG;QACvBX,OAAO,EAAEK,QAAQ,CAACK,OAAO,CAACV,OAAO;QACjCY,SAAS,EAAEP,QAAQ,CAACK,OAAO,CAAC1C,EAAE;QAC9B6C,UAAU,EAAER,QAAQ,CAACK,OAAO,CAACG,UAAU;QACvCC,WAAW,EAAET,QAAQ,CAACK,OAAO,CAACI,WAAW;QACzCC,YAAY,EAAEV,QAAQ,CAACK,OAAO,CAACK;MACjC,CAAC;MAED9B,aAAa,CAAC0B,IAAI,CAAC;MACnB5B,SAAS,CAAC,WAAW,CAAC;MAEtB,OAAO4B,IAAI;IACb,CAAC,CAAC,OAAOK,GAAG,EAAE;MACZ,MAAM5B,KAAK,GAAG4B,GAAG,YAAYC,KAAK,GAAGD,GAAG,GAAG,IAAIC,KAAK,CAACC,MAAM,CAACF,GAAG,CAAC,CAAC;MACjE3B,QAAQ,CAACD,KAAK,CAAC;MACfL,SAAS,CAAC,OAAO,CAAC;MAClB,OAAO,IAAI;IACb;EACF,CAAC,EAAE,CAACP,OAAO,EAAEC,OAAO,EAAEC,UAAU,EAAEuB,iBAAiB,CAAC,CAAC;;EAErD;EACA,MAAMkB,cAAc,GAAG7D,WAAW,CAAC,YAA2B;IAC5D,IAAI,CAACqC,UAAU,CAACG,OAAO,EAAE;MACvB,MAAM,IAAImB,KAAK,CAAC,iCAAiC,CAAC;IACpD;IAEA,MAAMP,OAAO,GAAGf,UAAU,CAACG,OAAO;IAClC,MAAMK,QAAQ,GAAG,MAAMF,iBAAiB,CAAC,CAAC;IAE1C,IAAI;MACFlB,SAAS,CAAC,aAAa,CAAC;MACxBI,mBAAmB,CAAC;QAAEiC,eAAe,EAAE,CAAC;QAAEC,UAAU,EAAEX,OAAO,CAACG,UAAU;QAAES,UAAU,EAAE;MAAE,CAAC,CAAC;;MAE1F;MACA9B,SAAS,CAACM,OAAO,CAACyB,WAAW,CAAC;QAC5B/C,OAAO;QACPoC,SAAS,EAAEF,OAAO,CAAC1C,EAAE;QACrBmC,QAAQ;QACRqB,SAAS,EAAE,UAAU;QACrB9C,UAAU;QACV+C,UAAU,EAAE7D,aAAa,CAAC;MAC5B,CAAC,CAAC;;MAEF;MACA,MAAM8D,UAAU,GAAG,MAAMlC,SAAS,CAACM,OAAO,CAAC6B,cAAc,CAACjB,OAAO,CAACkB,SAAS,CAAC;MAE5EzC,mBAAmB,CAAC;QAClBiC,eAAe,EAAEM,UAAU,CAACG,UAAU;QACtCR,UAAU,EAAEX,OAAO,CAACG,UAAU;QAC9BS,UAAU,EAAE;MACd,CAAC,CAAC;;MAEF;MACAvC,SAAS,CAAC,WAAW,CAAC;MAEtB,MAAM+C,YAAY,GAAG,MAAMhE,YAAY,CACrC4D,UAAU,EACVhB,OAAO,CAACqB,UAAU,EAClBrB,OAAO,CAACsB,eAAe,EACvBrD,SAAS,IAAI,IACf,CAAC;MAED,IAAI,CAACmD,YAAY,CAACG,KAAK,EAAE;QACvB,MAAM,IAAIhB,KAAK,CAACa,YAAY,CAAC1C,KAAK,IAAI,4BAA4B,CAAC;MACrE;;MAEA;MACA,MAAM8C,UAAU,GAAG,MAAMzC,OAAO,CAACK,OAAO,CAACqC,UAAU,CAACzB,OAAO,CAAC1C,EAAE,EAAE0D,UAAU,CAAC;;MAE3E;MACA,MAAMjC,OAAO,CAACK,OAAO,CAACsC,YAAY,CAAC;QACjCxB,SAAS,EAAEF,OAAO,CAAC1C,EAAE;QACrBgC,OAAO,EAAEU,OAAO,CAACV,OAAO;QACxBkC,UAAU;QACVH,UAAU,EAAErB,OAAO,CAACqB,UAAU;QAC9BM,YAAY,EAAEC,IAAI,CAACC,GAAG,CAAC;MACzB,CAAC,CAAC;;MAEF;MACA;MACA,MAAMC,UAAU,GAAG,MAAM/C,OAAO,CAACK,OAAO,CAAC2C,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;MAEA7D,SAAS,CAAC,OAAO,CAAC;IACpB,CAAC,CAAC,OAAOiC,GAAG,EAAE;MACZ,MAAM5B,KAAK,GAAG4B,GAAG,YAAYC,KAAK,GAAGD,GAAG,GAAG,IAAIC,KAAK,CAACC,MAAM,CAACF,GAAG,CAAC,CAAC;;MAEjE;MACAxB,SAAS,CAACM,OAAO,CAACyB,WAAW,CAAC;QAC5B/C,OAAO;QACPoC,SAAS,EAAEF,OAAO,CAAC1C,EAAE;QACrBmC,QAAQ;QACRqB,SAAS,EAAE,SAAS;QACpBqB,YAAY,EAAEzD,KAAK,CAAC0D,OAAO;QAC3BpE,UAAU;QACV+C,UAAU,EAAE7D,aAAa,CAAC;MAC5B,CAAC,CAAC;MAEFyB,QAAQ,CAACD,KAAK,CAAC;MACfL,SAAS,CAAC,OAAO,CAAC;MAClB,MAAMK,KAAK;IACb;EACF,CAAC,EAAE,CAACZ,OAAO,EAAEE,UAAU,EAAEC,SAAS,EAAEsB,iBAAiB,CAAC,CAAC;;EAEvD;EACA,MAAM8C,WAAW,GAAGzF,WAAW,CAAC,OAAO0F,UAAmB,GAAG,IAAI,KAAoB;IACnF,MAAMnD,QAAQ,GAAG,MAAMJ,OAAO,CAACK,OAAO,CAACC,WAAW,CAAC,CAAC;IAEpD,IAAI,CAACF,QAAQ,EAAE;MACb,MAAM,IAAIoB,KAAK,CAAC,8BAA8B,CAAC;IACjD;IAEA,MAAMd,QAAQ,GAAG,MAAMF,iBAAiB,CAAC,CAAC;IAE1C,IAAI;MACFlB,SAAS,CAAC,UAAU,CAAC;;MAErB;MACAS,SAAS,CAACM,OAAO,CAACyB,WAAW,CAAC;QAC5B/C,OAAO;QACPoC,SAAS,EAAEf,QAAQ,CAACe,SAAS;QAC7BT,QAAQ;QACRqB,SAAS,EAAE,OAAO;QAClB9C,UAAU;QACV+C,UAAU,EAAE7D,aAAa,CAAC;MAC5B,CAAC,CAAC;;MAEF;MACA;MACA,MAAM4E,UAAU,GAAG,MAAM/C,OAAO,CAACK,OAAO,CAAC2C,wBAAwB,CAAC5C,QAAQ,CAACqC,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;MACApD,SAAS,CAACM,OAAO,CAACyB,WAAW,CAAC;QAC5B/C,OAAO;QACPoC,SAAS,EAAEf,QAAQ,CAACe,SAAS;QAC7BT,QAAQ;QACRqB,SAAS,EAAE,SAAS;QACpB9C,UAAU;QACV+C,UAAU,EAAE7D,aAAa,CAAC;MAC5B,CAAC,CAAC;MAEF2B,iBAAiB,CAACM,QAAQ,CAACG,OAAO,CAAC;MACnCjB,SAAS,CAAC,MAAM,CAAC;IACnB,CAAC,CAAC,OAAOiC,GAAG,EAAE;MACZ,MAAM5B,KAAK,GAAG4B,GAAG,YAAYC,KAAK,GAAGD,GAAG,GAAG,IAAIC,KAAK,CAACC,MAAM,CAACF,GAAG,CAAC,CAAC;MAEjExB,SAAS,CAACM,OAAO,CAACyB,WAAW,CAAC;QAC5B/C,OAAO;QACPoC,SAAS,EAAEf,QAAQ,CAACe,SAAS;QAC7BT,QAAQ;QACRqB,SAAS,EAAE,SAAS;QACpBqB,YAAY,EAAEzD,KAAK,CAAC0D,OAAO;QAC3BpE,UAAU;QACV+C,UAAU,EAAE7D,aAAa,CAAC;MAC5B,CAAC,CAAC;MAEFyB,QAAQ,CAACD,KAAK,CAAC;MACfL,SAAS,CAAC,OAAO,CAAC;MAClB,MAAMK,KAAK;IACb;EACF,CAAC,EAAE,CAACZ,OAAO,EAAEE,UAAU,EAAEuB,iBAAiB,CAAC,CAAC;;EAE5C;EACA,MAAMgD,kBAAkB,GAAG3F,WAAW,CAAC,YAA2B;IAChE,MAAMuC,QAAQ,GAAG,MAAMJ,OAAO,CAACK,OAAO,CAACC,WAAW,CAAC,CAAC;IAEpD,IAAIF,QAAQ,EAAE;MACZ,MAAMJ,OAAO,CAACK,OAAO,CAACoD,YAAY,CAACrD,QAAQ,CAACe,SAAS,CAAC;MACtD,MAAMnB,OAAO,CAACK,OAAO,CAACqD,aAAa,CAAC,CAAC;IACvC;;IAEA;IACA,MAAM1D,OAAO,CAACK,OAAO,CAACsD,wBAAwB,CAAC,CAAC;IAEhDnE,aAAa,CAAC,IAAI,CAAC;IACnBU,UAAU,CAACG,OAAO,GAAG,IAAI;IACzBf,SAAS,CAAC,MAAM,CAAC;EACnB,CAAC,EAAE,EAAE,CAAC;;EAEN;EACAxB,SAAS,CAAC,MAAM;IACd,IAAIqB,YAAY,EAAE;MAChBsB,cAAc,CAAC,CAAC;IAClB;EACF,CAAC,EAAE,CAACtB,YAAY,EAAEsB,cAAc,CAAC,CAAC;;EAElC;EACA3C,SAAS,CAAC,MAAM;IACd,IAAI,CAACsB,iBAAiB,EAAE;IAExB,MAAMwE,oBAAoB,GAAIC,YAA4B,IAAK;MAC7D,IAAIA,YAAY,KAAK,QAAQ,IAAIxE,MAAM,KAAK,MAAM,EAAE;QAClDoB,cAAc,CAAC,CAAC;MAClB;IACF,CAAC;IAED,MAAMqD,YAAY,GAAG9F,QAAQ,CAAC+F,gBAAgB,CAAC,QAAQ,EAAEH,oBAAoB,CAAC;IAE9E,OAAO,MAAM;MACXE,YAAY,CAACE,MAAM,CAAC,CAAC;IACvB,CAAC;EACH,CAAC,EAAE,CAAC5E,iBAAiB,EAAEqB,cAAc,EAAEpB,MAAM,CAAC,CAAC;EAE/C,OAAO;IACLA,MAAM;IACNE,UAAU;IACVE,gBAAgB;IAChBE,KAAK;IACLE,cAAc;IACdY,cAAc;IACdiB,cAAc;IACd4B,WAAW;IACXE;EACF,CAAC;AACH","ignoreList":[]}
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":"AAAA,SAASA,QAAQ,EAAEC,WAAW,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAChE,SAASC,QAAQ,EAAkBC,QAAQ,QAAQ,cAAc;AACjE,SAASC,YAAY,EAAeC,aAAa,QAAQ,cAAc;AACvE,SAASC,aAAa,QAAQ,kBAAkB;AAoDhD;AACA,eAAeC,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;AAEA,OAAO,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,GAAGzB,QAAQ,CAAe,MAAM,CAAC;EAC1D,MAAM,CAAC0B,UAAU,EAAEC,aAAa,CAAC,GAAG3B,QAAQ,CAAoB,IAAI,CAAC;EACrE,MAAM,CAAC4B,gBAAgB,EAAEC,mBAAmB,CAAC,GAAG7B,QAAQ,CAA0B,IAAI,CAAC;EACvF,MAAM,CAAC8B,KAAK,EAAEC,QAAQ,CAAC,GAAG/B,QAAQ,CAAe,IAAI,CAAC;EACtD,MAAM,CAACgC,cAAc,EAAEC,iBAAiB,CAAC,GAAGjC,QAAQ,CAAgB,IAAI,CAAC;EACzE,MAAM,CAACkC,WAAW,EAAEC,cAAc,CAAC,GAAGnC,QAAQ,CAAU,KAAK,CAAC;EAE9D,MAAMoC,SAAS,GAAGjC,MAAM,CAAC,IAAIG,YAAY,CAACW,SAAS,CAAC,CAAC;EACrD,MAAMoB,OAAO,GAAGlC,MAAM,CAAC,IAAIK,aAAa,CAAC,CAAC,CAAC;EAC3C,MAAM8B,WAAW,GAAGnC,MAAM,CAAgB,IAAI,CAAC;EAC/C,MAAMoC,UAAU,GAAGpC,MAAM,CAAqB,IAAI,CAAC;;EAEnD;EACAD,SAAS,CAAC,MAAM;IACd,MAAMsC,kBAAkB,GAAG,MAAAA,CAAA,KAAY;MACrC,MAAMC,QAAQ,GAAG,MAAMJ,OAAO,CAACK,OAAO,CAACC,WAAW,CAAC,CAAC;MACpD,IAAIF,QAAQ,EAAE;QACZR,iBAAiB,CAACQ,QAAQ,CAACG,OAAO,CAAC;MACrC;IACF,CAAC;IACDJ,kBAAkB,CAAC,CAAC;EACtB,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA,MAAMK,iBAAiB,GAAG5C,WAAW,CAAC,YAAY;IAChD,IAAI,CAACqC,WAAW,CAACI,OAAO,EAAE;MACxBJ,WAAW,CAACI,OAAO,GAAG,MAAMjC,WAAW,CAAC,CAAC;IAC3C;IACA,OAAO6B,WAAW,CAACI,OAAO;EAC5B,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA,MAAMI,cAAc,GAAG7C,WAAW,CAAC,YAAwC;IACzE,IAAI;MACFwB,SAAS,CAAC,UAAU,CAAC;MACrBM,QAAQ,CAAC,IAAI,CAAC;MAEd,MAAMgB,QAAQ,GAAG,MAAMF,iBAAiB,CAAC,CAAC;MAC1C,MAAMG,eAAe,GAAG,MAAMX,OAAO,CAACK,OAAO,CAACC,WAAW,CAAC,CAAC;MAE3D,MAAMM,QAAQ,GAAG,MAAMb,SAAS,CAACM,OAAO,CAACQ,WAAW,CAAC;QACnDhC,OAAO;QACPC,OAAO;QACPgC,QAAQ,EAAE9C,QAAQ,CAAC+C,EAAuB;QAC1CpB,cAAc,EAAEgB,eAAe,EAAEJ,OAAO,IAAI,IAAI;QAChDxB,UAAU;QACV2B;MACF,CAAC,CAAC;MAEF,IAAI,CAACE,QAAQ,CAACI,eAAe,IAAI,CAACJ,QAAQ,CAACK,OAAO,EAAE;QAClD7B,SAAS,CAAC,YAAY,CAAC;QACvB,OAAO,IAAI;MACb;MAEAc,UAAU,CAACG,OAAO,GAAGO,QAAQ,CAACK,OAAO;MAErC,MAAMC,IAAgB,GAAG;QACvBX,OAAO,EAAEK,QAAQ,CAACK,OAAO,CAACV,OAAO;QACjCY,SAAS,EAAEP,QAAQ,CAACK,OAAO,CAAC5C,EAAE;QAC9B+C,UAAU,EAAER,QAAQ,CAACK,OAAO,CAACG,UAAU;QACvCC,WAAW,EAAET,QAAQ,CAACK,OAAO,CAACI,WAAW;QACzCC,YAAY,EAAEV,QAAQ,CAACK,OAAO,CAACK;MACjC,CAAC;;MAED;MACA,IAAI,CAACjC,UAAU,IAAIA,UAAU,CAACkB,OAAO,KAAKW,IAAI,CAACX,OAAO,EAAE;QACtDT,cAAc,CAAC,KAAK,CAAC;MACvB;MAEAR,aAAa,CAAC4B,IAAI,CAAC;MACnB9B,SAAS,CAAC,WAAW,CAAC;MAEtB,OAAO8B,IAAI;IACb,CAAC,CAAC,OAAOK,GAAG,EAAE;MACZ,MAAM9B,KAAK,GAAG8B,GAAG,YAAYC,KAAK,GAAGD,GAAG,GAAG,IAAIC,KAAK,CAACC,MAAM,CAACF,GAAG,CAAC,CAAC;MACjE7B,QAAQ,CAACD,KAAK,CAAC;MACfL,SAAS,CAAC,OAAO,CAAC;MAClB,OAAO,IAAI;IACb;EACF,CAAC,EAAE,CAACP,OAAO,EAAEC,OAAO,EAAEC,UAAU,EAAEyB,iBAAiB,CAAC,CAAC;;EAErD;EACA,MAAMkB,cAAc,GAAG9D,WAAW,CAAC,YAA2B;IAC5D,IAAI,CAACsC,UAAU,CAACG,OAAO,EAAE;MACvB,MAAM,IAAImB,KAAK,CAAC,iCAAiC,CAAC;IACpD;IAEA,MAAMP,OAAO,GAAGf,UAAU,CAACG,OAAO;IAClC,MAAMK,QAAQ,GAAG,MAAMF,iBAAiB,CAAC,CAAC;IAE1C,IAAI;MACFpB,SAAS,CAAC,aAAa,CAAC;MACxBI,mBAAmB,CAAC;QAAEmC,eAAe,EAAE,CAAC;QAAEC,UAAU,EAAEX,OAAO,CAACG,UAAU;QAAES,UAAU,EAAE;MAAE,CAAC,CAAC;;MAE1F;MACA9B,SAAS,CAACM,OAAO,CAACyB,WAAW,CAAC;QAC5BjD,OAAO;QACPsC,SAAS,EAAEF,OAAO,CAAC5C,EAAE;QACrBqC,QAAQ;QACRqB,SAAS,EAAE,UAAU;QACrBhD,UAAU;QACViD,UAAU,EAAE9D,aAAa,CAAC;MAC5B,CAAC,CAAC;;MAEF;MACA,MAAM+D,cAAc,GAAG,MAAMjC,OAAO,CAACK,OAAO,CAAC6B,oBAAoB,CAACjB,OAAO,CAACkB,SAAS,EAAElB,OAAO,CAAC5C,EAAE,CAAC;MAEhGmB,mBAAmB,CAAC;QAClBmC,eAAe,EAAEM,cAAc,CAACG,QAAQ;QACxCR,UAAU,EAAEX,OAAO,CAACG,UAAU;QAC9BS,UAAU,EAAE;MACd,CAAC,CAAC;;MAEF;MACAzC,SAAS,CAAC,WAAW,CAAC;;MAEtB;MACA,MAAMiD,UAAU,GAAG,MAAMrC,OAAO,CAACK,OAAO,CAACiC,mBAAmB,CAACrB,OAAO,CAAC5C,EAAE,CAAC;MACxE,MAAMkE,yBAAyB,GAAGtB,OAAO,CAACuB,UAAU,CAACC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;MAE5E,IAAIJ,UAAU,KAAKE,yBAAyB,EAAE;QAC5C;QACA,MAAMvC,OAAO,CAACK,OAAO,CAACqC,YAAY,CAACzB,OAAO,CAAC5C,EAAE,CAAC;QAC9C,MAAM,IAAImD,KAAK,CAAC,kCAAkCe,yBAAyB,SAASF,UAAU,EAAE,CAAC;MACnG;;MAEA;MACA,MAAMM,OAAO,GAAG,MAAM3C,OAAO,CAACK,OAAO,CAACuC,cAAc,CAAC3B,OAAO,CAAC5C,EAAE,CAAC;MAChE,IAAI,CAACsE,OAAO,EAAE;QACZ,MAAM3C,OAAO,CAACK,OAAO,CAACqC,YAAY,CAACzB,OAAO,CAAC5C,EAAE,CAAC;QAC9C,MAAM,IAAImD,KAAK,CAAC,qDAAqD,CAAC;MACxE;MAEA,IAAIqB,OAAO,EAAE;QACXC,OAAO,CAACC,GAAG,CAAC,0CAA0C,CAAC;MACzD;MAEA,MAAMC,UAAU,GAAGf,cAAc,CAACgB,IAAI;;MAEtC;MACA,MAAMjD,OAAO,CAACK,OAAO,CAAC6C,YAAY,CAAC;QACjC/B,SAAS,EAAEF,OAAO,CAAC5C,EAAE;QACrBkC,OAAO,EAAEU,OAAO,CAACV,OAAO;QACxByC,UAAU;QACVR,UAAU,EAAEvB,OAAO,CAACuB,UAAU;QAC9BW,YAAY,EAAEC,IAAI,CAACC,GAAG,CAAC;MACzB,CAAC,CAAC;;MAEF;MACA;MACA,MAAMC,UAAU,GAAG,MAAMtD,OAAO,CAACK,OAAO,CAACkD,wBAAwB,CAACP,UAAU,EAAE,KAAK,CAAC;MAEpF,IAAIH,OAAO,EAAE;QACX,IAAIS,UAAU,EAAE;UACdR,OAAO,CAACC,GAAG,CAAC,8EAA8E,CAAC;QAC7F,CAAC,MAAM;UACLD,OAAO,CAACC,GAAG,CAAC,wFAAwF,CAAC;QACvG;MACF;MAEA3D,SAAS,CAAC,OAAO,CAAC;IACpB,CAAC,CAAC,OAAOmC,GAAG,EAAE;MACZ,MAAM9B,KAAK,GAAG8B,GAAG,YAAYC,KAAK,GAAGD,GAAG,GAAG,IAAIC,KAAK,CAACC,MAAM,CAACF,GAAG,CAAC,CAAC;;MAEjE;MACAxB,SAAS,CAACM,OAAO,CAACyB,WAAW,CAAC;QAC5BjD,OAAO;QACPsC,SAAS,EAAEF,OAAO,CAAC5C,EAAE;QACrBqC,QAAQ;QACRqB,SAAS,EAAE,SAAS;QACpByB,YAAY,EAAE/D,KAAK,CAACgE,OAAO;QAC3B1E,UAAU;QACViD,UAAU,EAAE9D,aAAa,CAAC;MAC5B,CAAC,CAAC;MAEFwB,QAAQ,CAACD,KAAK,CAAC;MACfL,SAAS,CAAC,OAAO,CAAC;MAClB,MAAMK,KAAK;IACb;EACF,CAAC,EAAE,CAACZ,OAAO,EAAEE,UAAU,EAAEC,SAAS,EAAEwB,iBAAiB,CAAC,CAAC;;EAEvD;EACA,MAAMkD,WAAW,GAAG9F,WAAW,CAAC,OAAO+F,UAAmB,GAAG,IAAI,KAAoB;IACnF,MAAMvD,QAAQ,GAAG,MAAMJ,OAAO,CAACK,OAAO,CAACC,WAAW,CAAC,CAAC;IAEpD,IAAI,CAACF,QAAQ,EAAE;MACb,MAAM,IAAIoB,KAAK,CAAC,8BAA8B,CAAC;IACjD;IAEA,MAAMd,QAAQ,GAAG,MAAMF,iBAAiB,CAAC,CAAC;IAE1C,IAAI;MACFpB,SAAS,CAAC,UAAU,CAAC;;MAErB;MACAW,SAAS,CAACM,OAAO,CAACyB,WAAW,CAAC;QAC5BjD,OAAO;QACPsC,SAAS,EAAEf,QAAQ,CAACe,SAAS;QAC7BT,QAAQ;QACRqB,SAAS,EAAE,OAAO;QAClBhD,UAAU;QACViD,UAAU,EAAE9D,aAAa,CAAC;MAC5B,CAAC,CAAC;;MAEF;MACA;MACA,MAAMoF,UAAU,GAAG,MAAMtD,OAAO,CAACK,OAAO,CAACkD,wBAAwB,CAACnD,QAAQ,CAAC4C,UAAU,EAAEW,UAAU,CAAC;MAElG,IAAI,CAACL,UAAU,IAAIK,UAAU,EAAE;QAC7B;QACA,IAAId,OAAO,EAAE;UACXC,OAAO,CAACC,GAAG,CAAC,yEAAyE,CAAC;UACtFD,OAAO,CAACC,GAAG,CAAC,gFAAgF,CAAC;QAC/F;MACF,CAAC,MAAM,IAAIO,UAAU,IAAI,CAACK,UAAU,EAAE;QACpC,IAAId,OAAO,EAAE;UACXC,OAAO,CAACC,GAAG,CAAC,gEAAgE,CAAC;QAC/E;MACF;;MAEA;MACAhD,SAAS,CAACM,OAAO,CAACyB,WAAW,CAAC;QAC5BjD,OAAO;QACPsC,SAAS,EAAEf,QAAQ,CAACe,SAAS;QAC7BT,QAAQ;QACRqB,SAAS,EAAE,SAAS;QACpBhD,UAAU;QACViD,UAAU,EAAE9D,aAAa,CAAC;MAC5B,CAAC,CAAC;MAEF0B,iBAAiB,CAACQ,QAAQ,CAACG,OAAO,CAAC;MACnCnB,SAAS,CAAC,MAAM,CAAC;IACnB,CAAC,CAAC,OAAOmC,GAAG,EAAE;MACZ,MAAM9B,KAAK,GAAG8B,GAAG,YAAYC,KAAK,GAAGD,GAAG,GAAG,IAAIC,KAAK,CAACC,MAAM,CAACF,GAAG,CAAC,CAAC;MAEjExB,SAAS,CAACM,OAAO,CAACyB,WAAW,CAAC;QAC5BjD,OAAO;QACPsC,SAAS,EAAEf,QAAQ,CAACe,SAAS;QAC7BT,QAAQ;QACRqB,SAAS,EAAE,SAAS;QACpByB,YAAY,EAAE/D,KAAK,CAACgE,OAAO;QAC3B1E,UAAU;QACViD,UAAU,EAAE9D,aAAa,CAAC;MAC5B,CAAC,CAAC;MAEFwB,QAAQ,CAACD,KAAK,CAAC;MACfL,SAAS,CAAC,OAAO,CAAC;MAClB,MAAMK,KAAK;IACb;EACF,CAAC,EAAE,CAACZ,OAAO,EAAEE,UAAU,EAAEyB,iBAAiB,CAAC,CAAC;;EAE5C;EACA,MAAMoD,kBAAkB,GAAGhG,WAAW,CAAC,YAA2B;IAChE,MAAMwC,QAAQ,GAAG,MAAMJ,OAAO,CAACK,OAAO,CAACC,WAAW,CAAC,CAAC;IAEpD,IAAIF,QAAQ,EAAE;MACZ,MAAMJ,OAAO,CAACK,OAAO,CAACqC,YAAY,CAACtC,QAAQ,CAACe,SAAS,CAAC;MACtD,MAAMnB,OAAO,CAACK,OAAO,CAACwD,aAAa,CAAC,CAAC;IACvC;;IAEA;IACA,MAAM7D,OAAO,CAACK,OAAO,CAACyD,wBAAwB,CAAC,CAAC;IAEhDxE,aAAa,CAAC,IAAI,CAAC;IACnBY,UAAU,CAACG,OAAO,GAAG,IAAI;IACzBjB,SAAS,CAAC,MAAM,CAAC;EACnB,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA,MAAM2E,aAAa,GAAGnG,WAAW,CAAC,MAAM;IACtCkC,cAAc,CAAC,IAAI,CAAC;EACtB,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA,MAAMkE,YAAY,GAAGpG,WAAW,CAAC,MAAM;IACrCkC,cAAc,CAAC,KAAK,CAAC;EACvB,CAAC,EAAE,EAAE,CAAC;;EAEN;EACAjC,SAAS,CAAC,MAAM;IACd,IAAIoB,YAAY,EAAE;MAChBwB,cAAc,CAAC,CAAC;IAClB;EACF,CAAC,EAAE,CAACxB,YAAY,EAAEwB,cAAc,CAAC,CAAC;;EAElC;EACA5C,SAAS,CAAC,MAAM;IACd,IAAI,CAACqB,iBAAiB,EAAE;IAExB,MAAM+E,oBAAoB,GAAIC,YAA4B,IAAK;MAC7D,IAAIA,YAAY,KAAK,QAAQ,IAAI/E,MAAM,KAAK,MAAM,EAAE;QAClDsB,cAAc,CAAC,CAAC;MAClB;IACF,CAAC;IAED,MAAM0D,YAAY,GAAGpG,QAAQ,CAACqG,gBAAgB,CAAC,QAAQ,EAAEH,oBAAoB,CAAC;IAE9E,OAAO,MAAM;MACXE,YAAY,CAACE,MAAM,CAAC,CAAC;IACvB,CAAC;EACH,CAAC,EAAE,CAACnF,iBAAiB,EAAEuB,cAAc,EAAEtB,MAAM,CAAC,CAAC;EAE/C,OAAO;IACLA,MAAM;IACNE,UAAU;IACVE,gBAAgB;IAChBE,KAAK;IACLE,cAAc;IACdE,WAAW;IACXY,cAAc;IACdiB,cAAc;IACdgC,WAAW;IACXE,kBAAkB;IAClBG,aAAa;IACbC;EACF,CAAC;AACH","ignoreList":[]}
@@ -7,5 +7,5 @@ export { OTAApiClient, getDeviceInfo } from './utils/api';
7
7
  export { UpdateStorage, getStorageAdapter } from './utils/storage';
8
8
  export { calculateHash, verifyBundleHash, verifySignature, verifyBundle } from './utils/verification';
9
9
  // Version info
10
- export const VERSION = '0.1.0';
10
+ export const VERSION = '0.1.8';
11
11
  //# sourceMappingURL=index.js.map