@hot-updater/react-native 1.0.0-rc.34 → 1.0.0-rc.36

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 (29) hide show
  1. package/android/build.gradle +13 -2
  2. package/android/proguard-rules.pro +0 -9
  3. package/android/src/bridge/BridgeReactInstance.kt +38 -0
  4. package/android/src/bridgeless/BridgeReactInstance.kt +24 -0
  5. package/android/src/main/java/com/hotupdater/ActivityStartGate.kt +94 -0
  6. package/android/src/main/java/com/hotupdater/BundleFileStorageService.kt +119 -16
  7. package/android/src/main/java/com/hotupdater/BundleMetadata.kt +35 -0
  8. package/android/src/main/java/com/hotupdater/HotUpdaterImpl.kt +13 -0
  9. package/android/src/main/java/com/hotupdater/HotUpdaterRecoveryManager.kt +38 -138
  10. package/android/src/newarch/JavaScriptExceptionHooks.kt +48 -0
  11. package/android/src/newarch/ReactIntegrationManager.kt +6 -32
  12. package/android/src/oldarch/JavaScriptExceptionHooks.kt +71 -0
  13. package/ios/HotUpdater/Internal/BundleFileStorageService.swift +93 -15
  14. package/ios/HotUpdater/Internal/BundleMetadata.swift +53 -1
  15. package/ios/HotUpdater/Internal/HotUpdater.mm +19 -22
  16. package/ios/HotUpdater/Internal/HotUpdaterImpl.swift +39 -0
  17. package/lib/commonjs/pluginHost.js +1 -0
  18. package/lib/commonjs/pluginHost.js.map +1 -1
  19. package/lib/commonjs/sdkVersion.js +1 -1
  20. package/lib/module/pluginHost.js +2 -1
  21. package/lib/module/pluginHost.js.map +1 -1
  22. package/lib/module/sdkVersion.js +1 -1
  23. package/lib/typescript/commonjs/pluginHost.d.ts.map +1 -1
  24. package/lib/typescript/commonjs/sdkVersion.d.ts +1 -1
  25. package/lib/typescript/module/pluginHost.d.ts.map +1 -1
  26. package/lib/typescript/module/sdkVersion.d.ts +1 -1
  27. package/package.json +3 -3
  28. package/src/pluginHost.ts +2 -0
  29. package/src/sdkVersion.ts +1 -1
@@ -213,31 +213,28 @@ extern "C" NSString *HotUpdaterGetMinBundleId(void)
213
213
  #if DEBUG
214
214
  uuid = @"00000000-0000-0000-0000-000000000000";
215
215
  #else
216
- // Step 1: Try to read HOT_UPDATER_BUILD_TIMESTAMP from Info.plist
217
- NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];
218
- NSString *customValue = infoDictionary[@"HOT_UPDATER_BUILD_TIMESTAMP"];
219
-
220
- // Step 2: If custom value exists and is not empty
221
- if (customValue && customValue.length > 0 && ![customValue isEqualToString:@"$(HOT_UPDATER_BUILD_TIMESTAMP)"]) {
222
- // Check if it's a timestamp (pure digits) or UUID
223
- NSCharacterSet *nonDigits = [[NSCharacterSet decimalDigitCharacterSet] invertedSet];
224
- BOOL isTimestamp = ([customValue rangeOfCharacterFromSet:nonDigits].location == NSNotFound);
225
-
226
- if (isTimestamp) {
227
- // Convert timestamp (milliseconds) to UUID v7
228
- uint64_t timestampMs = [customValue longLongValue];
229
- uuid = [HotUpdater generateUUIDv7FromTimestamp:timestampMs];
230
- RCTLogInfo(@"[HotUpdater.mm] Using timestamp %@ as MIN_BUNDLE_ID: %@", customValue, uuid);
231
- } else {
232
- // Use as UUID directly
233
- uuid = customValue;
234
- RCTLogInfo(@"[HotUpdater.mm] Using custom MIN_BUNDLE_ID from Info.plist: %@", uuid);
216
+ // Step 1: Use the HOT_UPDATER_MIN_BUNDLE_ID build setting, which the
217
+ // hot-updater CLI passes to xcodebuild and the Info.plist slot it adds
218
+ // (`$(HOT_UPDATER_MIN_BUNDLE_ID)`) carries into the app, as Android
219
+ // takes -PMIN_BUNDLE_ID.
220
+ NSString *customValue = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"HOT_UPDATER_MIN_BUNDLE_ID"];
221
+ if ([customValue isKindOfClass:[NSString class]]) {
222
+ NSString *trimmed = [customValue stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
223
+ // An unset build setting leaves the slot empty or unexpanded; anything
224
+ // but a UUID falls back to the compile time below.
225
+ NSUUID *parsed = trimmed.length > 0 ? [[NSUUID alloc] initWithUUIDString:trimmed] : nil;
226
+ if (parsed) {
227
+ uuid = parsed.UUIDString.lowercaseString;
228
+ RCTLogInfo(@"[HotUpdater.mm] Using MIN_BUNDLE_ID from the HOT_UPDATER_MIN_BUNDLE_ID build setting: %@", uuid);
229
+ return;
230
+ }
231
+ if (trimmed.length > 0 && ![trimmed isEqualToString:@"$(HOT_UPDATER_MIN_BUNDLE_ID)"]) {
232
+ RCTLogWarn(@"[HotUpdater.mm] Ignoring HOT_UPDATER_MIN_BUNDLE_ID %@: not a UUID", trimmed);
235
233
  }
236
- return;
237
234
  }
238
235
 
239
- // Step 3: Fallback to default logic (26-hour subtraction)
240
- RCTLogInfo(@"[HotUpdater.mm] No custom MIN_BUNDLE_ID found, using default calculation");
236
+ // Step 2: Fall back to the compile time (26-hour subtraction)
237
+ RCTLogInfo(@"[HotUpdater.mm] No HOT_UPDATER_MIN_BUNDLE_ID build setting, using the compile time");
241
238
 
242
239
  NSString *compileDateStr = [NSString stringWithFormat:@"%s %s", __DATE__, __TIME__];
243
240
  NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
@@ -1,5 +1,6 @@
1
1
  import Foundation
2
2
  import React
3
+ import UIKit
3
4
 
4
5
  private func hotUpdaterUncaughtExceptionHandler(_ exception: NSException) {
5
6
  HotUpdaterRecoveryManager.shared.handleUncaughtException(exception)
@@ -58,6 +59,7 @@ private func hotUpdaterGetMinBundleId() -> String {
58
59
  private let releaseCatalogCache: ReleaseCatalogCacheService
59
60
  private let keyValueStorage: KeyValueStorageService
60
61
  private var currentLaunchSelection: LaunchSelection?
62
+ private var launchStartObservers: [NSObjectProtocol] = []
61
63
 
62
64
  private static let DEFAULT_CHANNEL = "production"
63
65
  private static let CHANNEL_STORAGE_KEY = "HotUpdaterChannel"
@@ -703,12 +705,49 @@ private func hotUpdaterGetMinBundleId() -> String {
703
705
 
704
706
  let pendingRecovery = recoveryManager.consumePendingCrashRecovery()
705
707
  let selection = bundleStorage.prepareLaunch(bundle: bundle, pendingRecovery: pendingRecovery)
708
+ markLaunchStartedInForeground(selection)
706
709
  recoveryManager.startMonitoring(bundleId: selection.launchedBundleId, shouldRollback: selection.shouldRollbackOnCrash) { [weak self] launchedBundleId in
707
710
  self?.bundleStorage.markLaunchCompleted(bundleId: launchedBundleId)
708
711
  }
709
712
  currentLaunchSelection = selection
710
713
  return selection
711
714
  }
715
+
716
+ // A background launch, such as a silent push, may never render. Only a
717
+ // launch in the foreground may leave an unfinished launch for the next
718
+ // process to roll back.
719
+ private func markLaunchStartedInForeground(_ selection: LaunchSelection) {
720
+ let bundleId = selection.shouldRollbackOnCrash ? selection.launchedBundleId : nil
721
+ let mark = { [weak self] in
722
+ guard let self else { return }
723
+ self.removeLaunchStartObservers()
724
+ guard let bundleId else { return }
725
+ guard UIApplication.shared.applicationState == .background else {
726
+ self.bundleStorage.markLaunchStarted(bundleId: bundleId)
727
+ return
728
+ }
729
+ self.launchStartObservers = [
730
+ UIApplication.willEnterForegroundNotification,
731
+ UIApplication.didBecomeActiveNotification,
732
+ ].map { name in
733
+ NotificationCenter.default.addObserver(forName: name, object: nil, queue: .main) { [weak self] _ in
734
+ self?.removeLaunchStartObservers()
735
+ self?.bundleStorage.markLaunchStarted(bundleId: bundleId)
736
+ }
737
+ }
738
+ }
739
+ // UIApplication is read on the main thread.
740
+ if Thread.isMainThread {
741
+ mark()
742
+ } else {
743
+ DispatchQueue.main.async(execute: mark)
744
+ }
745
+ }
746
+
747
+ private func removeLaunchStartObservers() {
748
+ launchStartObservers.forEach { NotificationCenter.default.removeObserver($0) }
749
+ launchStartObservers = []
750
+ }
712
751
  }
713
752
 
714
753
  @objcMembers
@@ -28,6 +28,7 @@ const {
28
28
  },
29
29
  getInstallId: () => (0, _native.getInstallId)(),
30
30
  getAppVersion: () => (0, _native.getAppVersion)(),
31
+ getMinBundleId: () => (0, _native.getMinBundleId)(),
31
32
  getBundleId: () => (0, _native.getBundleId)(),
32
33
  getChannel: () => (0, _native.getChannel)(),
33
34
  getCohort: () => (0, _native.getCohort)(),
@@ -1 +1 @@
1
- {"version":3,"names":["_protocol","require","_reactNative","_native","_sdkVersion","configurePlugins","hasPluginHook","buildPluginEvent","dispatchPluginHook","emitPluginHook","createPluginHost","fetch","url","init","platform","Platform","OS","isDebugBuild","__DEV__","sdkVersion","HOT_UPDATER_SDK_VERSION","getInstallId","getAppVersion","getBundleId","getChannel","getCohort","getFingerprintHash","getStorageItem","key","setStorageItem","value","now","Date","exports"],"sourceRoot":"../../src","sources":["pluginHost.ts"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AAUA,IAAAG,WAAA,GAAAH,OAAA;AAIA;AACO,MAAM;EACXI,gBAAgB;EAChBC,aAAa;EACbC,gBAAgB;EAChBC,kBAAkB;EAClBC;AACF,CAAC,GAAG,IAAAC,0BAAgB,EAAC;EACnBC,KAAK,EAAEA,CAACC,GAAG,EAAEC,IAAI,KAAKF,KAAK,CAACC,GAAG,EAAEC,IAAI,CAAC;EACtC,IAAIC,QAAQA,CAAA,EAAG;IACb,OAAOC,qBAAQ,CAACC,EAAE,KAAK,SAAS,GAAG,SAAS,GAAG,KAAK;EACtD,CAAC;EACD,IAAIC,YAAYA,CAAA,EAAG;IACjB,OAAO,OAAOC,OAAO,KAAK,WAAW,IAAIA,OAAO;EAClD,CAAC;EACD,IAAIC,UAAUA,CAAA,EAAG;IACf,OAAOC,mCAAuB;EAChC,CAAC;EACDC,YAAY,EAAEA,CAAA,KAAM,IAAAA,oBAAY,EAAC,CAAC;EAClCC,aAAa,EAAEA,CAAA,KAAM,IAAAA,qBAAa,EAAC,CAAC;EACpCC,WAAW,EAAEA,CAAA,KAAM,IAAAA,mBAAW,EAAC,CAAC;EAChCC,UAAU,EAAEA,CAAA,KAAM,IAAAA,kBAAU,EAAC,CAAC;EAC9BC,SAAS,EAAEA,CAAA,KAAM,IAAAA,iBAAS,EAAC,CAAC;EAC5BC,kBAAkB,EAAEA,CAAA,KAAM,IAAAA,0BAAkB,EAAC,CAAC;EAC9CC,cAAc,EAAGC,GAAG,IAAK,IAAAD,sBAAc,EAACC,GAAG,CAAC;EAC5CC,cAAc,EAAEA,CAACD,GAAG,EAAEE,KAAK,KAAK,IAAAD,sBAAc,EAACD,GAAG,EAAEE,KAAK,CAAC;EAC1DC,GAAG,EAAEA,CAAA,KAAMC,IAAI,CAACD,GAAG,CAAC;AACtB,CAAC,CAAC;AAACE,OAAA,CAAAxB,cAAA,GAAAA,cAAA;AAAAwB,OAAA,CAAAzB,kBAAA,GAAAA,kBAAA;AAAAyB,OAAA,CAAA1B,gBAAA,GAAAA,gBAAA;AAAA0B,OAAA,CAAA3B,aAAA,GAAAA,aAAA;AAAA2B,OAAA,CAAA5B,gBAAA,GAAAA,gBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_protocol","require","_reactNative","_native","_sdkVersion","configurePlugins","hasPluginHook","buildPluginEvent","dispatchPluginHook","emitPluginHook","createPluginHost","fetch","url","init","platform","Platform","OS","isDebugBuild","__DEV__","sdkVersion","HOT_UPDATER_SDK_VERSION","getInstallId","getAppVersion","getMinBundleId","getBundleId","getChannel","getCohort","getFingerprintHash","getStorageItem","key","setStorageItem","value","now","Date","exports"],"sourceRoot":"../../src","sources":["pluginHost.ts"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AAWA,IAAAG,WAAA,GAAAH,OAAA;AAIA;AACO,MAAM;EACXI,gBAAgB;EAChBC,aAAa;EACbC,gBAAgB;EAChBC,kBAAkB;EAClBC;AACF,CAAC,GAAG,IAAAC,0BAAgB,EAAC;EACnBC,KAAK,EAAEA,CAACC,GAAG,EAAEC,IAAI,KAAKF,KAAK,CAACC,GAAG,EAAEC,IAAI,CAAC;EACtC,IAAIC,QAAQA,CAAA,EAAG;IACb,OAAOC,qBAAQ,CAACC,EAAE,KAAK,SAAS,GAAG,SAAS,GAAG,KAAK;EACtD,CAAC;EACD,IAAIC,YAAYA,CAAA,EAAG;IACjB,OAAO,OAAOC,OAAO,KAAK,WAAW,IAAIA,OAAO;EAClD,CAAC;EACD,IAAIC,UAAUA,CAAA,EAAG;IACf,OAAOC,mCAAuB;EAChC,CAAC;EACDC,YAAY,EAAEA,CAAA,KAAM,IAAAA,oBAAY,EAAC,CAAC;EAClCC,aAAa,EAAEA,CAAA,KAAM,IAAAA,qBAAa,EAAC,CAAC;EACpCC,cAAc,EAAEA,CAAA,KAAM,IAAAA,sBAAc,EAAC,CAAC;EACtCC,WAAW,EAAEA,CAAA,KAAM,IAAAA,mBAAW,EAAC,CAAC;EAChCC,UAAU,EAAEA,CAAA,KAAM,IAAAA,kBAAU,EAAC,CAAC;EAC9BC,SAAS,EAAEA,CAAA,KAAM,IAAAA,iBAAS,EAAC,CAAC;EAC5BC,kBAAkB,EAAEA,CAAA,KAAM,IAAAA,0BAAkB,EAAC,CAAC;EAC9CC,cAAc,EAAGC,GAAG,IAAK,IAAAD,sBAAc,EAACC,GAAG,CAAC;EAC5CC,cAAc,EAAEA,CAACD,GAAG,EAAEE,KAAK,KAAK,IAAAD,sBAAc,EAACD,GAAG,EAAEE,KAAK,CAAC;EAC1DC,GAAG,EAAEA,CAAA,KAAMC,IAAI,CAACD,GAAG,CAAC;AACtB,CAAC,CAAC;AAACE,OAAA,CAAAzB,cAAA,GAAAA,cAAA;AAAAyB,OAAA,CAAA1B,kBAAA,GAAAA,kBAAA;AAAA0B,OAAA,CAAA3B,gBAAA,GAAAA,gBAAA;AAAA2B,OAAA,CAAA5B,aAAA,GAAAA,aAAA;AAAA4B,OAAA,CAAA7B,gBAAA,GAAAA,gBAAA","ignoreList":[]}
@@ -4,5 +4,5 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.HOT_UPDATER_SDK_VERSION = void 0;
7
- const HOT_UPDATER_SDK_VERSION = exports.HOT_UPDATER_SDK_VERSION = "1.0.0-rc.34";
7
+ const HOT_UPDATER_SDK_VERSION = exports.HOT_UPDATER_SDK_VERSION = "1.0.0-rc.36";
8
8
  //# sourceMappingURL=sdkVersion.js.map
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { createPluginHost } from "@hot-updater/protocol";
4
4
  import { Platform } from "react-native";
5
- import { getAppVersion, getBundleId, getChannel, getCohort, getFingerprintHash, getInstallId, getStorageItem, setStorageItem } from "./native.js";
5
+ import { getAppVersion, getBundleId, getChannel, getCohort, getFingerprintHash, getInstallId, getMinBundleId, getStorageItem, setStorageItem } from "./native.js";
6
6
  import { HOT_UPDATER_SDK_VERSION } from "./sdkVersion.js";
7
7
  /** The app's plugin host: plugins read the native module and fetch the configured server. */
8
8
  export const {
@@ -24,6 +24,7 @@ export const {
24
24
  },
25
25
  getInstallId: () => getInstallId(),
26
26
  getAppVersion: () => getAppVersion(),
27
+ getMinBundleId: () => getMinBundleId(),
27
28
  getBundleId: () => getBundleId(),
28
29
  getChannel: () => getChannel(),
29
30
  getCohort: () => getCohort(),
@@ -1 +1 @@
1
- {"version":3,"names":["createPluginHost","Platform","getAppVersion","getBundleId","getChannel","getCohort","getFingerprintHash","getInstallId","getStorageItem","setStorageItem","HOT_UPDATER_SDK_VERSION","configurePlugins","hasPluginHook","buildPluginEvent","dispatchPluginHook","emitPluginHook","fetch","url","init","platform","OS","isDebugBuild","__DEV__","sdkVersion","key","value","now","Date"],"sourceRoot":"../../src","sources":["pluginHost.ts"],"mappings":";;AAAA,SAASA,gBAAgB,QAAQ,uBAAuB;AACxD,SAASC,QAAQ,QAAQ,cAAc;AAEvC,SACEC,aAAa,EACbC,WAAW,EACXC,UAAU,EACVC,SAAS,EACTC,kBAAkB,EAClBC,YAAY,EACZC,cAAc,EACdC,cAAc,QACT,aAAU;AACjB,SAASC,uBAAuB,QAAQ,iBAAc;AAItD;AACA,OAAO,MAAM;EACXC,gBAAgB;EAChBC,aAAa;EACbC,gBAAgB;EAChBC,kBAAkB;EAClBC;AACF,CAAC,GAAGf,gBAAgB,CAAC;EACnBgB,KAAK,EAAEA,CAACC,GAAG,EAAEC,IAAI,KAAKF,KAAK,CAACC,GAAG,EAAEC,IAAI,CAAC;EACtC,IAAIC,QAAQA,CAAA,EAAG;IACb,OAAOlB,QAAQ,CAACmB,EAAE,KAAK,SAAS,GAAG,SAAS,GAAG,KAAK;EACtD,CAAC;EACD,IAAIC,YAAYA,CAAA,EAAG;IACjB,OAAO,OAAOC,OAAO,KAAK,WAAW,IAAIA,OAAO;EAClD,CAAC;EACD,IAAIC,UAAUA,CAAA,EAAG;IACf,OAAOb,uBAAuB;EAChC,CAAC;EACDH,YAAY,EAAEA,CAAA,KAAMA,YAAY,CAAC,CAAC;EAClCL,aAAa,EAAEA,CAAA,KAAMA,aAAa,CAAC,CAAC;EACpCC,WAAW,EAAEA,CAAA,KAAMA,WAAW,CAAC,CAAC;EAChCC,UAAU,EAAEA,CAAA,KAAMA,UAAU,CAAC,CAAC;EAC9BC,SAAS,EAAEA,CAAA,KAAMA,SAAS,CAAC,CAAC;EAC5BC,kBAAkB,EAAEA,CAAA,KAAMA,kBAAkB,CAAC,CAAC;EAC9CE,cAAc,EAAGgB,GAAG,IAAKhB,cAAc,CAACgB,GAAG,CAAC;EAC5Cf,cAAc,EAAEA,CAACe,GAAG,EAAEC,KAAK,KAAKhB,cAAc,CAACe,GAAG,EAAEC,KAAK,CAAC;EAC1DC,GAAG,EAAEA,CAAA,KAAMC,IAAI,CAACD,GAAG,CAAC;AACtB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createPluginHost","Platform","getAppVersion","getBundleId","getChannel","getCohort","getFingerprintHash","getInstallId","getMinBundleId","getStorageItem","setStorageItem","HOT_UPDATER_SDK_VERSION","configurePlugins","hasPluginHook","buildPluginEvent","dispatchPluginHook","emitPluginHook","fetch","url","init","platform","OS","isDebugBuild","__DEV__","sdkVersion","key","value","now","Date"],"sourceRoot":"../../src","sources":["pluginHost.ts"],"mappings":";;AAAA,SAASA,gBAAgB,QAAQ,uBAAuB;AACxD,SAASC,QAAQ,QAAQ,cAAc;AAEvC,SACEC,aAAa,EACbC,WAAW,EACXC,UAAU,EACVC,SAAS,EACTC,kBAAkB,EAClBC,YAAY,EACZC,cAAc,EACdC,cAAc,EACdC,cAAc,QACT,aAAU;AACjB,SAASC,uBAAuB,QAAQ,iBAAc;AAItD;AACA,OAAO,MAAM;EACXC,gBAAgB;EAChBC,aAAa;EACbC,gBAAgB;EAChBC,kBAAkB;EAClBC;AACF,CAAC,GAAGhB,gBAAgB,CAAC;EACnBiB,KAAK,EAAEA,CAACC,GAAG,EAAEC,IAAI,KAAKF,KAAK,CAACC,GAAG,EAAEC,IAAI,CAAC;EACtC,IAAIC,QAAQA,CAAA,EAAG;IACb,OAAOnB,QAAQ,CAACoB,EAAE,KAAK,SAAS,GAAG,SAAS,GAAG,KAAK;EACtD,CAAC;EACD,IAAIC,YAAYA,CAAA,EAAG;IACjB,OAAO,OAAOC,OAAO,KAAK,WAAW,IAAIA,OAAO;EAClD,CAAC;EACD,IAAIC,UAAUA,CAAA,EAAG;IACf,OAAOb,uBAAuB;EAChC,CAAC;EACDJ,YAAY,EAAEA,CAAA,KAAMA,YAAY,CAAC,CAAC;EAClCL,aAAa,EAAEA,CAAA,KAAMA,aAAa,CAAC,CAAC;EACpCM,cAAc,EAAEA,CAAA,KAAMA,cAAc,CAAC,CAAC;EACtCL,WAAW,EAAEA,CAAA,KAAMA,WAAW,CAAC,CAAC;EAChCC,UAAU,EAAEA,CAAA,KAAMA,UAAU,CAAC,CAAC;EAC9BC,SAAS,EAAEA,CAAA,KAAMA,SAAS,CAAC,CAAC;EAC5BC,kBAAkB,EAAEA,CAAA,KAAMA,kBAAkB,CAAC,CAAC;EAC9CG,cAAc,EAAGgB,GAAG,IAAKhB,cAAc,CAACgB,GAAG,CAAC;EAC5Cf,cAAc,EAAEA,CAACe,GAAG,EAAEC,KAAK,KAAKhB,cAAc,CAACe,GAAG,EAAEC,KAAK,CAAC;EAC1DC,GAAG,EAAEA,CAAA,KAAMC,IAAI,CAACD,GAAG,CAAC;AACtB,CAAC,CAAC","ignoreList":[]}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
 
3
- export const HOT_UPDATER_SDK_VERSION = "1.0.0-rc.34";
3
+ export const HOT_UPDATER_SDK_VERSION = "1.0.0-rc.36";
4
4
  //# sourceMappingURL=sdkVersion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pluginHost.d.ts","sourceRoot":"","sources":["../../../src/pluginHost.ts"],"names":[],"mappings":"AAeA,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,6FAA6F;AAC7F,eAAO,MACL,gBAAgB,8JAChB,aAAa,qEACb,gBAAgB,wNAChB,kBAAkB,kKAClB,cAAc,+JAqBd,CAAC"}
1
+ {"version":3,"file":"pluginHost.d.ts","sourceRoot":"","sources":["../../../src/pluginHost.ts"],"names":[],"mappings":"AAgBA,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,6FAA6F;AAC7F,eAAO,MACL,gBAAgB,8JAChB,aAAa,qEACb,gBAAgB,wNAChB,kBAAkB,kKAClB,cAAc,+JAsBd,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const HOT_UPDATER_SDK_VERSION = "1.0.0-rc.34";
1
+ export declare const HOT_UPDATER_SDK_VERSION = "1.0.0-rc.36";
2
2
  //# sourceMappingURL=sdkVersion.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pluginHost.d.ts","sourceRoot":"","sources":["../../../src/pluginHost.ts"],"names":[],"mappings":"AAeA,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,6FAA6F;AAC7F,eAAO,MACL,gBAAgB,8JAChB,aAAa,qEACb,gBAAgB,wNAChB,kBAAkB,kKAClB,cAAc,+JAqBd,CAAC"}
1
+ {"version":3,"file":"pluginHost.d.ts","sourceRoot":"","sources":["../../../src/pluginHost.ts"],"names":[],"mappings":"AAgBA,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,6FAA6F;AAC7F,eAAO,MACL,gBAAgB,8JAChB,aAAa,qEACb,gBAAgB,wNAChB,kBAAkB,kKAClB,cAAc,+JAsBd,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const HOT_UPDATER_SDK_VERSION = "1.0.0-rc.34";
1
+ export declare const HOT_UPDATER_SDK_VERSION = "1.0.0-rc.36";
2
2
  //# sourceMappingURL=sdkVersion.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hot-updater/react-native",
3
- "version": "1.0.0-rc.34",
3
+ "version": "1.0.0-rc.36",
4
4
  "description": "React Native OTA solution for self-hosted",
5
5
  "source": "./src/index.ts",
6
6
  "main": "./lib/commonjs/index.js",
@@ -123,8 +123,8 @@
123
123
  },
124
124
  "dependencies": {
125
125
  "use-sync-external-store": "1.5.0",
126
- "@hot-updater/protocol": "1.0.0-rc.30",
127
- "@hot-updater/plugin-insights": "1.0.0-rc.34"
126
+ "@hot-updater/plugin-insights": "1.0.0-rc.36",
127
+ "@hot-updater/protocol": "1.0.0-rc.36"
128
128
  },
129
129
  "scripts": {
130
130
  "build": "node ./scripts/sync-sdk-version.mjs run -- bob build",
package/src/pluginHost.ts CHANGED
@@ -8,6 +8,7 @@ import {
8
8
  getCohort,
9
9
  getFingerprintHash,
10
10
  getInstallId,
11
+ getMinBundleId,
11
12
  getStorageItem,
12
13
  setStorageItem,
13
14
  } from "./native";
@@ -35,6 +36,7 @@ export const {
35
36
  },
36
37
  getInstallId: () => getInstallId(),
37
38
  getAppVersion: () => getAppVersion(),
39
+ getMinBundleId: () => getMinBundleId(),
38
40
  getBundleId: () => getBundleId(),
39
41
  getChannel: () => getChannel(),
40
42
  getCohort: () => getCohort(),
package/src/sdkVersion.ts CHANGED
@@ -1 +1 @@
1
- export const HOT_UPDATER_SDK_VERSION = "1.0.0-rc.34";
1
+ export const HOT_UPDATER_SDK_VERSION = "1.0.0-rc.36";