@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 +0,0 @@
1
- "use strict";
2
-
3
- var _core = require("@hot-updater/core");
4
- var _vitest = require("vitest");
5
- var _releaseCatalogCache = require("./releaseCatalogCache.js");
6
- const nativeModule = _vitest.vi.hoisted(() => ({}));
7
- _vitest.vi.mock("./specs/NativeHotUpdater", () => ({
8
- default: nativeModule
9
- }));
10
- const catalogId = "project-a";
11
- const scopeKey = (0, _core.createReleaseCatalogScopeKey)({
12
- channelKey: (0, _core.encodeChannelKey)("production"),
13
- platform: "ios",
14
- strategy: "APP_VERSION"
15
- });
16
- const input = {
17
- baseURL: "https://updates.example.com",
18
- expectedScope: {
19
- channelKey: (0, _core.encodeChannelKey)("production"),
20
- platform: "ios",
21
- strategy: "APP_VERSION"
22
- },
23
- requestHeaders: {
24
- "x-api-key": "key"
25
- },
26
- url: "https://updates.example.com/catalog"
27
- };
28
- const catalog = {
29
- catalogId,
30
- catalogHash: `sha256:${"a".repeat(64)}`,
31
- fallbackPolicy: "BUILTIN_IF_ACTIVE_INELIGIBLE",
32
- generation: 1,
33
- releases: [],
34
- schemaVersion: 1,
35
- scopeKey
36
- };
37
- (0, _vitest.describe)("Release Catalog native cache contract", () => {
38
- (0, _vitest.beforeEach)(() => {
39
- for (const key of Object.keys(nativeModule)) delete nativeModule[key];
40
- });
41
- (0, _vitest.it)("fails before fetching when the v1 native cache API is missing", async () => {
42
- const fetchMock = _vitest.vi.fn();
43
- _vitest.vi.stubGlobal("fetch", fetchMock);
44
- await (0, _vitest.expect)((0, _releaseCatalogCache.fetchReleaseCatalogWithCache)(input)).rejects.toThrow("Native module is missing 'getReleaseCatalogCache()'. Rebuild the native app before using Release catalogs.");
45
- (0, _vitest.expect)(fetchMock).not.toHaveBeenCalled();
46
- });
47
- (0, _vitest.it)("uses the network when native cache I/O fails", async () => {
48
- nativeModule.getReleaseCatalogCache = _vitest.vi.fn().mockRejectedValue(new Error("read"));
49
- nativeModule.setReleaseCatalogCache = _vitest.vi.fn().mockRejectedValue(new Error("write"));
50
- nativeModule.removeReleaseCatalogCache = _vitest.vi.fn().mockRejectedValue(new Error("remove"));
51
- const fetchMock = _vitest.vi.fn().mockResolvedValue(new Response(JSON.stringify(catalog), {
52
- headers: {
53
- ETag: '"v1"'
54
- },
55
- status: 200
56
- }));
57
- _vitest.vi.stubGlobal("fetch", fetchMock);
58
- await (0, _vitest.expect)((0, _releaseCatalogCache.fetchReleaseCatalogWithCache)(input)).resolves.toEqual(catalog);
59
- (0, _vitest.expect)(fetchMock).toHaveBeenCalledOnce();
60
- (0, _vitest.expect)(nativeModule.getReleaseCatalogCache).toHaveBeenCalledOnce();
61
- (0, _vitest.expect)(nativeModule.setReleaseCatalogCache).toHaveBeenCalledOnce();
62
- });
63
- });
64
- //# sourceMappingURL=releaseCatalogCacheNativeContract.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_core","require","_vitest","_releaseCatalogCache","nativeModule","vi","hoisted","mock","default","catalogId","scopeKey","createReleaseCatalogScopeKey","channelKey","encodeChannelKey","platform","strategy","input","baseURL","expectedScope","requestHeaders","url","catalog","catalogHash","repeat","fallbackPolicy","generation","releases","schemaVersion","describe","beforeEach","key","Object","keys","it","fetchMock","fn","stubGlobal","expect","fetchReleaseCatalogWithCache","rejects","toThrow","not","toHaveBeenCalled","getReleaseCatalogCache","mockRejectedValue","Error","setReleaseCatalogCache","removeReleaseCatalogCache","mockResolvedValue","Response","JSON","stringify","headers","ETag","status","resolves","toEqual","toHaveBeenCalledOnce"],"sourceRoot":"../../src","sources":["releaseCatalogCacheNativeContract.spec.ts"],"mappings":"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","ignoreList":[]}
@@ -1,76 +0,0 @@
1
- "use strict";
2
-
3
- var _react = require("@testing-library/react");
4
- var _react2 = require("react");
5
- var _vitest = require("vitest");
6
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } // @vitest-environment jsdom
7
- const listeners = _vitest.vi.hoisted(() => new Map());
8
- _vitest.vi.mock("./native", () => ({
9
- addListener: _vitest.vi.fn((eventName, listener) => {
10
- listeners.set(eventName, listener);
11
- return () => {
12
- listeners.delete(eventName);
13
- };
14
- })
15
- }));
16
- (0, _vitest.describe)("hotUpdaterStore notification scheduling", () => {
17
- (0, _vitest.beforeEach)(() => {
18
- listeners.clear();
19
- _vitest.vi.resetModules();
20
- });
21
- (0, _vitest.afterEach)(() => {
22
- (0, _react.cleanup)();
23
- _vitest.vi.unstubAllGlobals();
24
- });
25
- (0, _vitest.it)("keeps progress notifications from exceeding React's maximum update depth", async () => {
26
- // Given
27
- const frameCallbacks = [];
28
- _vitest.vi.stubGlobal("requestAnimationFrame", callback => {
29
- frameCallbacks.push(callback);
30
- return frameCallbacks.length;
31
- });
32
- const {
33
- hotUpdaterStore
34
- } = await Promise.resolve().then(() => _interopRequireWildcard(require("./store")));
35
- const emitProgress = listeners.get("onProgress");
36
- const Consumer = () => {
37
- const [progress, setProgress] = (0, _react2.useState)(0);
38
- (0, _react2.useLayoutEffect)(() => {
39
- const unsubscribe = hotUpdaterStore.subscribe(() => {
40
- setProgress(hotUpdaterStore.getSnapshot().progress);
41
- });
42
- return () => {
43
- unsubscribe();
44
- };
45
- }, []);
46
- (0, _react2.useLayoutEffect)(() => {
47
- if (progress >= 1) {
48
- return;
49
- }
50
- const nextProgress = Math.min(1, progress + 0.01);
51
- emitProgress?.({
52
- artifactType: "archive",
53
- downloadedBytes: nextProgress * 1_000_000,
54
- progress: nextProgress,
55
- totalBytes: 1_000_000
56
- });
57
- }, [progress]);
58
- return null;
59
- };
60
-
61
- // When
62
- (0, _react.render)(/*#__PURE__*/(0, _react2.createElement)(Consumer));
63
- for (let frame = 0; frame < 200 && hotUpdaterStore.getSnapshot().progress < 1; frame++) {
64
- const frameCallback = frameCallbacks.shift();
65
- (0, _vitest.expect)(frameCallback).toBeTypeOf("function");
66
- await new Promise(resolve => setImmediate(resolve));
67
- await (0, _react2.act)(async () => {
68
- frameCallback?.(0);
69
- });
70
- }
71
-
72
- // Then
73
- (0, _vitest.expect)(hotUpdaterStore.getSnapshot().progress).toBe(1);
74
- });
75
- });
76
- //# sourceMappingURL=store.notification.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","require","_react2","_vitest","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","listeners","vi","hoisted","Map","mock","addListener","fn","eventName","listener","delete","describe","beforeEach","clear","resetModules","afterEach","cleanup","unstubAllGlobals","it","frameCallbacks","stubGlobal","callback","push","length","hotUpdaterStore","Promise","resolve","then","emitProgress","Consumer","progress","setProgress","useState","useLayoutEffect","unsubscribe","subscribe","getSnapshot","nextProgress","Math","min","artifactType","downloadedBytes","totalBytes","render","createElement","frame","frameCallback","shift","expect","toBeTypeOf","setImmediate","act","toBe"],"sourceRoot":"../../src","sources":["store.notification.spec.ts"],"mappings":"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","ignoreList":[]}
@@ -1,316 +0,0 @@
1
- "use strict";
2
-
3
- var _vitest = require("vitest");
4
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
5
- const listeners = _vitest.vi.hoisted(() => new Map());
6
- _vitest.vi.mock("./native", () => ({
7
- addListener: _vitest.vi.fn((eventName, listener) => {
8
- listeners.set(eventName, listener);
9
- return () => {
10
- listeners.delete(eventName);
11
- };
12
- })
13
- }));
14
- const importStore = async () => {
15
- const {
16
- hotUpdaterStore
17
- } = await Promise.resolve().then(() => _interopRequireWildcard(require("./store")));
18
- return hotUpdaterStore;
19
- };
20
- (0, _vitest.describe)("hotUpdaterStore", () => {
21
- (0, _vitest.beforeEach)(() => {
22
- listeners.clear();
23
- _vitest.vi.resetModules();
24
- });
25
- (0, _vitest.it)("does not notify subscribers when state values are unchanged", async () => {
26
- const store = await importStore();
27
- const listener = _vitest.vi.fn();
28
- const unsubscribe = store.subscribe(listener);
29
- store.setState({});
30
- store.setState({
31
- progress: 0
32
- });
33
- store.setState({
34
- isUpdateDownloaded: false
35
- });
36
- (0, _vitest.expect)(listener).not.toHaveBeenCalled();
37
- unsubscribe();
38
- });
39
- (0, _vitest.it)("notifies subscribers only when progress events change the snapshot", async () => {
40
- const store = await importStore();
41
- const listener = _vitest.vi.fn();
42
- const emitProgress = listeners.get("onProgress");
43
- (0, _vitest.expect)(emitProgress).toBeTypeOf("function");
44
- const unsubscribe = store.subscribe(listener);
45
- emitProgress?.({
46
- artifactType: "archive",
47
- progress: 0.5
48
- });
49
- emitProgress?.({
50
- artifactType: "archive",
51
- progress: 0.5
52
- });
53
- emitProgress?.({
54
- artifactType: "archive",
55
- progress: 1
56
- });
57
- store.setState({
58
- isUpdateDownloaded: true
59
- });
60
- (0, _vitest.expect)(listener).toHaveBeenCalledTimes(2);
61
- (0, _vitest.expect)(store.getSnapshot()).toEqual({
62
- artifactType: "archive",
63
- details: null,
64
- downloadedBytes: undefined,
65
- isUpdateDownloaded: true,
66
- progress: 1,
67
- totalBytes: undefined
68
- });
69
- unsubscribe();
70
- });
71
- (0, _vitest.it)("stores archive byte metadata and notifies when only bytes change", async () => {
72
- const store = await importStore();
73
- const listener = _vitest.vi.fn();
74
- const emitProgress = listeners.get("onProgress");
75
- const unsubscribe = store.subscribe(listener);
76
- emitProgress?.({
77
- artifactType: "archive",
78
- downloadedBytes: 100.4,
79
- progress: 0.5,
80
- totalBytes: 1_000
81
- });
82
- emitProgress?.({
83
- artifactType: "archive",
84
- downloadedBytes: 250,
85
- progress: 0.5,
86
- totalBytes: 1_000
87
- });
88
- (0, _vitest.expect)(listener).toHaveBeenCalledTimes(2);
89
- (0, _vitest.expect)(store.getSnapshot()).toEqual({
90
- artifactType: "archive",
91
- details: null,
92
- downloadedBytes: 250,
93
- isUpdateDownloaded: false,
94
- progress: 0.5,
95
- totalBytes: 1_000
96
- });
97
- unsubscribe();
98
- });
99
- (0, _vitest.it)("stores manifest progress metadata while keeping overall progress", async () => {
100
- const store = await importStore();
101
- const emitProgress = listeners.get("onProgress");
102
- (0, _vitest.expect)(emitProgress).toBeTypeOf("function");
103
- emitProgress?.({
104
- artifactType: "diff",
105
- details: {
106
- completedFilesCount: 1,
107
- files: [{
108
- downloadPath: "index.ios.bundle",
109
- order: 0,
110
- path: "index.ios.bundle",
111
- progress: 1,
112
- status: "downloaded"
113
- }, {
114
- downloadPath: "assets/logo.png",
115
- order: 1,
116
- path: "assets/logo.png",
117
- progress: 0.5,
118
- status: "downloading"
119
- }],
120
- totalFilesCount: 2
121
- },
122
- progress: 0.42
123
- });
124
- (0, _vitest.expect)(store.getSnapshot()).toEqual({
125
- artifactType: "diff",
126
- details: {
127
- completedFilesCount: 1,
128
- files: [{
129
- downloadPath: "index.ios.bundle",
130
- order: 0,
131
- path: "index.ios.bundle",
132
- progress: 1,
133
- status: "downloaded"
134
- }, {
135
- downloadPath: "assets/logo.png",
136
- order: 1,
137
- path: "assets/logo.png",
138
- progress: 0.5,
139
- status: "downloading"
140
- }],
141
- totalFilesCount: 2
142
- },
143
- downloadedBytes: undefined,
144
- isUpdateDownloaded: false,
145
- progress: 0.42,
146
- totalBytes: undefined
147
- });
148
- });
149
- (0, _vitest.it)("preserves patch download metadata for manifest diff files", async () => {
150
- const store = await importStore();
151
- const emitProgress = listeners.get("onProgress");
152
- emitProgress?.({
153
- artifactType: "diff",
154
- details: {
155
- completedFilesCount: 0,
156
- files: [{
157
- downloadPath: "index.ios.bundle.bsdiff",
158
- order: 0,
159
- path: "index.ios.bundle",
160
- progress: 0.4,
161
- status: "downloading"
162
- }],
163
- totalFilesCount: 1
164
- },
165
- progress: 0.32
166
- });
167
- (0, _vitest.expect)(store.getSnapshot().details?.files).toEqual([{
168
- downloadPath: "index.ios.bundle.bsdiff",
169
- downloadedBytes: undefined,
170
- order: 0,
171
- path: "index.ios.bundle",
172
- progress: 0.4,
173
- status: "downloading",
174
- totalBytes: undefined
175
- }]);
176
- });
177
- (0, _vitest.it)("stores diff snapshot transitions from downloading to downloaded", async () => {
178
- const store = await importStore();
179
- const emitProgress = listeners.get("onProgress");
180
- emitProgress?.({
181
- artifactType: "diff",
182
- details: {
183
- completedFilesCount: 0,
184
- files: [{
185
- order: 0,
186
- path: "index.ios.bundle",
187
- progress: 0.6,
188
- status: "downloading"
189
- }, {
190
- order: 1,
191
- path: "assets/logo.png",
192
- progress: 0,
193
- status: "pending"
194
- }],
195
- totalFilesCount: 2
196
- },
197
- progress: 0.4
198
- });
199
- emitProgress?.({
200
- artifactType: "diff",
201
- details: {
202
- completedFilesCount: 1,
203
- files: [{
204
- downloadPath: "index.ios.bundle",
205
- order: 0,
206
- path: "index.ios.bundle",
207
- progress: 1,
208
- status: "downloaded"
209
- }, {
210
- downloadPath: "assets/logo.png",
211
- order: 1,
212
- path: "assets/logo.png",
213
- progress: 0,
214
- status: "pending"
215
- }],
216
- totalFilesCount: 2
217
- },
218
- progress: 0.6
219
- });
220
- (0, _vitest.expect)(store.getSnapshot()).toEqual({
221
- artifactType: "diff",
222
- details: {
223
- completedFilesCount: 1,
224
- files: [{
225
- downloadPath: "index.ios.bundle",
226
- order: 0,
227
- path: "index.ios.bundle",
228
- progress: 1,
229
- status: "downloaded"
230
- }, {
231
- downloadPath: "assets/logo.png",
232
- order: 1,
233
- path: "assets/logo.png",
234
- progress: 0,
235
- status: "pending"
236
- }],
237
- totalFilesCount: 2
238
- },
239
- downloadedBytes: undefined,
240
- isUpdateDownloaded: false,
241
- progress: 0.6,
242
- totalBytes: undefined
243
- });
244
- });
245
- (0, _vitest.it)("clears manifest metadata when archive progress events arrive", async () => {
246
- const store = await importStore();
247
- const emitProgress = listeners.get("onProgress");
248
- emitProgress?.({
249
- artifactType: "diff",
250
- details: {
251
- completedFilesCount: 2,
252
- files: [{
253
- order: 0,
254
- path: "index.ios.bundle",
255
- progress: 1,
256
- status: "downloaded"
257
- }, {
258
- order: 1,
259
- path: "assets/logo.png",
260
- progress: 1,
261
- status: "downloaded"
262
- }, {
263
- order: 2,
264
- path: "assets/bg.png",
265
- progress: 0,
266
- status: "pending"
267
- }],
268
- totalFilesCount: 3
269
- },
270
- progress: 0.9
271
- });
272
- emitProgress?.({
273
- artifactType: "archive",
274
- progress: 0.25
275
- });
276
- (0, _vitest.expect)(store.getSnapshot()).toEqual({
277
- artifactType: "archive",
278
- details: null,
279
- downloadedBytes: undefined,
280
- isUpdateDownloaded: false,
281
- progress: 0.25,
282
- totalBytes: undefined
283
- });
284
- });
285
- (0, _vitest.it)("clears stale manifest metadata even when archive events omit optional fields", async () => {
286
- const store = await importStore();
287
- const emitProgress = listeners.get("onProgress");
288
- emitProgress?.({
289
- artifactType: "diff",
290
- details: {
291
- completedFilesCount: 0,
292
- files: [{
293
- order: 0,
294
- path: "manifest.asset.png",
295
- progress: 0,
296
- status: "failed"
297
- }],
298
- totalFilesCount: 1
299
- },
300
- progress: 0.2
301
- });
302
- emitProgress?.({
303
- artifactType: "archive",
304
- progress: 0.4
305
- });
306
- (0, _vitest.expect)(store.getSnapshot()).toEqual({
307
- artifactType: "archive",
308
- details: null,
309
- downloadedBytes: undefined,
310
- isUpdateDownloaded: false,
311
- progress: 0.4,
312
- totalBytes: undefined
313
- });
314
- });
315
- });
316
- //# sourceMappingURL=store.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_vitest","require","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","listeners","vi","hoisted","Map","mock","addListener","fn","eventName","listener","delete","importStore","hotUpdaterStore","Promise","resolve","then","describe","beforeEach","clear","resetModules","it","store","unsubscribe","subscribe","setState","progress","isUpdateDownloaded","expect","not","toHaveBeenCalled","emitProgress","toBeTypeOf","artifactType","toHaveBeenCalledTimes","getSnapshot","toEqual","details","downloadedBytes","undefined","totalBytes","completedFilesCount","files","downloadPath","order","path","status","totalFilesCount"],"sourceRoot":"../../src","sources":["store.spec.ts"],"mappings":"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","ignoreList":[]}