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

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 (143) hide show
  1. package/android/proguard-rules.pro +15 -0
  2. package/android/src/main/java/com/hotupdater/BundleFileStorageService.kt +1 -1
  3. package/android/src/main/java/com/hotupdater/BundleMetadata.kt +7 -0
  4. package/android/src/main/java/com/hotupdater/HotUpdaterRecoveryManager.kt +37 -54
  5. package/android/src/main/java/com/hotupdater/HotUpdaterRecoveryState.kt +64 -0
  6. package/android/src/test/java/com/hotupdater/HotUpdaterRecoveryStateTest.kt +97 -0
  7. package/android/src/test/java/com/hotupdater/PendingCrashRecoveryTest.kt +44 -0
  8. package/ios/HotUpdater/Internal/HotUpdaterImpl.swift +102 -20
  9. package/ios/HotUpdater/Recovery/HotUpdaterRecovery.h +16 -0
  10. package/ios/HotUpdater/Recovery/HotUpdaterRecovery.mm +83 -0
  11. package/ios/HotUpdater/Recovery/HotUpdaterRecoveryHooks.mm +49 -0
  12. package/lib/commonjs/checkForUpdate.js +25 -13
  13. package/lib/commonjs/checkForUpdate.js.map +1 -1
  14. package/lib/commonjs/checkForUpdate.releaseCatalog.spec.js +88 -24
  15. package/lib/commonjs/checkForUpdate.releaseCatalog.spec.js.map +1 -1
  16. package/lib/commonjs/httpClient.js +2 -2
  17. package/lib/commonjs/httpClient.js.map +1 -1
  18. package/lib/commonjs/index.js +30 -9
  19. package/lib/commonjs/index.js.map +1 -1
  20. package/lib/commonjs/index.spec.js +56 -11
  21. package/lib/commonjs/index.spec.js.map +1 -1
  22. package/lib/commonjs/native.js +8 -6
  23. package/lib/commonjs/native.js.map +1 -1
  24. package/lib/commonjs/native.spec.js +107 -6
  25. package/lib/commonjs/native.spec.js.map +1 -1
  26. package/lib/commonjs/{notifyAppReadyAnalytics.boundary.spec.js → notifyAppReadyInsights.boundary.spec.js} +21 -21
  27. package/lib/commonjs/notifyAppReadyInsights.boundary.spec.js.map +1 -0
  28. package/lib/commonjs/notifyAppReadyInsights.js +185 -0
  29. package/lib/commonjs/notifyAppReadyInsights.js.map +1 -0
  30. package/lib/commonjs/{notifyAppReadyAnalytics.spec.js → notifyAppReadyInsights.spec.js} +102 -29
  31. package/lib/commonjs/notifyAppReadyInsights.spec.js.map +1 -0
  32. package/lib/commonjs/{notifyAppReadyAnalytics.test-utils.js → notifyAppReadyInsights.test-utils.js} +3 -3
  33. package/lib/commonjs/notifyAppReadyInsights.test-utils.js.map +1 -0
  34. package/lib/commonjs/{notifyAppReadyAnalytics.transport.spec.js → notifyAppReadyInsights.transport.spec.js} +7 -7
  35. package/lib/commonjs/notifyAppReadyInsights.transport.spec.js.map +1 -0
  36. package/lib/commonjs/sdkVersion.js +1 -1
  37. package/lib/commonjs/sdkVersion.js.map +1 -1
  38. package/lib/commonjs/wrap.js +10 -9
  39. package/lib/commonjs/wrap.js.map +1 -1
  40. package/lib/commonjs/wrap.spec.js +90 -25
  41. package/lib/commonjs/wrap.spec.js.map +1 -1
  42. package/lib/module/checkForUpdate.js +25 -13
  43. package/lib/module/checkForUpdate.js.map +1 -1
  44. package/lib/module/checkForUpdate.releaseCatalog.spec.js +88 -24
  45. package/lib/module/checkForUpdate.releaseCatalog.spec.js.map +1 -1
  46. package/lib/module/httpClient.js +2 -2
  47. package/lib/module/httpClient.js.map +1 -1
  48. package/lib/module/index.js +31 -10
  49. package/lib/module/index.js.map +1 -1
  50. package/lib/module/index.spec.js +56 -11
  51. package/lib/module/index.spec.js.map +1 -1
  52. package/lib/module/native.js +6 -4
  53. package/lib/module/native.js.map +1 -1
  54. package/lib/module/native.spec.js +107 -6
  55. package/lib/module/native.spec.js.map +1 -1
  56. package/lib/module/{notifyAppReadyAnalytics.boundary.spec.js → notifyAppReadyInsights.boundary.spec.js} +16 -16
  57. package/lib/module/notifyAppReadyInsights.boundary.spec.js.map +1 -0
  58. package/lib/module/notifyAppReadyInsights.js +178 -0
  59. package/lib/module/notifyAppReadyInsights.js.map +1 -0
  60. package/lib/module/{notifyAppReadyAnalytics.spec.js → notifyAppReadyInsights.spec.js} +94 -21
  61. package/lib/module/notifyAppReadyInsights.spec.js.map +1 -0
  62. package/lib/module/{notifyAppReadyAnalytics.test-utils.js → notifyAppReadyInsights.test-utils.js} +3 -3
  63. package/lib/module/notifyAppReadyInsights.test-utils.js.map +1 -0
  64. package/lib/module/{notifyAppReadyAnalytics.transport.spec.js → notifyAppReadyInsights.transport.spec.js} +4 -4
  65. package/lib/module/notifyAppReadyInsights.transport.spec.js.map +1 -0
  66. package/lib/module/sdkVersion.js +1 -1
  67. package/lib/module/sdkVersion.js.map +1 -1
  68. package/lib/module/wrap.js +10 -9
  69. package/lib/module/wrap.js.map +1 -1
  70. package/lib/module/wrap.spec.js +92 -25
  71. package/lib/module/wrap.spec.js.map +1 -1
  72. package/lib/typescript/commonjs/checkForUpdate.d.ts +1 -1
  73. package/lib/typescript/commonjs/checkForUpdate.d.ts.map +1 -1
  74. package/lib/typescript/commonjs/httpClient.d.ts +6 -6
  75. package/lib/typescript/commonjs/httpClient.d.ts.map +1 -1
  76. package/lib/typescript/commonjs/index.d.ts +4 -5
  77. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  78. package/lib/typescript/commonjs/native.d.ts +4 -3
  79. package/lib/typescript/commonjs/native.d.ts.map +1 -1
  80. package/lib/typescript/commonjs/notifyAppReadyInsights.d.ts +25 -0
  81. package/lib/typescript/commonjs/notifyAppReadyInsights.d.ts.map +1 -0
  82. package/lib/typescript/commonjs/notifyAppReadyInsights.test-utils.d.ts +8 -0
  83. package/lib/typescript/commonjs/notifyAppReadyInsights.test-utils.d.ts.map +1 -0
  84. package/lib/typescript/commonjs/sdkVersion.d.ts +1 -1
  85. package/lib/typescript/commonjs/sdkVersion.d.ts.map +1 -1
  86. package/lib/typescript/commonjs/wrap.d.ts.map +1 -1
  87. package/lib/typescript/commonjs/wrap.types.d.ts +5 -6
  88. package/lib/typescript/commonjs/wrap.types.d.ts.map +1 -1
  89. package/lib/typescript/module/checkForUpdate.d.ts +1 -1
  90. package/lib/typescript/module/checkForUpdate.d.ts.map +1 -1
  91. package/lib/typescript/module/httpClient.d.ts +6 -6
  92. package/lib/typescript/module/httpClient.d.ts.map +1 -1
  93. package/lib/typescript/module/index.d.ts +4 -5
  94. package/lib/typescript/module/index.d.ts.map +1 -1
  95. package/lib/typescript/module/native.d.ts +4 -3
  96. package/lib/typescript/module/native.d.ts.map +1 -1
  97. package/lib/typescript/module/notifyAppReadyInsights.d.ts +25 -0
  98. package/lib/typescript/module/notifyAppReadyInsights.d.ts.map +1 -0
  99. package/lib/typescript/module/notifyAppReadyInsights.test-utils.d.ts +8 -0
  100. package/lib/typescript/module/notifyAppReadyInsights.test-utils.d.ts.map +1 -0
  101. package/lib/typescript/module/sdkVersion.d.ts +1 -1
  102. package/lib/typescript/module/sdkVersion.d.ts.map +1 -1
  103. package/lib/typescript/module/wrap.d.ts.map +1 -1
  104. package/lib/typescript/module/wrap.types.d.ts +5 -6
  105. package/lib/typescript/module/wrap.types.d.ts.map +1 -1
  106. package/package.json +3 -3
  107. package/src/checkForUpdate.releaseCatalog.spec.ts +127 -57
  108. package/src/checkForUpdate.ts +30 -18
  109. package/src/httpClient.ts +11 -11
  110. package/src/index.spec.ts +59 -11
  111. package/src/index.ts +41 -13
  112. package/src/native.spec.ts +110 -6
  113. package/src/native.ts +9 -8
  114. package/src/{notifyAppReadyAnalytics.boundary.spec.ts → notifyAppReadyInsights.boundary.spec.ts} +17 -17
  115. package/src/{notifyAppReadyAnalytics.spec.ts → notifyAppReadyInsights.spec.ts} +81 -22
  116. package/src/{notifyAppReadyAnalytics.test-utils.ts → notifyAppReadyInsights.test-utils.ts} +4 -4
  117. package/src/{notifyAppReadyAnalytics.transport.spec.ts → notifyAppReadyInsights.transport.spec.ts} +5 -5
  118. package/src/notifyAppReadyInsights.ts +281 -0
  119. package/src/sdkVersion.ts +1 -1
  120. package/src/wrap.spec.ts +101 -31
  121. package/src/wrap.tsx +11 -9
  122. package/src/wrap.types.ts +5 -6
  123. package/lib/commonjs/notifyAppReadyAnalytics.boundary.spec.js.map +0 -1
  124. package/lib/commonjs/notifyAppReadyAnalytics.js +0 -133
  125. package/lib/commonjs/notifyAppReadyAnalytics.js.map +0 -1
  126. package/lib/commonjs/notifyAppReadyAnalytics.spec.js.map +0 -1
  127. package/lib/commonjs/notifyAppReadyAnalytics.test-utils.js.map +0 -1
  128. package/lib/commonjs/notifyAppReadyAnalytics.transport.spec.js.map +0 -1
  129. package/lib/module/notifyAppReadyAnalytics.boundary.spec.js.map +0 -1
  130. package/lib/module/notifyAppReadyAnalytics.js +0 -128
  131. package/lib/module/notifyAppReadyAnalytics.js.map +0 -1
  132. package/lib/module/notifyAppReadyAnalytics.spec.js.map +0 -1
  133. package/lib/module/notifyAppReadyAnalytics.test-utils.js.map +0 -1
  134. package/lib/module/notifyAppReadyAnalytics.transport.spec.js.map +0 -1
  135. package/lib/typescript/commonjs/notifyAppReadyAnalytics.d.ts +0 -13
  136. package/lib/typescript/commonjs/notifyAppReadyAnalytics.d.ts.map +0 -1
  137. package/lib/typescript/commonjs/notifyAppReadyAnalytics.test-utils.d.ts +0 -8
  138. package/lib/typescript/commonjs/notifyAppReadyAnalytics.test-utils.d.ts.map +0 -1
  139. package/lib/typescript/module/notifyAppReadyAnalytics.d.ts +0 -13
  140. package/lib/typescript/module/notifyAppReadyAnalytics.d.ts.map +0 -1
  141. package/lib/typescript/module/notifyAppReadyAnalytics.test-utils.d.ts +0 -8
  142. package/lib/typescript/module/notifyAppReadyAnalytics.test-utils.d.ts.map +0 -1
  143. package/src/notifyAppReadyAnalytics.ts +0 -194
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { beforeEach, describe, expect, it, vi } from "vitest";
4
- import { createNotifyReadResult, stubNotifyFrame } from "./notifyAppReadyAnalytics.test-utils.js";
4
+ import { createNotifyReadResult, stubNotifyFrame } from "./notifyAppReadyInsights.test-utils.js";
5
5
  vi.mock("react-native", () => ({
6
6
  Platform: {
7
7
  OS: "ios"
@@ -36,19 +36,19 @@ vi.mock("./native", () => ({
36
36
  reload: mocks.reload
37
37
  }));
38
38
  const createClient = () => {
39
- const sendAnalyticsEvent = vi.fn().mockResolvedValue(undefined);
39
+ const sendInsightsEvent = vi.fn().mockResolvedValue(undefined);
40
40
  return {
41
41
  client: {
42
42
  createSession: vi.fn(async () => ({
43
43
  fetchReleaseCatalog: vi.fn(),
44
44
  resolveArtifact: vi.fn(),
45
- sendAnalyticsEvent
45
+ sendInsightsEvent
46
46
  }))
47
47
  },
48
- sendAnalyticsEvent
48
+ sendInsightsEvent
49
49
  };
50
50
  };
51
- describe("automatic notifyAppReady analytics", () => {
51
+ describe("automatic notifyAppReady insights", () => {
52
52
  beforeEach(() => {
53
53
  vi.resetModules();
54
54
  vi.unstubAllGlobals();
@@ -66,6 +66,79 @@ describe("automatic notifyAppReady analytics", () => {
66
66
  mocks.getPersistedUserIdentity.mockReturnValue({});
67
67
  mocks.readNotifyAppReady.mockReturnValue(createNotifyReadResult());
68
68
  });
69
+ it("orders download after in-flight startup reporting and suppresses a later no-change report", async () => {
70
+ const {
71
+ handleNotifyAppReady,
72
+ reportBundleDownloaded,
73
+ reportNoChange
74
+ } = await import("./notifyAppReadyInsights");
75
+ const {
76
+ client,
77
+ sendInsightsEvent
78
+ } = createClient();
79
+ let finishStartup;
80
+ sendInsightsEvent.mockImplementationOnce(() => new Promise(resolve => {
81
+ finishStartup = resolve;
82
+ }));
83
+ const options = {
84
+ client,
85
+ insights: true
86
+ };
87
+ const startup = handleNotifyAppReady(options);
88
+ await vi.waitFor(() => expect(sendInsightsEvent).toHaveBeenCalledOnce());
89
+ const download = reportBundleDownloaded(options, {
90
+ fromBundleId: "bundle-id",
91
+ fromReleaseId: null,
92
+ toBundleId: "next-bundle",
93
+ toReleaseId: "next-release",
94
+ channel: "production",
95
+ updateStrategy: "appVersion"
96
+ });
97
+ await Promise.resolve();
98
+ expect(sendInsightsEvent).toHaveBeenCalledOnce();
99
+ finishStartup();
100
+ await Promise.all([startup, download]);
101
+ await reportNoChange(options);
102
+ expect(sendInsightsEvent.mock.calls.map(([params]) => params.type)).toEqual(["UNCHANGED", "UPDATE_DOWNLOADED"]);
103
+ });
104
+ it("reports selecting a previous download again after a different pending bundle", async () => {
105
+ const {
106
+ reportBundleDownloaded
107
+ } = await import("./notifyAppReadyInsights");
108
+ const {
109
+ client,
110
+ sendInsightsEvent
111
+ } = createClient();
112
+ const transition = {
113
+ fromBundleId: "bundle-id",
114
+ fromReleaseId: null,
115
+ toBundleId: "next-bundle",
116
+ toReleaseId: "next-release",
117
+ channel: "production",
118
+ updateStrategy: "appVersion"
119
+ };
120
+ await reportBundleDownloaded({
121
+ client,
122
+ insights: true
123
+ }, transition);
124
+ await reportBundleDownloaded({
125
+ client,
126
+ insights: true
127
+ }, transition);
128
+ await reportBundleDownloaded({
129
+ client,
130
+ insights: true
131
+ }, {
132
+ ...transition,
133
+ toBundleId: "other-bundle",
134
+ toReleaseId: "other-release"
135
+ });
136
+ await reportBundleDownloaded({
137
+ client,
138
+ insights: true
139
+ }, transition);
140
+ expect(sendInsightsEvent.mock.calls.map(([params]) => params.toBundleId)).toEqual(["next-bundle", "other-bundle", "next-bundle"]);
141
+ });
69
142
  it("sends UPDATE_APPLIED with transition metadata and invokes readiness", async () => {
70
143
  stubNotifyFrame();
71
144
  mocks.getPersistedUserIdentity.mockReturnValue({
@@ -84,14 +157,14 @@ describe("automatic notifyAppReady analytics", () => {
84
157
  }));
85
158
  const {
86
159
  client,
87
- sendAnalyticsEvent
160
+ sendInsightsEvent
88
161
  } = createClient();
89
162
  const onNotifyAppReady = vi.fn();
90
163
  const {
91
164
  init
92
165
  } = await import("./wrap");
93
166
  init({
94
- analytics: true,
167
+ insights: true,
95
168
  onNotifyAppReady,
96
169
  requestHeaders: {
97
170
  Authorization: "Bearer token"
@@ -100,7 +173,7 @@ describe("automatic notifyAppReady analytics", () => {
100
173
  client
101
174
  });
102
175
  await vi.runOnlyPendingTimersAsync();
103
- expect(sendAnalyticsEvent).toHaveBeenCalledWith({
176
+ expect(sendInsightsEvent).toHaveBeenCalledWith({
104
177
  appVersion: "1.0.0",
105
178
  channel: "production",
106
179
  cohort: "123",
@@ -140,19 +213,19 @@ describe("automatic notifyAppReady analytics", () => {
140
213
  }));
141
214
  const {
142
215
  client,
143
- sendAnalyticsEvent
216
+ sendInsightsEvent
144
217
  } = createClient();
145
218
  const onNotifyAppReady = vi.fn();
146
219
  const {
147
220
  init
148
221
  } = await import("./wrap");
149
222
  init({
150
- analytics: true,
223
+ insights: true,
151
224
  client,
152
225
  onNotifyAppReady
153
226
  });
154
227
  await vi.runOnlyPendingTimersAsync();
155
- expect(sendAnalyticsEvent).toHaveBeenCalledWith({
228
+ expect(sendInsightsEvent).toHaveBeenCalledWith({
156
229
  appVersion: "1.0.0",
157
230
  channel: "production",
158
231
  cohort: "123",
@@ -178,25 +251,25 @@ describe("automatic notifyAppReady analytics", () => {
178
251
  stubNotifyFrame();
179
252
  const {
180
253
  client,
181
- sendAnalyticsEvent
254
+ sendInsightsEvent
182
255
  } = createClient();
183
256
  const onNotifyAppReady = vi.fn();
184
257
  const {
185
258
  init
186
259
  } = await import("./wrap");
187
260
  init({
188
- analytics: true,
261
+ insights: true,
189
262
  client,
190
263
  onNotifyAppReady
191
264
  });
192
265
  init({
193
- analytics: true,
266
+ insights: true,
194
267
  client,
195
268
  onNotifyAppReady
196
269
  });
197
270
  await vi.runOnlyPendingTimersAsync();
198
- expect(sendAnalyticsEvent).toHaveBeenCalledTimes(1);
199
- expect(sendAnalyticsEvent).toHaveBeenCalledWith({
271
+ expect(sendInsightsEvent).toHaveBeenCalledTimes(1);
272
+ expect(sendInsightsEvent).toHaveBeenCalledWith({
200
273
  appVersion: "1.0.0",
201
274
  channel: "production",
202
275
  cohort: "123",
@@ -220,26 +293,26 @@ describe("automatic notifyAppReady analytics", () => {
220
293
  status: "UNCHANGED"
221
294
  });
222
295
  });
223
- it("skips automatic analytics when disabled while preserving readiness", async () => {
296
+ it("skips automatic insights when disabled while preserving readiness", async () => {
224
297
  stubNotifyFrame();
225
298
  const {
226
299
  client,
227
- sendAnalyticsEvent
300
+ sendInsightsEvent
228
301
  } = createClient();
229
302
  const onNotifyAppReady = vi.fn();
230
303
  const {
231
304
  init
232
305
  } = await import("./wrap");
233
306
  init({
234
- analytics: false,
307
+ insights: false,
235
308
  client,
236
309
  onNotifyAppReady
237
310
  });
238
311
  await vi.runOnlyPendingTimersAsync();
239
- expect(sendAnalyticsEvent).not.toHaveBeenCalled();
312
+ expect(sendInsightsEvent).not.toHaveBeenCalled();
240
313
  expect(onNotifyAppReady).toHaveBeenCalledWith({
241
314
  status: "UNCHANGED"
242
315
  });
243
316
  });
244
317
  });
245
- //# sourceMappingURL=notifyAppReadyAnalytics.spec.js.map
318
+ //# sourceMappingURL=notifyAppReadyInsights.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["beforeEach","describe","expect","it","vi","createNotifyReadResult","stubNotifyFrame","mock","Platform","OS","mocks","hoisted","addListener","fn","checkForUpdate","getAppVersion","getBundleId","getChannel","getCohort","getFingerprintHash","getInstallId","getPersistedUserIdentity","readNotifyAppReady","reload","createClient","sendInsightsEvent","mockResolvedValue","undefined","client","createSession","fetchReleaseCatalog","resolveArtifact","resetModules","unstubAllGlobals","useRealTimers","Object","values","mockReset","mockReturnValue","handleNotifyAppReady","reportBundleDownloaded","reportNoChange","finishStartup","mockImplementationOnce","Promise","resolve","options","insights","startup","waitFor","toHaveBeenCalledOnce","download","fromBundleId","fromReleaseId","toBundleId","toReleaseId","channel","updateStrategy","all","calls","map","params","type","toEqual","transition","userId","username","status","onNotifyAppReady","init","requestHeaders","Authorization","requestTimeout","runOnlyPendingTimersAsync","toHaveBeenCalledWith","appVersion","cohort","fingerprintHash","installId","platform","toHaveBeenCalledTimes","toHaveBeenNthCalledWith","not","toHaveBeenCalled"],"sourceRoot":"../../src","sources":["notifyAppReadyInsights.spec.ts"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,EAAEC,EAAE,QAAQ,QAAQ;AAM7D,SACEC,sBAAsB,EACtBC,eAAe,QACV,wCAAqC;AAE5CF,EAAE,CAACG,IAAI,CAAC,cAAc,EAAE,OAAO;EAC7BC,QAAQ,EAAE;IAAEC,EAAE,EAAE;EAAM;AACxB,CAAC,CAAC,CAAC;AAEH,MAAMC,KAAK,GAAGN,EAAE,CAACO,OAAO,CAAC,OAAO;EAC9BC,WAAW,EAAER,EAAE,CAACS,EAAE,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC;EAClCC,cAAc,EAAEV,EAAE,CAACS,EAAE,CAAC,CAAC;EACvBE,aAAa,EAAEX,EAAE,CAACS,EAAE,CAAC,MAAM,OAAO,CAAC;EACnCG,WAAW,EAAEZ,EAAE,CAACS,EAAE,CAAC,MAAM,WAAW,CAAC;EACrCI,UAAU,EAAEb,EAAE,CAACS,EAAE,CAAC,MAAM,YAAY,CAAC;EACrCK,SAAS,EAAEd,EAAE,CAACS,EAAE,CAAC,MAAM,KAAK,CAAC;EAC7BM,kBAAkB,EAAEf,EAAE,CAACS,EAAE,CAAC,MAAM,kBAAkB,CAAC;EACnDO,YAAY,EAAEhB,EAAE,CAACS,EAAE,CAAC,MAAM,YAAY,CAAC;EACvCQ,wBAAwB,EAAEjB,EAAE,CAACS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;EAC3CS,kBAAkB,EAAElB,EAAE,CAACS,EAAE,CAMvB,MAAMR,sBAAsB,CAAC,CAAC,CAAC;EACjCkB,MAAM,EAAEnB,EAAE,CAACS,EAAE,CAAC;AAChB,CAAC,CAAC,CAAC;AAEHT,EAAE,CAACG,IAAI,CAAC,kBAAkB,EAAE,OAAO;EACjCO,cAAc,EAAEJ,KAAK,CAACI;AACxB,CAAC,CAAC,CAAC;AAEHV,EAAE,CAACG,IAAI,CAAC,UAAU,EAAE,OAAO;EACzBK,WAAW,EAAEF,KAAK,CAACE,WAAW;EAC9BG,aAAa,EAAEL,KAAK,CAACK,aAAa;EAClCC,WAAW,EAAEN,KAAK,CAACM,WAAW;EAC9BC,UAAU,EAAEP,KAAK,CAACO,UAAU;EAC5BC,SAAS,EAAER,KAAK,CAACQ,SAAS;EAC1BC,kBAAkB,EAAET,KAAK,CAACS,kBAAkB;EAC5CC,YAAY,EAAEV,KAAK,CAACU,YAAY;EAChCC,wBAAwB,EAAEX,KAAK,CAACW,wBAAwB;EACxDC,kBAAkB,EAAEZ,KAAK,CAACY,kBAAkB;EAC5CC,MAAM,EAAEb,KAAK,CAACa;AAChB,CAAC,CAAC,CAAC;AAEH,MAAMC,YAAY,GAAGA,CAAA,KAAM;EACzB,MAAMC,iBAAiB,GAAGrB,EAAE,CAACS,EAAE,CAAC,CAAC,CAACa,iBAAiB,CAACC,SAAS,CAAC;EAC9D,OAAO;IACLC,MAAM,EAAE;MACNC,aAAa,EAAEzB,EAAE,CAACS,EAAE,CAAC,aAAa;QAChCiB,mBAAmB,EAAE1B,EAAE,CAACS,EAAE,CAAC,CAAC;QAC5BkB,eAAe,EAAE3B,EAAE,CAACS,EAAE,CAAC,CAAC;QACxBY;MACF,CAAC,CAAC;IACJ,CAAC;IACDA;EACF,CAAC;AACH,CAAC;AAEDxB,QAAQ,CAAC,mCAAmC,EAAE,MAAM;EAClDD,UAAU,CAAC,MAAM;IACfI,EAAE,CAAC4B,YAAY,CAAC,CAAC;IACjB5B,EAAE,CAAC6B,gBAAgB,CAAC,CAAC;IACrB7B,EAAE,CAAC8B,aAAa,CAAC,CAAC;IAElB,KAAK,MAAM3B,IAAI,IAAI4B,MAAM,CAACC,MAAM,CAAC1B,KAAK,CAAC,EAAE;MACvCH,IAAI,CAAC8B,SAAS,CAAC,CAAC;IAClB;IAEA3B,KAAK,CAACK,aAAa,CAACuB,eAAe,CAAC,OAAO,CAAC;IAC5C5B,KAAK,CAACE,WAAW,CAAC0B,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3C5B,KAAK,CAACM,WAAW,CAACsB,eAAe,CAAC,WAAW,CAAC;IAC9C5B,KAAK,CAACO,UAAU,CAACqB,eAAe,CAAC,YAAY,CAAC;IAC9C5B,KAAK,CAACQ,SAAS,CAACoB,eAAe,CAAC,KAAK,CAAC;IACtC5B,KAAK,CAACS,kBAAkB,CAACmB,eAAe,CAAC,kBAAkB,CAAC;IAC5D5B,KAAK,CAACU,YAAY,CAACkB,eAAe,CAAC,YAAY,CAAC;IAChD5B,KAAK,CAACW,wBAAwB,CAACiB,eAAe,CAAC,CAAC,CAAC,CAAC;IAClD5B,KAAK,CAACY,kBAAkB,CAACgB,eAAe,CAACjC,sBAAsB,CAAC,CAAC,CAAC;EACpE,CAAC,CAAC;EAEFF,EAAE,CAAC,2FAA2F,EAAE,YAAY;IAC1G,MAAM;MAAEoC,oBAAoB;MAAEC,sBAAsB;MAAEC;IAAe,CAAC,GACpE,MAAM,MAAM,CAAC,0BAA0B,CAAC;IAC1C,MAAM;MAAEb,MAAM;MAAEH;IAAkB,CAAC,GAAGD,YAAY,CAAC,CAAC;IACpD,IAAIkB,aAA0B;IAC9BjB,iBAAiB,CAACkB,sBAAsB,CACtC,MACE,IAAIC,OAAO,CAAQC,OAAO,IAAK;MAC7BH,aAAa,GAAGG,OAAO;IACzB,CAAC,CACL,CAAC;IACD,MAAMC,OAAO,GAAG;MAAElB,MAAM;MAAEmB,QAAQ,EAAE;IAAK,CAAC;IAC1C,MAAMC,OAAO,GAAGT,oBAAoB,CAACO,OAAO,CAAC;IAC7C,MAAM1C,EAAE,CAAC6C,OAAO,CAAC,MAAM/C,MAAM,CAACuB,iBAAiB,CAAC,CAACyB,oBAAoB,CAAC,CAAC,CAAC;IACxE,MAAMC,QAAQ,GAAGX,sBAAsB,CAACM,OAAO,EAAE;MAC/CM,YAAY,EAAE,WAAW;MACzBC,aAAa,EAAE,IAAI;MACnBC,UAAU,EAAE,aAAa;MACzBC,WAAW,EAAE,cAAc;MAC3BC,OAAO,EAAE,YAAY;MACrBC,cAAc,EAAE;IAClB,CAAC,CAAC;IACF,MAAMb,OAAO,CAACC,OAAO,CAAC,CAAC;IACvB3C,MAAM,CAACuB,iBAAiB,CAAC,CAACyB,oBAAoB,CAAC,CAAC;IAChDR,aAAa,CAAC,CAAC;IACf,MAAME,OAAO,CAACc,GAAG,CAAC,CAACV,OAAO,EAAEG,QAAQ,CAAC,CAAC;IACtC,MAAMV,cAAc,CAACK,OAAO,CAAC;IAC7B5C,MAAM,CAACuB,iBAAiB,CAAClB,IAAI,CAACoD,KAAK,CAACC,GAAG,CAAC,CAAC,CAACC,MAAM,CAAC,KAAKA,MAAM,CAACC,IAAI,CAAC,CAAC,CAACC,OAAO,CACzE,CAAC,WAAW,EAAE,mBAAmB,CACnC,CAAC;EACH,CAAC,CAAC;EAEF5D,EAAE,CAAC,8EAA8E,EAAE,YAAY;IAC7F,MAAM;MAAEqC;IAAuB,CAAC,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC;IAC3E,MAAM;MAAEZ,MAAM;MAAEH;IAAkB,CAAC,GAAGD,YAAY,CAAC,CAAC;IACpD,MAAMwC,UAAU,GAAG;MACjBZ,YAAY,EAAE,WAAW;MACzBC,aAAa,EAAE,IAAI;MACnBC,UAAU,EAAE,aAAa;MACzBC,WAAW,EAAE,cAAc;MAC3BC,OAAO,EAAE,YAAY;MACrBC,cAAc,EAAE;IAClB,CAAC;IACD,MAAMjB,sBAAsB,CAAC;MAAEZ,MAAM;MAAEmB,QAAQ,EAAE;IAAK,CAAC,EAAEiB,UAAU,CAAC;IACpE,MAAMxB,sBAAsB,CAAC;MAAEZ,MAAM;MAAEmB,QAAQ,EAAE;IAAK,CAAC,EAAEiB,UAAU,CAAC;IACpE,MAAMxB,sBAAsB,CAC1B;MAAEZ,MAAM;MAAEmB,QAAQ,EAAE;IAAK,CAAC,EAC1B;MACE,GAAGiB,UAAU;MACbV,UAAU,EAAE,cAAc;MAC1BC,WAAW,EAAE;IACf,CACF,CAAC;IACD,MAAMf,sBAAsB,CAAC;MAAEZ,MAAM;MAAEmB,QAAQ,EAAE;IAAK,CAAC,EAAEiB,UAAU,CAAC;IACpE9D,MAAM,CACJuB,iBAAiB,CAAClB,IAAI,CAACoD,KAAK,CAACC,GAAG,CAAC,CAAC,CAACC,MAAM,CAAC,KAAKA,MAAM,CAACP,UAAU,CAClE,CAAC,CAACS,OAAO,CAAC,CAAC,aAAa,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;EAC3D,CAAC,CAAC;EAEF5D,EAAE,CAAC,qEAAqE,EAAE,YAAY;IACpFG,eAAe,CAAC,CAAC;IACjBI,KAAK,CAACW,wBAAwB,CAACiB,eAAe,CAAC;MAC7C2B,MAAM,EAAE,UAAU;MAClBC,QAAQ,EAAE;IACZ,CAAC,CAAC;IACFxD,KAAK,CAACY,kBAAkB,CAACgB,eAAe,CACtCjC,sBAAsB,CACpB;MACE+C,YAAY,EAAE,UAAU;MACxBe,MAAM,EAAE,gBAAgB;MACxBb,UAAU,EAAE;IACd,CAAC,EACD;MACEF,YAAY,EAAE,UAAU;MACxBE,UAAU,EAAE,UAAU;MACtBQ,IAAI,EAAE,gBAAgB;MACtBL,cAAc,EAAE;IAClB,CACF,CACF,CAAC;IAED,MAAM;MAAE7B,MAAM;MAAEH;IAAkB,CAAC,GAAGD,YAAY,CAAC,CAAC;IACpD,MAAM4C,gBAAgB,GAAGhE,EAAE,CAACS,EAAE,CAAC,CAAC;IAChC,MAAM;MAAEwD;IAAK,CAAC,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC;IAEvCA,IAAI,CAAC;MACHtB,QAAQ,EAAE,IAAI;MACdqB,gBAAgB;MAChBE,cAAc,EAAE;QAAEC,aAAa,EAAE;MAAe,CAAC;MACjDC,cAAc,EAAE,IAAI;MACpB5C;IACF,CAAC,CAAC;IACF,MAAMxB,EAAE,CAACqE,yBAAyB,CAAC,CAAC;IAEpCvE,MAAM,CAACuB,iBAAiB,CAAC,CAACiD,oBAAoB,CAAC;MAC7CC,UAAU,EAAE,OAAO;MACnBnB,OAAO,EAAE,YAAY;MACrBoB,MAAM,EAAE,KAAK;MACbC,eAAe,EAAE,kBAAkB;MACnCzB,YAAY,EAAE,UAAU;MACxBC,aAAa,EAAE,IAAI;MACnByB,SAAS,EAAE,YAAY;MACvBC,QAAQ,EAAE,KAAK;MACfT,cAAc,EAAE;QAAEC,aAAa,EAAE;MAAe,CAAC;MACjDC,cAAc,EAAE,IAAI;MACpBlB,UAAU,EAAE,UAAU;MACtBC,WAAW,EAAE,IAAI;MACjBO,IAAI,EAAE,gBAAgB;MACtBL,cAAc,EAAE,aAAa;MAC7BQ,MAAM,EAAE,UAAU;MAClBC,QAAQ,EAAE;IACZ,CAAC,CAAC;IACFhE,MAAM,CAACkE,gBAAgB,CAAC,CAACM,oBAAoB,CAAC;MAC5CtB,YAAY,EAAE,UAAU;MACxBe,MAAM,EAAE,gBAAgB;MACxBb,UAAU,EAAE;IACd,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFnD,EAAE,CAAC,4DAA4D,EAAE,YAAY;IAC3EG,eAAe,CAAC,CAAC;IACjBI,KAAK,CAACY,kBAAkB,CAACgB,eAAe,CACtCjC,sBAAsB,CACpB;MACE+C,YAAY,EAAE,UAAU;MACxBe,MAAM,EAAE,WAAW;MACnBb,UAAU,EAAE;IACd,CAAC,EACD;MACEF,YAAY,EAAE,UAAU;MACxBE,UAAU,EAAE,UAAU;MACtBQ,IAAI,EAAE,WAAW;MACjBL,cAAc,EAAE;IAClB,CACF,CACF,CAAC;IACD,MAAM;MAAE7B,MAAM;MAAEH;IAAkB,CAAC,GAAGD,YAAY,CAAC,CAAC;IACpD,MAAM4C,gBAAgB,GAAGhE,EAAE,CAACS,EAAE,CAAC,CAAC;IAChC,MAAM;MAAEwD;IAAK,CAAC,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC;IAEvCA,IAAI,CAAC;MAAEtB,QAAQ,EAAE,IAAI;MAAEnB,MAAM;MAAEwC;IAAiB,CAAC,CAAC;IAClD,MAAMhE,EAAE,CAACqE,yBAAyB,CAAC,CAAC;IAEpCvE,MAAM,CAACuB,iBAAiB,CAAC,CAACiD,oBAAoB,CAAC;MAC7CC,UAAU,EAAE,OAAO;MACnBnB,OAAO,EAAE,YAAY;MACrBoB,MAAM,EAAE,KAAK;MACbC,eAAe,EAAE,kBAAkB;MACnCzB,YAAY,EAAE,UAAU;MACxBC,aAAa,EAAE,IAAI;MACnByB,SAAS,EAAE,YAAY;MACvBC,QAAQ,EAAE,KAAK;MACfT,cAAc,EAAE3C,SAAS;MACzB6C,cAAc,EAAE7C,SAAS;MACzB2B,UAAU,EAAE,UAAU;MACtBC,WAAW,EAAE,IAAI;MACjBO,IAAI,EAAE,WAAW;MACjBL,cAAc,EAAE;IAClB,CAAC,CAAC;IACFvD,MAAM,CAACkE,gBAAgB,CAAC,CAACM,oBAAoB,CAAC;MAC5CtB,YAAY,EAAE,UAAU;MACxBe,MAAM,EAAE,WAAW;MACnBb,UAAU,EAAE;IACd,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFnD,EAAE,CAAC,mDAAmD,EAAE,YAAY;IAClEG,eAAe,CAAC,CAAC;IACjB,MAAM;MAAEsB,MAAM;MAAEH;IAAkB,CAAC,GAAGD,YAAY,CAAC,CAAC;IACpD,MAAM4C,gBAAgB,GAAGhE,EAAE,CAACS,EAAE,CAAC,CAAC;IAChC,MAAM;MAAEwD;IAAK,CAAC,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC;IAEvCA,IAAI,CAAC;MAAEtB,QAAQ,EAAE,IAAI;MAAEnB,MAAM;MAAEwC;IAAiB,CAAC,CAAC;IAClDC,IAAI,CAAC;MAAEtB,QAAQ,EAAE,IAAI;MAAEnB,MAAM;MAAEwC;IAAiB,CAAC,CAAC;IAClD,MAAMhE,EAAE,CAACqE,yBAAyB,CAAC,CAAC;IAEpCvE,MAAM,CAACuB,iBAAiB,CAAC,CAACuD,qBAAqB,CAAC,CAAC,CAAC;IAClD9E,MAAM,CAACuB,iBAAiB,CAAC,CAACiD,oBAAoB,CAAC;MAC7CC,UAAU,EAAE,OAAO;MACnBnB,OAAO,EAAE,YAAY;MACrBoB,MAAM,EAAE,KAAK;MACbC,eAAe,EAAE,kBAAkB;MACnCzB,YAAY,EAAE,IAAI;MAClBC,aAAa,EAAE,IAAI;MACnByB,SAAS,EAAE,YAAY;MACvBC,QAAQ,EAAE,KAAK;MACfT,cAAc,EAAE3C,SAAS;MACzB6C,cAAc,EAAE7C,SAAS;MACzB2B,UAAU,EAAE,WAAW;MACvBC,WAAW,EAAE,IAAI;MACjBO,IAAI,EAAE,WAAW;MACjBL,cAAc,EAAE;IAClB,CAAC,CAAC;IACFvD,MAAM,CAACkE,gBAAgB,CAAC,CAACY,qBAAqB,CAAC,CAAC,CAAC;IACjD9E,MAAM,CAACkE,gBAAgB,CAAC,CAACa,uBAAuB,CAAC,CAAC,EAAE;MAClDd,MAAM,EAAE;IACV,CAAC,CAAC;IACFjE,MAAM,CAACkE,gBAAgB,CAAC,CAACa,uBAAuB,CAAC,CAAC,EAAE;MAClDd,MAAM,EAAE;IACV,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFhE,EAAE,CAAC,mEAAmE,EAAE,YAAY;IAClFG,eAAe,CAAC,CAAC;IACjB,MAAM;MAAEsB,MAAM;MAAEH;IAAkB,CAAC,GAAGD,YAAY,CAAC,CAAC;IACpD,MAAM4C,gBAAgB,GAAGhE,EAAE,CAACS,EAAE,CAAC,CAAC;IAChC,MAAM;MAAEwD;IAAK,CAAC,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC;IAEvCA,IAAI,CAAC;MAAEtB,QAAQ,EAAE,KAAK;MAAEnB,MAAM;MAAEwC;IAAiB,CAAC,CAAC;IACnD,MAAMhE,EAAE,CAACqE,yBAAyB,CAAC,CAAC;IAEpCvE,MAAM,CAACuB,iBAAiB,CAAC,CAACyD,GAAG,CAACC,gBAAgB,CAAC,CAAC;IAChDjF,MAAM,CAACkE,gBAAgB,CAAC,CAACM,oBAAoB,CAAC;MAAEP,MAAM,EAAE;IAAY,CAAC,CAAC;EACxE,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -3,8 +3,8 @@
3
3
  import { vi } from "vitest";
4
4
  export const createNotifyReadResult = (result = {
5
5
  status: "UNCHANGED"
6
- }, analyticsEvent = null, pending = false) => ({
7
- analyticsEvent,
6
+ }, insightsEvent = null, pending = false) => ({
7
+ insightsEvent,
8
8
  pending,
9
9
  result
10
10
  });
@@ -15,4 +15,4 @@ export const stubNotifyFrame = () => {
15
15
  return 1;
16
16
  }));
17
17
  };
18
- //# sourceMappingURL=notifyAppReadyAnalytics.test-utils.js.map
18
+ //# sourceMappingURL=notifyAppReadyInsights.test-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["vi","createNotifyReadResult","result","status","insightsEvent","pending","stubNotifyFrame","useFakeTimers","stubGlobal","fn","callback","setTimeout"],"sourceRoot":"../../src","sources":["notifyAppReadyInsights.test-utils.ts"],"mappings":";;AAAA,SAASA,EAAE,QAAQ,QAAQ;AAO3B,OAAO,MAAMC,sBAAsB,GAAGA,CACpCC,MAA4B,GAAG;EAAEC,MAAM,EAAE;AAAY,CAAC,EACtDC,aAAiD,GAAG,IAAI,EACxDC,OAAO,GAAG,KAAK,MAKX;EACJD,aAAa;EACbC,OAAO;EACPH;AACF,CAAC,CAAC;AAEF,OAAO,MAAMI,eAAe,GAAGA,CAAA,KAAM;EACnCN,EAAE,CAACO,aAAa,CAAC,CAAC;EAClBP,EAAE,CAACQ,UAAU,CACX,uBAAuB,EACvBR,EAAE,CAACS,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,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { beforeEach, describe, expect, it, vi } from "vitest";
4
- import { createNotifyReadResult, stubNotifyFrame } from "./notifyAppReadyAnalytics.test-utils.js";
4
+ import { createNotifyReadResult, stubNotifyFrame } from "./notifyAppReadyInsights.test-utils.js";
5
5
  vi.mock("react-native", () => ({
6
6
  Platform: {
7
7
  OS: "ios"
@@ -96,7 +96,7 @@ describe("automatic notifyAppReady transport failures", () => {
96
96
  }] = await Promise.all([import("./httpClient"), import("./wrap")]);
97
97
  const client = createHttpClient("https://updates.example.test/hot-updater");
98
98
  init({
99
- analytics: true,
99
+ insights: true,
100
100
  client,
101
101
  onError,
102
102
  onNotifyAppReady
@@ -107,10 +107,10 @@ describe("automatic notifyAppReady transport failures", () => {
107
107
  expect(onNotifyAppReady).toHaveBeenCalledWith({
108
108
  status: "UNCHANGED"
109
109
  });
110
- expect(warn).toHaveBeenCalledWith("[HotUpdater] Automatic notifyAppReady analytics failed:", expect.any(Error));
110
+ expect(warn).toHaveBeenCalledWith("[HotUpdater] Automatic notifyAppReady insights failed:", expect.any(Error));
111
111
  } finally {
112
112
  warn.mockRestore();
113
113
  }
114
114
  });
115
115
  });
116
- //# sourceMappingURL=notifyAppReadyAnalytics.transport.spec.js.map
116
+ //# sourceMappingURL=notifyAppReadyInsights.transport.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["beforeEach","describe","expect","it","vi","createNotifyReadResult","stubNotifyFrame","mock","Platform","OS","failureCases","label","responseStatus","error","Object","assign","Error","name","mocks","hoisted","addListener","fn","checkForUpdate","getAppVersion","getBundleId","getChannel","getCohort","getFingerprintHash","getInstallId","getPersistedUserIdentity","readNotifyAppReady","reload","resetModules","unstubAllGlobals","useRealTimers","values","mockReset","mockReturnValue","each","failureCase","warn","spyOn","console","mockImplementation","onError","onNotifyAppReady","fetchMock","Response","status","stubGlobal","Reflect","set","globalThis","SDK_VERSION","createHttpClient","init","Promise","all","client","insights","runOnlyPendingTimersAsync","toHaveBeenCalledTimes","not","toHaveBeenCalled","toHaveBeenCalledWith","any","mockRestore"],"sourceRoot":"../../src","sources":["notifyAppReadyInsights.transport.spec.ts"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
 
3
- export const HOT_UPDATER_SDK_VERSION = "1.0.0-rc.1";
3
+ export const HOT_UPDATER_SDK_VERSION = "1.0.0-rc.14";
4
4
  //# sourceMappingURL=sdkVersion.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["HOT_UPDATER_SDK_VERSION"],"sourceRoot":"../../src","sources":["sdkVersion.ts"],"mappings":";;AAAA,OAAO,MAAMA,uBAAuB,GAAG,YAAY","ignoreList":[]}
1
+ {"version":3,"names":["HOT_UPDATER_SDK_VERSION"],"sourceRoot":"../../src","sources":["sdkVersion.ts"],"mappings":";;AAAA,OAAO,MAAMA,uBAAuB,GAAG,aAAa","ignoreList":[]}
@@ -3,8 +3,8 @@
3
3
  import React, { useEffect, useState } from "react";
4
4
  import { checkForUpdate } from "./checkForUpdate.js";
5
5
  import { useEventCallback } from "./hooks/useEventCallback.js";
6
- import { getBundleId, reload } from "./native.js";
7
- import { handleNotifyAppReady } from "./notifyAppReadyAnalytics.js";
6
+ import { getUpdateId, reload } from "./native.js";
7
+ import { handleNotifyAppReady, reportNoChange } from "./notifyAppReadyInsights.js";
8
8
  import { useHotUpdaterStore } from "./store.js";
9
9
  import { jsx as _jsx } from "react/jsx-runtime";
10
10
  export function init(options) {
@@ -24,21 +24,27 @@ export function wrap(options) {
24
24
  const initHotUpdater = useEventCallback(async () => {
25
25
  try {
26
26
  setUpdateStatus("CHECK_FOR_UPDATE");
27
+ const readiness = handleNotifyAppReady({
28
+ ...restOptions,
29
+ reportUnchanged: false
30
+ });
27
31
  const updateInfo = await checkForUpdate({
28
- analytics: restOptions.analytics,
32
+ insights: restOptions.insights,
29
33
  client: restOptions.client,
30
34
  updateStrategy: restOptions.updateStrategy,
31
35
  requestHeaders: restOptions.requestHeaders,
32
36
  requestTimeout: restOptions.requestTimeout,
33
37
  onError: restOptions.onError
34
38
  });
39
+ const launch = await readiness;
35
40
  setMessage(updateInfo?.message ?? null);
36
41
  if (!updateInfo) {
42
+ if (launch?.status === "UNCHANGED") void reportNoChange(restOptions);
37
43
  restOptions.onUpdateProcessCompleted?.({
38
44
  status: "UP_TO_DATE",
39
45
  shouldForceUpdate: false,
40
46
  message: null,
41
- id: getBundleId()
47
+ id: getUpdateId()
42
48
  });
43
49
  setUpdateStatus("UPDATE_PROCESS_COMPLETED");
44
50
  return;
@@ -82,11 +88,6 @@ export function wrap(options) {
82
88
  restOptions.onProgress?.(progress);
83
89
  }, [progress]);
84
90
 
85
- // Read the native launch report after the first render commit.
86
- useEffect(() => {
87
- void handleNotifyAppReady(restOptions);
88
- }, []);
89
-
90
91
  // Start update check
91
92
  useEffect(() => {
92
93
  initHotUpdater();
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useState","checkForUpdate","useEventCallback","getBundleId","reload","handleNotifyAppReady","useHotUpdaterStore","jsx","_jsx","init","options","wrap","reloadOnForceUpdate","restOptions","WrappedComponent","HotUpdaterHOC","props","progressState","state","progress","message","setMessage","updateStatus","setUpdateStatus","initHotUpdater","updateInfo","analytics","client","updateStrategy","requestHeaders","requestTimeout","onError","onUpdateProcessCompleted","status","shouldForceUpdate","id","updateBundle","catch","error","isSuccess","Error","normalizedError","String","onProgress","fallbackComponent","Fallback","artifactType","details","downloadedBytes","totalBytes"],"sourceRoot":"../../src","sources":["wrap.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useState","checkForUpdate","useEventCallback","getUpdateId","reload","handleNotifyAppReady","reportNoChange","useHotUpdaterStore","jsx","_jsx","init","options","wrap","reloadOnForceUpdate","restOptions","WrappedComponent","HotUpdaterHOC","props","progressState","state","progress","message","setMessage","updateStatus","setUpdateStatus","initHotUpdater","readiness","reportUnchanged","updateInfo","insights","client","updateStrategy","requestHeaders","requestTimeout","onError","launch","status","onUpdateProcessCompleted","shouldForceUpdate","id","updateBundle","catch","error","isSuccess","Error","normalizedError","String","onProgress","fallbackComponent","Fallback","artifactType","details","downloadedBytes","totalBytes"],"sourceRoot":"../../src","sources":["wrap.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
2
 
3
- import { beforeEach, describe, expect, it, vi } from "vitest";
3
+ // @vitest-environment jsdom
4
+
5
+ import { cleanup, render, waitFor } from "@testing-library/react";
6
+ import { createElement } from "react";
7
+ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
4
8
  vi.mock("react-native", () => ({
5
9
  Platform: {
6
10
  OS: "ios"
@@ -8,8 +12,8 @@ vi.mock("react-native", () => ({
8
12
  }));
9
13
  const createNotifyReadResult = (result = {
10
14
  status: "UNCHANGED"
11
- }, analyticsEvent = null, pending = false) => ({
12
- analyticsEvent,
15
+ }, insightsEvent = null, pending = false) => ({
16
+ insightsEvent,
13
17
  pending,
14
18
  result
15
19
  });
@@ -18,6 +22,7 @@ const mocks = vi.hoisted(() => ({
18
22
  checkForUpdate: vi.fn(),
19
23
  getAppVersion: vi.fn(() => "1.0.0"),
20
24
  getBundleId: vi.fn(() => "bundle-id"),
25
+ getUpdateId: vi.fn(() => "release-id"),
21
26
  getChannel: vi.fn(() => "production"),
22
27
  getCohort: vi.fn(() => "123"),
23
28
  getFingerprintHash: vi.fn(() => "fingerprint-hash"),
@@ -33,6 +38,7 @@ vi.mock("./native", () => ({
33
38
  addListener: mocks.addListener,
34
39
  getAppVersion: mocks.getAppVersion,
35
40
  getBundleId: mocks.getBundleId,
41
+ getUpdateId: mocks.getUpdateId,
36
42
  getChannel: mocks.getChannel,
37
43
  getCohort: mocks.getCohort,
38
44
  getFingerprintHash: mocks.getFingerprintHash,
@@ -41,15 +47,15 @@ vi.mock("./native", () => ({
41
47
  readNotifyAppReady: mocks.readNotifyAppReady,
42
48
  reload: mocks.reload
43
49
  }));
44
- const createClient = (sendAnalyticsEvent = vi.fn().mockResolvedValue(undefined)) => ({
50
+ const createClient = (sendInsightsEvent = vi.fn().mockResolvedValue(undefined)) => ({
45
51
  client: {
46
52
  createSession: vi.fn(async () => ({
47
53
  fetchReleaseCatalog: vi.fn(),
48
54
  resolveArtifact: vi.fn(),
49
- sendAnalyticsEvent
55
+ sendInsightsEvent
50
56
  }))
51
57
  },
52
- sendAnalyticsEvent
58
+ sendInsightsEvent
53
59
  });
54
60
  describe("HotUpdater wrap initialization", () => {
55
61
  beforeEach(() => {
@@ -64,12 +70,73 @@ describe("HotUpdater wrap initialization", () => {
64
70
  mocks.getAppVersion.mockReturnValue("1.0.0");
65
71
  mocks.getPersistedUserIdentity.mockReturnValue({});
66
72
  mocks.getBundleId.mockReturnValue("bundle-id");
73
+ mocks.getUpdateId.mockReturnValue("release-id");
67
74
  mocks.getChannel.mockReturnValue("production");
68
75
  mocks.getCohort.mockReturnValue("123");
69
76
  mocks.getFingerprintHash.mockReturnValue("fingerprint-hash");
70
77
  mocks.getInstallId.mockReturnValue("install-id");
71
78
  mocks.readNotifyAppReady.mockReturnValue(createNotifyReadResult());
72
79
  });
80
+ afterEach(cleanup);
81
+ it("does not report No change while an optional download is in progress", async () => {
82
+ const {
83
+ client,
84
+ sendInsightsEvent
85
+ } = createClient();
86
+ let complete;
87
+ const download = vi.fn(() => new Promise(resolve => {
88
+ complete = resolve;
89
+ }));
90
+ mocks.checkForUpdate.mockResolvedValue({
91
+ id: "next",
92
+ status: "UPDATE",
93
+ shouldForceUpdate: false,
94
+ message: null,
95
+ updateBundle: download
96
+ });
97
+ const {
98
+ wrap
99
+ } = await import("./wrap");
100
+ const onUpdateProcessCompleted = vi.fn();
101
+ const Wrapped = wrap({
102
+ client,
103
+ insights: true,
104
+ updateStrategy: "appVersion",
105
+ onUpdateProcessCompleted
106
+ })(() => null);
107
+ render(/*#__PURE__*/createElement(Wrapped));
108
+ await waitFor(() => expect(download).toHaveBeenCalledOnce());
109
+ expect(onUpdateProcessCompleted).toHaveBeenCalledOnce();
110
+ expect(sendInsightsEvent).not.toHaveBeenCalled();
111
+ complete(true);
112
+ });
113
+ it("reports the console ID when up to date while retaining file IDs in insights", async () => {
114
+ const onUpdateProcessCompleted = vi.fn();
115
+ const {
116
+ client,
117
+ sendInsightsEvent
118
+ } = createClient();
119
+ const {
120
+ wrap
121
+ } = await import("./wrap");
122
+ const WrappedComponent = wrap({
123
+ insights: true,
124
+ client,
125
+ onUpdateProcessCompleted,
126
+ updateStrategy: "appVersion"
127
+ })(() => null);
128
+ render(/*#__PURE__*/createElement(WrappedComponent));
129
+ await waitFor(() => expect(onUpdateProcessCompleted).toHaveBeenCalledWith({
130
+ id: "release-id",
131
+ message: null,
132
+ shouldForceUpdate: false,
133
+ status: "UP_TO_DATE"
134
+ }));
135
+ await waitFor(() => expect(sendInsightsEvent).toHaveBeenCalledWith(expect.objectContaining({
136
+ toBundleId: "bundle-id",
137
+ type: "UNCHANGED"
138
+ })));
139
+ });
73
140
  it("returns void from init and defers notifyAppReady to the next frame", async () => {
74
141
  vi.useFakeTimers();
75
142
  const requestAnimationFrame = vi.fn(callback => {
@@ -79,7 +146,7 @@ describe("HotUpdater wrap initialization", () => {
79
146
  vi.stubGlobal("requestAnimationFrame", requestAnimationFrame);
80
147
  const {
81
148
  client,
82
- sendAnalyticsEvent
149
+ sendInsightsEvent
83
150
  } = createClient();
84
151
  const {
85
152
  init
@@ -93,13 +160,13 @@ describe("HotUpdater wrap initialization", () => {
93
160
  });
94
161
  expect(result).toBeUndefined();
95
162
  expect(mocks.readNotifyAppReady).not.toHaveBeenCalled();
96
- expect(sendAnalyticsEvent).not.toHaveBeenCalled();
163
+ expect(sendInsightsEvent).not.toHaveBeenCalled();
97
164
  expect(requestAnimationFrame).toHaveBeenCalled();
98
165
  await vi.runOnlyPendingTimersAsync();
99
166
  expect(mocks.readNotifyAppReady).toHaveBeenCalledWith();
100
- expect(sendAnalyticsEvent).not.toHaveBeenCalled();
167
+ expect(sendInsightsEvent).not.toHaveBeenCalled();
101
168
  });
102
- it("waits for native launch verification before sending analytics", async () => {
169
+ it("waits for native launch verification before sending insights", async () => {
103
170
  vi.useFakeTimers();
104
171
  vi.stubGlobal("requestAnimationFrame", vi.fn(callback => {
105
172
  setTimeout(() => callback(0), 0);
@@ -117,20 +184,20 @@ describe("HotUpdater wrap initialization", () => {
117
184
  }));
118
185
  const {
119
186
  client,
120
- sendAnalyticsEvent
187
+ sendInsightsEvent
121
188
  } = createClient();
122
189
  const {
123
190
  init
124
191
  } = await import("./wrap");
125
192
  init({
126
- analytics: true,
193
+ insights: true,
127
194
  client
128
195
  });
129
196
  await vi.runAllTimersAsync();
130
197
  expect(mocks.readNotifyAppReady).toHaveBeenCalledTimes(2);
131
- expect(sendAnalyticsEvent).toHaveBeenCalledTimes(1);
198
+ expect(sendInsightsEvent).toHaveBeenCalledTimes(1);
132
199
  });
133
- it("sends automatic analytics only from init when enabled", async () => {
200
+ it("sends automatic insights only from init when enabled", async () => {
134
201
  vi.useFakeTimers();
135
202
  vi.stubGlobal("requestAnimationFrame", vi.fn(callback => {
136
203
  setTimeout(() => callback(0), 0);
@@ -152,13 +219,13 @@ describe("HotUpdater wrap initialization", () => {
152
219
  });
153
220
  const {
154
221
  client,
155
- sendAnalyticsEvent
222
+ sendInsightsEvent
156
223
  } = createClient();
157
224
  const {
158
225
  init
159
226
  } = await import("./wrap");
160
227
  init({
161
- analytics: true,
228
+ insights: true,
162
229
  requestHeaders: {
163
230
  Authorization: "Bearer token"
164
231
  },
@@ -166,7 +233,7 @@ describe("HotUpdater wrap initialization", () => {
166
233
  client
167
234
  });
168
235
  await vi.runOnlyPendingTimersAsync();
169
- expect(sendAnalyticsEvent).toHaveBeenCalledWith({
236
+ expect(sendInsightsEvent).toHaveBeenCalledWith({
170
237
  appVersion: "1.0.0",
171
238
  channel: "production",
172
239
  cohort: "123",
@@ -187,7 +254,7 @@ describe("HotUpdater wrap initialization", () => {
187
254
  username: "alice"
188
255
  });
189
256
  });
190
- it("guards automatic analytics to a single delivery attempt per runtime", async () => {
257
+ it("guards automatic insights to a single delivery attempt per runtime", async () => {
191
258
  vi.useFakeTimers();
192
259
  vi.stubGlobal("requestAnimationFrame", vi.fn(callback => {
193
260
  setTimeout(() => callback(0), 0);
@@ -205,23 +272,23 @@ describe("HotUpdater wrap initialization", () => {
205
272
  }));
206
273
  const {
207
274
  client,
208
- sendAnalyticsEvent
275
+ sendInsightsEvent
209
276
  } = createClient();
210
277
  const {
211
278
  init
212
279
  } = await import("./wrap");
213
280
  init({
214
- analytics: true,
281
+ insights: true,
215
282
  client
216
283
  });
217
284
  init({
218
- analytics: true,
285
+ insights: true,
219
286
  client
220
287
  });
221
288
  await vi.runOnlyPendingTimersAsync();
222
- expect(sendAnalyticsEvent).toHaveBeenCalledTimes(1);
289
+ expect(sendInsightsEvent).toHaveBeenCalledTimes(1);
223
290
  });
224
- it("warns without interrupting app readiness when analytics transport fails", async () => {
291
+ it("warns without interrupting app readiness when insights transport fails", async () => {
225
292
  vi.useFakeTimers();
226
293
  const warn = vi.spyOn(console, "warn").mockImplementation(() => {});
227
294
  const error = new Error("Expected HTTP 204 from /events, received 404");
@@ -248,14 +315,14 @@ describe("HotUpdater wrap initialization", () => {
248
315
  init
249
316
  } = await import("./wrap");
250
317
  init({
251
- analytics: true,
318
+ insights: true,
252
319
  onError,
253
320
  onNotifyAppReady,
254
321
  client
255
322
  });
256
323
  await vi.runOnlyPendingTimersAsync();
257
324
  expect(onError).not.toHaveBeenCalled();
258
- expect(warn).toHaveBeenCalledWith("[HotUpdater] Automatic notifyAppReady analytics failed:", error);
325
+ expect(warn).toHaveBeenCalledWith("[HotUpdater] Automatic notifyAppReady insights failed:", error);
259
326
  expect(onNotifyAppReady).toHaveBeenCalledWith({
260
327
  fromBundleId: "bundle-a",
261
328
  status: "UPDATE_APPLIED",