@hot-updater/react-native 1.0.0-rc.4 → 1.0.0-rc.41

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 (317) hide show
  1. package/android/build.gradle +13 -2
  2. package/android/proguard-rules.pro +8 -2
  3. package/android/src/bridge/BridgeReactInstance.kt +38 -0
  4. package/android/src/bridgeless/BridgeReactInstance.kt +24 -0
  5. package/android/src/main/java/com/hotupdater/ActivityStartGate.kt +94 -0
  6. package/android/src/main/java/com/hotupdater/BuiltInAssetResolver.kt +286 -0
  7. package/android/src/main/java/com/hotupdater/BundleFileStorageService.kt +1064 -844
  8. package/android/src/main/java/com/hotupdater/BundleMetadata.kt +50 -11
  9. package/android/src/main/java/com/hotupdater/FileManagerService.kt +45 -0
  10. package/android/src/main/java/com/hotupdater/HotUpdaterException.kt +287 -22
  11. package/android/src/main/java/com/hotupdater/HotUpdaterImpl.kt +46 -30
  12. package/android/src/main/java/com/hotupdater/HotUpdaterRecoveryManager.kt +75 -192
  13. package/android/src/main/java/com/hotupdater/HotUpdaterRecoveryState.kt +64 -0
  14. package/android/src/main/java/com/hotupdater/InstallIdentityService.kt +37 -0
  15. package/android/src/main/java/com/hotupdater/KeyValueStorageService.kt +86 -0
  16. package/android/src/main/java/com/hotupdater/NetworkState.kt +31 -0
  17. package/android/src/main/java/com/hotupdater/NoBackupStorage.kt +17 -0
  18. package/android/src/main/java/com/hotupdater/OkHttpDownloadService.kt +127 -50
  19. package/android/src/main/java/com/hotupdater/ReactNativeValueConverters.kt +34 -0
  20. package/android/src/main/java/com/hotupdater/TarArchiveInputStream.kt +214 -375
  21. package/android/src/main/java/com/hotupdater/TarBrArchiveExtractor.kt +119 -0
  22. package/android/src/newarch/HotUpdater.kt +7 -9
  23. package/android/src/newarch/HotUpdaterModule.kt +109 -84
  24. package/android/src/newarch/JavaScriptExceptionHooks.kt +48 -0
  25. package/android/src/newarch/ReactIntegrationManager.kt +6 -32
  26. package/android/src/oldarch/HotUpdater.kt +7 -9
  27. package/android/src/oldarch/HotUpdaterModule.kt +98 -74
  28. package/android/src/oldarch/HotUpdaterSpec.kt +4 -6
  29. package/android/src/oldarch/JavaScriptExceptionHooks.kt +71 -0
  30. package/ios/HotUpdater/Internal/BrotliFileDecompressor.swift +167 -0
  31. package/ios/HotUpdater/Internal/BuiltInAssetResolver.swift +196 -0
  32. package/ios/HotUpdater/Internal/BundleFileStorageService.swift +1032 -1116
  33. package/ios/HotUpdater/Internal/BundleMetadata.swift +61 -54
  34. package/ios/HotUpdater/Internal/FileManagerService.swift +48 -0
  35. package/ios/HotUpdater/Internal/FileUtilities.swift +64 -0
  36. package/ios/HotUpdater/Internal/HotUpdater-Bridging-Header.h +0 -1
  37. package/ios/HotUpdater/Internal/HotUpdater.mm +32 -67
  38. package/ios/HotUpdater/Internal/HotUpdaterImpl.swift +229 -73
  39. package/ios/HotUpdater/Internal/KeyValueStorageService.swift +71 -0
  40. package/ios/HotUpdater/Internal/NotificationExtension.swift +0 -2
  41. package/ios/HotUpdater/Internal/TarArchiveExtractor.swift +182 -311
  42. package/ios/HotUpdater/Internal/URLSessionDownloadService.swift +119 -71
  43. package/ios/HotUpdater/Internal/UpdateFailure.swift +390 -0
  44. package/ios/HotUpdater/Recovery/HotUpdaterRecovery.h +16 -0
  45. package/ios/HotUpdater/Recovery/HotUpdaterRecovery.mm +83 -0
  46. package/ios/HotUpdater/Recovery/HotUpdaterRecoveryHooks.mm +49 -0
  47. package/lib/commonjs/appReady.js +96 -0
  48. package/lib/commonjs/appReady.js.map +1 -0
  49. package/lib/commonjs/checkForUpdate.js +121 -69
  50. package/lib/commonjs/checkForUpdate.js.map +1 -1
  51. package/lib/commonjs/clientPlugin.js +13 -0
  52. package/lib/commonjs/clientPlugin.js.map +1 -0
  53. package/lib/commonjs/error.js +5 -14
  54. package/lib/commonjs/error.js.map +1 -1
  55. package/lib/commonjs/fetchJSON.js +16 -27
  56. package/lib/commonjs/fetchJSON.js.map +1 -1
  57. package/lib/commonjs/fetchUpdateResponse.js +60 -0
  58. package/lib/commonjs/fetchUpdateResponse.js.map +1 -0
  59. package/lib/commonjs/httpClient.js +64 -95
  60. package/lib/commonjs/httpClient.js.map +1 -1
  61. package/lib/commonjs/index.js +355 -324
  62. package/lib/commonjs/index.js.map +1 -1
  63. package/lib/commonjs/init.types.js +6 -0
  64. package/lib/commonjs/init.types.js.map +1 -0
  65. package/lib/commonjs/native.js +77 -63
  66. package/lib/commonjs/native.js.map +1 -1
  67. package/lib/commonjs/pluginHost.js +41 -0
  68. package/lib/commonjs/pluginHost.js.map +1 -0
  69. package/lib/commonjs/releaseCatalogCache.js +36 -87
  70. package/lib/commonjs/releaseCatalogCache.js.map +1 -1
  71. package/lib/commonjs/sdkVersion.js +1 -1
  72. package/lib/commonjs/sdkVersion.js.map +1 -1
  73. package/lib/commonjs/specs/NativeHotUpdater.js.map +1 -1
  74. package/lib/commonjs/store.js +3 -10
  75. package/lib/commonjs/store.js.map +1 -1
  76. package/lib/commonjs/updateError.js +145 -0
  77. package/lib/commonjs/updateError.js.map +1 -0
  78. package/lib/commonjs/wrap.js +46 -38
  79. package/lib/commonjs/wrap.js.map +1 -1
  80. package/lib/module/appReady.js +90 -0
  81. package/lib/module/appReady.js.map +1 -0
  82. package/lib/module/checkForUpdate.js +114 -64
  83. package/lib/module/checkForUpdate.js.map +1 -1
  84. package/lib/module/clientPlugin.js +4 -0
  85. package/lib/module/clientPlugin.js.map +1 -0
  86. package/lib/module/error.js +5 -14
  87. package/lib/module/error.js.map +1 -1
  88. package/lib/module/fetchJSON.js +14 -26
  89. package/lib/module/fetchJSON.js.map +1 -1
  90. package/lib/module/fetchUpdateResponse.js +55 -0
  91. package/lib/module/fetchUpdateResponse.js.map +1 -0
  92. package/lib/module/httpClient.js +63 -94
  93. package/lib/module/httpClient.js.map +1 -1
  94. package/lib/module/index.js +335 -327
  95. package/lib/module/index.js.map +1 -1
  96. package/lib/module/init.types.js +4 -0
  97. package/lib/module/init.types.js.map +1 -0
  98. package/lib/module/native.js +70 -56
  99. package/lib/module/native.js.map +1 -1
  100. package/lib/module/pluginHost.js +36 -0
  101. package/lib/module/pluginHost.js.map +1 -0
  102. package/lib/module/releaseCatalogCache.js +32 -82
  103. package/lib/module/releaseCatalogCache.js.map +1 -1
  104. package/lib/module/sdkVersion.js +1 -1
  105. package/lib/module/sdkVersion.js.map +1 -1
  106. package/lib/module/specs/NativeHotUpdater.js.map +1 -1
  107. package/lib/module/store.js +3 -10
  108. package/lib/module/store.js.map +1 -1
  109. package/lib/module/updateError.js +139 -0
  110. package/lib/module/updateError.js.map +1 -0
  111. package/lib/module/wrap.js +47 -38
  112. package/lib/module/wrap.js.map +1 -1
  113. package/lib/typescript/commonjs/appReady.d.ts +30 -0
  114. package/lib/typescript/commonjs/appReady.d.ts.map +1 -0
  115. package/lib/typescript/commonjs/checkForUpdate.d.ts +20 -6
  116. package/lib/typescript/commonjs/checkForUpdate.d.ts.map +1 -1
  117. package/lib/typescript/commonjs/clientPlugin.d.ts +2 -0
  118. package/lib/typescript/commonjs/clientPlugin.d.ts.map +1 -0
  119. package/lib/typescript/commonjs/error.d.ts +5 -14
  120. package/lib/typescript/commonjs/error.d.ts.map +1 -1
  121. package/lib/typescript/commonjs/fetchJSON.d.ts +5 -5
  122. package/lib/typescript/commonjs/fetchJSON.d.ts.map +1 -1
  123. package/lib/typescript/commonjs/fetchUpdateResponse.d.ts +14 -0
  124. package/lib/typescript/commonjs/fetchUpdateResponse.d.ts.map +1 -0
  125. package/lib/typescript/commonjs/httpClient.d.ts +5 -34
  126. package/lib/typescript/commonjs/httpClient.d.ts.map +1 -1
  127. package/lib/typescript/commonjs/index.d.ts +124 -116
  128. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  129. package/lib/typescript/commonjs/init.types.d.ts +21 -0
  130. package/lib/typescript/commonjs/init.types.d.ts.map +1 -0
  131. package/lib/typescript/commonjs/native.d.ts +32 -25
  132. package/lib/typescript/commonjs/native.d.ts.map +1 -1
  133. package/lib/typescript/commonjs/pluginHost.d.ts +8 -0
  134. package/lib/typescript/commonjs/pluginHost.d.ts.map +1 -0
  135. package/lib/typescript/commonjs/releaseCatalogCache.d.ts +8 -14
  136. package/lib/typescript/commonjs/releaseCatalogCache.d.ts.map +1 -1
  137. package/lib/typescript/commonjs/sdkVersion.d.ts +1 -1
  138. package/lib/typescript/commonjs/sdkVersion.d.ts.map +1 -1
  139. package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts +35 -47
  140. package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts.map +1 -1
  141. package/lib/typescript/commonjs/store.d.ts +1 -3
  142. package/lib/typescript/commonjs/store.d.ts.map +1 -1
  143. package/lib/typescript/commonjs/types.d.ts +1 -1
  144. package/lib/typescript/commonjs/types.d.ts.map +1 -1
  145. package/lib/typescript/commonjs/updateError.d.ts +26 -0
  146. package/lib/typescript/commonjs/updateError.d.ts.map +1 -0
  147. package/lib/typescript/commonjs/wrap.d.ts +2 -3
  148. package/lib/typescript/commonjs/wrap.d.ts.map +1 -1
  149. package/lib/typescript/commonjs/wrap.types.d.ts +13 -41
  150. package/lib/typescript/commonjs/wrap.types.d.ts.map +1 -1
  151. package/lib/typescript/module/appReady.d.ts +30 -0
  152. package/lib/typescript/module/appReady.d.ts.map +1 -0
  153. package/lib/typescript/module/checkForUpdate.d.ts +20 -6
  154. package/lib/typescript/module/checkForUpdate.d.ts.map +1 -1
  155. package/lib/typescript/module/clientPlugin.d.ts +2 -0
  156. package/lib/typescript/module/clientPlugin.d.ts.map +1 -0
  157. package/lib/typescript/module/error.d.ts +5 -14
  158. package/lib/typescript/module/error.d.ts.map +1 -1
  159. package/lib/typescript/module/fetchJSON.d.ts +5 -5
  160. package/lib/typescript/module/fetchJSON.d.ts.map +1 -1
  161. package/lib/typescript/module/fetchUpdateResponse.d.ts +14 -0
  162. package/lib/typescript/module/fetchUpdateResponse.d.ts.map +1 -0
  163. package/lib/typescript/module/httpClient.d.ts +5 -34
  164. package/lib/typescript/module/httpClient.d.ts.map +1 -1
  165. package/lib/typescript/module/index.d.ts +124 -116
  166. package/lib/typescript/module/index.d.ts.map +1 -1
  167. package/lib/typescript/module/init.types.d.ts +21 -0
  168. package/lib/typescript/module/init.types.d.ts.map +1 -0
  169. package/lib/typescript/module/native.d.ts +32 -25
  170. package/lib/typescript/module/native.d.ts.map +1 -1
  171. package/lib/typescript/module/pluginHost.d.ts +8 -0
  172. package/lib/typescript/module/pluginHost.d.ts.map +1 -0
  173. package/lib/typescript/module/releaseCatalogCache.d.ts +8 -14
  174. package/lib/typescript/module/releaseCatalogCache.d.ts.map +1 -1
  175. package/lib/typescript/module/sdkVersion.d.ts +1 -1
  176. package/lib/typescript/module/sdkVersion.d.ts.map +1 -1
  177. package/lib/typescript/module/specs/NativeHotUpdater.d.ts +35 -47
  178. package/lib/typescript/module/specs/NativeHotUpdater.d.ts.map +1 -1
  179. package/lib/typescript/module/store.d.ts +1 -3
  180. package/lib/typescript/module/store.d.ts.map +1 -1
  181. package/lib/typescript/module/types.d.ts +1 -1
  182. package/lib/typescript/module/types.d.ts.map +1 -1
  183. package/lib/typescript/module/updateError.d.ts +26 -0
  184. package/lib/typescript/module/updateError.d.ts.map +1 -0
  185. package/lib/typescript/module/wrap.d.ts +2 -3
  186. package/lib/typescript/module/wrap.d.ts.map +1 -1
  187. package/lib/typescript/module/wrap.types.d.ts +13 -41
  188. package/lib/typescript/module/wrap.types.d.ts.map +1 -1
  189. package/package.json +8 -4
  190. package/src/appReady.ts +147 -0
  191. package/src/checkForUpdate.ts +156 -89
  192. package/src/clientPlugin.ts +21 -0
  193. package/src/error.ts +5 -15
  194. package/src/fetchJSON.ts +14 -30
  195. package/src/fetchUpdateResponse.ts +60 -0
  196. package/src/httpClient.ts +89 -160
  197. package/src/index.ts +413 -425
  198. package/src/init.types.ts +24 -0
  199. package/src/native.ts +101 -105
  200. package/src/pluginHost.ts +52 -0
  201. package/src/releaseCatalogCache.ts +43 -172
  202. package/src/sdkVersion.ts +1 -1
  203. package/src/specs/NativeHotUpdater.ts +34 -48
  204. package/src/store.ts +2 -23
  205. package/src/types.ts +1 -1
  206. package/src/updateError.ts +167 -0
  207. package/src/wrap.tsx +60 -43
  208. package/src/wrap.types.ts +18 -46
  209. package/android/src/main/java/com/hotupdater/DecompressService.kt +0 -89
  210. package/android/src/main/java/com/hotupdater/DecompressionStrategy.kt +0 -26
  211. package/android/src/main/java/com/hotupdater/TarBrDecompressionStrategy.kt +0 -117
  212. package/android/src/main/java/com/hotupdater/TarGzDecompressionStrategy.kt +0 -117
  213. package/android/src/main/java/com/hotupdater/ZipDecompressionStrategy.kt +0 -192
  214. package/android/src/test/java/com/hotupdater/BsdiffPatchTest.kt +0 -46
  215. package/android/src/test/java/com/hotupdater/BundleFileStorageServiceTest.kt +0 -799
  216. package/android/src/test/java/com/hotupdater/HotUpdaterImplTest.kt +0 -273
  217. package/android/src/test/java/com/hotupdater/NativeConfigUtilsTest.kt +0 -20
  218. package/android/src/test/java/com/hotupdater/OkHttpDownloadServiceTest.kt +0 -111
  219. package/android/src/test/java/com/hotupdater/RelativePathResolverTest.kt +0 -41
  220. package/android/src/test/java/com/hotupdater/ReleaseCatalogCacheServiceTest.kt +0 -118
  221. package/android/src/test/java/com/hotupdater/TarArchiveInputStreamTest.kt +0 -68
  222. package/ios/HotUpdater/Internal/ArchiveExtractionUtilities.swift +0 -178
  223. package/ios/HotUpdater/Internal/DecompressService.swift +0 -112
  224. package/ios/HotUpdater/Internal/DecompressionStrategy.swift +0 -22
  225. package/ios/HotUpdater/Internal/StreamingTarArchiveExtractor.swift +0 -370
  226. package/ios/HotUpdater/Internal/TarBrDecompressionStrategy.swift +0 -39
  227. package/ios/HotUpdater/Internal/TarGzDecompressionStrategy.swift +0 -59
  228. package/ios/HotUpdater/Internal/ZipArchiveExtractor.swift +0 -482
  229. package/ios/HotUpdater/Internal/ZipDecompressionStrategy.swift +0 -56
  230. package/lib/commonjs/catalogCacheNative.spec.js +0 -31
  231. package/lib/commonjs/catalogCacheNative.spec.js.map +0 -1
  232. package/lib/commonjs/checkForUpdate.releaseCatalog.spec.js +0 -616
  233. package/lib/commonjs/checkForUpdate.releaseCatalog.spec.js.map +0 -1
  234. package/lib/commonjs/httpClient.spec.js +0 -102
  235. package/lib/commonjs/httpClient.spec.js.map +0 -1
  236. package/lib/commonjs/index.spec.js +0 -302
  237. package/lib/commonjs/index.spec.js.map +0 -1
  238. package/lib/commonjs/iosInterop.spec.js +0 -18
  239. package/lib/commonjs/iosInterop.spec.js.map +0 -1
  240. package/lib/commonjs/native.spec.js +0 -883
  241. package/lib/commonjs/native.spec.js.map +0 -1
  242. package/lib/commonjs/notifyAppReadyInsights.boundary.spec.js +0 -218
  243. package/lib/commonjs/notifyAppReadyInsights.boundary.spec.js.map +0 -1
  244. package/lib/commonjs/notifyAppReadyInsights.js +0 -133
  245. package/lib/commonjs/notifyAppReadyInsights.js.map +0 -1
  246. package/lib/commonjs/notifyAppReadyInsights.spec.js +0 -246
  247. package/lib/commonjs/notifyAppReadyInsights.spec.js.map +0 -1
  248. package/lib/commonjs/notifyAppReadyInsights.test-utils.js +0 -24
  249. package/lib/commonjs/notifyAppReadyInsights.test-utils.js.map +0 -1
  250. package/lib/commonjs/notifyAppReadyInsights.transport.spec.js +0 -117
  251. package/lib/commonjs/notifyAppReadyInsights.transport.spec.js.map +0 -1
  252. package/lib/commonjs/releaseCatalogCache.spec.js +0 -195
  253. package/lib/commonjs/releaseCatalogCache.spec.js.map +0 -1
  254. package/lib/commonjs/releaseCatalogCacheNativeContract.spec.js +0 -64
  255. package/lib/commonjs/releaseCatalogCacheNativeContract.spec.js.map +0 -1
  256. package/lib/commonjs/store.notification.spec.js +0 -76
  257. package/lib/commonjs/store.notification.spec.js.map +0 -1
  258. package/lib/commonjs/store.spec.js +0 -316
  259. package/lib/commonjs/store.spec.js.map +0 -1
  260. package/lib/commonjs/wrap.spec.js +0 -329
  261. package/lib/commonjs/wrap.spec.js.map +0 -1
  262. package/lib/module/catalogCacheNative.spec.js +0 -31
  263. package/lib/module/catalogCacheNative.spec.js.map +0 -1
  264. package/lib/module/checkForUpdate.releaseCatalog.spec.js +0 -615
  265. package/lib/module/checkForUpdate.releaseCatalog.spec.js.map +0 -1
  266. package/lib/module/httpClient.spec.js +0 -102
  267. package/lib/module/httpClient.spec.js.map +0 -1
  268. package/lib/module/index.spec.js +0 -301
  269. package/lib/module/index.spec.js.map +0 -1
  270. package/lib/module/iosInterop.spec.js +0 -18
  271. package/lib/module/iosInterop.spec.js.map +0 -1
  272. package/lib/module/native.spec.js +0 -882
  273. package/lib/module/native.spec.js.map +0 -1
  274. package/lib/module/notifyAppReadyInsights.boundary.spec.js +0 -217
  275. package/lib/module/notifyAppReadyInsights.boundary.spec.js.map +0 -1
  276. package/lib/module/notifyAppReadyInsights.js +0 -128
  277. package/lib/module/notifyAppReadyInsights.js.map +0 -1
  278. package/lib/module/notifyAppReadyInsights.spec.js +0 -245
  279. package/lib/module/notifyAppReadyInsights.spec.js.map +0 -1
  280. package/lib/module/notifyAppReadyInsights.test-utils.js +0 -18
  281. package/lib/module/notifyAppReadyInsights.test-utils.js.map +0 -1
  282. package/lib/module/notifyAppReadyInsights.transport.spec.js +0 -116
  283. package/lib/module/notifyAppReadyInsights.transport.spec.js.map +0 -1
  284. package/lib/module/releaseCatalogCache.spec.js +0 -195
  285. package/lib/module/releaseCatalogCache.spec.js.map +0 -1
  286. package/lib/module/releaseCatalogCacheNativeContract.spec.js +0 -64
  287. package/lib/module/releaseCatalogCacheNativeContract.spec.js.map +0 -1
  288. package/lib/module/store.notification.spec.js +0 -77
  289. package/lib/module/store.notification.spec.js.map +0 -1
  290. package/lib/module/store.spec.js +0 -315
  291. package/lib/module/store.spec.js.map +0 -1
  292. package/lib/module/wrap.spec.js +0 -330
  293. package/lib/module/wrap.spec.js.map +0 -1
  294. package/lib/typescript/commonjs/notifyAppReadyInsights.d.ts +0 -13
  295. package/lib/typescript/commonjs/notifyAppReadyInsights.d.ts.map +0 -1
  296. package/lib/typescript/commonjs/notifyAppReadyInsights.test-utils.d.ts +0 -8
  297. package/lib/typescript/commonjs/notifyAppReadyInsights.test-utils.d.ts.map +0 -1
  298. package/lib/typescript/module/notifyAppReadyInsights.d.ts +0 -13
  299. package/lib/typescript/module/notifyAppReadyInsights.d.ts.map +0 -1
  300. package/lib/typescript/module/notifyAppReadyInsights.test-utils.d.ts +0 -8
  301. package/lib/typescript/module/notifyAppReadyInsights.test-utils.d.ts.map +0 -1
  302. package/src/catalogCacheNative.spec.ts +0 -63
  303. package/src/checkForUpdate.releaseCatalog.spec.ts +0 -612
  304. package/src/httpClient.spec.ts +0 -132
  305. package/src/index.spec.ts +0 -337
  306. package/src/iosInterop.spec.ts +0 -30
  307. package/src/native.spec.ts +0 -945
  308. package/src/notifyAppReadyInsights.boundary.spec.ts +0 -234
  309. package/src/notifyAppReadyInsights.spec.ts +0 -243
  310. package/src/notifyAppReadyInsights.test-utils.ts +0 -31
  311. package/src/notifyAppReadyInsights.transport.spec.ts +0 -130
  312. package/src/notifyAppReadyInsights.ts +0 -194
  313. package/src/releaseCatalogCache.spec.ts +0 -282
  314. package/src/releaseCatalogCacheNativeContract.spec.ts +0 -80
  315. package/src/store.notification.spec.ts +0 -92
  316. package/src/store.spec.ts +0 -372
  317. package/src/wrap.spec.ts +0 -406
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ /** Read once for parsing and diagnostics, under the same request timeout. */
4
+ export const fetchUpdateResponse = async ({
5
+ url,
6
+ resource,
7
+ requestHeaders,
8
+ requestTimeout = 5000,
9
+ onResponse
10
+ }) => {
11
+ const controller = new AbortController();
12
+ let timedOut = false;
13
+ const timeoutId = setTimeout(() => {
14
+ timedOut = true;
15
+ controller.abort();
16
+ }, requestTimeout);
17
+ try {
18
+ const headers = new Headers(requestHeaders);
19
+ if (!headers.has("Accept")) headers.set("Accept", "application/json");
20
+ const response = await fetch(url, {
21
+ headers,
22
+ signal: controller.signal
23
+ });
24
+ let body = null;
25
+ try {
26
+ body = await response.text();
27
+ } catch (error) {
28
+ // A broken error body must not hide an HTTP error already received.
29
+ if (response.status === 200) throw error;
30
+ } finally {
31
+ onResponse?.({
32
+ resource,
33
+ // React Native URL implementations do not all expose pathname.
34
+ path: url.replace(/^https?:\/\/[^/?#]*/i, "").split(/[?#]/, 1)[0] || "/",
35
+ status: response.status,
36
+ body,
37
+ bodyTruncated: false
38
+ });
39
+ }
40
+ return {
41
+ response,
42
+ body
43
+ };
44
+ } catch (error) {
45
+ // Whatever the fetch rejects with once its timeout aborts it: an
46
+ // AbortError, or Expo's "fetch failed: FetchRequestCanceledException".
47
+ if (timedOut || error instanceof Error && error.name === "AbortError") {
48
+ throw new Error("Request timed out");
49
+ }
50
+ throw error;
51
+ } finally {
52
+ clearTimeout(timeoutId);
53
+ }
54
+ };
55
+ //# sourceMappingURL=fetchUpdateResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["fetchUpdateResponse","url","resource","requestHeaders","requestTimeout","onResponse","controller","AbortController","timedOut","timeoutId","setTimeout","abort","headers","Headers","has","set","response","fetch","signal","body","text","error","status","path","replace","split","bodyTruncated","Error","name","clearTimeout"],"sourceRoot":"../../src","sources":["fetchUpdateResponse.ts"],"mappings":";;AAUA;AACA,OAAO,MAAMA,mBAAmB,GAAG,MAAAA,CAAO;EACxCC,GAAG;EACHC,QAAQ;EACRC,cAAc;EACdC,cAAc,GAAG,IAAI;EACrBC;AACa,CAAC,KAA2D;EACzE,MAAMC,UAAU,GAAG,IAAIC,eAAe,CAAC,CAAC;EACxC,IAAIC,QAAQ,GAAG,KAAK;EACpB,MAAMC,SAAS,GAAGC,UAAU,CAAC,MAAM;IACjCF,QAAQ,GAAG,IAAI;IACfF,UAAU,CAACK,KAAK,CAAC,CAAC;EACpB,CAAC,EAAEP,cAAc,CAAC;EAClB,IAAI;IACF,MAAMQ,OAAO,GAAG,IAAIC,OAAO,CAACV,cAAc,CAAC;IAC3C,IAAI,CAACS,OAAO,CAACE,GAAG,CAAC,QAAQ,CAAC,EAAEF,OAAO,CAACG,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACrE,MAAMC,QAAQ,GAAG,MAAMC,KAAK,CAAChB,GAAG,EAAE;MAChCW,OAAO;MACPM,MAAM,EAAEZ,UAAU,CAACY;IACrB,CAAC,CAAC;IACF,IAAIC,IAAmB,GAAG,IAAI;IAC9B,IAAI;MACFA,IAAI,GAAG,MAAMH,QAAQ,CAACI,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC,OAAOC,KAAK,EAAE;MACd;MACA,IAAIL,QAAQ,CAACM,MAAM,KAAK,GAAG,EAAE,MAAMD,KAAK;IAC1C,CAAC,SAAS;MACRhB,UAAU,GAAG;QACXH,QAAQ;QACR;QACAqB,IAAI,EACFtB,GAAG,CAACuB,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAACC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG;QACpEH,MAAM,EAAEN,QAAQ,CAACM,MAAM;QACvBH,IAAI;QACJO,aAAa,EAAE;MACjB,CAAC,CAAC;IACJ;IACA,OAAO;MAAEV,QAAQ;MAAEG;IAAK,CAAC;EAC3B,CAAC,CAAC,OAAOE,KAAc,EAAE;IACvB;IACA;IACA,IAAIb,QAAQ,IAAKa,KAAK,YAAYM,KAAK,IAAIN,KAAK,CAACO,IAAI,KAAK,YAAa,EAAE;MACvE,MAAM,IAAID,KAAK,CAAC,mBAAmB,CAAC;IACtC;IACA,MAAMN,KAAK;EACb,CAAC,SAAS;IACRQ,YAAY,CAACpB,SAAS,CAAC;EACzB;AACF,CAAC","ignoreList":[]}
@@ -1,103 +1,57 @@
1
1
  "use strict";
2
2
 
3
- import { encodeChannelKey } from "@hot-updater/core";
4
- import { canonicalizeAppVersion } from "@hot-updater/plugin-core";
5
- import { fetchJSON } from "./fetchJSON.js";
3
+ import { ARTIFACT_PROTOCOL_VERSION, canonicalizeAppVersion, encodeChannelKey, resolveBaseURL } from "@hot-updater/protocol";
4
+ import { fetchJSON, FetchJSONResponseError } from "./fetchJSON.js";
6
5
  import { fetchReleaseCatalogWithCache } from "./releaseCatalogCache.js";
7
- import { HOT_UPDATER_SDK_VERSION } from "./sdkVersion.js";
8
- const resolveBaseURL = async baseURL => {
9
- const resolvedBaseURL = typeof baseURL === "function" ? await baseURL() : baseURL;
10
- if (!resolvedBaseURL) {
11
- throw new Error("baseURL function must return a non-empty string");
12
- }
13
- return resolvedBaseURL.replace(/\/+$/, "");
14
- };
6
+ import { InvalidUpdateResponseError } from "./updateError.js";
15
7
  const resolveArtifactUrl = (baseURL, value) => {
16
8
  if (/^https?:\/\//i.test(value)) {
17
- new URL(value);
9
+ try {
10
+ new URL(value);
11
+ } catch (error) {
12
+ throw new InvalidUpdateResponseError(`Invalid artifact URL: ${value}`, {
13
+ cause: error
14
+ });
15
+ }
18
16
  return value;
19
17
  }
20
18
  if (!value.startsWith("/storage/")) {
21
- throw new Error("Artifact URLs must be absolute HTTP(S) URLs or client-relative storage paths.");
19
+ throw new InvalidUpdateResponseError("Artifact URLs must be absolute HTTP(S) URLs or client-relative storage paths.");
22
20
  }
23
21
  return `${baseURL}/${value.slice(1)}`;
24
22
  };
25
23
  const resolveArtifactUrls = (baseURL, info) => ({
26
24
  ...info,
27
- fileUrl: info.fileUrl === null ? null : resolveArtifactUrl(baseURL, info.fileUrl),
28
- ...(info.manifestUrl === undefined ? {} : {
29
- manifestUrl: info.manifestUrl === null ? null : resolveArtifactUrl(baseURL, info.manifestUrl)
30
- }),
31
- ...(info.changedAssets === undefined ? {} : {
32
- changedAssets: info.changedAssets === null ? null : Object.fromEntries(Object.entries(info.changedAssets).map(([path, asset]) => [path, {
33
- ...asset,
34
- ...(asset.file ? {
35
- file: {
36
- ...asset.file,
37
- url: resolveArtifactUrl(baseURL, asset.file.url)
38
- }
39
- } : {}),
40
- ...(asset.patch ? {
41
- patch: {
42
- ...asset.patch,
43
- patchUrl: resolveArtifactUrl(baseURL, asset.patch.patchUrl)
44
- }
45
- } : {})
46
- }]))
47
- })
25
+ manifestUrl: resolveArtifactUrl(baseURL, info.manifestUrl),
26
+ ...(info.archiveUrl ? {
27
+ archiveUrl: resolveArtifactUrl(baseURL, info.archiveUrl)
28
+ } : {}),
29
+ assets: Object.fromEntries(Object.entries(info.assets).map(([path, asset]) => [path, {
30
+ ...asset,
31
+ file: {
32
+ ...asset.file,
33
+ url: resolveArtifactUrl(baseURL, asset.file.url)
34
+ },
35
+ ...(asset.patch ? {
36
+ patch: {
37
+ ...asset.patch,
38
+ patchUrl: resolveArtifactUrl(baseURL, asset.patch.patchUrl)
39
+ }
40
+ } : {})
41
+ }]))
48
42
  });
49
- const sendInsightsEvent = async (baseURL, params) => {
50
- const controller = new AbortController();
51
- const timeoutId = setTimeout(() => {
52
- controller.abort();
53
- }, params.requestTimeout ?? 5000);
54
- try {
55
- const response = await fetch(`${baseURL}/events`, {
56
- body: JSON.stringify({
57
- appVersion: params.appVersion,
58
- channel: params.channel,
59
- cohort: params.cohort,
60
- fingerprintHash: params.fingerprintHash,
61
- fromBundleId: params.fromBundleId,
62
- ...(params.fromReleaseId === undefined ? {} : {
63
- fromReleaseId: params.fromReleaseId
64
- }),
65
- installId: params.installId,
66
- platform: params.platform,
67
- sdkVersion: HOT_UPDATER_SDK_VERSION,
68
- toBundleId: params.toBundleId,
69
- ...(params.toReleaseId === undefined ? {} : {
70
- toReleaseId: params.toReleaseId
71
- }),
72
- type: params.type,
73
- updateStrategy: params.updateStrategy,
74
- ...(params.userId != null ? {
75
- userId: params.userId
76
- } : {}),
77
- ...(params.username != null ? {
78
- username: params.username
79
- } : {})
80
- }),
81
- headers: {
82
- "Content-Type": "application/json",
83
- ...params.requestHeaders
84
- },
85
- method: "POST",
86
- signal: controller.signal
87
- });
88
- if (response.status !== 204) {
89
- throw new Error(`Expected HTTP 204 from /events, received ${response.status}`);
90
- }
91
- } catch (error) {
92
- if (error instanceof Error && error.name === "AbortError") {
93
- throw new Error("Request timed out");
43
+ const requireArtifactProtocolV1 = info => {
44
+ if (info.artifactProtocolVersion !== ARTIFACT_PROTOCOL_VERSION || !info.assets || !info.manifestUrl || !info.manifestFileHash || info.archiveUrl !== undefined && typeof info.archiveUrl !== "string") {
45
+ throw new InvalidUpdateResponseError(`Server does not support artifact protocol ${ARTIFACT_PROTOCOL_VERSION}.`);
46
+ }
47
+ for (const asset of Object.values(info.assets)) {
48
+ if (!asset.file?.url || !asset.fileHash) {
49
+ throw new InvalidUpdateResponseError("Artifact protocol 1 requires an original file for every asset.");
94
50
  }
95
- throw error;
96
- } finally {
97
- clearTimeout(timeoutId);
98
51
  }
52
+ return info;
99
53
  };
100
- const createSession = baseURL => ({
54
+ const createSession = (baseURL, onResponse) => ({
101
55
  fetchReleaseCatalog: async params => {
102
56
  const channelKey = encodeChannelKey(params.channel);
103
57
  let strategyValue;
@@ -115,6 +69,9 @@ const createSession = baseURL => ({
115
69
  const url = `${baseURL}/release-catalogs/${strategyPath}/${params.platform}/${channelKey}/${encodeURIComponent(strategyValue)}`;
116
70
  return fetchReleaseCatalogWithCache({
117
71
  baseURL,
72
+ ...(onResponse ? {
73
+ onResponse
74
+ } : {}),
118
75
  expectedScope: params.updateStrategy === "fingerprint" ? {
119
76
  channelKey,
120
77
  fingerprintHash: strategyValue,
@@ -131,18 +88,30 @@ const createSession = baseURL => ({
131
88
  });
132
89
  },
133
90
  resolveArtifact: async params => {
134
- const info = await fetchJSON({
135
- requestHeaders: params.requestHeaders,
136
- requestTimeout: params.requestTimeout,
137
- url: `${baseURL}/artifacts/${encodeURIComponent(params.targetBundleId)}/from/${encodeURIComponent(params.currentBundleId)}`
138
- });
139
- return resolveArtifactUrls(baseURL, info);
140
- },
141
- sendInsightsEvent: params => sendInsightsEvent(baseURL, params)
91
+ let info;
92
+ try {
93
+ info = await fetchJSON({
94
+ ...(onResponse ? {
95
+ onResponse
96
+ } : {}),
97
+ requestHeaders: params.requestHeaders,
98
+ requestTimeout: params.requestTimeout,
99
+ url: `${baseURL}/artifacts/v1/${encodeURIComponent(params.targetBundleId)}/from/${encodeURIComponent(params.currentBundleId)}`
100
+ });
101
+ } catch (error) {
102
+ if (error instanceof FetchJSONResponseError && error.status === 404) {
103
+ throw new InvalidUpdateResponseError(`Server does not support artifact protocol ${ARTIFACT_PROTOCOL_VERSION}.`, {
104
+ cause: error
105
+ });
106
+ }
107
+ throw error;
108
+ }
109
+ return resolveArtifactUrls(baseURL, requireArtifactProtocolV1(info));
110
+ }
142
111
  });
143
112
 
144
- /** Creates the private HTTP client used by HotUpdater.init and HotUpdater.wrap. */
145
- export const createHttpClient = baseURL => ({
146
- createSession: async () => createSession(await resolveBaseURL(baseURL))
113
+ /** Creates the private HTTP client HotUpdater.init configures. */
114
+ export const createHttpClient = (baseURL, onResponse) => ({
115
+ createSession: async () => createSession(await resolveBaseURL(baseURL), onResponse)
147
116
  });
148
117
  //# sourceMappingURL=httpClient.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["encodeChannelKey","canonicalizeAppVersion","fetchJSON","fetchReleaseCatalogWithCache","HOT_UPDATER_SDK_VERSION","resolveBaseURL","baseURL","resolvedBaseURL","Error","replace","resolveArtifactUrl","value","test","URL","startsWith","slice","resolveArtifactUrls","info","fileUrl","manifestUrl","undefined","changedAssets","Object","fromEntries","entries","map","path","asset","file","url","patch","patchUrl","sendInsightsEvent","params","controller","AbortController","timeoutId","setTimeout","abort","requestTimeout","response","fetch","body","JSON","stringify","appVersion","channel","cohort","fingerprintHash","fromBundleId","fromReleaseId","installId","platform","sdkVersion","toBundleId","toReleaseId","type","updateStrategy","userId","username","headers","requestHeaders","method","signal","status","error","name","clearTimeout","createSession","fetchReleaseCatalog","channelKey","strategyValue","strategyPath","encodeURIComponent","expectedScope","strategy","resolveArtifact","targetBundleId","currentBundleId","createHttpClient"],"sourceRoot":"../../src","sources":["httpClient.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["ARTIFACT_PROTOCOL_VERSION","canonicalizeAppVersion","encodeChannelKey","resolveBaseURL","fetchJSON","FetchJSONResponseError","fetchReleaseCatalogWithCache","InvalidUpdateResponseError","resolveArtifactUrl","baseURL","value","test","URL","error","cause","startsWith","slice","resolveArtifactUrls","info","manifestUrl","archiveUrl","assets","Object","fromEntries","entries","map","path","asset","file","url","patch","patchUrl","requireArtifactProtocolV1","artifactProtocolVersion","manifestFileHash","undefined","values","fileHash","createSession","onResponse","fetchReleaseCatalog","params","channelKey","channel","strategyValue","updateStrategy","fingerprintHash","Error","appVersion","strategyPath","platform","encodeURIComponent","expectedScope","strategy","requestHeaders","requestTimeout","resolveArtifact","targetBundleId","currentBundleId","status","createHttpClient"],"sourceRoot":"../../src","sources":["httpClient.ts"],"mappings":"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","ignoreList":[]}