@hot-updater/react-native 1.0.0-rc.17 → 1.0.0-rc.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. package/lib/commonjs/checkForUpdate.js +7 -9
  2. package/lib/commonjs/checkForUpdate.js.map +1 -1
  3. package/lib/commonjs/clientPlugin.js +7 -43
  4. package/lib/commonjs/clientPlugin.js.map +1 -1
  5. package/lib/commonjs/httpClient.js +7 -9
  6. package/lib/commonjs/httpClient.js.map +1 -1
  7. package/lib/commonjs/index.js +10 -0
  8. package/lib/commonjs/index.js.map +1 -1
  9. package/lib/commonjs/native.js +4 -4
  10. package/lib/commonjs/native.js.map +1 -1
  11. package/lib/commonjs/pluginHost.js +26 -190
  12. package/lib/commonjs/pluginHost.js.map +1 -1
  13. package/lib/commonjs/releaseCatalogCache.js +7 -59
  14. package/lib/commonjs/releaseCatalogCache.js.map +1 -1
  15. package/lib/commonjs/sdkVersion.js +1 -1
  16. package/lib/module/checkForUpdate.js +1 -3
  17. package/lib/module/checkForUpdate.js.map +1 -1
  18. package/lib/module/clientPlugin.js +1 -41
  19. package/lib/module/clientPlugin.js.map +1 -1
  20. package/lib/module/httpClient.js +1 -3
  21. package/lib/module/httpClient.js.map +1 -1
  22. package/lib/module/index.js +2 -0
  23. package/lib/module/index.js.map +1 -1
  24. package/lib/module/native.js +1 -1
  25. package/lib/module/native.js.map +1 -1
  26. package/lib/module/pluginHost.js +22 -187
  27. package/lib/module/pluginHost.js.map +1 -1
  28. package/lib/module/releaseCatalogCache.js +3 -54
  29. package/lib/module/releaseCatalogCache.js.map +1 -1
  30. package/lib/module/sdkVersion.js +1 -1
  31. package/lib/typescript/commonjs/checkForUpdate.d.ts.map +1 -1
  32. package/lib/typescript/commonjs/clientPlugin.d.ts +1 -184
  33. package/lib/typescript/commonjs/clientPlugin.d.ts.map +1 -1
  34. package/lib/typescript/commonjs/httpClient.d.ts +1 -2
  35. package/lib/typescript/commonjs/httpClient.d.ts.map +1 -1
  36. package/lib/typescript/commonjs/index.d.ts +1 -0
  37. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  38. package/lib/typescript/commonjs/native.d.ts +1 -1
  39. package/lib/typescript/commonjs/native.d.ts.map +1 -1
  40. package/lib/typescript/commonjs/pluginHost.d.ts +3 -28
  41. package/lib/typescript/commonjs/pluginHost.d.ts.map +1 -1
  42. package/lib/typescript/commonjs/releaseCatalogCache.d.ts +1 -13
  43. package/lib/typescript/commonjs/releaseCatalogCache.d.ts.map +1 -1
  44. package/lib/typescript/commonjs/sdkVersion.d.ts +1 -1
  45. package/lib/typescript/commonjs/types.d.ts +1 -1
  46. package/lib/typescript/commonjs/types.d.ts.map +1 -1
  47. package/lib/typescript/commonjs/wrap.types.d.ts +2 -2
  48. package/lib/typescript/module/checkForUpdate.d.ts.map +1 -1
  49. package/lib/typescript/module/clientPlugin.d.ts +1 -184
  50. package/lib/typescript/module/clientPlugin.d.ts.map +1 -1
  51. package/lib/typescript/module/httpClient.d.ts +1 -2
  52. package/lib/typescript/module/httpClient.d.ts.map +1 -1
  53. package/lib/typescript/module/index.d.ts +1 -0
  54. package/lib/typescript/module/index.d.ts.map +1 -1
  55. package/lib/typescript/module/native.d.ts +1 -1
  56. package/lib/typescript/module/native.d.ts.map +1 -1
  57. package/lib/typescript/module/pluginHost.d.ts +3 -28
  58. package/lib/typescript/module/pluginHost.d.ts.map +1 -1
  59. package/lib/typescript/module/releaseCatalogCache.d.ts +1 -13
  60. package/lib/typescript/module/releaseCatalogCache.d.ts.map +1 -1
  61. package/lib/typescript/module/sdkVersion.d.ts +1 -1
  62. package/lib/typescript/module/types.d.ts +1 -1
  63. package/lib/typescript/module/types.d.ts.map +1 -1
  64. package/lib/typescript/module/wrap.types.d.ts +2 -2
  65. package/package.json +7 -16
  66. package/src/checkForUpdate.ts +4 -6
  67. package/src/clientPlugin.ts +17 -231
  68. package/src/httpClient.ts +4 -4
  69. package/src/index.ts +7 -0
  70. package/src/native.ts +1 -1
  71. package/src/pluginHost.ts +24 -241
  72. package/src/releaseCatalogCache.ts +7 -136
  73. package/src/sdkVersion.ts +1 -1
  74. package/src/types.ts +1 -1
  75. package/src/wrap.types.ts +2 -2
  76. package/android/src/test/java/com/hotupdater/BsdiffPatchTest.kt +0 -46
  77. package/android/src/test/java/com/hotupdater/BundleFileStorageServiceTest.kt +0 -2236
  78. package/android/src/test/java/com/hotupdater/HotUpdaterExceptionTest.kt +0 -220
  79. package/android/src/test/java/com/hotupdater/HotUpdaterImplTest.kt +0 -264
  80. package/android/src/test/java/com/hotupdater/HotUpdaterRecoveryStateTest.kt +0 -97
  81. package/android/src/test/java/com/hotupdater/InstallIdentityServiceTest.kt +0 -71
  82. package/android/src/test/java/com/hotupdater/KeyValueStorageServiceTest.kt +0 -106
  83. package/android/src/test/java/com/hotupdater/NativeConfigUtilsTest.kt +0 -20
  84. package/android/src/test/java/com/hotupdater/NoBackupContext.kt +0 -11
  85. package/android/src/test/java/com/hotupdater/OkHttpDownloadServiceTest.kt +0 -397
  86. package/android/src/test/java/com/hotupdater/PendingCrashRecoveryTest.kt +0 -44
  87. package/android/src/test/java/com/hotupdater/PreviousProcessExitTest.kt +0 -57
  88. package/android/src/test/java/com/hotupdater/RelativePathResolverTest.kt +0 -41
  89. package/android/src/test/java/com/hotupdater/ReleaseCatalogCacheServiceTest.kt +0 -118
  90. package/android/src/test/java/com/hotupdater/TarBrArchiveExtractorTest.kt +0 -206
  91. package/lib/commonjs/appReady.spec.js +0 -360
  92. package/lib/commonjs/appReady.spec.js.map +0 -1
  93. package/lib/commonjs/appReady.test-utils.js +0 -25
  94. package/lib/commonjs/appReady.test-utils.js.map +0 -1
  95. package/lib/commonjs/baseURL.js +0 -16
  96. package/lib/commonjs/baseURL.js.map +0 -1
  97. package/lib/commonjs/catalogCacheNative.spec.js +0 -31
  98. package/lib/commonjs/catalogCacheNative.spec.js.map +0 -1
  99. package/lib/commonjs/checkForUpdate.releaseCatalog.spec.js +0 -936
  100. package/lib/commonjs/checkForUpdate.releaseCatalog.spec.js.map +0 -1
  101. package/lib/commonjs/entryImportGraph.spec.js +0 -50
  102. package/lib/commonjs/entryImportGraph.spec.js.map +0 -1
  103. package/lib/commonjs/httpClient.spec.js +0 -171
  104. package/lib/commonjs/httpClient.spec.js.map +0 -1
  105. package/lib/commonjs/index.spec.js +0 -395
  106. package/lib/commonjs/index.spec.js.map +0 -1
  107. package/lib/commonjs/iosInterop.spec.js +0 -18
  108. package/lib/commonjs/iosInterop.spec.js.map +0 -1
  109. package/lib/commonjs/native.spec.js +0 -910
  110. package/lib/commonjs/native.spec.js.map +0 -1
  111. package/lib/commonjs/pluginHost.spec.js +0 -292
  112. package/lib/commonjs/pluginHost.spec.js.map +0 -1
  113. package/lib/commonjs/plugins/insights/eventId.js +0 -129
  114. package/lib/commonjs/plugins/insights/eventId.js.map +0 -1
  115. package/lib/commonjs/plugins/insights/eventId.spec.js +0 -47
  116. package/lib/commonjs/plugins/insights/eventId.spec.js.map +0 -1
  117. package/lib/commonjs/plugins/insights/index.js +0 -272
  118. package/lib/commonjs/plugins/insights/index.js.map +0 -1
  119. package/lib/commonjs/plugins/insights/insights.spec.js +0 -640
  120. package/lib/commonjs/plugins/insights/insights.spec.js.map +0 -1
  121. package/lib/commonjs/plugins/insights/sender.js +0 -128
  122. package/lib/commonjs/plugins/insights/sender.js.map +0 -1
  123. package/lib/commonjs/plugins/insights/sender.spec.js +0 -265
  124. package/lib/commonjs/plugins/insights/sender.spec.js.map +0 -1
  125. package/lib/commonjs/plugins/insights/state.js +0 -145
  126. package/lib/commonjs/plugins/insights/state.js.map +0 -1
  127. package/lib/commonjs/releaseCatalogCache.spec.js +0 -213
  128. package/lib/commonjs/releaseCatalogCache.spec.js.map +0 -1
  129. package/lib/commonjs/releaseCatalogCacheNativeContract.spec.js +0 -64
  130. package/lib/commonjs/releaseCatalogCacheNativeContract.spec.js.map +0 -1
  131. package/lib/commonjs/store.notification.spec.js +0 -84
  132. package/lib/commonjs/store.notification.spec.js.map +0 -1
  133. package/lib/commonjs/store.spec.js +0 -182
  134. package/lib/commonjs/store.spec.js.map +0 -1
  135. package/lib/commonjs/updateError.spec.js +0 -149
  136. package/lib/commonjs/updateError.spec.js.map +0 -1
  137. package/lib/commonjs/wrap.progress.spec.js +0 -195
  138. package/lib/commonjs/wrap.progress.spec.js.map +0 -1
  139. package/lib/commonjs/wrap.spec.js +0 -232
  140. package/lib/commonjs/wrap.spec.js.map +0 -1
  141. package/lib/module/appReady.spec.js +0 -359
  142. package/lib/module/appReady.spec.js.map +0 -1
  143. package/lib/module/appReady.test-utils.js +0 -19
  144. package/lib/module/appReady.test-utils.js.map +0 -1
  145. package/lib/module/baseURL.js +0 -11
  146. package/lib/module/baseURL.js.map +0 -1
  147. package/lib/module/catalogCacheNative.spec.js +0 -31
  148. package/lib/module/catalogCacheNative.spec.js.map +0 -1
  149. package/lib/module/checkForUpdate.releaseCatalog.spec.js +0 -935
  150. package/lib/module/checkForUpdate.releaseCatalog.spec.js.map +0 -1
  151. package/lib/module/entryImportGraph.spec.js +0 -50
  152. package/lib/module/entryImportGraph.spec.js.map +0 -1
  153. package/lib/module/httpClient.spec.js +0 -171
  154. package/lib/module/httpClient.spec.js.map +0 -1
  155. package/lib/module/index.spec.js +0 -394
  156. package/lib/module/index.spec.js.map +0 -1
  157. package/lib/module/iosInterop.spec.js +0 -18
  158. package/lib/module/iosInterop.spec.js.map +0 -1
  159. package/lib/module/native.spec.js +0 -909
  160. package/lib/module/native.spec.js.map +0 -1
  161. package/lib/module/pluginHost.spec.js +0 -291
  162. package/lib/module/pluginHost.spec.js.map +0 -1
  163. package/lib/module/plugins/insights/eventId.js +0 -122
  164. package/lib/module/plugins/insights/eventId.js.map +0 -1
  165. package/lib/module/plugins/insights/eventId.spec.js +0 -47
  166. package/lib/module/plugins/insights/eventId.spec.js.map +0 -1
  167. package/lib/module/plugins/insights/index.js +0 -268
  168. package/lib/module/plugins/insights/index.js.map +0 -1
  169. package/lib/module/plugins/insights/insights.spec.js +0 -639
  170. package/lib/module/plugins/insights/insights.spec.js.map +0 -1
  171. package/lib/module/plugins/insights/sender.js +0 -123
  172. package/lib/module/plugins/insights/sender.js.map +0 -1
  173. package/lib/module/plugins/insights/sender.spec.js +0 -265
  174. package/lib/module/plugins/insights/sender.spec.js.map +0 -1
  175. package/lib/module/plugins/insights/state.js +0 -139
  176. package/lib/module/plugins/insights/state.js.map +0 -1
  177. package/lib/module/releaseCatalogCache.spec.js +0 -213
  178. package/lib/module/releaseCatalogCache.spec.js.map +0 -1
  179. package/lib/module/releaseCatalogCacheNativeContract.spec.js +0 -64
  180. package/lib/module/releaseCatalogCacheNativeContract.spec.js.map +0 -1
  181. package/lib/module/store.notification.spec.js +0 -85
  182. package/lib/module/store.notification.spec.js.map +0 -1
  183. package/lib/module/store.spec.js +0 -181
  184. package/lib/module/store.spec.js.map +0 -1
  185. package/lib/module/updateError.spec.js +0 -149
  186. package/lib/module/updateError.spec.js.map +0 -1
  187. package/lib/module/wrap.progress.spec.js +0 -196
  188. package/lib/module/wrap.progress.spec.js.map +0 -1
  189. package/lib/module/wrap.spec.js +0 -233
  190. package/lib/module/wrap.spec.js.map +0 -1
  191. package/lib/typescript/commonjs/appReady.test-utils.d.ts +0 -9
  192. package/lib/typescript/commonjs/appReady.test-utils.d.ts.map +0 -1
  193. package/lib/typescript/commonjs/baseURL.d.ts +0 -4
  194. package/lib/typescript/commonjs/baseURL.d.ts.map +0 -1
  195. package/lib/typescript/commonjs/plugins/insights/eventId.d.ts +0 -18
  196. package/lib/typescript/commonjs/plugins/insights/eventId.d.ts.map +0 -1
  197. package/lib/typescript/commonjs/plugins/insights/index.d.ts +0 -40
  198. package/lib/typescript/commonjs/plugins/insights/index.d.ts.map +0 -1
  199. package/lib/typescript/commonjs/plugins/insights/sender.d.ts +0 -74
  200. package/lib/typescript/commonjs/plugins/insights/sender.d.ts.map +0 -1
  201. package/lib/typescript/commonjs/plugins/insights/state.d.ts +0 -46
  202. package/lib/typescript/commonjs/plugins/insights/state.d.ts.map +0 -1
  203. package/lib/typescript/module/appReady.test-utils.d.ts +0 -9
  204. package/lib/typescript/module/appReady.test-utils.d.ts.map +0 -1
  205. package/lib/typescript/module/baseURL.d.ts +0 -4
  206. package/lib/typescript/module/baseURL.d.ts.map +0 -1
  207. package/lib/typescript/module/plugins/insights/eventId.d.ts +0 -18
  208. package/lib/typescript/module/plugins/insights/eventId.d.ts.map +0 -1
  209. package/lib/typescript/module/plugins/insights/index.d.ts +0 -40
  210. package/lib/typescript/module/plugins/insights/index.d.ts.map +0 -1
  211. package/lib/typescript/module/plugins/insights/sender.d.ts +0 -74
  212. package/lib/typescript/module/plugins/insights/sender.d.ts.map +0 -1
  213. package/lib/typescript/module/plugins/insights/state.d.ts +0 -46
  214. package/lib/typescript/module/plugins/insights/state.d.ts.map +0 -1
  215. package/plugins/insights/package.json +0 -8
  216. package/src/appReady.spec.ts +0 -393
  217. package/src/appReady.test-utils.ts +0 -31
  218. package/src/baseURL.ts +0 -15
  219. package/src/catalogCacheNative.spec.ts +0 -63
  220. package/src/checkForUpdate.releaseCatalog.spec.ts +0 -966
  221. package/src/entryImportGraph.spec.ts +0 -65
  222. package/src/httpClient.spec.ts +0 -216
  223. package/src/index.spec.ts +0 -434
  224. package/src/iosInterop.spec.ts +0 -30
  225. package/src/native.spec.ts +0 -978
  226. package/src/pluginHost.spec.ts +0 -297
  227. package/src/plugins/insights/eventId.spec.ts +0 -60
  228. package/src/plugins/insights/eventId.ts +0 -171
  229. package/src/plugins/insights/index.ts +0 -367
  230. package/src/plugins/insights/insights.spec.ts +0 -732
  231. package/src/plugins/insights/sender.spec.ts +0 -287
  232. package/src/plugins/insights/sender.ts +0 -221
  233. package/src/plugins/insights/state.ts +0 -184
  234. package/src/releaseCatalogCache.spec.ts +0 -304
  235. package/src/releaseCatalogCacheNativeContract.spec.ts +0 -80
  236. package/src/store.notification.spec.ts +0 -102
  237. package/src/store.spec.ts +0 -215
  238. package/src/updateError.spec.ts +0 -144
  239. package/src/wrap.progress.spec.ts +0 -232
  240. package/src/wrap.spec.ts +0 -262
@@ -1,359 +0,0 @@
1
- "use strict";
2
-
3
- import { beforeEach, describe, expect, it, vi } from "vitest";
4
- import { createNotifyReadResult, stubNotifyFrame } from "./appReady.test-utils.js";
5
- vi.mock("react-native", () => ({
6
- Platform: {
7
- OS: "ios"
8
- }
9
- }));
10
- const mocks = vi.hoisted(() => {
11
- Reflect.set(globalThis, "HotUpdater", {
12
- SDK_VERSION: "test-sdk-version"
13
- });
14
- return {
15
- getAppVersion: vi.fn(() => "1.0.0"),
16
- getBundleId: vi.fn(() => "bundle-id"),
17
- getChannel: vi.fn(() => "production"),
18
- getActiveUpdateState: vi.fn(),
19
- getCohort: vi.fn(() => "123"),
20
- getFingerprintHash: vi.fn(() => "fingerprint-hash"),
21
- getInstallId: vi.fn(() => "install-id"),
22
- getStorageItem: vi.fn(() => null),
23
- setStorageItem: vi.fn(),
24
- readNotifyAppReady: vi.fn(() => createNotifyReadResult())
25
- };
26
- });
27
- vi.mock("./native", () => mocks);
28
- const recordingPlugin = (hooks = events => ({
29
- onAppReady: result => {
30
- events.push(["onAppReady", result]);
31
- },
32
- onBundleDownloaded: info => {
33
- events.push(["onBundleDownloaded", info]);
34
- }
35
- })) => {
36
- const events = [];
37
- const plugin = {
38
- id: "recorder",
39
- setup: () => hooks(events)
40
- };
41
- return {
42
- events,
43
- plugin
44
- };
45
- };
46
- const configure = async (plugins, onError) => {
47
- const {
48
- configurePlugins
49
- } = await import("./pluginHost");
50
- configurePlugins(plugins, {
51
- baseURL: "https://updates.example.com",
52
- ...(onError ? {
53
- onError
54
- } : {})
55
- });
56
- };
57
- describe("app-ready reporting to plugins", () => {
58
- beforeEach(() => {
59
- vi.resetModules();
60
- vi.unstubAllGlobals();
61
- vi.useRealTimers();
62
- for (const mock of Object.values(mocks)) mock.mockReset();
63
- mocks.getAppVersion.mockReturnValue("1.0.0");
64
- mocks.getBundleId.mockReturnValue("bundle-id");
65
- mocks.getChannel.mockReturnValue("production");
66
- mocks.getActiveUpdateState.mockReturnValue({
67
- activeSelection: null,
68
- stableSelection: null,
69
- verificationPending: false
70
- });
71
- mocks.getCohort.mockReturnValue("123");
72
- mocks.getFingerprintHash.mockReturnValue("fingerprint-hash");
73
- mocks.getInstallId.mockReturnValue("install-id");
74
- mocks.getStorageItem.mockReturnValue(null);
75
- mocks.readNotifyAppReady.mockReturnValue(createNotifyReadResult());
76
- });
77
- it.each([{
78
- label: "running selection",
79
- pending: false,
80
- channel: "production",
81
- expected: "release-running"
82
- }, {
83
- label: "staged selection",
84
- pending: true,
85
- channel: "production",
86
- expected: "release-running"
87
- }, {
88
- label: "another channel",
89
- pending: false,
90
- channel: "preview",
91
- expected: null
92
- }])("attributes an unchanged launch with $label", async ({
93
- pending,
94
- channel,
95
- expected
96
- }) => {
97
- stubNotifyFrame();
98
- const running = {
99
- kind: "BUNDLE",
100
- releaseId: "release-running",
101
- bundleId: "bundle-id",
102
- channel
103
- };
104
- mocks.getActiveUpdateState.mockReturnValue({
105
- activeSelection: pending ? {
106
- ...running,
107
- releaseId: "release-pending",
108
- bundleId: "bundle-pending"
109
- } : running,
110
- stableSelection: pending ? running : null,
111
- verificationPending: pending
112
- });
113
- const {
114
- events,
115
- plugin
116
- } = recordingPlugin();
117
- await configure([plugin]);
118
- const {
119
- handleNotifyAppReady
120
- } = await import("./appReady");
121
- const readiness = handleNotifyAppReady({});
122
- await vi.runOnlyPendingTimersAsync();
123
- await readiness;
124
- expect(events).toEqual([["onAppReady", {
125
- status: "UNCHANGED",
126
- channel: "production",
127
- bundleId: "bundle-id",
128
- releaseId: expected,
129
- previousProcessExit: null
130
- }]]);
131
- });
132
- it.each(["UPDATE_APPLIED", "RECOVERED"])("reports %s with the persisted transition and calls onNotifyAppReady", async status => {
133
- stubNotifyFrame();
134
- mocks.readNotifyAppReady.mockReturnValue(createNotifyReadResult({
135
- status,
136
- fromBundleId: "bundle-a",
137
- toBundleId: "bundle-b"
138
- }, {
139
- type: status,
140
- fromBundleId: "bundle-a",
141
- fromReleaseId: "release-a",
142
- toBundleId: "bundle-b",
143
- toReleaseId: "release-b",
144
- updateStrategy: "fingerprint"
145
- }));
146
- const {
147
- events,
148
- plugin
149
- } = recordingPlugin();
150
- await configure([plugin]);
151
- const onNotifyAppReady = vi.fn();
152
- const {
153
- handleNotifyAppReady
154
- } = await import("./appReady");
155
- const readiness = handleNotifyAppReady({
156
- onNotifyAppReady
157
- });
158
- await vi.runOnlyPendingTimersAsync();
159
- await readiness;
160
- expect(events).toEqual([["onAppReady", {
161
- status,
162
- channel: "production",
163
- fromBundleId: "bundle-a",
164
- fromReleaseId: "release-a",
165
- toBundleId: "bundle-b",
166
- toReleaseId: "release-b",
167
- updateStrategy: "fingerprint",
168
- previousProcessExit: null
169
- }]]);
170
- expect(onNotifyAppReady).toHaveBeenCalledWith({
171
- status,
172
- fromBundleId: "bundle-a",
173
- toBundleId: "bundle-b"
174
- });
175
- });
176
- it("waits for native launch verification before reporting", async () => {
177
- stubNotifyFrame();
178
- mocks.readNotifyAppReady.mockReturnValueOnce(createNotifyReadResult(undefined, null, true)).mockReturnValueOnce(createNotifyReadResult(undefined, null, true)).mockReturnValue(createNotifyReadResult());
179
- const {
180
- events,
181
- plugin
182
- } = recordingPlugin();
183
- await configure([plugin]);
184
- const {
185
- handleNotifyAppReady
186
- } = await import("./appReady");
187
- const readiness = handleNotifyAppReady({});
188
- await vi.runOnlyPendingTimersAsync();
189
- expect(events).toEqual([]);
190
- await vi.runAllTimersAsync();
191
- await readiness;
192
- expect(mocks.readNotifyAppReady).toHaveBeenCalledTimes(3);
193
- expect(events).toHaveLength(1);
194
- });
195
- it("reports the launch once per runtime while every init call gets readiness", async () => {
196
- stubNotifyFrame();
197
- const {
198
- events,
199
- plugin
200
- } = recordingPlugin();
201
- await configure([plugin]);
202
- const onNotifyAppReady = vi.fn();
203
- const {
204
- handleNotifyAppReady
205
- } = await import("./appReady");
206
- const first = handleNotifyAppReady({
207
- onNotifyAppReady
208
- });
209
- const second = handleNotifyAppReady({
210
- onNotifyAppReady
211
- });
212
- await vi.runOnlyPendingTimersAsync();
213
- await Promise.all([first, second]);
214
- expect(events).toHaveLength(1);
215
- expect(onNotifyAppReady).toHaveBeenCalledTimes(2);
216
- });
217
- it("skips onAppReady for an applied launch without its persisted transition", async () => {
218
- stubNotifyFrame();
219
- mocks.readNotifyAppReady.mockReturnValue(createNotifyReadResult({
220
- status: "UPDATE_APPLIED",
221
- fromBundleId: "bundle-a",
222
- toBundleId: "bundle-b"
223
- }, null));
224
- const {
225
- events,
226
- plugin
227
- } = recordingPlugin();
228
- await configure([plugin]);
229
- const onNotifyAppReady = vi.fn();
230
- const {
231
- handleNotifyAppReady
232
- } = await import("./appReady");
233
- const readiness = handleNotifyAppReady({
234
- onNotifyAppReady
235
- });
236
- await vi.runOnlyPendingTimersAsync();
237
- await readiness;
238
- expect(events).toEqual([]);
239
- expect(onNotifyAppReady).toHaveBeenCalledOnce();
240
- });
241
- it("reports a throwing or rejecting hook through onError and keeps readiness", async () => {
242
- stubNotifyFrame();
243
- const onError = vi.fn();
244
- const throwing = {
245
- id: "throwing",
246
- setup: () => ({
247
- onAppReady: () => {
248
- throw new Error("hook failed");
249
- }
250
- })
251
- };
252
- const rejecting = {
253
- id: "rejecting",
254
- setup: () => ({
255
- onAppReady: async () => {
256
- throw new Error("hook rejected");
257
- }
258
- })
259
- };
260
- await configure([throwing, rejecting], onError);
261
- const onNotifyAppReady = vi.fn();
262
- const {
263
- handleNotifyAppReady
264
- } = await import("./appReady");
265
- const readiness = handleNotifyAppReady({
266
- onNotifyAppReady
267
- });
268
- await vi.runOnlyPendingTimersAsync();
269
- await readiness;
270
- await vi.runAllTimersAsync();
271
- expect(onNotifyAppReady).toHaveBeenCalledWith({
272
- status: "UNCHANGED"
273
- });
274
- expect(onError).toHaveBeenCalledTimes(2);
275
- expect(onError).toHaveBeenCalledWith(expect.objectContaining({
276
- message: '[HotUpdater] Plugin "throwing" failed in onAppReady',
277
- cause: expect.objectContaining({
278
- message: "hook failed"
279
- })
280
- }));
281
- expect(onError).toHaveBeenCalledWith(expect.objectContaining({
282
- message: '[HotUpdater] Plugin "rejecting" failed in onAppReady'
283
- }));
284
- });
285
- it("delivers events after the launch, even when they happen first", async () => {
286
- stubNotifyFrame();
287
- const {
288
- events,
289
- plugin
290
- } = recordingPlugin();
291
- await configure([plugin]);
292
- const {
293
- emitAfterAppReady,
294
- handleNotifyAppReady
295
- } = await import("./appReady");
296
- const readiness = handleNotifyAppReady({});
297
- emitAfterAppReady("onBundleDownloaded", () => ({
298
- channel: "production",
299
- fromBundleId: "bundle-id",
300
- fromReleaseId: null,
301
- toBundleId: "next-bundle",
302
- toReleaseId: "next-release",
303
- updateStrategy: "appVersion",
304
- delivery: "manifest",
305
- patchFallback: false
306
- }));
307
- expect(events).toEqual([]);
308
- await vi.runOnlyPendingTimersAsync();
309
- await readiness;
310
- await Promise.resolve();
311
- expect(events.map(event => event[0])).toEqual(["onAppReady", "onBundleDownloaded"]);
312
- });
313
- it("passes on why the previous process exited, and keeps it for later events", async () => {
314
- stubNotifyFrame();
315
- mocks.readNotifyAppReady.mockReturnValue(createNotifyReadResult({
316
- status: "RECOVERED",
317
- fromBundleId: "bundle-b",
318
- toBundleId: "bundle-a"
319
- }, {
320
- type: "RECOVERED",
321
- fromBundleId: "bundle-b",
322
- fromReleaseId: null,
323
- toBundleId: "bundle-a",
324
- toReleaseId: null,
325
- updateStrategy: "appVersion"
326
- }, false, "CRASH_NATIVE"));
327
- const {
328
- events,
329
- plugin
330
- } = recordingPlugin();
331
- await configure([plugin]);
332
- const {
333
- getPreviousProcessExit,
334
- handleNotifyAppReady
335
- } = await import("./appReady");
336
- expect(getPreviousProcessExit()).toBeNull();
337
- const readiness = handleNotifyAppReady({});
338
- await vi.runOnlyPendingTimersAsync();
339
- await readiness;
340
- expect(events).toEqual([["onAppReady", expect.objectContaining({
341
- status: "RECOVERED",
342
- previousProcessExit: "CRASH_NATIVE"
343
- })]]);
344
- expect(getPreviousProcessExit()).toBe("CRASH_NATIVE");
345
- });
346
- it("builds no event when no plugin listens", async () => {
347
- stubNotifyFrame();
348
- await configure([]);
349
- const {
350
- handleNotifyAppReady
351
- } = await import("./appReady");
352
- const readiness = handleNotifyAppReady({});
353
- await vi.runOnlyPendingTimersAsync();
354
- await readiness;
355
- expect(mocks.getActiveUpdateState).not.toHaveBeenCalled();
356
- expect(mocks.getBundleId).not.toHaveBeenCalled();
357
- });
358
- });
359
- //# sourceMappingURL=appReady.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["beforeEach","describe","expect","it","vi","createNotifyReadResult","stubNotifyFrame","mock","Platform","OS","mocks","hoisted","Reflect","set","globalThis","SDK_VERSION","getAppVersion","fn","getBundleId","getChannel","getActiveUpdateState","getCohort","getFingerprintHash","getInstallId","getStorageItem","setStorageItem","readNotifyAppReady","recordingPlugin","hooks","events","onAppReady","result","push","onBundleDownloaded","info","plugin","id","setup","configure","plugins","onError","configurePlugins","baseURL","resetModules","unstubAllGlobals","useRealTimers","Object","values","mockReset","mockReturnValue","activeSelection","stableSelection","verificationPending","each","label","pending","channel","expected","running","kind","releaseId","bundleId","handleNotifyAppReady","readiness","runOnlyPendingTimersAsync","toEqual","status","previousProcessExit","fromBundleId","toBundleId","type","fromReleaseId","toReleaseId","updateStrategy","onNotifyAppReady","toHaveBeenCalledWith","mockReturnValueOnce","undefined","runAllTimersAsync","toHaveBeenCalledTimes","toHaveLength","first","second","Promise","all","toHaveBeenCalledOnce","throwing","Error","rejecting","objectContaining","message","cause","emitAfterAppReady","delivery","patchFallback","resolve","map","event","getPreviousProcessExit","toBeNull","toBe","not","toHaveBeenCalled"],"sourceRoot":"../../src","sources":["appReady.spec.ts"],"mappings":"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","ignoreList":[]}
@@ -1,19 +0,0 @@
1
- "use strict";
2
-
3
- import { vi } from "vitest";
4
- export const createNotifyReadResult = (result = {
5
- status: "UNCHANGED"
6
- }, transition = null, pending = false, previousProcessExit = null) => ({
7
- transition,
8
- previousProcessExit,
9
- pending,
10
- result
11
- });
12
- export const stubNotifyFrame = () => {
13
- vi.useFakeTimers();
14
- vi.stubGlobal("requestAnimationFrame", vi.fn(callback => {
15
- setTimeout(() => callback(0), 0);
16
- return 1;
17
- }));
18
- };
19
- //# sourceMappingURL=appReady.test-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["vi","createNotifyReadResult","result","status","transition","pending","previousProcessExit","stubNotifyFrame","useFakeTimers","stubGlobal","fn","callback","setTimeout"],"sourceRoot":"../../src","sources":["appReady.test-utils.ts"],"mappings":";;AAAA,SAASA,EAAE,QAAQ,QAAQ;AAI3B,OAAO,MAAMC,sBAAsB,GAAGA,CACpCC,MAA4B,GAAG;EAAEC,MAAM,EAAE;AAAY,CAAC,EACtDC,UAAmC,GAAG,IAAI,EAC1CC,OAAO,GAAG,KAAK,EACfC,mBAAkC,GAAG,IAAI,MAMrC;EACJF,UAAU;EACVE,mBAAmB;EACnBD,OAAO;EACPH;AACF,CAAC,CAAC;AAEF,OAAO,MAAMK,eAAe,GAAGA,CAAA,KAAM;EACnCP,EAAE,CAACQ,aAAa,CAAC,CAAC;EAClBR,EAAE,CAACS,UAAU,CACX,uBAAuB,EACvBT,EAAE,CAACU,EAAE,CAAEC,QAAqC,IAAK;IAC/CC,UAAU,CAAC,MAAMD,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAChC,OAAO,CAAC;EACV,CAAC,CACH,CAAC;AACH,CAAC","ignoreList":[]}
@@ -1,11 +0,0 @@
1
- "use strict";
2
-
3
- /** Resolves a functional baseURL and drops trailing slashes. */
4
- export const resolveBaseURL = async baseURL => {
5
- const resolvedBaseURL = typeof baseURL === "function" ? await baseURL() : baseURL;
6
- if (!resolvedBaseURL) {
7
- throw new Error("baseURL function must return a non-empty string");
8
- }
9
- return resolvedBaseURL.replace(/\/+$/, "");
10
- };
11
- //# sourceMappingURL=baseURL.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["resolveBaseURL","baseURL","resolvedBaseURL","Error","replace"],"sourceRoot":"../../src","sources":["baseURL.ts"],"mappings":";;AAEA;AACA,OAAO,MAAMA,cAAc,GAAG,MAC5BC,OAA0B,IACN;EACpB,MAAMC,eAAe,GACnB,OAAOD,OAAO,KAAK,UAAU,GAAG,MAAMA,OAAO,CAAC,CAAC,GAAGA,OAAO;EAE3D,IAAI,CAACC,eAAe,EAAE;IACpB,MAAM,IAAIC,KAAK,CAAC,iDAAiD,CAAC;EACpE;EAEA,OAAOD,eAAe,CAACE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;AAC5C,CAAC","ignoreList":[]}
@@ -1,31 +0,0 @@
1
- "use strict";
2
-
3
- import { beforeEach, describe, expect, it, vi } from "vitest";
4
- const nativeModule = vi.hoisted(() => ({}));
5
- vi.mock("./specs/NativeHotUpdater", () => ({
6
- default: nativeModule
7
- }));
8
- import { readNativeReleaseCatalogCache, removeNativeReleaseCatalogCache, writeNativeReleaseCatalogCache } from "./catalogCacheNative.js";
9
- describe("Release Catalog native cache", () => {
10
- beforeEach(() => {
11
- for (const key of Object.keys(nativeModule)) delete nativeModule[key];
12
- });
13
- it("fails fast when the v1 native cache API is missing", async () => {
14
- await expect(readNativeReleaseCatalogCache("partition")).rejects.toThrow("Native module is missing 'getReleaseCatalogCache()'. Rebuild the native app before using Release catalogs.");
15
- await expect(writeNativeReleaseCatalogCache("partition", "payload")).rejects.toThrow("Native module is missing 'setReleaseCatalogCache()'. Rebuild the native app before using Release catalogs.");
16
- await expect(removeNativeReleaseCatalogCache("partition")).rejects.toThrow("Native module is missing 'removeReleaseCatalogCache()'. Rebuild the native app before using Release catalogs.");
17
- });
18
- it("normalizes an undefined iOS TurboModule cache miss to null", async () => {
19
- nativeModule.getReleaseCatalogCache = vi.fn().mockResolvedValue(undefined);
20
- await expect(readNativeReleaseCatalogCache("partition")).resolves.toBeNull();
21
- });
22
- it("treats native cache I/O failures as misses without hiding network work", async () => {
23
- nativeModule.getReleaseCatalogCache = vi.fn().mockRejectedValue(new Error("read"));
24
- nativeModule.setReleaseCatalogCache = vi.fn().mockRejectedValue(new Error("write"));
25
- nativeModule.removeReleaseCatalogCache = vi.fn().mockRejectedValue(new Error("remove"));
26
- await expect(readNativeReleaseCatalogCache("partition")).resolves.toBeNull();
27
- await expect(writeNativeReleaseCatalogCache("partition", "payload")).resolves.toBe(false);
28
- await expect(removeNativeReleaseCatalogCache("partition")).resolves.toBeUndefined();
29
- });
30
- });
31
- //# sourceMappingURL=catalogCacheNative.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["beforeEach","describe","expect","it","vi","nativeModule","hoisted","mock","default","readNativeReleaseCatalogCache","removeNativeReleaseCatalogCache","writeNativeReleaseCatalogCache","key","Object","keys","rejects","toThrow","getReleaseCatalogCache","fn","mockResolvedValue","undefined","resolves","toBeNull","mockRejectedValue","Error","setReleaseCatalogCache","removeReleaseCatalogCache","toBe","toBeUndefined"],"sourceRoot":"../../src","sources":["catalogCacheNative.spec.ts"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,EAAEC,EAAE,QAAQ,QAAQ;AAE7D,MAAMC,YAAY,GAAGD,EAAE,CAACE,OAAO,CAC7B,OAAO,CAAC,CAAC,CACX,CAAC;AAEDF,EAAE,CAACG,IAAI,CAAC,0BAA0B,EAAE,OAAO;EAAEC,OAAO,EAAEH;AAAa,CAAC,CAAC,CAAC;AAEtE,SACEI,6BAA6B,EAC7BC,+BAA+B,EAC/BC,8BAA8B,QACzB,yBAAsB;AAE7BV,QAAQ,CAAC,8BAA8B,EAAE,MAAM;EAC7CD,UAAU,CAAC,MAAM;IACf,KAAK,MAAMY,GAAG,IAAIC,MAAM,CAACC,IAAI,CAACT,YAAY,CAAC,EAAE,OAAOA,YAAY,CAACO,GAAG,CAAC;EACvE,CAAC,CAAC;EAEFT,EAAE,CAAC,oDAAoD,EAAE,YAAY;IACnE,MAAMD,MAAM,CAACO,6BAA6B,CAAC,WAAW,CAAC,CAAC,CAACM,OAAO,CAACC,OAAO,CACtE,4GACF,CAAC;IACD,MAAMd,MAAM,CACVS,8BAA8B,CAAC,WAAW,EAAE,SAAS,CACvD,CAAC,CAACI,OAAO,CAACC,OAAO,CACf,4GACF,CAAC;IACD,MAAMd,MAAM,CAACQ,+BAA+B,CAAC,WAAW,CAAC,CAAC,CAACK,OAAO,CAACC,OAAO,CACxE,+GACF,CAAC;EACH,CAAC,CAAC;EAEFb,EAAE,CAAC,4DAA4D,EAAE,YAAY;IAC3EE,YAAY,CAACY,sBAAsB,GAAGb,EAAE,CAACc,EAAE,CAAC,CAAC,CAACC,iBAAiB,CAACC,SAAS,CAAC;IAE1E,MAAMlB,MAAM,CACVO,6BAA6B,CAAC,WAAW,CAC3C,CAAC,CAACY,QAAQ,CAACC,QAAQ,CAAC,CAAC;EACvB,CAAC,CAAC;EAEFnB,EAAE,CAAC,wEAAwE,EAAE,YAAY;IACvFE,YAAY,CAACY,sBAAsB,GAAGb,EAAE,CACrCc,EAAE,CAAC,CAAC,CACJK,iBAAiB,CAAC,IAAIC,KAAK,CAAC,MAAM,CAAC,CAAC;IACvCnB,YAAY,CAACoB,sBAAsB,GAAGrB,EAAE,CACrCc,EAAE,CAAC,CAAC,CACJK,iBAAiB,CAAC,IAAIC,KAAK,CAAC,OAAO,CAAC,CAAC;IACxCnB,YAAY,CAACqB,yBAAyB,GAAGtB,EAAE,CACxCc,EAAE,CAAC,CAAC,CACJK,iBAAiB,CAAC,IAAIC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEzC,MAAMtB,MAAM,CACVO,6BAA6B,CAAC,WAAW,CAC3C,CAAC,CAACY,QAAQ,CAACC,QAAQ,CAAC,CAAC;IACrB,MAAMpB,MAAM,CACVS,8BAA8B,CAAC,WAAW,EAAE,SAAS,CACvD,CAAC,CAACU,QAAQ,CAACM,IAAI,CAAC,KAAK,CAAC;IACtB,MAAMzB,MAAM,CACVQ,+BAA+B,CAAC,WAAW,CAC7C,CAAC,CAACW,QAAQ,CAACO,aAAa,CAAC,CAAC;EAC5B,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}