@hot-updater/react-native 0.27.0 → 0.28.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.
Files changed (62) hide show
  1. package/android/build.gradle +12 -0
  2. package/android/src/main/AndroidManifest.xml +3 -0
  3. package/android/src/main/AndroidManifestNew.xml +3 -0
  4. package/android/src/main/cpp/CMakeLists.txt +9 -0
  5. package/android/src/main/cpp/HotUpdaterRecovery.cpp +143 -0
  6. package/android/src/main/java/com/hotupdater/BundleFileStorageService.kt +170 -204
  7. package/android/src/main/java/com/hotupdater/BundleMetadata.kt +73 -16
  8. package/android/src/main/java/com/hotupdater/HotUpdaterImpl.kt +39 -13
  9. package/android/src/main/java/com/hotupdater/HotUpdaterRecoveryManager.kt +533 -0
  10. package/android/src/main/java/com/hotupdater/HotUpdaterRecoveryReceiver.kt +14 -0
  11. package/android/src/newarch/HotUpdaterModule.kt +2 -8
  12. package/android/src/oldarch/HotUpdaterModule.kt +2 -8
  13. package/android/src/oldarch/HotUpdaterSpec.kt +1 -1
  14. package/ios/HotUpdater/Internal/BundleFileStorageService.swift +189 -203
  15. package/ios/HotUpdater/Internal/BundleMetadata.swift +61 -8
  16. package/ios/HotUpdater/Internal/HotUpdater-Bridging-Header.h +9 -1
  17. package/ios/HotUpdater/Internal/HotUpdater.mm +265 -11
  18. package/ios/HotUpdater/Internal/HotUpdaterCrashHandler.h +7 -0
  19. package/ios/HotUpdater/Internal/HotUpdaterCrashHandler.mm +4 -0
  20. package/ios/HotUpdater/Internal/HotUpdaterImpl.swift +293 -9
  21. package/lib/commonjs/native.js +18 -21
  22. package/lib/commonjs/native.js.map +1 -1
  23. package/lib/commonjs/native.spec.js +86 -0
  24. package/lib/commonjs/native.spec.js.map +1 -0
  25. package/lib/commonjs/specs/NativeHotUpdater.js.map +1 -1
  26. package/lib/commonjs/types.js.map +1 -1
  27. package/lib/commonjs/wrap.js +4 -5
  28. package/lib/commonjs/wrap.js.map +1 -1
  29. package/lib/module/native.js +17 -20
  30. package/lib/module/native.js.map +1 -1
  31. package/lib/module/native.spec.js +85 -0
  32. package/lib/module/native.spec.js.map +1 -0
  33. package/lib/module/specs/NativeHotUpdater.js.map +1 -1
  34. package/lib/module/types.js.map +1 -1
  35. package/lib/module/wrap.js +5 -6
  36. package/lib/module/wrap.js.map +1 -1
  37. package/lib/typescript/commonjs/native.d.ts +4 -15
  38. package/lib/typescript/commonjs/native.d.ts.map +1 -1
  39. package/lib/typescript/commonjs/native.spec.d.ts +2 -0
  40. package/lib/typescript/commonjs/native.spec.d.ts.map +1 -0
  41. package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts +4 -8
  42. package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts.map +1 -1
  43. package/lib/typescript/commonjs/types.d.ts +2 -3
  44. package/lib/typescript/commonjs/types.d.ts.map +1 -1
  45. package/lib/typescript/commonjs/wrap.d.ts +2 -5
  46. package/lib/typescript/commonjs/wrap.d.ts.map +1 -1
  47. package/lib/typescript/module/native.d.ts +4 -15
  48. package/lib/typescript/module/native.d.ts.map +1 -1
  49. package/lib/typescript/module/native.spec.d.ts +2 -0
  50. package/lib/typescript/module/native.spec.d.ts.map +1 -0
  51. package/lib/typescript/module/specs/NativeHotUpdater.d.ts +4 -8
  52. package/lib/typescript/module/specs/NativeHotUpdater.d.ts.map +1 -1
  53. package/lib/typescript/module/types.d.ts +2 -3
  54. package/lib/typescript/module/types.d.ts.map +1 -1
  55. package/lib/typescript/module/wrap.d.ts +2 -5
  56. package/lib/typescript/module/wrap.d.ts.map +1 -1
  57. package/package.json +6 -6
  58. package/src/native.spec.ts +84 -0
  59. package/src/native.ts +20 -19
  60. package/src/specs/NativeHotUpdater.ts +4 -6
  61. package/src/types.ts +2 -3
  62. package/src/wrap.tsx +7 -11
@@ -1,9 +1,39 @@
1
1
  import Foundation
2
2
  import React
3
3
 
4
+ private func hotUpdaterUncaughtExceptionHandler(_ exception: NSException) {
5
+ HotUpdaterRecoveryManager.shared.handleUncaughtException(exception)
6
+ }
7
+
8
+ @_silgen_name("HotUpdaterInstallSignalHandlers")
9
+ private func hotUpdaterInstallSignalHandlersSymbol(_ crashMarkerPath: NSString)
10
+
11
+ @_silgen_name("HotUpdaterUpdateSignalLaunchState")
12
+ private func hotUpdaterUpdateSignalLaunchStateSymbol(
13
+ _ bundleId: NSString?,
14
+ _ shouldRollback: ObjCBool
15
+ )
16
+
17
+ @_silgen_name("HotUpdaterPerformRecoveryReload")
18
+ private func hotUpdaterPerformRecoveryReloadSymbol() -> ObjCBool
19
+
20
+ private func hotUpdaterInstallSignalHandlers(_ crashMarkerPath: String) {
21
+ hotUpdaterInstallSignalHandlersSymbol(crashMarkerPath as NSString)
22
+ }
23
+
24
+ private func hotUpdaterUpdateSignalLaunchState(_ bundleId: String?, shouldRollback: Bool) {
25
+ hotUpdaterUpdateSignalLaunchStateSymbol(bundleId as NSString?, ObjCBool(shouldRollback))
26
+ }
27
+
28
+ private func hotUpdaterPerformRecoveryReload() -> Bool {
29
+ return hotUpdaterPerformRecoveryReloadSymbol().boolValue
30
+ }
31
+
4
32
  @objcMembers public class HotUpdaterImpl: NSObject {
5
33
  private let bundleStorage: BundleStorageService
6
34
  private let preferences: PreferencesService
35
+ private let recoveryManager: HotUpdaterRecoveryManager
36
+ private var currentLaunchSelection: LaunchSelection?
7
37
 
8
38
  private static let DEFAULT_CHANNEL = "production"
9
39
  private static let CHANNEL_STORAGE_KEY = "HotUpdaterChannel"
@@ -27,8 +57,9 @@ import React
27
57
  preferences: preferences,
28
58
  isolationKey: isolationKey
29
59
  )
60
+ let recoveryManager = HotUpdaterRecoveryManager.shared
30
61
 
31
- self.init(bundleStorage: bundleStorage, preferences: preferences)
62
+ self.init(bundleStorage: bundleStorage, preferences: preferences, recoveryManager: recoveryManager)
32
63
  }
33
64
 
34
65
  /**
@@ -36,9 +67,10 @@ import React
36
67
  * @param bundleStorage Service for bundle storage operations
37
68
  * @param preferences Service for preference storage
38
69
  */
39
- internal init(bundleStorage: BundleStorageService, preferences: PreferencesService) {
70
+ internal init(bundleStorage: BundleStorageService, preferences: PreferencesService, recoveryManager: HotUpdaterRecoveryManager) {
40
71
  self.bundleStorage = bundleStorage
41
72
  self.preferences = preferences
73
+ self.recoveryManager = recoveryManager
42
74
  super.init()
43
75
 
44
76
  // Configure preferences with isolation key
@@ -120,7 +152,7 @@ import React
120
152
  * @return URL to the bundle or nil
121
153
  */
122
154
  public func bundleURL(bundle: Bundle = Bundle.main) -> URL? {
123
- return bundleStorage.getBundleURL(bundle: bundle)
155
+ return prepareLaunchIfNeeded(bundle: bundle).bundleURL
124
156
  }
125
157
 
126
158
  // MARK: - Bundle Update
@@ -269,13 +301,11 @@ import React
269
301
  // MARK: - Rollback Support
270
302
 
271
303
  /**
272
- * Notifies the system that the app has successfully started with the given bundle.
273
- * If the bundle matches the staging bundle, it promotes to stable.
274
- * @param bundleId The ID of the currently running bundle
275
- * @return true if promotion was successful or no action was needed
304
+ * Returns the native launch report for the current process.
305
+ * This is read-only; startup success and rollback are finalized before JS reads it.
276
306
  */
277
- public func notifyAppReady(bundleId: String) -> [String: Any] {
278
- return bundleStorage.notifyAppReady(bundleId: bundleId)
307
+ public func notifyAppReady() -> [String: Any] {
308
+ return bundleStorage.notifyAppReady()
279
309
  }
280
310
 
281
311
  /**
@@ -304,6 +334,10 @@ import React
304
334
  return bundleStorage.getBaseURL()
305
335
  }
306
336
 
337
+ public func resetLaunchPreparation() {
338
+ currentLaunchSelection = nil
339
+ }
340
+
307
341
  @objc
308
342
  public func resetChannel(_ resolver: @escaping RCTPromiseResolveBlock,
309
343
  rejecter reject: @escaping RCTPromiseRejectBlock) {
@@ -316,6 +350,7 @@ import React
316
350
  } catch {
317
351
  NSLog("[HotUpdaterImpl] Failed to clear channel override: \(error)")
318
352
  }
353
+ self.currentLaunchSelection = nil
319
354
  resolver(success)
320
355
  case .failure(let error):
321
356
  let normalizedCode = HotUpdaterImpl.normalizeErrorCode(from: error)
@@ -323,4 +358,253 @@ import React
323
358
  reject(normalizedCode, nsError.localizedDescription, nsError)
324
359
  }
325
360
  }
361
+
362
+ private func prepareLaunchIfNeeded(bundle: Bundle) -> LaunchSelection {
363
+ if let currentLaunchSelection {
364
+ return currentLaunchSelection
365
+ }
366
+
367
+ let pendingRecovery = recoveryManager.consumePendingCrashRecovery()
368
+ let selection = bundleStorage.prepareLaunch(bundle: bundle, pendingRecovery: pendingRecovery)
369
+ recoveryManager.startMonitoring(bundleId: selection.launchedBundleId, shouldRollback: selection.shouldRollbackOnCrash) { [weak self] launchedBundleId in
370
+ self?.bundleStorage.markLaunchCompleted(bundleId: launchedBundleId)
371
+ }
372
+ currentLaunchSelection = selection
373
+ return selection
374
+ }
375
+ }
376
+
377
+ @objcMembers
378
+ final class HotUpdaterRecoveryManager: NSObject {
379
+ static let shared = HotUpdaterRecoveryManager()
380
+
381
+ private let crashMarkerURL: URL
382
+ private var previousFatalHandler: RCTFatalHandler?
383
+ private var previousFatalExceptionHandler: RCTFatalExceptionHandler?
384
+ private var previousUncaughtExceptionHandler: (@convention(c) (NSException) -> Void)?
385
+
386
+ private var signalHandlersInstalled = false
387
+ private var handlersInstalled = false
388
+ private var isMonitoring = false
389
+ private var recoveryRequested = false
390
+ private var currentBundleId: String?
391
+ private var shouldRollbackOnCrash = false
392
+ private var contentAppearedCallback: ((String?) -> Void)?
393
+ private var stopMonitoringWorkItem: DispatchWorkItem?
394
+
395
+ private override init() {
396
+ let documentsPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
397
+ self.crashMarkerURL = documentsPath
398
+ .appendingPathComponent("bundle-store", isDirectory: true)
399
+ .appendingPathComponent("recovery-crash-marker.json")
400
+ super.init()
401
+ }
402
+
403
+ func consumePendingCrashRecovery() -> PendingCrashRecovery? {
404
+ guard FileManager.default.fileExists(atPath: crashMarkerURL.path) else {
405
+ return nil
406
+ }
407
+
408
+ defer {
409
+ try? FileManager.default.removeItem(at: crashMarkerURL)
410
+ }
411
+
412
+ do {
413
+ let data = try Data(contentsOf: crashMarkerURL)
414
+ let json = try JSONSerialization.jsonObject(with: data) as? [String: Any] ?? [:]
415
+ return PendingCrashRecovery.from(json: json)
416
+ } catch {
417
+ NSLog("[HotUpdaterRecovery] Failed to read crash marker: \(error)")
418
+ return nil
419
+ }
420
+ }
421
+
422
+ func startMonitoring(
423
+ bundleId: String?,
424
+ shouldRollback: Bool,
425
+ onContentAppeared: @escaping (String?) -> Void
426
+ ) {
427
+ currentBundleId = bundleId
428
+ shouldRollbackOnCrash = shouldRollback
429
+ recoveryRequested = false
430
+ contentAppearedCallback = onContentAppeared
431
+ isMonitoring = true
432
+
433
+ stopMonitoringWorkItem?.cancel()
434
+ stopMonitoringWorkItem = nil
435
+
436
+ installHandlersIfNeeded()
437
+ registerObservers()
438
+ installSignalHandlersIfNeeded()
439
+ hotUpdaterUpdateSignalLaunchState(bundleId, shouldRollback: shouldRollback)
440
+ }
441
+
442
+ func handleUncaughtException(_ exception: NSException) {
443
+ writeCrashMarker()
444
+ if requestRecoveryReloadIfNeeded() {
445
+ return
446
+ }
447
+ previousUncaughtExceptionHandler?(exception)
448
+ }
449
+
450
+ private func installHandlersIfNeeded() {
451
+ guard !handlersInstalled else {
452
+ return
453
+ }
454
+
455
+ previousFatalHandler = RCTGetFatalHandler()
456
+ previousFatalExceptionHandler = RCTGetFatalExceptionHandler()
457
+ previousUncaughtExceptionHandler = NSGetUncaughtExceptionHandler()
458
+
459
+ RCTSetFatalHandler { [weak self] error in
460
+ self?.writeCrashMarker()
461
+ if self?.requestRecoveryReloadIfNeeded() != true {
462
+ self?.previousFatalHandler?(error)
463
+ }
464
+ }
465
+
466
+ RCTSetFatalExceptionHandler { [weak self] exception in
467
+ self?.writeCrashMarker()
468
+ if self?.requestRecoveryReloadIfNeeded() != true {
469
+ self?.previousFatalExceptionHandler?(exception)
470
+ }
471
+ }
472
+
473
+ NSSetUncaughtExceptionHandler(hotUpdaterUncaughtExceptionHandler)
474
+ handlersInstalled = true
475
+ }
476
+
477
+ private func installSignalHandlersIfNeeded() {
478
+ guard !signalHandlersInstalled else {
479
+ return
480
+ }
481
+
482
+ try? FileManager.default.createDirectory(
483
+ at: crashMarkerURL.deletingLastPathComponent(),
484
+ withIntermediateDirectories: true,
485
+ attributes: nil
486
+ )
487
+ hotUpdaterInstallSignalHandlers(crashMarkerURL.path)
488
+ signalHandlersInstalled = true
489
+ }
490
+
491
+ private func registerObservers() {
492
+ unregisterObservers()
493
+ NotificationCenter.default.addObserver(
494
+ self,
495
+ selector: #selector(handleJavaScriptDidFailToLoad),
496
+ name: NSNotification.Name.RCTJavaScriptDidFailToLoad,
497
+ object: nil
498
+ )
499
+ NotificationCenter.default.addObserver(
500
+ self,
501
+ selector: #selector(handleContentDidAppear),
502
+ name: NSNotification.Name.RCTContentDidAppear,
503
+ object: nil
504
+ )
505
+ }
506
+
507
+ private func unregisterObservers() {
508
+ NotificationCenter.default.removeObserver(
509
+ self,
510
+ name: NSNotification.Name.RCTJavaScriptDidFailToLoad,
511
+ object: nil
512
+ )
513
+ NotificationCenter.default.removeObserver(
514
+ self,
515
+ name: NSNotification.Name.RCTContentDidAppear,
516
+ object: nil
517
+ )
518
+ }
519
+
520
+ @objc private func handleJavaScriptDidFailToLoad() {
521
+ if requestRecoveryReloadIfNeeded() {
522
+ return
523
+ }
524
+ unregisterObservers()
525
+ }
526
+
527
+ @objc private func handleContentDidAppear() {
528
+ guard isMonitoring else {
529
+ return
530
+ }
531
+
532
+ unregisterObservers()
533
+ contentAppearedCallback?(currentBundleId)
534
+ shouldRollbackOnCrash = false
535
+ hotUpdaterUpdateSignalLaunchState(currentBundleId, shouldRollback: false)
536
+
537
+ stopMonitoringWorkItem?.cancel()
538
+ let workItem = DispatchWorkItem { [weak self] in
539
+ self?.finishMonitoring()
540
+ }
541
+ stopMonitoringWorkItem = workItem
542
+ DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(10), execute: workItem)
543
+ }
544
+
545
+ private func finishMonitoring() {
546
+ isMonitoring = false
547
+ recoveryRequested = false
548
+ stopMonitoringWorkItem = nil
549
+ currentBundleId = nil
550
+ shouldRollbackOnCrash = false
551
+ contentAppearedCallback = nil
552
+ hotUpdaterUpdateSignalLaunchState(nil, shouldRollback: false)
553
+ }
554
+
555
+ private func requestRecoveryReloadIfNeeded() -> Bool {
556
+ guard isMonitoring, shouldRollbackOnCrash else {
557
+ return false
558
+ }
559
+
560
+ objc_sync_enter(self)
561
+ if recoveryRequested {
562
+ objc_sync_exit(self)
563
+ return true
564
+ }
565
+ recoveryRequested = true
566
+ objc_sync_exit(self)
567
+
568
+ let bundleId = currentBundleId
569
+ DispatchQueue.main.async { [weak self] in
570
+ guard let self else {
571
+ return
572
+ }
573
+
574
+ let started = hotUpdaterPerformRecoveryReload()
575
+ if !started {
576
+ objc_sync_enter(self)
577
+ self.recoveryRequested = false
578
+ objc_sync_exit(self)
579
+ NSLog("[HotUpdaterRecovery] Failed to trigger recovery reload")
580
+ } else {
581
+ NSLog("[HotUpdaterRecovery] Triggered recovery reload for bundleId=\(bundleId ?? "nil")")
582
+ }
583
+ }
584
+
585
+ return true
586
+ }
587
+
588
+ private func writeCrashMarker() {
589
+ guard isMonitoring else {
590
+ return
591
+ }
592
+
593
+ do {
594
+ try FileManager.default.createDirectory(
595
+ at: crashMarkerURL.deletingLastPathComponent(),
596
+ withIntermediateDirectories: true,
597
+ attributes: nil
598
+ )
599
+
600
+ let payload: [String: Any] = [
601
+ "bundleId": currentBundleId ?? NSNull(),
602
+ "shouldRollback": shouldRollbackOnCrash,
603
+ ]
604
+ let data = try JSONSerialization.data(withJSONObject: payload)
605
+ try data.write(to: crashMarkerURL, options: .atomic)
606
+ } catch {
607
+ NSLog("[HotUpdaterRecovery] Failed to write crash marker: \(error)")
608
+ }
609
+ }
326
610
  }
@@ -294,13 +294,11 @@ const getFingerprintHash = () => {
294
294
  */
295
295
  exports.getFingerprintHash = getFingerprintHash;
296
296
  /**
297
- * Notifies the native side that the app has successfully started with the current bundle.
298
- * If the bundle matches the staging bundle, it promotes to stable.
297
+ * Reads the native launch report for the current process.
299
298
  *
300
- * This function is called automatically when the module loads.
299
+ * This function is called automatically after the app has rendered.
301
300
  *
302
301
  * @returns {NotifyAppReadyResult} Bundle state information
303
- * - `status: "PROMOTED"` - Staging bundle was promoted to stable (ACTIVE event)
304
302
  * - `status: "RECOVERED"` - App recovered from crash, rollback occurred (ROLLBACK event)
305
303
  * - `status: "STABLE"` - No changes, already stable
306
304
  * - `crashedBundleId` - Present only when status is "RECOVERED"
@@ -309,37 +307,37 @@ exports.getFingerprintHash = getFingerprintHash;
309
307
  * ```ts
310
308
  * const result = HotUpdater.notifyAppReady();
311
309
  *
312
- * switch (result.status) {
313
- * case "PROMOTED":
314
- * // Send ACTIVE analytics event
315
- * analytics.track('bundle_active', { bundleId: HotUpdater.getBundleId() });
316
- * break;
317
- * case "RECOVERED":
310
+ * if (result.status === "RECOVERED") {
318
311
  * // Send ROLLBACK analytics event
319
312
  * analytics.track('bundle_rollback', { crashedBundleId: result.crashedBundleId });
320
- * break;
321
- * case "STABLE":
322
- * // No special action needed
323
- * break;
324
313
  * }
325
314
  * ```
326
315
  */
327
316
  const notifyAppReady = () => {
328
- const bundleId = getBundleId();
329
- const result = _NativeHotUpdater.default.notifyAppReady({
330
- bundleId
331
- });
317
+ const result = _NativeHotUpdater.default.notifyAppReady();
332
318
  // Oldarch returns JSON string, newarch returns array
333
319
  if (typeof result === "string") {
334
320
  try {
335
- return JSON.parse(result);
321
+ return normalizeNotifyAppReadyResult(JSON.parse(result));
336
322
  } catch {
337
323
  return {
338
324
  status: "STABLE"
339
325
  };
340
326
  }
341
327
  }
342
- return result;
328
+ return normalizeNotifyAppReadyResult(result);
329
+ };
330
+ exports.notifyAppReady = notifyAppReady;
331
+ const normalizeNotifyAppReadyResult = result => {
332
+ if (result.status === "RECOVERED") {
333
+ return {
334
+ status: "RECOVERED",
335
+ crashedBundleId: result.crashedBundleId
336
+ };
337
+ }
338
+ return {
339
+ status: "STABLE"
340
+ };
343
341
  };
344
342
 
345
343
  /**
@@ -348,7 +346,6 @@ const notifyAppReady = () => {
348
346
  *
349
347
  * @returns {string[]} Array of crashed bundle IDs
350
348
  */
351
- exports.notifyAppReady = notifyAppReady;
352
349
  const getCrashHistory = () => {
353
350
  const result = _NativeHotUpdater.default.getCrashHistory();
354
351
  // Oldarch returns JSON string, newarch returns array
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_error","_NativeHotUpdater","_interopRequireDefault","e","__esModule","default","NIL_UUID","HotUpdaterConstants","exports","HOT_UPDATER_BUNDLE_ID","__HOT_UPDATER_BUNDLE_ID","HotUpdaterSessionState","inflightUpdates","Map","lastInstalledBundleId","constructor","constants","HotUpdaterNative","getConstants","defaultChannel","DEFAULT_CHANNEL","CHANNEL","currentChannel","getChannel","getDefaultChannel","isChannelSwitched","hasInstalledBundle","bundleId","getInflightUpdate","get","trackInflightUpdate","promise","set","clearInflightUpdate","delete","markBundleInstalled","channel","resetChannelState","clear","sessionState","reloadBehavior","customReloadHandler","getReloadProcess","nativeModule","reloadProcess","bind","eventEmitter","NativeEventEmitter","addListener","eventName","listener","subscription","remove","updateBundle","paramsOrBundleId","fileUrl","updateBundleId","status","shouldSkipCurrentBundleIdCheck","localeCompare","getBundleId","Error","existing","targetFileUrl","targetFileHash","undefined","fileHash","targetChannel","ok","getAppVersion","APP_VERSION","reload","Platform","OS","setReloadBehavior","args","behavior","handler","getMinBundleId","MIN_BUNDLE_ID","getFingerprintHash","FINGERPRINT_HASH","notifyAppReady","result","JSON","parse","getCrashHistory","clearCrashHistory","getBaseURL","resetChannel"],"sourceRoot":"../../src","sources":["native.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_error","_NativeHotUpdater","_interopRequireDefault","e","__esModule","default","NIL_UUID","HotUpdaterConstants","exports","HOT_UPDATER_BUNDLE_ID","__HOT_UPDATER_BUNDLE_ID","HotUpdaterSessionState","inflightUpdates","Map","lastInstalledBundleId","constructor","constants","HotUpdaterNative","getConstants","defaultChannel","DEFAULT_CHANNEL","CHANNEL","currentChannel","getChannel","getDefaultChannel","isChannelSwitched","hasInstalledBundle","bundleId","getInflightUpdate","get","trackInflightUpdate","promise","set","clearInflightUpdate","delete","markBundleInstalled","channel","resetChannelState","clear","sessionState","reloadBehavior","customReloadHandler","getReloadProcess","nativeModule","reloadProcess","bind","eventEmitter","NativeEventEmitter","addListener","eventName","listener","subscription","remove","updateBundle","paramsOrBundleId","fileUrl","updateBundleId","status","shouldSkipCurrentBundleIdCheck","localeCompare","getBundleId","Error","existing","targetFileUrl","targetFileHash","undefined","fileHash","targetChannel","ok","getAppVersion","APP_VERSION","reload","Platform","OS","setReloadBehavior","args","behavior","handler","getMinBundleId","MIN_BUNDLE_ID","getFingerprintHash","FINGERPRINT_HASH","notifyAppReady","result","normalizeNotifyAppReadyResult","JSON","parse","crashedBundleId","getCrashHistory","clearCrashHistory","getBaseURL","resetChannel"],"sourceRoot":"../../src","sources":["native.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+
3
+ var _vitest = require("vitest");
4
+ 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); }
5
+ const nativeModuleMock = _vitest.vi.hoisted(() => {
6
+ _vitest.vi.stubGlobal("__HOT_UPDATER_BUNDLE_ID", "bundle-id");
7
+ return {
8
+ clearCrashHistory: _vitest.vi.fn(() => true),
9
+ getBaseURL: _vitest.vi.fn(() => null),
10
+ getConstants: _vitest.vi.fn(() => ({
11
+ APP_VERSION: null,
12
+ CHANNEL: "production",
13
+ DEFAULT_CHANNEL: "production",
14
+ FINGERPRINT_HASH: null
15
+ })),
16
+ getCrashHistory: _vitest.vi.fn(() => []),
17
+ notifyAppReady: _vitest.vi.fn(),
18
+ reload: _vitest.vi.fn(),
19
+ resetChannel: _vitest.vi.fn(),
20
+ setBundleURL: _vitest.vi.fn(),
21
+ switchChannel: _vitest.vi.fn(),
22
+ updateBundle: _vitest.vi.fn()
23
+ };
24
+ });
25
+ _vitest.vi.mock("react-native", () => ({
26
+ NativeEventEmitter: class {
27
+ addListener() {
28
+ return {
29
+ remove: () => {}
30
+ };
31
+ }
32
+ },
33
+ Platform: {
34
+ OS: "ios"
35
+ }
36
+ }));
37
+ _vitest.vi.mock("./specs/NativeHotUpdater", () => ({
38
+ default: nativeModuleMock
39
+ }));
40
+ (0, _vitest.describe)("notifyAppReady", () => {
41
+ (0, _vitest.beforeEach)(() => {
42
+ _vitest.vi.resetModules();
43
+ nativeModuleMock.notifyAppReady.mockReset();
44
+ nativeModuleMock.getConstants.mockReturnValue({
45
+ APP_VERSION: null,
46
+ CHANNEL: "production",
47
+ DEFAULT_CHANNEL: "production",
48
+ FINGERPRINT_HASH: null
49
+ });
50
+ });
51
+ (0, _vitest.it)("normalizes legacy PROMOTED launch reports to STABLE", async () => {
52
+ nativeModuleMock.notifyAppReady.mockReturnValue(JSON.stringify({
53
+ status: "PROMOTED"
54
+ }));
55
+ const {
56
+ notifyAppReady
57
+ } = await Promise.resolve().then(() => _interopRequireWildcard(require("./native")));
58
+ (0, _vitest.expect)(notifyAppReady()).toEqual({
59
+ status: "STABLE"
60
+ });
61
+ (0, _vitest.expect)(nativeModuleMock.notifyAppReady).toHaveBeenCalledWith();
62
+ });
63
+ (0, _vitest.it)("returns RECOVERED launch reports unchanged", async () => {
64
+ nativeModuleMock.notifyAppReady.mockReturnValue({
65
+ crashedBundleId: "bundle-123",
66
+ status: "RECOVERED"
67
+ });
68
+ const {
69
+ notifyAppReady
70
+ } = await Promise.resolve().then(() => _interopRequireWildcard(require("./native")));
71
+ (0, _vitest.expect)(notifyAppReady()).toEqual({
72
+ crashedBundleId: "bundle-123",
73
+ status: "RECOVERED"
74
+ });
75
+ });
76
+ (0, _vitest.it)("falls back to STABLE for malformed old-arch payloads", async () => {
77
+ nativeModuleMock.notifyAppReady.mockReturnValue("{");
78
+ const {
79
+ notifyAppReady
80
+ } = await Promise.resolve().then(() => _interopRequireWildcard(require("./native")));
81
+ (0, _vitest.expect)(notifyAppReady()).toEqual({
82
+ status: "STABLE"
83
+ });
84
+ });
85
+ });
86
+ //# sourceMappingURL=native.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_vitest","require","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","nativeModuleMock","vi","hoisted","stubGlobal","clearCrashHistory","fn","getBaseURL","getConstants","APP_VERSION","CHANNEL","DEFAULT_CHANNEL","FINGERPRINT_HASH","getCrashHistory","notifyAppReady","reload","resetChannel","setBundleURL","switchChannel","updateBundle","mock","NativeEventEmitter","addListener","remove","Platform","OS","describe","beforeEach","resetModules","mockReset","mockReturnValue","it","JSON","stringify","status","Promise","resolve","then","expect","toEqual","toHaveBeenCalledWith","crashedBundleId"],"sourceRoot":"../../src","sources":["native.spec.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["specs/NativeHotUpdater.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAwHpCC,gCAAmB,CAACC,YAAY,CAAO,YAAY,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["specs/NativeHotUpdater.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAsHpCC,gCAAmB,CAACC,YAAY,CAAO,YAAY,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["isSignatureVerificationError","error","Error","message","toLowerCase","includes","extractSignatureFailure","bundleId","normalizedError","String"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;;;;;;AAGA;AACA;AACA;;AAgDA;AACA;AACA;;AA0BA;AACA;AACA;;AAoDA;AACA;AACA;AACA;AACA;;AAgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,4BAA4BA,CAACC,KAAc,EAAW;EACpE,IAAI,EAAEA,KAAK,YAAYC,KAAK,CAAC,EAAE;IAC7B,OAAO,KAAK;EACd;EAEA,MAAMC,OAAO,GAAGF,KAAK,CAACE,OAAO,CAACC,WAAW,CAAC,CAAC;;EAE3C;EACA;EACA,OACED,OAAO,CAACE,QAAQ,CAAC,wBAAwB,CAAC,IAC1CF,OAAO,CAACE,QAAQ,CAAC,2BAA2B,CAAC,IAC7CF,OAAO,CAACE,QAAQ,CAAC,8BAA8B,CAAC,IAChDF,OAAO,CAACE,QAAQ,CAAC,6BAA6B,CAAC,IAC/CF,OAAO,CAACE,QAAQ,CAAC,qCAAqC,CAAC;AAE3D;;AAEA;AACA;AACA;AACO,SAASC,uBAAuBA,CACrCL,KAAc,EACdM,QAAgB,EACc;EAC9B,MAAMC,eAAe,GACnBP,KAAK,YAAYC,KAAK,GAAGD,KAAK,GAAG,IAAIC,KAAK,CAACO,MAAM,CAACR,KAAK,CAAC,CAAC;EAE3D,OAAO;IACLM,QAAQ;IACRJ,OAAO,EAAEK,eAAe,CAACL,OAAO;IAChCF,KAAK,EAAEO;EACT,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["isSignatureVerificationError","error","Error","message","toLowerCase","includes","extractSignatureFailure","bundleId","normalizedError","String"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;;;;;;AAGA;AACA;AACA;;AAgDA;AACA;AACA;;AAyBA;AACA;AACA;;AAoDA;AACA;AACA;AACA;AACA;;AAgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,4BAA4BA,CAACC,KAAc,EAAW;EACpE,IAAI,EAAEA,KAAK,YAAYC,KAAK,CAAC,EAAE;IAC7B,OAAO,KAAK;EACd;EAEA,MAAMC,OAAO,GAAGF,KAAK,CAACE,OAAO,CAACC,WAAW,CAAC,CAAC;;EAE3C;EACA;EACA,OACED,OAAO,CAACE,QAAQ,CAAC,wBAAwB,CAAC,IAC1CF,OAAO,CAACE,QAAQ,CAAC,2BAA2B,CAAC,IAC7CF,OAAO,CAACE,QAAQ,CAAC,8BAA8B,CAAC,IAChDF,OAAO,CAACE,QAAQ,CAAC,6BAA6B,CAAC,IAC/CF,OAAO,CAACE,QAAQ,CAAC,qCAAqC,CAAC;AAE3D;;AAEA;AACA;AACA;AACO,SAASC,uBAAuBA,CACrCL,KAAc,EACdM,QAAgB,EACc;EAC9B,MAAMC,eAAe,GACnBP,KAAK,YAAYC,KAAK,GAAGD,KAAK,GAAG,IAAIC,KAAK,CAACO,MAAM,CAACR,KAAK,CAAC,CAAC;EAE3D,OAAO;IACLM,QAAQ;IACRJ,OAAO,EAAEK,eAAe,CAACL,OAAO;IAChCF,KAAK,EAAEO;EACT,CAAC;AACH","ignoreList":[]}
@@ -37,7 +37,6 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
37
37
  */
38
38
  const handleNotifyAppReady = async options => {
39
39
  try {
40
- // Always call native notifyAppReady for bundle promotion
41
40
  const nativeResult = (0, _native.notifyAppReady)();
42
41
 
43
42
  // If resolver.notifyAppReady exists, call it with simplified params
@@ -60,7 +59,7 @@ function wrap(options) {
60
59
  if (options.updateMode === "manual") {
61
60
  return WrappedComponent => {
62
61
  const ManualHOC = props => {
63
- (0, _react.useLayoutEffect)(() => {
62
+ (0, _react.useEffect)(() => {
64
63
  void handleNotifyAppReady(options);
65
64
  }, []);
66
65
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(WrappedComponent, {
@@ -140,13 +139,13 @@ function wrap(options) {
140
139
  restOptions.onProgress?.(progress);
141
140
  }, [progress]);
142
141
 
143
- // Notify native side that app is ready (JS bundle fully loaded)
144
- (0, _react.useLayoutEffect)(() => {
142
+ // Read the native launch report after the first render commit.
143
+ (0, _react.useEffect)(() => {
145
144
  void handleNotifyAppReady(restOptions);
146
145
  }, []);
147
146
 
148
147
  // Start update check
149
- (0, _react.useLayoutEffect)(() => {
148
+ (0, _react.useEffect)(() => {
150
149
  initHotUpdater();
151
150
  }, []);
152
151
  if (restOptions.fallbackComponent && updateStatus !== "UPDATE_PROCESS_COMPLETED") {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_checkForUpdate","_useEventCallback","_native","_store","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","handleNotifyAppReady","options","nativeResult","nativeNotifyAppReady","resolver","notifyAppReady","status","crashedBundleId","requestHeaders","requestTimeout","catch","console","warn","onNotifyAppReady","wrap","updateMode","WrappedComponent","ManualHOC","props","useLayoutEffect","jsx","reloadOnForceUpdate","restOptions","HotUpdaterHOC","progress","useHotUpdaterStore","state","message","setMessage","useState","updateStatus","setUpdateStatus","initHotUpdater","useEventCallback","updateInfo","checkForUpdate","updateStrategy","onError","onUpdateProcessCompleted","shouldForceUpdate","id","getBundleId","updateBundle","error","isSuccess","Error","reload","useEffect","onProgress","fallbackComponent","Fallback"],"sourceRoot":"../../src","sources":["wrap.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_checkForUpdate","_useEventCallback","_native","_store","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","handleNotifyAppReady","options","nativeResult","nativeNotifyAppReady","resolver","notifyAppReady","status","crashedBundleId","requestHeaders","requestTimeout","catch","console","warn","onNotifyAppReady","wrap","updateMode","WrappedComponent","ManualHOC","props","useEffect","jsx","reloadOnForceUpdate","restOptions","HotUpdaterHOC","progress","useHotUpdaterStore","state","message","setMessage","useState","updateStatus","setUpdateStatus","initHotUpdater","useEventCallback","updateInfo","checkForUpdate","updateStrategy","onError","onUpdateProcessCompleted","shouldForceUpdate","id","getBundleId","updateBundle","error","isSuccess","Error","reload","onProgress","fallbackComponent","Fallback"],"sourceRoot":"../../src","sources":["wrap.tsx"],"mappings":"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","ignoreList":[]}