@hot-updater/react-native 0.36.6 → 1.0.0-rc.0

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 (239) hide show
  1. package/android/src/main/java/com/hotupdater/BundleFileStorageService.kt +357 -6
  2. package/android/src/main/java/com/hotupdater/BundleMetadata.kt +268 -34
  3. package/android/src/main/java/com/hotupdater/HotUpdaterImpl.kt +75 -9
  4. package/android/src/main/java/com/hotupdater/NativeConfigUtils.kt +2 -16
  5. package/android/src/main/java/com/hotupdater/ReleaseCatalogCacheService.kt +166 -0
  6. package/android/src/main/java/com/hotupdater/SignatureVerifier.kt +1 -2
  7. package/android/src/newarch/HotUpdater.kt +1 -1
  8. package/android/src/newarch/HotUpdaterModule.kt +116 -0
  9. package/android/src/oldarch/HotUpdater.kt +1 -1
  10. package/android/src/oldarch/HotUpdaterModule.kt +128 -0
  11. package/android/src/oldarch/HotUpdaterSpec.kt +38 -0
  12. package/android/src/test/java/com/hotupdater/BundleFileStorageServiceTest.kt +280 -2
  13. package/android/src/test/java/com/hotupdater/HotUpdaterImplTest.kt +57 -2
  14. package/android/src/test/java/com/hotupdater/ReleaseCatalogCacheServiceTest.kt +118 -0
  15. package/ios/HotUpdater/Internal/BundleFileStorageService.swift +491 -30
  16. package/ios/HotUpdater/Internal/BundleMetadata.swift +229 -6
  17. package/ios/HotUpdater/Internal/HotUpdater.mm +122 -0
  18. package/ios/HotUpdater/Internal/HotUpdaterImpl.swift +176 -7
  19. package/ios/HotUpdater/Internal/ReleaseCatalogCacheService.swift +213 -0
  20. package/lib/commonjs/catalogCacheNative.js +44 -0
  21. package/lib/commonjs/catalogCacheNative.js.map +1 -0
  22. package/lib/commonjs/catalogCacheNative.spec.js +31 -0
  23. package/lib/commonjs/catalogCacheNative.spec.js.map +1 -0
  24. package/lib/commonjs/checkForUpdate.js +231 -60
  25. package/lib/commonjs/checkForUpdate.js.map +1 -1
  26. package/lib/commonjs/checkForUpdate.releaseCatalog.spec.js +604 -0
  27. package/lib/commonjs/checkForUpdate.releaseCatalog.spec.js.map +1 -0
  28. package/lib/commonjs/error.js +8 -1
  29. package/lib/commonjs/error.js.map +1 -1
  30. package/lib/commonjs/{fetchUpdateInfo.js → fetchJSON.js} +11 -14
  31. package/lib/commonjs/fetchJSON.js.map +1 -0
  32. package/lib/commonjs/httpClient.js +153 -0
  33. package/lib/commonjs/httpClient.js.map +1 -0
  34. package/lib/commonjs/httpClient.spec.js +102 -0
  35. package/lib/commonjs/httpClient.spec.js.map +1 -0
  36. package/lib/commonjs/index.js +48 -71
  37. package/lib/commonjs/index.js.map +1 -1
  38. package/lib/commonjs/index.spec.js +117 -161
  39. package/lib/commonjs/index.spec.js.map +1 -1
  40. package/lib/commonjs/iosInterop.spec.js +18 -0
  41. package/lib/commonjs/iosInterop.spec.js.map +1 -0
  42. package/lib/commonjs/native.js +222 -55
  43. package/lib/commonjs/native.js.map +1 -1
  44. package/lib/commonjs/native.spec.js +226 -12
  45. package/lib/commonjs/native.spec.js.map +1 -1
  46. package/lib/commonjs/notifyAppReadyAnalytics.boundary.spec.js +218 -0
  47. package/lib/commonjs/notifyAppReadyAnalytics.boundary.spec.js.map +1 -0
  48. package/lib/commonjs/notifyAppReadyAnalytics.js +133 -0
  49. package/lib/commonjs/notifyAppReadyAnalytics.js.map +1 -0
  50. package/lib/commonjs/notifyAppReadyAnalytics.spec.js +246 -0
  51. package/lib/commonjs/notifyAppReadyAnalytics.spec.js.map +1 -0
  52. package/lib/commonjs/notifyAppReadyAnalytics.test-utils.js +24 -0
  53. package/lib/commonjs/notifyAppReadyAnalytics.test-utils.js.map +1 -0
  54. package/lib/commonjs/notifyAppReadyAnalytics.transport.spec.js +117 -0
  55. package/lib/commonjs/notifyAppReadyAnalytics.transport.spec.js.map +1 -0
  56. package/lib/commonjs/releaseCatalogCache.js +179 -0
  57. package/lib/commonjs/releaseCatalogCache.js.map +1 -0
  58. package/lib/commonjs/releaseCatalogCache.spec.js +195 -0
  59. package/lib/commonjs/releaseCatalogCache.spec.js.map +1 -0
  60. package/lib/commonjs/releaseCatalogCacheNativeContract.spec.js +64 -0
  61. package/lib/commonjs/releaseCatalogCacheNativeContract.spec.js.map +1 -0
  62. package/lib/commonjs/sdkVersion.js +1 -1
  63. package/lib/commonjs/sdkVersion.js.map +1 -1
  64. package/lib/commonjs/specs/NativeHotUpdater.js.map +1 -1
  65. package/lib/commonjs/types.js +0 -12
  66. package/lib/commonjs/types.js.map +1 -1
  67. package/lib/commonjs/wrap.js +7 -82
  68. package/lib/commonjs/wrap.js.map +1 -1
  69. package/lib/commonjs/wrap.spec.js +203 -56
  70. package/lib/commonjs/wrap.spec.js.map +1 -1
  71. package/lib/commonjs/wrap.types.js +6 -0
  72. package/lib/commonjs/wrap.types.js.map +1 -0
  73. package/lib/module/catalogCacheNative.js +36 -0
  74. package/lib/module/catalogCacheNative.js.map +1 -0
  75. package/lib/module/catalogCacheNative.spec.js +31 -0
  76. package/lib/module/catalogCacheNative.spec.js.map +1 -0
  77. package/lib/module/checkForUpdate.js +233 -62
  78. package/lib/module/checkForUpdate.js.map +1 -1
  79. package/lib/module/checkForUpdate.releaseCatalog.spec.js +603 -0
  80. package/lib/module/checkForUpdate.releaseCatalog.spec.js.map +1 -0
  81. package/lib/module/error.js +6 -0
  82. package/lib/module/error.js.map +1 -1
  83. package/lib/module/{fetchUpdateInfo.js → fetchJSON.js} +9 -12
  84. package/lib/module/fetchJSON.js.map +1 -0
  85. package/lib/module/httpClient.js +148 -0
  86. package/lib/module/httpClient.js.map +1 -0
  87. package/lib/module/httpClient.spec.js +102 -0
  88. package/lib/module/httpClient.spec.js.map +1 -0
  89. package/lib/module/index.js +49 -66
  90. package/lib/module/index.js.map +1 -1
  91. package/lib/module/index.spec.js +117 -161
  92. package/lib/module/index.spec.js.map +1 -1
  93. package/lib/module/iosInterop.spec.js +18 -0
  94. package/lib/module/iosInterop.spec.js.map +1 -0
  95. package/lib/module/native.js +206 -51
  96. package/lib/module/native.js.map +1 -1
  97. package/lib/module/native.spec.js +226 -12
  98. package/lib/module/native.spec.js.map +1 -1
  99. package/lib/module/notifyAppReadyAnalytics.boundary.spec.js +217 -0
  100. package/lib/module/notifyAppReadyAnalytics.boundary.spec.js.map +1 -0
  101. package/lib/module/notifyAppReadyAnalytics.js +128 -0
  102. package/lib/module/notifyAppReadyAnalytics.js.map +1 -0
  103. package/lib/module/notifyAppReadyAnalytics.spec.js +245 -0
  104. package/lib/module/notifyAppReadyAnalytics.spec.js.map +1 -0
  105. package/lib/module/notifyAppReadyAnalytics.test-utils.js +18 -0
  106. package/lib/module/notifyAppReadyAnalytics.test-utils.js.map +1 -0
  107. package/lib/module/notifyAppReadyAnalytics.transport.spec.js +116 -0
  108. package/lib/module/notifyAppReadyAnalytics.transport.spec.js.map +1 -0
  109. package/lib/module/releaseCatalogCache.js +171 -0
  110. package/lib/module/releaseCatalogCache.js.map +1 -0
  111. package/lib/module/releaseCatalogCache.spec.js +195 -0
  112. package/lib/module/releaseCatalogCache.spec.js.map +1 -0
  113. package/lib/module/releaseCatalogCacheNativeContract.spec.js +64 -0
  114. package/lib/module/releaseCatalogCacheNativeContract.spec.js.map +1 -0
  115. package/lib/module/sdkVersion.js +1 -1
  116. package/lib/module/sdkVersion.js.map +1 -1
  117. package/lib/module/specs/NativeHotUpdater.js.map +1 -1
  118. package/lib/module/types.js +0 -12
  119. package/lib/module/types.js.map +1 -1
  120. package/lib/module/wrap.js +6 -81
  121. package/lib/module/wrap.js.map +1 -1
  122. package/lib/module/wrap.spec.js +203 -56
  123. package/lib/module/wrap.spec.js.map +1 -1
  124. package/lib/module/wrap.types.js +4 -0
  125. package/lib/module/wrap.types.js.map +1 -0
  126. package/lib/typescript/commonjs/catalogCacheNative.d.ts +4 -0
  127. package/lib/typescript/commonjs/catalogCacheNative.d.ts.map +1 -0
  128. package/lib/typescript/commonjs/checkForUpdate.d.ts +14 -4
  129. package/lib/typescript/commonjs/checkForUpdate.d.ts.map +1 -1
  130. package/lib/typescript/commonjs/error.d.ts +3 -0
  131. package/lib/typescript/commonjs/error.d.ts.map +1 -1
  132. package/lib/typescript/commonjs/fetchJSON.d.ts +6 -0
  133. package/lib/typescript/commonjs/fetchJSON.d.ts.map +1 -0
  134. package/lib/typescript/commonjs/httpClient.d.ts +56 -0
  135. package/lib/typescript/commonjs/httpClient.d.ts.map +1 -0
  136. package/lib/typescript/commonjs/index.d.ts +32 -41
  137. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  138. package/lib/typescript/commonjs/native.d.ts +83 -18
  139. package/lib/typescript/commonjs/native.d.ts.map +1 -1
  140. package/lib/typescript/commonjs/notifyAppReadyAnalytics.d.ts +13 -0
  141. package/lib/typescript/commonjs/notifyAppReadyAnalytics.d.ts.map +1 -0
  142. package/lib/typescript/commonjs/notifyAppReadyAnalytics.test-utils.d.ts +8 -0
  143. package/lib/typescript/commonjs/notifyAppReadyAnalytics.test-utils.d.ts.map +1 -0
  144. package/lib/typescript/commonjs/releaseCatalogCache.d.ts +25 -0
  145. package/lib/typescript/commonjs/releaseCatalogCache.d.ts.map +1 -0
  146. package/lib/typescript/commonjs/sdkVersion.d.ts +1 -1
  147. package/lib/typescript/commonjs/sdkVersion.d.ts.map +1 -1
  148. package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts +40 -5
  149. package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts.map +1 -1
  150. package/lib/typescript/commonjs/types.d.ts +0 -118
  151. package/lib/typescript/commonjs/types.d.ts.map +1 -1
  152. package/lib/typescript/commonjs/wrap.d.ts +2 -191
  153. package/lib/typescript/commonjs/wrap.d.ts.map +1 -1
  154. package/lib/typescript/commonjs/wrap.types.d.ts +65 -0
  155. package/lib/typescript/commonjs/wrap.types.d.ts.map +1 -0
  156. package/lib/typescript/module/catalogCacheNative.d.ts +4 -0
  157. package/lib/typescript/module/catalogCacheNative.d.ts.map +1 -0
  158. package/lib/typescript/module/checkForUpdate.d.ts +14 -4
  159. package/lib/typescript/module/checkForUpdate.d.ts.map +1 -1
  160. package/lib/typescript/module/error.d.ts +3 -0
  161. package/lib/typescript/module/error.d.ts.map +1 -1
  162. package/lib/typescript/module/fetchJSON.d.ts +6 -0
  163. package/lib/typescript/module/fetchJSON.d.ts.map +1 -0
  164. package/lib/typescript/module/httpClient.d.ts +56 -0
  165. package/lib/typescript/module/httpClient.d.ts.map +1 -0
  166. package/lib/typescript/module/index.d.ts +32 -41
  167. package/lib/typescript/module/index.d.ts.map +1 -1
  168. package/lib/typescript/module/native.d.ts +83 -18
  169. package/lib/typescript/module/native.d.ts.map +1 -1
  170. package/lib/typescript/module/notifyAppReadyAnalytics.d.ts +13 -0
  171. package/lib/typescript/module/notifyAppReadyAnalytics.d.ts.map +1 -0
  172. package/lib/typescript/module/notifyAppReadyAnalytics.test-utils.d.ts +8 -0
  173. package/lib/typescript/module/notifyAppReadyAnalytics.test-utils.d.ts.map +1 -0
  174. package/lib/typescript/module/releaseCatalogCache.d.ts +25 -0
  175. package/lib/typescript/module/releaseCatalogCache.d.ts.map +1 -0
  176. package/lib/typescript/module/sdkVersion.d.ts +1 -1
  177. package/lib/typescript/module/sdkVersion.d.ts.map +1 -1
  178. package/lib/typescript/module/specs/NativeHotUpdater.d.ts +40 -5
  179. package/lib/typescript/module/specs/NativeHotUpdater.d.ts.map +1 -1
  180. package/lib/typescript/module/types.d.ts +0 -118
  181. package/lib/typescript/module/types.d.ts.map +1 -1
  182. package/lib/typescript/module/wrap.d.ts +2 -191
  183. package/lib/typescript/module/wrap.d.ts.map +1 -1
  184. package/lib/typescript/module/wrap.types.d.ts +65 -0
  185. package/lib/typescript/module/wrap.types.d.ts.map +1 -0
  186. package/package.json +6 -24
  187. package/src/catalogCacheNative.spec.ts +63 -0
  188. package/src/catalogCacheNative.ts +74 -0
  189. package/src/checkForUpdate.releaseCatalog.spec.ts +596 -0
  190. package/src/checkForUpdate.ts +368 -97
  191. package/src/error.ts +7 -0
  192. package/src/{fetchUpdateInfo.ts → fetchJSON.ts} +8 -15
  193. package/src/httpClient.spec.ts +132 -0
  194. package/src/httpClient.ts +261 -0
  195. package/src/index.spec.ts +110 -203
  196. package/src/index.ts +70 -93
  197. package/src/iosInterop.spec.ts +30 -0
  198. package/src/native.spec.ts +226 -10
  199. package/src/native.ts +385 -83
  200. package/src/notifyAppReadyAnalytics.boundary.spec.ts +234 -0
  201. package/src/notifyAppReadyAnalytics.spec.ts +243 -0
  202. package/src/notifyAppReadyAnalytics.test-utils.ts +31 -0
  203. package/src/notifyAppReadyAnalytics.transport.spec.ts +130 -0
  204. package/src/notifyAppReadyAnalytics.ts +194 -0
  205. package/src/releaseCatalogCache.spec.ts +282 -0
  206. package/src/releaseCatalogCache.ts +341 -0
  207. package/src/releaseCatalogCacheNativeContract.spec.ts +80 -0
  208. package/src/sdkVersion.ts +1 -1
  209. package/src/specs/NativeHotUpdater.ts +51 -5
  210. package/src/types.ts +0 -140
  211. package/src/wrap.spec.ts +251 -56
  212. package/src/wrap.tsx +23 -318
  213. package/src/wrap.types.ts +78 -0
  214. package/android/src/main/java/com/hotupdater/StringResourceUtils.kt +0 -45
  215. package/app.plugin.js +0 -1
  216. package/ios/HotUpdater/Internal/HotUpdaterCrashHandler.h +0 -7
  217. package/ios/HotUpdater/Internal/HotUpdaterCrashHandler.mm +0 -4
  218. package/lib/commonjs/DefaultResolver.js +0 -50
  219. package/lib/commonjs/DefaultResolver.js.map +0 -1
  220. package/lib/commonjs/DefaultResolver.spec.js +0 -144
  221. package/lib/commonjs/DefaultResolver.spec.js.map +0 -1
  222. package/lib/commonjs/fetchUpdateInfo.js.map +0 -1
  223. package/lib/module/DefaultResolver.js +0 -46
  224. package/lib/module/DefaultResolver.js.map +0 -1
  225. package/lib/module/DefaultResolver.spec.js +0 -144
  226. package/lib/module/DefaultResolver.spec.js.map +0 -1
  227. package/lib/module/fetchUpdateInfo.js.map +0 -1
  228. package/lib/typescript/commonjs/DefaultResolver.d.ts +0 -11
  229. package/lib/typescript/commonjs/DefaultResolver.d.ts.map +0 -1
  230. package/lib/typescript/commonjs/fetchUpdateInfo.d.ts +0 -7
  231. package/lib/typescript/commonjs/fetchUpdateInfo.d.ts.map +0 -1
  232. package/lib/typescript/module/DefaultResolver.d.ts +0 -11
  233. package/lib/typescript/module/DefaultResolver.d.ts.map +0 -1
  234. package/lib/typescript/module/fetchUpdateInfo.d.ts +0 -7
  235. package/lib/typescript/module/fetchUpdateInfo.d.ts.map +0 -1
  236. package/plugin/build/transformers.js +0 -314
  237. package/plugin/build/withHotUpdater.js +0 -228
  238. package/src/DefaultResolver.spec.ts +0 -193
  239. package/src/DefaultResolver.ts +0 -63
@@ -3,29 +3,26 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.fetchUpdateInfo = void 0;
7
- const fetchUpdateInfo = async ({
6
+ exports.fetchJSON = void 0;
7
+ const fetchJSON = async ({
8
8
  url,
9
9
  requestHeaders,
10
10
  requestTimeout = 5000
11
11
  }) => {
12
12
  const controller = new AbortController();
13
- const timeoutId = setTimeout(() => {
14
- controller.abort();
15
- }, requestTimeout);
13
+ const timeoutId = setTimeout(() => controller.abort(), requestTimeout);
16
14
  try {
17
- const headers = {
18
- "Content-Type": "application/json",
19
- ...requestHeaders
20
- };
21
15
  const response = await fetch(url, {
22
- signal: controller.signal,
23
- headers
16
+ headers: {
17
+ Accept: "application/json",
18
+ ...requestHeaders
19
+ },
20
+ signal: controller.signal
24
21
  });
25
22
  if (response.status !== 200) {
26
23
  throw new Error(response.statusText);
27
24
  }
28
- return response.json();
25
+ return await response.json();
29
26
  } catch (error) {
30
27
  if (error instanceof Error && error.name === "AbortError") {
31
28
  throw new Error("Request timed out");
@@ -35,5 +32,5 @@ const fetchUpdateInfo = async ({
35
32
  clearTimeout(timeoutId);
36
33
  }
37
34
  };
38
- exports.fetchUpdateInfo = fetchUpdateInfo;
39
- //# sourceMappingURL=fetchUpdateInfo.js.map
35
+ exports.fetchJSON = fetchJSON;
36
+ //# sourceMappingURL=fetchJSON.js.map
@@ -0,0 +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","exports"],"sourceRoot":"../../src","sources":["fetchJSON.ts"],"mappings":";;;;;;AAAO,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;AAACe,OAAA,CAAArB,SAAA,GAAAA,SAAA","ignoreList":[]}
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createHttpClient = void 0;
7
+ var _core = require("@hot-updater/core");
8
+ var _pluginCore = require("@hot-updater/plugin-core");
9
+ var _fetchJSON = require("./fetchJSON.js");
10
+ var _releaseCatalogCache = require("./releaseCatalogCache.js");
11
+ var _sdkVersion = require("./sdkVersion.js");
12
+ const resolveBaseURL = async baseURL => {
13
+ const resolvedBaseURL = typeof baseURL === "function" ? await baseURL() : baseURL;
14
+ if (!resolvedBaseURL) {
15
+ throw new Error("baseURL function must return a non-empty string");
16
+ }
17
+ return resolvedBaseURL.replace(/\/+$/, "");
18
+ };
19
+ const resolveArtifactUrl = (baseURL, value) => {
20
+ if (/^https?:\/\//i.test(value)) {
21
+ new URL(value);
22
+ return value;
23
+ }
24
+ if (!value.startsWith("/storage/")) {
25
+ throw new Error("Artifact URLs must be absolute HTTP(S) URLs or client-relative storage paths.");
26
+ }
27
+ return `${baseURL}/${value.slice(1)}`;
28
+ };
29
+ const resolveArtifactUrls = (baseURL, info) => ({
30
+ ...info,
31
+ fileUrl: info.fileUrl === null ? null : resolveArtifactUrl(baseURL, info.fileUrl),
32
+ ...(info.manifestUrl === undefined ? {} : {
33
+ manifestUrl: info.manifestUrl === null ? null : resolveArtifactUrl(baseURL, info.manifestUrl)
34
+ }),
35
+ ...(info.changedAssets === undefined ? {} : {
36
+ changedAssets: info.changedAssets === null ? null : Object.fromEntries(Object.entries(info.changedAssets).map(([path, asset]) => [path, {
37
+ ...asset,
38
+ ...(asset.file ? {
39
+ file: {
40
+ ...asset.file,
41
+ url: resolveArtifactUrl(baseURL, asset.file.url)
42
+ }
43
+ } : {}),
44
+ ...(asset.patch ? {
45
+ patch: {
46
+ ...asset.patch,
47
+ patchUrl: resolveArtifactUrl(baseURL, asset.patch.patchUrl)
48
+ }
49
+ } : {})
50
+ }]))
51
+ })
52
+ });
53
+ const sendAnalyticsEvent = async (baseURL, params) => {
54
+ const controller = new AbortController();
55
+ const timeoutId = setTimeout(() => {
56
+ controller.abort();
57
+ }, params.requestTimeout ?? 5000);
58
+ try {
59
+ const response = await fetch(`${baseURL}/events`, {
60
+ body: JSON.stringify({
61
+ appVersion: params.appVersion,
62
+ channel: params.channel,
63
+ cohort: params.cohort,
64
+ fingerprintHash: params.fingerprintHash,
65
+ fromBundleId: params.fromBundleId,
66
+ ...(params.fromReleaseId === undefined ? {} : {
67
+ fromReleaseId: params.fromReleaseId
68
+ }),
69
+ installId: params.installId,
70
+ platform: params.platform,
71
+ sdkVersion: _sdkVersion.HOT_UPDATER_SDK_VERSION,
72
+ toBundleId: params.toBundleId,
73
+ ...(params.toReleaseId === undefined ? {} : {
74
+ toReleaseId: params.toReleaseId
75
+ }),
76
+ type: params.type,
77
+ updateStrategy: params.updateStrategy,
78
+ ...(params.userId != null ? {
79
+ userId: params.userId
80
+ } : {}),
81
+ ...(params.username != null ? {
82
+ username: params.username
83
+ } : {})
84
+ }),
85
+ headers: {
86
+ "Content-Type": "application/json",
87
+ ...params.requestHeaders
88
+ },
89
+ method: "POST",
90
+ signal: controller.signal
91
+ });
92
+ if (response.status !== 204) {
93
+ throw new Error(`Expected HTTP 204 from /events, received ${response.status}`);
94
+ }
95
+ } catch (error) {
96
+ if (error instanceof Error && error.name === "AbortError") {
97
+ throw new Error("Request timed out");
98
+ }
99
+ throw error;
100
+ } finally {
101
+ clearTimeout(timeoutId);
102
+ }
103
+ };
104
+ const createSession = baseURL => ({
105
+ fetchReleaseCatalog: async params => {
106
+ const channelKey = (0, _core.encodeChannelKey)(params.channel);
107
+ let strategyValue;
108
+ if (params.updateStrategy === "fingerprint") {
109
+ if (!params.fingerprintHash) {
110
+ throw new Error("Fingerprint hash is required");
111
+ }
112
+ strategyValue = params.fingerprintHash;
113
+ } else {
114
+ const appVersion = (0, _pluginCore.canonicalizeAppVersion)(params.appVersion);
115
+ if (appVersion === null) throw new Error("Invalid app version");
116
+ strategyValue = appVersion;
117
+ }
118
+ const strategyPath = params.updateStrategy === "fingerprint" ? "fingerprint" : "app-version";
119
+ const url = `${baseURL}/release-catalogs/${strategyPath}/${params.platform}/${channelKey}/${encodeURIComponent(strategyValue)}`;
120
+ return (0, _releaseCatalogCache.fetchReleaseCatalogWithCache)({
121
+ baseURL,
122
+ expectedScope: params.updateStrategy === "fingerprint" ? {
123
+ channelKey,
124
+ fingerprintHash: strategyValue,
125
+ platform: params.platform,
126
+ strategy: "FINGERPRINT"
127
+ } : {
128
+ channelKey,
129
+ platform: params.platform,
130
+ strategy: "APP_VERSION"
131
+ },
132
+ requestHeaders: params.requestHeaders,
133
+ requestTimeout: params.requestTimeout,
134
+ url
135
+ });
136
+ },
137
+ resolveArtifact: async params => {
138
+ const info = await (0, _fetchJSON.fetchJSON)({
139
+ requestHeaders: params.requestHeaders,
140
+ requestTimeout: params.requestTimeout,
141
+ url: `${baseURL}/artifacts/${encodeURIComponent(params.targetBundleId)}/from/${encodeURIComponent(params.currentBundleId)}`
142
+ });
143
+ return resolveArtifactUrls(baseURL, info);
144
+ },
145
+ sendAnalyticsEvent: params => sendAnalyticsEvent(baseURL, params)
146
+ });
147
+
148
+ /** Creates the private HTTP client used by HotUpdater.init and HotUpdater.wrap. */
149
+ const createHttpClient = baseURL => ({
150
+ createSession: async () => createSession(await resolveBaseURL(baseURL))
151
+ });
152
+ exports.createHttpClient = createHttpClient;
153
+ //# sourceMappingURL=httpClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_core","require","_pluginCore","_fetchJSON","_releaseCatalogCache","_sdkVersion","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","HOT_UPDATER_SDK_VERSION","toBundleId","toReleaseId","type","updateStrategy","userId","username","headers","requestHeaders","method","signal","status","error","name","clearTimeout","createSession","fetchReleaseCatalog","channelKey","encodeChannelKey","strategyValue","canonicalizeAppVersion","strategyPath","encodeURIComponent","fetchReleaseCatalogWithCache","expectedScope","strategy","resolveArtifact","fetchJSON","targetBundleId","currentBundleId","createHttpClient","exports"],"sourceRoot":"../../src","sources":["httpClient.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+
3
+ var _vitest = require("vitest");
4
+ var _httpClient = require("./httpClient.js");
5
+ const mocks = _vitest.vi.hoisted(() => {
6
+ Reflect.set(globalThis, "HotUpdater", {
7
+ SDK_VERSION: "test-sdk-version"
8
+ });
9
+ return {
10
+ fetchCatalog: _vitest.vi.fn(),
11
+ fetchJSON: _vitest.vi.fn()
12
+ };
13
+ });
14
+ _vitest.vi.mock("./releaseCatalogCache", () => ({
15
+ fetchReleaseCatalogWithCache: mocks.fetchCatalog
16
+ }));
17
+ _vitest.vi.mock("./fetchJSON", () => ({
18
+ fetchJSON: mocks.fetchJSON
19
+ }));
20
+ const artifact = {
21
+ fileHash: "bundle-hash",
22
+ fileUrl: "/storage/bundle.zip"
23
+ };
24
+ const catalog = {
25
+ catalogId: "server-owned-project",
26
+ catalogHash: `sha256:${"a".repeat(64)}`,
27
+ fallbackPolicy: "BUILTIN_IF_ACTIVE_INELIGIBLE",
28
+ generation: 1,
29
+ releases: [],
30
+ schemaVersion: 1,
31
+ scopeKey: "v1:app-version:server-owned-project:ios:cHJvZHVjdGlvbg"
32
+ };
33
+ (0, _vitest.describe)("private HotUpdater HTTP client", () => {
34
+ (0, _vitest.beforeEach)(() => {
35
+ _vitest.vi.clearAllMocks();
36
+ mocks.fetchCatalog.mockResolvedValue(catalog);
37
+ mocks.fetchJSON.mockResolvedValue(artifact);
38
+ });
39
+ (0, _vitest.it)("fetches a catalog without putting its internal identity in the route", async () => {
40
+ const session = await (0, _httpClient.createHttpClient)("https://updates.example.com/hot-updater/").createSession();
41
+ await (0, _vitest.expect)(session.fetchReleaseCatalog({
42
+ appVersion: "1.2.0",
43
+ channel: "production",
44
+ fingerprintHash: null,
45
+ platform: "ios",
46
+ updateStrategy: "appVersion"
47
+ })).resolves.toBe(catalog);
48
+ (0, _vitest.expect)(mocks.fetchCatalog).toHaveBeenCalledWith({
49
+ baseURL: "https://updates.example.com/hot-updater",
50
+ expectedScope: {
51
+ channelKey: "cHJvZHVjdGlvbg",
52
+ platform: "ios",
53
+ strategy: "APP_VERSION"
54
+ },
55
+ requestHeaders: undefined,
56
+ requestTimeout: undefined,
57
+ url: "https://updates.example.com/hot-updater/release-catalogs/app-version/ios/cHJvZHVjdGlvbg/1.2.0"
58
+ });
59
+ });
60
+ (0, _vitest.it)("resolves a functional baseURL once per session and captures it for a deferred artifact", async () => {
61
+ const resolveBaseURL = _vitest.vi.fn().mockResolvedValueOnce("https://first.example.com/hot-updater").mockResolvedValueOnce("https://second.example.com/hot-updater");
62
+ const client = (0, _httpClient.createHttpClient)(resolveBaseURL);
63
+ const firstSession = await client.createSession();
64
+ await firstSession.fetchReleaseCatalog({
65
+ appVersion: "1.2.0",
66
+ channel: "production",
67
+ fingerprintHash: null,
68
+ platform: "ios",
69
+ updateStrategy: "appVersion"
70
+ });
71
+ await (0, _vitest.expect)(firstSession.resolveArtifact({
72
+ currentBundleId: "current",
73
+ targetBundleId: "target"
74
+ })).resolves.toEqual({
75
+ ...artifact,
76
+ fileUrl: "https://first.example.com/hot-updater/storage/bundle.zip"
77
+ });
78
+ (0, _vitest.expect)(resolveBaseURL).toHaveBeenCalledOnce();
79
+ (0, _vitest.expect)(mocks.fetchJSON).toHaveBeenCalledWith({
80
+ requestHeaders: undefined,
81
+ requestTimeout: undefined,
82
+ url: "https://first.example.com/hot-updater/artifacts/target/from/current"
83
+ });
84
+ await client.createSession();
85
+ (0, _vitest.expect)(resolveBaseURL).toHaveBeenCalledTimes(2);
86
+ });
87
+ (0, _vitest.it)("rejects non-storage relative artifact URLs", async () => {
88
+ mocks.fetchJSON.mockResolvedValue({
89
+ ...artifact,
90
+ fileUrl: "/private/bundle.zip"
91
+ });
92
+ const session = await (0, _httpClient.createHttpClient)("https://updates.example.com").createSession();
93
+ await (0, _vitest.expect)(session.resolveArtifact({
94
+ currentBundleId: "current",
95
+ targetBundleId: "target"
96
+ })).rejects.toThrow("client-relative storage paths");
97
+ });
98
+ (0, _vitest.it)("requires a functional baseURL to resolve to a non-empty string", async () => {
99
+ await (0, _vitest.expect)((0, _httpClient.createHttpClient)(() => "").createSession()).rejects.toThrow("baseURL function must return a non-empty string");
100
+ });
101
+ });
102
+ //# sourceMappingURL=httpClient.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_vitest","require","_httpClient","mocks","vi","hoisted","Reflect","set","globalThis","SDK_VERSION","fetchCatalog","fn","fetchJSON","mock","fetchReleaseCatalogWithCache","artifact","fileHash","fileUrl","catalog","catalogId","catalogHash","repeat","fallbackPolicy","generation","releases","schemaVersion","scopeKey","describe","beforeEach","clearAllMocks","mockResolvedValue","it","session","createHttpClient","createSession","expect","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":[]}
@@ -5,17 +5,10 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  var _exportNames = {
7
7
  HotUpdater: true,
8
- createDefaultResolver: true,
9
8
  extractSignatureFailure: true,
10
9
  isSignatureVerificationError: true
11
10
  };
12
11
  exports.HotUpdater = void 0;
13
- Object.defineProperty(exports, "createDefaultResolver", {
14
- enumerable: true,
15
- get: function () {
16
- return _DefaultResolver.createDefaultResolver;
17
- }
18
- });
19
12
  Object.defineProperty(exports, "extractSignatureFailure", {
20
13
  enumerable: true,
21
14
  get: function () {
@@ -29,7 +22,7 @@ Object.defineProperty(exports, "isSignatureVerificationError", {
29
22
  }
30
23
  });
31
24
  var _checkForUpdate = require("./checkForUpdate.js");
32
- var _DefaultResolver = require("./DefaultResolver.js");
25
+ var _httpClient = require("./httpClient.js");
33
26
  var _native = require("./native.js");
34
27
  var _store = require("./store.js");
35
28
  Object.keys(_store).forEach(function (key) {
@@ -62,8 +55,6 @@ const registerGlobalGetBaseURL = () => {
62
55
 
63
56
  // Call registration immediately on module load
64
57
  registerGlobalGetBaseURL();
65
- const isManualWrapOptions = options => "updateMode" in options && options.updateMode === "manual";
66
-
67
58
  /**
68
59
  * Creates a HotUpdater client instance with all update management methods.
69
60
  * This function is called once on module initialization to create a singleton instance.
@@ -74,51 +65,29 @@ function createHotUpdaterClient() {
74
65
 
75
66
  // Global configuration stored from wrap
76
67
  const globalConfig = {
77
- resolver: null
68
+ client: null
78
69
  };
79
70
  const createMissingNetworkConfigError = apiName => {
80
71
  if (apiName === "init") {
81
- return new Error(`[HotUpdater] Either baseURL or resolver must be provided.\n\n` + `Configure HotUpdater before calling update APIs with the standard baseURL setup:\n\n` + ` HotUpdater.init({\n` + ` baseURL: "<your-update-server-url>",\n` + ` });\n\n` + `For manual update flows, visit: https://hot-updater.dev/docs/guides/custom-update`);
72
+ return new Error(`[HotUpdater] baseURL must be provided.\n\n` + `Configure HotUpdater before calling update APIs with the standard baseURL setup:\n\n` + ` HotUpdater.init({\n` + ` baseURL: "<your-update-server-url>",\n` + ` });\n\n` + `For manual update flows, visit: https://hot-updater.dev/docs/guides/custom-update`);
82
73
  }
83
74
  const baseURLExample = ` export default HotUpdater.wrap({\n` + ` baseURL: "<your-update-server-url>",\n` + ` updateStrategy: "appVersion"\n` + ` })(App);\n\n`;
84
- return new Error(`[HotUpdater] Either baseURL or resolver must be provided.\n\n` + `Configure HotUpdater.wrap with the standard baseURL setup:\n\n` + baseURLExample + `For manual update flows, use HotUpdater.init() and visit: ` + `https://hot-updater.dev/docs/guides/custom-update`);
75
+ return new Error(`[HotUpdater] baseURL must be provided.\n\n` + `Configure HotUpdater.wrap with the standard baseURL setup:\n\n` + baseURLExample + `For manual update flows, use HotUpdater.init() and visit: ` + `https://hot-updater.dev/docs/guides/custom-update`);
85
76
  };
86
77
  const normalizeOptions = options => {
87
- if (isManualWrapOptions(options)) {
88
- if ("baseURL" in options && options.baseURL) {
89
- const {
90
- baseURL,
91
- ...rest
92
- } = options;
93
- return {
94
- ...rest,
95
- resolver: (0, _DefaultResolver.createDefaultResolver)(baseURL),
96
- updateMode: "manual"
97
- };
98
- }
99
- if ("resolver" in options && options.resolver) {
100
- return {
101
- ...options,
102
- updateMode: "manual"
103
- };
104
- }
78
+ const incoming = options;
79
+ if (incoming.updateMode === "manual") {
80
+ throw new Error('[HotUpdater] HotUpdater.wrap({ updateMode: "manual" }) was removed. ' + "Call HotUpdater.init({ ... }) instead, export your root component " + "directly, and use HotUpdater.checkForUpdate(...) for the manual " + "update flow. See https://hot-updater.dev/docs/guides/custom-update");
105
81
  }
106
- const autoOptions = options;
107
- if ("baseURL" in autoOptions && autoOptions.baseURL) {
82
+ const autoOptions = incoming;
83
+ if (autoOptions.baseURL) {
108
84
  const {
109
85
  baseURL,
110
86
  ...rest
111
87
  } = autoOptions;
112
88
  return {
113
89
  ...rest,
114
- resolver: (0, _DefaultResolver.createDefaultResolver)(baseURL),
115
- updateMode: "auto"
116
- };
117
- }
118
- if ("resolver" in autoOptions && autoOptions.resolver) {
119
- return {
120
- ...autoOptions,
121
- updateMode: "auto"
90
+ client: (0, _httpClient.createHttpClient)(baseURL)
122
91
  };
123
92
  }
124
93
  throw createMissingNetworkConfigError("wrap");
@@ -128,23 +97,21 @@ function createHotUpdaterClient() {
128
97
  updateMode: _updateMode,
129
98
  ...rest
130
99
  } = options;
131
- if ("baseURL" in rest && rest.baseURL) {
100
+ if (rest.baseURL) {
132
101
  const {
133
102
  baseURL,
134
103
  ...baseURLRest
135
104
  } = rest;
136
105
  return {
137
106
  ...baseURLRest,
138
- resolver: (0, _DefaultResolver.createDefaultResolver)(baseURL)
107
+ client: (0, _httpClient.createHttpClient)(baseURL)
139
108
  };
140
109
  }
141
- if ("resolver" in rest && rest.resolver) {
142
- return rest;
143
- }
144
110
  throw createMissingNetworkConfigError("init");
145
111
  };
146
112
  const configureGlobal = (normalizedOptions, options) => {
147
- globalConfig.resolver = normalizedOptions.resolver;
113
+ globalConfig.analytics = normalizedOptions.analytics;
114
+ globalConfig.client = normalizedOptions.client;
148
115
  globalConfig.requestHeaders = options.requestHeaders;
149
116
  globalConfig.requestTimeout = options.requestTimeout;
150
117
  globalConfig.onError = options.onError;
@@ -156,11 +123,11 @@ function createHotUpdaterClient() {
156
123
  }
157
124
  configurationAPI ??= nextAPI;
158
125
  };
159
- const ensureGlobalResolver = methodName => {
160
- if (!globalConfig.resolver) {
126
+ const ensureGlobalClient = methodName => {
127
+ if (!globalConfig.client) {
161
128
  throw new Error(`[HotUpdater] ${methodName} requires HotUpdater.wrap() or HotUpdater.init() to be used.\n\n` + `To fix this issue, configure HotUpdater before calling ${methodName}:\n\n` + `Option 1: With HotUpdater.wrap()\n` + ` export default HotUpdater.wrap({\n` + ` baseURL: "<your-update-server-url>",\n` + ` updateStrategy: "appVersion"\n` + ` })(App);\n\n` + `Option 2: With HotUpdater.init() for custom runtimes\n` + ` HotUpdater.init({\n` + ` baseURL: "<your-update-server-url>",\n` + ` });\n\n` + `For manual update flows, visit: https://hot-updater.dev/docs/guides/custom-update`);
162
129
  }
163
- return globalConfig.resolver;
130
+ return globalConfig.client;
164
131
  };
165
132
  return {
166
133
  /**
@@ -181,7 +148,7 @@ function createHotUpdaterClient() {
181
148
  * baseURL: "<your-update-server-url>",
182
149
  * updateStrategy: "appVersion",
183
150
  * requestHeaders: {
184
- * "Authorization": "Bearer <your-access-token>",
151
+ * "x-api-key": "<your-api-key>",
185
152
  * },
186
153
  * })(App);
187
154
  * ```
@@ -196,8 +163,7 @@ function createHotUpdaterClient() {
196
163
  * Initializes HotUpdater without wrapping a React component.
197
164
  *
198
165
  * Use this for manual update flows in runtimes where a root component HOC
199
- * is not convenient. Replace deprecated manual
200
- * `HotUpdater.wrap({ updateMode: "manual" })(App)` usage with this API.
166
+ * is not convenient. Use this instead of wrapping the root component.
201
167
  *
202
168
  * @example
203
169
  * ```tsx
@@ -251,14 +217,16 @@ function createHotUpdaterClient() {
251
217
  * Fetches the current app version.
252
218
  */
253
219
  getAppVersion: _native.getAppVersion,
220
+ /** Reads the active and stable Release/Bundle state. */
221
+ getActiveUpdateState: async () => (0, _native.getPublicActiveUpdateState)(),
254
222
  /**
255
223
  * Fetches the current bundle ID of the app.
256
224
  */
257
225
  getBundleId: _native.getBundleId,
258
- /**
259
- * Retrieves the initial bundle ID based on the build time of the native app.
260
- */
261
- getMinBundleId: _native.getMinBundleId,
226
+ /** Preferred Release-catalog name for the build-time UUIDv7 floor. */
227
+ getMinimumReleaseId: _native.getMinimumReleaseId,
228
+ /** Returns the active Release identity, or null for BUILTIN/legacy state. */
229
+ getReleaseId: _native.getReleaseId,
262
230
  /**
263
231
  * Fetches the current manifest for the active bundle.
264
232
  */
@@ -327,18 +295,17 @@ function createHotUpdaterClient() {
327
295
  * Manually checks for updates.
328
296
  *
329
297
  * @param {Object} config - Update check configuration
330
- * @param {string} config.source - Update server URL
331
298
  * @param {string} [config.channel] - Optional channel override for this update check
332
299
  * @param {Record<string, string>} [config.requestHeaders] - Request headers
333
300
  *
334
- * @returns {Promise<UpdateInfo | null>} Update information or null if up to date
301
+ * @returns {Promise<CheckForUpdateResult | null>} Update information or null if up to date
335
302
  *
336
303
  * @example
337
304
  * ```ts
338
305
  * const updateInfo = await HotUpdater.checkForUpdate({
339
- * source: "<your-update-server-url>",
306
+ * updateStrategy: "appVersion",
340
307
  * requestHeaders: {
341
- * Authorization: "Bearer <your-access-token>",
308
+ * "x-api-key": "<your-api-key>",
342
309
  * },
343
310
  * });
344
311
  *
@@ -347,17 +314,18 @@ function createHotUpdaterClient() {
347
314
  * return;
348
315
  * }
349
316
  *
350
- * await HotUpdater.updateBundle(updateInfo.id, updateInfo.fileUrl);
317
+ * await updateInfo.updateBundle();
351
318
  * if (updateInfo.shouldForceUpdate) {
352
319
  * await HotUpdater.reload();
353
320
  * }
354
321
  * ```
355
322
  */
356
323
  checkForUpdate: config => {
357
- const resolver = ensureGlobalResolver("checkForUpdate");
324
+ const client = ensureGlobalClient("checkForUpdate");
358
325
  const mergedConfig = {
359
326
  ...config,
360
- resolver,
327
+ analytics: globalConfig.analytics,
328
+ client,
361
329
  requestHeaders: {
362
330
  ...globalConfig.requestHeaders,
363
331
  ...config.requestHeaders
@@ -379,9 +347,9 @@ function createHotUpdaterClient() {
379
347
  * @example
380
348
  * ```ts
381
349
  * const updateInfo = await HotUpdater.checkForUpdate({
382
- * source: "<your-update-server-url>",
350
+ * updateStrategy: "appVersion",
383
351
  * requestHeaders: {
384
- * Authorization: "Bearer <your-access-token>",
352
+ * "x-api-key": "<your-api-key>",
385
353
  * },
386
354
  * });
387
355
  *
@@ -391,17 +359,14 @@ function createHotUpdaterClient() {
391
359
  * };
392
360
  * }
393
361
  *
394
- * await HotUpdater.updateBundle({
395
- * bundleId: updateInfo.id,
396
- * fileUrl: updateInfo.fileUrl
397
- * });
362
+ * await updateInfo.updateBundle();
398
363
  * if (updateInfo.shouldForceUpdate) {
399
364
  * await HotUpdater.reload();
400
365
  * }
401
366
  * ```
402
367
  */
403
368
  updateBundle: params => {
404
- ensureGlobalResolver("updateBundle");
369
+ ensureGlobalClient("updateBundle");
405
370
  return (0, _native.updateBundle)(params);
406
371
  },
407
372
  /**
@@ -435,6 +400,18 @@ function createHotUpdaterClient() {
435
400
  * ```
436
401
  */
437
402
  getFingerprintHash: _native.getFingerprintHash,
403
+ /**
404
+ * Fetches the persisted install id for this app installation.
405
+ */
406
+ getInstallId: _native.getInstallId,
407
+ /**
408
+ * Persists nullable user identity fields associated with this installation.
409
+ */
410
+ setUser: _native.setUser,
411
+ /**
412
+ * Reads the native launch report for the current process.
413
+ */
414
+ notifyAppReady: _native.notifyAppReady,
438
415
  /**
439
416
  * Gets the list of bundle IDs that have been marked as crashed.
440
417
  * These bundles will be rejected if attempted to install again.
@@ -1 +1 @@
1
- {"version":3,"names":["_checkForUpdate","require","_DefaultResolver","_native","_store","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_wrap","_types","registerGlobalGetBaseURL","fn","getBaseURL","globalThis","HotUpdaterGetBaseURL","isManualWrapOptions","options","updateMode","createHotUpdaterClient","configurationAPI","mixedConfigurationReported","globalConfig","resolver","createMissingNetworkConfigError","apiName","Error","baseURLExample","normalizeOptions","baseURL","rest","createDefaultResolver","autoOptions","normalizeInitOptions","_updateMode","baseURLRest","configureGlobal","normalizedOptions","requestHeaders","requestTimeout","onError","reportMixedConfiguration","nextAPI","console","error","ensureGlobalResolver","methodName","wrap","init","reload","setReloadBehavior","isUpdateDownloaded","hotUpdaterStore","getSnapshot","getAppVersion","getBundleId","getMinBundleId","getManifest","getChannel","getDefaultChannel","isChannelSwitched","setCohort","getCohort","addListener","checkForUpdate","config","mergedConfig","updateBundle","params","resetChannel","ok","setState","artifactType","details","downloadedBytes","undefined","progress","totalBytes","getFingerprintHash","getCrashHistory","clearCrashHistory","HotUpdater"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_checkForUpdate","require","_httpClient","_native","_store","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_wrap","_types","registerGlobalGetBaseURL","fn","getBaseURL","globalThis","HotUpdaterGetBaseURL","createHotUpdaterClient","configurationAPI","mixedConfigurationReported","globalConfig","client","createMissingNetworkConfigError","apiName","Error","baseURLExample","normalizeOptions","options","incoming","updateMode","autoOptions","baseURL","rest","createHttpClient","normalizeInitOptions","_updateMode","baseURLRest","configureGlobal","normalizedOptions","analytics","requestHeaders","requestTimeout","onError","reportMixedConfiguration","nextAPI","console","error","ensureGlobalClient","methodName","wrap","init","reload","setReloadBehavior","isUpdateDownloaded","hotUpdaterStore","getSnapshot","getAppVersion","getActiveUpdateState","getPublicActiveUpdateState","getBundleId","getMinimumReleaseId","getReleaseId","getManifest","getChannel","getDefaultChannel","isChannelSwitched","setCohort","getCohort","addListener","checkForUpdate","config","mergedConfig","updateBundle","params","resetChannel","ok","setState","artifactType","details","downloadedBytes","undefined","progress","totalBytes","getFingerprintHash","getInstallId","setUser","notifyAppReady","getCrashHistory","clearCrashHistory","HotUpdater"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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CA;IACIC,iBAAiB,EAAjBA,yBAAiB;IAEjB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,kBAAkB,EAAEA,CAAA,KAAMC,sBAAe,CAACC,WAAW,CAAC,CAAC,CAACF,kBAAkB;IAE1E;AACJ;AACA;IACIG,aAAa,EAAbA,qBAAa;IAEb;IACAC,oBAAoB,EAAE,MAAAA,CAAA,KAAY,IAAAC,kCAA0B,EAAC,CAAC;IAE9D;AACJ;AACA;IACIC,WAAW,EAAXA,mBAAW;IAEX;IACAC,mBAAmB,EAAnBA,2BAAmB;IAEnB;IACAC,YAAY,EAAZA,oBAAY;IAEZ;AACJ;AACA;IACIC,WAAW,EAAXA,mBAAW;IAEX;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,UAAU,EAAVA,kBAAU;IAEV;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,iBAAiB,EAAjBA,yBAAiB;IAEjB;AACJ;AACA;AACA;AACA;IACIC,iBAAiB,EAAjBA,yBAAiB;IAEjB;AACJ;AACA;AACA;IACIC,SAAS,EAATA,iBAAS;IAET;AACJ;AACA;IACIC,SAAS,EAATA,iBAAS;IAET;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,WAAW,EAAXA,mBAAW;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;IACIC,cAAc,EAAGC,MAA6B,IAAK;MACjD,MAAMjD,MAAM,GAAG0B,kBAAkB,CAAC,gBAAgB,CAAC;MAEnD,MAAMwB,YAA2C,GAAG;QAClD,GAAGD,MAAM;QACT/B,SAAS,EAAEnB,YAAY,CAACmB,SAAS;QACjClB,MAAM;QACNmB,cAAc,EAAE;UACd,GAAGpB,YAAY,CAACoB,cAAc;UAC9B,GAAG8B,MAAM,CAAC9B;QACZ,CAAC;QACDC,cAAc,EAAE6B,MAAM,CAAC7B,cAAc,IAAIrB,YAAY,CAACqB,cAAc;QACpEC,OAAO,EAAE4B,MAAM,CAAC5B,OAAO,IAAItB,YAAY,CAACsB;MAC1C,CAAC;MAED,OAAO,IAAA2B,8BAAc,EAACE,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;IACIC,YAAY,EAAGC,MAAoB,IAAK;MACtC1B,kBAAkB,CAAC,cAAc,CAAC;MAClC,OAAO,IAAAyB,oBAAY,EAACC,MAAM,CAAC;IAC7B,CAAC;IAED;AACJ;AACA;AACA;AACA;IACIC,YAAY,EAAE,MAAAA,CAAA,KAAY;MACxB,MAAMC,EAAE,GAAG,MAAM,IAAAD,oBAAY,EAAC,CAAC;MAC/B,IAAIC,EAAE,EAAE;QACNrB,sBAAe,CAACsB,QAAQ,CAAC;UACvBC,YAAY,EAAE,IAAI;UAClBC,OAAO,EAAE,IAAI;UACbC,eAAe,EAAEC,SAAS;UAC1B3B,kBAAkB,EAAE,KAAK;UACzB4B,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;IACIQ,kBAAkB,EAAlBA,0BAAkB;IAElB;AACJ;AACA;IACIC,YAAY,EAAZA,oBAAY;IAEZ;AACJ;AACA;IACIC,OAAO,EAAPA,eAAO;IAEP;AACJ;AACA;IACIC,cAAc,EAAdA,sBAAc;IAEd;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,eAAe,EAAfA,uBAAe;IAEf;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,iBAAiB,EAAjBA;EACF,CAAC;AACH;AASO,MAAMC,UAA4B,GAAAnF,OAAA,CAAAmF,UAAA,GAAGxE,sBAAsB,CAAC,CAAC","ignoreList":[]}