@hot-updater/react-native 0.27.1 → 0.29.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 (87) 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 +325 -210
  7. package/android/src/main/java/com/hotupdater/BundleMetadata.kt +73 -16
  8. package/android/src/main/java/com/hotupdater/CohortService.kt +73 -0
  9. package/android/src/main/java/com/hotupdater/DecompressService.kt +28 -22
  10. package/android/src/main/java/com/hotupdater/HotUpdaterException.kt +1 -1
  11. package/android/src/main/java/com/hotupdater/HotUpdaterImpl.kt +51 -13
  12. package/android/src/main/java/com/hotupdater/HotUpdaterRecoveryManager.kt +533 -0
  13. package/android/src/main/java/com/hotupdater/HotUpdaterRecoveryReceiver.kt +14 -0
  14. package/android/src/main/java/com/hotupdater/ReactNativeValueConverters.kt +55 -0
  15. package/android/src/main/java/com/hotupdater/TarBrDecompressionStrategy.kt +19 -7
  16. package/android/src/newarch/HotUpdaterModule.kt +16 -25
  17. package/android/src/oldarch/HotUpdaterModule.kt +20 -26
  18. package/android/src/oldarch/HotUpdaterSpec.kt +12 -2
  19. package/ios/HotUpdater/Internal/BundleFileStorageService.swift +340 -232
  20. package/ios/HotUpdater/Internal/BundleMetadata.swift +61 -8
  21. package/ios/HotUpdater/Internal/CohortService.swift +63 -0
  22. package/ios/HotUpdater/Internal/DecompressService.swift +53 -30
  23. package/ios/HotUpdater/Internal/HotUpdater-Bridging-Header.h +9 -1
  24. package/ios/HotUpdater/Internal/HotUpdater.mm +376 -70
  25. package/ios/HotUpdater/Internal/HotUpdaterCrashHandler.h +7 -0
  26. package/ios/HotUpdater/Internal/HotUpdaterCrashHandler.mm +4 -0
  27. package/ios/HotUpdater/Internal/HotUpdaterImpl.swift +321 -9
  28. package/ios/HotUpdater/Internal/TarBrDecompressionStrategy.swift +24 -8
  29. package/lib/commonjs/DefaultResolver.js +3 -5
  30. package/lib/commonjs/DefaultResolver.js.map +1 -1
  31. package/lib/commonjs/checkForUpdate.js +2 -0
  32. package/lib/commonjs/checkForUpdate.js.map +1 -1
  33. package/lib/commonjs/index.js +13 -0
  34. package/lib/commonjs/index.js.map +1 -1
  35. package/lib/commonjs/native.js +211 -39
  36. package/lib/commonjs/native.js.map +1 -1
  37. package/lib/commonjs/native.spec.js +443 -0
  38. package/lib/commonjs/native.spec.js.map +1 -0
  39. package/lib/commonjs/specs/NativeHotUpdater.js.map +1 -1
  40. package/lib/commonjs/types.js.map +1 -1
  41. package/lib/commonjs/wrap.js +4 -5
  42. package/lib/commonjs/wrap.js.map +1 -1
  43. package/lib/module/DefaultResolver.js +3 -5
  44. package/lib/module/DefaultResolver.js.map +1 -1
  45. package/lib/module/checkForUpdate.js +3 -1
  46. package/lib/module/checkForUpdate.js.map +1 -1
  47. package/lib/module/index.js +14 -1
  48. package/lib/module/index.js.map +1 -1
  49. package/lib/module/native.js +204 -34
  50. package/lib/module/native.js.map +1 -1
  51. package/lib/module/native.spec.js +442 -0
  52. package/lib/module/native.spec.js.map +1 -0
  53. package/lib/module/specs/NativeHotUpdater.js.map +1 -1
  54. package/lib/module/types.js.map +1 -1
  55. package/lib/module/wrap.js +5 -6
  56. package/lib/module/wrap.js.map +1 -1
  57. package/lib/typescript/commonjs/checkForUpdate.d.ts.map +1 -1
  58. package/lib/typescript/commonjs/index.d.ts +14 -1
  59. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  60. package/lib/typescript/commonjs/native.d.ts +43 -23
  61. package/lib/typescript/commonjs/native.d.ts.map +1 -1
  62. package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts +32 -8
  63. package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts.map +1 -1
  64. package/lib/typescript/commonjs/types.d.ts +6 -3
  65. package/lib/typescript/commonjs/types.d.ts.map +1 -1
  66. package/lib/typescript/commonjs/wrap.d.ts +3 -6
  67. package/lib/typescript/commonjs/wrap.d.ts.map +1 -1
  68. package/lib/typescript/module/checkForUpdate.d.ts.map +1 -1
  69. package/lib/typescript/module/index.d.ts +14 -1
  70. package/lib/typescript/module/index.d.ts.map +1 -1
  71. package/lib/typescript/module/native.d.ts +43 -23
  72. package/lib/typescript/module/native.d.ts.map +1 -1
  73. package/lib/typescript/module/specs/NativeHotUpdater.d.ts +32 -8
  74. package/lib/typescript/module/specs/NativeHotUpdater.d.ts.map +1 -1
  75. package/lib/typescript/module/types.d.ts +6 -3
  76. package/lib/typescript/module/types.d.ts.map +1 -1
  77. package/lib/typescript/module/wrap.d.ts +3 -6
  78. package/lib/typescript/module/wrap.d.ts.map +1 -1
  79. package/package.json +6 -6
  80. package/src/DefaultResolver.ts +4 -4
  81. package/src/checkForUpdate.ts +4 -0
  82. package/src/index.ts +21 -0
  83. package/src/native.spec.ts +480 -0
  84. package/src/native.ts +285 -39
  85. package/src/specs/NativeHotUpdater.ts +36 -6
  86. package/src/types.ts +7 -3
  87. package/src/wrap.tsx +8 -12
@@ -3,28 +3,35 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.HotUpdaterConstants = void 0;
7
6
  Object.defineProperty(exports, "HotUpdaterErrorCode", {
8
7
  enumerable: true,
9
8
  get: function () {
10
9
  return _error.HotUpdaterErrorCode;
11
10
  }
12
11
  });
13
- exports.isChannelSwitched = exports.getMinBundleId = exports.getFingerprintHash = exports.getDefaultChannel = exports.getCrashHistory = exports.getChannel = exports.getBundleId = exports.getBaseURL = exports.getAppVersion = exports.clearCrashHistory = exports.addListener = void 0;
12
+ exports.isChannelSwitched = exports.getMinBundleId = exports.getManifest = exports.getFingerprintHash = exports.getDefaultChannel = exports.getCrashHistory = exports.getCohort = exports.getChannel = exports.getBundleId = exports.getBaseURL = exports.getAppVersion = exports.clearCrashHistory = exports.addListener = void 0;
14
13
  Object.defineProperty(exports, "isHotUpdaterError", {
15
14
  enumerable: true,
16
15
  get: function () {
17
16
  return _error.isHotUpdaterError;
18
17
  }
19
18
  });
20
- exports.resetChannel = exports.reload = exports.notifyAppReady = void 0;
19
+ exports.setCohort = exports.resetChannel = exports.reload = exports.notifyAppReady = void 0;
21
20
  exports.setReloadBehavior = setReloadBehavior;
22
21
  exports.updateBundle = updateBundle;
22
+ var _core = require("@hot-updater/core");
23
23
  var _reactNative = require("react-native");
24
24
  var _error = require("./error.js");
25
25
  var _NativeHotUpdater = _interopRequireDefault(require("./specs/NativeHotUpdater.js"));
26
26
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
27
27
  const NIL_UUID = "00000000-0000-0000-0000-000000000000";
28
+ const normalizeAndValidateCohort = cohort => {
29
+ const normalized = (0, _core.normalizeCohortValue)(cohort);
30
+ if (!(0, _core.isValidCohort)(normalized)) {
31
+ throw new Error(_core.INVALID_COHORT_ERROR_MESSAGE);
32
+ }
33
+ return normalized;
34
+ };
28
35
 
29
36
  /**
30
37
  * Built-in reload behaviors used by `HotUpdater.reload()`.
@@ -48,12 +55,10 @@ const NIL_UUID = "00000000-0000-0000-0000-000000000000";
48
55
  * - `custom`: Run a user-provided JS handler on both platforms
49
56
  */
50
57
 
51
- const HotUpdaterConstants = exports.HotUpdaterConstants = {
52
- HOT_UPDATER_BUNDLE_ID: __HOT_UPDATER_BUNDLE_ID || NIL_UUID
53
- };
54
58
  class HotUpdaterSessionState {
55
59
  inflightUpdates = new Map();
56
60
  lastInstalledBundleId = null;
61
+ activeBundleSnapshotCache = new Map();
57
62
  constructor() {
58
63
  const constants = _NativeHotUpdater.default.getConstants();
59
64
  this.defaultChannel = constants.DEFAULT_CHANNEL ?? constants.CHANNEL;
@@ -85,16 +90,58 @@ class HotUpdaterSessionState {
85
90
  if (channel) {
86
91
  this.currentChannel = channel;
87
92
  }
93
+ this.clearActiveBundleSnapshotCache();
88
94
  }
89
95
  resetChannelState() {
90
96
  this.currentChannel = this.defaultChannel;
91
97
  this.lastInstalledBundleId = null;
92
98
  this.inflightUpdates.clear();
99
+ this.clearActiveBundleSnapshotCache();
100
+ }
101
+ getCachedBundleId() {
102
+ return this.getActiveBundleSnapshotValue("bundleId");
103
+ }
104
+ cacheBundleId(bundleId) {
105
+ this.setActiveBundleSnapshotValue("bundleId", bundleId);
106
+ }
107
+ getCachedManifest() {
108
+ const manifest = this.getActiveBundleSnapshotValue("manifest");
109
+ return manifest ? cloneManifest(manifest) : undefined;
110
+ }
111
+ cacheManifest(manifest) {
112
+ this.setActiveBundleSnapshotValue("manifest", cloneManifest(manifest));
113
+ }
114
+ getCachedBaseURL() {
115
+ return this.getActiveBundleSnapshotValue("baseURL");
116
+ }
117
+ cacheBaseURL(baseURL) {
118
+ this.setActiveBundleSnapshotValue("baseURL", baseURL);
119
+ }
120
+ getCachedCohort() {
121
+ return this.cachedCohort;
122
+ }
123
+ cacheCohort(cohort) {
124
+ this.cachedCohort = cohort;
125
+ }
126
+ clearActiveBundleSnapshotCache() {
127
+ this.activeBundleSnapshotCache.clear();
128
+ }
129
+ getActiveBundleSnapshotValue(key) {
130
+ return this.activeBundleSnapshotCache.get(key);
131
+ }
132
+ setActiveBundleSnapshotValue(key, value) {
133
+ this.activeBundleSnapshotCache.set(key, value);
93
134
  }
94
135
  }
95
136
  const sessionState = new HotUpdaterSessionState();
96
137
  let reloadBehavior = "processRestart";
97
138
  let customReloadHandler = null;
139
+ const cloneManifest = manifest => ({
140
+ bundleId: manifest.bundleId,
141
+ assets: Object.fromEntries(Object.entries(manifest.assets).map(([key, asset]) => [key, {
142
+ fileHash: asset.fileHash
143
+ }]))
144
+ });
98
145
  const getReloadProcess = () => {
99
146
  const nativeModule = _NativeHotUpdater.default;
100
147
  return typeof nativeModule.reloadProcess === "function" ? nativeModule.reloadProcess.bind(nativeModule) : null;
@@ -244,12 +291,58 @@ const getMinBundleId = () => {
244
291
  /**
245
292
  * Fetches the current bundle version id.
246
293
  *
247
- * @async
248
- * @returns {string} Resolves with the current version id or null if not available.
294
+ * JS falls back to MIN_BUNDLE_ID only after native confirms there is no active
295
+ * downloaded bundle. When the native module does not expose `getBundleId()`,
296
+ * treat it as a JS/native SDK mismatch instead of silently reporting the
297
+ * built-in bundle.
298
+ *
299
+ * @returns {string} Resolves with the current version id.
249
300
  */
250
301
  exports.getMinBundleId = getMinBundleId;
251
302
  const getBundleId = () => {
252
- return HotUpdaterConstants.HOT_UPDATER_BUNDLE_ID === NIL_UUID ? getMinBundleId() : HotUpdaterConstants.HOT_UPDATER_BUNDLE_ID;
303
+ const cachedBundleId = sessionState.getCachedBundleId();
304
+ if (cachedBundleId !== undefined) {
305
+ return cachedBundleId;
306
+ }
307
+ const nativeModule = _NativeHotUpdater.default;
308
+ if (typeof nativeModule.getBundleId !== "function") {
309
+ throw new Error("[HotUpdater] Native module is missing 'getBundleId()'. This JS bundle requires a newer native @hot-updater/react-native SDK. Rebuild and release a new app version before delivering this OTA update.");
310
+ }
311
+ const bundleId = nativeModule.getBundleId();
312
+ const resolvedBundleId = !bundleId || bundleId === NIL_UUID ? getMinBundleId() : bundleId;
313
+ sessionState.cacheBundleId(resolvedBundleId);
314
+ return resolvedBundleId;
315
+ };
316
+
317
+ /**
318
+ * Fetches the current manifest for the active bundle.
319
+ *
320
+ * Returns a normalized manifest with empty assets when manifest.json is missing
321
+ * or invalid.
322
+ */
323
+ exports.getBundleId = getBundleId;
324
+ const getManifest = () => {
325
+ const cachedManifest = sessionState.getCachedManifest();
326
+ if (cachedManifest !== undefined) {
327
+ return cachedManifest;
328
+ }
329
+ const nativeModule = _NativeHotUpdater.default;
330
+ const manifest = nativeModule.getManifest?.();
331
+ let normalizedManifest;
332
+ if (!manifest) {
333
+ normalizedManifest = createEmptyManifest();
334
+ } else if (typeof manifest === "string") {
335
+ try {
336
+ normalizedManifest = normalizeManifest(JSON.parse(manifest));
337
+ } catch {
338
+ normalizedManifest = createEmptyManifest();
339
+ }
340
+ } else {
341
+ normalizedManifest = normalizeManifest(manifest);
342
+ }
343
+ sessionState.cacheBundleId(normalizedManifest.bundleId);
344
+ sessionState.cacheManifest(normalizedManifest);
345
+ return cloneManifest(normalizedManifest);
253
346
  };
254
347
 
255
348
  /**
@@ -257,7 +350,7 @@ const getBundleId = () => {
257
350
  *
258
351
  * @returns {string} Resolves with the channel or null if not available.
259
352
  */
260
- exports.getBundleId = getBundleId;
353
+ exports.getManifest = getManifest;
261
354
  const getChannel = () => {
262
355
  return sessionState.getChannel();
263
356
  };
@@ -294,13 +387,11 @@ const getFingerprintHash = () => {
294
387
  */
295
388
  exports.getFingerprintHash = getFingerprintHash;
296
389
  /**
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.
390
+ * Reads the native launch report for the current process.
299
391
  *
300
- * This function is called automatically when the module loads.
392
+ * This function is called automatically after the app has rendered.
301
393
  *
302
394
  * @returns {NotifyAppReadyResult} Bundle state information
303
- * - `status: "PROMOTED"` - Staging bundle was promoted to stable (ACTIVE event)
304
395
  * - `status: "RECOVERED"` - App recovered from crash, rollback occurred (ROLLBACK event)
305
396
  * - `status: "STABLE"` - No changes, already stable
306
397
  * - `crashedBundleId` - Present only when status is "RECOVERED"
@@ -309,37 +400,86 @@ exports.getFingerprintHash = getFingerprintHash;
309
400
  * ```ts
310
401
  * const result = HotUpdater.notifyAppReady();
311
402
  *
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":
318
- * // Send ROLLBACK analytics event
319
- * analytics.track('bundle_rollback', { crashedBundleId: result.crashedBundleId });
320
- * break;
321
- * case "STABLE":
322
- * // No special action needed
323
- * break;
403
+ * if (result.status === "RECOVERED") {
404
+ * // Send ROLLBACK analytics event
405
+ * analytics.track("bundle_rollback", {
406
+ * crashedBundleId: result.crashedBundleId,
407
+ * });
324
408
  * }
325
409
  * ```
326
410
  */
327
411
  const notifyAppReady = () => {
328
- const bundleId = getBundleId();
329
- const result = _NativeHotUpdater.default.notifyAppReady({
330
- bundleId
331
- });
332
- // Oldarch returns JSON string, newarch returns array
412
+ const result = _NativeHotUpdater.default.notifyAppReady();
413
+ // Older Android old-arch implementations returned JSON strings.
333
414
  if (typeof result === "string") {
334
415
  try {
335
- return JSON.parse(result);
416
+ return normalizeNotifyAppReadyResult(JSON.parse(result));
336
417
  } catch {
337
418
  return {
338
419
  status: "STABLE"
339
420
  };
340
421
  }
341
422
  }
342
- return result;
423
+ return normalizeNotifyAppReadyResult(result);
424
+ };
425
+ exports.notifyAppReady = notifyAppReady;
426
+ const normalizeNotifyAppReadyResult = result => {
427
+ if (result.status === "RECOVERED") {
428
+ return {
429
+ status: "RECOVERED",
430
+ crashedBundleId: result.crashedBundleId
431
+ };
432
+ }
433
+ return {
434
+ status: "STABLE"
435
+ };
436
+ };
437
+ const createEmptyManifest = () => ({
438
+ bundleId: getBundleId(),
439
+ assets: {}
440
+ });
441
+ const normalizeManifest = value => {
442
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
443
+ return createEmptyManifest();
444
+ }
445
+ const bundleIdValue = value.bundleId;
446
+ const bundleId = typeof bundleIdValue === "string" && bundleIdValue.trim() ? bundleIdValue.trim() : getBundleId();
447
+ return {
448
+ bundleId,
449
+ assets: normalizeManifestAssets(value.assets)
450
+ };
451
+ };
452
+ const normalizeManifestAssets = value => {
453
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
454
+ return {};
455
+ }
456
+ return Object.fromEntries(Object.entries(value).flatMap(([key, entry]) => {
457
+ const trimmedKey = key.trim();
458
+ if (!trimmedKey) {
459
+ return [];
460
+ }
461
+ if (typeof entry === "string") {
462
+ const fileHash = entry.trim();
463
+ if (!fileHash) {
464
+ return [];
465
+ }
466
+ return [[trimmedKey, {
467
+ fileHash
468
+ }]];
469
+ }
470
+ if (!entry || typeof entry !== "object" || Array.isArray(entry)) {
471
+ return [];
472
+ }
473
+ const {
474
+ fileHash
475
+ } = entry;
476
+ if (typeof fileHash !== "string" || !fileHash.trim()) {
477
+ return [];
478
+ }
479
+ return [[trimmedKey, {
480
+ fileHash: fileHash.trim()
481
+ }]];
482
+ }));
343
483
  };
344
484
 
345
485
  /**
@@ -348,10 +488,9 @@ const notifyAppReady = () => {
348
488
  *
349
489
  * @returns {string[]} Array of crashed bundle IDs
350
490
  */
351
- exports.notifyAppReady = notifyAppReady;
352
491
  const getCrashHistory = () => {
353
492
  const result = _NativeHotUpdater.default.getCrashHistory();
354
- // Oldarch returns JSON string, newarch returns array
493
+ // Older Android old-arch implementations returned JSON strings.
355
494
  if (typeof result === "string") {
356
495
  try {
357
496
  return JSON.parse(result);
@@ -382,11 +521,14 @@ const clearCrashHistory = () => {
382
521
  */
383
522
  exports.clearCrashHistory = clearCrashHistory;
384
523
  const getBaseURL = () => {
385
- const result = _NativeHotUpdater.default.getBaseURL();
386
- if (typeof result === "string" && result !== "") {
387
- return result;
524
+ const cachedBaseURL = sessionState.getCachedBaseURL();
525
+ if (cachedBaseURL !== undefined) {
526
+ return cachedBaseURL;
388
527
  }
389
- return null;
528
+ const result = _NativeHotUpdater.default.getBaseURL();
529
+ const baseURL = typeof result === "string" && result !== "" ? result : null;
530
+ sessionState.cacheBaseURL(baseURL);
531
+ return baseURL;
390
532
  };
391
533
 
392
534
  /**
@@ -403,5 +545,35 @@ const resetChannel = async () => {
403
545
  }
404
546
  return ok;
405
547
  };
548
+
549
+ /**
550
+ * Sets the persisted cohort used for update checks.
551
+ *
552
+ * HotUpdater only derives a device-based cohort when nothing has been stored
553
+ * yet. If you need to restore that initial value later, read it with
554
+ * `getCohort()` before calling `setCohort()`, then store it yourself.
555
+ */
406
556
  exports.resetChannel = resetChannel;
557
+ const setCohort = cohort => {
558
+ const normalized = normalizeAndValidateCohort(cohort);
559
+ _NativeHotUpdater.default.setCohort(normalized);
560
+ sessionState.cacheCohort(normalized);
561
+ };
562
+
563
+ /**
564
+ * Gets the persisted cohort used for rollout calculations.
565
+ * If none has been stored yet, native derives the initial value once and
566
+ * persists it before returning.
567
+ */
568
+ exports.setCohort = setCohort;
569
+ const getCohort = () => {
570
+ const cachedCohort = sessionState.getCachedCohort();
571
+ if (cachedCohort !== undefined) {
572
+ return cachedCohort;
573
+ }
574
+ const cohort = normalizeAndValidateCohort(_NativeHotUpdater.default.getCohort());
575
+ sessionState.cacheCohort(cohort);
576
+ return cohort;
577
+ };
578
+ exports.getCohort = getCohort;
407
579
  //# sourceMappingURL=native.js.map
@@ -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":["_core","require","_reactNative","_error","_NativeHotUpdater","_interopRequireDefault","e","__esModule","default","NIL_UUID","normalizeAndValidateCohort","cohort","normalized","normalizeCohortValue","isValidCohort","Error","INVALID_COHORT_ERROR_MESSAGE","HotUpdaterSessionState","inflightUpdates","Map","lastInstalledBundleId","activeBundleSnapshotCache","constructor","constants","HotUpdaterNative","getConstants","defaultChannel","DEFAULT_CHANNEL","CHANNEL","currentChannel","getChannel","getDefaultChannel","isChannelSwitched","hasInstalledBundle","bundleId","getInflightUpdate","get","trackInflightUpdate","promise","set","clearInflightUpdate","delete","markBundleInstalled","channel","clearActiveBundleSnapshotCache","resetChannelState","clear","getCachedBundleId","getActiveBundleSnapshotValue","cacheBundleId","setActiveBundleSnapshotValue","getCachedManifest","manifest","cloneManifest","undefined","cacheManifest","getCachedBaseURL","cacheBaseURL","baseURL","getCachedCohort","cachedCohort","cacheCohort","key","value","sessionState","reloadBehavior","customReloadHandler","assets","Object","fromEntries","entries","map","asset","fileHash","getReloadProcess","nativeModule","reloadProcess","bind","eventEmitter","NativeEventEmitter","addListener","eventName","listener","subscription","remove","exports","updateBundle","paramsOrBundleId","fileUrl","updateBundleId","status","shouldSkipCurrentBundleIdCheck","localeCompare","getBundleId","existing","targetFileUrl","targetFileHash","targetChannel","ok","getAppVersion","APP_VERSION","reload","Platform","OS","setReloadBehavior","args","behavior","handler","getMinBundleId","MIN_BUNDLE_ID","cachedBundleId","resolvedBundleId","getManifest","cachedManifest","normalizedManifest","createEmptyManifest","normalizeManifest","JSON","parse","getFingerprintHash","FINGERPRINT_HASH","notifyAppReady","result","normalizeNotifyAppReadyResult","crashedBundleId","Array","isArray","bundleIdValue","trim","normalizeManifestAssets","flatMap","entry","trimmedKey","getCrashHistory","clearCrashHistory","getBaseURL","cachedBaseURL","resetChannel","setCohort","getCohort"],"sourceRoot":"../../src","sources":["native.ts"],"mappings":"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","ignoreList":[]}