@hot-updater/react-native 1.0.0-rc.2 → 1.0.0-rc.21

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 (291) hide show
  1. package/android/proguard-rules.pro +17 -2
  2. package/android/src/main/java/com/hotupdater/BuiltInAssetResolver.kt +286 -0
  3. package/android/src/main/java/com/hotupdater/BundleFileStorageService.kt +954 -837
  4. package/android/src/main/java/com/hotupdater/BundleMetadata.kt +15 -11
  5. package/android/src/main/java/com/hotupdater/FileManagerService.kt +45 -0
  6. package/android/src/main/java/com/hotupdater/HotUpdaterException.kt +287 -22
  7. package/android/src/main/java/com/hotupdater/HotUpdaterImpl.kt +43 -31
  8. package/android/src/main/java/com/hotupdater/HotUpdaterRecoveryManager.kt +37 -54
  9. package/android/src/main/java/com/hotupdater/HotUpdaterRecoveryState.kt +64 -0
  10. package/android/src/main/java/com/hotupdater/InstallIdentityService.kt +37 -0
  11. package/android/src/main/java/com/hotupdater/KeyValueStorageService.kt +86 -0
  12. package/android/src/main/java/com/hotupdater/NetworkState.kt +31 -0
  13. package/android/src/main/java/com/hotupdater/NoBackupStorage.kt +17 -0
  14. package/android/src/main/java/com/hotupdater/OkHttpDownloadService.kt +127 -50
  15. package/android/src/main/java/com/hotupdater/PreviousProcessExit.kt +89 -0
  16. package/android/src/main/java/com/hotupdater/ReactNativeValueConverters.kt +34 -0
  17. package/android/src/main/java/com/hotupdater/TarArchiveInputStream.kt +214 -375
  18. package/android/src/main/java/com/hotupdater/TarBrArchiveExtractor.kt +119 -0
  19. package/android/src/newarch/HotUpdater.kt +7 -9
  20. package/android/src/newarch/HotUpdaterModule.kt +109 -84
  21. package/android/src/oldarch/HotUpdater.kt +7 -9
  22. package/android/src/oldarch/HotUpdaterModule.kt +98 -74
  23. package/android/src/oldarch/HotUpdaterSpec.kt +4 -6
  24. package/ios/HotUpdater/Internal/BrotliFileDecompressor.swift +167 -0
  25. package/ios/HotUpdater/Internal/BuiltInAssetResolver.swift +196 -0
  26. package/ios/HotUpdater/Internal/BundleFileStorageService.swift +950 -1112
  27. package/ios/HotUpdater/Internal/BundleMetadata.swift +8 -53
  28. package/ios/HotUpdater/Internal/FileManagerService.swift +48 -0
  29. package/ios/HotUpdater/Internal/FileUtilities.swift +64 -0
  30. package/ios/HotUpdater/Internal/HotUpdater-Bridging-Header.h +0 -1
  31. package/ios/HotUpdater/Internal/HotUpdater.mm +13 -45
  32. package/ios/HotUpdater/Internal/HotUpdaterImpl.swift +190 -73
  33. package/ios/HotUpdater/Internal/KeyValueStorageService.swift +71 -0
  34. package/ios/HotUpdater/Internal/NotificationExtension.swift +0 -2
  35. package/ios/HotUpdater/Internal/TarArchiveExtractor.swift +182 -311
  36. package/ios/HotUpdater/Internal/URLSessionDownloadService.swift +119 -71
  37. package/ios/HotUpdater/Internal/UpdateFailure.swift +390 -0
  38. package/ios/HotUpdater/Recovery/HotUpdaterRecovery.h +16 -0
  39. package/ios/HotUpdater/Recovery/HotUpdaterRecovery.mm +83 -0
  40. package/ios/HotUpdater/Recovery/HotUpdaterRecoveryHooks.mm +49 -0
  41. package/lib/commonjs/appReady.js +111 -0
  42. package/lib/commonjs/appReady.js.map +1 -0
  43. package/lib/commonjs/checkForUpdate.js +125 -70
  44. package/lib/commonjs/checkForUpdate.js.map +1 -1
  45. package/lib/commonjs/clientPlugin.js +13 -0
  46. package/lib/commonjs/clientPlugin.js.map +1 -0
  47. package/lib/commonjs/error.js +4 -13
  48. package/lib/commonjs/error.js.map +1 -1
  49. package/lib/commonjs/fetchJSON.js +5 -2
  50. package/lib/commonjs/fetchJSON.js.map +1 -1
  51. package/lib/commonjs/httpClient.js +55 -92
  52. package/lib/commonjs/httpClient.js.map +1 -1
  53. package/lib/commonjs/index.js +68 -20
  54. package/lib/commonjs/index.js.map +1 -1
  55. package/lib/commonjs/native.js +82 -62
  56. package/lib/commonjs/native.js.map +1 -1
  57. package/lib/commonjs/pluginHost.js +44 -0
  58. package/lib/commonjs/pluginHost.js.map +1 -0
  59. package/lib/commonjs/releaseCatalogCache.js +20 -61
  60. package/lib/commonjs/releaseCatalogCache.js.map +1 -1
  61. package/lib/commonjs/sdkVersion.js +1 -1
  62. package/lib/commonjs/sdkVersion.js.map +1 -1
  63. package/lib/commonjs/specs/NativeHotUpdater.js.map +1 -1
  64. package/lib/commonjs/store.js +3 -10
  65. package/lib/commonjs/store.js.map +1 -1
  66. package/lib/commonjs/updateError.js +132 -0
  67. package/lib/commonjs/updateError.js.map +1 -0
  68. package/lib/commonjs/wrap.js +44 -27
  69. package/lib/commonjs/wrap.js.map +1 -1
  70. package/lib/module/appReady.js +103 -0
  71. package/lib/module/appReady.js.map +1 -0
  72. package/lib/module/checkForUpdate.js +118 -65
  73. package/lib/module/checkForUpdate.js.map +1 -1
  74. package/lib/module/clientPlugin.js +4 -0
  75. package/lib/module/clientPlugin.js.map +1 -0
  76. package/lib/module/error.js +4 -13
  77. package/lib/module/error.js.map +1 -1
  78. package/lib/module/fetchJSON.js +3 -1
  79. package/lib/module/fetchJSON.js.map +1 -1
  80. package/lib/module/httpClient.js +53 -90
  81. package/lib/module/httpClient.js.map +1 -1
  82. package/lib/module/index.js +55 -22
  83. package/lib/module/index.js.map +1 -1
  84. package/lib/module/native.js +74 -54
  85. package/lib/module/native.js.map +1 -1
  86. package/lib/module/pluginHost.js +35 -0
  87. package/lib/module/pluginHost.js.map +1 -0
  88. package/lib/module/releaseCatalogCache.js +16 -56
  89. package/lib/module/releaseCatalogCache.js.map +1 -1
  90. package/lib/module/sdkVersion.js +1 -1
  91. package/lib/module/sdkVersion.js.map +1 -1
  92. package/lib/module/specs/NativeHotUpdater.js.map +1 -1
  93. package/lib/module/store.js +3 -10
  94. package/lib/module/store.js.map +1 -1
  95. package/lib/module/updateError.js +126 -0
  96. package/lib/module/updateError.js.map +1 -0
  97. package/lib/module/wrap.js +45 -28
  98. package/lib/module/wrap.js.map +1 -1
  99. package/lib/typescript/commonjs/appReady.d.ts +23 -0
  100. package/lib/typescript/commonjs/appReady.d.ts.map +1 -0
  101. package/lib/typescript/commonjs/checkForUpdate.d.ts +16 -4
  102. package/lib/typescript/commonjs/checkForUpdate.d.ts.map +1 -1
  103. package/lib/typescript/commonjs/clientPlugin.d.ts +2 -0
  104. package/lib/typescript/commonjs/clientPlugin.d.ts.map +1 -0
  105. package/lib/typescript/commonjs/error.d.ts +4 -13
  106. package/lib/typescript/commonjs/error.d.ts.map +1 -1
  107. package/lib/typescript/commonjs/fetchJSON.d.ts +3 -0
  108. package/lib/typescript/commonjs/fetchJSON.d.ts.map +1 -1
  109. package/lib/typescript/commonjs/httpClient.d.ts +3 -32
  110. package/lib/typescript/commonjs/httpClient.d.ts.map +1 -1
  111. package/lib/typescript/commonjs/index.d.ts +7 -12
  112. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  113. package/lib/typescript/commonjs/native.d.ts +33 -23
  114. package/lib/typescript/commonjs/native.d.ts.map +1 -1
  115. package/lib/typescript/commonjs/pluginHost.d.ts +4 -0
  116. package/lib/typescript/commonjs/pluginHost.d.ts.map +1 -0
  117. package/lib/typescript/commonjs/releaseCatalogCache.d.ts +6 -14
  118. package/lib/typescript/commonjs/releaseCatalogCache.d.ts.map +1 -1
  119. package/lib/typescript/commonjs/sdkVersion.d.ts +1 -1
  120. package/lib/typescript/commonjs/sdkVersion.d.ts.map +1 -1
  121. package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts +42 -47
  122. package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts.map +1 -1
  123. package/lib/typescript/commonjs/store.d.ts +1 -3
  124. package/lib/typescript/commonjs/store.d.ts.map +1 -1
  125. package/lib/typescript/commonjs/types.d.ts +1 -1
  126. package/lib/typescript/commonjs/types.d.ts.map +1 -1
  127. package/lib/typescript/commonjs/updateError.d.ts +26 -0
  128. package/lib/typescript/commonjs/updateError.d.ts.map +1 -0
  129. package/lib/typescript/commonjs/wrap.d.ts.map +1 -1
  130. package/lib/typescript/commonjs/wrap.types.d.ts +6 -7
  131. package/lib/typescript/commonjs/wrap.types.d.ts.map +1 -1
  132. package/lib/typescript/module/appReady.d.ts +23 -0
  133. package/lib/typescript/module/appReady.d.ts.map +1 -0
  134. package/lib/typescript/module/checkForUpdate.d.ts +16 -4
  135. package/lib/typescript/module/checkForUpdate.d.ts.map +1 -1
  136. package/lib/typescript/module/clientPlugin.d.ts +2 -0
  137. package/lib/typescript/module/clientPlugin.d.ts.map +1 -0
  138. package/lib/typescript/module/error.d.ts +4 -13
  139. package/lib/typescript/module/error.d.ts.map +1 -1
  140. package/lib/typescript/module/fetchJSON.d.ts +3 -0
  141. package/lib/typescript/module/fetchJSON.d.ts.map +1 -1
  142. package/lib/typescript/module/httpClient.d.ts +3 -32
  143. package/lib/typescript/module/httpClient.d.ts.map +1 -1
  144. package/lib/typescript/module/index.d.ts +7 -12
  145. package/lib/typescript/module/index.d.ts.map +1 -1
  146. package/lib/typescript/module/native.d.ts +33 -23
  147. package/lib/typescript/module/native.d.ts.map +1 -1
  148. package/lib/typescript/module/pluginHost.d.ts +4 -0
  149. package/lib/typescript/module/pluginHost.d.ts.map +1 -0
  150. package/lib/typescript/module/releaseCatalogCache.d.ts +6 -14
  151. package/lib/typescript/module/releaseCatalogCache.d.ts.map +1 -1
  152. package/lib/typescript/module/sdkVersion.d.ts +1 -1
  153. package/lib/typescript/module/sdkVersion.d.ts.map +1 -1
  154. package/lib/typescript/module/specs/NativeHotUpdater.d.ts +42 -47
  155. package/lib/typescript/module/specs/NativeHotUpdater.d.ts.map +1 -1
  156. package/lib/typescript/module/store.d.ts +1 -3
  157. package/lib/typescript/module/store.d.ts.map +1 -1
  158. package/lib/typescript/module/types.d.ts +1 -1
  159. package/lib/typescript/module/types.d.ts.map +1 -1
  160. package/lib/typescript/module/updateError.d.ts +26 -0
  161. package/lib/typescript/module/updateError.d.ts.map +1 -0
  162. package/lib/typescript/module/wrap.d.ts.map +1 -1
  163. package/lib/typescript/module/wrap.types.d.ts +6 -7
  164. package/lib/typescript/module/wrap.types.d.ts.map +1 -1
  165. package/package.json +7 -4
  166. package/src/appReady.ts +149 -0
  167. package/src/checkForUpdate.ts +152 -89
  168. package/src/clientPlugin.ts +17 -0
  169. package/src/error.ts +4 -14
  170. package/src/fetchJSON.ts +5 -1
  171. package/src/httpClient.ts +78 -157
  172. package/src/index.ts +87 -29
  173. package/src/native.ts +109 -104
  174. package/src/pluginHost.ts +45 -0
  175. package/src/releaseCatalogCache.ts +26 -140
  176. package/src/sdkVersion.ts +1 -1
  177. package/src/specs/NativeHotUpdater.ts +41 -48
  178. package/src/store.ts +2 -23
  179. package/src/types.ts +1 -1
  180. package/src/updateError.ts +153 -0
  181. package/src/wrap.tsx +59 -28
  182. package/src/wrap.types.ts +6 -7
  183. package/android/src/main/java/com/hotupdater/DecompressService.kt +0 -89
  184. package/android/src/main/java/com/hotupdater/DecompressionStrategy.kt +0 -26
  185. package/android/src/main/java/com/hotupdater/TarBrDecompressionStrategy.kt +0 -117
  186. package/android/src/main/java/com/hotupdater/TarGzDecompressionStrategy.kt +0 -117
  187. package/android/src/main/java/com/hotupdater/ZipDecompressionStrategy.kt +0 -192
  188. package/android/src/test/java/com/hotupdater/BsdiffPatchTest.kt +0 -46
  189. package/android/src/test/java/com/hotupdater/BundleFileStorageServiceTest.kt +0 -799
  190. package/android/src/test/java/com/hotupdater/HotUpdaterImplTest.kt +0 -273
  191. package/android/src/test/java/com/hotupdater/NativeConfigUtilsTest.kt +0 -20
  192. package/android/src/test/java/com/hotupdater/OkHttpDownloadServiceTest.kt +0 -111
  193. package/android/src/test/java/com/hotupdater/RelativePathResolverTest.kt +0 -41
  194. package/android/src/test/java/com/hotupdater/ReleaseCatalogCacheServiceTest.kt +0 -118
  195. package/android/src/test/java/com/hotupdater/TarArchiveInputStreamTest.kt +0 -68
  196. package/ios/HotUpdater/Internal/ArchiveExtractionUtilities.swift +0 -178
  197. package/ios/HotUpdater/Internal/DecompressService.swift +0 -112
  198. package/ios/HotUpdater/Internal/DecompressionStrategy.swift +0 -22
  199. package/ios/HotUpdater/Internal/StreamingTarArchiveExtractor.swift +0 -370
  200. package/ios/HotUpdater/Internal/TarBrDecompressionStrategy.swift +0 -39
  201. package/ios/HotUpdater/Internal/TarGzDecompressionStrategy.swift +0 -59
  202. package/ios/HotUpdater/Internal/ZipArchiveExtractor.swift +0 -482
  203. package/ios/HotUpdater/Internal/ZipDecompressionStrategy.swift +0 -56
  204. package/lib/commonjs/catalogCacheNative.spec.js +0 -31
  205. package/lib/commonjs/catalogCacheNative.spec.js.map +0 -1
  206. package/lib/commonjs/checkForUpdate.releaseCatalog.spec.js +0 -604
  207. package/lib/commonjs/checkForUpdate.releaseCatalog.spec.js.map +0 -1
  208. package/lib/commonjs/httpClient.spec.js +0 -102
  209. package/lib/commonjs/httpClient.spec.js.map +0 -1
  210. package/lib/commonjs/index.spec.js +0 -298
  211. package/lib/commonjs/index.spec.js.map +0 -1
  212. package/lib/commonjs/iosInterop.spec.js +0 -18
  213. package/lib/commonjs/iosInterop.spec.js.map +0 -1
  214. package/lib/commonjs/native.spec.js +0 -795
  215. package/lib/commonjs/native.spec.js.map +0 -1
  216. package/lib/commonjs/notifyAppReadyInsights.boundary.spec.js +0 -218
  217. package/lib/commonjs/notifyAppReadyInsights.boundary.spec.js.map +0 -1
  218. package/lib/commonjs/notifyAppReadyInsights.js +0 -133
  219. package/lib/commonjs/notifyAppReadyInsights.js.map +0 -1
  220. package/lib/commonjs/notifyAppReadyInsights.spec.js +0 -246
  221. package/lib/commonjs/notifyAppReadyInsights.spec.js.map +0 -1
  222. package/lib/commonjs/notifyAppReadyInsights.test-utils.js +0 -24
  223. package/lib/commonjs/notifyAppReadyInsights.test-utils.js.map +0 -1
  224. package/lib/commonjs/notifyAppReadyInsights.transport.spec.js +0 -117
  225. package/lib/commonjs/notifyAppReadyInsights.transport.spec.js.map +0 -1
  226. package/lib/commonjs/releaseCatalogCache.spec.js +0 -195
  227. package/lib/commonjs/releaseCatalogCache.spec.js.map +0 -1
  228. package/lib/commonjs/releaseCatalogCacheNativeContract.spec.js +0 -64
  229. package/lib/commonjs/releaseCatalogCacheNativeContract.spec.js.map +0 -1
  230. package/lib/commonjs/store.notification.spec.js +0 -76
  231. package/lib/commonjs/store.notification.spec.js.map +0 -1
  232. package/lib/commonjs/store.spec.js +0 -316
  233. package/lib/commonjs/store.spec.js.map +0 -1
  234. package/lib/commonjs/wrap.spec.js +0 -296
  235. package/lib/commonjs/wrap.spec.js.map +0 -1
  236. package/lib/module/catalogCacheNative.spec.js +0 -31
  237. package/lib/module/catalogCacheNative.spec.js.map +0 -1
  238. package/lib/module/checkForUpdate.releaseCatalog.spec.js +0 -603
  239. package/lib/module/checkForUpdate.releaseCatalog.spec.js.map +0 -1
  240. package/lib/module/httpClient.spec.js +0 -102
  241. package/lib/module/httpClient.spec.js.map +0 -1
  242. package/lib/module/index.spec.js +0 -297
  243. package/lib/module/index.spec.js.map +0 -1
  244. package/lib/module/iosInterop.spec.js +0 -18
  245. package/lib/module/iosInterop.spec.js.map +0 -1
  246. package/lib/module/native.spec.js +0 -794
  247. package/lib/module/native.spec.js.map +0 -1
  248. package/lib/module/notifyAppReadyInsights.boundary.spec.js +0 -217
  249. package/lib/module/notifyAppReadyInsights.boundary.spec.js.map +0 -1
  250. package/lib/module/notifyAppReadyInsights.js +0 -128
  251. package/lib/module/notifyAppReadyInsights.js.map +0 -1
  252. package/lib/module/notifyAppReadyInsights.spec.js +0 -245
  253. package/lib/module/notifyAppReadyInsights.spec.js.map +0 -1
  254. package/lib/module/notifyAppReadyInsights.test-utils.js +0 -18
  255. package/lib/module/notifyAppReadyInsights.test-utils.js.map +0 -1
  256. package/lib/module/notifyAppReadyInsights.transport.spec.js +0 -116
  257. package/lib/module/notifyAppReadyInsights.transport.spec.js.map +0 -1
  258. package/lib/module/releaseCatalogCache.spec.js +0 -195
  259. package/lib/module/releaseCatalogCache.spec.js.map +0 -1
  260. package/lib/module/releaseCatalogCacheNativeContract.spec.js +0 -64
  261. package/lib/module/releaseCatalogCacheNativeContract.spec.js.map +0 -1
  262. package/lib/module/store.notification.spec.js +0 -77
  263. package/lib/module/store.notification.spec.js.map +0 -1
  264. package/lib/module/store.spec.js +0 -315
  265. package/lib/module/store.spec.js.map +0 -1
  266. package/lib/module/wrap.spec.js +0 -295
  267. package/lib/module/wrap.spec.js.map +0 -1
  268. package/lib/typescript/commonjs/notifyAppReadyInsights.d.ts +0 -13
  269. package/lib/typescript/commonjs/notifyAppReadyInsights.d.ts.map +0 -1
  270. package/lib/typescript/commonjs/notifyAppReadyInsights.test-utils.d.ts +0 -8
  271. package/lib/typescript/commonjs/notifyAppReadyInsights.test-utils.d.ts.map +0 -1
  272. package/lib/typescript/module/notifyAppReadyInsights.d.ts +0 -13
  273. package/lib/typescript/module/notifyAppReadyInsights.d.ts.map +0 -1
  274. package/lib/typescript/module/notifyAppReadyInsights.test-utils.d.ts +0 -8
  275. package/lib/typescript/module/notifyAppReadyInsights.test-utils.d.ts.map +0 -1
  276. package/src/catalogCacheNative.spec.ts +0 -63
  277. package/src/checkForUpdate.releaseCatalog.spec.ts +0 -596
  278. package/src/httpClient.spec.ts +0 -132
  279. package/src/index.spec.ts +0 -331
  280. package/src/iosInterop.spec.ts +0 -30
  281. package/src/native.spec.ts +0 -855
  282. package/src/notifyAppReadyInsights.boundary.spec.ts +0 -234
  283. package/src/notifyAppReadyInsights.spec.ts +0 -243
  284. package/src/notifyAppReadyInsights.test-utils.ts +0 -31
  285. package/src/notifyAppReadyInsights.transport.spec.ts +0 -130
  286. package/src/notifyAppReadyInsights.ts +0 -194
  287. package/src/releaseCatalogCache.spec.ts +0 -282
  288. package/src/releaseCatalogCacheNativeContract.spec.ts +0 -80
  289. package/src/store.notification.spec.ts +0 -92
  290. package/src/store.spec.ts +0 -372
  291. package/src/wrap.spec.ts +0 -367
@@ -26,7 +26,7 @@ const areDiffDetailsEqual = (left, right) => {
26
26
  });
27
27
  };
28
28
  const areStatesEqual = (left, right) => {
29
- return left.progress === right.progress && left.downloadedBytes === right.downloadedBytes && left.totalBytes === right.totalBytes && left.isUpdateDownloaded === right.isUpdateDownloaded && left.artifactType === right.artifactType && areDiffDetailsEqual(left.details, right.details);
29
+ return left.progress === right.progress && left.isUpdateDownloaded === right.isUpdateDownloaded && left.artifactType === right.artifactType && areDiffDetailsEqual(left.details, right.details);
30
30
  };
31
31
  const normalizeByteCount = value => {
32
32
  if (typeof value !== "number" || !Number.isFinite(value) || value < 0) {
@@ -40,8 +40,6 @@ const normalizeDownloadPath = value => {
40
40
  const createHotUpdaterStore = () => {
41
41
  let state = {
42
42
  progress: 0,
43
- downloadedBytes: undefined,
44
- totalBytes: undefined,
45
43
  isUpdateDownloaded: false,
46
44
  artifactType: null,
47
45
  details: null
@@ -103,9 +101,6 @@ const createHotUpdaterStore = () => {
103
101
  if (newState.details === undefined) {
104
102
  nextState.details = state.details;
105
103
  }
106
- if (nextState.artifactType !== "diff") {
107
- nextState.details = null;
108
- }
109
104
  if (areStatesEqual(state, nextState)) {
110
105
  return;
111
106
  }
@@ -115,10 +110,8 @@ const createHotUpdaterStore = () => {
115
110
  const applyProgressEvent = event => {
116
111
  setState({
117
112
  artifactType: event.artifactType,
118
- details: event.artifactType === "diff" ? normalizeDiffDetails(event.details) : null,
119
- downloadedBytes: event.artifactType === "archive" ? normalizeByteCount(event.downloadedBytes) : undefined,
120
- progress: event.progress,
121
- totalBytes: event.artifactType === "archive" ? normalizeByteCount(event.totalBytes) : undefined
113
+ details: normalizeDiffDetails(event.details),
114
+ progress: event.progress
122
115
  });
123
116
  };
124
117
  const subscribe = listener => {
@@ -1 +1 @@
1
- {"version":3,"names":["_withSelector","_interopRequireDefault","require","_native","e","__esModule","default","useSyncExternalStoreWithSelector","useSyncExternalStoreExports","areDiffDetailsEqual","left","right","totalFilesCount","completedFilesCount","files","length","every","leftFile","index","rightFile","undefined","order","path","downloadPath","downloadedBytes","progress","status","totalBytes","areStatesEqual","isUpdateDownloaded","artifactType","details","normalizeByteCount","value","Number","isFinite","Math","round","normalizeDownloadPath","createHotUpdaterStore","state","getSnapshot","listeners","Set","isEmitScheduled","emitChange","scheduleFrame","requestAnimationFrame","callback","listener","normalizeDiffDetails","max","normalizedFiles","map","file","min","sort","setState","newState","nextState","applyProgressEvent","event","subscribe","add","delete","addListener","hotUpdaterStore","exports","useHotUpdaterStore","selector","snapshot"],"sourceRoot":"../../src","sources":["store.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_withSelector","_interopRequireDefault","require","_native","e","__esModule","default","useSyncExternalStoreWithSelector","useSyncExternalStoreExports","areDiffDetailsEqual","left","right","totalFilesCount","completedFilesCount","files","length","every","leftFile","index","rightFile","undefined","order","path","downloadPath","downloadedBytes","progress","status","totalBytes","areStatesEqual","isUpdateDownloaded","artifactType","details","normalizeByteCount","value","Number","isFinite","Math","round","normalizeDownloadPath","createHotUpdaterStore","state","getSnapshot","listeners","Set","isEmitScheduled","emitChange","scheduleFrame","requestAnimationFrame","callback","listener","normalizeDiffDetails","max","normalizedFiles","map","file","min","sort","setState","newState","nextState","applyProgressEvent","event","subscribe","add","delete","addListener","hotUpdaterStore","exports","useHotUpdaterStore","selector","snapshot"],"sourceRoot":"../../src","sources":["store.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.classifyUpdateError = exports.UpdateHttpError = exports.InvalidUpdateResponseError = void 0;
7
+ var _error = require("./error.js");
8
+ /**
9
+ * A response the SDK cannot use: a malformed or stale catalog, an artifact
10
+ * in another protocol, or an invalid URL.
11
+ */
12
+ class InvalidUpdateResponseError extends _error.HotUpdaterError {
13
+ constructor(message, options) {
14
+ super(message);
15
+ this.name = "InvalidUpdateResponseError";
16
+ if (options?.cause !== undefined) this.cause = options.cause;
17
+ }
18
+ }
19
+
20
+ /** A request the server answered with a status the SDK does not accept. */
21
+ exports.InvalidUpdateResponseError = InvalidUpdateResponseError;
22
+ class UpdateHttpError extends _error.HotUpdaterError {
23
+ constructor(status, statusText) {
24
+ super(`Request failed with HTTP ${status}${statusText ? ` ${statusText}` : ""}`);
25
+ this.status = status;
26
+ this.name = "UpdateHttpError";
27
+ }
28
+ }
29
+ exports.UpdateHttpError = UpdateHttpError;
30
+ const STAGES = ["check", "download", "install"];
31
+ const REASONS = ["network", "http", "invalid_response", "hash_mismatch", "signature", "patch", "extract", "storage", "unknown"];
32
+ const RESOURCES = ["catalog", "artifact", "manifest", "file", "patch", "archive"];
33
+ const TRANSPORTS = ["timeout", "dns", "tls", "connection", "offline", "cancelled"];
34
+ /** An S3, R2, or GCS error code: letters, digits, and punctuation only. */
35
+ const ORIGIN_CODE = /^[A-Za-z0-9._-]{1,64}$/;
36
+ const oneOf = (values, value) => values.includes(value);
37
+ const readNativeClassification = error => {
38
+ if (!("code" in error) || typeof error.code !== "string") return undefined;
39
+ const userInfo = "userInfo" in error && typeof error.userInfo === "object" ? error.userInfo : null;
40
+ const {
41
+ stage,
42
+ reason,
43
+ resource,
44
+ transport,
45
+ originCode
46
+ } = userInfo ?? {};
47
+ // Native classifies every failure of its download and install; a rejection
48
+ // without it, such as a stale selection, is not an update failure.
49
+ if (!oneOf(STAGES, stage) || !oneOf(REASONS, reason)) return null;
50
+ const httpStatus = Number(userInfo?.httpStatus);
51
+ return {
52
+ stage,
53
+ reason,
54
+ ...(oneOf(RESOURCES, resource) ? {
55
+ resource
56
+ } : {}),
57
+ ...(reason === "http" && Number.isSafeInteger(httpStatus) ? {
58
+ httpStatus
59
+ } : {}),
60
+ ...(reason === "http" && typeof originCode === "string" && ORIGIN_CODE.test(originCode) ? {
61
+ originCode
62
+ } : {}),
63
+ ...(reason === "network" && oneOf(TRANSPORTS, transport) ? {
64
+ transport
65
+ } : {})
66
+ };
67
+ };
68
+
69
+ /**
70
+ * Where and why an update failed, or null when the error is not an update
71
+ * failure. Native rejections carry their own classification; an error the
72
+ * SDK's JavaScript raised happened in `stage`, fetching `resource` when one
73
+ * is given.
74
+ */
75
+ const classifyUpdateError = (error, stage, resource) => {
76
+ if (typeof error === "object" && error !== null) {
77
+ const native = readNativeClassification(error);
78
+ if (native !== undefined) return native;
79
+ }
80
+ const scope = {
81
+ stage,
82
+ ...(resource === undefined ? {} : {
83
+ resource
84
+ })
85
+ };
86
+ // Names, not classes, so an error from another copy of a module still
87
+ // classifies, as it does across test module resets.
88
+ const name = error instanceof Error ? error.name : null;
89
+ // A selection that became stale is a race between checks, not a failure.
90
+ if (name === "StaleReleaseCatalogError") return null;
91
+ if (name === "UpdateHttpError") {
92
+ return {
93
+ ...scope,
94
+ reason: "http",
95
+ httpStatus: error.status
96
+ };
97
+ }
98
+ if (name === "InvalidUpdateResponseError" || name === "SyntaxError") {
99
+ return {
100
+ ...scope,
101
+ reason: "invalid_response"
102
+ };
103
+ }
104
+ if (error instanceof Error && error.message === "Request timed out") {
105
+ return {
106
+ ...scope,
107
+ reason: "network",
108
+ transport: "timeout"
109
+ };
110
+ }
111
+ if (name === "AbortError") {
112
+ return {
113
+ ...scope,
114
+ reason: "network",
115
+ transport: "cancelled"
116
+ };
117
+ }
118
+ if (name === "TypeError") {
119
+ // fetch rejects with a TypeError when no response arrives, without
120
+ // saying why.
121
+ return {
122
+ ...scope,
123
+ reason: "network"
124
+ };
125
+ }
126
+ return {
127
+ ...scope,
128
+ reason: "unknown"
129
+ };
130
+ };
131
+ exports.classifyUpdateError = classifyUpdateError;
132
+ //# sourceMappingURL=updateError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_error","require","InvalidUpdateResponseError","HotUpdaterError","constructor","message","options","name","cause","undefined","exports","UpdateHttpError","status","statusText","STAGES","REASONS","RESOURCES","TRANSPORTS","ORIGIN_CODE","oneOf","values","value","includes","readNativeClassification","error","code","userInfo","stage","reason","resource","transport","originCode","httpStatus","Number","isSafeInteger","test","classifyUpdateError","native","scope","Error"],"sourceRoot":"../../src","sources":["updateError.ts"],"mappings":"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","ignoreList":[]}
@@ -6,45 +6,70 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.init = init;
7
7
  exports.wrap = wrap;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
+ var _appReady = require("./appReady.js");
9
10
  var _checkForUpdate = require("./checkForUpdate.js");
10
11
  var _useEventCallback = require("./hooks/useEventCallback.js");
11
12
  var _native = require("./native.js");
12
- var _notifyAppReadyInsights = require("./notifyAppReadyInsights.js");
13
13
  var _store = require("./store.js");
14
14
  var _jsxRuntime = require("react/jsx-runtime");
15
15
  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); }
16
16
  function init(options) {
17
- void (0, _notifyAppReadyInsights.handleNotifyAppReady)(options);
17
+ void (0, _appReady.handleNotifyAppReady)(options);
18
18
  }
19
19
  function wrap(options) {
20
20
  const {
21
21
  reloadOnForceUpdate = true,
22
22
  ...restOptions
23
23
  } = options;
24
+
25
+ // Progress is subscribed only where it is rendered or reported, so progress
26
+ // events don't re-render the wrapped app.
27
+ const ProgressReporter = ({
28
+ onProgress
29
+ }) => {
30
+ const progress = (0, _store.useHotUpdaterStore)(state => state.progress);
31
+ (0, _react.useEffect)(() => {
32
+ onProgress(progress);
33
+ }, [progress]);
34
+ return null;
35
+ };
36
+ const FallbackWithProgress = ({
37
+ Fallback,
38
+ status,
39
+ message
40
+ }) => {
41
+ const progressState = (0, _store.useHotUpdaterStore)(state => state);
42
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Fallback, {
43
+ artifactType: progressState.artifactType,
44
+ details: progressState.details,
45
+ progress: progressState.progress,
46
+ status: status,
47
+ message: message
48
+ });
49
+ };
24
50
  return WrappedComponent => {
25
51
  const HotUpdaterHOC = props => {
26
- const progressState = (0, _store.useHotUpdaterStore)(state => state);
27
- const progress = progressState.progress;
28
52
  const [message, setMessage] = (0, _react.useState)(null);
29
53
  const [updateStatus, setUpdateStatus] = (0, _react.useState)("CHECK_FOR_UPDATE");
30
54
  const initHotUpdater = (0, _useEventCallback.useEventCallback)(async () => {
31
55
  try {
32
56
  setUpdateStatus("CHECK_FOR_UPDATE");
57
+ const readiness = (0, _appReady.handleNotifyAppReady)(restOptions);
33
58
  const updateInfo = await (0, _checkForUpdate.checkForUpdate)({
34
- insights: restOptions.insights,
35
59
  client: restOptions.client,
36
60
  updateStrategy: restOptions.updateStrategy,
37
61
  requestHeaders: restOptions.requestHeaders,
38
62
  requestTimeout: restOptions.requestTimeout,
39
63
  onError: restOptions.onError
40
64
  });
65
+ await readiness;
41
66
  setMessage(updateInfo?.message ?? null);
42
67
  if (!updateInfo) {
43
68
  restOptions.onUpdateProcessCompleted?.({
44
69
  status: "UP_TO_DATE",
45
70
  shouldForceUpdate: false,
46
71
  message: null,
47
- id: (0, _native.getBundleId)()
72
+ id: (0, _native.getUpdateId)()
48
73
  });
49
74
  setUpdateStatus("UPDATE_PROCESS_COMPLETED");
50
75
  return;
@@ -84,34 +109,26 @@ function wrap(options) {
84
109
  setUpdateStatus("UPDATE_PROCESS_COMPLETED");
85
110
  }
86
111
  });
87
- (0, _react.useEffect)(() => {
88
- restOptions.onProgress?.(progress);
89
- }, [progress]);
90
-
91
- // Read the native launch report after the first render commit.
92
- (0, _react.useEffect)(() => {
93
- void (0, _notifyAppReadyInsights.handleNotifyAppReady)(restOptions);
94
- }, []);
95
112
 
96
113
  // Start update check
97
114
  (0, _react.useEffect)(() => {
98
115
  initHotUpdater();
99
116
  }, []);
100
- if (restOptions.fallbackComponent && updateStatus !== "UPDATE_PROCESS_COMPLETED") {
101
- const Fallback = restOptions.fallbackComponent;
102
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(Fallback, {
103
- artifactType: progressState.artifactType,
104
- details: progressState.details,
105
- downloadedBytes: progressState.downloadedBytes,
106
- progress: progress,
107
- status: updateStatus,
108
- message: message,
109
- totalBytes: progressState.totalBytes
110
- });
111
- }
112
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(WrappedComponent, {
117
+ const content = restOptions.fallbackComponent && updateStatus !== "UPDATE_PROCESS_COMPLETED" ? /*#__PURE__*/(0, _jsxRuntime.jsx)(FallbackWithProgress, {
118
+ Fallback: restOptions.fallbackComponent,
119
+ status: updateStatus,
120
+ message: message
121
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(WrappedComponent, {
113
122
  ...props
114
123
  });
124
+ if (!restOptions.onProgress) {
125
+ return content;
126
+ }
127
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
128
+ children: [content, /*#__PURE__*/(0, _jsxRuntime.jsx)(ProgressReporter, {
129
+ onProgress: restOptions.onProgress
130
+ })]
131
+ });
115
132
  };
116
133
  return HotUpdaterHOC;
117
134
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_checkForUpdate","_useEventCallback","_native","_notifyAppReadyInsights","_store","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","init","options","handleNotifyAppReady","wrap","reloadOnForceUpdate","restOptions","WrappedComponent","HotUpdaterHOC","props","progressState","useHotUpdaterStore","state","progress","message","setMessage","useState","updateStatus","setUpdateStatus","initHotUpdater","useEventCallback","updateInfo","checkForUpdate","insights","client","updateStrategy","requestHeaders","requestTimeout","onError","onUpdateProcessCompleted","status","shouldForceUpdate","id","getBundleId","updateBundle","catch","error","isSuccess","Error","reload","normalizedError","String","useEffect","onProgress","fallbackComponent","Fallback","jsx","artifactType","details","downloadedBytes","totalBytes"],"sourceRoot":"../../src","sources":["wrap.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_appReady","_checkForUpdate","_useEventCallback","_native","_store","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","init","options","handleNotifyAppReady","wrap","reloadOnForceUpdate","restOptions","ProgressReporter","onProgress","progress","useHotUpdaterStore","state","useEffect","FallbackWithProgress","Fallback","status","message","progressState","jsx","artifactType","details","WrappedComponent","HotUpdaterHOC","props","setMessage","useState","updateStatus","setUpdateStatus","initHotUpdater","useEventCallback","readiness","updateInfo","checkForUpdate","client","updateStrategy","requestHeaders","requestTimeout","onError","onUpdateProcessCompleted","shouldForceUpdate","id","getUpdateId","updateBundle","catch","error","isSuccess","Error","reload","normalizedError","String","content","fallbackComponent","jsxs","Fragment","children"],"sourceRoot":"../../src","sources":["wrap.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+
3
+ import { getActiveUpdateState, getBundleId, getChannel, readNotifyAppReady } from "./native.js";
4
+ import { buildPluginEvent, dispatchPluginHook, emitPluginHook } from "./pluginHost.js";
5
+ let didEmitAppReady = false;
6
+ /** Settles once this runtime's launch was read, whether it was reported or failed. */
7
+ let appReadyRead = null;
8
+ /** Why the previous main process exited, read with this runtime's launch. */
9
+ let previousProcessExit = null;
10
+
11
+ /** Android 11+: why the app's previous main process exited, once the launch was read. */
12
+ export const getPreviousProcessExit = () => previousProcessExit;
13
+ const waitForNextFrame = () => new Promise(resolve => {
14
+ const requestAnimationFrame = globalThis?.requestAnimationFrame;
15
+ if (requestAnimationFrame) {
16
+ requestAnimationFrame(() => resolve());
17
+ return;
18
+ }
19
+ void Promise.resolve().then(resolve);
20
+ });
21
+
22
+ /**
23
+ * The Release the running bundle was selected as: the active or stable
24
+ * selection that names it on the current channel.
25
+ */
26
+ export const getRunningReleaseId = (bundleId, channel) => {
27
+ const state = getActiveUpdateState();
28
+ return [state.activeSelection, state.stableSelection].find(selection => selection?.bundleId === bundleId && selection.channel === channel)?.releaseId ?? null;
29
+ };
30
+ const toAppReadyResult = (result, transition) => {
31
+ const channel = getChannel();
32
+ if (result.status === "UNCHANGED") {
33
+ const bundleId = getBundleId();
34
+ return {
35
+ status: "UNCHANGED",
36
+ channel,
37
+ bundleId,
38
+ releaseId: getRunningReleaseId(bundleId, channel),
39
+ previousProcessExit
40
+ };
41
+ }
42
+ // Native persists the transition with every applied or recovered launch;
43
+ // a report without it cannot say what moved.
44
+ if (transition === null) return null;
45
+ return {
46
+ status: transition.type,
47
+ channel,
48
+ fromBundleId: transition.fromBundleId,
49
+ fromReleaseId: transition.fromReleaseId,
50
+ toBundleId: transition.toBundleId,
51
+ toReleaseId: transition.toReleaseId,
52
+ updateStrategy: transition.updateStrategy,
53
+ previousProcessExit
54
+ };
55
+ };
56
+ const notifyAppReady = async options => {
57
+ try {
58
+ let nativeReadResult;
59
+ do {
60
+ await waitForNextFrame();
61
+ nativeReadResult = readNotifyAppReady();
62
+ } while (nativeReadResult.pending);
63
+ const {
64
+ result,
65
+ transition
66
+ } = nativeReadResult;
67
+ previousProcessExit = nativeReadResult.previousProcessExit;
68
+ if (!didEmitAppReady) {
69
+ didEmitAppReady = true;
70
+ emitPluginHook("onAppReady", () => toAppReadyResult(result, transition));
71
+ }
72
+ options.onNotifyAppReady?.(result);
73
+ return result;
74
+ } catch (error) {
75
+ const normalizedError = error instanceof Error ? error : new Error(String(error));
76
+ options.onError?.(error);
77
+ console.warn("[HotUpdater] Failed to notify app ready:", normalizedError);
78
+ return undefined;
79
+ }
80
+ };
81
+
82
+ /** Reads this runtime's launch once native finalizes it and reports it to plugins. */
83
+ export const handleNotifyAppReady = options => {
84
+ const readiness = notifyAppReady(options);
85
+ appReadyRead ??= readiness;
86
+ return readiness;
87
+ };
88
+
89
+ /**
90
+ * Calls a plugin hook after this runtime's `onAppReady`, so plugins see the
91
+ * launch before anything that followed it. The event is built now, from the
92
+ * state it describes, and only when a plugin listens.
93
+ */
94
+ export const emitAfterAppReady = (name, createPayload) => {
95
+ const payload = buildPluginEvent(name, createPayload);
96
+ if (payload === null) return;
97
+ if (appReadyRead === null) {
98
+ dispatchPluginHook(name, payload);
99
+ return;
100
+ }
101
+ void appReadyRead.then(() => dispatchPluginHook(name, payload));
102
+ };
103
+ //# sourceMappingURL=appReady.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getActiveUpdateState","getBundleId","getChannel","readNotifyAppReady","buildPluginEvent","dispatchPluginHook","emitPluginHook","didEmitAppReady","appReadyRead","previousProcessExit","getPreviousProcessExit","waitForNextFrame","Promise","resolve","requestAnimationFrame","globalThis","then","getRunningReleaseId","bundleId","channel","state","activeSelection","stableSelection","find","selection","releaseId","toAppReadyResult","result","transition","status","type","fromBundleId","fromReleaseId","toBundleId","toReleaseId","updateStrategy","notifyAppReady","options","nativeReadResult","pending","onNotifyAppReady","error","normalizedError","Error","String","onError","console","warn","undefined","handleNotifyAppReady","readiness","emitAfterAppReady","name","createPayload","payload"],"sourceRoot":"../../src","sources":["appReady.ts"],"mappings":"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","ignoreList":[]}