@hot-updater/react-native 0.28.0 → 0.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/src/main/java/com/hotupdater/BundleFileStorageService.kt +156 -7
- package/android/src/main/java/com/hotupdater/CohortService.kt +73 -0
- package/android/src/main/java/com/hotupdater/DecompressService.kt +28 -22
- package/android/src/main/java/com/hotupdater/HotUpdaterException.kt +1 -1
- package/android/src/main/java/com/hotupdater/HotUpdaterImpl.kt +12 -0
- package/android/src/main/java/com/hotupdater/ReactNativeValueConverters.kt +55 -0
- package/android/src/main/java/com/hotupdater/TarBrDecompressionStrategy.kt +19 -7
- package/android/src/newarch/HotUpdaterModule.kt +16 -19
- package/android/src/oldarch/HotUpdaterModule.kt +20 -20
- package/android/src/oldarch/HotUpdaterSpec.kt +12 -2
- package/ios/HotUpdater/Internal/BundleFileStorageService.swift +153 -31
- package/ios/HotUpdater/Internal/CohortService.swift +63 -0
- package/ios/HotUpdater/Internal/DecompressService.swift +53 -30
- package/ios/HotUpdater/Internal/HotUpdater.mm +111 -59
- package/ios/HotUpdater/Internal/HotUpdaterImpl.swift +28 -0
- package/ios/HotUpdater/Internal/TarBrDecompressionStrategy.swift +24 -8
- package/lib/commonjs/DefaultResolver.js +3 -5
- package/lib/commonjs/DefaultResolver.js.map +1 -1
- package/lib/commonjs/checkForUpdate.js +2 -0
- package/lib/commonjs/checkForUpdate.js.map +1 -1
- package/lib/commonjs/index.js +13 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/native.js +193 -18
- package/lib/commonjs/native.js.map +1 -1
- package/lib/commonjs/native.spec.js +361 -4
- package/lib/commonjs/native.spec.js.map +1 -1
- package/lib/commonjs/specs/NativeHotUpdater.js.map +1 -1
- package/lib/commonjs/types.js.map +1 -1
- package/lib/module/DefaultResolver.js +3 -5
- package/lib/module/DefaultResolver.js.map +1 -1
- package/lib/module/checkForUpdate.js +3 -1
- package/lib/module/checkForUpdate.js.map +1 -1
- package/lib/module/index.js +14 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/native.js +187 -14
- package/lib/module/native.js.map +1 -1
- package/lib/module/native.spec.js +361 -4
- package/lib/module/native.spec.js.map +1 -1
- package/lib/module/specs/NativeHotUpdater.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/typescript/commonjs/checkForUpdate.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +14 -1
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/native.d.ts +39 -8
- package/lib/typescript/commonjs/native.d.ts.map +1 -1
- package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts +28 -0
- package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts.map +1 -1
- package/lib/typescript/commonjs/types.d.ts +4 -0
- package/lib/typescript/commonjs/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/wrap.d.ts +1 -1
- package/lib/typescript/module/checkForUpdate.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +14 -1
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/native.d.ts +39 -8
- package/lib/typescript/module/native.d.ts.map +1 -1
- package/lib/typescript/module/specs/NativeHotUpdater.d.ts +28 -0
- package/lib/typescript/module/specs/NativeHotUpdater.d.ts.map +1 -1
- package/lib/typescript/module/types.d.ts +4 -0
- package/lib/typescript/module/types.d.ts.map +1 -1
- package/lib/typescript/module/wrap.d.ts +1 -1
- package/package.json +6 -6
- package/src/DefaultResolver.ts +4 -4
- package/src/checkForUpdate.ts +4 -0
- package/src/index.ts +21 -0
- package/src/native.spec.ts +400 -4
- package/src/native.ts +265 -20
- package/src/specs/NativeHotUpdater.ts +32 -0
- package/src/types.ts +5 -0
- package/src/wrap.tsx +1 -1
- package/lib/typescript/commonjs/native.spec.d.ts +0 -2
- package/lib/typescript/commonjs/native.spec.d.ts.map +0 -1
- package/lib/typescript/module/native.spec.d.ts +0 -2
- package/lib/typescript/module/native.spec.d.ts.map +0 -1
|
@@ -1,22 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _core = require("@hot-updater/core");
|
|
3
4
|
var _vitest = require("vitest");
|
|
4
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); }
|
|
5
6
|
const nativeModuleMock = _vitest.vi.hoisted(() => {
|
|
6
|
-
_vitest.vi.
|
|
7
|
+
const getManifest = _vitest.vi.fn();
|
|
8
|
+
const getCrashHistory = _vitest.vi.fn(() => []);
|
|
7
9
|
return {
|
|
8
10
|
clearCrashHistory: _vitest.vi.fn(() => true),
|
|
9
11
|
getBaseURL: _vitest.vi.fn(() => null),
|
|
12
|
+
getBundleId: _vitest.vi.fn(() => "bundle-id"),
|
|
13
|
+
getCohort: _vitest.vi.fn(() => "123"),
|
|
14
|
+
getManifest,
|
|
15
|
+
getCrashHistory,
|
|
10
16
|
getConstants: _vitest.vi.fn(() => ({
|
|
11
17
|
APP_VERSION: null,
|
|
12
18
|
CHANNEL: "production",
|
|
13
19
|
DEFAULT_CHANNEL: "production",
|
|
14
|
-
FINGERPRINT_HASH: null
|
|
20
|
+
FINGERPRINT_HASH: null,
|
|
21
|
+
MIN_BUNDLE_ID: "min-bundle-id"
|
|
15
22
|
})),
|
|
16
|
-
getCrashHistory: _vitest.vi.fn(() => []),
|
|
17
23
|
notifyAppReady: _vitest.vi.fn(),
|
|
18
24
|
reload: _vitest.vi.fn(),
|
|
19
25
|
resetChannel: _vitest.vi.fn(),
|
|
26
|
+
setCohort: _vitest.vi.fn(),
|
|
20
27
|
setBundleURL: _vitest.vi.fn(),
|
|
21
28
|
switchChannel: _vitest.vi.fn(),
|
|
22
29
|
updateBundle: _vitest.vi.fn()
|
|
@@ -41,12 +48,33 @@ _vitest.vi.mock("./specs/NativeHotUpdater", () => ({
|
|
|
41
48
|
(0, _vitest.beforeEach)(() => {
|
|
42
49
|
_vitest.vi.resetModules();
|
|
43
50
|
nativeModuleMock.notifyAppReady.mockReset();
|
|
51
|
+
nativeModuleMock.getBaseURL.mockReset();
|
|
52
|
+
nativeModuleMock.getBundleId.mockReset();
|
|
53
|
+
nativeModuleMock.getCrashHistory.mockReset();
|
|
44
54
|
nativeModuleMock.getConstants.mockReturnValue({
|
|
45
55
|
APP_VERSION: null,
|
|
46
56
|
CHANNEL: "production",
|
|
47
57
|
DEFAULT_CHANNEL: "production",
|
|
48
|
-
FINGERPRINT_HASH: null
|
|
58
|
+
FINGERPRINT_HASH: null,
|
|
59
|
+
MIN_BUNDLE_ID: "min-bundle-id"
|
|
49
60
|
});
|
|
61
|
+
nativeModuleMock.getBundleId.mockReturnValue("bundle-id");
|
|
62
|
+
nativeModuleMock.getBaseURL.mockReturnValue(null);
|
|
63
|
+
nativeModuleMock.getCrashHistory.mockReturnValue([]);
|
|
64
|
+
nativeModuleMock.getCohort.mockReset();
|
|
65
|
+
nativeModuleMock.getCohort.mockReturnValue("123");
|
|
66
|
+
nativeModuleMock.getManifest.mockReset();
|
|
67
|
+
nativeModuleMock.getManifest.mockReturnValue({
|
|
68
|
+
assets: {
|
|
69
|
+
"index.android.bundle": {
|
|
70
|
+
fileHash: "hash-123"
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
bundleId: "bundle-id"
|
|
74
|
+
});
|
|
75
|
+
nativeModuleMock.resetChannel.mockReset();
|
|
76
|
+
nativeModuleMock.setCohort.mockReset();
|
|
77
|
+
nativeModuleMock.updateBundle.mockReset();
|
|
50
78
|
});
|
|
51
79
|
(0, _vitest.it)("normalizes legacy PROMOTED launch reports to STABLE", async () => {
|
|
52
80
|
nativeModuleMock.notifyAppReady.mockReturnValue(JSON.stringify({
|
|
@@ -82,5 +110,334 @@ _vitest.vi.mock("./specs/NativeHotUpdater", () => ({
|
|
|
82
110
|
status: "STABLE"
|
|
83
111
|
});
|
|
84
112
|
});
|
|
113
|
+
(0, _vitest.it)("returns the native bundle id when available", async () => {
|
|
114
|
+
nativeModuleMock.getBundleId.mockReturnValue("bundle-123");
|
|
115
|
+
const {
|
|
116
|
+
getBundleId
|
|
117
|
+
} = await Promise.resolve().then(() => _interopRequireWildcard(require("./native")));
|
|
118
|
+
(0, _vitest.expect)(getBundleId()).toBe("bundle-123");
|
|
119
|
+
});
|
|
120
|
+
(0, _vitest.it)("throws when native SDK does not expose getBundleId", async () => {
|
|
121
|
+
const nativeModule = nativeModuleMock;
|
|
122
|
+
const originalGetBundleId = nativeModule.getBundleId;
|
|
123
|
+
nativeModule.getBundleId = null;
|
|
124
|
+
try {
|
|
125
|
+
const {
|
|
126
|
+
getBundleId
|
|
127
|
+
} = await Promise.resolve().then(() => _interopRequireWildcard(require("./native")));
|
|
128
|
+
(0, _vitest.expect)(() => getBundleId()).toThrow("Native module is missing 'getBundleId()'");
|
|
129
|
+
} finally {
|
|
130
|
+
nativeModule.getBundleId = originalGetBundleId;
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
(0, _vitest.it)("falls back to MIN_BUNDLE_ID when native reports an empty bundle id", async () => {
|
|
134
|
+
nativeModuleMock.getBundleId.mockReturnValue("");
|
|
135
|
+
const {
|
|
136
|
+
getBundleId
|
|
137
|
+
} = await Promise.resolve().then(() => _interopRequireWildcard(require("./native")));
|
|
138
|
+
(0, _vitest.expect)(getBundleId()).toBe("min-bundle-id");
|
|
139
|
+
});
|
|
140
|
+
(0, _vitest.it)("falls back to MIN_BUNDLE_ID when native bundle id is null", async () => {
|
|
141
|
+
nativeModuleMock.getBundleId.mockReturnValue(null);
|
|
142
|
+
const {
|
|
143
|
+
getBundleId
|
|
144
|
+
} = await Promise.resolve().then(() => _interopRequireWildcard(require("./native")));
|
|
145
|
+
(0, _vitest.expect)(getBundleId()).toBe("min-bundle-id");
|
|
146
|
+
});
|
|
147
|
+
(0, _vitest.it)("falls back to MIN_BUNDLE_ID for legacy NIL_UUID bundle ids", async () => {
|
|
148
|
+
nativeModuleMock.getBundleId.mockReturnValue("00000000-0000-0000-0000-000000000000");
|
|
149
|
+
const {
|
|
150
|
+
getBundleId
|
|
151
|
+
} = await Promise.resolve().then(() => _interopRequireWildcard(require("./native")));
|
|
152
|
+
(0, _vitest.expect)(getBundleId()).toBe("min-bundle-id");
|
|
153
|
+
});
|
|
154
|
+
(0, _vitest.it)("returns manifest from native objects", async () => {
|
|
155
|
+
nativeModuleMock.getManifest.mockReturnValue({
|
|
156
|
+
assets: {
|
|
157
|
+
"assets/logo.png": {
|
|
158
|
+
fileHash: "hash-logo"
|
|
159
|
+
},
|
|
160
|
+
"index.android.bundle": {
|
|
161
|
+
fileHash: "hash-bundle"
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
bundleId: "bundle-123"
|
|
165
|
+
});
|
|
166
|
+
const {
|
|
167
|
+
getManifest
|
|
168
|
+
} = await Promise.resolve().then(() => _interopRequireWildcard(require("./native")));
|
|
169
|
+
(0, _vitest.expect)(getManifest()).toEqual({
|
|
170
|
+
assets: {
|
|
171
|
+
"assets/logo.png": {
|
|
172
|
+
fileHash: "hash-logo"
|
|
173
|
+
},
|
|
174
|
+
"index.android.bundle": {
|
|
175
|
+
fileHash: "hash-bundle"
|
|
176
|
+
}
|
|
177
|
+
},
|
|
178
|
+
bundleId: "bundle-123"
|
|
179
|
+
});
|
|
180
|
+
});
|
|
181
|
+
(0, _vitest.it)("normalizes legacy manifest asset entries from native objects", async () => {
|
|
182
|
+
nativeModuleMock.getManifest.mockReturnValue({
|
|
183
|
+
assets: {
|
|
184
|
+
"assets/logo.png": "hash-logo"
|
|
185
|
+
},
|
|
186
|
+
bundleId: "bundle-123"
|
|
187
|
+
});
|
|
188
|
+
const {
|
|
189
|
+
getManifest
|
|
190
|
+
} = await Promise.resolve().then(() => _interopRequireWildcard(require("./native")));
|
|
191
|
+
(0, _vitest.expect)(getManifest()).toEqual({
|
|
192
|
+
assets: {
|
|
193
|
+
"assets/logo.png": {
|
|
194
|
+
fileHash: "hash-logo"
|
|
195
|
+
}
|
|
196
|
+
},
|
|
197
|
+
bundleId: "bundle-123"
|
|
198
|
+
});
|
|
199
|
+
});
|
|
200
|
+
(0, _vitest.it)("parses manifest from old-arch JSON payloads", async () => {
|
|
201
|
+
nativeModuleMock.getManifest.mockReturnValue(JSON.stringify({
|
|
202
|
+
assets: {
|
|
203
|
+
"assets/logo.png": {
|
|
204
|
+
fileHash: "hash-logo"
|
|
205
|
+
}
|
|
206
|
+
},
|
|
207
|
+
bundleId: "bundle-123"
|
|
208
|
+
}));
|
|
209
|
+
const {
|
|
210
|
+
getManifest
|
|
211
|
+
} = await Promise.resolve().then(() => _interopRequireWildcard(require("./native")));
|
|
212
|
+
(0, _vitest.expect)(getManifest()).toEqual({
|
|
213
|
+
assets: {
|
|
214
|
+
"assets/logo.png": {
|
|
215
|
+
fileHash: "hash-logo"
|
|
216
|
+
}
|
|
217
|
+
},
|
|
218
|
+
bundleId: "bundle-123"
|
|
219
|
+
});
|
|
220
|
+
});
|
|
221
|
+
(0, _vitest.it)("normalizes legacy manifest asset entries from old-arch JSON payloads", async () => {
|
|
222
|
+
nativeModuleMock.getManifest.mockReturnValue(JSON.stringify({
|
|
223
|
+
assets: {
|
|
224
|
+
"assets/logo.png": "hash-logo"
|
|
225
|
+
},
|
|
226
|
+
bundleId: "bundle-123"
|
|
227
|
+
}));
|
|
228
|
+
const {
|
|
229
|
+
getManifest
|
|
230
|
+
} = await Promise.resolve().then(() => _interopRequireWildcard(require("./native")));
|
|
231
|
+
(0, _vitest.expect)(getManifest()).toEqual({
|
|
232
|
+
assets: {
|
|
233
|
+
"assets/logo.png": {
|
|
234
|
+
fileHash: "hash-logo"
|
|
235
|
+
}
|
|
236
|
+
},
|
|
237
|
+
bundleId: "bundle-123"
|
|
238
|
+
});
|
|
239
|
+
});
|
|
240
|
+
(0, _vitest.it)("returns an empty-assets manifest for malformed payloads", async () => {
|
|
241
|
+
nativeModuleMock.getManifest.mockReturnValue("{");
|
|
242
|
+
const {
|
|
243
|
+
getManifest
|
|
244
|
+
} = await Promise.resolve().then(() => _interopRequireWildcard(require("./native")));
|
|
245
|
+
(0, _vitest.expect)(getManifest()).toEqual({
|
|
246
|
+
assets: {},
|
|
247
|
+
bundleId: "bundle-id"
|
|
248
|
+
});
|
|
249
|
+
});
|
|
250
|
+
(0, _vitest.it)("caches active bundle getters within a JS runtime", async () => {
|
|
251
|
+
nativeModuleMock.getBundleId.mockReturnValue("bundle-123");
|
|
252
|
+
nativeModuleMock.getManifest.mockReturnValue({
|
|
253
|
+
assets: {
|
|
254
|
+
"assets/logo.png": {
|
|
255
|
+
fileHash: "hash-logo"
|
|
256
|
+
}
|
|
257
|
+
},
|
|
258
|
+
bundleId: "bundle-123"
|
|
259
|
+
});
|
|
260
|
+
nativeModuleMock.getBaseURL.mockReturnValue("file:///bundle-123");
|
|
261
|
+
const {
|
|
262
|
+
getBaseURL,
|
|
263
|
+
getBundleId,
|
|
264
|
+
getManifest
|
|
265
|
+
} = await Promise.resolve().then(() => _interopRequireWildcard(require("./native")));
|
|
266
|
+
(0, _vitest.expect)(getBundleId()).toBe("bundle-123");
|
|
267
|
+
(0, _vitest.expect)(getBundleId()).toBe("bundle-123");
|
|
268
|
+
(0, _vitest.expect)(nativeModuleMock.getBundleId).toHaveBeenCalledTimes(1);
|
|
269
|
+
const firstManifest = getManifest();
|
|
270
|
+
firstManifest.assets["assets/logo.png"] = {
|
|
271
|
+
fileHash: "mutated-hash"
|
|
272
|
+
};
|
|
273
|
+
(0, _vitest.expect)(getManifest()).toEqual({
|
|
274
|
+
assets: {
|
|
275
|
+
"assets/logo.png": {
|
|
276
|
+
fileHash: "hash-logo"
|
|
277
|
+
}
|
|
278
|
+
},
|
|
279
|
+
bundleId: "bundle-123"
|
|
280
|
+
});
|
|
281
|
+
(0, _vitest.expect)(nativeModuleMock.getManifest).toHaveBeenCalledTimes(1);
|
|
282
|
+
(0, _vitest.expect)(getBaseURL()).toBe("file:///bundle-123");
|
|
283
|
+
(0, _vitest.expect)(getBaseURL()).toBe("file:///bundle-123");
|
|
284
|
+
(0, _vitest.expect)(nativeModuleMock.getBaseURL).toHaveBeenCalledTimes(1);
|
|
285
|
+
});
|
|
286
|
+
(0, _vitest.it)("invalidates cached bundle getters after updateBundle succeeds", async () => {
|
|
287
|
+
nativeModuleMock.getBundleId.mockReturnValue("bundle-123");
|
|
288
|
+
nativeModuleMock.getManifest.mockReturnValue({
|
|
289
|
+
assets: {},
|
|
290
|
+
bundleId: "bundle-123"
|
|
291
|
+
});
|
|
292
|
+
nativeModuleMock.getBaseURL.mockReturnValue("file:///bundle-123");
|
|
293
|
+
nativeModuleMock.updateBundle.mockResolvedValue(true);
|
|
294
|
+
const {
|
|
295
|
+
getBaseURL,
|
|
296
|
+
getBundleId,
|
|
297
|
+
getManifest,
|
|
298
|
+
updateBundle
|
|
299
|
+
} = await Promise.resolve().then(() => _interopRequireWildcard(require("./native")));
|
|
300
|
+
(0, _vitest.expect)(getBundleId()).toBe("bundle-123");
|
|
301
|
+
(0, _vitest.expect)(getManifest()).toEqual({
|
|
302
|
+
assets: {},
|
|
303
|
+
bundleId: "bundle-123"
|
|
304
|
+
});
|
|
305
|
+
(0, _vitest.expect)(getBaseURL()).toBe("file:///bundle-123");
|
|
306
|
+
nativeModuleMock.getBundleId.mockReturnValue("bundle-456");
|
|
307
|
+
nativeModuleMock.getManifest.mockReturnValue({
|
|
308
|
+
assets: {},
|
|
309
|
+
bundleId: "bundle-456"
|
|
310
|
+
});
|
|
311
|
+
nativeModuleMock.getBaseURL.mockReturnValue("file:///bundle-456");
|
|
312
|
+
await updateBundle({
|
|
313
|
+
bundleId: "bundle-456",
|
|
314
|
+
fileHash: null,
|
|
315
|
+
fileUrl: "https://example.com/bundle.zip",
|
|
316
|
+
status: "UPDATE"
|
|
317
|
+
});
|
|
318
|
+
(0, _vitest.expect)(getBundleId()).toBe("bundle-456");
|
|
319
|
+
(0, _vitest.expect)(getManifest()).toEqual({
|
|
320
|
+
assets: {},
|
|
321
|
+
bundleId: "bundle-456"
|
|
322
|
+
});
|
|
323
|
+
(0, _vitest.expect)(getBaseURL()).toBe("file:///bundle-456");
|
|
324
|
+
(0, _vitest.expect)(nativeModuleMock.getBundleId).toHaveBeenCalledTimes(2);
|
|
325
|
+
(0, _vitest.expect)(nativeModuleMock.getManifest).toHaveBeenCalledTimes(2);
|
|
326
|
+
(0, _vitest.expect)(nativeModuleMock.getBaseURL).toHaveBeenCalledTimes(2);
|
|
327
|
+
});
|
|
328
|
+
(0, _vitest.it)("invalidates cached bundle getters after resetChannel succeeds", async () => {
|
|
329
|
+
nativeModuleMock.getConstants.mockReturnValue({
|
|
330
|
+
APP_VERSION: null,
|
|
331
|
+
CHANNEL: "beta",
|
|
332
|
+
DEFAULT_CHANNEL: "production",
|
|
333
|
+
FINGERPRINT_HASH: null,
|
|
334
|
+
MIN_BUNDLE_ID: "min-bundle-id"
|
|
335
|
+
});
|
|
336
|
+
nativeModuleMock.getBundleId.mockReturnValue("bundle-beta");
|
|
337
|
+
nativeModuleMock.getManifest.mockReturnValue({
|
|
338
|
+
assets: {},
|
|
339
|
+
bundleId: "bundle-beta"
|
|
340
|
+
});
|
|
341
|
+
nativeModuleMock.getBaseURL.mockReturnValue("file:///bundle-beta");
|
|
342
|
+
nativeModuleMock.resetChannel.mockResolvedValue(true);
|
|
343
|
+
const {
|
|
344
|
+
getBaseURL,
|
|
345
|
+
getBundleId,
|
|
346
|
+
getManifest,
|
|
347
|
+
resetChannel
|
|
348
|
+
} = await Promise.resolve().then(() => _interopRequireWildcard(require("./native")));
|
|
349
|
+
(0, _vitest.expect)(getBundleId()).toBe("bundle-beta");
|
|
350
|
+
(0, _vitest.expect)(getManifest()).toEqual({
|
|
351
|
+
assets: {},
|
|
352
|
+
bundleId: "bundle-beta"
|
|
353
|
+
});
|
|
354
|
+
(0, _vitest.expect)(getBaseURL()).toBe("file:///bundle-beta");
|
|
355
|
+
nativeModuleMock.getBundleId.mockReturnValue(null);
|
|
356
|
+
nativeModuleMock.getManifest.mockReturnValue({});
|
|
357
|
+
nativeModuleMock.getBaseURL.mockReturnValue("");
|
|
358
|
+
await (0, _vitest.expect)(resetChannel()).resolves.toBe(true);
|
|
359
|
+
(0, _vitest.expect)(getBundleId()).toBe("min-bundle-id");
|
|
360
|
+
(0, _vitest.expect)(getManifest()).toEqual({
|
|
361
|
+
assets: {},
|
|
362
|
+
bundleId: "min-bundle-id"
|
|
363
|
+
});
|
|
364
|
+
(0, _vitest.expect)(getBaseURL()).toBeNull();
|
|
365
|
+
(0, _vitest.expect)(nativeModuleMock.getBundleId).toHaveBeenCalledTimes(2);
|
|
366
|
+
(0, _vitest.expect)(nativeModuleMock.getManifest).toHaveBeenCalledTimes(2);
|
|
367
|
+
(0, _vitest.expect)(nativeModuleMock.getBaseURL).toHaveBeenCalledTimes(2);
|
|
368
|
+
});
|
|
369
|
+
(0, _vitest.it)("parses crash history from legacy JSON payloads", async () => {
|
|
370
|
+
nativeModuleMock.getCrashHistory.mockReturnValue(JSON.stringify(["bundle-1", "bundle-2"]));
|
|
371
|
+
const {
|
|
372
|
+
getCrashHistory
|
|
373
|
+
} = await Promise.resolve().then(() => _interopRequireWildcard(require("./native")));
|
|
374
|
+
(0, _vitest.expect)(getCrashHistory()).toEqual(["bundle-1", "bundle-2"]);
|
|
375
|
+
});
|
|
376
|
+
(0, _vitest.it)("falls back to an empty crash history for malformed payloads", async () => {
|
|
377
|
+
nativeModuleMock.getCrashHistory.mockReturnValue("{");
|
|
378
|
+
const {
|
|
379
|
+
getCrashHistory
|
|
380
|
+
} = await Promise.resolve().then(() => _interopRequireWildcard(require("./native")));
|
|
381
|
+
(0, _vitest.expect)(getCrashHistory()).toEqual([]);
|
|
382
|
+
});
|
|
383
|
+
(0, _vitest.it)("passes normalized cohort overrides to native", async () => {
|
|
384
|
+
const {
|
|
385
|
+
setCohort
|
|
386
|
+
} = await Promise.resolve().then(() => _interopRequireWildcard(require("./native")));
|
|
387
|
+
setCohort(" QA-Group ");
|
|
388
|
+
(0, _vitest.expect)(nativeModuleMock.setCohort).toHaveBeenCalledWith("qa-group");
|
|
389
|
+
});
|
|
390
|
+
(0, _vitest.it)("returns the most recently set cohort before native reads catch up", async () => {
|
|
391
|
+
nativeModuleMock.getCohort.mockReturnValue("123");
|
|
392
|
+
const {
|
|
393
|
+
getCohort,
|
|
394
|
+
setCohort
|
|
395
|
+
} = await Promise.resolve().then(() => _interopRequireWildcard(require("./native")));
|
|
396
|
+
setCohort(" QA-Group ");
|
|
397
|
+
(0, _vitest.expect)(getCohort()).toBe("qa-group");
|
|
398
|
+
(0, _vitest.expect)(nativeModuleMock.getCohort).not.toHaveBeenCalled();
|
|
399
|
+
});
|
|
400
|
+
(0, _vitest.it)("throws when attempting to clear the cohort with an empty value", async () => {
|
|
401
|
+
const {
|
|
402
|
+
setCohort
|
|
403
|
+
} = await Promise.resolve().then(() => _interopRequireWildcard(require("./native")));
|
|
404
|
+
(0, _vitest.expect)(() => setCohort("")).toThrow(_core.INVALID_COHORT_ERROR_MESSAGE);
|
|
405
|
+
(0, _vitest.expect)(nativeModuleMock.setCohort).not.toHaveBeenCalled();
|
|
406
|
+
});
|
|
407
|
+
(0, _vitest.it)("throws for invalid cohort overrides", async () => {
|
|
408
|
+
const {
|
|
409
|
+
setCohort
|
|
410
|
+
} = await Promise.resolve().then(() => _interopRequireWildcard(require("./native")));
|
|
411
|
+
(0, _vitest.expect)(() => setCohort("Bad Cohort")).toThrow(_core.INVALID_COHORT_ERROR_MESSAGE);
|
|
412
|
+
(0, _vitest.expect)(nativeModuleMock.setCohort).not.toHaveBeenCalled();
|
|
413
|
+
});
|
|
414
|
+
(0, _vitest.it)("throws for cohort overrides longer than the limit", async () => {
|
|
415
|
+
const {
|
|
416
|
+
setCohort
|
|
417
|
+
} = await Promise.resolve().then(() => _interopRequireWildcard(require("./native")));
|
|
418
|
+
(0, _vitest.expect)(() => setCohort("a".repeat(65))).toThrow(_core.INVALID_COHORT_ERROR_MESSAGE);
|
|
419
|
+
(0, _vitest.expect)(nativeModuleMock.setCohort).not.toHaveBeenCalled();
|
|
420
|
+
});
|
|
421
|
+
(0, _vitest.it)("returns the cohort reported by native", async () => {
|
|
422
|
+
nativeModuleMock.getCohort.mockReturnValue("qa-group");
|
|
423
|
+
const {
|
|
424
|
+
getCohort
|
|
425
|
+
} = await Promise.resolve().then(() => _interopRequireWildcard(require("./native")));
|
|
426
|
+
(0, _vitest.expect)(getCohort()).toBe("qa-group");
|
|
427
|
+
});
|
|
428
|
+
(0, _vitest.it)("normalizes the cohort reported by native", async () => {
|
|
429
|
+
nativeModuleMock.getCohort.mockReturnValue(" QA-GROUP ");
|
|
430
|
+
const {
|
|
431
|
+
getCohort
|
|
432
|
+
} = await Promise.resolve().then(() => _interopRequireWildcard(require("./native")));
|
|
433
|
+
(0, _vitest.expect)(getCohort()).toBe("qa-group");
|
|
434
|
+
});
|
|
435
|
+
(0, _vitest.it)("throws when native reports an invalid cohort", async () => {
|
|
436
|
+
nativeModuleMock.getCohort.mockReturnValue("1001");
|
|
437
|
+
const {
|
|
438
|
+
getCohort
|
|
439
|
+
} = await Promise.resolve().then(() => _interopRequireWildcard(require("./native")));
|
|
440
|
+
(0, _vitest.expect)(() => getCohort()).toThrow(_core.INVALID_COHORT_ERROR_MESSAGE);
|
|
441
|
+
});
|
|
85
442
|
});
|
|
86
443
|
//# sourceMappingURL=native.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_vitest","require","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","nativeModuleMock","vi","hoisted","stubGlobal","clearCrashHistory","fn","getBaseURL","getConstants","APP_VERSION","CHANNEL","DEFAULT_CHANNEL","FINGERPRINT_HASH","getCrashHistory","notifyAppReady","reload","resetChannel","setBundleURL","switchChannel","updateBundle","mock","NativeEventEmitter","addListener","remove","Platform","OS","describe","beforeEach","resetModules","mockReset","mockReturnValue","it","JSON","stringify","status","Promise","resolve","then","expect","toEqual","toHaveBeenCalledWith","crashedBundleId"],"sourceRoot":"../../src","sources":["native.spec.ts"],"mappings":"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","ignoreList":[]}
|
|
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","nativeModuleMock","vi","hoisted","getManifest","fn","getCrashHistory","clearCrashHistory","getBaseURL","getBundleId","getCohort","getConstants","APP_VERSION","CHANNEL","DEFAULT_CHANNEL","FINGERPRINT_HASH","MIN_BUNDLE_ID","notifyAppReady","reload","resetChannel","setCohort","setBundleURL","switchChannel","updateBundle","mock","NativeEventEmitter","addListener","remove","Platform","OS","describe","beforeEach","resetModules","mockReset","mockReturnValue","assets","fileHash","bundleId","it","JSON","stringify","status","Promise","resolve","then","expect","toEqual","toHaveBeenCalledWith","crashedBundleId","toBe","nativeModule","originalGetBundleId","toThrow","toHaveBeenCalledTimes","firstManifest","mockResolvedValue","fileUrl","resolves","toBeNull","not","toHaveBeenCalled","INVALID_COHORT_ERROR_MESSAGE","repeat"],"sourceRoot":"../../src","sources":["native.spec.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["specs/NativeHotUpdater.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["specs/NativeHotUpdater.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAsJpCC,gCAAmB,CAACC,YAAY,CAAO,YAAY,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isSignatureVerificationError","error","Error","message","toLowerCase","includes","extractSignatureFailure","bundleId","normalizedError","String"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;;;;;;AAGA;AACA;AACA;;
|
|
1
|
+
{"version":3,"names":["isSignatureVerificationError","error","Error","message","toLowerCase","includes","extractSignatureFailure","bundleId","normalizedError","String"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;;;;;;AAGA;AACA;AACA;;AAqDA;AACA;AACA;;AAyBA;AACA;AACA;;AAoDA;AACA;AACA;AACA;AACA;;AAgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,4BAA4BA,CAACC,KAAc,EAAW;EACpE,IAAI,EAAEA,KAAK,YAAYC,KAAK,CAAC,EAAE;IAC7B,OAAO,KAAK;EACd;EAEA,MAAMC,OAAO,GAAGF,KAAK,CAACE,OAAO,CAACC,WAAW,CAAC,CAAC;;EAE3C;EACA;EACA,OACED,OAAO,CAACE,QAAQ,CAAC,wBAAwB,CAAC,IAC1CF,OAAO,CAACE,QAAQ,CAAC,2BAA2B,CAAC,IAC7CF,OAAO,CAACE,QAAQ,CAAC,8BAA8B,CAAC,IAChDF,OAAO,CAACE,QAAQ,CAAC,6BAA6B,CAAC,IAC/CF,OAAO,CAACE,QAAQ,CAAC,qCAAqC,CAAC;AAE3D;;AAEA;AACA;AACA;AACO,SAASC,uBAAuBA,CACrCL,KAAc,EACdM,QAAgB,EACc;EAC9B,MAAMC,eAAe,GACnBP,KAAK,YAAYC,KAAK,GAAGD,KAAK,GAAG,IAAIC,KAAK,CAACO,MAAM,CAACR,KAAK,CAAC,CAAC;EAE3D,OAAO;IACLM,QAAQ;IACRJ,OAAO,EAAEK,eAAe,CAACL,OAAO;IAChCF,KAAK,EAAEO;EACT,CAAC;AACH","ignoreList":[]}
|
|
@@ -11,18 +11,16 @@ import { fetchUpdateInfo } from "./fetchUpdateInfo.js";
|
|
|
11
11
|
export function createDefaultResolver(baseURL) {
|
|
12
12
|
return {
|
|
13
13
|
checkUpdate: async params => {
|
|
14
|
-
// Build URL based on strategy (existing buildUpdateUrl logic)
|
|
15
14
|
let url;
|
|
15
|
+
const cohortPath = `/${encodeURIComponent(params.cohort)}`;
|
|
16
16
|
if (params.updateStrategy === "fingerprint") {
|
|
17
17
|
if (!params.fingerprintHash) {
|
|
18
18
|
throw new Error("Fingerprint hash is required");
|
|
19
19
|
}
|
|
20
|
-
url = `${baseURL}/fingerprint/${params.platform}/${params.fingerprintHash}/${params.channel}/${params.minBundleId}/${params.bundleId}`;
|
|
20
|
+
url = `${baseURL}/fingerprint/${params.platform}/${params.fingerprintHash}/${params.channel}/${params.minBundleId}/${params.bundleId}${cohortPath}`;
|
|
21
21
|
} else {
|
|
22
|
-
url = `${baseURL}/app-version/${params.platform}/${params.appVersion}/${params.channel}/${params.minBundleId}/${params.bundleId}`;
|
|
22
|
+
url = `${baseURL}/app-version/${params.platform}/${params.appVersion}/${params.channel}/${params.minBundleId}/${params.bundleId}${cohortPath}`;
|
|
23
23
|
}
|
|
24
|
-
|
|
25
|
-
// Use existing fetchUpdateInfo
|
|
26
24
|
return fetchUpdateInfo({
|
|
27
25
|
url,
|
|
28
26
|
requestHeaders: params.requestHeaders,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["fetchUpdateInfo","createDefaultResolver","baseURL","checkUpdate","params","url","updateStrategy","fingerprintHash","Error","platform","channel","minBundleId","bundleId","appVersion","requestHeaders","requestTimeout"],"sourceRoot":"../../src","sources":["DefaultResolver.ts"],"mappings":";;AACA,SAASA,eAAe,QAAQ,sBAAmB;AAGnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CAACC,OAAe,EAAsB;EACzE,OAAO;IACLC,WAAW,EAAE,MACXC,MAAiC,IACC;MAClC
|
|
1
|
+
{"version":3,"names":["fetchUpdateInfo","createDefaultResolver","baseURL","checkUpdate","params","url","cohortPath","encodeURIComponent","cohort","updateStrategy","fingerprintHash","Error","platform","channel","minBundleId","bundleId","appVersion","requestHeaders","requestTimeout"],"sourceRoot":"../../src","sources":["DefaultResolver.ts"],"mappings":";;AACA,SAASA,eAAe,QAAQ,sBAAmB;AAGnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CAACC,OAAe,EAAsB;EACzE,OAAO;IACLC,WAAW,EAAE,MACXC,MAAiC,IACC;MAClC,IAAIC,GAAW;MACf,MAAMC,UAAU,GAAG,IAAIC,kBAAkB,CAACH,MAAM,CAACI,MAAM,CAAC,EAAE;MAE1D,IAAIJ,MAAM,CAACK,cAAc,KAAK,aAAa,EAAE;QAC3C,IAAI,CAACL,MAAM,CAACM,eAAe,EAAE;UAC3B,MAAM,IAAIC,KAAK,CAAC,8BAA8B,CAAC;QACjD;QACAN,GAAG,GAAG,GAAGH,OAAO,gBAAgBE,MAAM,CAACQ,QAAQ,IAAIR,MAAM,CAACM,eAAe,IAAIN,MAAM,CAACS,OAAO,IAAIT,MAAM,CAACU,WAAW,IAAIV,MAAM,CAACW,QAAQ,GAAGT,UAAU,EAAE;MACrJ,CAAC,MAAM;QACLD,GAAG,GAAG,GAAGH,OAAO,gBAAgBE,MAAM,CAACQ,QAAQ,IAAIR,MAAM,CAACY,UAAU,IAAIZ,MAAM,CAACS,OAAO,IAAIT,MAAM,CAACU,WAAW,IAAIV,MAAM,CAACW,QAAQ,GAAGT,UAAU,EAAE;MAChJ;MAEA,OAAON,eAAe,CAAC;QACrBK,GAAG;QACHY,cAAc,EAAEb,MAAM,CAACa,cAAc;QACrCC,cAAc,EAAEd,MAAM,CAACc;MACzB,CAAC,CAAC;IACJ;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { Platform } from "react-native";
|
|
4
4
|
import { HotUpdaterError } from "./error.js";
|
|
5
|
-
import { getAppVersion, getBundleId, getChannel, getDefaultChannel, getFingerprintHash, getMinBundleId, isChannelSwitched, resetChannel, updateBundle } from "./native.js";
|
|
5
|
+
import { getAppVersion, getBundleId, getChannel, getCohort, getDefaultChannel, getFingerprintHash, getMinBundleId, isChannelSwitched, resetChannel, updateBundle } from "./native.js";
|
|
6
6
|
const NIL_UUID = "00000000-0000-0000-0000-000000000000";
|
|
7
7
|
|
|
8
8
|
// Internal type that includes resolver for use within index.ts
|
|
@@ -29,6 +29,7 @@ export async function checkForUpdate(options) {
|
|
|
29
29
|
const targetChannel = explicitChannel || currentChannel;
|
|
30
30
|
const isFirstRuntimeChannelSwitchAttempt = !isSwitched && explicitChannel !== undefined && explicitChannel !== defaultChannel;
|
|
31
31
|
const requestBundleId = isFirstRuntimeChannelSwitchAttempt ? minBundleId : currentBundleId;
|
|
32
|
+
const cohort = getCohort();
|
|
32
33
|
if (!currentAppVersion) {
|
|
33
34
|
options.onError?.(new HotUpdaterError("Failed to get app version"));
|
|
34
35
|
return null;
|
|
@@ -50,6 +51,7 @@ export async function checkForUpdate(options) {
|
|
|
50
51
|
appVersion: currentAppVersion,
|
|
51
52
|
bundleId: requestBundleId,
|
|
52
53
|
minBundleId,
|
|
54
|
+
cohort,
|
|
53
55
|
channel: targetChannel,
|
|
54
56
|
updateStrategy: options.updateStrategy,
|
|
55
57
|
fingerprintHash,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","HotUpdaterError","getAppVersion","getBundleId","getChannel","getDefaultChannel","getFingerprintHash","getMinBundleId","isChannelSwitched","resetChannel","updateBundle","NIL_UUID","isResetToBuiltInResponse","updateInfo","status","id","fileUrl","checkForUpdate","options","__DEV__","includes","OS","onError","currentAppVersion","platform","currentBundleId","minBundleId","defaultChannel","isSwitched","currentChannel","explicitChannel","channel","undefined","targetChannel","isFirstRuntimeChannelSwitchAttempt","requestBundleId","error","fingerprintHash","resolver","checkUpdate","appVersion","bundleId","updateStrategy","requestHeaders","requestTimeout","runtimeChannel","fileHash","shouldSkipCurrentBundleIdCheck"],"sourceRoot":"../../src","sources":["checkForUpdate.ts"],"mappings":";;AACA,SAASA,QAAQ,QAAQ,cAAc;AACvC,SAASC,eAAe,QAAQ,YAAS;AACzC,SACEC,aAAa,EACbC,WAAW,EACXC,UAAU,EACVC,iBAAiB,EACjBC,kBAAkB,EAClBC,cAAc,EACdC,iBAAiB,EACjBC,YAAY,EACZC,YAAY,QACP,aAAU;AAGjB,MAAMC,QAAQ,GAAG,sCAAsC;;AAkCvD;;AAKA,MAAMC,wBAAwB,GAAIC,UAAyB,IAAc;EACvE,OACEA,UAAU,CAACC,MAAM,KAAK,UAAU,IAChCD,UAAU,CAACE,EAAE,KAAKJ,QAAQ,IAC1BE,UAAU,CAACG,OAAO,KAAK,IAAI;AAE/B,CAAC;AAED,OAAO,eAAeC,cAAcA,CAClCC,OAAsC,EACA;EACtC,IAAIC,OAAO,EAAE;IACX,OAAO,IAAI;EACb;EAEA,IAAI,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAACC,QAAQ,
|
|
1
|
+
{"version":3,"names":["Platform","HotUpdaterError","getAppVersion","getBundleId","getChannel","getCohort","getDefaultChannel","getFingerprintHash","getMinBundleId","isChannelSwitched","resetChannel","updateBundle","NIL_UUID","isResetToBuiltInResponse","updateInfo","status","id","fileUrl","checkForUpdate","options","__DEV__","includes","OS","onError","currentAppVersion","platform","currentBundleId","minBundleId","defaultChannel","isSwitched","currentChannel","explicitChannel","channel","undefined","targetChannel","isFirstRuntimeChannelSwitchAttempt","requestBundleId","cohort","error","fingerprintHash","resolver","checkUpdate","appVersion","bundleId","updateStrategy","requestHeaders","requestTimeout","runtimeChannel","fileHash","shouldSkipCurrentBundleIdCheck"],"sourceRoot":"../../src","sources":["checkForUpdate.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { checkForUpdate } from "./checkForUpdate.js";
|
|
4
4
|
import { createDefaultResolver } from "./DefaultResolver.js";
|
|
5
|
-
import { addListener, clearCrashHistory, getAppVersion, getBaseURL, getBundleId, getChannel, getCrashHistory, getDefaultChannel, getFingerprintHash, getMinBundleId, isChannelSwitched, reload, resetChannel, setReloadBehavior, updateBundle } from "./native.js";
|
|
5
|
+
import { addListener, clearCrashHistory, getAppVersion, getBaseURL, getBundleId, getChannel, getCohort, getCrashHistory, getDefaultChannel, getFingerprintHash, getManifest, getMinBundleId, isChannelSwitched, reload, resetChannel, setCohort, setReloadBehavior, updateBundle } from "./native.js";
|
|
6
6
|
import { hotUpdaterStore } from "./store.js";
|
|
7
7
|
import { wrap } from "./wrap.js";
|
|
8
8
|
export * from "./store.js";
|
|
@@ -138,6 +138,10 @@ function createHotUpdaterClient() {
|
|
|
138
138
|
* Retrieves the initial bundle ID based on the build time of the native app.
|
|
139
139
|
*/
|
|
140
140
|
getMinBundleId,
|
|
141
|
+
/**
|
|
142
|
+
* Fetches the current manifest for the active bundle.
|
|
143
|
+
*/
|
|
144
|
+
getManifest,
|
|
141
145
|
/**
|
|
142
146
|
* Fetches the current channel of the app.
|
|
143
147
|
*
|
|
@@ -171,6 +175,15 @@ function createHotUpdaterClient() {
|
|
|
171
175
|
* @returns {boolean} true when a non-default channel has been applied
|
|
172
176
|
*/
|
|
173
177
|
isChannelSwitched,
|
|
178
|
+
/**
|
|
179
|
+
* Sets the persisted cohort used for rollout calculations.
|
|
180
|
+
* Call `getCohort()` first if you need to restore the initial value later.
|
|
181
|
+
*/
|
|
182
|
+
setCohort,
|
|
183
|
+
/**
|
|
184
|
+
* Gets the persisted cohort used for rollout calculations.
|
|
185
|
+
*/
|
|
186
|
+
getCohort,
|
|
174
187
|
/**
|
|
175
188
|
* Adds a listener to HotUpdater events.
|
|
176
189
|
*
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["checkForUpdate","createDefaultResolver","addListener","clearCrashHistory","getAppVersion","getBaseURL","getBundleId","getChannel","getCrashHistory","getDefaultChannel","getFingerprintHash","getMinBundleId","isChannelSwitched","reload","resetChannel","setReloadBehavior","updateBundle","hotUpdaterStore","wrap","extractSignatureFailure","isSignatureVerificationError","registerGlobalGetBaseURL","fn","globalThis","HotUpdaterGetBaseURL","global","createHotUpdaterClient","globalConfig","resolver","ensureGlobalResolver","methodName","Error","options","normalizedOptions","baseURL","rest","requestHeaders","requestTimeout","isUpdateDownloaded","getSnapshot","config","mergedConfig","params","ok","setState","progress","HotUpdater"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SAEEA,cAAc,QAET,qBAAkB;AACzB,SAASC,qBAAqB,QAAQ,sBAAmB;AACzD,SACEC,WAAW,EACXC,iBAAiB,EACjBC,aAAa,EACbC,UAAU,EACVC,WAAW,EACXC,UAAU,EACVC,eAAe,EACfC,iBAAiB,EACjBC,kBAAkB,EAClBC,cAAc,EACdC,iBAAiB,EACjBC,MAAM,EACNC,YAAY,EACZC,iBAAiB,EAEjBC,YAAY,QACP,aAAU;AACjB,SAASC,eAAe,QAAQ,YAAS;AAEzC,SAA2DC,IAAI,QAAQ,WAAQ;
|
|
1
|
+
{"version":3,"names":["checkForUpdate","createDefaultResolver","addListener","clearCrashHistory","getAppVersion","getBaseURL","getBundleId","getChannel","getCohort","getCrashHistory","getDefaultChannel","getFingerprintHash","getManifest","getMinBundleId","isChannelSwitched","reload","resetChannel","setCohort","setReloadBehavior","updateBundle","hotUpdaterStore","wrap","extractSignatureFailure","isSignatureVerificationError","registerGlobalGetBaseURL","fn","globalThis","HotUpdaterGetBaseURL","global","createHotUpdaterClient","globalConfig","resolver","ensureGlobalResolver","methodName","Error","options","normalizedOptions","baseURL","rest","requestHeaders","requestTimeout","isUpdateDownloaded","getSnapshot","config","mergedConfig","params","ok","setState","progress","HotUpdater"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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ACJ;AACA;IACIE,WAAW;IAEX;AACJ;AACA;IACIO,cAAc;IAEd;AACJ;AACA;IACID,WAAW;IAEX;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIL,UAAU;IAEV;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIG,iBAAiB;IAEjB;AACJ;AACA;AACA;AACA;IACII,iBAAiB;IAEjB;AACJ;AACA;AACA;IACIG,SAAS;IAET;AACJ;AACA;IACIT,SAAS;IAET;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIN,WAAW;IAEX;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIF,cAAc,EAAG2C,MAA6B,IAAK;MACjD,MAAMZ,QAAQ,GAAGC,oBAAoB,CAAC,gBAAgB,CAAC;MAEvD,MAAMY,YAA2C,GAAG;QAClD,GAAGD,MAAM;QACTZ,QAAQ;QACRQ,cAAc,EAAE;UACd,GAAGT,YAAY,CAACS,cAAc;UAC9B,GAAGI,MAAM,CAACJ;QACZ,CAAC;QACDC,cAAc,EAAEG,MAAM,CAACH,cAAc,IAAIV,YAAY,CAACU;MACxD,CAAC;MAED,OAAOxC,cAAc,CAAC4C,YAAY,CAAC;IACrC,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIzB,YAAY,EAAG0B,MAAoB,IAAK;MACtCb,oBAAoB,CAAC,cAAc,CAAC;MACpC,OAAOb,YAAY,CAAC0B,MAAM,CAAC;IAC7B,CAAC;IAED;AACJ;AACA;AACA;AACA;IACI7B,YAAY,EAAE,MAAAA,CAAA,KAAY;MACxB,MAAM8B,EAAE,GAAG,MAAM9B,YAAY,CAAC,CAAC;MAC/B,IAAI8B,EAAE,EAAE;QACN1B,eAAe,CAAC2B,QAAQ,CAAC;UACvBN,kBAAkB,EAAE,KAAK;UACzBO,QAAQ,EAAE;QACZ,CAAC,CAAC;MACJ;MACA,OAAOF,EAAE;IACX,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACInC,kBAAkB;IAElB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIF,eAAe;IAEf;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIN;EACF,CAAC;AACH;AAEA,OAAO,MAAM8C,UAAU,GAAGpB,sBAAsB,CAAC,CAAC","ignoreList":[]}
|