@hot-updater/react-native 1.0.0-rc.16 → 1.0.0-rc.17

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 (316) hide show
  1. package/android/src/main/java/com/hotupdater/BundleFileStorageService.kt +491 -388
  2. package/android/src/main/java/com/hotupdater/BundleMetadata.kt +5 -11
  3. package/android/src/main/java/com/hotupdater/FileManagerService.kt +45 -0
  4. package/android/src/main/java/com/hotupdater/HotUpdaterException.kt +290 -12
  5. package/android/src/main/java/com/hotupdater/HotUpdaterImpl.kt +35 -19
  6. package/android/src/main/java/com/hotupdater/InstallIdentityService.kt +37 -0
  7. package/android/src/main/java/com/hotupdater/KeyValueStorageService.kt +86 -0
  8. package/android/src/main/java/com/hotupdater/NetworkState.kt +31 -0
  9. package/android/src/main/java/com/hotupdater/NoBackupStorage.kt +17 -0
  10. package/android/src/main/java/com/hotupdater/OkHttpDownloadService.kt +110 -52
  11. package/android/src/main/java/com/hotupdater/PreviousProcessExit.kt +89 -0
  12. package/android/src/main/java/com/hotupdater/ReactNativeValueConverters.kt +34 -0
  13. package/android/src/newarch/HotUpdaterModule.kt +74 -69
  14. package/android/src/oldarch/HotUpdaterModule.kt +63 -59
  15. package/android/src/oldarch/HotUpdaterSpec.kt +4 -6
  16. package/android/src/test/java/com/hotupdater/BsdiffPatchTest.kt +1 -1
  17. package/android/src/test/java/com/hotupdater/BundleFileStorageServiceTest.kt +446 -61
  18. package/android/src/test/java/com/hotupdater/HotUpdaterExceptionTest.kt +220 -0
  19. package/android/src/test/java/com/hotupdater/HotUpdaterImplTest.kt +19 -27
  20. package/android/src/test/java/com/hotupdater/InstallIdentityServiceTest.kt +71 -0
  21. package/android/src/test/java/com/hotupdater/KeyValueStorageServiceTest.kt +106 -0
  22. package/android/src/test/java/com/hotupdater/NoBackupContext.kt +11 -0
  23. package/android/src/test/java/com/hotupdater/OkHttpDownloadServiceTest.kt +309 -23
  24. package/android/src/test/java/com/hotupdater/PreviousProcessExitTest.kt +57 -0
  25. package/ios/HotUpdater/Internal/BundleFileStorageService.swift +238 -157
  26. package/ios/HotUpdater/Internal/BundleMetadata.swift +3 -53
  27. package/ios/HotUpdater/Internal/FileManagerService.swift +48 -0
  28. package/ios/HotUpdater/Internal/HotUpdater.mm +8 -18
  29. package/ios/HotUpdater/Internal/HotUpdaterImpl.swift +48 -29
  30. package/ios/HotUpdater/Internal/KeyValueStorageService.swift +71 -0
  31. package/ios/HotUpdater/Internal/URLSessionDownloadService.swift +108 -1
  32. package/ios/HotUpdater/Internal/UpdateFailure.swift +390 -0
  33. package/lib/commonjs/appReady.js +111 -0
  34. package/lib/commonjs/appReady.js.map +1 -0
  35. package/lib/commonjs/appReady.spec.js +360 -0
  36. package/lib/commonjs/appReady.spec.js.map +1 -0
  37. package/lib/commonjs/{notifyAppReadyInsights.test-utils.js → appReady.test-utils.js} +4 -3
  38. package/lib/commonjs/appReady.test-utils.js.map +1 -0
  39. package/lib/commonjs/baseURL.js +16 -0
  40. package/lib/commonjs/baseURL.js.map +1 -0
  41. package/lib/commonjs/checkForUpdate.js +104 -56
  42. package/lib/commonjs/checkForUpdate.js.map +1 -1
  43. package/lib/commonjs/checkForUpdate.releaseCatalog.spec.js +337 -74
  44. package/lib/commonjs/checkForUpdate.releaseCatalog.spec.js.map +1 -1
  45. package/lib/commonjs/clientPlugin.js +49 -0
  46. package/lib/commonjs/clientPlugin.js.map +1 -0
  47. package/lib/commonjs/entryImportGraph.spec.js +50 -0
  48. package/lib/commonjs/entryImportGraph.spec.js.map +1 -0
  49. package/lib/commonjs/fetchJSON.js +2 -6
  50. package/lib/commonjs/fetchJSON.js.map +1 -1
  51. package/lib/commonjs/httpClient.js +18 -165
  52. package/lib/commonjs/httpClient.js.map +1 -1
  53. package/lib/commonjs/httpClient.spec.js +26 -199
  54. package/lib/commonjs/httpClient.spec.js.map +1 -1
  55. package/lib/commonjs/index.js +49 -36
  56. package/lib/commonjs/index.js.map +1 -1
  57. package/lib/commonjs/index.spec.js +108 -123
  58. package/lib/commonjs/index.spec.js.map +1 -1
  59. package/lib/commonjs/native.js +67 -48
  60. package/lib/commonjs/native.js.map +1 -1
  61. package/lib/commonjs/native.spec.js +80 -58
  62. package/lib/commonjs/native.spec.js.map +1 -1
  63. package/lib/commonjs/pluginHost.js +208 -0
  64. package/lib/commonjs/pluginHost.js.map +1 -0
  65. package/lib/commonjs/pluginHost.spec.js +292 -0
  66. package/lib/commonjs/pluginHost.spec.js.map +1 -0
  67. package/lib/commonjs/plugins/insights/eventId.js +129 -0
  68. package/lib/commonjs/plugins/insights/eventId.js.map +1 -0
  69. package/lib/commonjs/plugins/insights/eventId.spec.js +47 -0
  70. package/lib/commonjs/plugins/insights/eventId.spec.js.map +1 -0
  71. package/lib/commonjs/plugins/insights/index.js +272 -0
  72. package/lib/commonjs/plugins/insights/index.js.map +1 -0
  73. package/lib/commonjs/plugins/insights/insights.spec.js +640 -0
  74. package/lib/commonjs/plugins/insights/insights.spec.js.map +1 -0
  75. package/lib/commonjs/plugins/insights/sender.js +128 -0
  76. package/lib/commonjs/plugins/insights/sender.js.map +1 -0
  77. package/lib/commonjs/plugins/insights/sender.spec.js +265 -0
  78. package/lib/commonjs/plugins/insights/sender.spec.js.map +1 -0
  79. package/lib/commonjs/plugins/insights/state.js +145 -0
  80. package/lib/commonjs/plugins/insights/state.js.map +1 -0
  81. package/lib/commonjs/releaseCatalogCache.js +13 -2
  82. package/lib/commonjs/releaseCatalogCache.js.map +1 -1
  83. package/lib/commonjs/releaseCatalogCache.spec.js +18 -0
  84. package/lib/commonjs/releaseCatalogCache.spec.js.map +1 -1
  85. package/lib/commonjs/sdkVersion.js +1 -1
  86. package/lib/commonjs/specs/NativeHotUpdater.js.map +1 -1
  87. package/lib/commonjs/updateError.js +132 -0
  88. package/lib/commonjs/updateError.js.map +1 -0
  89. package/lib/commonjs/updateError.spec.js +149 -0
  90. package/lib/commonjs/updateError.spec.js.map +1 -0
  91. package/lib/commonjs/wrap.js +43 -25
  92. package/lib/commonjs/wrap.js.map +1 -1
  93. package/lib/commonjs/wrap.progress.spec.js +195 -0
  94. package/lib/commonjs/wrap.progress.spec.js.map +1 -0
  95. package/lib/commonjs/wrap.spec.js +94 -230
  96. package/lib/commonjs/wrap.spec.js.map +1 -1
  97. package/lib/module/appReady.js +103 -0
  98. package/lib/module/appReady.js.map +1 -0
  99. package/lib/module/appReady.spec.js +359 -0
  100. package/lib/module/appReady.spec.js.map +1 -0
  101. package/lib/module/{notifyAppReadyInsights.test-utils.js → appReady.test-utils.js} +4 -3
  102. package/lib/module/appReady.test-utils.js.map +1 -0
  103. package/lib/module/baseURL.js +11 -0
  104. package/lib/module/baseURL.js.map +1 -0
  105. package/lib/module/checkForUpdate.js +103 -57
  106. package/lib/module/checkForUpdate.js.map +1 -1
  107. package/lib/module/checkForUpdate.releaseCatalog.spec.js +337 -74
  108. package/lib/module/checkForUpdate.releaseCatalog.spec.js.map +1 -1
  109. package/lib/module/clientPlugin.js +44 -0
  110. package/lib/module/clientPlugin.js.map +1 -0
  111. package/lib/module/entryImportGraph.spec.js +50 -0
  112. package/lib/module/entryImportGraph.spec.js.map +1 -0
  113. package/lib/module/fetchJSON.js +2 -6
  114. package/lib/module/fetchJSON.js.map +1 -1
  115. package/lib/module/httpClient.js +18 -165
  116. package/lib/module/httpClient.js.map +1 -1
  117. package/lib/module/httpClient.spec.js +27 -200
  118. package/lib/module/httpClient.spec.js.map +1 -1
  119. package/lib/module/index.js +44 -38
  120. package/lib/module/index.js.map +1 -1
  121. package/lib/module/index.spec.js +108 -123
  122. package/lib/module/index.spec.js.map +1 -1
  123. package/lib/module/native.js +63 -44
  124. package/lib/module/native.js.map +1 -1
  125. package/lib/module/native.spec.js +80 -58
  126. package/lib/module/native.spec.js.map +1 -1
  127. package/lib/module/pluginHost.js +200 -0
  128. package/lib/module/pluginHost.js.map +1 -0
  129. package/lib/module/pluginHost.spec.js +291 -0
  130. package/lib/module/pluginHost.spec.js.map +1 -0
  131. package/lib/module/plugins/insights/eventId.js +122 -0
  132. package/lib/module/plugins/insights/eventId.js.map +1 -0
  133. package/lib/module/plugins/insights/eventId.spec.js +47 -0
  134. package/lib/module/plugins/insights/eventId.spec.js.map +1 -0
  135. package/lib/module/plugins/insights/index.js +268 -0
  136. package/lib/module/plugins/insights/index.js.map +1 -0
  137. package/lib/module/plugins/insights/insights.spec.js +639 -0
  138. package/lib/module/plugins/insights/insights.spec.js.map +1 -0
  139. package/lib/module/plugins/insights/sender.js +123 -0
  140. package/lib/module/plugins/insights/sender.js.map +1 -0
  141. package/lib/module/plugins/insights/sender.spec.js +265 -0
  142. package/lib/module/plugins/insights/sender.spec.js.map +1 -0
  143. package/lib/module/plugins/insights/state.js +139 -0
  144. package/lib/module/plugins/insights/state.js.map +1 -0
  145. package/lib/module/releaseCatalogCache.js +13 -2
  146. package/lib/module/releaseCatalogCache.js.map +1 -1
  147. package/lib/module/releaseCatalogCache.spec.js +18 -0
  148. package/lib/module/releaseCatalogCache.spec.js.map +1 -1
  149. package/lib/module/sdkVersion.js +1 -1
  150. package/lib/module/specs/NativeHotUpdater.js.map +1 -1
  151. package/lib/module/updateError.js +126 -0
  152. package/lib/module/updateError.js.map +1 -0
  153. package/lib/module/updateError.spec.js +149 -0
  154. package/lib/module/updateError.spec.js.map +1 -0
  155. package/lib/module/wrap.js +43 -25
  156. package/lib/module/wrap.js.map +1 -1
  157. package/lib/module/wrap.progress.spec.js +196 -0
  158. package/lib/module/wrap.progress.spec.js.map +1 -0
  159. package/lib/module/wrap.spec.js +93 -229
  160. package/lib/module/wrap.spec.js.map +1 -1
  161. package/lib/typescript/commonjs/appReady.d.ts +23 -0
  162. package/lib/typescript/commonjs/appReady.d.ts.map +1 -0
  163. package/lib/typescript/commonjs/appReady.test-utils.d.ts +9 -0
  164. package/lib/typescript/commonjs/appReady.test-utils.d.ts.map +1 -0
  165. package/lib/typescript/commonjs/baseURL.d.ts +4 -0
  166. package/lib/typescript/commonjs/baseURL.d.ts.map +1 -0
  167. package/lib/typescript/commonjs/checkForUpdate.d.ts +15 -2
  168. package/lib/typescript/commonjs/checkForUpdate.d.ts.map +1 -1
  169. package/lib/typescript/commonjs/clientPlugin.d.ts +185 -0
  170. package/lib/typescript/commonjs/clientPlugin.d.ts.map +1 -0
  171. package/lib/typescript/commonjs/fetchJSON.d.ts +2 -3
  172. package/lib/typescript/commonjs/fetchJSON.d.ts.map +1 -1
  173. package/lib/typescript/commonjs/httpClient.d.ts +2 -36
  174. package/lib/typescript/commonjs/httpClient.d.ts.map +1 -1
  175. package/lib/typescript/commonjs/index.d.ts +3 -6
  176. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  177. package/lib/typescript/commonjs/native.d.ts +29 -15
  178. package/lib/typescript/commonjs/native.d.ts.map +1 -1
  179. package/lib/typescript/commonjs/pluginHost.d.ts +29 -0
  180. package/lib/typescript/commonjs/pluginHost.d.ts.map +1 -0
  181. package/lib/typescript/commonjs/plugins/insights/eventId.d.ts +18 -0
  182. package/lib/typescript/commonjs/plugins/insights/eventId.d.ts.map +1 -0
  183. package/lib/typescript/commonjs/plugins/insights/index.d.ts +40 -0
  184. package/lib/typescript/commonjs/plugins/insights/index.d.ts.map +1 -0
  185. package/lib/typescript/commonjs/plugins/insights/sender.d.ts +74 -0
  186. package/lib/typescript/commonjs/plugins/insights/sender.d.ts.map +1 -0
  187. package/lib/typescript/commonjs/plugins/insights/state.d.ts +46 -0
  188. package/lib/typescript/commonjs/plugins/insights/state.d.ts.map +1 -0
  189. package/lib/typescript/commonjs/releaseCatalogCache.d.ts +5 -1
  190. package/lib/typescript/commonjs/releaseCatalogCache.d.ts.map +1 -1
  191. package/lib/typescript/commonjs/sdkVersion.d.ts +1 -1
  192. package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts +34 -12
  193. package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts.map +1 -1
  194. package/lib/typescript/commonjs/updateError.d.ts +26 -0
  195. package/lib/typescript/commonjs/updateError.d.ts.map +1 -0
  196. package/lib/typescript/commonjs/wrap.d.ts.map +1 -1
  197. package/lib/typescript/commonjs/wrap.types.d.ts +6 -10
  198. package/lib/typescript/commonjs/wrap.types.d.ts.map +1 -1
  199. package/lib/typescript/module/appReady.d.ts +23 -0
  200. package/lib/typescript/module/appReady.d.ts.map +1 -0
  201. package/lib/typescript/module/appReady.test-utils.d.ts +9 -0
  202. package/lib/typescript/module/appReady.test-utils.d.ts.map +1 -0
  203. package/lib/typescript/module/baseURL.d.ts +4 -0
  204. package/lib/typescript/module/baseURL.d.ts.map +1 -0
  205. package/lib/typescript/module/checkForUpdate.d.ts +15 -2
  206. package/lib/typescript/module/checkForUpdate.d.ts.map +1 -1
  207. package/lib/typescript/module/clientPlugin.d.ts +185 -0
  208. package/lib/typescript/module/clientPlugin.d.ts.map +1 -0
  209. package/lib/typescript/module/fetchJSON.d.ts +2 -3
  210. package/lib/typescript/module/fetchJSON.d.ts.map +1 -1
  211. package/lib/typescript/module/httpClient.d.ts +2 -36
  212. package/lib/typescript/module/httpClient.d.ts.map +1 -1
  213. package/lib/typescript/module/index.d.ts +3 -6
  214. package/lib/typescript/module/index.d.ts.map +1 -1
  215. package/lib/typescript/module/native.d.ts +29 -15
  216. package/lib/typescript/module/native.d.ts.map +1 -1
  217. package/lib/typescript/module/pluginHost.d.ts +29 -0
  218. package/lib/typescript/module/pluginHost.d.ts.map +1 -0
  219. package/lib/typescript/module/plugins/insights/eventId.d.ts +18 -0
  220. package/lib/typescript/module/plugins/insights/eventId.d.ts.map +1 -0
  221. package/lib/typescript/module/plugins/insights/index.d.ts +40 -0
  222. package/lib/typescript/module/plugins/insights/index.d.ts.map +1 -0
  223. package/lib/typescript/module/plugins/insights/sender.d.ts +74 -0
  224. package/lib/typescript/module/plugins/insights/sender.d.ts.map +1 -0
  225. package/lib/typescript/module/plugins/insights/state.d.ts +46 -0
  226. package/lib/typescript/module/plugins/insights/state.d.ts.map +1 -0
  227. package/lib/typescript/module/releaseCatalogCache.d.ts +5 -1
  228. package/lib/typescript/module/releaseCatalogCache.d.ts.map +1 -1
  229. package/lib/typescript/module/sdkVersion.d.ts +1 -1
  230. package/lib/typescript/module/specs/NativeHotUpdater.d.ts +34 -12
  231. package/lib/typescript/module/specs/NativeHotUpdater.d.ts.map +1 -1
  232. package/lib/typescript/module/updateError.d.ts +26 -0
  233. package/lib/typescript/module/updateError.d.ts.map +1 -0
  234. package/lib/typescript/module/wrap.d.ts.map +1 -1
  235. package/lib/typescript/module/wrap.types.d.ts +6 -10
  236. package/lib/typescript/module/wrap.types.d.ts.map +1 -1
  237. package/package.json +14 -2
  238. package/plugins/insights/package.json +8 -0
  239. package/src/appReady.spec.ts +393 -0
  240. package/src/{notifyAppReadyInsights.test-utils.ts → appReady.test-utils.ts} +7 -7
  241. package/src/appReady.ts +149 -0
  242. package/src/baseURL.ts +15 -0
  243. package/src/checkForUpdate.releaseCatalog.spec.ts +370 -76
  244. package/src/checkForUpdate.ts +135 -80
  245. package/src/clientPlugin.ts +231 -0
  246. package/src/entryImportGraph.spec.ts +65 -0
  247. package/src/fetchJSON.ts +3 -10
  248. package/src/httpClient.spec.ts +30 -227
  249. package/src/httpClient.ts +20 -256
  250. package/src/index.spec.ts +117 -93
  251. package/src/index.ts +67 -52
  252. package/src/native.spec.ts +98 -72
  253. package/src/native.ts +93 -77
  254. package/src/pluginHost.spec.ts +297 -0
  255. package/src/pluginHost.ts +262 -0
  256. package/src/plugins/insights/eventId.spec.ts +60 -0
  257. package/src/plugins/insights/eventId.ts +171 -0
  258. package/src/plugins/insights/index.ts +367 -0
  259. package/src/plugins/insights/insights.spec.ts +732 -0
  260. package/src/plugins/insights/sender.spec.ts +287 -0
  261. package/src/plugins/insights/sender.ts +221 -0
  262. package/src/plugins/insights/state.ts +184 -0
  263. package/src/releaseCatalogCache.spec.ts +22 -0
  264. package/src/releaseCatalogCache.ts +19 -4
  265. package/src/sdkVersion.ts +1 -1
  266. package/src/specs/NativeHotUpdater.ts +34 -13
  267. package/src/updateError.spec.ts +144 -0
  268. package/src/updateError.ts +153 -0
  269. package/src/wrap.progress.spec.ts +232 -0
  270. package/src/wrap.spec.ts +100 -283
  271. package/src/wrap.tsx +57 -26
  272. package/src/wrap.types.ts +6 -12
  273. package/lib/commonjs/notifyAppReadyInsights.boundary.spec.js +0 -225
  274. package/lib/commonjs/notifyAppReadyInsights.boundary.spec.js.map +0 -1
  275. package/lib/commonjs/notifyAppReadyInsights.js +0 -188
  276. package/lib/commonjs/notifyAppReadyInsights.js.map +0 -1
  277. package/lib/commonjs/notifyAppReadyInsights.spec.js +0 -378
  278. package/lib/commonjs/notifyAppReadyInsights.spec.js.map +0 -1
  279. package/lib/commonjs/notifyAppReadyInsights.test-utils.js.map +0 -1
  280. package/lib/commonjs/notifyAppReadyInsights.transport.spec.js +0 -171
  281. package/lib/commonjs/notifyAppReadyInsights.transport.spec.js.map +0 -1
  282. package/lib/commonjs/uuidv7.js +0 -41
  283. package/lib/commonjs/uuidv7.js.map +0 -1
  284. package/lib/commonjs/uuidv7.spec.js +0 -30
  285. package/lib/commonjs/uuidv7.spec.js.map +0 -1
  286. package/lib/module/notifyAppReadyInsights.boundary.spec.js +0 -224
  287. package/lib/module/notifyAppReadyInsights.boundary.spec.js.map +0 -1
  288. package/lib/module/notifyAppReadyInsights.js +0 -181
  289. package/lib/module/notifyAppReadyInsights.js.map +0 -1
  290. package/lib/module/notifyAppReadyInsights.spec.js +0 -377
  291. package/lib/module/notifyAppReadyInsights.spec.js.map +0 -1
  292. package/lib/module/notifyAppReadyInsights.test-utils.js.map +0 -1
  293. package/lib/module/notifyAppReadyInsights.transport.spec.js +0 -170
  294. package/lib/module/notifyAppReadyInsights.transport.spec.js.map +0 -1
  295. package/lib/module/uuidv7.js +0 -36
  296. package/lib/module/uuidv7.js.map +0 -1
  297. package/lib/module/uuidv7.spec.js +0 -30
  298. package/lib/module/uuidv7.spec.js.map +0 -1
  299. package/lib/typescript/commonjs/notifyAppReadyInsights.d.ts +0 -25
  300. package/lib/typescript/commonjs/notifyAppReadyInsights.d.ts.map +0 -1
  301. package/lib/typescript/commonjs/notifyAppReadyInsights.test-utils.d.ts +0 -8
  302. package/lib/typescript/commonjs/notifyAppReadyInsights.test-utils.d.ts.map +0 -1
  303. package/lib/typescript/commonjs/uuidv7.d.ts +0 -10
  304. package/lib/typescript/commonjs/uuidv7.d.ts.map +0 -1
  305. package/lib/typescript/module/notifyAppReadyInsights.d.ts +0 -25
  306. package/lib/typescript/module/notifyAppReadyInsights.d.ts.map +0 -1
  307. package/lib/typescript/module/notifyAppReadyInsights.test-utils.d.ts +0 -8
  308. package/lib/typescript/module/notifyAppReadyInsights.test-utils.d.ts.map +0 -1
  309. package/lib/typescript/module/uuidv7.d.ts +0 -10
  310. package/lib/typescript/module/uuidv7.d.ts.map +0 -1
  311. package/src/notifyAppReadyInsights.boundary.spec.ts +0 -242
  312. package/src/notifyAppReadyInsights.spec.ts +0 -362
  313. package/src/notifyAppReadyInsights.transport.spec.ts +0 -196
  314. package/src/notifyAppReadyInsights.ts +0 -293
  315. package/src/uuidv7.spec.ts +0 -25
  316. package/src/uuidv7.ts +0 -38
@@ -29,7 +29,9 @@ const mocks = vi.hoisted(() => {
29
29
  getInstallId: vi.fn(() => "install-id"),
30
30
  getManifest: vi.fn(() => null),
31
31
  getMinBundleId: vi.fn(() => "min-bundle-id"),
32
- getPersistedUserIdentity: vi.fn(() => ({})),
32
+ configurePlugins: vi.fn(),
33
+ emitAfterAppReady: vi.fn(),
34
+ reportUpdateError: vi.fn(),
33
35
  init: vi.fn(),
34
36
  isChannelSwitched: vi.fn(() => false),
35
37
  notifyAppReady: vi.fn(() => ({
@@ -39,8 +41,7 @@ const mocks = vi.hoisted(() => {
39
41
  resetChannel: vi.fn(),
40
42
  setCohort: vi.fn(),
41
43
  setReloadBehavior: vi.fn(),
42
- setUser: vi.fn(),
43
- updateBundle: vi.fn(),
44
+ stageBundle: vi.fn(),
44
45
  wrap: vi.fn(Component => Component)
45
46
  };
46
47
  });
@@ -53,7 +54,14 @@ vi.mock("./httpClient", () => ({
53
54
  createHttpClient: mocks.createHttpClient
54
55
  }));
55
56
  vi.mock("./checkForUpdate", () => ({
56
- checkForUpdate: mocks.checkForUpdate
57
+ checkForUpdate: mocks.checkForUpdate,
58
+ reportUpdateError: mocks.reportUpdateError
59
+ }));
60
+ vi.mock("./pluginHost", () => ({
61
+ configurePlugins: mocks.configurePlugins
62
+ }));
63
+ vi.mock("./appReady", () => ({
64
+ emitAfterAppReady: mocks.emitAfterAppReady
57
65
  }));
58
66
  vi.mock("./native", () => ({
59
67
  addListener: mocks.addListener,
@@ -72,15 +80,13 @@ vi.mock("./native", () => ({
72
80
  getInstallId: mocks.getInstallId,
73
81
  getManifest: mocks.getManifest,
74
82
  getMinBundleId: mocks.getMinBundleId,
75
- getPersistedUserIdentity: mocks.getPersistedUserIdentity,
76
83
  isChannelSwitched: mocks.isChannelSwitched,
77
84
  notifyAppReady: mocks.notifyAppReady,
78
85
  reload: mocks.reload,
79
86
  resetChannel: mocks.resetChannel,
80
87
  setCohort: mocks.setCohort,
81
88
  setReloadBehavior: mocks.setReloadBehavior,
82
- setUser: mocks.setUser,
83
- updateBundle: mocks.updateBundle
89
+ stageBundle: mocks.stageBundle
84
90
  }));
85
91
  vi.mock("./wrap", () => ({
86
92
  init: mocks.init,
@@ -114,7 +120,6 @@ describe("HotUpdater client initialization", () => {
114
120
  mocks.createHttpClient.mockReturnValue(client);
115
121
  const HotUpdater = await importHotUpdater();
116
122
  HotUpdater.init({
117
- insights: true,
118
123
  baseURL: "https://updates.example.com",
119
124
  requestHeaders: {
120
125
  Authorization: "Bearer token"
@@ -123,7 +128,6 @@ describe("HotUpdater client initialization", () => {
123
128
  });
124
129
  expect(mocks.createHttpClient).toHaveBeenCalledWith("https://updates.example.com");
125
130
  expect(mocks.init).toHaveBeenCalledWith({
126
- insights: true,
127
131
  client,
128
132
  requestHeaders: {
129
133
  Authorization: "Bearer token"
@@ -140,134 +144,126 @@ describe("HotUpdater client initialization", () => {
140
144
  expect(mocks.createHttpClient).toHaveBeenCalledWith(resolveBaseURL);
141
145
  expect(resolveBaseURL).not.toHaveBeenCalled();
142
146
  });
143
- it("enables insights by default for init and wrap", async () => {
147
+ it("sets up plugins with the settings they fetch with, before init reads the launch", async () => {
148
+ const plugin = {
149
+ id: "example",
150
+ setup: vi.fn()
151
+ };
152
+ const onError = vi.fn();
153
+ mocks.init.mockImplementationOnce(() => {
154
+ expect(mocks.configurePlugins).toHaveBeenCalledOnce();
155
+ });
144
156
  const HotUpdater = await importHotUpdater();
145
157
  HotUpdater.init({
146
- baseURL: "https://updates.example.com"
158
+ baseURL: "https://updates.example.com",
159
+ onError,
160
+ plugins: [plugin],
161
+ requestHeaders: {
162
+ "x-api-key": "client-key"
163
+ },
164
+ requestTimeout: 1000
147
165
  });
148
166
  HotUpdater.wrap({
149
- baseURL: "https://updates.example.com",
167
+ baseURL: "https://other.example.com",
168
+ plugins: [plugin],
150
169
  updateStrategy: "appVersion"
151
170
  });
152
- expect(mocks.init).toHaveBeenCalledWith(expect.objectContaining({
153
- insights: true
154
- }));
155
- expect(mocks.wrap).toHaveBeenCalledWith(expect.objectContaining({
156
- insights: true
157
- }));
158
- });
159
- it("preserves an explicit insights opt-out", async () => {
160
- const HotUpdater = await importHotUpdater();
161
- HotUpdater.init({
171
+ expect(mocks.configurePlugins).toHaveBeenNthCalledWith(1, [plugin], {
162
172
  baseURL: "https://updates.example.com",
163
- insights: false
173
+ onError,
174
+ requestHeaders: {
175
+ "x-api-key": "client-key"
176
+ },
177
+ requestTimeout: 1000
164
178
  });
165
- HotUpdater.wrap({
166
- baseURL: "https://updates.example.com",
167
- insights: false,
168
- updateStrategy: "appVersion"
179
+ expect(mocks.configurePlugins).toHaveBeenNthCalledWith(2, [plugin], {
180
+ baseURL: "https://other.example.com",
181
+ onError: undefined,
182
+ requestHeaders: undefined,
183
+ requestTimeout: undefined
169
184
  });
170
- expect(mocks.init).toHaveBeenCalledWith(expect.objectContaining({
171
- insights: false
185
+ expect(mocks.init).toHaveBeenCalledWith(expect.not.objectContaining({
186
+ plugins: expect.anything()
172
187
  }));
173
- expect(mocks.wrap).toHaveBeenCalledWith(expect.objectContaining({
174
- insights: false
188
+ expect(mocks.wrap).toHaveBeenCalledWith(expect.not.objectContaining({
189
+ plugins: expect.anything()
175
190
  }));
176
191
  });
177
- it.each([{
178
- dev: true,
179
- insights: undefined,
180
- expected: false
181
- }, {
182
- dev: true,
183
- insights: true,
184
- expected: false
185
- }, {
186
- dev: true,
187
- insights: false,
188
- expected: false
189
- }, {
190
- dev: true,
191
- insights: {
192
- debug: true
193
- },
194
- expected: true
195
- }, {
196
- dev: false,
197
- insights: {
198
- debug: true
199
- },
200
- expected: true
201
- }, {
202
- dev: false,
203
- insights: {
204
- debug: false
205
- },
206
- expected: true
207
- }, {
208
- dev: false,
209
- insights: false,
210
- expected: false
211
- }])("resolves insights $insights to $expected when __DEV__ is $dev", async ({
212
- dev,
213
- insights,
214
- expected
215
- }) => {
216
- vi.stubGlobal("__DEV__", dev);
217
- vi.spyOn(console, "error").mockImplementation(() => undefined);
192
+ it("reports a staged manual download to plugins after the launch", async () => {
193
+ mocks.stageBundle.mockResolvedValueOnce({
194
+ delivery: "archive",
195
+ patchFallback: true
196
+ });
197
+ mocks.getActiveUpdateState.mockReturnValue({
198
+ activeSelection: {
199
+ bundleId: "next-bundle-id",
200
+ channel: "production",
201
+ kind: "BUNDLE",
202
+ releaseId: "next-release-id",
203
+ scopeKey: "v1:fingerprint:project:ios:cHJvZHVjdGlvbg:hash"
204
+ },
205
+ highestSeenCatalogs: {},
206
+ stableSelection: null,
207
+ verificationPending: true
208
+ });
218
209
  const HotUpdater = await importHotUpdater();
219
210
  HotUpdater.init({
220
- baseURL: "https://updates.example.com",
221
- insights
211
+ baseURL: "https://updates.example.com"
222
212
  });
223
- HotUpdater.wrap({
224
- baseURL: "https://updates.example.com",
225
- insights,
226
- updateStrategy: "appVersion"
213
+ await HotUpdater.updateBundle({
214
+ assets: {},
215
+ bundleId: "next-bundle-id",
216
+ manifestFileHash: "manifest-hash",
217
+ manifestUrl: "https://updates.example.com/manifest.json",
218
+ status: "UPDATE"
219
+ });
220
+ expect(mocks.emitAfterAppReady).toHaveBeenCalledOnce();
221
+ const [name, createPayload] = mocks.emitAfterAppReady.mock.calls[0];
222
+ expect(name).toBe("onBundleDownloaded");
223
+ expect(createPayload()).toEqual({
224
+ channel: "production",
225
+ fromBundleId: "bundle-id",
226
+ fromReleaseId: null,
227
+ toBundleId: "next-bundle-id",
228
+ toReleaseId: "next-release-id",
229
+ updateStrategy: "fingerprint",
230
+ delivery: "archive",
231
+ patchFallback: true
227
232
  });
228
- expect(mocks.init).toHaveBeenCalledWith(expect.objectContaining({
229
- insights: expected
230
- }));
231
- expect(mocks.wrap).toHaveBeenCalledWith(expect.objectContaining({
232
- insights: expected
233
- }));
234
233
  });
235
- it.each([{
236
- dev: true,
237
- reports: false
238
- }, {
239
- dev: false,
240
- reports: true
241
- }])("gates manual checks and downloads on the build type (__DEV__: $dev)", async ({
242
- dev,
243
- reports
244
- }) => {
245
- vi.stubGlobal("__DEV__", dev);
246
- const sendInsightsEvent = vi.fn(async () => undefined);
247
- mocks.createHttpClient.mockReturnValue({
248
- createSession: vi.fn(async () => ({
249
- sendInsightsEvent
250
- }))
234
+ it("reports a failed manual download to plugins and rethrows it", async () => {
235
+ const error = Object.assign(new Error("hash mismatch"), {
236
+ code: "SIGNATURE_VERIFICATION_FAILED",
237
+ userInfo: {
238
+ reason: "hash_mismatch",
239
+ stage: "download"
240
+ }
251
241
  });
252
- mocks.updateBundle.mockResolvedValueOnce(true);
242
+ mocks.stageBundle.mockRejectedValueOnce(error);
253
243
  const HotUpdater = await importHotUpdater();
254
244
  HotUpdater.init({
255
245
  baseURL: "https://updates.example.com"
256
246
  });
257
- await HotUpdater.checkForUpdate({
258
- updateStrategy: "appVersion"
259
- });
260
- await HotUpdater.updateBundle({
247
+ await expect(HotUpdater.updateBundle({
261
248
  assets: {},
262
249
  bundleId: "next-bundle-id",
250
+ channel: "beta",
263
251
  manifestFileHash: "manifest-hash",
264
252
  manifestUrl: "https://updates.example.com/manifest.json",
253
+ selection: {
254
+ releaseId: "next-release-id",
255
+ scopeKey: "v1:app-version:project:ios:YmV0YQ"
256
+ },
265
257
  status: "UPDATE"
258
+ })).rejects.toBe(error);
259
+ expect(mocks.reportUpdateError).toHaveBeenCalledWith(error, "download", undefined, {
260
+ bundleId: "bundle-id",
261
+ channel: "beta",
262
+ targetBundleId: "next-bundle-id",
263
+ targetReleaseId: "next-release-id",
264
+ updateStrategy: "appVersion"
266
265
  });
267
- expect(mocks.checkForUpdate).toHaveBeenCalledWith(expect.objectContaining({
268
- insights: reports
269
- }));
270
- expect(sendInsightsEvent).toHaveBeenCalledTimes(reports ? 1 : 0);
266
+ expect(mocks.emitAfterAppReady).not.toHaveBeenCalled();
271
267
  });
272
268
  it("requires baseURL and rejects the removed resolver shape", async () => {
273
269
  const HotUpdater = await importHotUpdater();
@@ -305,7 +301,7 @@ describe("HotUpdater client initialization", () => {
305
301
  expect(initOptions.baseURL).toBe("https://updates.example.com");
306
302
  expect(wrapOptions.updateStrategy).toBe("appVersion");
307
303
  });
308
- it("merges settings and carries the insights gate to checks", async () => {
304
+ it("merges settings into checks", async () => {
309
305
  const client = {
310
306
  createSession: vi.fn()
311
307
  };
@@ -313,7 +309,6 @@ describe("HotUpdater client initialization", () => {
313
309
  const checkOnError = vi.fn();
314
310
  const HotUpdater = await importHotUpdater();
315
311
  HotUpdater.init({
316
- insights: true,
317
312
  baseURL: "https://updates.example.com",
318
313
  requestHeaders: {
319
314
  Authorization: "Bearer token"
@@ -328,7 +323,6 @@ describe("HotUpdater client initialization", () => {
328
323
  updateStrategy: "appVersion"
329
324
  });
330
325
  expect(mocks.checkForUpdate).toHaveBeenCalledWith({
331
- insights: true,
332
326
  client,
333
327
  onError: checkOnError,
334
328
  requestHeaders: {
@@ -346,12 +340,10 @@ describe("HotUpdater client initialization", () => {
346
340
  mocks.createHttpClient.mockReturnValue(client);
347
341
  const HotUpdater = await importHotUpdater();
348
342
  HotUpdater.wrap({
349
- insights: true,
350
343
  baseURL: "https://updates.example.com",
351
344
  updateStrategy: "appVersion"
352
345
  });
353
346
  expect(mocks.wrap).toHaveBeenCalledWith({
354
- insights: true,
355
347
  client,
356
348
  updateStrategy: "appVersion"
357
349
  });
@@ -392,18 +384,11 @@ describe("HotUpdater client initialization", () => {
392
384
  updateStrategy: "appVersion"
393
385
  })).toThrow("requires HotUpdater.wrap() or HotUpdater.init() to be used");
394
386
  });
395
- it("preserves native identity and user APIs", async () => {
387
+ it("keeps the install id and leaves user identity to the insights plugin", async () => {
396
388
  const HotUpdater = await importHotUpdater();
397
389
  expect(HotUpdater.getInstallId()).toBe("install-id");
398
390
  expect(HotUpdater.getMinBundleId()).toBe("min-bundle-id");
399
- HotUpdater.setUser({
400
- userId: "user-123",
401
- username: "alice"
402
- });
403
- expect(mocks.setUser).toHaveBeenCalledWith({
404
- userId: "user-123",
405
- username: "alice"
406
- });
391
+ expect(HotUpdater).not.toHaveProperty("setUser");
407
392
  });
408
393
  });
409
394
  //# sourceMappingURL=index.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["afterEach","beforeEach","describe","expect","it","vi","mocks","hoisted","globalThis","HotUpdater","SDK_VERSION","addListener","fn","checkForUpdate","clearCrashHistory","createHttpClient","baseURL","getActiveUpdateState","activeSelection","highestSeenCatalogs","stableSelection","verificationPending","getAppVersion","getBaseURL","getUpdateId","getChannel","getCohort","getCrashHistory","getDefaultChannel","getFingerprintHash","getInstallId","getManifest","getMinBundleId","getPersistedUserIdentity","init","isChannelSwitched","notifyAppReady","status","reload","resetChannel","setCohort","setReloadBehavior","setUser","updateBundle","wrap","Component","mock","Platform","OS","getPublicActiveUpdateState","getBundleId","importHotUpdater","resetModules","clearAllMocks","mockImplementation","mockResolvedValue","unstubAllGlobals","restoreAllMocks","toBe","not","toHaveProperty","client","createSession","mockReturnValue","insights","requestHeaders","Authorization","requestTimeout","toHaveBeenCalledWith","resolveBaseURL","toHaveBeenCalled","updateStrategy","objectContaining","each","dev","undefined","expected","debug","stubGlobal","spyOn","console","reports","sendInsightsEvent","mockResolvedValueOnce","assets","bundleId","manifestFileHash","manifestUrl","toHaveBeenCalledTimes","toThrow","resolver","initOptions","wrapOptions","assertRemovedInputsStayRejected","missingBaseURL","customResolver","clientCatalog","catalogId","toBeTypeOf","checkOnError","onError","first","second","consoleError","configure","api","toHaveBeenCalledOnce","stringContaining","mockRestore","updateMode","userId","username"],"sourceRoot":"../../src","sources":["index.spec.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["afterEach","beforeEach","describe","expect","it","vi","mocks","hoisted","globalThis","HotUpdater","SDK_VERSION","addListener","fn","checkForUpdate","clearCrashHistory","createHttpClient","baseURL","getActiveUpdateState","activeSelection","highestSeenCatalogs","stableSelection","verificationPending","getAppVersion","getBaseURL","getUpdateId","getChannel","getCohort","getCrashHistory","getDefaultChannel","getFingerprintHash","getInstallId","getManifest","getMinBundleId","configurePlugins","emitAfterAppReady","reportUpdateError","init","isChannelSwitched","notifyAppReady","status","reload","resetChannel","setCohort","setReloadBehavior","stageBundle","wrap","Component","mock","Platform","OS","getPublicActiveUpdateState","getBundleId","importHotUpdater","resetModules","clearAllMocks","mockImplementation","mockResolvedValue","unstubAllGlobals","restoreAllMocks","toBe","not","toHaveProperty","client","createSession","mockReturnValue","requestHeaders","Authorization","requestTimeout","toHaveBeenCalledWith","resolveBaseURL","toHaveBeenCalled","plugin","id","setup","onError","mockImplementationOnce","toHaveBeenCalledOnce","plugins","updateStrategy","toHaveBeenNthCalledWith","undefined","objectContaining","anything","mockResolvedValueOnce","delivery","patchFallback","bundleId","channel","kind","releaseId","scopeKey","updateBundle","assets","manifestFileHash","manifestUrl","name","createPayload","calls","toEqual","fromBundleId","fromReleaseId","toBundleId","toReleaseId","error","Object","assign","Error","code","userInfo","reason","stage","mockRejectedValueOnce","selection","rejects","targetBundleId","targetReleaseId","toThrow","resolver","initOptions","wrapOptions","assertRemovedInputsStayRejected","missingBaseURL","customResolver","clientCatalog","catalogId","toBeTypeOf","checkOnError","each","first","second","consoleError","spyOn","console","configure","api","stringContaining","mockRestore","updateMode"],"sourceRoot":"../../src","sources":["index.spec.ts"],"mappings":"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","ignoreList":[]}
@@ -188,14 +188,31 @@ export const commitReleaseSelection = async input => {
188
188
  return ok;
189
189
  };
190
190
 
191
+ /** How native delivered a staged bundle. */
192
+
193
+ const readBundleDelivery = value => {
194
+ if (typeof value !== "object" || value === null) return null;
195
+ const {
196
+ delivery,
197
+ patchFallback
198
+ } = value;
199
+ if (delivery !== "patch" && delivery !== "manifest" && delivery !== "archive") {
200
+ return null;
201
+ }
202
+ return {
203
+ delivery,
204
+ patchFallback: patchFallback === true
205
+ };
206
+ };
207
+
191
208
  /**
192
- * Downloads files and applies them to the app.
209
+ * Stages a bundle for the next launch. Resolves with how native delivered
210
+ * it, or with null when this runtime had already staged it and nothing was
211
+ * downloaded; rejects when the download or install fails.
193
212
  *
194
- * @param {UpdateParams} params - Parameters object required for bundle update
195
- * @returns {Promise<boolean>} Resolves with true if download was successful
196
213
  * @throws {Error} Rejects with error.code from HotUpdaterErrorCode enum and error.message
197
214
  */
198
- export async function updateBundle(params) {
215
+ export async function stageBundle(params) {
199
216
  const updateBundleId = params.bundleId;
200
217
  const status = params.status;
201
218
  const currentBundleId = status === "UPDATE" ? getFreshBundleId() : undefined;
@@ -204,7 +221,7 @@ export async function updateBundle(params) {
204
221
  // skip re-download. Native state can move back to the built-in bundle after
205
222
  // rollback/reset, so check a fresh native bundle id before using this guard.
206
223
  if (status === "UPDATE" && sessionState.hasInstalledBundle(updateBundleId) && currentBundleId === updateBundleId) {
207
- return true;
224
+ return null;
208
225
  }
209
226
  const shouldSkipCurrentBundleIdCheck = params.shouldSkipCurrentBundleIdCheck === true;
210
227
  if (!shouldSkipCurrentBundleIdCheck && status === "UPDATE" && currentBundleId !== undefined && updateBundleId.localeCompare(currentBundleId) <= 0) {
@@ -221,7 +238,7 @@ export async function updateBundle(params) {
221
238
  const promise = (async () => {
222
239
  try {
223
240
  const selection = params.selection;
224
- const ok = await HotUpdaterNative.updateBundle({
241
+ const staged = await HotUpdaterNative.updateBundle({
225
242
  bundleId: updateBundleId,
226
243
  channel: targetChannel,
227
244
  assets: targetAssets,
@@ -234,10 +251,8 @@ export async function updateBundle(params) {
234
251
  selection
235
252
  })
236
253
  });
237
- if (ok) {
238
- sessionState.markBundleInstalled(updateBundleId, targetChannel);
239
- }
240
- return ok;
254
+ sessionState.markBundleInstalled(updateBundleId, targetChannel);
255
+ return readBundleDelivery(staged);
241
256
  } finally {
242
257
  sessionState.clearInflightUpdate(updateBundleId);
243
258
  }
@@ -246,6 +261,18 @@ export async function updateBundle(params) {
246
261
  return promise;
247
262
  }
248
263
 
264
+ /**
265
+ * Downloads files and applies them to the app.
266
+ *
267
+ * @param {UpdateParams} params - Parameters object required for bundle update
268
+ * @returns {Promise<boolean>} Resolves with true if download was successful
269
+ * @throws {Error} Rejects with error.code from HotUpdaterErrorCode enum and error.message
270
+ */
271
+ export async function updateBundle(params) {
272
+ await stageBundle(params);
273
+ return true;
274
+ }
275
+
249
276
  /**
250
277
  * Fetches the current app version.
251
278
  */
@@ -418,39 +445,31 @@ export const getInstallId = () => {
418
445
  }
419
446
  return nativeModule.getInstallId();
420
447
  };
421
- export const getPersistedUserIdentity = () => {
422
- const nativeModule = HotUpdaterNative;
423
- if (typeof nativeModule.getUserId !== "function" || typeof nativeModule.getUsername !== "function") {
424
- throw new Error("[HotUpdater] Native module is missing 'getUserId()' or 'getUsername()'. This JS bundle requires a newer native @hot-updater/react-native SDK. Rebuild and release a new app version before delivering this OTA update.");
448
+ const requireStorageNativeMethod = name => {
449
+ const method = HotUpdaterNative[name];
450
+ if (typeof method !== "function") {
451
+ throw new Error(`[HotUpdater] Native module is missing '${name}()'. This JS bundle requires a newer native @hot-updater/react-native SDK. Rebuild and release a new app version before delivering this OTA update.`);
425
452
  }
426
- const userId = nativeModule.getUserId();
427
- const username = nativeModule.getUsername();
428
- return {
429
- ...(userId != null ? {
430
- userId
431
- } : {}),
432
- ...(username != null ? {
433
- username
434
- } : {})
435
- };
453
+ return method.bind(HotUpdaterNative);
454
+ };
455
+
456
+ /** Reads a value from the SDK's native key-value store. */
457
+ export const getStorageItem = key => {
458
+ const value = requireStorageNativeMethod("getStorageItem")(key);
459
+ return typeof value === "string" ? value : null;
460
+ };
461
+
462
+ /** Writes a value to the SDK's native key-value store; null removes it. */
463
+ export const setStorageItem = (key, value) => {
464
+ requireStorageNativeMethod("setStorageItem")(key, value);
436
465
  };
437
- export function setUser(params) {
438
- const nativeModule = HotUpdaterNative;
439
- if (typeof nativeModule.setUser !== "function") {
440
- throw new Error("[HotUpdater] Native module is missing 'setUser()'. This JS bundle requires a newer native @hot-updater/react-native SDK. Rebuild and release a new app version before delivering this OTA update.");
441
- }
442
- if (params === null) {
443
- nativeModule.setUser(null, null);
444
- return;
445
- }
446
- const normalizedUserId = params.userId === null || params.userId === undefined ? null : String(params.userId);
447
- nativeModule.setUser(normalizedUserId, params.username ?? null);
448
- }
449
466
 
450
467
  /**
451
468
  * Result returned by notifyAppReady()
452
469
  */
453
470
 
471
+ /** An update applied or recovered at this launch, as native persisted it. */
472
+
454
473
  const isPersistedUpdateStrategy = value => {
455
474
  return value === "appVersion" || value === "fingerprint";
456
475
  };
@@ -516,7 +535,7 @@ const getNotifyAppReadyTransition = result => {
516
535
  }
517
536
  return null;
518
537
  };
519
- const getNotifyAppReadyInsightsEvent = result => {
538
+ const getLaunchTransition = result => {
520
539
  const transition = getNotifyAppReadyTransition(result);
521
540
  if (!transition || !isPersistedUpdateStrategy(result.updateStrategy)) {
522
541
  return null;
@@ -525,12 +544,8 @@ const getNotifyAppReadyInsightsEvent = result => {
525
544
  type: transition.status,
526
545
  fromBundleId: transition.fromBundleId,
527
546
  toBundleId: transition.toBundleId,
528
- ...(transition.fromReleaseId === null ? {} : {
529
- fromReleaseId: transition.fromReleaseId
530
- }),
531
- ...(transition.toReleaseId === null ? {} : {
532
- toReleaseId: transition.toReleaseId
533
- }),
547
+ fromReleaseId: transition.fromReleaseId,
548
+ toReleaseId: transition.toReleaseId,
534
549
  updateStrategy: result.updateStrategy
535
550
  };
536
551
  };
@@ -555,9 +570,13 @@ const normalizeNotifyAppReadyResult = result => {
555
570
  };
556
571
  export const readNotifyAppReady = () => {
557
572
  const rawResult = readRawNotifyAppReadyResult();
573
+ const {
574
+ previousProcessExit
575
+ } = rawResult;
558
576
  return {
559
577
  result: normalizeNotifyAppReadyResult(rawResult),
560
- insightsEvent: getNotifyAppReadyInsightsEvent(rawResult),
578
+ transition: getLaunchTransition(rawResult),
579
+ previousProcessExit: typeof previousProcessExit === "string" && previousProcessExit !== "" ? previousProcessExit : null,
561
580
  pending: rawResult.status === "PENDING"
562
581
  };
563
582
  };