@vanikya/ota-react-native 0.2.0 → 0.2.2

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 (37) hide show
  1. package/android/src/main/AndroidManifest.xml +2 -0
  2. package/android/src/main/java/com/otaupdate/OTAUpdateModule.kt +116 -25
  3. package/app.plugin.js +53 -12
  4. package/ios/OTAUpdate.swift +29 -0
  5. package/lib/commonjs/OTAProvider.js +37 -0
  6. package/lib/commonjs/OTAProvider.js.map +1 -1
  7. package/lib/commonjs/components/OTADebugPanel.js +426 -0
  8. package/lib/commonjs/components/OTADebugPanel.js.map +1 -0
  9. package/lib/commonjs/hooks/useOTAUpdate.js +38 -2
  10. package/lib/commonjs/hooks/useOTAUpdate.js.map +1 -1
  11. package/lib/commonjs/index.js +10 -1
  12. package/lib/commonjs/index.js.map +1 -1
  13. package/lib/commonjs/utils/storage.js +79 -4
  14. package/lib/commonjs/utils/storage.js.map +1 -1
  15. package/lib/module/OTAProvider.js +38 -1
  16. package/lib/module/OTAProvider.js.map +1 -1
  17. package/lib/module/components/OTADebugPanel.js +418 -0
  18. package/lib/module/components/OTADebugPanel.js.map +1 -0
  19. package/lib/module/hooks/useOTAUpdate.js +38 -2
  20. package/lib/module/hooks/useOTAUpdate.js.map +1 -1
  21. package/lib/module/index.js +4 -1
  22. package/lib/module/index.js.map +1 -1
  23. package/lib/module/utils/storage.js +79 -4
  24. package/lib/module/utils/storage.js.map +1 -1
  25. package/lib/typescript/OTAProvider.d.ts.map +1 -1
  26. package/lib/typescript/components/OTADebugPanel.d.ts +18 -0
  27. package/lib/typescript/components/OTADebugPanel.d.ts.map +1 -0
  28. package/lib/typescript/hooks/useOTAUpdate.d.ts.map +1 -1
  29. package/lib/typescript/index.d.ts +2 -1
  30. package/lib/typescript/index.d.ts.map +1 -1
  31. package/lib/typescript/utils/storage.d.ts.map +1 -1
  32. package/package.json +1 -1
  33. package/src/OTAProvider.tsx +40 -0
  34. package/src/components/OTADebugPanel.tsx +447 -0
  35. package/src/hooks/useOTAUpdate.ts +49 -2
  36. package/src/index.ts +4 -1
  37. package/src/utils/storage.ts +105 -4
@@ -0,0 +1,426 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.OTADebugPanel = OTADebugPanel;
7
+ exports.default = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _reactNative = require("react-native");
10
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
11
+ const {
12
+ OTAUpdate
13
+ } = _reactNative.NativeModules;
14
+ /**
15
+ * Debug panel for testing OTA update functionality.
16
+ * Use this component during development to verify:
17
+ * - Native module is linked correctly
18
+ * - Downloads work properly
19
+ * - Hash calculation works
20
+ * - SharedPreferences/UserDefaults are saved
21
+ * - Bundle loading on restart
22
+ */
23
+ function OTADebugPanel({
24
+ testBundleUrl,
25
+ serverUrl,
26
+ appSlug
27
+ }) {
28
+ const [logs, setLogs] = (0, _react.useState)([]);
29
+ const [isExpanded, setIsExpanded] = (0, _react.useState)(true);
30
+ const addLog = (message, type = 'info') => {
31
+ const time = new Date().toLocaleTimeString();
32
+ setLogs(prev => [...prev, {
33
+ time,
34
+ message,
35
+ type
36
+ }]);
37
+ };
38
+ const clearLogs = () => setLogs([]);
39
+
40
+ // Check native module on mount
41
+ (0, _react.useEffect)(() => {
42
+ if (OTAUpdate) {
43
+ addLog('Native module found', 'success');
44
+ const docDir = OTAUpdate.getDocumentDirectory?.();
45
+ if (docDir) {
46
+ addLog(`Document directory: ${docDir}`, 'info');
47
+ }
48
+ } else {
49
+ addLog('Native module NOT found - OTA will not work!', 'error');
50
+ }
51
+ }, []);
52
+ const testNativeModule = async () => {
53
+ addLog('Testing native module...');
54
+ if (!OTAUpdate) {
55
+ addLog('Native module not available', 'error');
56
+ return;
57
+ }
58
+ try {
59
+ // Test getDocumentDirectory
60
+ const docDir = OTAUpdate.getDocumentDirectory();
61
+ addLog(`getDocumentDirectory: ${docDir}`, 'success');
62
+
63
+ // Test file operations
64
+ const testPath = `${docDir}ota-test.txt`;
65
+ await OTAUpdate.writeFile(testPath, 'Hello OTA!');
66
+ addLog(`writeFile: ${testPath}`, 'success');
67
+ const content = await OTAUpdate.readFile(testPath);
68
+ addLog(`readFile: "${content}"`, 'success');
69
+ const exists = await OTAUpdate.exists(testPath);
70
+ addLog(`exists: ${exists}`, 'success');
71
+ await OTAUpdate.deleteFile(testPath);
72
+ addLog('deleteFile: success', 'success');
73
+ const existsAfter = await OTAUpdate.exists(testPath);
74
+ addLog(`exists after delete: ${existsAfter}`, 'success');
75
+ } catch (error) {
76
+ addLog(`Error: ${error.message}`, 'error');
77
+ }
78
+ };
79
+ const testDownload = async () => {
80
+ if (!testBundleUrl) {
81
+ addLog('No testBundleUrl provided', 'warn');
82
+ return;
83
+ }
84
+ if (!OTAUpdate?.downloadFile) {
85
+ addLog('downloadFile not available', 'error');
86
+ return;
87
+ }
88
+ try {
89
+ const docDir = OTAUpdate.getDocumentDirectory();
90
+ const destPath = `${docDir}ota-update/test-bundle.js`;
91
+ addLog(`Downloading from: ${testBundleUrl}`);
92
+ addLog(`Destination: ${destPath}`);
93
+ const startTime = Date.now();
94
+ const result = await OTAUpdate.downloadFile(testBundleUrl, destPath);
95
+ const duration = Date.now() - startTime;
96
+ addLog(`Download complete in ${duration}ms`, 'success');
97
+ addLog(`File size: ${result.fileSize} bytes`, 'success');
98
+
99
+ // Verify file exists
100
+ const exists = await OTAUpdate.exists(destPath);
101
+ addLog(`File exists: ${exists}`, exists ? 'success' : 'error');
102
+ } catch (error) {
103
+ addLog(`Download failed: ${error.message}`, 'error');
104
+ }
105
+ };
106
+ const testHashCalculation = async () => {
107
+ if (!OTAUpdate?.calculateSHA256FromFile) {
108
+ addLog('calculateSHA256FromFile not available', 'error');
109
+ return;
110
+ }
111
+ try {
112
+ const docDir = OTAUpdate.getDocumentDirectory();
113
+ const testPath = `${docDir}ota-update/test-bundle.js`;
114
+ const exists = await OTAUpdate.exists(testPath);
115
+ if (!exists) {
116
+ addLog('Test bundle not found. Run "Test Download" first.', 'warn');
117
+ return;
118
+ }
119
+ addLog('Calculating hash...');
120
+ const startTime = Date.now();
121
+ const hash = await OTAUpdate.calculateSHA256FromFile(testPath);
122
+ const duration = Date.now() - startTime;
123
+ addLog(`Hash: ${hash}`, 'success');
124
+ addLog(`Calculated in ${duration}ms`, 'success');
125
+ } catch (error) {
126
+ addLog(`Hash calculation failed: ${error.message}`, 'error');
127
+ }
128
+ };
129
+ const testApplyBundle = async () => {
130
+ if (!OTAUpdate?.applyBundle) {
131
+ addLog('applyBundle not available', 'error');
132
+ return;
133
+ }
134
+ try {
135
+ const docDir = OTAUpdate.getDocumentDirectory();
136
+ const testPath = `${docDir}ota-update/test-bundle.js`;
137
+ const exists = await OTAUpdate.exists(testPath);
138
+ if (!exists) {
139
+ addLog('Test bundle not found. Run "Test Download" first.', 'warn');
140
+ return;
141
+ }
142
+ addLog(`Registering bundle: ${testPath}`);
143
+ await OTAUpdate.applyBundle(testPath, false); // Don't restart
144
+ addLog('Bundle registered (no restart)', 'success');
145
+
146
+ // Verify it was saved
147
+ const savedPath = await OTAUpdate.getPendingBundlePath();
148
+ addLog(`Saved path: ${savedPath}`, savedPath === testPath ? 'success' : 'error');
149
+ } catch (error) {
150
+ addLog(`Apply failed: ${error.message}`, 'error');
151
+ }
152
+ };
153
+ const testGetPendingBundle = async () => {
154
+ if (!OTAUpdate?.getPendingBundlePath) {
155
+ addLog('getPendingBundlePath not available', 'error');
156
+ return;
157
+ }
158
+ try {
159
+ const path = await OTAUpdate.getPendingBundlePath();
160
+ if (path) {
161
+ addLog(`Pending bundle: ${path}`, 'success');
162
+ const exists = await OTAUpdate.exists(path);
163
+ addLog(`File exists: ${exists}`, exists ? 'success' : 'error');
164
+ } else {
165
+ addLog('No pending bundle', 'info');
166
+ }
167
+ } catch (error) {
168
+ addLog(`Error: ${error.message}`, 'error');
169
+ }
170
+ };
171
+ const testClearPendingBundle = async () => {
172
+ if (!OTAUpdate?.clearPendingBundle) {
173
+ addLog('clearPendingBundle not available', 'error');
174
+ return;
175
+ }
176
+ try {
177
+ await OTAUpdate.clearPendingBundle();
178
+ addLog('Pending bundle cleared', 'success');
179
+ } catch (error) {
180
+ addLog(`Error: ${error.message}`, 'error');
181
+ }
182
+ };
183
+ const testApplyAndRestart = async () => {
184
+ if (!OTAUpdate?.applyBundle) {
185
+ addLog('applyBundle not available', 'error');
186
+ return;
187
+ }
188
+ try {
189
+ const docDir = OTAUpdate.getDocumentDirectory();
190
+ const testPath = `${docDir}ota-update/test-bundle.js`;
191
+ const exists = await OTAUpdate.exists(testPath);
192
+ if (!exists) {
193
+ addLog('Test bundle not found. Run "Test Download" first.', 'warn');
194
+ return;
195
+ }
196
+ addLog('Applying bundle and restarting...');
197
+ addLog('App will restart in ~200ms');
198
+ await OTAUpdate.applyBundle(testPath, true); // Restart
199
+ } catch (error) {
200
+ addLog(`Error: ${error.message}`, 'error');
201
+ }
202
+ };
203
+ const getLogColor = type => {
204
+ switch (type) {
205
+ case 'success':
206
+ return '#4CAF50';
207
+ case 'error':
208
+ return '#F44336';
209
+ case 'warn':
210
+ return '#FF9800';
211
+ default:
212
+ return '#2196F3';
213
+ }
214
+ };
215
+ if (!isExpanded) {
216
+ return /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
217
+ style: styles.collapsedButton,
218
+ onPress: () => setIsExpanded(true)
219
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
220
+ style: styles.collapsedButtonText
221
+ }, "OTA Debug"));
222
+ }
223
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
224
+ style: styles.container
225
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
226
+ style: styles.header
227
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
228
+ style: styles.title
229
+ }, "OTA Debug Panel"), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
230
+ style: styles.headerButtons
231
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
232
+ onPress: clearLogs,
233
+ style: styles.headerButton
234
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
235
+ style: styles.headerButtonText
236
+ }, "Clear")), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
237
+ onPress: () => setIsExpanded(false),
238
+ style: styles.headerButton
239
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
240
+ style: styles.headerButtonText
241
+ }, "Hide")))), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
242
+ style: styles.info
243
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
244
+ style: styles.infoText
245
+ }, "Platform: ", _reactNative.Platform.OS), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
246
+ style: styles.infoText
247
+ }, "Native Module: ", OTAUpdate ? 'Available' : 'NOT FOUND')), /*#__PURE__*/_react.default.createElement(_reactNative.ScrollView, {
248
+ style: styles.buttonContainer,
249
+ horizontal: true,
250
+ showsHorizontalScrollIndicator: false
251
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
252
+ style: styles.button,
253
+ onPress: testNativeModule
254
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
255
+ style: styles.buttonText
256
+ }, "Test Module")), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
257
+ style: styles.button,
258
+ onPress: testDownload
259
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
260
+ style: styles.buttonText
261
+ }, "Test Download")), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
262
+ style: styles.button,
263
+ onPress: testHashCalculation
264
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
265
+ style: styles.buttonText
266
+ }, "Test Hash")), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
267
+ style: styles.button,
268
+ onPress: testApplyBundle
269
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
270
+ style: styles.buttonText
271
+ }, "Register Bundle")), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
272
+ style: styles.button,
273
+ onPress: testGetPendingBundle
274
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
275
+ style: styles.buttonText
276
+ }, "Get Pending")), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
277
+ style: styles.button,
278
+ onPress: testClearPendingBundle
279
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
280
+ style: styles.buttonText
281
+ }, "Clear Pending")), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
282
+ style: [styles.button, styles.dangerButton],
283
+ onPress: testApplyAndRestart
284
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
285
+ style: styles.buttonText
286
+ }, "Apply + Restart"))), /*#__PURE__*/_react.default.createElement(_reactNative.ScrollView, {
287
+ style: styles.logContainer
288
+ }, logs.length === 0 ? /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
289
+ style: styles.emptyLog
290
+ }, "Tap a button to start testing...") : logs.map((log, index) => /*#__PURE__*/_react.default.createElement(_reactNative.View, {
291
+ key: index,
292
+ style: styles.logEntry
293
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
294
+ style: [styles.logTime]
295
+ }, log.time), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
296
+ style: [styles.logMessage, {
297
+ color: getLogColor(log.type)
298
+ }]
299
+ }, log.message)))));
300
+ }
301
+ const styles = _reactNative.StyleSheet.create({
302
+ container: {
303
+ position: 'absolute',
304
+ bottom: 0,
305
+ left: 0,
306
+ right: 0,
307
+ backgroundColor: '#1a1a2e',
308
+ borderTopLeftRadius: 16,
309
+ borderTopRightRadius: 16,
310
+ maxHeight: '60%',
311
+ shadowColor: '#000',
312
+ shadowOffset: {
313
+ width: 0,
314
+ height: -2
315
+ },
316
+ shadowOpacity: 0.25,
317
+ shadowRadius: 4,
318
+ elevation: 5
319
+ },
320
+ collapsedButton: {
321
+ position: 'absolute',
322
+ bottom: 20,
323
+ right: 20,
324
+ backgroundColor: '#6C63FF',
325
+ paddingHorizontal: 16,
326
+ paddingVertical: 10,
327
+ borderRadius: 20,
328
+ shadowColor: '#000',
329
+ shadowOffset: {
330
+ width: 0,
331
+ height: 2
332
+ },
333
+ shadowOpacity: 0.25,
334
+ shadowRadius: 4,
335
+ elevation: 5
336
+ },
337
+ collapsedButtonText: {
338
+ color: '#fff',
339
+ fontWeight: 'bold',
340
+ fontSize: 12
341
+ },
342
+ header: {
343
+ flexDirection: 'row',
344
+ justifyContent: 'space-between',
345
+ alignItems: 'center',
346
+ padding: 12,
347
+ borderBottomWidth: 1,
348
+ borderBottomColor: '#2a2a4e'
349
+ },
350
+ title: {
351
+ color: '#fff',
352
+ fontSize: 16,
353
+ fontWeight: 'bold'
354
+ },
355
+ headerButtons: {
356
+ flexDirection: 'row',
357
+ gap: 8
358
+ },
359
+ headerButton: {
360
+ paddingHorizontal: 12,
361
+ paddingVertical: 4,
362
+ backgroundColor: '#2a2a4e',
363
+ borderRadius: 4
364
+ },
365
+ headerButtonText: {
366
+ color: '#aaa',
367
+ fontSize: 12
368
+ },
369
+ info: {
370
+ padding: 8,
371
+ backgroundColor: '#2a2a4e',
372
+ flexDirection: 'row',
373
+ justifyContent: 'space-around'
374
+ },
375
+ infoText: {
376
+ color: '#888',
377
+ fontSize: 11
378
+ },
379
+ buttonContainer: {
380
+ padding: 8,
381
+ flexGrow: 0
382
+ },
383
+ button: {
384
+ backgroundColor: '#6C63FF',
385
+ paddingHorizontal: 12,
386
+ paddingVertical: 8,
387
+ borderRadius: 6,
388
+ marginRight: 8
389
+ },
390
+ dangerButton: {
391
+ backgroundColor: '#F44336'
392
+ },
393
+ buttonText: {
394
+ color: '#fff',
395
+ fontSize: 12,
396
+ fontWeight: '600'
397
+ },
398
+ logContainer: {
399
+ flex: 1,
400
+ padding: 8
401
+ },
402
+ emptyLog: {
403
+ color: '#666',
404
+ textAlign: 'center',
405
+ marginTop: 20
406
+ },
407
+ logEntry: {
408
+ flexDirection: 'row',
409
+ paddingVertical: 4,
410
+ borderBottomWidth: 1,
411
+ borderBottomColor: '#2a2a4e'
412
+ },
413
+ logTime: {
414
+ color: '#666',
415
+ fontSize: 10,
416
+ width: 70,
417
+ fontFamily: _reactNative.Platform.OS === 'ios' ? 'Menlo' : 'monospace'
418
+ },
419
+ logMessage: {
420
+ flex: 1,
421
+ fontSize: 11,
422
+ fontFamily: _reactNative.Platform.OS === 'ios' ? 'Menlo' : 'monospace'
423
+ }
424
+ });
425
+ var _default = exports.default = OTADebugPanel;
426
+ //# sourceMappingURL=OTADebugPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","OTAUpdate","NativeModules","OTADebugPanel","testBundleUrl","serverUrl","appSlug","logs","setLogs","useState","isExpanded","setIsExpanded","addLog","message","type","time","Date","toLocaleTimeString","prev","clearLogs","useEffect","docDir","getDocumentDirectory","testNativeModule","testPath","writeFile","content","readFile","exists","deleteFile","existsAfter","error","testDownload","downloadFile","destPath","startTime","now","result","duration","fileSize","testHashCalculation","calculateSHA256FromFile","hash","testApplyBundle","applyBundle","savedPath","getPendingBundlePath","testGetPendingBundle","path","testClearPendingBundle","clearPendingBundle","testApplyAndRestart","getLogColor","createElement","TouchableOpacity","style","styles","collapsedButton","onPress","Text","collapsedButtonText","View","container","header","title","headerButtons","headerButton","headerButtonText","info","infoText","Platform","OS","ScrollView","buttonContainer","horizontal","showsHorizontalScrollIndicator","button","buttonText","dangerButton","logContainer","length","emptyLog","map","log","index","key","logEntry","logTime","logMessage","color","StyleSheet","create","position","bottom","left","right","backgroundColor","borderTopLeftRadius","borderTopRightRadius","maxHeight","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","paddingHorizontal","paddingVertical","borderRadius","fontWeight","fontSize","flexDirection","justifyContent","alignItems","padding","borderBottomWidth","borderBottomColor","gap","flexGrow","marginRight","flex","textAlign","marginTop","fontFamily","_default","exports"],"sourceRoot":"../../../src","sources":["components/OTADebugPanel.tsx"],"mappings":"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","ignoreList":[]}
@@ -16,6 +16,22 @@ async function getDeviceId() {
16
16
  const id = `device_${Math.random().toString(36).substring(2, 15)}`;
17
17
  return id;
18
18
  }
19
+
20
+ // Timeout wrapper for async operations
21
+ function withTimeout(promise, timeoutMs, operation) {
22
+ return new Promise((resolve, reject) => {
23
+ const timer = setTimeout(() => {
24
+ reject(new Error(`${operation} timed out after ${timeoutMs}ms`));
25
+ }, timeoutMs);
26
+ promise.then(result => {
27
+ clearTimeout(timer);
28
+ resolve(result);
29
+ }).catch(error => {
30
+ clearTimeout(timer);
31
+ reject(error);
32
+ });
33
+ });
34
+ }
19
35
  function useOTAUpdate(config) {
20
36
  const {
21
37
  serverUrl,
@@ -125,7 +141,17 @@ function useOTAUpdate(config) {
125
141
  });
126
142
 
127
143
  // Download bundle directly to file (bypasses JS memory - critical for large bundles)
128
- const downloadResult = await storage.current.downloadBundleToFile(release.bundleUrl, release.id);
144
+ // Use a 5 minute timeout for large bundles on slow networks
145
+ if (__DEV__) {
146
+ console.log(`[OTAUpdate] Starting download from: ${release.bundleUrl}`);
147
+ console.log(`[OTAUpdate] Expected size: ${release.bundleSize} bytes`);
148
+ }
149
+ const downloadResult = await withTimeout(storage.current.downloadBundleToFile(release.bundleUrl, release.id), 5 * 60 * 1000,
150
+ // 5 minute timeout
151
+ 'Bundle download');
152
+ if (__DEV__) {
153
+ console.log(`[OTAUpdate] Download complete: ${downloadResult.fileSize} bytes`);
154
+ }
129
155
  setDownloadProgress({
130
156
  downloadedBytes: downloadResult.fileSize,
131
157
  totalBytes: release.bundleSize,
@@ -134,10 +160,20 @@ function useOTAUpdate(config) {
134
160
 
135
161
  // Verify bundle hash
136
162
  setStatus('verifying');
163
+ if (__DEV__) {
164
+ console.log('[OTAUpdate] Calculating bundle hash...');
165
+ }
137
166
 
138
167
  // Calculate hash from file (streaming to avoid memory issues)
139
- const actualHash = await storage.current.calculateBundleHash(release.id);
168
+ // Use a 2 minute timeout for hash calculation
169
+ const actualHash = await withTimeout(storage.current.calculateBundleHash(release.id), 2 * 60 * 1000,
170
+ // 2 minute timeout
171
+ 'Hash calculation');
140
172
  const expectedHashWithoutPrefix = release.bundleHash.replace(/^sha256:/, '');
173
+ if (__DEV__) {
174
+ console.log(`[OTAUpdate] Expected hash: ${expectedHashWithoutPrefix}`);
175
+ console.log(`[OTAUpdate] Actual hash: ${actualHash}`);
176
+ }
141
177
  if (actualHash !== expectedHashWithoutPrefix) {
142
178
  // Delete corrupted bundle
143
179
  await storage.current.deleteBundle(release.id);
@@ -1 +1 @@
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":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","_api","_storage","getDeviceId","id","Math","random","toString","substring","withTimeout","promise","timeoutMs","operation","Promise","resolve","reject","timer","setTimeout","Error","then","result","clearTimeout","catch","error","useOTAUpdate","config","serverUrl","appSlug","channel","appVersion","publicKey","checkOnMount","checkOnForeground","status","setStatus","useState","updateInfo","setUpdateInfo","downloadProgress","setDownloadProgress","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","String","downloadUpdate","downloadedBytes","totalBytes","percentage","reportEvent","eventType","deviceInfo","getDeviceInfo","__DEV__","console","log","bundleUrl","downloadResult","downloadBundleToFile","fileSize","actualHash","calculateBundleHash","expectedHashWithoutPrefix","bundleHash","replace","deleteBundle","isValid","validateBundle","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":[]}
@@ -9,6 +9,12 @@ Object.defineProperty(exports, "OTAApiClient", {
9
9
  return _api.OTAApiClient;
10
10
  }
11
11
  });
12
+ Object.defineProperty(exports, "OTADebugPanel", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _OTADebugPanel.OTADebugPanel;
16
+ }
17
+ });
12
18
  Object.defineProperty(exports, "OTAProvider", {
13
19
  enumerable: true,
14
20
  get: function () {
@@ -83,16 +89,19 @@ Object.defineProperty(exports, "withOTA", {
83
89
  }
84
90
  });
85
91
  var _OTAProvider = require("./OTAProvider");
92
+ var _OTADebugPanel = require("./components/OTADebugPanel");
86
93
  var _useOTAUpdate = require("./hooks/useOTAUpdate");
87
94
  var _api = require("./utils/api");
88
95
  var _storage = require("./utils/storage");
89
96
  var _verification = require("./utils/verification");
90
97
  // Main exports
91
98
 
99
+ // Debug component (for development/testing)
100
+
92
101
  // Hook export
93
102
 
94
103
  // Utilities
95
104
 
96
105
  // Version info
97
- const VERSION = exports.VERSION = '0.1.8';
106
+ const VERSION = exports.VERSION = '0.2.2';
98
107
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_OTAProvider","require","_useOTAUpdate","_api","_storage","_verification","VERSION","exports"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAIA,IAAAC,aAAA,GAAAD,OAAA;AAUA,IAAAE,IAAA,GAAAF,OAAA;AAQA,IAAAG,QAAA,GAAAH,OAAA;AAGA,IAAAI,aAAA,GAAAJ,OAAA;AA1BA;;AAIA;;AAUA;;AAoBA;AACO,MAAMK,OAAO,GAAAC,OAAA,CAAAD,OAAA,GAAG,OAAO","ignoreList":[]}
1
+ {"version":3,"names":["_OTAProvider","require","_OTADebugPanel","_useOTAUpdate","_api","_storage","_verification","VERSION","exports"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAIA,IAAAC,cAAA,GAAAD,OAAA;AAGA,IAAAE,aAAA,GAAAF,OAAA;AAUA,IAAAG,IAAA,GAAAH,OAAA;AAQA,IAAAI,QAAA,GAAAJ,OAAA;AAGA,IAAAK,aAAA,GAAAL,OAAA;AA7BA;;AAIA;;AAGA;;AAUA;;AAoBA;AACO,MAAMM,OAAO,GAAAC,OAAA,CAAAD,OAAA,GAAG,OAAO","ignoreList":[]}