@hot-updater/react-native 1.0.0-rc.1 → 1.0.0-rc.15

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 (227) 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 +651 -637
  4. package/android/src/main/java/com/hotupdater/BundleMetadata.kt +10 -0
  5. package/android/src/main/java/com/hotupdater/HotUpdaterException.kt +0 -13
  6. package/android/src/main/java/com/hotupdater/HotUpdaterImpl.kt +10 -14
  7. package/android/src/main/java/com/hotupdater/HotUpdaterRecoveryManager.kt +37 -54
  8. package/android/src/main/java/com/hotupdater/HotUpdaterRecoveryState.kt +64 -0
  9. package/android/src/main/java/com/hotupdater/OkHttpDownloadService.kt +19 -0
  10. package/android/src/main/java/com/hotupdater/TarArchiveInputStream.kt +214 -375
  11. package/android/src/main/java/com/hotupdater/TarBrArchiveExtractor.kt +119 -0
  12. package/android/src/newarch/HotUpdater.kt +7 -9
  13. package/android/src/newarch/HotUpdaterModule.kt +40 -20
  14. package/android/src/oldarch/HotUpdater.kt +7 -9
  15. package/android/src/oldarch/HotUpdaterModule.kt +40 -20
  16. package/android/src/test/java/com/hotupdater/BundleFileStorageServiceTest.kt +1126 -74
  17. package/android/src/test/java/com/hotupdater/HotUpdaterImplTest.kt +4 -5
  18. package/android/src/test/java/com/hotupdater/HotUpdaterRecoveryStateTest.kt +97 -0
  19. package/android/src/test/java/com/hotupdater/PendingCrashRecoveryTest.kt +44 -0
  20. package/android/src/test/java/com/hotupdater/TarBrArchiveExtractorTest.kt +206 -0
  21. package/ios/HotUpdater/Internal/BrotliFileDecompressor.swift +167 -0
  22. package/ios/HotUpdater/Internal/BuiltInAssetResolver.swift +196 -0
  23. package/ios/HotUpdater/Internal/BundleFileStorageService.swift +773 -1016
  24. package/ios/HotUpdater/Internal/BundleMetadata.swift +5 -0
  25. package/ios/HotUpdater/Internal/FileUtilities.swift +64 -0
  26. package/ios/HotUpdater/Internal/HotUpdater-Bridging-Header.h +0 -1
  27. package/ios/HotUpdater/Internal/HotUpdater.mm +5 -27
  28. package/ios/HotUpdater/Internal/HotUpdaterImpl.swift +149 -51
  29. package/ios/HotUpdater/Internal/NotificationExtension.swift +0 -2
  30. package/ios/HotUpdater/Internal/TarArchiveExtractor.swift +182 -311
  31. package/ios/HotUpdater/Internal/URLSessionDownloadService.swift +13 -72
  32. package/ios/HotUpdater/Recovery/HotUpdaterRecovery.h +16 -0
  33. package/ios/HotUpdater/Recovery/HotUpdaterRecovery.mm +83 -0
  34. package/ios/HotUpdater/Recovery/HotUpdaterRecoveryHooks.mm +49 -0
  35. package/lib/commonjs/checkForUpdate.js +32 -23
  36. package/lib/commonjs/checkForUpdate.js.map +1 -1
  37. package/lib/commonjs/checkForUpdate.releaseCatalog.spec.js +97 -28
  38. package/lib/commonjs/checkForUpdate.releaseCatalog.spec.js.map +1 -1
  39. package/lib/commonjs/error.js +4 -13
  40. package/lib/commonjs/error.js.map +1 -1
  41. package/lib/commonjs/fetchJSON.js +9 -2
  42. package/lib/commonjs/fetchJSON.js.map +1 -1
  43. package/lib/commonjs/httpClient.js +46 -29
  44. package/lib/commonjs/httpClient.js.map +1 -1
  45. package/lib/commonjs/httpClient.spec.js +57 -5
  46. package/lib/commonjs/httpClient.spec.js.map +1 -1
  47. package/lib/commonjs/index.js +31 -14
  48. package/lib/commonjs/index.js.map +1 -1
  49. package/lib/commonjs/index.spec.js +56 -11
  50. package/lib/commonjs/index.spec.js.map +1 -1
  51. package/lib/commonjs/native.js +15 -14
  52. package/lib/commonjs/native.js.map +1 -1
  53. package/lib/commonjs/native.spec.js +128 -22
  54. package/lib/commonjs/native.spec.js.map +1 -1
  55. package/lib/commonjs/{notifyAppReadyAnalytics.boundary.spec.js → notifyAppReadyInsights.boundary.spec.js} +28 -21
  56. package/lib/commonjs/notifyAppReadyInsights.boundary.spec.js.map +1 -0
  57. package/lib/commonjs/notifyAppReadyInsights.js +188 -0
  58. package/lib/commonjs/notifyAppReadyInsights.js.map +1 -0
  59. package/lib/commonjs/{notifyAppReadyAnalytics.spec.js → notifyAppReadyInsights.spec.js} +161 -29
  60. package/lib/commonjs/notifyAppReadyInsights.spec.js.map +1 -0
  61. package/lib/commonjs/{notifyAppReadyAnalytics.test-utils.js → notifyAppReadyInsights.test-utils.js} +3 -3
  62. package/lib/commonjs/notifyAppReadyInsights.test-utils.js.map +1 -0
  63. package/lib/commonjs/{notifyAppReadyAnalytics.transport.spec.js → notifyAppReadyInsights.transport.spec.js} +14 -7
  64. package/lib/commonjs/notifyAppReadyInsights.transport.spec.js.map +1 -0
  65. package/lib/commonjs/sdkVersion.js +1 -1
  66. package/lib/commonjs/sdkVersion.js.map +1 -1
  67. package/lib/commonjs/specs/NativeHotUpdater.js.map +1 -1
  68. package/lib/commonjs/store.js +3 -10
  69. package/lib/commonjs/store.js.map +1 -1
  70. package/lib/commonjs/store.notification.spec.js +12 -4
  71. package/lib/commonjs/store.notification.spec.js.map +1 -1
  72. package/lib/commonjs/store.spec.js +2 -136
  73. package/lib/commonjs/store.spec.js.map +1 -1
  74. package/lib/commonjs/wrap.js +11 -12
  75. package/lib/commonjs/wrap.js.map +1 -1
  76. package/lib/commonjs/wrap.spec.js +97 -25
  77. package/lib/commonjs/wrap.spec.js.map +1 -1
  78. package/lib/module/checkForUpdate.js +32 -23
  79. package/lib/module/checkForUpdate.js.map +1 -1
  80. package/lib/module/checkForUpdate.releaseCatalog.spec.js +97 -28
  81. package/lib/module/checkForUpdate.releaseCatalog.spec.js.map +1 -1
  82. package/lib/module/error.js +4 -13
  83. package/lib/module/error.js.map +1 -1
  84. package/lib/module/fetchJSON.js +7 -1
  85. package/lib/module/fetchJSON.js.map +1 -1
  86. package/lib/module/httpClient.js +48 -31
  87. package/lib/module/httpClient.js.map +1 -1
  88. package/lib/module/httpClient.spec.js +57 -5
  89. package/lib/module/httpClient.spec.js.map +1 -1
  90. package/lib/module/index.js +32 -15
  91. package/lib/module/index.js.map +1 -1
  92. package/lib/module/index.spec.js +56 -11
  93. package/lib/module/index.spec.js.map +1 -1
  94. package/lib/module/native.js +13 -12
  95. package/lib/module/native.js.map +1 -1
  96. package/lib/module/native.spec.js +128 -22
  97. package/lib/module/native.spec.js.map +1 -1
  98. package/lib/module/{notifyAppReadyAnalytics.boundary.spec.js → notifyAppReadyInsights.boundary.spec.js} +23 -16
  99. package/lib/module/notifyAppReadyInsights.boundary.spec.js.map +1 -0
  100. package/lib/module/notifyAppReadyInsights.js +181 -0
  101. package/lib/module/notifyAppReadyInsights.js.map +1 -0
  102. package/lib/module/{notifyAppReadyAnalytics.spec.js → notifyAppReadyInsights.spec.js} +153 -21
  103. package/lib/module/notifyAppReadyInsights.spec.js.map +1 -0
  104. package/lib/module/{notifyAppReadyAnalytics.test-utils.js → notifyAppReadyInsights.test-utils.js} +3 -3
  105. package/lib/module/notifyAppReadyInsights.test-utils.js.map +1 -0
  106. package/lib/module/{notifyAppReadyAnalytics.transport.spec.js → notifyAppReadyInsights.transport.spec.js} +11 -4
  107. package/lib/module/notifyAppReadyInsights.transport.spec.js.map +1 -0
  108. package/lib/module/sdkVersion.js +1 -1
  109. package/lib/module/sdkVersion.js.map +1 -1
  110. package/lib/module/specs/NativeHotUpdater.js.map +1 -1
  111. package/lib/module/store.js +3 -10
  112. package/lib/module/store.js.map +1 -1
  113. package/lib/module/store.notification.spec.js +12 -4
  114. package/lib/module/store.notification.spec.js.map +1 -1
  115. package/lib/module/store.spec.js +2 -136
  116. package/lib/module/store.spec.js.map +1 -1
  117. package/lib/module/wrap.js +11 -12
  118. package/lib/module/wrap.js.map +1 -1
  119. package/lib/module/wrap.spec.js +99 -25
  120. package/lib/module/wrap.spec.js.map +1 -1
  121. package/lib/typescript/commonjs/checkForUpdate.d.ts +2 -3
  122. package/lib/typescript/commonjs/checkForUpdate.d.ts.map +1 -1
  123. package/lib/typescript/commonjs/error.d.ts +4 -13
  124. package/lib/typescript/commonjs/error.d.ts.map +1 -1
  125. package/lib/typescript/commonjs/fetchJSON.d.ts +4 -0
  126. package/lib/typescript/commonjs/fetchJSON.d.ts.map +1 -1
  127. package/lib/typescript/commonjs/httpClient.d.ts +6 -6
  128. package/lib/typescript/commonjs/httpClient.d.ts.map +1 -1
  129. package/lib/typescript/commonjs/index.d.ts +4 -7
  130. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  131. package/lib/typescript/commonjs/native.d.ts +5 -9
  132. package/lib/typescript/commonjs/native.d.ts.map +1 -1
  133. package/lib/typescript/commonjs/notifyAppReadyInsights.d.ts +25 -0
  134. package/lib/typescript/commonjs/notifyAppReadyInsights.d.ts.map +1 -0
  135. package/lib/typescript/commonjs/notifyAppReadyInsights.test-utils.d.ts +8 -0
  136. package/lib/typescript/commonjs/notifyAppReadyInsights.test-utils.d.ts.map +1 -0
  137. package/lib/typescript/commonjs/sdkVersion.d.ts +1 -1
  138. package/lib/typescript/commonjs/sdkVersion.d.ts.map +1 -1
  139. package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts +8 -35
  140. package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts.map +1 -1
  141. package/lib/typescript/commonjs/store.d.ts +1 -3
  142. package/lib/typescript/commonjs/store.d.ts.map +1 -1
  143. package/lib/typescript/commonjs/wrap.types.d.ts +5 -8
  144. package/lib/typescript/commonjs/wrap.types.d.ts.map +1 -1
  145. package/lib/typescript/module/checkForUpdate.d.ts +2 -3
  146. package/lib/typescript/module/checkForUpdate.d.ts.map +1 -1
  147. package/lib/typescript/module/error.d.ts +4 -13
  148. package/lib/typescript/module/error.d.ts.map +1 -1
  149. package/lib/typescript/module/fetchJSON.d.ts +4 -0
  150. package/lib/typescript/module/fetchJSON.d.ts.map +1 -1
  151. package/lib/typescript/module/httpClient.d.ts +6 -6
  152. package/lib/typescript/module/httpClient.d.ts.map +1 -1
  153. package/lib/typescript/module/index.d.ts +4 -7
  154. package/lib/typescript/module/index.d.ts.map +1 -1
  155. package/lib/typescript/module/native.d.ts +5 -9
  156. package/lib/typescript/module/native.d.ts.map +1 -1
  157. package/lib/typescript/module/notifyAppReadyInsights.d.ts +25 -0
  158. package/lib/typescript/module/notifyAppReadyInsights.d.ts.map +1 -0
  159. package/lib/typescript/module/notifyAppReadyInsights.test-utils.d.ts +8 -0
  160. package/lib/typescript/module/notifyAppReadyInsights.test-utils.d.ts.map +1 -0
  161. package/lib/typescript/module/sdkVersion.d.ts +1 -1
  162. package/lib/typescript/module/sdkVersion.d.ts.map +1 -1
  163. package/lib/typescript/module/specs/NativeHotUpdater.d.ts +8 -35
  164. package/lib/typescript/module/specs/NativeHotUpdater.d.ts.map +1 -1
  165. package/lib/typescript/module/store.d.ts +1 -3
  166. package/lib/typescript/module/store.d.ts.map +1 -1
  167. package/lib/typescript/module/wrap.types.d.ts +5 -8
  168. package/lib/typescript/module/wrap.types.d.ts.map +1 -1
  169. package/package.json +3 -3
  170. package/src/checkForUpdate.releaseCatalog.spec.ts +137 -61
  171. package/src/checkForUpdate.ts +35 -29
  172. package/src/error.ts +4 -14
  173. package/src/fetchJSON.ts +12 -1
  174. package/src/httpClient.spec.ts +70 -5
  175. package/src/httpClient.ts +78 -64
  176. package/src/index.spec.ts +59 -11
  177. package/src/index.ts +41 -17
  178. package/src/native.spec.ts +133 -22
  179. package/src/native.ts +21 -32
  180. package/src/{notifyAppReadyAnalytics.boundary.spec.ts → notifyAppReadyInsights.boundary.spec.ts} +25 -17
  181. package/src/{notifyAppReadyAnalytics.spec.ts → notifyAppReadyInsights.spec.ts} +141 -22
  182. package/src/{notifyAppReadyAnalytics.test-utils.ts → notifyAppReadyInsights.test-utils.ts} +4 -4
  183. package/src/{notifyAppReadyAnalytics.transport.spec.ts → notifyAppReadyInsights.transport.spec.ts} +13 -5
  184. package/src/notifyAppReadyInsights.ts +293 -0
  185. package/src/sdkVersion.ts +1 -1
  186. package/src/specs/NativeHotUpdater.ts +8 -36
  187. package/src/store.notification.spec.ts +13 -3
  188. package/src/store.spec.ts +0 -157
  189. package/src/store.ts +2 -23
  190. package/src/wrap.spec.ts +109 -31
  191. package/src/wrap.tsx +11 -11
  192. package/src/wrap.types.ts +5 -8
  193. package/android/src/main/java/com/hotupdater/DecompressService.kt +0 -89
  194. package/android/src/main/java/com/hotupdater/DecompressionStrategy.kt +0 -26
  195. package/android/src/main/java/com/hotupdater/TarBrDecompressionStrategy.kt +0 -117
  196. package/android/src/main/java/com/hotupdater/TarGzDecompressionStrategy.kt +0 -117
  197. package/android/src/main/java/com/hotupdater/ZipDecompressionStrategy.kt +0 -192
  198. package/android/src/test/java/com/hotupdater/TarArchiveInputStreamTest.kt +0 -68
  199. package/ios/HotUpdater/Internal/ArchiveExtractionUtilities.swift +0 -178
  200. package/ios/HotUpdater/Internal/DecompressService.swift +0 -112
  201. package/ios/HotUpdater/Internal/DecompressionStrategy.swift +0 -22
  202. package/ios/HotUpdater/Internal/StreamingTarArchiveExtractor.swift +0 -370
  203. package/ios/HotUpdater/Internal/TarBrDecompressionStrategy.swift +0 -39
  204. package/ios/HotUpdater/Internal/TarGzDecompressionStrategy.swift +0 -59
  205. package/ios/HotUpdater/Internal/ZipArchiveExtractor.swift +0 -482
  206. package/ios/HotUpdater/Internal/ZipDecompressionStrategy.swift +0 -56
  207. package/lib/commonjs/notifyAppReadyAnalytics.boundary.spec.js.map +0 -1
  208. package/lib/commonjs/notifyAppReadyAnalytics.js +0 -133
  209. package/lib/commonjs/notifyAppReadyAnalytics.js.map +0 -1
  210. package/lib/commonjs/notifyAppReadyAnalytics.spec.js.map +0 -1
  211. package/lib/commonjs/notifyAppReadyAnalytics.test-utils.js.map +0 -1
  212. package/lib/commonjs/notifyAppReadyAnalytics.transport.spec.js.map +0 -1
  213. package/lib/module/notifyAppReadyAnalytics.boundary.spec.js.map +0 -1
  214. package/lib/module/notifyAppReadyAnalytics.js +0 -128
  215. package/lib/module/notifyAppReadyAnalytics.js.map +0 -1
  216. package/lib/module/notifyAppReadyAnalytics.spec.js.map +0 -1
  217. package/lib/module/notifyAppReadyAnalytics.test-utils.js.map +0 -1
  218. package/lib/module/notifyAppReadyAnalytics.transport.spec.js.map +0 -1
  219. package/lib/typescript/commonjs/notifyAppReadyAnalytics.d.ts +0 -13
  220. package/lib/typescript/commonjs/notifyAppReadyAnalytics.d.ts.map +0 -1
  221. package/lib/typescript/commonjs/notifyAppReadyAnalytics.test-utils.d.ts +0 -8
  222. package/lib/typescript/commonjs/notifyAppReadyAnalytics.test-utils.d.ts.map +0 -1
  223. package/lib/typescript/module/notifyAppReadyAnalytics.d.ts +0 -13
  224. package/lib/typescript/module/notifyAppReadyAnalytics.d.ts.map +0 -1
  225. package/lib/typescript/module/notifyAppReadyAnalytics.test-utils.d.ts +0 -8
  226. package/lib/typescript/module/notifyAppReadyAnalytics.test-utils.d.ts.map +0 -1
  227. package/src/notifyAppReadyAnalytics.ts +0 -194
@@ -1 +1 @@
1
- {"version":3,"names":["fetchJSON","url","requestHeaders","requestTimeout","controller","AbortController","timeoutId","setTimeout","abort","response","fetch","headers","Accept","signal","status","Error","statusText","json","error","name","clearTimeout"],"sourceRoot":"../../src","sources":["fetchJSON.ts"],"mappings":";;AAAA,OAAO,MAAMA,SAAS,GAAG,MAAAA,CAAU;EACjCC,GAAG;EACHC,cAAc;EACdC,cAAc,GAAG;AAKnB,CAAC,KAAiB;EAChB,MAAMC,UAAU,GAAG,IAAIC,eAAe,CAAC,CAAC;EACxC,MAAMC,SAAS,GAAGC,UAAU,CAAC,MAAMH,UAAU,CAACI,KAAK,CAAC,CAAC,EAAEL,cAAc,CAAC;EAEtE,IAAI;IACF,MAAMM,QAAQ,GAAG,MAAMC,KAAK,CAACT,GAAG,EAAE;MAChCU,OAAO,EAAE;QACPC,MAAM,EAAE,kBAAkB;QAC1B,GAAGV;MACL,CAAC;MACDW,MAAM,EAAET,UAAU,CAACS;IACrB,CAAC,CAAC;IACF,IAAIJ,QAAQ,CAACK,MAAM,KAAK,GAAG,EAAE;MAC3B,MAAM,IAAIC,KAAK,CAACN,QAAQ,CAACO,UAAU,CAAC;IACtC;IACA,OAAQ,MAAMP,QAAQ,CAACQ,IAAI,CAAC,CAAC;EAC/B,CAAC,CAAC,OAAOC,KAAc,EAAE;IACvB,IAAIA,KAAK,YAAYH,KAAK,IAAIG,KAAK,CAACC,IAAI,KAAK,YAAY,EAAE;MACzD,MAAM,IAAIJ,KAAK,CAAC,mBAAmB,CAAC;IACtC;IACA,MAAMG,KAAK;EACb,CAAC,SAAS;IACRE,YAAY,CAACd,SAAS,CAAC;EACzB;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["FetchJSONResponseError","Error","constructor","status","statusText","fetchJSON","url","requestHeaders","requestTimeout","controller","AbortController","timeoutId","setTimeout","abort","response","fetch","headers","Accept","signal","json","error","name","clearTimeout"],"sourceRoot":"../../src","sources":["fetchJSON.ts"],"mappings":";;AAAA,OAAO,MAAMA,sBAAsB,SAASC,KAAK,CAAC;EAChDC,WAAWA,CACAC,MAAc,EACvBC,UAAkB,EAClB;IACA,KAAK,CACH,4BAA4BD,MAAM,GAAGC,UAAU,GAAG,IAAIA,UAAU,EAAE,GAAG,EAAE,EACzE,CAAC;IAAC,KALOD,MAAc,GAAdA,MAAc;EAMzB;AACF;AAEA,OAAO,MAAME,SAAS,GAAG,MAAAA,CAAU;EACjCC,GAAG;EACHC,cAAc;EACdC,cAAc,GAAG;AAKnB,CAAC,KAAiB;EAChB,MAAMC,UAAU,GAAG,IAAIC,eAAe,CAAC,CAAC;EACxC,MAAMC,SAAS,GAAGC,UAAU,CAAC,MAAMH,UAAU,CAACI,KAAK,CAAC,CAAC,EAAEL,cAAc,CAAC;EAEtE,IAAI;IACF,MAAMM,QAAQ,GAAG,MAAMC,KAAK,CAACT,GAAG,EAAE;MAChCU,OAAO,EAAE;QACPC,MAAM,EAAE,kBAAkB;QAC1B,GAAGV;MACL,CAAC;MACDW,MAAM,EAAET,UAAU,CAACS;IACrB,CAAC,CAAC;IACF,IAAIJ,QAAQ,CAACX,MAAM,KAAK,GAAG,EAAE;MAC3B,MAAM,IAAIH,sBAAsB,CAACc,QAAQ,CAACX,MAAM,EAAEW,QAAQ,CAACV,UAAU,CAAC;IACxE;IACA,OAAQ,MAAMU,QAAQ,CAACK,IAAI,CAAC,CAAC;EAC/B,CAAC,CAAC,OAAOC,KAAc,EAAE;IACvB,IAAIA,KAAK,YAAYnB,KAAK,IAAImB,KAAK,CAACC,IAAI,KAAK,YAAY,EAAE;MACzD,MAAM,IAAIpB,KAAK,CAAC,mBAAmB,CAAC;IACtC;IACA,MAAMmB,KAAK;EACb,CAAC,SAAS;IACRE,YAAY,CAACX,SAAS,CAAC;EACzB;AACF,CAAC","ignoreList":[]}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
 
3
- import { encodeChannelKey } from "@hot-updater/core";
3
+ import { ARTIFACT_PROTOCOL_VERSION, encodeChannelKey } from "@hot-updater/core";
4
4
  import { canonicalizeAppVersion } from "@hot-updater/plugin-core";
5
- import { fetchJSON } from "./fetchJSON.js";
5
+ import { fetchJSON, FetchJSONResponseError } from "./fetchJSON.js";
6
6
  import { fetchReleaseCatalogWithCache } from "./releaseCatalogCache.js";
7
7
  import { HOT_UPDATER_SDK_VERSION } from "./sdkVersion.js";
8
8
  const resolveBaseURL = async baseURL => {
@@ -24,29 +24,36 @@ const resolveArtifactUrl = (baseURL, value) => {
24
24
  };
25
25
  const resolveArtifactUrls = (baseURL, info) => ({
26
26
  ...info,
27
- fileUrl: info.fileUrl === null ? null : resolveArtifactUrl(baseURL, info.fileUrl),
28
- ...(info.manifestUrl === undefined ? {} : {
29
- manifestUrl: info.manifestUrl === null ? null : resolveArtifactUrl(baseURL, info.manifestUrl)
30
- }),
31
- ...(info.changedAssets === undefined ? {} : {
32
- changedAssets: info.changedAssets === null ? null : Object.fromEntries(Object.entries(info.changedAssets).map(([path, asset]) => [path, {
33
- ...asset,
34
- ...(asset.file ? {
35
- file: {
36
- ...asset.file,
37
- url: resolveArtifactUrl(baseURL, asset.file.url)
38
- }
39
- } : {}),
40
- ...(asset.patch ? {
41
- patch: {
42
- ...asset.patch,
43
- patchUrl: resolveArtifactUrl(baseURL, asset.patch.patchUrl)
44
- }
45
- } : {})
46
- }]))
47
- })
27
+ manifestUrl: resolveArtifactUrl(baseURL, info.manifestUrl),
28
+ ...(info.archiveUrl ? {
29
+ archiveUrl: resolveArtifactUrl(baseURL, info.archiveUrl)
30
+ } : {}),
31
+ assets: Object.fromEntries(Object.entries(info.assets).map(([path, asset]) => [path, {
32
+ ...asset,
33
+ file: {
34
+ ...asset.file,
35
+ url: resolveArtifactUrl(baseURL, asset.file.url)
36
+ },
37
+ ...(asset.patch ? {
38
+ patch: {
39
+ ...asset.patch,
40
+ patchUrl: resolveArtifactUrl(baseURL, asset.patch.patchUrl)
41
+ }
42
+ } : {})
43
+ }]))
48
44
  });
49
- const sendAnalyticsEvent = async (baseURL, params) => {
45
+ const requireArtifactProtocolV1 = info => {
46
+ if (info.artifactProtocolVersion !== ARTIFACT_PROTOCOL_VERSION || !info.assets || !info.manifestUrl || !info.manifestFileHash || info.archiveUrl !== undefined && typeof info.archiveUrl !== "string") {
47
+ throw new Error(`Server does not support artifact protocol ${ARTIFACT_PROTOCOL_VERSION}.`);
48
+ }
49
+ for (const asset of Object.values(info.assets)) {
50
+ if (!asset.file?.url || !asset.fileHash) {
51
+ throw new Error("Artifact protocol 1 requires an original file for every asset.");
52
+ }
53
+ }
54
+ return info;
55
+ };
56
+ const sendInsightsEvent = async (baseURL, params) => {
50
57
  const controller = new AbortController();
51
58
  const timeoutId = setTimeout(() => {
52
59
  controller.abort();
@@ -131,14 +138,24 @@ const createSession = baseURL => ({
131
138
  });
132
139
  },
133
140
  resolveArtifact: async params => {
134
- const info = await fetchJSON({
135
- requestHeaders: params.requestHeaders,
136
- requestTimeout: params.requestTimeout,
137
- url: `${baseURL}/artifacts/${encodeURIComponent(params.targetBundleId)}/from/${encodeURIComponent(params.currentBundleId)}`
138
- });
139
- return resolveArtifactUrls(baseURL, info);
141
+ let info;
142
+ try {
143
+ info = await fetchJSON({
144
+ requestHeaders: params.requestHeaders,
145
+ requestTimeout: params.requestTimeout,
146
+ url: `${baseURL}/artifacts/v1/${encodeURIComponent(params.targetBundleId)}/from/${encodeURIComponent(params.currentBundleId)}`
147
+ });
148
+ } catch (error) {
149
+ if (error instanceof FetchJSONResponseError && error.status === 404) {
150
+ throw new Error(`Server does not support artifact protocol ${ARTIFACT_PROTOCOL_VERSION}.`, {
151
+ cause: error
152
+ });
153
+ }
154
+ throw error;
155
+ }
156
+ return resolveArtifactUrls(baseURL, requireArtifactProtocolV1(info));
140
157
  },
141
- sendAnalyticsEvent: params => sendAnalyticsEvent(baseURL, params)
158
+ sendInsightsEvent: params => sendInsightsEvent(baseURL, params)
142
159
  });
143
160
 
144
161
  /** Creates the private HTTP client used by HotUpdater.init and HotUpdater.wrap. */
@@ -1 +1 @@
1
- {"version":3,"names":["encodeChannelKey","canonicalizeAppVersion","fetchJSON","fetchReleaseCatalogWithCache","HOT_UPDATER_SDK_VERSION","resolveBaseURL","baseURL","resolvedBaseURL","Error","replace","resolveArtifactUrl","value","test","URL","startsWith","slice","resolveArtifactUrls","info","fileUrl","manifestUrl","undefined","changedAssets","Object","fromEntries","entries","map","path","asset","file","url","patch","patchUrl","sendAnalyticsEvent","params","controller","AbortController","timeoutId","setTimeout","abort","requestTimeout","response","fetch","body","JSON","stringify","appVersion","channel","cohort","fingerprintHash","fromBundleId","fromReleaseId","installId","platform","sdkVersion","toBundleId","toReleaseId","type","updateStrategy","userId","username","headers","requestHeaders","method","signal","status","error","name","clearTimeout","createSession","fetchReleaseCatalog","channelKey","strategyValue","strategyPath","encodeURIComponent","expectedScope","strategy","resolveArtifact","targetBundleId","currentBundleId","createHttpClient"],"sourceRoot":"../../src","sources":["httpClient.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["ARTIFACT_PROTOCOL_VERSION","encodeChannelKey","canonicalizeAppVersion","fetchJSON","FetchJSONResponseError","fetchReleaseCatalogWithCache","HOT_UPDATER_SDK_VERSION","resolveBaseURL","baseURL","resolvedBaseURL","Error","replace","resolveArtifactUrl","value","test","URL","startsWith","slice","resolveArtifactUrls","info","manifestUrl","archiveUrl","assets","Object","fromEntries","entries","map","path","asset","file","url","patch","patchUrl","requireArtifactProtocolV1","artifactProtocolVersion","manifestFileHash","undefined","values","fileHash","sendInsightsEvent","params","controller","AbortController","timeoutId","setTimeout","abort","requestTimeout","response","fetch","body","JSON","stringify","appVersion","channel","cohort","fingerprintHash","fromBundleId","fromReleaseId","installId","platform","sdkVersion","toBundleId","toReleaseId","type","updateStrategy","userId","username","headers","requestHeaders","method","signal","status","error","name","clearTimeout","createSession","fetchReleaseCatalog","channelKey","strategyValue","strategyPath","encodeURIComponent","expectedScope","strategy","resolveArtifact","targetBundleId","currentBundleId","cause","createHttpClient"],"sourceRoot":"../../src","sources":["httpClient.ts"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { beforeEach, describe, expect, it, vi } from "vitest";
4
+ import { FetchJSONResponseError } from "./fetchJSON.js";
4
5
  import { createHttpClient } from "./httpClient.js";
5
6
  const mocks = vi.hoisted(() => {
6
7
  Reflect.set(globalThis, "HotUpdater", {
@@ -15,11 +16,27 @@ vi.mock("./releaseCatalogCache", () => ({
15
16
  fetchReleaseCatalogWithCache: mocks.fetchCatalog
16
17
  }));
17
18
  vi.mock("./fetchJSON", () => ({
19
+ FetchJSONResponseError: class FetchJSONResponseError extends Error {
20
+ constructor(status, statusText) {
21
+ super(statusText);
22
+ this.status = status;
23
+ }
24
+ },
18
25
  fetchJSON: mocks.fetchJSON
19
26
  }));
20
27
  const artifact = {
21
- fileHash: "bundle-hash",
22
- fileUrl: "/storage/bundle.zip"
28
+ artifactProtocolVersion: 1,
29
+ assets: {
30
+ "index.ios.bundle": {
31
+ file: {
32
+ url: "/storage/index.bundle.br"
33
+ },
34
+ fileHash: "bundle-hash"
35
+ }
36
+ },
37
+ manifestFileHash: "manifest-hash",
38
+ manifestUrl: "/storage/manifest.json",
39
+ archiveUrl: "/storage/bundle.tar.br"
23
40
  };
24
41
  const catalog = {
25
42
  catalogId: "server-owned-project",
@@ -73,13 +90,22 @@ describe("private HotUpdater HTTP client", () => {
73
90
  targetBundleId: "target"
74
91
  })).resolves.toEqual({
75
92
  ...artifact,
76
- fileUrl: "https://first.example.com/hot-updater/storage/bundle.zip"
93
+ assets: {
94
+ "index.ios.bundle": {
95
+ file: {
96
+ url: "https://first.example.com/hot-updater/storage/index.bundle.br"
97
+ },
98
+ fileHash: "bundle-hash"
99
+ }
100
+ },
101
+ manifestUrl: "https://first.example.com/hot-updater/storage/manifest.json",
102
+ archiveUrl: "https://first.example.com/hot-updater/storage/bundle.tar.br"
77
103
  });
78
104
  expect(resolveBaseURL).toHaveBeenCalledOnce();
79
105
  expect(mocks.fetchJSON).toHaveBeenCalledWith({
80
106
  requestHeaders: undefined,
81
107
  requestTimeout: undefined,
82
- url: "https://first.example.com/hot-updater/artifacts/target/from/current"
108
+ url: "https://first.example.com/hot-updater/artifacts/v1/target/from/current"
83
109
  });
84
110
  await client.createSession();
85
111
  expect(resolveBaseURL).toHaveBeenCalledTimes(2);
@@ -87,7 +113,14 @@ describe("private HotUpdater HTTP client", () => {
87
113
  it("rejects non-storage relative artifact URLs", async () => {
88
114
  mocks.fetchJSON.mockResolvedValue({
89
115
  ...artifact,
90
- fileUrl: "/private/bundle.zip"
116
+ assets: {
117
+ "index.ios.bundle": {
118
+ file: {
119
+ url: "/private/index.bundle.br"
120
+ },
121
+ fileHash: "bundle-hash"
122
+ }
123
+ }
91
124
  });
92
125
  const session = await createHttpClient("https://updates.example.com").createSession();
93
126
  await expect(session.resolveArtifact({
@@ -95,6 +128,25 @@ describe("private HotUpdater HTTP client", () => {
95
128
  targetBundleId: "target"
96
129
  })).rejects.toThrow("client-relative storage paths");
97
130
  });
131
+ it("rejects a legacy artifact response", async () => {
132
+ mocks.fetchJSON.mockResolvedValue({
133
+ fileHash: "archive-hash",
134
+ fileUrl: "/storage/bundle.zip"
135
+ });
136
+ const session = await createHttpClient("https://updates.example.com").createSession();
137
+ await expect(session.resolveArtifact({
138
+ currentBundleId: "current",
139
+ targetBundleId: "target"
140
+ })).rejects.toThrow("does not support artifact protocol 1");
141
+ });
142
+ it("reports an old server without the v1 endpoint explicitly", async () => {
143
+ mocks.fetchJSON.mockRejectedValue(new FetchJSONResponseError(404, "Not Found"));
144
+ const session = await createHttpClient("https://updates.example.com").createSession();
145
+ await expect(session.resolveArtifact({
146
+ currentBundleId: "current",
147
+ targetBundleId: "target"
148
+ })).rejects.toThrow("does not support artifact protocol 1");
149
+ });
98
150
  it("requires a functional baseURL to resolve to a non-empty string", async () => {
99
151
  await expect(createHttpClient(() => "").createSession()).rejects.toThrow("baseURL function must return a non-empty string");
100
152
  });
@@ -1 +1 @@
1
- {"version":3,"names":["beforeEach","describe","expect","it","vi","createHttpClient","mocks","hoisted","Reflect","set","globalThis","SDK_VERSION","fetchCatalog","fn","fetchJSON","mock","fetchReleaseCatalogWithCache","artifact","fileHash","fileUrl","catalog","catalogId","catalogHash","repeat","fallbackPolicy","generation","releases","schemaVersion","scopeKey","clearAllMocks","mockResolvedValue","session","createSession","fetchReleaseCatalog","appVersion","channel","fingerprintHash","platform","updateStrategy","resolves","toBe","toHaveBeenCalledWith","baseURL","expectedScope","channelKey","strategy","requestHeaders","undefined","requestTimeout","url","resolveBaseURL","mockResolvedValueOnce","client","firstSession","resolveArtifact","currentBundleId","targetBundleId","toEqual","toHaveBeenCalledOnce","toHaveBeenCalledTimes","rejects","toThrow"],"sourceRoot":"../../src","sources":["httpClient.spec.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["beforeEach","describe","expect","it","vi","FetchJSONResponseError","createHttpClient","mocks","hoisted","Reflect","set","globalThis","SDK_VERSION","fetchCatalog","fn","fetchJSON","mock","fetchReleaseCatalogWithCache","Error","constructor","status","statusText","artifact","artifactProtocolVersion","assets","file","url","fileHash","manifestFileHash","manifestUrl","archiveUrl","catalog","catalogId","catalogHash","repeat","fallbackPolicy","generation","releases","schemaVersion","scopeKey","clearAllMocks","mockResolvedValue","session","createSession","fetchReleaseCatalog","appVersion","channel","fingerprintHash","platform","updateStrategy","resolves","toBe","toHaveBeenCalledWith","baseURL","expectedScope","channelKey","strategy","requestHeaders","undefined","requestTimeout","resolveBaseURL","mockResolvedValueOnce","client","firstSession","resolveArtifact","currentBundleId","targetBundleId","toEqual","toHaveBeenCalledOnce","toHaveBeenCalledTimes","rejects","toThrow","fileUrl","mockRejectedValue"],"sourceRoot":"../../src","sources":["httpClient.spec.ts"],"mappings":"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","ignoreList":[]}
@@ -2,7 +2,8 @@
2
2
 
3
3
  import { checkForUpdate } from "./checkForUpdate.js";
4
4
  import { createHttpClient } from "./httpClient.js";
5
- import { addListener, getPublicActiveUpdateState, clearCrashHistory, getAppVersion, getBaseURL, getBundleId, getChannel, getCohort, getCrashHistory, getDefaultChannel, getFingerprintHash, getInstallId, getManifest, getMinBundleId, getReleaseId, isChannelSwitched, notifyAppReady, reload, resetChannel, setCohort, setReloadBehavior, setUser, updateBundle } from "./native.js";
5
+ import { addListener, getPublicActiveUpdateState, getActiveUpdateState, getBundleId, clearCrashHistory, getAppVersion, getBaseURL, getUpdateId, getChannel, getCohort, getCrashHistory, getDefaultChannel, getFingerprintHash, getInstallId, getManifest, getMinBundleId, isChannelSwitched, notifyAppReady, reload, resetChannel, setCohort, setReloadBehavior, setUser, updateBundle } from "./native.js";
6
+ import { reportBundleDownloaded } from "./notifyAppReadyInsights.js";
6
7
  import { hotUpdaterStore } from "./store.js";
7
8
  import { init, wrap } from "./wrap.js";
8
9
  export * from "./store.js";
@@ -34,6 +35,7 @@ function createHotUpdaterClient() {
34
35
 
35
36
  // Global configuration stored from wrap
36
37
  const globalConfig = {
38
+ insights: true,
37
39
  client: null
38
40
  };
39
41
  const createMissingNetworkConfigError = apiName => {
@@ -56,6 +58,7 @@ function createHotUpdaterClient() {
56
58
  } = autoOptions;
57
59
  return {
58
60
  ...rest,
61
+ insights: rest.insights ?? true,
59
62
  client: createHttpClient(baseURL)
60
63
  };
61
64
  }
@@ -73,13 +76,14 @@ function createHotUpdaterClient() {
73
76
  } = rest;
74
77
  return {
75
78
  ...baseURLRest,
79
+ insights: baseURLRest.insights ?? true,
76
80
  client: createHttpClient(baseURL)
77
81
  };
78
82
  }
79
83
  throw createMissingNetworkConfigError("init");
80
84
  };
81
85
  const configureGlobal = (normalizedOptions, options) => {
82
- globalConfig.analytics = normalizedOptions.analytics;
86
+ globalConfig.insights = normalizedOptions.insights ?? true;
83
87
  globalConfig.client = normalizedOptions.client;
84
88
  globalConfig.requestHeaders = options.requestHeaders;
85
89
  globalConfig.requestTimeout = options.requestTimeout;
@@ -189,13 +193,12 @@ function createHotUpdaterClient() {
189
193
  /** Reads the active and stable Release/Bundle state. */
190
194
  getActiveUpdateState: async () => getPublicActiveUpdateState(),
191
195
  /**
192
- * Fetches the current bundle ID of the app.
196
+ * Returns the selected update ID, matching the ID shown in the console.
197
+ * A staged update can change this ID before the app reloads.
193
198
  */
194
- getBundleId,
199
+ getBundleId: getUpdateId,
195
200
  /** Returns the minimum bundle ID based on the native app build time. */
196
201
  getMinBundleId,
197
- /** Returns the active Release identity, or null for BUILTIN/legacy state. */
198
- getReleaseId,
199
202
  /**
200
203
  * Fetches the current manifest for the active bundle.
201
204
  */
@@ -293,7 +296,7 @@ function createHotUpdaterClient() {
293
296
  const client = ensureGlobalClient("checkForUpdate");
294
297
  const mergedConfig = {
295
298
  ...config,
296
- analytics: globalConfig.analytics,
299
+ insights: globalConfig.insights,
297
300
  client,
298
301
  requestHeaders: {
299
302
  ...globalConfig.requestHeaders,
@@ -309,8 +312,6 @@ function createHotUpdaterClient() {
309
312
  *
310
313
  * @param {UpdateBundleParams} params - Parameters object required for bundle update
311
314
  * @param {string} params.bundleId - The bundle ID of the app
312
- * @param {string|null} params.fileUrl - The URL of the zip file
313
- *
314
315
  * @returns {Promise<boolean>} Whether the update was successful
315
316
  *
316
317
  * @example
@@ -334,9 +335,27 @@ function createHotUpdaterClient() {
334
335
  * }
335
336
  * ```
336
337
  */
337
- updateBundle: params => {
338
- ensureGlobalClient("updateBundle");
339
- return updateBundle(params);
338
+ updateBundle: async params => {
339
+ const client = ensureGlobalClient("updateBundle");
340
+ const fromBundleId = getBundleId();
341
+ const state = getActiveUpdateState();
342
+ const active = state.activeSelection;
343
+ const downloaded = await updateBundle(params);
344
+ if (downloaded) {
345
+ const selection = getActiveUpdateState().activeSelection;
346
+ await reportBundleDownloaded({
347
+ ...globalConfig,
348
+ client
349
+ }, {
350
+ fromBundleId,
351
+ fromReleaseId: active?.bundleId === fromBundleId ? active.releaseId : state.stableSelection?.bundleId === fromBundleId ? state.stableSelection.releaseId : null,
352
+ toBundleId: params.bundleId,
353
+ toReleaseId: selection?.releaseId ?? null,
354
+ channel: params.channel ?? getChannel(),
355
+ updateStrategy: selection?.scopeKey?.startsWith("v1:fingerprint:") ? "fingerprint" : "appVersion"
356
+ });
357
+ }
358
+ return downloaded;
340
359
  },
341
360
  /**
342
361
  * Clears the runtime channel override and restores the original bundle.
@@ -349,10 +368,8 @@ function createHotUpdaterClient() {
349
368
  hotUpdaterStore.setState({
350
369
  artifactType: null,
351
370
  details: null,
352
- downloadedBytes: undefined,
353
371
  isUpdateDownloaded: false,
354
- progress: 0,
355
- totalBytes: undefined
372
+ progress: 0
356
373
  });
357
374
  }
358
375
  return ok;
@@ -1 +1 @@
1
- {"version":3,"names":["checkForUpdate","createHttpClient","addListener","getPublicActiveUpdateState","clearCrashHistory","getAppVersion","getBaseURL","getBundleId","getChannel","getCohort","getCrashHistory","getDefaultChannel","getFingerprintHash","getInstallId","getManifest","getMinBundleId","getReleaseId","isChannelSwitched","notifyAppReady","reload","resetChannel","setCohort","setReloadBehavior","setUser","updateBundle","hotUpdaterStore","init","wrap","extractSignatureFailure","isSignatureVerificationError","registerGlobalGetBaseURL","fn","globalThis","HotUpdaterGetBaseURL","createHotUpdaterClient","configurationAPI","mixedConfigurationReported","globalConfig","client","createMissingNetworkConfigError","apiName","Error","baseURLExample","normalizeOptions","options","incoming","updateMode","autoOptions","baseURL","rest","normalizeInitOptions","_updateMode","baseURLRest","configureGlobal","normalizedOptions","analytics","requestHeaders","requestTimeout","onError","reportMixedConfiguration","nextAPI","console","error","ensureGlobalClient","methodName","isUpdateDownloaded","getSnapshot","getActiveUpdateState","config","mergedConfig","params","ok","setState","artifactType","details","downloadedBytes","undefined","progress","totalBytes","HotUpdater"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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CA;AACA;AACA;IACI2C,kBAAkB,EAAEA,CAAA,KAAMxC,eAAe,CAACyC,WAAW,CAAC,CAAC,CAACD,kBAAkB;IAE1E;AACJ;AACA;IACI5D,aAAa;IAEb;IACA8D,oBAAoB,EAAE,MAAAA,CAAA,KAAYhE,0BAA0B,CAAC,CAAC;IAE9D;AACJ;AACA;IACII,WAAW;IAEX;IACAQ,cAAc;IAEd;IACAC,YAAY;IAEZ;AACJ;AACA;IACIF,WAAW;IAEX;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIN,UAAU;IAEV;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIG,iBAAiB;IAEjB;AACJ;AACA;AACA;AACA;IACIM,iBAAiB;IAEjB;AACJ;AACA;AACA;IACII,SAAS;IAET;AACJ;AACA;IACIZ,SAAS;IAET;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIP,WAAW;IAEX;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIF,cAAc,EAAGoE,MAA6B,IAAK;MACjD,MAAM9B,MAAM,GAAGyB,kBAAkB,CAAC,gBAAgB,CAAC;MAEnD,MAAMM,YAA2C,GAAG;QAClD,GAAGD,MAAM;QACTb,SAAS,EAAElB,YAAY,CAACkB,SAAS;QACjCjB,MAAM;QACNkB,cAAc,EAAE;UACd,GAAGnB,YAAY,CAACmB,cAAc;UAC9B,GAAGY,MAAM,CAACZ;QACZ,CAAC;QACDC,cAAc,EAAEW,MAAM,CAACX,cAAc,IAAIpB,YAAY,CAACoB,cAAc;QACpEC,OAAO,EAAEU,MAAM,CAACV,OAAO,IAAIrB,YAAY,CAACqB;MAC1C,CAAC;MAED,OAAO1D,cAAc,CAACqE,YAAY,CAAC;IACrC,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACI7C,YAAY,EAAG8C,MAAoB,IAAK;MACtCP,kBAAkB,CAAC,cAAc,CAAC;MAClC,OAAOvC,YAAY,CAAC8C,MAAM,CAAC;IAC7B,CAAC;IAED;AACJ;AACA;AACA;AACA;IACIlD,YAAY,EAAE,MAAAA,CAAA,KAAY;MACxB,MAAMmD,EAAE,GAAG,MAAMnD,YAAY,CAAC,CAAC;MAC/B,IAAImD,EAAE,EAAE;QACN9C,eAAe,CAAC+C,QAAQ,CAAC;UACvBC,YAAY,EAAE,IAAI;UAClBC,OAAO,EAAE,IAAI;UACbC,eAAe,EAAEC,SAAS;UAC1BX,kBAAkB,EAAE,KAAK;UACzBY,QAAQ,EAAE,CAAC;UACXC,UAAU,EAAEF;QACd,CAAC,CAAC;MACJ;MACA,OAAOL,EAAE;IACX,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACI3D,kBAAkB;IAElB;AACJ;AACA;IACIC,YAAY;IAEZ;AACJ;AACA;IACIU,OAAO;IAEP;AACJ;AACA;IACIL,cAAc;IAEd;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIR,eAAe;IAEf;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIN;EACF,CAAC;AACH;AASA,OAAO,MAAM2E,UAA4B,GAAG7C,sBAAsB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["checkForUpdate","createHttpClient","addListener","getPublicActiveUpdateState","getActiveUpdateState","getBundleId","clearCrashHistory","getAppVersion","getBaseURL","getUpdateId","getChannel","getCohort","getCrashHistory","getDefaultChannel","getFingerprintHash","getInstallId","getManifest","getMinBundleId","isChannelSwitched","notifyAppReady","reload","resetChannel","setCohort","setReloadBehavior","setUser","updateBundle","reportBundleDownloaded","hotUpdaterStore","init","wrap","extractSignatureFailure","isSignatureVerificationError","registerGlobalGetBaseURL","fn","globalThis","HotUpdaterGetBaseURL","createHotUpdaterClient","configurationAPI","mixedConfigurationReported","globalConfig","insights","client","createMissingNetworkConfigError","apiName","Error","baseURLExample","normalizeOptions","options","incoming","updateMode","autoOptions","baseURL","rest","normalizeInitOptions","_updateMode","baseURLRest","configureGlobal","normalizedOptions","requestHeaders","requestTimeout","onError","reportMixedConfiguration","nextAPI","console","error","ensureGlobalClient","methodName","isUpdateDownloaded","getSnapshot","config","mergedConfig","params","fromBundleId","state","active","activeSelection","downloaded","selection","fromReleaseId","bundleId","releaseId","stableSelection","toBundleId","toReleaseId","channel","updateStrategy","scopeKey","startsWith","ok","setState","artifactType","details","progress","HotUpdater"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SAEEA,cAAc,QAET,qBAAkB;AACzB,SAASC,gBAAgB,QAAmC,iBAAc;AAC1E,SACEC,WAAW,EACXC,0BAA0B,EAC1BC,oBAAoB,EACpBC,WAAW,EACXC,iBAAiB,EACjBC,aAAa,EACbC,UAAU,EACVC,WAAW,EACXC,UAAU,EACVC,SAAS,EACTC,eAAe,EACfC,iBAAiB,EACjBC,kBAAkB,EAClBC,YAAY,EACZC,WAAW,EACXC,cAAc,EACdC,iBAAiB,EACjBC,cAAc,EACdC,MAAM,EACNC,YAAY,EACZC,SAAS,EACTC,iBAAiB,EACjBC,OAAO,EAEPC,YAAY,QACP,aAAU;AACjB,SAASC,sBAAsB,QAAQ,6BAA0B;AACjE,SAASC,eAAe,QAAQ,YAAS;AACzC,SAIEC,IAAI,EAGJC,IAAI,QACC,WAAQ;AAef,cAAc,YAAS;AACvB,SACEC,uBAAuB,EAEvBC,4BAA4B,QAEvB,YAAS;AAQhB;AACA;AACA;AACA;AACA,MAAMC,wBAAwB,GAAGA,CAAA,KAAM;EACrC,MAAMC,EAAE,GAAGzB,UAAU;;EAErB;EACA,IAAI,OAAO0B,UAAU,KAAK,WAAW,EAAE;IACrC,IAAI,CAACA,UAAU,CAACC,oBAAoB,EAAE;MACpCD,UAAU,CAACC,oBAAoB,GAAGF,EAAE;IACtC;EACF;AACF,CAAC;;AAED;AACAD,wBAAwB,CAAC,CAAC;AAO1B;AACA;AACA;AACA;AACA,SAASI,sBAAsBA,CAAA,EAAG;EAChC,IAAIC,gBAAwC,GAAG,IAAI;EACnD,IAAIC,0BAA0B,GAAG,KAAK;;EAEtC;EACA,MAAMC,YAML,GAAG;IACFC,QAAQ,EAAE,IAAI;IACdC,MAAM,EAAE;EACV,CAAC;EAED,MAAMC,+BAA+B,GAAIC,OAAwB,IAAK;IACpE,IAAIA,OAAO,KAAK,MAAM,EAAE;MACtB,OAAO,IAAIC,KAAK,CACd,4CAA4C,GAC1C,sFAAsF,GACtF,uBAAuB,GACvB,4CAA4C,GAC5C,WAAW,GACX,mFACJ,CAAC;IACH;IAEA,MAAMC,cAAc,GAClB,sCAAsC,GACtC,4CAA4C,GAC5C,oCAAoC,GACpC,gBAAgB;IAElB,OAAO,IAAID,KAAK,CACd,4CAA4C,GAC1C,gEAAgE,GAChEC,cAAc,GACd,4DAA4D,GAC5D,mDACJ,CAAC;EACH,CAAC;EAED,MAAMC,gBAAgB,GACpBC,OAA0B,IACF;IACxB,MAAMC,QAAQ,GAAGD,OAEhB;IACD,IAAIC,QAAQ,CAACC,UAAU,KAAK,QAAQ,EAAE;MACpC,MAAM,IAAIL,KAAK,CACb,sEAAsE,GACpE,oEAAoE,GACpE,kEAAkE,GAClE,oEACJ,CAAC;IACH;IAEA,MAAMM,WAAW,GAAGF,QAA6B;IAEjD,IAAIE,WAAW,CAACC,OAAO,EAAE;MACvB,MAAM;QAAEA,OAAO;QAAE,GAAGC;MAAK,CAAC,GAAGF,WAAW;MACxC,OAAO;QACL,GAAGE,IAAI;QACPZ,QAAQ,EAAEY,IAAI,CAACZ,QAAQ,IAAI,IAAI;QAC/BC,MAAM,EAAExC,gBAAgB,CAACkD,OAAO;MAClC,CAAC;IACH;IAEA,MAAMT,+BAA+B,CAAC,MAAM,CAAC;EAC/C,CAAC;EAED,MAAMW,oBAAoB,GACxBN,OAA8B,IACN;IACxB,MAAM;MAAEE,UAAU,EAAEK,WAAW;MAAE,GAAGF;IAAK,CAAC,GACxCL,OAEC;IAEH,IAAIK,IAAI,CAACD,OAAO,EAAE;MAChB,MAAM;QAAEA,OAAO;QAAE,GAAGI;MAAY,CAAC,GAAGH,IAAI;MACxC,OAAO;QACL,GAAGG,WAAW;QACdf,QAAQ,EAAEe,WAAW,CAACf,QAAQ,IAAI,IAAI;QACtCC,MAAM,EAAExC,gBAAgB,CAACkD,OAAO;MAClC,CAAC;IACH;IAEA,MAAMT,+BAA+B,CAAC,MAAM,CAAC;EAC/C,CAAC;EAED,MAAMc,eAAe,GAAGA,CACtBC,iBAA4D,EAC5DV,OAAkD,KAC/C;IACHR,YAAY,CAACC,QAAQ,GAAGiB,iBAAiB,CAACjB,QAAQ,IAAI,IAAI;IAC1DD,YAAY,CAACE,MAAM,GAAGgB,iBAAiB,CAAChB,MAAM;IAC9CF,YAAY,CAACmB,cAAc,GAAGX,OAAO,CAACW,cAAc;IACpDnB,YAAY,CAACoB,cAAc,GAAGZ,OAAO,CAACY,cAAc;IACpDpB,YAAY,CAACqB,OAAO,GAAGb,OAAO,CAACa,OAAO;EACxC,CAAC;EAED,MAAMC,wBAAwB,GAAIC,OAAwB,IAAK;IAC7D,IACEzB,gBAAgB,KAAK,IAAI,IACzBA,gBAAgB,KAAKyB,OAAO,IAC5B,CAACxB,0BAA0B,EAC3B;MACAA,0BAA0B,GAAG,IAAI;MACjCyB,OAAO,CAACC,KAAK,CACX,kFAAkF,GAChF,gEAAgE,GAChE,+DAA+D,GAC/D,oBACJ,CAAC;IACH;IACA3B,gBAAgB,KAAKyB,OAAO;EAC9B,CAAC;EAED,MAAMG,kBAAkB,GAAIC,UAAkB,IAAK;IACjD,IAAI,CAAC3B,YAAY,CAACE,MAAM,EAAE;MACxB,MAAM,IAAIG,KAAK,CACb,gBAAgBsB,UAAU,kEAAkE,GAC1F,0DAA0DA,UAAU,OAAO,GAC3E,oCAAoC,GACpC,sCAAsC,GACtC,4CAA4C,GAC5C,oCAAoC,GACpC,gBAAgB,GAChB,wDAAwD,GACxD,uBAAuB,GACvB,4CAA4C,GAC5C,WAAW,GACX,mFACJ,CAAC;IACH;IACA,OAAO3B,YAAY,CAACE,MAAM;EAC5B,CAAC;EAED,OAAO;IACL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIZ,IAAI,EAAGkB,OAA0B,IAAK;MACpC,MAAMU,iBAAiB,GAAGX,gBAAgB,CAACC,OAAO,CAAC;MACnDc,wBAAwB,CAAC,MAAM,CAAC;MAChCL,eAAe,CAACC,iBAAiB,EAAEV,OAAO,CAAC;MAE3C,OAAOlB,IAAI,CAAC4B,iBAAiB,CAAC;IAChC,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACI7B,IAAI,EAAGmB,OAA8B,IAAW;MAC9C,MAAMU,iBAAiB,GAAGJ,oBAAoB,CAACN,OAAO,CAAC;MAEvDc,wBAAwB,CAAC,MAAM,CAAC;MAChCL,eAAe,CAACC,iBAAiB,EAAEV,OAAO,CAAC;MAE3CnB,IAAI,CAAC6B,iBAAiB,CAAC;IACzB,CAAC;IAED;AACJ;AACA;IACIrC,MAAM;IAEN;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIG,iBAAiB;IAEjB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACI4C,kBAAkB,EAAEA,CAAA,KAAMxC,eAAe,CAACyC,WAAW,CAAC,CAAC,CAACD,kBAAkB;IAE1E;AACJ;AACA;IACI5D,aAAa;IAEb;IACAH,oBAAoB,EAAE,MAAAA,CAAA,KAAYD,0BAA0B,CAAC,CAAC;IAE9D;AACJ;AACA;AACA;IACIE,WAAW,EAAEI,WAAW;IAExB;IACAQ,cAAc;IAEd;AACJ;AACA;IACID,WAAW;IAEX;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIN,UAAU;IAEV;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIG,iBAAiB;IAEjB;AACJ;AACA;AACA;AACA;IACIK,iBAAiB;IAEjB;AACJ;AACA;AACA;IACII,SAAS;IAET;AACJ;AACA;IACIX,SAAS;IAET;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIT,WAAW;IAEX;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIF,cAAc,EAAGqE,MAA6B,IAAK;MACjD,MAAM5B,MAAM,GAAGwB,kBAAkB,CAAC,gBAAgB,CAAC;MAEnD,MAAMK,YAA2C,GAAG;QAClD,GAAGD,MAAM;QACT7B,QAAQ,EAAED,YAAY,CAACC,QAAQ;QAC/BC,MAAM;QACNiB,cAAc,EAAE;UACd,GAAGnB,YAAY,CAACmB,cAAc;UAC9B,GAAGW,MAAM,CAACX;QACZ,CAAC;QACDC,cAAc,EAAEU,MAAM,CAACV,cAAc,IAAIpB,YAAY,CAACoB,cAAc;QACpEC,OAAO,EAAES,MAAM,CAACT,OAAO,IAAIrB,YAAY,CAACqB;MAC1C,CAAC;MAED,OAAO5D,cAAc,CAACsE,YAAY,CAAC;IACrC,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACI7C,YAAY,EAAE,MAAO8C,MAAoB,IAAK;MAC5C,MAAM9B,MAAM,GAAGwB,kBAAkB,CAAC,cAAc,CAAC;MACjD,MAAMO,YAAY,GAAGnE,WAAW,CAAC,CAAC;MAClC,MAAMoE,KAAK,GAAGrE,oBAAoB,CAAC,CAAC;MACpC,MAAMsE,MAAM,GAAGD,KAAK,CAACE,eAAe;MACpC,MAAMC,UAAU,GAAG,MAAMnD,YAAY,CAAC8C,MAAM,CAAC;MAC7C,IAAIK,UAAU,EAAE;QACd,MAAMC,SAAS,GAAGzE,oBAAoB,CAAC,CAAC,CAACuE,eAAe;QACxD,MAAMjD,sBAAsB,CAC1B;UAAE,GAAGa,YAAY;UAAEE;QAAO,CAAC,EAC3B;UACE+B,YAAY;UACZM,aAAa,EACXJ,MAAM,EAAEK,QAAQ,KAAKP,YAAY,GAC7BE,MAAM,CAACM,SAAS,GAChBP,KAAK,CAACQ,eAAe,EAAEF,QAAQ,KAAKP,YAAY,GAC9CC,KAAK,CAACQ,eAAe,CAACD,SAAS,GAC/B,IAAI;UACZE,UAAU,EAAEX,MAAM,CAACQ,QAAQ;UAC3BI,WAAW,EAAEN,SAAS,EAAEG,SAAS,IAAI,IAAI;UACzCI,OAAO,EAAEb,MAAM,CAACa,OAAO,IAAI1E,UAAU,CAAC,CAAC;UACvC2E,cAAc,EAAER,SAAS,EAAES,QAAQ,EAAEC,UAAU,CAAC,iBAAiB,CAAC,GAC9D,aAAa,GACb;QACN,CACF,CAAC;MACH;MACA,OAAOX,UAAU;IACnB,CAAC;IAED;AACJ;AACA;AACA;AACA;IACIvD,YAAY,EAAE,MAAAA,CAAA,KAAY;MACxB,MAAMmE,EAAE,GAAG,MAAMnE,YAAY,CAAC,CAAC;MAC/B,IAAImE,EAAE,EAAE;QACN7D,eAAe,CAAC8D,QAAQ,CAAC;UACvBC,YAAY,EAAE,IAAI;UAClBC,OAAO,EAAE,IAAI;UACbxB,kBAAkB,EAAE,KAAK;UACzByB,QAAQ,EAAE;QACZ,CAAC,CAAC;MACJ;MACA,OAAOJ,EAAE;IACX,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACI1E,kBAAkB;IAElB;AACJ;AACA;IACIC,YAAY;IAEZ;AACJ;AACA;IACIS,OAAO;IAEP;AACJ;AACA;IACIL,cAAc;IAEd;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIP,eAAe;IAEf;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIN;EACF,CAAC;AACH;AASA,OAAO,MAAMuF,UAA4B,GAAGzD,sBAAsB,CAAC,CAAC","ignoreList":[]}
@@ -20,7 +20,7 @@ const mocks = vi.hoisted(() => {
20
20
  })),
21
21
  getAppVersion: vi.fn(() => "1.0.0"),
22
22
  getBaseURL: vi.fn(() => null),
23
- getBundleId: vi.fn(() => "bundle-id"),
23
+ getUpdateId: vi.fn(() => "release-id"),
24
24
  getChannel: vi.fn(() => "production"),
25
25
  getCohort: vi.fn(() => "123"),
26
26
  getCrashHistory: vi.fn(() => []),
@@ -29,7 +29,6 @@ const mocks = vi.hoisted(() => {
29
29
  getInstallId: vi.fn(() => "install-id"),
30
30
  getManifest: vi.fn(() => null),
31
31
  getMinBundleId: vi.fn(() => "min-bundle-id"),
32
- getReleaseId: vi.fn(async () => null),
33
32
  init: vi.fn(),
34
33
  isChannelSwitched: vi.fn(() => false),
35
34
  notifyAppReady: vi.fn(() => ({
@@ -44,6 +43,11 @@ const mocks = vi.hoisted(() => {
44
43
  wrap: vi.fn(Component => Component)
45
44
  };
46
45
  });
46
+ vi.mock("react-native", () => ({
47
+ Platform: {
48
+ OS: "ios"
49
+ }
50
+ }));
47
51
  vi.mock("./httpClient", () => ({
48
52
  createHttpClient: mocks.createHttpClient
49
53
  }));
@@ -54,9 +58,11 @@ vi.mock("./native", () => ({
54
58
  addListener: mocks.addListener,
55
59
  clearCrashHistory: mocks.clearCrashHistory,
56
60
  getPublicActiveUpdateState: mocks.getActiveUpdateState,
61
+ getActiveUpdateState: mocks.getActiveUpdateState,
62
+ getBundleId: () => "bundle-id",
57
63
  getAppVersion: mocks.getAppVersion,
58
64
  getBaseURL: mocks.getBaseURL,
59
- getBundleId: mocks.getBundleId,
65
+ getUpdateId: mocks.getUpdateId,
60
66
  getChannel: mocks.getChannel,
61
67
  getCohort: mocks.getCohort,
62
68
  getCrashHistory: mocks.getCrashHistory,
@@ -65,7 +71,6 @@ vi.mock("./native", () => ({
65
71
  getInstallId: mocks.getInstallId,
66
72
  getManifest: mocks.getManifest,
67
73
  getMinBundleId: mocks.getMinBundleId,
68
- getReleaseId: mocks.getReleaseId,
69
74
  isChannelSwitched: mocks.isChannelSwitched,
70
75
  notifyAppReady: mocks.notifyAppReady,
71
76
  reload: mocks.reload,
@@ -90,6 +95,12 @@ describe("HotUpdater client initialization", () => {
90
95
  mocks.checkForUpdate.mockResolvedValue(null);
91
96
  mocks.wrap.mockImplementation(Component => Component);
92
97
  });
98
+ it("exposes the console ID through the existing getter only", async () => {
99
+ const HotUpdater = await importHotUpdater();
100
+ expect(HotUpdater.getBundleId()).toBe("release-id");
101
+ expect(HotUpdater).not.toHaveProperty("getReleaseId");
102
+ expect(HotUpdater).not.toHaveProperty("getUpdateId");
103
+ });
93
104
  it("initializes a private HTTP client from the required baseURL", async () => {
94
105
  const client = {
95
106
  createSession: vi.fn()
@@ -97,7 +108,7 @@ describe("HotUpdater client initialization", () => {
97
108
  mocks.createHttpClient.mockReturnValue(client);
98
109
  const HotUpdater = await importHotUpdater();
99
110
  HotUpdater.init({
100
- analytics: true,
111
+ insights: true,
101
112
  baseURL: "https://updates.example.com",
102
113
  requestHeaders: {
103
114
  Authorization: "Bearer token"
@@ -106,7 +117,7 @@ describe("HotUpdater client initialization", () => {
106
117
  });
107
118
  expect(mocks.createHttpClient).toHaveBeenCalledWith("https://updates.example.com");
108
119
  expect(mocks.init).toHaveBeenCalledWith({
109
- analytics: true,
120
+ insights: true,
110
121
  client,
111
122
  requestHeaders: {
112
123
  Authorization: "Bearer token"
@@ -123,6 +134,40 @@ describe("HotUpdater client initialization", () => {
123
134
  expect(mocks.createHttpClient).toHaveBeenCalledWith(resolveBaseURL);
124
135
  expect(resolveBaseURL).not.toHaveBeenCalled();
125
136
  });
137
+ it("enables insights by default for init and wrap", async () => {
138
+ const HotUpdater = await importHotUpdater();
139
+ HotUpdater.init({
140
+ baseURL: "https://updates.example.com"
141
+ });
142
+ HotUpdater.wrap({
143
+ baseURL: "https://updates.example.com",
144
+ updateStrategy: "appVersion"
145
+ });
146
+ expect(mocks.init).toHaveBeenCalledWith(expect.objectContaining({
147
+ insights: true
148
+ }));
149
+ expect(mocks.wrap).toHaveBeenCalledWith(expect.objectContaining({
150
+ insights: true
151
+ }));
152
+ });
153
+ it("preserves an explicit insights opt-out", async () => {
154
+ const HotUpdater = await importHotUpdater();
155
+ HotUpdater.init({
156
+ baseURL: "https://updates.example.com",
157
+ insights: false
158
+ });
159
+ HotUpdater.wrap({
160
+ baseURL: "https://updates.example.com",
161
+ insights: false,
162
+ updateStrategy: "appVersion"
163
+ });
164
+ expect(mocks.init).toHaveBeenCalledWith(expect.objectContaining({
165
+ insights: false
166
+ }));
167
+ expect(mocks.wrap).toHaveBeenCalledWith(expect.objectContaining({
168
+ insights: false
169
+ }));
170
+ });
126
171
  it("requires baseURL and rejects the removed resolver shape", async () => {
127
172
  const HotUpdater = await importHotUpdater();
128
173
  expect(() => HotUpdater.init({})).toThrow("baseURL must be provided");
@@ -159,7 +204,7 @@ describe("HotUpdater client initialization", () => {
159
204
  expect(initOptions.baseURL).toBe("https://updates.example.com");
160
205
  expect(wrapOptions.updateStrategy).toBe("appVersion");
161
206
  });
162
- it("merges settings and carries the analytics gate to checks", async () => {
207
+ it("merges settings and carries the insights gate to checks", async () => {
163
208
  const client = {
164
209
  createSession: vi.fn()
165
210
  };
@@ -167,7 +212,7 @@ describe("HotUpdater client initialization", () => {
167
212
  const checkOnError = vi.fn();
168
213
  const HotUpdater = await importHotUpdater();
169
214
  HotUpdater.init({
170
- analytics: true,
215
+ insights: true,
171
216
  baseURL: "https://updates.example.com",
172
217
  requestHeaders: {
173
218
  Authorization: "Bearer token"
@@ -182,7 +227,7 @@ describe("HotUpdater client initialization", () => {
182
227
  updateStrategy: "appVersion"
183
228
  });
184
229
  expect(mocks.checkForUpdate).toHaveBeenCalledWith({
185
- analytics: true,
230
+ insights: true,
186
231
  client,
187
232
  onError: checkOnError,
188
233
  requestHeaders: {
@@ -200,12 +245,12 @@ describe("HotUpdater client initialization", () => {
200
245
  mocks.createHttpClient.mockReturnValue(client);
201
246
  const HotUpdater = await importHotUpdater();
202
247
  HotUpdater.wrap({
203
- analytics: true,
248
+ insights: true,
204
249
  baseURL: "https://updates.example.com",
205
250
  updateStrategy: "appVersion"
206
251
  });
207
252
  expect(mocks.wrap).toHaveBeenCalledWith({
208
- analytics: true,
253
+ insights: true,
209
254
  client,
210
255
  updateStrategy: "appVersion"
211
256
  });