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

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 +47 -70
  37. package/lib/commonjs/index.js.map +1 -1
  38. package/lib/commonjs/index.spec.js +115 -159
  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 -53
  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 +48 -65
  90. package/lib/module/index.js.map +1 -1
  91. package/lib/module/index.spec.js +115 -159
  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 -49
  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 +31 -40
  137. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  138. package/lib/typescript/commonjs/native.d.ts +84 -17
  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 +31 -40
  167. package/lib/typescript/module/index.d.ts.map +1 -1
  168. package/lib/typescript/module/native.d.ts +84 -17
  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 +367 -96
  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 +108 -201
  196. package/src/index.ts +68 -91
  197. package/src/iosInterop.spec.ts +30 -0
  198. package/src/native.spec.ts +226 -10
  199. package/src/native.ts +385 -81
  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
@@ -0,0 +1,604 @@
1
+ "use strict";
2
+
3
+ var _core = require("@hot-updater/core");
4
+ var _vitest = require("vitest");
5
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
6
+ const MINIMUM_RELEASE_ID = "00000000-0000-7000-8000-000000000001";
7
+ const RELEASE_ID = "00000000-0000-7000-8000-000000000002";
8
+ const ACTIVE_RELEASE_ID = "00000000-0000-7000-8000-000000000003";
9
+ const CURRENT_BUNDLE_ID = "00000000-0000-7001-8000-000000000001";
10
+ const TARGET_BUNDLE_ID = "00000000-0000-7001-8000-000000000002";
11
+ const CATALOG_ID = "project-a";
12
+ const CHANNEL = "production";
13
+ const CATALOG_HASH = `sha256:${"a".repeat(64)}`;
14
+ const SCOPE_KEY = (0, _core.createReleaseCatalogScopeKey)({
15
+ channelKey: (0, _core.encodeChannelKey)(CHANNEL),
16
+ platform: "ios",
17
+ strategy: "APP_VERSION"
18
+ });
19
+ const mocks = _vitest.vi.hoisted(() => ({
20
+ addListener: _vitest.vi.fn(() => () => {}),
21
+ acceptReleaseCatalog: _vitest.vi.fn(() => true),
22
+ commitReleaseSelection: _vitest.vi.fn(async () => true),
23
+ getActiveUpdateState: _vitest.vi.fn(() => ({
24
+ activeSelection: null,
25
+ highestSeenCatalogs: {},
26
+ stableSelection: null,
27
+ verificationPending: false
28
+ })),
29
+ getAppVersion: _vitest.vi.fn(() => "1.2"),
30
+ getBundleId: _vitest.vi.fn(() => CURRENT_BUNDLE_ID),
31
+ getChannel: _vitest.vi.fn(() => CHANNEL),
32
+ getCohort: _vitest.vi.fn(() => "123"),
33
+ getCrashHistory: _vitest.vi.fn(() => []),
34
+ getDefaultChannel: _vitest.vi.fn(() => CHANNEL),
35
+ getFingerprintHash: _vitest.vi.fn(() => null),
36
+ getInstallId: _vitest.vi.fn(() => "install-id"),
37
+ getMinBundleId: _vitest.vi.fn(() => MINIMUM_RELEASE_ID),
38
+ getPersistedUserIdentity: _vitest.vi.fn(() => ({})),
39
+ isChannelSwitched: _vitest.vi.fn(() => false),
40
+ isReleaseSelectionCurrent: _vitest.vi.fn(() => true),
41
+ resetChannel: _vitest.vi.fn(),
42
+ updateBundle: _vitest.vi.fn(async () => true)
43
+ }));
44
+ _vitest.vi.mock("react-native", () => ({
45
+ Platform: {
46
+ OS: "ios"
47
+ }
48
+ }));
49
+ _vitest.vi.mock("./native", () => mocks);
50
+ const createCatalog = (overrides = {}) => ({
51
+ catalogId: CATALOG_ID,
52
+ catalogHash: CATALOG_HASH,
53
+ fallbackPolicy: "BUILTIN_IF_ACTIVE_INELIGIBLE",
54
+ generation: 2,
55
+ releases: [{
56
+ bundleId: TARGET_BUNDLE_ID,
57
+ kind: "BUNDLE",
58
+ message: "Release two",
59
+ releaseId: RELEASE_ID,
60
+ rolloutCohortCount: 1000,
61
+ shouldForceUpdate: false,
62
+ targetCohorts: []
63
+ }],
64
+ schemaVersion: 1,
65
+ scopeKey: SCOPE_KEY,
66
+ ...overrides
67
+ });
68
+ const createClient = (catalog = createCatalog()) => {
69
+ const fetchReleaseCatalog = _vitest.vi.fn(async () => catalog);
70
+ const resolveArtifact = _vitest.vi.fn(async () => ({
71
+ fileHash: "bundle-hash",
72
+ fileUrl: "https://updates.example.com/bundle.zip"
73
+ }));
74
+ const sendAnalyticsEvent = _vitest.vi.fn(async () => undefined);
75
+ const session = {
76
+ fetchReleaseCatalog,
77
+ resolveArtifact,
78
+ sendAnalyticsEvent
79
+ };
80
+ const client = {
81
+ createSession: _vitest.vi.fn(async () => session)
82
+ };
83
+ return {
84
+ client,
85
+ fetchReleaseCatalog,
86
+ resolveArtifact,
87
+ sendAnalyticsEvent
88
+ };
89
+ };
90
+ (0, _vitest.describe)("checkForUpdate Release catalog protocol", () => {
91
+ (0, _vitest.beforeEach)(() => {
92
+ _vitest.vi.clearAllMocks();
93
+ _vitest.vi.stubGlobal("__DEV__", false);
94
+ mocks.acceptReleaseCatalog.mockReturnValue(true);
95
+ mocks.getActiveUpdateState.mockReturnValue({
96
+ activeSelection: null,
97
+ highestSeenCatalogs: {},
98
+ stableSelection: null,
99
+ verificationPending: false
100
+ });
101
+ mocks.isReleaseSelectionCurrent.mockReturnValue(true);
102
+ mocks.commitReleaseSelection.mockResolvedValue(true);
103
+ mocks.updateBundle.mockResolvedValue(true);
104
+ });
105
+ (0, _vitest.it)("selects locally and defers Bundle artifact resolution until install", async () => {
106
+ const {
107
+ checkForUpdate
108
+ } = await Promise.resolve().then(() => _interopRequireWildcard(require("./checkForUpdate")));
109
+ const {
110
+ client,
111
+ fetchReleaseCatalog,
112
+ resolveArtifact
113
+ } = createClient();
114
+ const result = await checkForUpdate({
115
+ client,
116
+ updateStrategy: "appVersion"
117
+ });
118
+ (0, _vitest.expect)(result).toMatchObject({
119
+ id: TARGET_BUNDLE_ID,
120
+ releaseId: RELEASE_ID,
121
+ transitionKind: "INSTALL"
122
+ });
123
+ (0, _vitest.expect)(fetchReleaseCatalog).toHaveBeenCalledWith({
124
+ appVersion: "1.2.0",
125
+ channel: CHANNEL,
126
+ fingerprintHash: null,
127
+ platform: "ios",
128
+ requestHeaders: undefined,
129
+ requestTimeout: undefined,
130
+ updateStrategy: "appVersion"
131
+ });
132
+ (0, _vitest.expect)(resolveArtifact).not.toHaveBeenCalled();
133
+ await (0, _vitest.expect)(result?.updateBundle()).resolves.toBe(true);
134
+ (0, _vitest.expect)(resolveArtifact).toHaveBeenCalledWith({
135
+ currentBundleId: CURRENT_BUNDLE_ID,
136
+ requestHeaders: undefined,
137
+ requestTimeout: undefined,
138
+ targetBundleId: TARGET_BUNDLE_ID
139
+ });
140
+ (0, _vitest.expect)(mocks.updateBundle).toHaveBeenCalledWith(_vitest.expect.objectContaining({
141
+ bundleId: TARGET_BUNDLE_ID,
142
+ selection: _vitest.expect.objectContaining({
143
+ catalogId: CATALOG_ID,
144
+ releaseId: RELEASE_ID,
145
+ scopeKey: SCOPE_KEY
146
+ })
147
+ }));
148
+ });
149
+ (0, _vitest.it)("adopts a newer Release for the same Bundle without resolving bytes", async () => {
150
+ const active = {
151
+ catalogId: CATALOG_ID,
152
+ bundleId: TARGET_BUNDLE_ID,
153
+ catalogHash: `sha256:${"b".repeat(64)}`,
154
+ channel: CHANNEL,
155
+ generation: 1,
156
+ kind: "BUNDLE",
157
+ releaseId: MINIMUM_RELEASE_ID,
158
+ scopeKey: SCOPE_KEY,
159
+ selectionContextHash: "old-context"
160
+ };
161
+ mocks.getBundleId.mockReturnValueOnce(TARGET_BUNDLE_ID);
162
+ mocks.getActiveUpdateState.mockReturnValueOnce({
163
+ activeSelection: active,
164
+ highestSeenCatalogs: {},
165
+ stableSelection: active,
166
+ verificationPending: false
167
+ });
168
+ const {
169
+ checkForUpdate
170
+ } = await Promise.resolve().then(() => _interopRequireWildcard(require("./checkForUpdate")));
171
+ const forceCatalog = createCatalog({
172
+ releases: [{
173
+ ...createCatalog().releases[0],
174
+ shouldForceUpdate: true
175
+ }]
176
+ });
177
+ const {
178
+ client,
179
+ resolveArtifact,
180
+ sendAnalyticsEvent
181
+ } = createClient(forceCatalog);
182
+ const result = await checkForUpdate({
183
+ client,
184
+ updateStrategy: "appVersion"
185
+ });
186
+ (0, _vitest.expect)(result).toMatchObject({
187
+ shouldForceUpdate: false,
188
+ transitionKind: "ADOPT_RELEASE"
189
+ });
190
+ await (0, _vitest.expect)(result?.updateBundle()).resolves.toBe(true);
191
+ (0, _vitest.expect)(resolveArtifact).not.toHaveBeenCalled();
192
+ (0, _vitest.expect)(mocks.updateBundle).not.toHaveBeenCalled();
193
+ (0, _vitest.expect)(sendAnalyticsEvent).not.toHaveBeenCalled();
194
+ (0, _vitest.expect)(mocks.commitReleaseSelection).toHaveBeenCalledWith({
195
+ guard: _vitest.expect.objectContaining({
196
+ generation: 2,
197
+ scopeKey: SCOPE_KEY
198
+ }),
199
+ selection: _vitest.expect.objectContaining({
200
+ bundleId: TARGET_BUNDLE_ID,
201
+ releaseId: RELEASE_ID
202
+ })
203
+ });
204
+ });
205
+ (0, _vitest.it)("sends RELEASE_ADOPTED only when analytics is enabled", async () => {
206
+ const active = {
207
+ catalogId: CATALOG_ID,
208
+ bundleId: TARGET_BUNDLE_ID,
209
+ catalogHash: `sha256:${"b".repeat(64)}`,
210
+ channel: CHANNEL,
211
+ generation: 1,
212
+ kind: "BUNDLE",
213
+ releaseId: MINIMUM_RELEASE_ID,
214
+ scopeKey: SCOPE_KEY,
215
+ selectionContextHash: "old-context"
216
+ };
217
+ mocks.getBundleId.mockReturnValueOnce(TARGET_BUNDLE_ID);
218
+ mocks.getActiveUpdateState.mockReturnValueOnce({
219
+ activeSelection: active,
220
+ highestSeenCatalogs: {},
221
+ stableSelection: active,
222
+ verificationPending: false
223
+ });
224
+ const {
225
+ checkForUpdate
226
+ } = await Promise.resolve().then(() => _interopRequireWildcard(require("./checkForUpdate")));
227
+ const {
228
+ client,
229
+ sendAnalyticsEvent
230
+ } = createClient();
231
+ const result = await checkForUpdate({
232
+ analytics: true,
233
+ client,
234
+ updateStrategy: "appVersion"
235
+ });
236
+ await result?.updateBundle();
237
+ (0, _vitest.expect)(sendAnalyticsEvent).toHaveBeenCalledWith(_vitest.expect.objectContaining({
238
+ fromReleaseId: MINIMUM_RELEASE_ID,
239
+ toReleaseId: RELEASE_ID,
240
+ type: "RELEASE_ADOPTED"
241
+ }));
242
+ });
243
+ (0, _vitest.it)("selects a lower-id Release when explicitly switching scopes", async () => {
244
+ const betaChannel = "beta";
245
+ const betaScopeKey = (0, _core.createReleaseCatalogScopeKey)({
246
+ channelKey: (0, _core.encodeChannelKey)(betaChannel),
247
+ platform: "ios",
248
+ strategy: "APP_VERSION"
249
+ });
250
+ const active = {
251
+ catalogId: CATALOG_ID,
252
+ bundleId: CURRENT_BUNDLE_ID,
253
+ catalogHash: `sha256:${"b".repeat(64)}`,
254
+ channel: CHANNEL,
255
+ generation: 1,
256
+ kind: "BUNDLE",
257
+ releaseId: ACTIVE_RELEASE_ID,
258
+ scopeKey: SCOPE_KEY,
259
+ selectionContextHash: "old-context"
260
+ };
261
+ mocks.getActiveUpdateState.mockReturnValueOnce({
262
+ activeSelection: active,
263
+ highestSeenCatalogs: {},
264
+ stableSelection: active,
265
+ verificationPending: false
266
+ });
267
+ const betaCatalog = createCatalog({
268
+ scopeKey: betaScopeKey
269
+ });
270
+ const {
271
+ checkForUpdate
272
+ } = await Promise.resolve().then(() => _interopRequireWildcard(require("./checkForUpdate")));
273
+ const {
274
+ client
275
+ } = createClient(betaCatalog);
276
+ const result = await checkForUpdate({
277
+ channel: betaChannel,
278
+ client,
279
+ updateStrategy: "appVersion"
280
+ });
281
+ (0, _vitest.expect)(result).toMatchObject({
282
+ id: TARGET_BUNDLE_ID,
283
+ releaseId: RELEASE_ID,
284
+ status: "UPDATE",
285
+ transitionKind: "INSTALL"
286
+ });
287
+ });
288
+ (0, _vitest.it)("refreshes the same Release receipt when catalog provenance changes", async () => {
289
+ const active = {
290
+ catalogId: CATALOG_ID,
291
+ bundleId: TARGET_BUNDLE_ID,
292
+ catalogHash: `sha256:${"b".repeat(64)}`,
293
+ channel: CHANNEL,
294
+ generation: 1,
295
+ kind: "BUNDLE",
296
+ releaseId: RELEASE_ID,
297
+ scopeKey: SCOPE_KEY,
298
+ selectionContextHash: "old-context"
299
+ };
300
+ mocks.getBundleId.mockReturnValueOnce(TARGET_BUNDLE_ID);
301
+ mocks.getActiveUpdateState.mockReturnValueOnce({
302
+ activeSelection: active,
303
+ highestSeenCatalogs: {},
304
+ stableSelection: active,
305
+ verificationPending: false
306
+ });
307
+ const {
308
+ checkForUpdate
309
+ } = await Promise.resolve().then(() => _interopRequireWildcard(require("./checkForUpdate")));
310
+ const {
311
+ client,
312
+ resolveArtifact
313
+ } = createClient();
314
+ const result = await checkForUpdate({
315
+ client,
316
+ updateStrategy: "appVersion"
317
+ });
318
+ (0, _vitest.expect)(result).toMatchObject({
319
+ id: TARGET_BUNDLE_ID,
320
+ releaseId: RELEASE_ID,
321
+ transitionKind: "ADOPT_RELEASE"
322
+ });
323
+ await (0, _vitest.expect)(result?.updateBundle()).resolves.toBe(true);
324
+ (0, _vitest.expect)(resolveArtifact).not.toHaveBeenCalled();
325
+ (0, _vitest.expect)(mocks.updateBundle).not.toHaveBeenCalled();
326
+ (0, _vitest.expect)(mocks.commitReleaseSelection).toHaveBeenCalledWith({
327
+ guard: _vitest.expect.objectContaining({
328
+ catalogHash: CATALOG_HASH,
329
+ generation: 2,
330
+ scopeKey: SCOPE_KEY
331
+ }),
332
+ selection: _vitest.expect.objectContaining({
333
+ bundleId: TARGET_BUNDLE_ID,
334
+ catalogHash: CATALOG_HASH,
335
+ generation: 2,
336
+ releaseId: RELEASE_ID
337
+ })
338
+ });
339
+ });
340
+ (0, _vitest.it)("rejects a slow artifact completion after a newer catalog wins", async () => {
341
+ mocks.isReleaseSelectionCurrent.mockReturnValueOnce(true).mockReturnValueOnce(false);
342
+ const {
343
+ StaleReleaseCatalogError
344
+ } = await Promise.resolve().then(() => _interopRequireWildcard(require("./error")));
345
+ const {
346
+ checkForUpdate
347
+ } = await Promise.resolve().then(() => _interopRequireWildcard(require("./checkForUpdate")));
348
+ const {
349
+ client
350
+ } = createClient();
351
+ const result = await checkForUpdate({
352
+ client,
353
+ updateStrategy: "appVersion"
354
+ });
355
+ await (0, _vitest.expect)(result?.updateBundle()).rejects.toBeInstanceOf(StaleReleaseCatalogError);
356
+ (0, _vitest.expect)(mocks.updateBundle).not.toHaveBeenCalled();
357
+ });
358
+ (0, _vitest.it)("installs an older enabled Release as a forced rollback", async () => {
359
+ const active = {
360
+ catalogId: CATALOG_ID,
361
+ bundleId: CURRENT_BUNDLE_ID,
362
+ catalogHash: `sha256:${"b".repeat(64)}`,
363
+ channel: CHANNEL,
364
+ generation: 1,
365
+ kind: "BUNDLE",
366
+ releaseId: ACTIVE_RELEASE_ID,
367
+ scopeKey: SCOPE_KEY,
368
+ selectionContextHash: "old-context"
369
+ };
370
+ mocks.getActiveUpdateState.mockReturnValueOnce({
371
+ activeSelection: active,
372
+ highestSeenCatalogs: {},
373
+ stableSelection: active,
374
+ verificationPending: false
375
+ });
376
+ const catalog = createCatalog({
377
+ rollbackReleases: [{
378
+ bundleId: TARGET_BUNDLE_ID,
379
+ kind: "BUNDLE",
380
+ message: "Previous Release",
381
+ releaseId: RELEASE_ID,
382
+ rolloutCohortCount: 0,
383
+ shouldForceUpdate: false,
384
+ targetCohorts: []
385
+ }]
386
+ });
387
+ const {
388
+ checkForUpdate
389
+ } = await Promise.resolve().then(() => _interopRequireWildcard(require("./checkForUpdate")));
390
+ const {
391
+ client
392
+ } = createClient(catalog);
393
+ const result = await checkForUpdate({
394
+ client,
395
+ updateStrategy: "appVersion"
396
+ });
397
+ (0, _vitest.expect)(result).toMatchObject({
398
+ id: TARGET_BUNDLE_ID,
399
+ releaseId: RELEASE_ID,
400
+ shouldForceUpdate: true,
401
+ status: "ROLLBACK",
402
+ transitionKind: "INSTALL"
403
+ });
404
+ await (0, _vitest.expect)(result?.updateBundle()).resolves.toBe(true);
405
+ (0, _vitest.expect)(mocks.updateBundle).toHaveBeenCalledWith(_vitest.expect.objectContaining({
406
+ bundleId: TARGET_BUNDLE_ID,
407
+ status: "ROLLBACK"
408
+ }));
409
+ });
410
+ (0, _vitest.it)("uses current Bundle identity when migrating an unauthenticated receipt", async () => {
411
+ const migratedCurrentBundleId = "00000000-0000-7001-8000-000000000003";
412
+ const active = {
413
+ catalogId: null,
414
+ bundleId: migratedCurrentBundleId,
415
+ catalogHash: null,
416
+ channel: CHANNEL,
417
+ generation: null,
418
+ kind: "BUNDLE",
419
+ releaseId: null,
420
+ scopeKey: null,
421
+ selectionContextHash: null
422
+ };
423
+ mocks.getBundleId.mockReturnValueOnce(migratedCurrentBundleId);
424
+ mocks.getActiveUpdateState.mockReturnValueOnce({
425
+ activeSelection: active,
426
+ highestSeenCatalogs: {},
427
+ stableSelection: active,
428
+ verificationPending: false
429
+ });
430
+ const catalog = createCatalog({
431
+ releases: [],
432
+ rollbackReleases: [{
433
+ ...createCatalog().releases[0],
434
+ rolloutCohortCount: 0
435
+ }]
436
+ });
437
+ const {
438
+ checkForUpdate
439
+ } = await Promise.resolve().then(() => _interopRequireWildcard(require("./checkForUpdate")));
440
+ const {
441
+ client
442
+ } = createClient(catalog);
443
+ const result = await checkForUpdate({
444
+ client,
445
+ updateStrategy: "appVersion"
446
+ });
447
+ (0, _vitest.expect)(result).toMatchObject({
448
+ id: TARGET_BUNDLE_ID,
449
+ shouldForceUpdate: true,
450
+ status: "ROLLBACK",
451
+ transitionKind: "INSTALL"
452
+ });
453
+ });
454
+ (0, _vitest.it)("returns a forced built-in rollback only for an active OTA", async () => {
455
+ const active = {
456
+ catalogId: CATALOG_ID,
457
+ bundleId: CURRENT_BUNDLE_ID,
458
+ catalogHash: `sha256:${"b".repeat(64)}`,
459
+ channel: CHANNEL,
460
+ generation: 1,
461
+ kind: "BUNDLE",
462
+ releaseId: ACTIVE_RELEASE_ID,
463
+ scopeKey: SCOPE_KEY,
464
+ selectionContextHash: "old-context"
465
+ };
466
+ mocks.getActiveUpdateState.mockReturnValueOnce({
467
+ activeSelection: active,
468
+ highestSeenCatalogs: {},
469
+ stableSelection: active,
470
+ verificationPending: false
471
+ });
472
+ const {
473
+ checkForUpdate
474
+ } = await Promise.resolve().then(() => _interopRequireWildcard(require("./checkForUpdate")));
475
+ const {
476
+ client
477
+ } = createClient(createCatalog({
478
+ releases: [],
479
+ rollbackReleases: []
480
+ }));
481
+ const result = await checkForUpdate({
482
+ client,
483
+ updateStrategy: "appVersion"
484
+ });
485
+ (0, _vitest.expect)(result).toMatchObject({
486
+ id: MINIMUM_RELEASE_ID,
487
+ releaseId: null,
488
+ shouldForceUpdate: true,
489
+ status: "ROLLBACK",
490
+ transitionKind: "USE_BUILTIN"
491
+ });
492
+ await (0, _vitest.expect)(result?.updateBundle()).resolves.toBe(true);
493
+ (0, _vitest.expect)(mocks.commitReleaseSelection).toHaveBeenCalledWith(_vitest.expect.objectContaining({
494
+ selection: _vitest.expect.objectContaining({
495
+ kind: "BUILTIN",
496
+ releaseId: null
497
+ })
498
+ }));
499
+ });
500
+ (0, _vitest.it)("does not surface a rollback when the app already uses built-in bytes", async () => {
501
+ mocks.getBundleId.mockReturnValueOnce(MINIMUM_RELEASE_ID);
502
+ const {
503
+ checkForUpdate
504
+ } = await Promise.resolve().then(() => _interopRequireWildcard(require("./checkForUpdate")));
505
+ const {
506
+ client
507
+ } = createClient(createCatalog({
508
+ releases: [],
509
+ rollbackReleases: []
510
+ }));
511
+ await (0, _vitest.expect)(checkForUpdate({
512
+ client,
513
+ updateStrategy: "appVersion"
514
+ })).resolves.toBeNull();
515
+ (0, _vitest.expect)(mocks.commitReleaseSelection).not.toHaveBeenCalled();
516
+ });
517
+ (0, _vitest.it)("reports a rejected generation without selecting or resolving artifacts", async () => {
518
+ mocks.acceptReleaseCatalog.mockReturnValueOnce(false);
519
+ const onError = _vitest.vi.fn();
520
+ const {
521
+ checkForUpdate
522
+ } = await Promise.resolve().then(() => _interopRequireWildcard(require("./checkForUpdate")));
523
+ const {
524
+ client,
525
+ resolveArtifact
526
+ } = createClient();
527
+ await (0, _vitest.expect)(checkForUpdate({
528
+ client,
529
+ onError,
530
+ updateStrategy: "appVersion"
531
+ })).resolves.toBeNull();
532
+ (0, _vitest.expect)(onError).toHaveBeenCalledWith(_vitest.expect.objectContaining({
533
+ message: "Rejected a stale or inconsistent Release catalog"
534
+ }));
535
+ (0, _vitest.expect)(resolveArtifact).not.toHaveBeenCalled();
536
+ });
537
+ (0, _vitest.it)("rejects mismatched catalog scope before native catalog state mutates", async () => {
538
+ const wrongScope = (0, _core.createReleaseCatalogScopeKey)({
539
+ channelKey: (0, _core.encodeChannelKey)("beta"),
540
+ platform: "ios",
541
+ strategy: "APP_VERSION"
542
+ });
543
+ const onError = _vitest.vi.fn();
544
+ const {
545
+ checkForUpdate
546
+ } = await Promise.resolve().then(() => _interopRequireWildcard(require("./checkForUpdate")));
547
+ const {
548
+ client
549
+ } = createClient(createCatalog({
550
+ scopeKey: wrongScope
551
+ }));
552
+ await (0, _vitest.expect)(checkForUpdate({
553
+ client,
554
+ onError,
555
+ updateStrategy: "appVersion"
556
+ })).resolves.toBeNull();
557
+ (0, _vitest.expect)(onError).toHaveBeenCalledWith(_vitest.expect.objectContaining({
558
+ message: "Received an invalid Release catalog"
559
+ }));
560
+ (0, _vitest.expect)(mocks.acceptReleaseCatalog).not.toHaveBeenCalled();
561
+ (0, _vitest.expect)(mocks.commitReleaseSelection).not.toHaveBeenCalled();
562
+ (0, _vitest.expect)(mocks.updateBundle).not.toHaveBeenCalled();
563
+ });
564
+ (0, _vitest.it)("rejects an unexpected Catalog identity before accepting catalog state", async () => {
565
+ const active = {
566
+ catalogId: "existing-project",
567
+ bundleId: CURRENT_BUNDLE_ID,
568
+ catalogHash: `sha256:${"b".repeat(64)}`,
569
+ channel: CHANNEL,
570
+ generation: 1,
571
+ kind: "BUNDLE",
572
+ releaseId: ACTIVE_RELEASE_ID,
573
+ scopeKey: (0, _core.createReleaseCatalogScopeKey)({
574
+ channelKey: (0, _core.encodeChannelKey)(CHANNEL),
575
+ platform: "ios",
576
+ strategy: "APP_VERSION"
577
+ }),
578
+ selectionContextHash: "old-context"
579
+ };
580
+ mocks.getActiveUpdateState.mockReturnValueOnce({
581
+ activeSelection: active,
582
+ highestSeenCatalogs: {},
583
+ stableSelection: active,
584
+ verificationPending: false
585
+ });
586
+ const onError = _vitest.vi.fn();
587
+ const {
588
+ checkForUpdate
589
+ } = await Promise.resolve().then(() => _interopRequireWildcard(require("./checkForUpdate")));
590
+ const {
591
+ client
592
+ } = createClient();
593
+ await (0, _vitest.expect)(checkForUpdate({
594
+ client,
595
+ onError,
596
+ updateStrategy: "appVersion"
597
+ })).resolves.toBeNull();
598
+ (0, _vitest.expect)(onError).toHaveBeenCalledWith(_vitest.expect.objectContaining({
599
+ message: "Release transition rejected: UNSOLICITED_SCOPE"
600
+ }));
601
+ (0, _vitest.expect)(mocks.acceptReleaseCatalog).not.toHaveBeenCalled();
602
+ });
603
+ });
604
+ //# sourceMappingURL=checkForUpdate.releaseCatalog.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_core","require","_vitest","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","MINIMUM_RELEASE_ID","RELEASE_ID","ACTIVE_RELEASE_ID","CURRENT_BUNDLE_ID","TARGET_BUNDLE_ID","CATALOG_ID","CHANNEL","CATALOG_HASH","repeat","SCOPE_KEY","createReleaseCatalogScopeKey","channelKey","encodeChannelKey","platform","strategy","mocks","vi","hoisted","addListener","fn","acceptReleaseCatalog","commitReleaseSelection","getActiveUpdateState","activeSelection","highestSeenCatalogs","stableSelection","verificationPending","getAppVersion","getBundleId","getChannel","getCohort","getCrashHistory","getDefaultChannel","getFingerprintHash","getInstallId","getMinBundleId","getPersistedUserIdentity","isChannelSwitched","isReleaseSelectionCurrent","resetChannel","updateBundle","mock","Platform","OS","createCatalog","overrides","catalogId","catalogHash","fallbackPolicy","generation","releases","bundleId","kind","message","releaseId","rolloutCohortCount","shouldForceUpdate","targetCohorts","schemaVersion","scopeKey","createClient","catalog","fetchReleaseCatalog","resolveArtifact","fileHash","fileUrl","sendAnalyticsEvent","undefined","session","client","createSession","describe","beforeEach","clearAllMocks","stubGlobal","mockReturnValue","mockResolvedValue","it","checkForUpdate","Promise","resolve","then","result","updateStrategy","expect","toMatchObject","id","transitionKind","toHaveBeenCalledWith","appVersion","channel","fingerprintHash","requestHeaders","requestTimeout","not","toHaveBeenCalled","resolves","toBe","currentBundleId","targetBundleId","objectContaining","selection","active","selectionContextHash","mockReturnValueOnce","forceCatalog","guard","analytics","fromReleaseId","toReleaseId","type","betaChannel","betaScopeKey","betaCatalog","status","StaleReleaseCatalogError","rejects","toBeInstanceOf","rollbackReleases","migratedCurrentBundleId","toBeNull","onError","wrongScope"],"sourceRoot":"../../src","sources":["checkForUpdate.releaseCatalog.spec.ts"],"mappings":"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","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.HotUpdaterErrorCode = exports.HotUpdaterError = void 0;
6
+ exports.StaleReleaseCatalogError = exports.HotUpdaterErrorCode = exports.HotUpdaterError = void 0;
7
7
  exports.isHotUpdaterError = isHotUpdaterError;
8
8
  /**
9
9
  * Hot Updater Error Codes
@@ -138,4 +138,11 @@ class HotUpdaterError extends Error {
138
138
  }
139
139
  }
140
140
  exports.HotUpdaterError = HotUpdaterError;
141
+ class StaleReleaseCatalogError extends HotUpdaterError {
142
+ constructor() {
143
+ super("Release catalog selection became stale before it was committed");
144
+ this.name = "StaleReleaseCatalogError";
145
+ }
146
+ }
147
+ exports.StaleReleaseCatalogError = StaleReleaseCatalogError;
141
148
  //# sourceMappingURL=error.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["HotUpdaterErrorCode","exports","isHotUpdaterError","error","code","Object","values","includes","HotUpdaterError","Error","constructor","message","name"],"sourceRoot":"../../src","sources":["error.ts"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAhBA,IAkBYA,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,0BAAnBA,mBAAmB;EAC7B;EAEA;AACF;AACA;AACA;AACA;EAPYA,mBAAmB;EAU7B;AACF;AACA;AACA;AACA;EAdYA,mBAAmB;EAiB7B;EAEA;AACF;AACA;AACA;AACA;EAvBYA,mBAAmB;EA0B7B;AACF;AACA;AACA;AACA;AACA;EA/BYA,mBAAmB;EAkC7B;AACF;AACA;AACA;AACA;AACA;EAvCYA,mBAAmB;EA0C7B;AACF;AACA;AACA;AACA;AACA;EA/CYA,mBAAmB;EAkD7B;AACF;AACA;AACA;AACA;AACA;EAvDYA,mBAAmB;EA0D7B;AACF;AACA;AACA;AACA;AACA;EA/DYA,mBAAmB;EAkE7B;AACF;AACA;AACA;AACA;AACA;EAvEYA,mBAAmB;EA0E7B;AACF;AACA;AACA;AACA;AACA;AACA;EAhFYA,mBAAmB;EAmF7B;AACF;AACA;AACA;AACA;AACA;EAxFYA,mBAAmB;EA2F7B;EACA;EAEA;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAvGYA,mBAAmB;EA0G7B;AACF;AACA;AACA;AACA;AACA;EA/GYA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA;AAmH/B;AACA;AACA;AACO,SAASE,iBAAiBA,CAC/BC,KAAc,EAC2C;EACzD,OACE,OAAOA,KAAK,KAAK,QAAQ,IACzBA,KAAK,KAAK,IAAI,IACd,MAAM,IAAIA,KAAK,IACf,OAAOA,KAAK,CAACC,IAAI,KAAK,QAAQ,IAC9BC,MAAM,CAACC,MAAM,CAACN,mBAAmB,CAAC,CAACO,QAAQ,CACzCJ,KAAK,CAACC,IACR,CAAC;AAEL;;AAEA;AACA;AACA;AACO,MAAMI,eAAe,SAASC,KAAK,CAAC;EACzCC,WAAWA,CAACC,OAAe,EAAE;IAC3B,KAAK,CAACA,OAAO,CAAC;IACd,IAAI,CAACC,IAAI,GAAG,iBAAiB;EAC/B;AACF;AAACX,OAAA,CAAAO,eAAA,GAAAA,eAAA","ignoreList":[]}
1
+ {"version":3,"names":["HotUpdaterErrorCode","exports","isHotUpdaterError","error","code","Object","values","includes","HotUpdaterError","Error","constructor","message","name","StaleReleaseCatalogError"],"sourceRoot":"../../src","sources":["error.ts"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAhBA,IAkBYA,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,0BAAnBA,mBAAmB;EAC7B;EAEA;AACF;AACA;AACA;AACA;EAPYA,mBAAmB;EAU7B;AACF;AACA;AACA;AACA;EAdYA,mBAAmB;EAiB7B;EAEA;AACF;AACA;AACA;AACA;EAvBYA,mBAAmB;EA0B7B;AACF;AACA;AACA;AACA;AACA;EA/BYA,mBAAmB;EAkC7B;AACF;AACA;AACA;AACA;AACA;EAvCYA,mBAAmB;EA0C7B;AACF;AACA;AACA;AACA;AACA;EA/CYA,mBAAmB;EAkD7B;AACF;AACA;AACA;AACA;AACA;EAvDYA,mBAAmB;EA0D7B;AACF;AACA;AACA;AACA;AACA;EA/DYA,mBAAmB;EAkE7B;AACF;AACA;AACA;AACA;AACA;EAvEYA,mBAAmB;EA0E7B;AACF;AACA;AACA;AACA;AACA;AACA;EAhFYA,mBAAmB;EAmF7B;AACF;AACA;AACA;AACA;AACA;EAxFYA,mBAAmB;EA2F7B;EACA;EAEA;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAvGYA,mBAAmB;EA0G7B;AACF;AACA;AACA;AACA;AACA;EA/GYA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA;AAmH/B;AACA;AACA;AACO,SAASE,iBAAiBA,CAC/BC,KAAc,EAC2C;EACzD,OACE,OAAOA,KAAK,KAAK,QAAQ,IACzBA,KAAK,KAAK,IAAI,IACd,MAAM,IAAIA,KAAK,IACf,OAAOA,KAAK,CAACC,IAAI,KAAK,QAAQ,IAC9BC,MAAM,CAACC,MAAM,CAACN,mBAAmB,CAAC,CAACO,QAAQ,CACzCJ,KAAK,CAACC,IACR,CAAC;AAEL;;AAEA;AACA;AACA;AACO,MAAMI,eAAe,SAASC,KAAK,CAAC;EACzCC,WAAWA,CAACC,OAAe,EAAE;IAC3B,KAAK,CAACA,OAAO,CAAC;IACd,IAAI,CAACC,IAAI,GAAG,iBAAiB;EAC/B;AACF;AAACX,OAAA,CAAAO,eAAA,GAAAA,eAAA;AAEM,MAAMK,wBAAwB,SAASL,eAAe,CAAC;EAC5DE,WAAWA,CAAA,EAAG;IACZ,KAAK,CAAC,gEAAgE,CAAC;IACvE,IAAI,CAACE,IAAI,GAAG,0BAA0B;EACxC;AACF;AAACX,OAAA,CAAAY,wBAAA,GAAAA,wBAAA","ignoreList":[]}