@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
@@ -1,64 +1,14 @@
1
1
  "use strict";
2
2
 
3
- import { MAX_TARGET_COHORTS_PER_RELEASE, MAX_COMPILED_CATALOG_BYTES, MAX_DISTINCT_TARGET_COHORTS_PER_SCOPE, NUMERIC_COHORT_SIZE, isUUIDv7, parseReleaseCatalogScopeKey } from "@hot-updater/core";
3
+ import { getUtf8ByteLength, MAX_RELEASE_CATALOG_WIRE_BYTES, parseReleaseCatalog } from "@hot-updater/protocol";
4
+ import { InvalidUpdateResponseError, UpdateHttpError } from "./updateError.js";
4
5
  const CACHE_FORMAT_VERSION = "1";
5
6
  const MAX_ETAG_BYTES = 1024;
6
- export const MAX_RELEASE_CATALOG_WIRE_BYTES = MAX_COMPILED_CATALOG_BYTES * 2 + 4 * 1024;
7
7
  export const MAX_RELEASE_CATALOG_CACHE_ENTRY_BYTES = MAX_RELEASE_CATALOG_WIRE_BYTES + MAX_ETAG_BYTES + 3;
8
8
  const readNativeReleaseCatalogCache = async partition => (await import("./catalogCacheNative")).readNativeReleaseCatalogCache(partition);
9
9
  const writeNativeReleaseCatalogCache = async (partition, payload) => (await import("./catalogCacheNative")).writeNativeReleaseCatalogCache(partition, payload);
10
10
  const removeNativeReleaseCatalogCache = async partition => (await import("./catalogCacheNative")).removeNativeReleaseCatalogCache(partition);
11
11
  let lastParsedCache = null;
12
- const getUtf8ByteLength = value => {
13
- let bytes = 0;
14
- for (let index = 0; index < value.length; index += 1) {
15
- const code = value.charCodeAt(index);
16
- if (code <= 0x7f) {
17
- bytes += 1;
18
- } else if (code <= 0x7ff) {
19
- bytes += 2;
20
- } else if (code >= 0xd800 && code <= 0xdbff && index + 1 < value.length && value.charCodeAt(index + 1) >= 0xdc00 && value.charCodeAt(index + 1) <= 0xdfff) {
21
- bytes += 4;
22
- index += 1;
23
- } else {
24
- bytes += 3;
25
- }
26
- }
27
- return bytes;
28
- };
29
- const isStringArray = value => Array.isArray(value) && value.every(entry => typeof entry === "string");
30
- const isValidReleaseDescriptor = value => {
31
- if (value === null || typeof value !== "object") return false;
32
- const descriptor = value;
33
- return isUUIDv7(descriptor.releaseId) && (descriptor.kind === "BUNDLE" || descriptor.kind === "EMBEDDED") && (descriptor.kind === "BUNDLE" && typeof descriptor.bundleId === "string" || descriptor.kind === "EMBEDDED" && descriptor.bundleId === null) && Number.isSafeInteger(descriptor.rolloutCohortCount) && descriptor.rolloutCohortCount >= 0 && descriptor.rolloutCohortCount <= NUMERIC_COHORT_SIZE && isStringArray(descriptor.targetCohorts) && descriptor.targetCohorts.length <= MAX_TARGET_COHORTS_PER_RELEASE && typeof descriptor.shouldForceUpdate === "boolean" && (descriptor.message === null || typeof descriptor.message === "string");
34
- };
35
- export const hasExpectedReleaseCatalogScope = (catalog, expected) => {
36
- try {
37
- const parsed = parseReleaseCatalogScopeKey(catalog.scopeKey);
38
- return parsed.channelKey === expected.channelKey && parsed.platform === expected.platform && parsed.strategy === expected.strategy && (parsed.strategy === "APP_VERSION" || expected.strategy === "FINGERPRINT" && parsed.fingerprintHash === expected.fingerprintHash);
39
- } catch {
40
- return false;
41
- }
42
- };
43
- const parseValidatedCatalog = (value, expectedScope) => {
44
- if (getUtf8ByteLength(value) > MAX_RELEASE_CATALOG_WIRE_BYTES) return null;
45
- try {
46
- const catalog = JSON.parse(value);
47
- if (catalog.schemaVersion !== 1 || typeof catalog.catalogId !== "string" || catalog.catalogId.length === 0 || typeof catalog.scopeKey !== "string" || !Number.isSafeInteger(catalog.generation) || (catalog.generation ?? 0) < 1 || typeof catalog.catalogHash !== "string" || !/^sha256:[0-9a-f]{64}$/.test(catalog.catalogHash) || catalog.fallbackPolicy !== "BUILTIN_IF_ACTIVE_INELIGIBLE" || !Array.isArray(catalog.releases) || !catalog.releases.every(isValidReleaseDescriptor) || catalog.rollbackReleases !== undefined && (!Array.isArray(catalog.rollbackReleases) || !catalog.rollbackReleases.every(isValidReleaseDescriptor))) {
48
- return null;
49
- }
50
- if (!hasExpectedReleaseCatalogScope(catalog, expectedScope)) {
51
- return null;
52
- }
53
- const distinctTargetCohorts = new Set([...catalog.releases, ...(catalog.rollbackReleases ?? [])].flatMap(release => release.targetCohorts));
54
- if (distinctTargetCohorts.size > MAX_DISTINCT_TARGET_COHORTS_PER_SCOPE) {
55
- return null;
56
- }
57
- return catalog;
58
- } catch {
59
- return null;
60
- }
61
- };
62
12
  const isValidETag = value => value !== null && value.length > 0 && !value.includes("\r") && !value.includes("\n") && getUtf8ByteLength(value) <= MAX_ETAG_BYTES;
63
13
  const serializeCache = (etag, body) => `${CACHE_FORMAT_VERSION}\n${etag}\n${body}`;
64
14
  const parseCache = (value, expectedScope, partition) => {
@@ -73,7 +23,7 @@ const parseCache = (value, expectedScope, partition) => {
73
23
  const etag = value.slice(versionEnd + 1, etagEnd);
74
24
  const body = value.slice(etagEnd + 1);
75
25
  if (!isValidETag(etag)) return null;
76
- const catalog = parseValidatedCatalog(body, expectedScope);
26
+ const catalog = parseReleaseCatalog(body, expectedScope);
77
27
  if (catalog === null) return null;
78
28
  const parsed = {
79
29
  catalog,
@@ -128,14 +78,19 @@ const readValidatedCache = async (partition, expectedScope) => {
128
78
  return cached;
129
79
  };
130
80
  const consumeSuccessfulResponse = async (response, input, partition) => {
81
+ // The server marks the 404 of a scope that has no catalog yet: no update,
82
+ // not a failure. Any other 404 is a wrong baseURL or route.
83
+ if (response.status === 404 && response.headers.get("x-hot-updater-catalog")?.trim().toLowerCase() === "none") {
84
+ return null;
85
+ }
131
86
  if (response.status !== 200) {
132
- throw new Error(response.statusText);
87
+ throw new UpdateHttpError(response.status, response.statusText);
133
88
  }
134
89
  const body = await response.text();
135
- const catalog = parseValidatedCatalog(body, input.expectedScope);
90
+ const catalog = parseReleaseCatalog(body, input.expectedScope);
136
91
  if (catalog === null) {
137
92
  await removeNativeReleaseCatalogCache(partition);
138
- throw new Error("Received an invalid Release catalog");
93
+ throw new InvalidUpdateResponseError("Received an invalid Release catalog");
139
94
  }
140
95
  const etag = response.headers.get("etag");
141
96
  if (isValidETag(etag)) {
@@ -157,6 +112,11 @@ const consumeSuccessfulResponse = async (response, input, partition) => {
157
112
  }
158
113
  return catalog;
159
114
  };
115
+
116
+ /**
117
+ * Fetches a scope's catalog, or null when the server answers that the scope
118
+ * has none (a 404 with `x-hot-updater-catalog: none`).
119
+ */
160
120
  export const fetchReleaseCatalogWithCache = async input => {
161
121
  const partition = createReleaseCatalogCachePartition(input);
162
122
  const cached = await readValidatedCache(partition, input.expectedScope);
@@ -1 +1 @@
1
- {"version":3,"names":["MAX_TARGET_COHORTS_PER_RELEASE","MAX_COMPILED_CATALOG_BYTES","MAX_DISTINCT_TARGET_COHORTS_PER_SCOPE","NUMERIC_COHORT_SIZE","isUUIDv7","parseReleaseCatalogScopeKey","CACHE_FORMAT_VERSION","MAX_ETAG_BYTES","MAX_RELEASE_CATALOG_WIRE_BYTES","MAX_RELEASE_CATALOG_CACHE_ENTRY_BYTES","readNativeReleaseCatalogCache","partition","writeNativeReleaseCatalogCache","payload","removeNativeReleaseCatalogCache","lastParsedCache","getUtf8ByteLength","value","bytes","index","length","code","charCodeAt","isStringArray","Array","isArray","every","entry","isValidReleaseDescriptor","descriptor","releaseId","kind","bundleId","Number","isSafeInteger","rolloutCohortCount","targetCohorts","shouldForceUpdate","message","hasExpectedReleaseCatalogScope","catalog","expected","parsed","scopeKey","channelKey","platform","strategy","fingerprintHash","parseValidatedCatalog","expectedScope","JSON","parse","schemaVersion","catalogId","generation","catalogHash","test","fallbackPolicy","releases","rollbackReleases","undefined","distinctTargetCohorts","Set","flatMap","release","size","isValidETag","includes","serializeCache","etag","body","parseCache","serialized","versionEnd","indexOf","etagEnd","slice","normalizedHeaders","requestHeaders","headers","Headers","entries","map","name","toLowerCase","sort","firstName","secondName","localeCompare","createReleaseCatalogCachePartition","input","stringify","baseURL","url","version","fetchCatalogResponse","controller","AbortController","timeoutId","setTimeout","abort","requestTimeout","set","delete","fetch","signal","error","Error","clearTimeout","readValidatedCache","cached","consumeSuccessfulResponse","response","status","statusText","text","get","fetchReleaseCatalogWithCache","repairResponse"],"sourceRoot":"../../src","sources":["releaseCatalogCache.ts"],"mappings":";;AAAA,SACEA,8BAA8B,EAC9BC,0BAA0B,EAC1BC,qCAAqC,EACrCC,mBAAmB,EACnBC,QAAQ,EACRC,2BAA2B,QAEtB,mBAAmB;AAE1B,MAAMC,oBAAoB,GAAG,GAAG;AAChC,MAAMC,cAAc,GAAG,IAAI;AAC3B,OAAO,MAAMC,8BAA8B,GACzCP,0BAA0B,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI;AAC3C,OAAO,MAAMQ,qCAAqC,GAChDD,8BAA8B,GAAGD,cAAc,GAAG,CAAC;AAErD,MAAMG,6BAA6B,GAAG,MAAOC,SAAiB,IAC5D,CAAC,MAAM,MAAM,CAAC,sBAAsB,CAAC,EAAED,6BAA6B,CAClEC,SACF,CAAC;AAEH,MAAMC,8BAA8B,GAAG,MAAAA,CACrCD,SAAiB,EACjBE,OAAe,KAEf,CAAC,MAAM,MAAM,CAAC,sBAAsB,CAAC,EAAED,8BAA8B,CACnED,SAAS,EACTE,OACF,CAAC;AAEH,MAAMC,+BAA+B,GAAG,MAAOH,SAAiB,IAC9D,CAAC,MAAM,MAAM,CAAC,sBAAsB,CAAC,EAAEG,+BAA+B,CACpEH,SACF,CAAC;AAOH,IAAII,eAKI,GAAG,IAAI;AAwBf,MAAMC,iBAAiB,GAAIC,KAAa,IAAa;EACnD,IAAIC,KAAK,GAAG,CAAC;EACb,KAAK,IAAIC,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGF,KAAK,CAACG,MAAM,EAAED,KAAK,IAAI,CAAC,EAAE;IACpD,MAAME,IAAI,GAAGJ,KAAK,CAACK,UAAU,CAACH,KAAK,CAAC;IACpC,IAAIE,IAAI,IAAI,IAAI,EAAE;MAChBH,KAAK,IAAI,CAAC;IACZ,CAAC,MAAM,IAAIG,IAAI,IAAI,KAAK,EAAE;MACxBH,KAAK,IAAI,CAAC;IACZ,CAAC,MAAM,IACLG,IAAI,IAAI,MAAM,IACdA,IAAI,IAAI,MAAM,IACdF,KAAK,GAAG,CAAC,GAAGF,KAAK,CAACG,MAAM,IACxBH,KAAK,CAACK,UAAU,CAACH,KAAK,GAAG,CAAC,CAAC,IAAI,MAAM,IACrCF,KAAK,CAACK,UAAU,CAACH,KAAK,GAAG,CAAC,CAAC,IAAI,MAAM,EACrC;MACAD,KAAK,IAAI,CAAC;MACVC,KAAK,IAAI,CAAC;IACZ,CAAC,MAAM;MACLD,KAAK,IAAI,CAAC;IACZ;EACF;EACA,OAAOA,KAAK;AACd,CAAC;AAED,MAAMK,aAAa,GAAIN,KAAc,IACnCO,KAAK,CAACC,OAAO,CAACR,KAAK,CAAC,IAAIA,KAAK,CAACS,KAAK,CAAEC,KAAK,IAAK,OAAOA,KAAK,KAAK,QAAQ,CAAC;AAE3E,MAAMC,wBAAwB,GAAIX,KAAc,IAAc;EAC5D,IAAIA,KAAK,KAAK,IAAI,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE,OAAO,KAAK;EAC7D,MAAMY,UAAU,GAAGZ,KAAgC;EAEnD,OACEb,QAAQ,CAACyB,UAAU,CAACC,SAAS,CAAC,KAC7BD,UAAU,CAACE,IAAI,KAAK,QAAQ,IAAIF,UAAU,CAACE,IAAI,KAAK,UAAU,CAAC,KAC9DF,UAAU,CAACE,IAAI,KAAK,QAAQ,IAC5B,OAAOF,UAAU,CAACG,QAAQ,KAAK,QAAQ,IACtCH,UAAU,CAACE,IAAI,KAAK,UAAU,IAAIF,UAAU,CAACG,QAAQ,KAAK,IAAK,CAAC,IACnEC,MAAM,CAACC,aAAa,CAACL,UAAU,CAACM,kBAAkB,CAAC,IAClDN,UAAU,CAACM,kBAAkB,IAAe,CAAC,IAC7CN,UAAU,CAACM,kBAAkB,IAAehC,mBAAmB,IAChEoB,aAAa,CAACM,UAAU,CAACO,aAAa,CAAC,IACvCP,UAAU,CAACO,aAAa,CAAChB,MAAM,IAAIpB,8BAA8B,IACjE,OAAO6B,UAAU,CAACQ,iBAAiB,KAAK,SAAS,KAChDR,UAAU,CAACS,OAAO,KAAK,IAAI,IAAI,OAAOT,UAAU,CAACS,OAAO,KAAK,QAAQ,CAAC;AAE3E,CAAC;AAED,OAAO,MAAMC,8BAA8B,GAAGA,CAC5CC,OAAuB,EACvBC,QAAqC,KACzB;EACZ,IAAI;IACF,MAAMC,MAAM,GAAGrC,2BAA2B,CAACmC,OAAO,CAACG,QAAQ,CAAC;IAC5D,OACED,MAAM,CAACE,UAAU,KAAKH,QAAQ,CAACG,UAAU,IACzCF,MAAM,CAACG,QAAQ,KAAKJ,QAAQ,CAACI,QAAQ,IACrCH,MAAM,CAACI,QAAQ,KAAKL,QAAQ,CAACK,QAAQ,KACpCJ,MAAM,CAACI,QAAQ,KAAK,aAAa,IAC/BL,QAAQ,CAACK,QAAQ,KAAK,aAAa,IAClCJ,MAAM,CAACK,eAAe,KAAKN,QAAQ,CAACM,eAAgB,CAAC;EAE7D,CAAC,CAAC,MAAM;IACN,OAAO,KAAK;EACd;AACF,CAAC;AAED,MAAMC,qBAAqB,GAAGA,CAC5B/B,KAAa,EACbgC,aAA0C,KAChB;EAC1B,IAAIjC,iBAAiB,CAACC,KAAK,CAAC,GAAGT,8BAA8B,EAAE,OAAO,IAAI;EAE1E,IAAI;IACF,MAAMgC,OAAO,GAAGU,IAAI,CAACC,KAAK,CAAClC,KAAK,CAA4B;IAC5D,IACEuB,OAAO,CAACY,aAAa,KAAK,CAAC,IAC3B,OAAOZ,OAAO,CAACa,SAAS,KAAK,QAAQ,IACrCb,OAAO,CAACa,SAAS,CAACjC,MAAM,KAAK,CAAC,IAC9B,OAAOoB,OAAO,CAACG,QAAQ,KAAK,QAAQ,IACpC,CAACV,MAAM,CAACC,aAAa,CAACM,OAAO,CAACc,UAAU,CAAC,IACzC,CAACd,OAAO,CAACc,UAAU,IAAI,CAAC,IAAI,CAAC,IAC7B,OAAOd,OAAO,CAACe,WAAW,KAAK,QAAQ,IACvC,CAAC,uBAAuB,CAACC,IAAI,CAAChB,OAAO,CAACe,WAAW,CAAC,IAClDf,OAAO,CAACiB,cAAc,KAAK,8BAA8B,IACzD,CAACjC,KAAK,CAACC,OAAO,CAACe,OAAO,CAACkB,QAAQ,CAAC,IAChC,CAAClB,OAAO,CAACkB,QAAQ,CAAChC,KAAK,CAACE,wBAAwB,CAAC,IAChDY,OAAO,CAACmB,gBAAgB,KAAKC,SAAS,KACpC,CAACpC,KAAK,CAACC,OAAO,CAACe,OAAO,CAACmB,gBAAgB,CAAC,IACvC,CAACnB,OAAO,CAACmB,gBAAgB,CAACjC,KAAK,CAACE,wBAAwB,CAAC,CAAE,EAC/D;MACA,OAAO,IAAI;IACb;IACA,IACE,CAACW,8BAA8B,CAACC,OAAO,EAAoBS,aAAa,CAAC,EACzE;MACA,OAAO,IAAI;IACb;IACA,MAAMY,qBAAqB,GAAG,IAAIC,GAAG,CACnC,CAAC,GAAGtB,OAAO,CAACkB,QAAQ,EAAE,IAAIlB,OAAO,CAACmB,gBAAgB,IAAI,EAAE,CAAC,CAAC,CAACI,OAAO,CAC/DC,OAAO,IAAKA,OAAO,CAAC5B,aACvB,CACF,CAAC;IACD,IAAIyB,qBAAqB,CAACI,IAAI,GAAG/D,qCAAqC,EAAE;MACtE,OAAO,IAAI;IACb;IACA,OAAOsC,OAAO;EAChB,CAAC,CAAC,MAAM;IACN,OAAO,IAAI;EACb;AACF,CAAC;AAED,MAAM0B,WAAW,GAAIjD,KAAoB,IACvCA,KAAK,KAAK,IAAI,IACdA,KAAK,CAACG,MAAM,GAAG,CAAC,IAChB,CAACH,KAAK,CAACkD,QAAQ,CAAC,IAAI,CAAC,IACrB,CAAClD,KAAK,CAACkD,QAAQ,CAAC,IAAI,CAAC,IACrBnD,iBAAiB,CAACC,KAAK,CAAC,IAAIV,cAAc;AAE5C,MAAM6D,cAAc,GAAGA,CAACC,IAAY,EAAEC,IAAY,KAChD,GAAGhE,oBAAoB,KAAK+D,IAAI,KAAKC,IAAI,EAAE;AAE7C,MAAMC,UAAU,GAAGA,CACjBtD,KAAa,EACbgC,aAA0C,EAC1CtC,SAAiB,KACQ;EACzB,IACEI,eAAe,KAAK,IAAI,IACxBA,eAAe,CAACyD,UAAU,KAAKvD,KAAK,IACpCF,eAAe,CAACJ,SAAS,KAAKA,SAAS,EACvC;IACA,OAAOI,eAAe;EACxB;EACA,MAAM0D,UAAU,GAAGxD,KAAK,CAACyD,OAAO,CAAC,IAAI,CAAC;EACtC,MAAMC,OAAO,GAAG1D,KAAK,CAACyD,OAAO,CAAC,IAAI,EAAED,UAAU,GAAG,CAAC,CAAC;EACnD,IACEA,UAAU,KAAK,CAAC,CAAC,IACjBE,OAAO,KAAK,CAAC,CAAC,IACd1D,KAAK,CAAC2D,KAAK,CAAC,CAAC,EAAEH,UAAU,CAAC,KAAKnE,oBAAoB,EACnD;IACA,OAAO,IAAI;EACb;EAEA,MAAM+D,IAAI,GAAGpD,KAAK,CAAC2D,KAAK,CAACH,UAAU,GAAG,CAAC,EAAEE,OAAO,CAAC;EACjD,MAAML,IAAI,GAAGrD,KAAK,CAAC2D,KAAK,CAACD,OAAO,GAAG,CAAC,CAAC;EACrC,IAAI,CAACT,WAAW,CAACG,IAAI,CAAC,EAAE,OAAO,IAAI;EACnC,MAAM7B,OAAO,GAAGQ,qBAAqB,CAACsB,IAAI,EAAErB,aAAa,CAAC;EAC1D,IAAIT,OAAO,KAAK,IAAI,EAAE,OAAO,IAAI;EACjC,MAAME,MAAM,GAAG;IAAEF,OAAO;IAAE6B,IAAI;IAAE1D,SAAS;IAAE6D,UAAU,EAAEvD;EAAM,CAAC;EAC9DF,eAAe,GAAG2B,MAAM;EACxB,OAAOA,MAAM;AACf,CAAC;AAED,MAAMmC,iBAAiB,GACrBC,cAAkD,IACP;EAC3C,MAAMC,OAAO,GAAG,IAAIC,OAAO,CAACF,cAAc,CAAC;EAC3C,OAAO,CAAC,GAAGC,OAAO,CAACE,OAAO,CAAC,CAAC,CAAC,CAC1BC,GAAG,CAAC,CAAC,CAACC,IAAI,EAAElE,KAAK,CAAC,KAAK,CAACkE,IAAI,CAACC,WAAW,CAAC,CAAC,EAAEnE,KAAK,CAAU,CAAC,CAC5DoE,IAAI,CAAC,CAAC,CAACC,SAAS,CAAC,EAAE,CAACC,UAAU,CAAC,KAAKD,SAAS,CAACE,aAAa,CAACD,UAAU,CAAC,CAAC;AAC7E,CAAC;AAED,OAAO,MAAME,kCAAkC,GAC7CC,KAA2E,IAE3ExC,IAAI,CAACyC,SAAS,CAAC;EACbC,OAAO,EAAEF,KAAK,CAACE,OAAO;EACtBb,OAAO,EAAEF,iBAAiB,CAACa,KAAK,CAACZ,cAAc,CAAC;EAChDe,GAAG,EAAEH,KAAK,CAACG,GAAG;EACdC,OAAO,EAAE;AACX,CAAC,CAAC;AAEJ,MAAMC,oBAAoB,GAAG,MAAAA,CAC3BL,KAA+B,EAC/BrB,IAAa,KACS;EACtB,MAAM2B,UAAU,GAAG,IAAIC,eAAe,CAAC,CAAC;EACxC,MAAMC,SAAS,GAAGC,UAAU,CAC1B,MAAMH,UAAU,CAACI,KAAK,CAAC,CAAC,EACxBV,KAAK,CAACW,cAAc,IAAI,IAC1B,CAAC;EAED,IAAI;IACF,MAAMtB,OAAO,GAAG,IAAIC,OAAO,CAACU,KAAK,CAACZ,cAAc,CAAC;IACjDC,OAAO,CAACuB,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACzC,IAAIjC,IAAI,KAAKT,SAAS,EAAE;MACtBmB,OAAO,CAACwB,MAAM,CAAC,eAAe,CAAC;IACjC,CAAC,MAAM;MACLxB,OAAO,CAACuB,GAAG,CAAC,eAAe,EAAEjC,IAAI,CAAC;IACpC;IACA,OAAO,MAAMmC,KAAK,CAACd,KAAK,CAACG,GAAG,EAAE;MAC5Bd,OAAO;MACP0B,MAAM,EAAET,UAAU,CAACS;IACrB,CAAC,CAAC;EACJ,CAAC,CAAC,OAAOC,KAAc,EAAE;IACvB,IAAIA,KAAK,YAAYC,KAAK,IAAID,KAAK,CAACvB,IAAI,KAAK,YAAY,EAAE;MACzD,MAAM,IAAIwB,KAAK,CAAC,mBAAmB,CAAC;IACtC;IACA,MAAMD,KAAK;EACb,CAAC,SAAS;IACRE,YAAY,CAACV,SAAS,CAAC;EACzB;AACF,CAAC;AAED,MAAMW,kBAAkB,GAAG,MAAAA,CACzBlG,SAAiB,EACjBsC,aAA0C,KACR;EAClC,MAAMhC,KAAK,GAAG,MAAMP,6BAA6B,CAACC,SAAS,CAAC;EAC5D,IAAIM,KAAK,KAAK,IAAI,EAAE,OAAO,IAAI;EAE/B,MAAM6F,MAAM,GAAGvC,UAAU,CAACtD,KAAK,EAAEgC,aAAa,EAAEtC,SAAS,CAAC;EAC1D,IAAImG,MAAM,KAAK,IAAI,EAAE;IACnB,MAAMhG,+BAA+B,CAACH,SAAS,CAAC;EAClD;EACA,OAAOmG,MAAM;AACf,CAAC;AAED,MAAMC,yBAAyB,GAAG,MAAAA,CAChCC,QAAkB,EAClBtB,KAA+B,EAC/B/E,SAAiB,KACW;EAC5B,IAAIqG,QAAQ,CAACC,MAAM,KAAK,GAAG,EAAE;IAC3B,MAAM,IAAIN,KAAK,CAACK,QAAQ,CAACE,UAAU,CAAC;EACtC;EAEA,MAAM5C,IAAI,GAAG,MAAM0C,QAAQ,CAACG,IAAI,CAAC,CAAC;EAClC,MAAM3E,OAAO,GAAGQ,qBAAqB,CAACsB,IAAI,EAAEoB,KAAK,CAACzC,aAAa,CAAC;EAChE,IAAIT,OAAO,KAAK,IAAI,EAAE;IACpB,MAAM1B,+BAA+B,CAACH,SAAS,CAAC;IAChD,MAAM,IAAIgG,KAAK,CAAC,qCAAqC,CAAC;EACxD;EAEA,MAAMtC,IAAI,GAAG2C,QAAQ,CAACjC,OAAO,CAACqC,GAAG,CAAC,MAAM,CAAC;EACzC,IAAIlD,WAAW,CAACG,IAAI,CAAC,EAAE;IACrB,MAAMG,UAAU,GAAGJ,cAAc,CAACC,IAAI,EAAEC,IAAI,CAAC;IAC7C,IAAItD,iBAAiB,CAACwD,UAAU,CAAC,GAAG/D,qCAAqC,EAAE;MACzE,MAAMK,+BAA+B,CAACH,SAAS,CAAC;MAChD,OAAO6B,OAAO;IAChB;IACA,IAAI,MAAM5B,8BAA8B,CAACD,SAAS,EAAE6D,UAAU,CAAC,EAAE;MAC/DzD,eAAe,GAAG;QAChByB,OAAO;QACP6B,IAAI;QACJ1D,SAAS;QACT6D;MACF,CAAC;IACH;EACF,CAAC,MAAM;IACL,MAAM1D,+BAA+B,CAACH,SAAS,CAAC;EAClD;EACA,OAAO6B,OAAO;AAChB,CAAC;AAED,OAAO,MAAM6E,4BAA4B,GAAG,MAC1C3B,KAA+B,IACH;EAC5B,MAAM/E,SAAS,GAAG8E,kCAAkC,CAACC,KAAK,CAAC;EAC3D,MAAMoB,MAAM,GAAG,MAAMD,kBAAkB,CAAClG,SAAS,EAAE+E,KAAK,CAACzC,aAAa,CAAC;EACvE,MAAM+D,QAAQ,GAAG,MAAMjB,oBAAoB,CAACL,KAAK,EAAEoB,MAAM,EAAEzC,IAAI,CAAC;EAEhE,IAAI2C,QAAQ,CAACC,MAAM,KAAK,GAAG,EAAE;IAC3B,IAAIH,MAAM,KAAK,IAAI,EAAE,OAAOA,MAAM,CAACtE,OAAO;IAE1C,MAAM8E,cAAc,GAAG,MAAMvB,oBAAoB,CAACL,KAAK,CAAC;IACxD,OAAOqB,yBAAyB,CAACO,cAAc,EAAE5B,KAAK,EAAE/E,SAAS,CAAC;EACpE;EAEA,OAAOoG,yBAAyB,CAACC,QAAQ,EAAEtB,KAAK,EAAE/E,SAAS,CAAC;AAC9D,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["getUtf8ByteLength","MAX_RELEASE_CATALOG_WIRE_BYTES","parseReleaseCatalog","InvalidUpdateResponseError","UpdateHttpError","CACHE_FORMAT_VERSION","MAX_ETAG_BYTES","MAX_RELEASE_CATALOG_CACHE_ENTRY_BYTES","readNativeReleaseCatalogCache","partition","writeNativeReleaseCatalogCache","payload","removeNativeReleaseCatalogCache","lastParsedCache","isValidETag","value","length","includes","serializeCache","etag","body","parseCache","expectedScope","serialized","versionEnd","indexOf","etagEnd","slice","catalog","parsed","normalizedHeaders","requestHeaders","headers","Headers","entries","map","name","toLowerCase","sort","firstName","secondName","localeCompare","createReleaseCatalogCachePartition","input","JSON","stringify","baseURL","url","version","fetchCatalogResponse","controller","AbortController","timeoutId","setTimeout","abort","requestTimeout","set","undefined","delete","fetch","signal","error","Error","clearTimeout","readValidatedCache","cached","consumeSuccessfulResponse","response","status","get","trim","statusText","text","fetchReleaseCatalogWithCache","repairResponse"],"sourceRoot":"../../src","sources":["releaseCatalogCache.ts"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
 
3
- export const HOT_UPDATER_SDK_VERSION = "1.0.0-rc.2";
3
+ export const HOT_UPDATER_SDK_VERSION = "1.0.0-rc.21";
4
4
  //# sourceMappingURL=sdkVersion.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["HOT_UPDATER_SDK_VERSION"],"sourceRoot":"../../src","sources":["sdkVersion.ts"],"mappings":";;AAAA,OAAO,MAAMA,uBAAuB,GAAG,YAAY","ignoreList":[]}
1
+ {"version":3,"names":["HOT_UPDATER_SDK_VERSION"],"sourceRoot":"../../src","sources":["sdkVersion.ts"],"mappings":";;AAAA,OAAO,MAAMA,uBAAuB,GAAG,aAAa","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["specs/NativeHotUpdater.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AAgOlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,YAAY,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["specs/NativeHotUpdater.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AAyNlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,YAAY,CAAC","ignoreList":[]}
@@ -21,7 +21,7 @@ const areDiffDetailsEqual = (left, right) => {
21
21
  });
22
22
  };
23
23
  const areStatesEqual = (left, right) => {
24
- 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);
24
+ return left.progress === right.progress && left.isUpdateDownloaded === right.isUpdateDownloaded && left.artifactType === right.artifactType && areDiffDetailsEqual(left.details, right.details);
25
25
  };
26
26
  const normalizeByteCount = value => {
27
27
  if (typeof value !== "number" || !Number.isFinite(value) || value < 0) {
@@ -35,8 +35,6 @@ const normalizeDownloadPath = value => {
35
35
  const createHotUpdaterStore = () => {
36
36
  let state = {
37
37
  progress: 0,
38
- downloadedBytes: undefined,
39
- totalBytes: undefined,
40
38
  isUpdateDownloaded: false,
41
39
  artifactType: null,
42
40
  details: null
@@ -98,9 +96,6 @@ const createHotUpdaterStore = () => {
98
96
  if (newState.details === undefined) {
99
97
  nextState.details = state.details;
100
98
  }
101
- if (nextState.artifactType !== "diff") {
102
- nextState.details = null;
103
- }
104
99
  if (areStatesEqual(state, nextState)) {
105
100
  return;
106
101
  }
@@ -110,10 +105,8 @@ const createHotUpdaterStore = () => {
110
105
  const applyProgressEvent = event => {
111
106
  setState({
112
107
  artifactType: event.artifactType,
113
- details: event.artifactType === "diff" ? normalizeDiffDetails(event.details) : null,
114
- downloadedBytes: event.artifactType === "archive" ? normalizeByteCount(event.downloadedBytes) : undefined,
115
- progress: event.progress,
116
- totalBytes: event.artifactType === "archive" ? normalizeByteCount(event.totalBytes) : undefined
108
+ details: normalizeDiffDetails(event.details),
109
+ progress: event.progress
117
110
  });
118
111
  };
119
112
  const subscribe = listener => {
@@ -1 +1 @@
1
- {"version":3,"names":["useSyncExternalStoreExports","addListener","useSyncExternalStoreWithSelector","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","hotUpdaterStore","useHotUpdaterStore","selector","snapshot"],"sourceRoot":"../../src","sources":["store.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useSyncExternalStoreExports","addListener","useSyncExternalStoreWithSelector","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","hotUpdaterStore","useHotUpdaterStore","selector","snapshot"],"sourceRoot":"../../src","sources":["store.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+
3
+ import { HotUpdaterError } from "./error.js";
4
+
5
+ /**
6
+ * A response the SDK cannot use: a malformed or stale catalog, an artifact
7
+ * in another protocol, or an invalid URL.
8
+ */
9
+ export class InvalidUpdateResponseError extends HotUpdaterError {
10
+ constructor(message, options) {
11
+ super(message);
12
+ this.name = "InvalidUpdateResponseError";
13
+ if (options?.cause !== undefined) this.cause = options.cause;
14
+ }
15
+ }
16
+
17
+ /** A request the server answered with a status the SDK does not accept. */
18
+ export class UpdateHttpError extends HotUpdaterError {
19
+ constructor(status, statusText) {
20
+ super(`Request failed with HTTP ${status}${statusText ? ` ${statusText}` : ""}`);
21
+ this.status = status;
22
+ this.name = "UpdateHttpError";
23
+ }
24
+ }
25
+ const STAGES = ["check", "download", "install"];
26
+ const REASONS = ["network", "http", "invalid_response", "hash_mismatch", "signature", "patch", "extract", "storage", "unknown"];
27
+ const RESOURCES = ["catalog", "artifact", "manifest", "file", "patch", "archive"];
28
+ const TRANSPORTS = ["timeout", "dns", "tls", "connection", "offline", "cancelled"];
29
+ /** An S3, R2, or GCS error code: letters, digits, and punctuation only. */
30
+ const ORIGIN_CODE = /^[A-Za-z0-9._-]{1,64}$/;
31
+ const oneOf = (values, value) => values.includes(value);
32
+ const readNativeClassification = error => {
33
+ if (!("code" in error) || typeof error.code !== "string") return undefined;
34
+ const userInfo = "userInfo" in error && typeof error.userInfo === "object" ? error.userInfo : null;
35
+ const {
36
+ stage,
37
+ reason,
38
+ resource,
39
+ transport,
40
+ originCode
41
+ } = userInfo ?? {};
42
+ // Native classifies every failure of its download and install; a rejection
43
+ // without it, such as a stale selection, is not an update failure.
44
+ if (!oneOf(STAGES, stage) || !oneOf(REASONS, reason)) return null;
45
+ const httpStatus = Number(userInfo?.httpStatus);
46
+ return {
47
+ stage,
48
+ reason,
49
+ ...(oneOf(RESOURCES, resource) ? {
50
+ resource
51
+ } : {}),
52
+ ...(reason === "http" && Number.isSafeInteger(httpStatus) ? {
53
+ httpStatus
54
+ } : {}),
55
+ ...(reason === "http" && typeof originCode === "string" && ORIGIN_CODE.test(originCode) ? {
56
+ originCode
57
+ } : {}),
58
+ ...(reason === "network" && oneOf(TRANSPORTS, transport) ? {
59
+ transport
60
+ } : {})
61
+ };
62
+ };
63
+
64
+ /**
65
+ * Where and why an update failed, or null when the error is not an update
66
+ * failure. Native rejections carry their own classification; an error the
67
+ * SDK's JavaScript raised happened in `stage`, fetching `resource` when one
68
+ * is given.
69
+ */
70
+ export const classifyUpdateError = (error, stage, resource) => {
71
+ if (typeof error === "object" && error !== null) {
72
+ const native = readNativeClassification(error);
73
+ if (native !== undefined) return native;
74
+ }
75
+ const scope = {
76
+ stage,
77
+ ...(resource === undefined ? {} : {
78
+ resource
79
+ })
80
+ };
81
+ // Names, not classes, so an error from another copy of a module still
82
+ // classifies, as it does across test module resets.
83
+ const name = error instanceof Error ? error.name : null;
84
+ // A selection that became stale is a race between checks, not a failure.
85
+ if (name === "StaleReleaseCatalogError") return null;
86
+ if (name === "UpdateHttpError") {
87
+ return {
88
+ ...scope,
89
+ reason: "http",
90
+ httpStatus: error.status
91
+ };
92
+ }
93
+ if (name === "InvalidUpdateResponseError" || name === "SyntaxError") {
94
+ return {
95
+ ...scope,
96
+ reason: "invalid_response"
97
+ };
98
+ }
99
+ if (error instanceof Error && error.message === "Request timed out") {
100
+ return {
101
+ ...scope,
102
+ reason: "network",
103
+ transport: "timeout"
104
+ };
105
+ }
106
+ if (name === "AbortError") {
107
+ return {
108
+ ...scope,
109
+ reason: "network",
110
+ transport: "cancelled"
111
+ };
112
+ }
113
+ if (name === "TypeError") {
114
+ // fetch rejects with a TypeError when no response arrives, without
115
+ // saying why.
116
+ return {
117
+ ...scope,
118
+ reason: "network"
119
+ };
120
+ }
121
+ return {
122
+ ...scope,
123
+ reason: "unknown"
124
+ };
125
+ };
126
+ //# sourceMappingURL=updateError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["HotUpdaterError","InvalidUpdateResponseError","constructor","message","options","name","cause","undefined","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":[]}
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  import React, { useEffect, useState } from "react";
4
+ import { handleNotifyAppReady } from "./appReady.js";
4
5
  import { checkForUpdate } from "./checkForUpdate.js";
5
6
  import { useEventCallback } from "./hooks/useEventCallback.js";
6
- import { getBundleId, reload } from "./native.js";
7
- import { handleNotifyAppReady } from "./notifyAppReadyInsights.js";
7
+ import { getUpdateId, reload } from "./native.js";
8
8
  import { useHotUpdaterStore } from "./store.js";
9
- import { jsx as _jsx } from "react/jsx-runtime";
9
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
10
10
  export function init(options) {
11
11
  void handleNotifyAppReady(options);
12
12
  }
@@ -15,30 +15,55 @@ export function wrap(options) {
15
15
  reloadOnForceUpdate = true,
16
16
  ...restOptions
17
17
  } = options;
18
+
19
+ // Progress is subscribed only where it is rendered or reported, so progress
20
+ // events don't re-render the wrapped app.
21
+ const ProgressReporter = ({
22
+ onProgress
23
+ }) => {
24
+ const progress = useHotUpdaterStore(state => state.progress);
25
+ useEffect(() => {
26
+ onProgress(progress);
27
+ }, [progress]);
28
+ return null;
29
+ };
30
+ const FallbackWithProgress = ({
31
+ Fallback,
32
+ status,
33
+ message
34
+ }) => {
35
+ const progressState = useHotUpdaterStore(state => state);
36
+ return /*#__PURE__*/_jsx(Fallback, {
37
+ artifactType: progressState.artifactType,
38
+ details: progressState.details,
39
+ progress: progressState.progress,
40
+ status: status,
41
+ message: message
42
+ });
43
+ };
18
44
  return WrappedComponent => {
19
45
  const HotUpdaterHOC = props => {
20
- const progressState = useHotUpdaterStore(state => state);
21
- const progress = progressState.progress;
22
46
  const [message, setMessage] = useState(null);
23
47
  const [updateStatus, setUpdateStatus] = useState("CHECK_FOR_UPDATE");
24
48
  const initHotUpdater = useEventCallback(async () => {
25
49
  try {
26
50
  setUpdateStatus("CHECK_FOR_UPDATE");
51
+ const readiness = handleNotifyAppReady(restOptions);
27
52
  const updateInfo = await checkForUpdate({
28
- insights: restOptions.insights,
29
53
  client: restOptions.client,
30
54
  updateStrategy: restOptions.updateStrategy,
31
55
  requestHeaders: restOptions.requestHeaders,
32
56
  requestTimeout: restOptions.requestTimeout,
33
57
  onError: restOptions.onError
34
58
  });
59
+ await readiness;
35
60
  setMessage(updateInfo?.message ?? null);
36
61
  if (!updateInfo) {
37
62
  restOptions.onUpdateProcessCompleted?.({
38
63
  status: "UP_TO_DATE",
39
64
  shouldForceUpdate: false,
40
65
  message: null,
41
- id: getBundleId()
66
+ id: getUpdateId()
42
67
  });
43
68
  setUpdateStatus("UPDATE_PROCESS_COMPLETED");
44
69
  return;
@@ -78,34 +103,26 @@ export function wrap(options) {
78
103
  setUpdateStatus("UPDATE_PROCESS_COMPLETED");
79
104
  }
80
105
  });
81
- useEffect(() => {
82
- restOptions.onProgress?.(progress);
83
- }, [progress]);
84
-
85
- // Read the native launch report after the first render commit.
86
- useEffect(() => {
87
- void handleNotifyAppReady(restOptions);
88
- }, []);
89
106
 
90
107
  // Start update check
91
108
  useEffect(() => {
92
109
  initHotUpdater();
93
110
  }, []);
94
- if (restOptions.fallbackComponent && updateStatus !== "UPDATE_PROCESS_COMPLETED") {
95
- const Fallback = restOptions.fallbackComponent;
96
- return /*#__PURE__*/_jsx(Fallback, {
97
- artifactType: progressState.artifactType,
98
- details: progressState.details,
99
- downloadedBytes: progressState.downloadedBytes,
100
- progress: progress,
101
- status: updateStatus,
102
- message: message,
103
- totalBytes: progressState.totalBytes
104
- });
105
- }
106
- return /*#__PURE__*/_jsx(WrappedComponent, {
111
+ const content = restOptions.fallbackComponent && updateStatus !== "UPDATE_PROCESS_COMPLETED" ? /*#__PURE__*/_jsx(FallbackWithProgress, {
112
+ Fallback: restOptions.fallbackComponent,
113
+ status: updateStatus,
114
+ message: message
115
+ }) : /*#__PURE__*/_jsx(WrappedComponent, {
107
116
  ...props
108
117
  });
118
+ if (!restOptions.onProgress) {
119
+ return content;
120
+ }
121
+ return /*#__PURE__*/_jsxs(_Fragment, {
122
+ children: [content, /*#__PURE__*/_jsx(ProgressReporter, {
123
+ onProgress: restOptions.onProgress
124
+ })]
125
+ });
109
126
  };
110
127
  return HotUpdaterHOC;
111
128
  };
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useState","checkForUpdate","useEventCallback","getBundleId","reload","handleNotifyAppReady","useHotUpdaterStore","jsx","_jsx","init","options","wrap","reloadOnForceUpdate","restOptions","WrappedComponent","HotUpdaterHOC","props","progressState","state","progress","message","setMessage","updateStatus","setUpdateStatus","initHotUpdater","updateInfo","insights","client","updateStrategy","requestHeaders","requestTimeout","onError","onUpdateProcessCompleted","status","shouldForceUpdate","id","updateBundle","catch","error","isSuccess","Error","normalizedError","String","onProgress","fallbackComponent","Fallback","artifactType","details","downloadedBytes","totalBytes"],"sourceRoot":"../../src","sources":["wrap.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useState","handleNotifyAppReady","checkForUpdate","useEventCallback","getUpdateId","reload","useHotUpdaterStore","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","init","options","wrap","reloadOnForceUpdate","restOptions","ProgressReporter","onProgress","progress","state","FallbackWithProgress","Fallback","status","message","progressState","artifactType","details","WrappedComponent","HotUpdaterHOC","props","setMessage","updateStatus","setUpdateStatus","initHotUpdater","readiness","updateInfo","client","updateStrategy","requestHeaders","requestTimeout","onError","onUpdateProcessCompleted","shouldForceUpdate","id","updateBundle","catch","error","isSuccess","Error","normalizedError","String","content","fallbackComponent","children"],"sourceRoot":"../../src","sources":["wrap.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,23 @@
1
+ import type { HotUpdaterError } from "./error";
2
+ import { type NotifyAppReadyResult } from "./native";
3
+ import { emitPluginHook } from "./pluginHost";
4
+ export type NotifyAppReadyOptions = {
5
+ onNotifyAppReady?: (result: NotifyAppReadyResult) => void;
6
+ onError?: (error: HotUpdaterError | Error | unknown) => void;
7
+ };
8
+ /** Android 11+: why the app's previous main process exited, once the launch was read. */
9
+ export declare const getPreviousProcessExit: () => string | null;
10
+ /**
11
+ * The Release the running bundle was selected as: the active or stable
12
+ * selection that names it on the current channel.
13
+ */
14
+ export declare const getRunningReleaseId: (bundleId: string, channel: string) => string | null;
15
+ /** Reads this runtime's launch once native finalizes it and reports it to plugins. */
16
+ export declare const handleNotifyAppReady: (options: NotifyAppReadyOptions) => Promise<NotifyAppReadyResult | undefined>;
17
+ /**
18
+ * Calls a plugin hook after this runtime's `onAppReady`, so plugins see the
19
+ * launch before anything that followed it. The event is built now, from the
20
+ * state it describes, and only when a plugin listens.
21
+ */
22
+ export declare const emitAfterAppReady: typeof emitPluginHook;
23
+ //# sourceMappingURL=appReady.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appReady.d.ts","sourceRoot":"","sources":["../../../src/appReady.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAKL,KAAK,oBAAoB,EAE1B,MAAM,UAAU,CAAC;AAClB,OAAO,EAGL,cAAc,EACf,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,qBAAqB,GAAG;IAClC,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC1D,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,GAAG,KAAK,GAAG,OAAO,KAAK,IAAI,CAAC;CAC9D,CAAC;AAUF,yFAAyF;AACzF,eAAO,MAAM,sBAAsB,QAAO,MAAM,GAAG,IAA2B,CAAC;AAkB/E;;;GAGG;AACH,eAAO,MAAM,mBAAmB,aACpB,MAAM,WACP,MAAM,KACd,MAAM,GAAG,IAQX,CAAC;AA4DF,sFAAsF;AACtF,eAAO,MAAM,oBAAoB,YACtB,qBAAqB,KAC7B,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAI1C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,OAAO,cAWtC,CAAC"}
@@ -1,5 +1,6 @@
1
- import { type ArtifactInfo } from "@hot-updater/core";
1
+ import type { ReleaseTransitionKind, UpdateErrorResource, UpdateErrorStage } from "./clientPlugin";
2
2
  import type { HotUpdaterHttpClient } from "./httpClient";
3
+ export type { ReleaseTransitionKind };
3
4
  export interface CheckForUpdateOptions {
4
5
  /**
5
6
  * Update strategy
@@ -21,7 +22,7 @@ export interface CheckForUpdateOptions {
21
22
  */
22
23
  requestTimeout?: number;
23
24
  }
24
- export type CheckForUpdateResult = ArtifactInfo & {
25
+ export type CheckForUpdateResult = {
25
26
  readonly id: string;
26
27
  readonly message: string | null;
27
28
  readonly rolloutCohortCount: number;
@@ -36,10 +37,21 @@ export type CheckForUpdateResult = ArtifactInfo & {
36
37
  */
37
38
  updateBundle: () => Promise<boolean>;
38
39
  };
39
- export type ReleaseTransitionKind = "INSTALL" | "ADOPT_RELEASE" | "USE_EMBEDDED" | "USE_BUILTIN";
40
40
  export interface InternalCheckForUpdateOptions extends CheckForUpdateOptions {
41
- insights?: boolean;
42
41
  client: HotUpdaterHttpClient;
43
42
  }
43
+ /** The running bundle, the channel checked, and the update's target. */
44
+ type UpdateErrorScope = {
45
+ readonly channel: string;
46
+ readonly bundleId: string;
47
+ readonly updateStrategy: "fingerprint" | "appVersion";
48
+ readonly targetBundleId?: string;
49
+ readonly targetReleaseId?: string | null;
50
+ };
51
+ /**
52
+ * Tells plugins why an update failed, when it failed as an update. An error
53
+ * the SDK's JavaScript raised happened in `stage`, fetching `resource`.
54
+ */
55
+ export declare const reportUpdateError: (error: unknown, stage: UpdateErrorStage, resource: UpdateErrorResource | undefined, scope: UpdateErrorScope) => void;
44
56
  export declare function checkForUpdate(options: InternalCheckForUpdateOptions): Promise<CheckForUpdateResult | null>;
45
57
  //# sourceMappingURL=checkForUpdate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkForUpdate.d.ts","sourceRoot":"","sources":["../../../src/checkForUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,YAAY,EAGlB,MAAM,mBAAmB,CAAC;AAK3B,OAAO,KAAK,EAAE,oBAAoB,EAAyB,MAAM,cAAc,CAAC;AAyBhF,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,cAAc,EAAE,YAAY,GAAG,aAAa,CAAC;IAE7C;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG;IAChD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,QAAQ,CAAC;IACvC,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,cAAc,CAAC,EAAE,qBAAqB,CAAC;IAChD;;;OAGG;IACH,YAAY,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAC7B,SAAS,GACT,eAAe,GACf,cAAc,GACd,aAAa,CAAC;AAElB,MAAM,WAAW,6BAA8B,SAAQ,qBAAqB;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,oBAAoB,CAAC;CAC9B;AA2TD,wBAAsB,cAAc,CAClC,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAyDtC"}
1
+ {"version":3,"file":"checkForUpdate.d.ts","sourceRoot":"","sources":["../../../src/checkForUpdate.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EACV,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAoBzD,YAAY,EAAE,qBAAqB,EAAE,CAAC;AAEtC,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,cAAc,EAAE,YAAY,GAAG,aAAa,CAAC;IAE7C;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,QAAQ,CAAC;IACvC,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,cAAc,CAAC,EAAE,qBAAqB,CAAC;IAChD;;;OAGG;IACH,YAAY,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACtC,CAAC;AAEF,MAAM,WAAW,6BAA8B,SAAQ,qBAAqB;IAC1E,MAAM,EAAE,oBAAoB,CAAC;CAC9B;AAyCD,wEAAwE;AACxE,KAAK,gBAAgB,GAAG;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,cAAc,EAAE,aAAa,GAAG,YAAY,CAAC;IACtD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,UACrB,OAAO,SACP,gBAAgB,YACb,mBAAmB,GAAG,SAAS,SAClC,gBAAgB,KACtB,IAqBF,CAAC;AAuRF,wBAAsB,cAAc,CAClC,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CA2EtC"}
@@ -0,0 +1,2 @@
1
+ export { defineClientPlugin, type AppReadyResult, type BundleDownloadedInfo, type HotUpdaterClientContext, type HotUpdaterClientHooks, type HotUpdaterClientPlugin, type HotUpdaterClientStorage, type ReleaseTransitionKind, type UpdateCheckResult, type UpdateError, type UpdateErrorReason, type UpdateErrorResource, type UpdateErrorStage, type UpdateErrorTransport, type UpdateStrategy, } from "@hot-updater/protocol";
2
+ //# sourceMappingURL=clientPlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clientPlugin.d.ts","sourceRoot":"","sources":["../../../src/clientPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,cAAc,GACpB,MAAM,uBAAuB,CAAC"}