@hot-updater/react-native 0.30.12 → 0.31.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/HotUpdater.podspec +1 -0
- package/android/build.gradle +1 -0
- package/android/src/main/java/com/hotupdater/BsdiffPatch.kt +284 -0
- package/android/src/main/java/com/hotupdater/BundleFileStorageService.kt +885 -5
- package/android/src/main/java/com/hotupdater/HotUpdaterImpl.kt +13 -2
- package/android/src/main/java/com/hotupdater/OkHttpDownloadService.kt +37 -8
- package/android/src/main/java/com/hotupdater/ReactNativeValueConverters.kt +48 -12
- package/android/src/main/java/com/hotupdater/SignatureVerifier.kt +60 -22
- package/android/src/newarch/HotUpdater.kt +14 -2
- package/android/src/newarch/HotUpdaterModule.kt +112 -1
- package/android/src/oldarch/HotUpdater.kt +14 -2
- package/android/src/oldarch/HotUpdaterModule.kt +107 -3
- package/android/src/test/java/com/hotupdater/BsdiffPatchTest.kt +46 -0
- package/android/src/test/java/com/hotupdater/BundleFileStorageServiceTest.kt +29 -1
- package/android/src/test/java/com/hotupdater/HotUpdaterImplTest.kt +4 -1
- package/ios/HotUpdater/Internal/BsdiffPatchBridge.h +16 -0
- package/ios/HotUpdater/Internal/BsdiffPatchBridge.mm +343 -0
- package/ios/HotUpdater/Internal/BundleFileStorageService.swift +1093 -47
- package/ios/HotUpdater/Internal/HotUpdater-Bridging-Header.h +2 -0
- package/ios/HotUpdater/Internal/HotUpdater.mm +12 -2
- package/ios/HotUpdater/Internal/HotUpdaterImpl.swift +64 -5
- package/ios/HotUpdater/Internal/NotificationExtension.swift +2 -1
- package/ios/HotUpdater/Internal/SignatureVerifier.swift +28 -5
- package/ios/HotUpdater/Internal/StreamingTarArchiveExtractor.swift +11 -0
- package/ios/HotUpdater/Internal/URLSessionDownloadService.swift +11 -5
- package/lib/commonjs/DefaultResolver.js +6 -2
- package/lib/commonjs/DefaultResolver.js.map +1 -1
- package/lib/commonjs/DefaultResolver.spec.js +79 -3
- package/lib/commonjs/DefaultResolver.spec.js.map +1 -1
- package/lib/commonjs/checkForUpdate.js +6 -0
- package/lib/commonjs/checkForUpdate.js.map +1 -1
- package/lib/commonjs/index.js +53 -18
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/index.spec.js +117 -1
- package/lib/commonjs/index.spec.js.map +1 -1
- package/lib/commonjs/native.js +40 -16
- package/lib/commonjs/native.js.map +1 -1
- package/lib/commonjs/native.spec.js +119 -3
- package/lib/commonjs/native.spec.js.map +1 -1
- package/lib/commonjs/sdkVersion.js +8 -0
- package/lib/commonjs/sdkVersion.js.map +1 -0
- package/lib/commonjs/specs/NativeHotUpdater.js.map +1 -1
- package/lib/commonjs/store.js +72 -5
- package/lib/commonjs/store.js.map +1 -1
- package/lib/commonjs/store.spec.js +265 -8
- package/lib/commonjs/store.spec.js.map +1 -1
- package/lib/commonjs/wrap.js +19 -5
- package/lib/commonjs/wrap.js.map +1 -1
- package/lib/commonjs/wrap.spec.js +74 -0
- package/lib/commonjs/wrap.spec.js.map +1 -1
- package/lib/module/DefaultResolver.js +6 -2
- package/lib/module/DefaultResolver.js.map +1 -1
- package/lib/module/DefaultResolver.spec.js +78 -3
- package/lib/module/DefaultResolver.spec.js.map +1 -1
- package/lib/module/checkForUpdate.js +6 -0
- package/lib/module/checkForUpdate.js.map +1 -1
- package/lib/module/index.js +53 -18
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.spec.js +117 -1
- package/lib/module/index.spec.js.map +1 -1
- package/lib/module/native.js +40 -16
- package/lib/module/native.js.map +1 -1
- package/lib/module/native.spec.js +119 -3
- package/lib/module/native.spec.js.map +1 -1
- package/lib/module/sdkVersion.js +4 -0
- package/lib/module/sdkVersion.js.map +1 -0
- package/lib/module/specs/NativeHotUpdater.js.map +1 -1
- package/lib/module/store.js +72 -5
- package/lib/module/store.js.map +1 -1
- package/lib/module/store.spec.js +265 -8
- package/lib/module/store.spec.js.map +1 -1
- package/lib/module/wrap.js +19 -5
- package/lib/module/wrap.js.map +1 -1
- package/lib/module/wrap.spec.js +74 -0
- package/lib/module/wrap.spec.js.map +1 -1
- package/lib/typescript/commonjs/DefaultResolver.d.ts.map +1 -1
- package/lib/typescript/commonjs/checkForUpdate.d.ts +2 -2
- package/lib/typescript/commonjs/checkForUpdate.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +36 -8
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/native.d.ts +56 -3
- package/lib/typescript/commonjs/native.d.ts.map +1 -1
- package/lib/typescript/commonjs/sdkVersion.d.ts +2 -0
- package/lib/typescript/commonjs/sdkVersion.d.ts.map +1 -0
- package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts +27 -0
- package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts.map +1 -1
- package/lib/typescript/commonjs/store.d.ts +5 -0
- package/lib/typescript/commonjs/store.d.ts.map +1 -1
- package/lib/typescript/commonjs/wrap.d.ts +43 -29
- package/lib/typescript/commonjs/wrap.d.ts.map +1 -1
- package/lib/typescript/module/DefaultResolver.d.ts.map +1 -1
- package/lib/typescript/module/checkForUpdate.d.ts +2 -2
- package/lib/typescript/module/checkForUpdate.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +36 -8
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/native.d.ts +56 -3
- package/lib/typescript/module/native.d.ts.map +1 -1
- package/lib/typescript/module/sdkVersion.d.ts +2 -0
- package/lib/typescript/module/sdkVersion.d.ts.map +1 -0
- package/lib/typescript/module/specs/NativeHotUpdater.d.ts +27 -0
- package/lib/typescript/module/specs/NativeHotUpdater.d.ts.map +1 -1
- package/lib/typescript/module/store.d.ts +5 -0
- package/lib/typescript/module/store.d.ts.map +1 -1
- package/lib/typescript/module/wrap.d.ts +43 -29
- package/lib/typescript/module/wrap.d.ts.map +1 -1
- package/package.json +20 -10
- package/src/DefaultResolver.spec.ts +103 -3
- package/src/DefaultResolver.ts +9 -2
- package/src/checkForUpdate.ts +9 -2
- package/src/index.spec.ts +149 -1
- package/src/index.ts +99 -40
- package/src/native.spec.ts +139 -1
- package/src/native.ts +145 -31
- package/src/sdkVersion.ts +1 -0
- package/src/specs/NativeHotUpdater.ts +28 -0
- package/src/store.spec.ts +324 -9
- package/src/store.ts +133 -7
- package/src/wrap.spec.ts +91 -0
- package/src/wrap.tsx +79 -42
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import { readFile } from "node:fs/promises";
|
|
4
|
+
import { join } from "node:path";
|
|
3
5
|
import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
4
6
|
import { createDefaultResolver } from "./DefaultResolver.js";
|
|
7
|
+
import { HOT_UPDATER_SDK_VERSION } from "./sdkVersion.js";
|
|
5
8
|
const mocks = vi.hoisted(() => ({
|
|
6
9
|
fetchUpdateInfo: vi.fn()
|
|
7
10
|
}));
|
|
@@ -24,13 +27,70 @@ describe("createDefaultResolver", () => {
|
|
|
24
27
|
mocks.fetchUpdateInfo.mockReset();
|
|
25
28
|
mocks.fetchUpdateInfo.mockResolvedValue(null);
|
|
26
29
|
});
|
|
30
|
+
it("strips trailing slashes from baseURL for app-version requests", async () => {
|
|
31
|
+
const resolver = createDefaultResolver("http://localhost:3007/hot-updater/");
|
|
32
|
+
await resolver.checkUpdate?.(createParams({
|
|
33
|
+
appVersion: "1.0",
|
|
34
|
+
bundleId: "current-bundle",
|
|
35
|
+
channel: "production",
|
|
36
|
+
cohort: "730",
|
|
37
|
+
minBundleId: "min-bundle",
|
|
38
|
+
platform: "android"
|
|
39
|
+
}));
|
|
40
|
+
expect(mocks.fetchUpdateInfo).toHaveBeenCalledWith({
|
|
41
|
+
requestHeaders: {
|
|
42
|
+
"Hot-Updater-SDK-Version": HOT_UPDATER_SDK_VERSION
|
|
43
|
+
},
|
|
44
|
+
requestTimeout: undefined,
|
|
45
|
+
url: "http://localhost:3007/hot-updater/app-version/android/1.0/production/min-bundle/current-bundle/730"
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
it("strips trailing slashes from baseURL for fingerprint requests", async () => {
|
|
49
|
+
const resolver = createDefaultResolver("http://localhost:3007/hot-updater///");
|
|
50
|
+
await resolver.checkUpdate?.(createParams({
|
|
51
|
+
appVersion: "1.0",
|
|
52
|
+
bundleId: "current-bundle",
|
|
53
|
+
channel: "beta",
|
|
54
|
+
cohort: "qa",
|
|
55
|
+
fingerprintHash: "fingerprint-hash",
|
|
56
|
+
minBundleId: "min-bundle",
|
|
57
|
+
platform: "ios",
|
|
58
|
+
requestHeaders: {
|
|
59
|
+
authorization: "Bearer token"
|
|
60
|
+
},
|
|
61
|
+
requestTimeout: 1500,
|
|
62
|
+
updateStrategy: "fingerprint"
|
|
63
|
+
}));
|
|
64
|
+
expect(mocks.fetchUpdateInfo).toHaveBeenCalledWith({
|
|
65
|
+
requestHeaders: {
|
|
66
|
+
authorization: "Bearer token",
|
|
67
|
+
"Hot-Updater-SDK-Version": HOT_UPDATER_SDK_VERSION
|
|
68
|
+
},
|
|
69
|
+
requestTimeout: 1500,
|
|
70
|
+
url: "http://localhost:3007/hot-updater/fingerprint/ios/fingerprint-hash/beta/min-bundle/current-bundle/qa"
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
it("keeps the SDK version header aligned with package.json", async () => {
|
|
74
|
+
const [{
|
|
75
|
+
HOT_UPDATER_SDK_VERSION
|
|
76
|
+
}, packageJson] = await Promise.all([import("./sdkVersion"), readFile(join(__dirname, "../package.json"), "utf-8")]);
|
|
77
|
+
const pkg = JSON.parse(packageJson);
|
|
78
|
+
expect(HOT_UPDATER_SDK_VERSION).toBe(pkg.version);
|
|
79
|
+
});
|
|
80
|
+
it("propagates fetchUpdateInfo errors", async () => {
|
|
81
|
+
mocks.fetchUpdateInfo.mockRejectedValueOnce(new Error("Network failed"));
|
|
82
|
+
const resolver = createDefaultResolver("http://localhost:3007/hot-updater");
|
|
83
|
+
await expect(resolver.checkUpdate?.(createParams())).rejects.toThrow("Network failed");
|
|
84
|
+
});
|
|
27
85
|
it("resolves dynamic baseURL before checking for updates", async () => {
|
|
28
86
|
const resolveBaseURL = vi.fn(async () => "https://updates.example.com");
|
|
29
87
|
const resolver = createDefaultResolver(resolveBaseURL);
|
|
30
88
|
await resolver.checkUpdate?.(createParams());
|
|
31
89
|
expect(resolveBaseURL).toHaveBeenCalledWith();
|
|
32
90
|
expect(mocks.fetchUpdateInfo).toHaveBeenCalledWith({
|
|
33
|
-
requestHeaders:
|
|
91
|
+
requestHeaders: {
|
|
92
|
+
"Hot-Updater-SDK-Version": HOT_UPDATER_SDK_VERSION
|
|
93
|
+
},
|
|
34
94
|
requestTimeout: undefined,
|
|
35
95
|
url: "https://updates.example.com/app-version/ios/1.0.0/production/min-bundle-id/bundle-id/cohort"
|
|
36
96
|
});
|
|
@@ -42,16 +102,31 @@ describe("createDefaultResolver", () => {
|
|
|
42
102
|
await resolver.checkUpdate?.(createParams());
|
|
43
103
|
expect(resolveBaseURL).toHaveBeenCalledTimes(2);
|
|
44
104
|
expect(mocks.fetchUpdateInfo).toHaveBeenNthCalledWith(1, {
|
|
45
|
-
requestHeaders:
|
|
105
|
+
requestHeaders: {
|
|
106
|
+
"Hot-Updater-SDK-Version": HOT_UPDATER_SDK_VERSION
|
|
107
|
+
},
|
|
46
108
|
requestTimeout: undefined,
|
|
47
109
|
url: "https://one.example.com/app-version/ios/1.0.0/production/min-bundle-id/bundle-id/cohort"
|
|
48
110
|
});
|
|
49
111
|
expect(mocks.fetchUpdateInfo).toHaveBeenNthCalledWith(2, {
|
|
50
|
-
requestHeaders:
|
|
112
|
+
requestHeaders: {
|
|
113
|
+
"Hot-Updater-SDK-Version": HOT_UPDATER_SDK_VERSION
|
|
114
|
+
},
|
|
51
115
|
requestTimeout: undefined,
|
|
52
116
|
url: "https://two.example.com/app-version/ios/1.0.0/production/min-bundle-id/bundle-id/cohort"
|
|
53
117
|
});
|
|
54
118
|
});
|
|
119
|
+
it("strips trailing slashes from dynamic baseURL results", async () => {
|
|
120
|
+
const resolver = createDefaultResolver(() => "https://updates.example.com/");
|
|
121
|
+
await resolver.checkUpdate?.(createParams());
|
|
122
|
+
expect(mocks.fetchUpdateInfo).toHaveBeenCalledWith({
|
|
123
|
+
requestHeaders: {
|
|
124
|
+
"Hot-Updater-SDK-Version": HOT_UPDATER_SDK_VERSION
|
|
125
|
+
},
|
|
126
|
+
requestTimeout: undefined,
|
|
127
|
+
url: "https://updates.example.com/app-version/ios/1.0.0/production/min-bundle-id/bundle-id/cohort"
|
|
128
|
+
});
|
|
129
|
+
});
|
|
55
130
|
it("rejects an empty dynamic baseURL", async () => {
|
|
56
131
|
const resolver = createDefaultResolver(() => "");
|
|
57
132
|
await expect(resolver.checkUpdate?.(createParams())).rejects.toThrow("baseURL resolver must return a non-empty string");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["beforeEach","describe","expect","it","vi","createDefaultResolver","mocks","hoisted","fetchUpdateInfo","fn","mock","createParams","params","appVersion","bundleId","channel","cohort","fingerprintHash","minBundleId","platform","updateStrategy","mockReset","mockResolvedValue","
|
|
1
|
+
{"version":3,"names":["readFile","join","beforeEach","describe","expect","it","vi","createDefaultResolver","HOT_UPDATER_SDK_VERSION","mocks","hoisted","fetchUpdateInfo","fn","mock","createParams","params","appVersion","bundleId","channel","cohort","fingerprintHash","minBundleId","platform","updateStrategy","mockReset","mockResolvedValue","resolver","checkUpdate","toHaveBeenCalledWith","requestHeaders","requestTimeout","undefined","url","authorization","packageJson","Promise","all","__dirname","pkg","JSON","parse","toBe","version","mockRejectedValueOnce","Error","rejects","toThrow","resolveBaseURL","mockResolvedValueOnce","toHaveBeenCalledTimes","toHaveBeenNthCalledWith"],"sourceRoot":"../../src","sources":["DefaultResolver.spec.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,kBAAkB;AAC3C,SAASC,IAAI,QAAQ,WAAW;AAEhC,SAASC,UAAU,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,EAAEC,EAAE,QAAQ,QAAQ;AAE7D,SAASC,qBAAqB,QAAQ,sBAAmB;AACzD,SAASC,uBAAuB,QAAQ,iBAAc;AAGtD,MAAMC,KAAK,GAAGH,EAAE,CAACI,OAAO,CAAC,OAAO;EAC9BC,eAAe,EAAEL,EAAE,CAACM,EAAE,CAAC;AACzB,CAAC,CAAC,CAAC;AAEHN,EAAE,CAACO,IAAI,CAAC,mBAAmB,EAAE,OAAO;EAClCF,eAAe,EAAEF,KAAK,CAACE;AACzB,CAAC,CAAC,CAAC;AAEH,MAAMG,YAAY,GAChBC,MAA2C,KACZ;EAC/BC,UAAU,EAAE,OAAO;EACnBC,QAAQ,EAAE,WAAW;EACrBC,OAAO,EAAE,YAAY;EACrBC,MAAM,EAAE,QAAQ;EAChBC,eAAe,EAAE,IAAI;EACrBC,WAAW,EAAE,eAAe;EAC5BC,QAAQ,EAAE,KAAK;EACfC,cAAc,EAAE,YAAY;EAC5B,GAAGR;AACL,CAAC,CAAC;AAEFZ,QAAQ,CAAC,uBAAuB,EAAE,MAAM;EACtCD,UAAU,CAAC,MAAM;IACfO,KAAK,CAACE,eAAe,CAACa,SAAS,CAAC,CAAC;IACjCf,KAAK,CAACE,eAAe,CAACc,iBAAiB,CAAC,IAAI,CAAC;EAC/C,CAAC,CAAC;EAEFpB,EAAE,CAAC,+DAA+D,EAAE,YAAY;IAC9E,MAAMqB,QAAQ,GAAGnB,qBAAqB,CACpC,oCACF,CAAC;IAED,MAAMmB,QAAQ,CAACC,WAAW,GACxBb,YAAY,CAAC;MACXE,UAAU,EAAE,KAAK;MACjBC,QAAQ,EAAE,gBAAgB;MAC1BC,OAAO,EAAE,YAAY;MACrBC,MAAM,EAAE,KAAK;MACbE,WAAW,EAAE,YAAY;MACzBC,QAAQ,EAAE;IACZ,CAAC,CACH,CAAC;IAEDlB,MAAM,CAACK,KAAK,CAACE,eAAe,CAAC,CAACiB,oBAAoB,CAAC;MACjDC,cAAc,EAAE;QACd,yBAAyB,EAAErB;MAC7B,CAAC;MACDsB,cAAc,EAAEC,SAAS;MACzBC,GAAG,EAAE;IACP,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF3B,EAAE,CAAC,+DAA+D,EAAE,YAAY;IAC9E,MAAMqB,QAAQ,GAAGnB,qBAAqB,CACpC,sCACF,CAAC;IAED,MAAMmB,QAAQ,CAACC,WAAW,GACxBb,YAAY,CAAC;MACXE,UAAU,EAAE,KAAK;MACjBC,QAAQ,EAAE,gBAAgB;MAC1BC,OAAO,EAAE,MAAM;MACfC,MAAM,EAAE,IAAI;MACZC,eAAe,EAAE,kBAAkB;MACnCC,WAAW,EAAE,YAAY;MACzBC,QAAQ,EAAE,KAAK;MACfO,cAAc,EAAE;QAAEI,aAAa,EAAE;MAAe,CAAC;MACjDH,cAAc,EAAE,IAAI;MACpBP,cAAc,EAAE;IAClB,CAAC,CACH,CAAC;IAEDnB,MAAM,CAACK,KAAK,CAACE,eAAe,CAAC,CAACiB,oBAAoB,CAAC;MACjDC,cAAc,EAAE;QACdI,aAAa,EAAE,cAAc;QAC7B,yBAAyB,EAAEzB;MAC7B,CAAC;MACDsB,cAAc,EAAE,IAAI;MACpBE,GAAG,EAAE;IACP,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF3B,EAAE,CAAC,wDAAwD,EAAE,YAAY;IACvE,MAAM,CAAC;MAAEG;IAAwB,CAAC,EAAE0B,WAAW,CAAC,GAAG,MAAMC,OAAO,CAACC,GAAG,CAAC,CACnE,MAAM,CAAC,cAAc,CAAC,EACtBpC,QAAQ,CAACC,IAAI,CAACoC,SAAS,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,CACtD,CAAC;IACF,MAAMC,GAAG,GAAGC,IAAI,CAACC,KAAK,CAACN,WAAW,CAAwB;IAE1D9B,MAAM,CAACI,uBAAuB,CAAC,CAACiC,IAAI,CAACH,GAAG,CAACI,OAAO,CAAC;EACnD,CAAC,CAAC;EAEFrC,EAAE,CAAC,mCAAmC,EAAE,YAAY;IAClDI,KAAK,CAACE,eAAe,CAACgC,qBAAqB,CAAC,IAAIC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACxE,MAAMlB,QAAQ,GAAGnB,qBAAqB,CAAC,mCAAmC,CAAC;IAE3E,MAAMH,MAAM,CAACsB,QAAQ,CAACC,WAAW,GAAGb,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC+B,OAAO,CAACC,OAAO,CAClE,gBACF,CAAC;EACH,CAAC,CAAC;EAEFzC,EAAE,CAAC,sDAAsD,EAAE,YAAY;IACrE,MAAM0C,cAAc,GAAGzC,EAAE,CAACM,EAAE,CAAC,YAAY,6BAA6B,CAAC;IACvE,MAAMc,QAAQ,GAAGnB,qBAAqB,CAACwC,cAAc,CAAC;IAEtD,MAAMrB,QAAQ,CAACC,WAAW,GAAGb,YAAY,CAAC,CAAC,CAAC;IAE5CV,MAAM,CAAC2C,cAAc,CAAC,CAACnB,oBAAoB,CAAC,CAAC;IAC7CxB,MAAM,CAACK,KAAK,CAACE,eAAe,CAAC,CAACiB,oBAAoB,CAAC;MACjDC,cAAc,EAAE;QACd,yBAAyB,EAAErB;MAC7B,CAAC;MACDsB,cAAc,EAAEC,SAAS;MACzBC,GAAG,EAAE;IACP,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF3B,EAAE,CAAC,6CAA6C,EAAE,YAAY;IAC5D,MAAM0C,cAAc,GAAGzC,EAAE,CACtBM,EAAE,CAAwB,CAAC,CAC3BoC,qBAAqB,CAAC,yBAAyB,CAAC,CAChDA,qBAAqB,CAAC,yBAAyB,CAAC;IACnD,MAAMtB,QAAQ,GAAGnB,qBAAqB,CAACwC,cAAc,CAAC;IAEtD,MAAMrB,QAAQ,CAACC,WAAW,GAAGb,YAAY,CAAC,CAAC,CAAC;IAC5C,MAAMY,QAAQ,CAACC,WAAW,GAAGb,YAAY,CAAC,CAAC,CAAC;IAE5CV,MAAM,CAAC2C,cAAc,CAAC,CAACE,qBAAqB,CAAC,CAAC,CAAC;IAC/C7C,MAAM,CAACK,KAAK,CAACE,eAAe,CAAC,CAACuC,uBAAuB,CAAC,CAAC,EAAE;MACvDrB,cAAc,EAAE;QACd,yBAAyB,EAAErB;MAC7B,CAAC;MACDsB,cAAc,EAAEC,SAAS;MACzBC,GAAG,EAAE;IACP,CAAC,CAAC;IACF5B,MAAM,CAACK,KAAK,CAACE,eAAe,CAAC,CAACuC,uBAAuB,CAAC,CAAC,EAAE;MACvDrB,cAAc,EAAE;QACd,yBAAyB,EAAErB;MAC7B,CAAC;MACDsB,cAAc,EAAEC,SAAS;MACzBC,GAAG,EAAE;IACP,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF3B,EAAE,CAAC,sDAAsD,EAAE,YAAY;IACrE,MAAMqB,QAAQ,GAAGnB,qBAAqB,CACpC,MAAM,8BACR,CAAC;IAED,MAAMmB,QAAQ,CAACC,WAAW,GAAGb,YAAY,CAAC,CAAC,CAAC;IAE5CV,MAAM,CAACK,KAAK,CAACE,eAAe,CAAC,CAACiB,oBAAoB,CAAC;MACjDC,cAAc,EAAE;QACd,yBAAyB,EAAErB;MAC7B,CAAC;MACDsB,cAAc,EAAEC,SAAS;MACzBC,GAAG,EAAE;IACP,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF3B,EAAE,CAAC,kCAAkC,EAAE,YAAY;IACjD,MAAMqB,QAAQ,GAAGnB,qBAAqB,CAAC,MAAM,EAAE,CAAC;IAEhD,MAAMH,MAAM,CAACsB,QAAQ,CAACC,WAAW,GAAGb,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC+B,OAAO,CAACC,OAAO,CAClE,iDACF,CAAC;EACH,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -65,6 +65,9 @@ export async function checkForUpdate(options) {
|
|
|
65
65
|
if (!updateInfo) {
|
|
66
66
|
return null;
|
|
67
67
|
}
|
|
68
|
+
if (updateInfo.status === "UP_TO_DATE") {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
68
71
|
if (explicitChannel && explicitChannel !== defaultChannel && !isSwitched && updateInfo.status === "ROLLBACK") {
|
|
69
72
|
return null;
|
|
70
73
|
}
|
|
@@ -78,8 +81,11 @@ export async function checkForUpdate(options) {
|
|
|
78
81
|
return updateBundle({
|
|
79
82
|
bundleId: updateInfo.id,
|
|
80
83
|
channel: runtimeChannel,
|
|
84
|
+
changedAssets: updateInfo.changedAssets ?? null,
|
|
81
85
|
fileUrl: updateInfo.fileUrl,
|
|
82
86
|
fileHash: updateInfo.fileHash,
|
|
87
|
+
manifestFileHash: updateInfo.manifestFileHash ?? null,
|
|
88
|
+
manifestUrl: updateInfo.manifestUrl ?? null,
|
|
83
89
|
status: updateInfo.status,
|
|
84
90
|
shouldSkipCurrentBundleIdCheck: isFirstRuntimeChannelSwitchAttempt
|
|
85
91
|
});
|
|
@@ -1 +1 @@
|
|
|
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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
|
|
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","changedAssets","fileHash","manifestFileHash","manifestUrl","shouldSkipCurrentBundleIdCheck"],"sourceRoot":"../../src","sources":["checkForUpdate.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -24,6 +24,7 @@ const registerGlobalGetBaseURL = () => {
|
|
|
24
24
|
|
|
25
25
|
// Call registration immediately on module load
|
|
26
26
|
registerGlobalGetBaseURL();
|
|
27
|
+
const isManualWrapOptions = options => "updateMode" in options && options.updateMode === "manual";
|
|
27
28
|
|
|
28
29
|
/**
|
|
29
30
|
* Creates a HotUpdater client instance with all update management methods.
|
|
@@ -36,50 +37,80 @@ function createHotUpdaterClient() {
|
|
|
36
37
|
};
|
|
37
38
|
const createMissingNetworkConfigError = apiName => {
|
|
38
39
|
if (apiName === "init") {
|
|
39
|
-
return new Error(`[HotUpdater] baseURL must be provided.\n\n` + `Configure HotUpdater before calling update APIs:\n\n` + ` HotUpdater.init({\n` + ` baseURL: "<your-update-server-url>",\n` + ` });\n\n` + `For
|
|
40
|
+
return new Error(`[HotUpdater] Either baseURL or resolver must be provided.\n\n` + `Configure HotUpdater before calling update APIs with the standard baseURL setup:\n\n` + ` HotUpdater.init({\n` + ` baseURL: "<your-update-server-url>",\n` + ` });\n\n` + `For manual update flows, visit: https://hot-updater.dev/docs/guides/custom-update`);
|
|
40
41
|
}
|
|
41
|
-
const baseURLExample = ` export default HotUpdater.wrap({\n` + ` baseURL: "<your-update-server-url>",\n` + ` updateStrategy: "appVersion"
|
|
42
|
-
|
|
43
|
-
return new Error(`[HotUpdater] Either baseURL or resolver must be provided.\n\n` + `Option 1: Using baseURL (recommended for most cases)\n` + baseURLExample + `Option 2: Using custom resolver (advanced)\n` + resolverExample + `For more information, visit: https://hot-updater.dev/docs/react-native-api/${apiName}`);
|
|
42
|
+
const baseURLExample = ` export default HotUpdater.wrap({\n` + ` baseURL: "<your-update-server-url>",\n` + ` updateStrategy: "appVersion"\n` + ` })(App);\n\n`;
|
|
43
|
+
return new Error(`[HotUpdater] Either baseURL or resolver must be provided.\n\n` + `Configure HotUpdater.wrap with the standard baseURL setup:\n\n` + baseURLExample + `For manual update flows, use HotUpdater.init() and visit: ` + `https://hot-updater.dev/docs/guides/custom-update`);
|
|
44
44
|
};
|
|
45
45
|
const normalizeOptions = options => {
|
|
46
|
-
if (
|
|
46
|
+
if (isManualWrapOptions(options)) {
|
|
47
|
+
if ("baseURL" in options && options.baseURL) {
|
|
48
|
+
const {
|
|
49
|
+
baseURL,
|
|
50
|
+
...rest
|
|
51
|
+
} = options;
|
|
52
|
+
return {
|
|
53
|
+
...rest,
|
|
54
|
+
resolver: createDefaultResolver(baseURL),
|
|
55
|
+
updateMode: "manual"
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
if ("resolver" in options && options.resolver) {
|
|
59
|
+
return {
|
|
60
|
+
...options,
|
|
61
|
+
updateMode: "manual"
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
const autoOptions = options;
|
|
66
|
+
if ("baseURL" in autoOptions && autoOptions.baseURL) {
|
|
47
67
|
const {
|
|
48
68
|
baseURL,
|
|
49
69
|
...rest
|
|
50
|
-
} =
|
|
70
|
+
} = autoOptions;
|
|
51
71
|
return {
|
|
52
72
|
...rest,
|
|
53
|
-
resolver: createDefaultResolver(baseURL)
|
|
73
|
+
resolver: createDefaultResolver(baseURL),
|
|
74
|
+
updateMode: "auto"
|
|
54
75
|
};
|
|
55
76
|
}
|
|
56
|
-
if ("resolver" in
|
|
57
|
-
return
|
|
77
|
+
if ("resolver" in autoOptions && autoOptions.resolver) {
|
|
78
|
+
return {
|
|
79
|
+
...autoOptions,
|
|
80
|
+
updateMode: "auto"
|
|
81
|
+
};
|
|
58
82
|
}
|
|
59
83
|
throw createMissingNetworkConfigError("wrap");
|
|
60
84
|
};
|
|
61
85
|
const normalizeInitOptions = options => {
|
|
62
86
|
const {
|
|
63
|
-
baseURL,
|
|
64
87
|
updateMode: _updateMode,
|
|
65
88
|
...rest
|
|
66
89
|
} = options;
|
|
67
|
-
if (baseURL) {
|
|
90
|
+
if ("baseURL" in rest && rest.baseURL) {
|
|
91
|
+
const {
|
|
92
|
+
baseURL,
|
|
93
|
+
...baseURLRest
|
|
94
|
+
} = rest;
|
|
68
95
|
return {
|
|
69
|
-
...
|
|
96
|
+
...baseURLRest,
|
|
70
97
|
resolver: createDefaultResolver(baseURL)
|
|
71
98
|
};
|
|
72
99
|
}
|
|
100
|
+
if ("resolver" in rest && rest.resolver) {
|
|
101
|
+
return rest;
|
|
102
|
+
}
|
|
73
103
|
throw createMissingNetworkConfigError("init");
|
|
74
104
|
};
|
|
75
105
|
const configureGlobal = (normalizedOptions, options) => {
|
|
76
106
|
globalConfig.resolver = normalizedOptions.resolver;
|
|
77
107
|
globalConfig.requestHeaders = options.requestHeaders;
|
|
78
108
|
globalConfig.requestTimeout = options.requestTimeout;
|
|
109
|
+
globalConfig.onError = options.onError;
|
|
79
110
|
};
|
|
80
111
|
const ensureGlobalResolver = methodName => {
|
|
81
112
|
if (!globalConfig.resolver) {
|
|
82
|
-
throw new Error(`[HotUpdater] ${methodName} requires HotUpdater.wrap() or HotUpdater.init() to be used.\n\n` + `To fix this issue, configure HotUpdater before calling ${methodName}:\n\n` + `Option 1: With HotUpdater.wrap()\n` + ` export default HotUpdater.wrap({\n` + ` baseURL: "<your-update-server-url>",\n` + ` updateStrategy: "appVersion"
|
|
113
|
+
throw new Error(`[HotUpdater] ${methodName} requires HotUpdater.wrap() or HotUpdater.init() to be used.\n\n` + `To fix this issue, configure HotUpdater before calling ${methodName}:\n\n` + `Option 1: With HotUpdater.wrap()\n` + ` export default HotUpdater.wrap({\n` + ` baseURL: "<your-update-server-url>",\n` + ` updateStrategy: "appVersion"\n` + ` })(App);\n\n` + `Option 2: With HotUpdater.init() for custom runtimes\n` + ` HotUpdater.init({\n` + ` baseURL: "<your-update-server-url>",\n` + ` });\n\n` + `For manual update flows, visit: https://hot-updater.dev/docs/guides/custom-update`);
|
|
83
114
|
}
|
|
84
115
|
return globalConfig.resolver;
|
|
85
116
|
};
|
|
@@ -101,7 +132,6 @@ function createHotUpdaterClient() {
|
|
|
101
132
|
* export default HotUpdater.wrap({
|
|
102
133
|
* baseURL: "<your-update-server-url>",
|
|
103
134
|
* updateStrategy: "appVersion",
|
|
104
|
-
* updateMode: "auto",
|
|
105
135
|
* requestHeaders: {
|
|
106
136
|
* "Authorization": "Bearer <your-access-token>",
|
|
107
137
|
* },
|
|
@@ -117,8 +147,8 @@ function createHotUpdaterClient() {
|
|
|
117
147
|
* Initializes HotUpdater without wrapping a React component.
|
|
118
148
|
*
|
|
119
149
|
* Use this for manual update flows in runtimes where a root component HOC
|
|
120
|
-
* is not convenient.
|
|
121
|
-
* `HotUpdater.wrap({ updateMode: "manual" })(App)
|
|
150
|
+
* is not convenient. Replace deprecated manual
|
|
151
|
+
* `HotUpdater.wrap({ updateMode: "manual" })(App)` usage with this API.
|
|
122
152
|
*
|
|
123
153
|
* @example
|
|
124
154
|
* ```tsx
|
|
@@ -282,7 +312,8 @@ function createHotUpdaterClient() {
|
|
|
282
312
|
...globalConfig.requestHeaders,
|
|
283
313
|
...config.requestHeaders
|
|
284
314
|
},
|
|
285
|
-
requestTimeout: config.requestTimeout ?? globalConfig.requestTimeout
|
|
315
|
+
requestTimeout: config.requestTimeout ?? globalConfig.requestTimeout,
|
|
316
|
+
onError: config.onError ?? globalConfig.onError
|
|
286
317
|
};
|
|
287
318
|
return checkForUpdate(mergedConfig);
|
|
288
319
|
},
|
|
@@ -332,8 +363,12 @@ function createHotUpdaterClient() {
|
|
|
332
363
|
const ok = await resetChannel();
|
|
333
364
|
if (ok) {
|
|
334
365
|
hotUpdaterStore.setState({
|
|
366
|
+
artifactType: null,
|
|
367
|
+
details: null,
|
|
368
|
+
downloadedBytes: undefined,
|
|
335
369
|
isUpdateDownloaded: false,
|
|
336
|
-
progress: 0
|
|
370
|
+
progress: 0,
|
|
371
|
+
totalBytes: undefined
|
|
337
372
|
});
|
|
338
373
|
}
|
|
339
374
|
return ok;
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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","init","wrap","extractSignatureFailure","isSignatureVerificationError","registerGlobalGetBaseURL","fn","globalThis","HotUpdaterGetBaseURL","createHotUpdaterClient","globalConfig","resolver","createMissingNetworkConfigError","apiName","Error","baseURLExample","
|
|
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","init","wrap","extractSignatureFailure","isSignatureVerificationError","registerGlobalGetBaseURL","fn","globalThis","HotUpdaterGetBaseURL","isManualWrapOptions","options","updateMode","createHotUpdaterClient","globalConfig","resolver","createMissingNetworkConfigError","apiName","Error","baseURLExample","normalizeOptions","baseURL","rest","autoOptions","normalizeInitOptions","_updateMode","baseURLRest","configureGlobal","normalizedOptions","requestHeaders","requestTimeout","onError","ensureGlobalResolver","methodName","isUpdateDownloaded","getSnapshot","config","mergedConfig","params","ok","setState","artifactType","details","downloadedBytes","undefined","progress","totalBytes","HotUpdater"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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IAEjB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACImC,kBAAkB,EAAEA,CAAA,KAAMjC,eAAe,CAACkC,WAAW,CAAC,CAAC,CAACD,kBAAkB;IAE1E;AACJ;AACA;IACIjD,aAAa;IAEb;AACJ;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,EAAGuD,MAA6B,IAAK;MACjD,MAAMrB,QAAQ,GAAGiB,oBAAoB,CAAC,gBAAgB,CAAC;MAEvD,MAAMK,YAA2C,GAAG;QAClD,GAAGD,MAAM;QACTrB,QAAQ;QACRc,cAAc,EAAE;UACd,GAAGf,YAAY,CAACe,cAAc;UAC9B,GAAGO,MAAM,CAACP;QACZ,CAAC;QACDC,cAAc,EAAEM,MAAM,CAACN,cAAc,IAAIhB,YAAY,CAACgB,cAAc;QACpEC,OAAO,EAAEK,MAAM,CAACL,OAAO,IAAIjB,YAAY,CAACiB;MAC1C,CAAC;MAED,OAAOlD,cAAc,CAACwD,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;IACIrC,YAAY,EAAGsC,MAAoB,IAAK;MACtCN,oBAAoB,CAAC,cAAc,CAAC;MACpC,OAAOhC,YAAY,CAACsC,MAAM,CAAC;IAC7B,CAAC;IAED;AACJ;AACA;AACA;AACA;IACIzC,YAAY,EAAE,MAAAA,CAAA,KAAY;MACxB,MAAM0C,EAAE,GAAG,MAAM1C,YAAY,CAAC,CAAC;MAC/B,IAAI0C,EAAE,EAAE;QACNtC,eAAe,CAACuC,QAAQ,CAAC;UACvBC,YAAY,EAAE,IAAI;UAClBC,OAAO,EAAE,IAAI;UACbC,eAAe,EAAEC,SAAS;UAC1BV,kBAAkB,EAAE,KAAK;UACzBW,QAAQ,EAAE,CAAC;UACXC,UAAU,EAAEF;QACd,CAAC,CAAC;MACJ;MACA,OAAOL,EAAE;IACX,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACI/C,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;AASA,OAAO,MAAM+D,UAA4B,GAAGlC,sBAAsB,CAAC,CAAC","ignoreList":[]}
|
package/lib/module/index.spec.js
CHANGED
|
@@ -118,6 +118,122 @@ describe("HotUpdater client initialization", () => {
|
|
|
118
118
|
resolver
|
|
119
119
|
});
|
|
120
120
|
});
|
|
121
|
+
it("accepts custom resolvers for manual update flows", async () => {
|
|
122
|
+
const resolver = {
|
|
123
|
+
checkUpdate: vi.fn(),
|
|
124
|
+
notifyAppReady: vi.fn()
|
|
125
|
+
};
|
|
126
|
+
const HotUpdater = await importHotUpdater();
|
|
127
|
+
HotUpdater.init({
|
|
128
|
+
resolver,
|
|
129
|
+
requestHeaders: {
|
|
130
|
+
Authorization: "Bearer token"
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
expect(mocks.createDefaultResolver).not.toHaveBeenCalled();
|
|
134
|
+
expect(mocks.init).toHaveBeenCalledWith({
|
|
135
|
+
resolver,
|
|
136
|
+
requestHeaders: {
|
|
137
|
+
Authorization: "Bearer token"
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
it("accepts onError during init and uses it for later manual update checks", async () => {
|
|
142
|
+
const resolver = {
|
|
143
|
+
checkUpdate: vi.fn(),
|
|
144
|
+
notifyAppReady: vi.fn()
|
|
145
|
+
};
|
|
146
|
+
const onError = vi.fn();
|
|
147
|
+
mocks.createDefaultResolver.mockReturnValue(resolver);
|
|
148
|
+
const HotUpdater = await importHotUpdater();
|
|
149
|
+
HotUpdater.init({
|
|
150
|
+
baseURL: "https://updates.example.com",
|
|
151
|
+
onError
|
|
152
|
+
});
|
|
153
|
+
await HotUpdater.checkForUpdate({
|
|
154
|
+
updateStrategy: "appVersion"
|
|
155
|
+
});
|
|
156
|
+
expect(mocks.init).toHaveBeenCalledWith({
|
|
157
|
+
onError,
|
|
158
|
+
resolver
|
|
159
|
+
});
|
|
160
|
+
expect(mocks.checkForUpdate).toHaveBeenCalledWith({
|
|
161
|
+
onError,
|
|
162
|
+
requestHeaders: {},
|
|
163
|
+
requestTimeout: undefined,
|
|
164
|
+
resolver,
|
|
165
|
+
updateStrategy: "appVersion"
|
|
166
|
+
});
|
|
167
|
+
});
|
|
168
|
+
it("lets checkForUpdate override the init onError handler", async () => {
|
|
169
|
+
const resolver = {
|
|
170
|
+
checkUpdate: vi.fn(),
|
|
171
|
+
notifyAppReady: vi.fn()
|
|
172
|
+
};
|
|
173
|
+
const initOnError = vi.fn();
|
|
174
|
+
const checkOnError = vi.fn();
|
|
175
|
+
mocks.createDefaultResolver.mockReturnValue(resolver);
|
|
176
|
+
const HotUpdater = await importHotUpdater();
|
|
177
|
+
HotUpdater.init({
|
|
178
|
+
baseURL: "https://updates.example.com",
|
|
179
|
+
onError: initOnError
|
|
180
|
+
});
|
|
181
|
+
await HotUpdater.checkForUpdate({
|
|
182
|
+
onError: checkOnError,
|
|
183
|
+
updateStrategy: "appVersion"
|
|
184
|
+
});
|
|
185
|
+
expect(mocks.checkForUpdate).toHaveBeenCalledWith({
|
|
186
|
+
onError: checkOnError,
|
|
187
|
+
requestHeaders: {},
|
|
188
|
+
requestTimeout: undefined,
|
|
189
|
+
resolver,
|
|
190
|
+
updateStrategy: "appVersion"
|
|
191
|
+
});
|
|
192
|
+
});
|
|
193
|
+
it("defaults wrap to automatic update mode", async () => {
|
|
194
|
+
const resolver = {
|
|
195
|
+
checkUpdate: vi.fn(),
|
|
196
|
+
notifyAppReady: vi.fn()
|
|
197
|
+
};
|
|
198
|
+
mocks.createDefaultResolver.mockReturnValue(resolver);
|
|
199
|
+
const HotUpdater = await importHotUpdater();
|
|
200
|
+
HotUpdater.wrap({
|
|
201
|
+
baseURL: "https://updates.example.com",
|
|
202
|
+
updateStrategy: "appVersion"
|
|
203
|
+
});
|
|
204
|
+
expect(mocks.wrap).toHaveBeenCalledWith({
|
|
205
|
+
resolver,
|
|
206
|
+
updateMode: "auto",
|
|
207
|
+
updateStrategy: "appVersion"
|
|
208
|
+
});
|
|
209
|
+
});
|
|
210
|
+
it("keeps deprecated manual wrap calls working", async () => {
|
|
211
|
+
const resolver = {
|
|
212
|
+
checkUpdate: vi.fn(),
|
|
213
|
+
notifyAppReady: vi.fn()
|
|
214
|
+
};
|
|
215
|
+
mocks.createDefaultResolver.mockReturnValue(resolver);
|
|
216
|
+
const HotUpdater = await importHotUpdater();
|
|
217
|
+
HotUpdater.wrap({
|
|
218
|
+
baseURL: "https://updates.example.com",
|
|
219
|
+
updateMode: "manual"
|
|
220
|
+
});
|
|
221
|
+
expect(mocks.wrap).toHaveBeenCalledWith({
|
|
222
|
+
resolver,
|
|
223
|
+
updateMode: "manual"
|
|
224
|
+
});
|
|
225
|
+
});
|
|
226
|
+
it("types public wrap to accept pre-typed option unions", () => {
|
|
227
|
+
const compileOnly = (wrap, options) => wrap(options);
|
|
228
|
+
expect(compileOnly).toBeTypeOf("function");
|
|
229
|
+
});
|
|
230
|
+
it("types public init options with onError", () => {
|
|
231
|
+
const options = {
|
|
232
|
+
baseURL: "https://updates.example.com",
|
|
233
|
+
onError: vi.fn()
|
|
234
|
+
};
|
|
235
|
+
expect(options.baseURL).toBe("https://updates.example.com");
|
|
236
|
+
});
|
|
121
237
|
it("uses init configuration for later manual update checks", async () => {
|
|
122
238
|
const resolver = {
|
|
123
239
|
checkUpdate: vi.fn(),
|
|
@@ -156,7 +272,7 @@ describe("HotUpdater client initialization", () => {
|
|
|
156
272
|
});
|
|
157
273
|
it("requires baseURL for init", async () => {
|
|
158
274
|
const HotUpdater = await importHotUpdater();
|
|
159
|
-
expect(() => HotUpdater.init({})).toThrow("baseURL must be provided");
|
|
275
|
+
expect(() => HotUpdater.init({})).toThrow("Either baseURL or resolver must be provided");
|
|
160
276
|
expect(mocks.init).not.toHaveBeenCalled();
|
|
161
277
|
});
|
|
162
278
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["beforeEach","describe","expect","it","vi","mocks","hoisted","addListener","fn","checkForUpdate","clearCrashHistory","createDefaultResolver","getAppVersion","getBaseURL","getBundleId","getChannel","getCohort","getCrashHistory","getDefaultChannel","getFingerprintHash","getManifest","getMinBundleId","init","isChannelSwitched","reload","resetChannel","setCohort","setReloadBehavior","updateBundle","wrap","mock","importHotUpdater","HotUpdater","resetModules","Object","values","mockReset","mockReturnValue","mockResolvedValue","mockImplementation","baseURL","checkUpdate","notifyAppReady","undefined","Component","resolver","result","requestHeaders","Authorization","requestTimeout","toBeUndefined","toHaveBeenCalledWith","resolveBaseURL","updateStrategy","
|
|
1
|
+
{"version":3,"names":["beforeEach","describe","expect","it","vi","mocks","hoisted","addListener","fn","checkForUpdate","clearCrashHistory","createDefaultResolver","getAppVersion","getBaseURL","getBundleId","getChannel","getCohort","getCrashHistory","getDefaultChannel","getFingerprintHash","getManifest","getMinBundleId","init","isChannelSwitched","reload","resetChannel","setCohort","setReloadBehavior","updateBundle","wrap","mock","importHotUpdater","HotUpdater","resetModules","Object","values","mockReset","mockReturnValue","mockResolvedValue","mockImplementation","baseURL","checkUpdate","notifyAppReady","undefined","Component","resolver","result","requestHeaders","Authorization","requestTimeout","toBeUndefined","toHaveBeenCalledWith","resolveBaseURL","not","toHaveBeenCalled","onError","updateStrategy","initOnError","checkOnError","updateMode","compileOnly","options","toBeTypeOf","toBe","toThrow"],"sourceRoot":"../../src","sources":["index.spec.ts"],"mappings":"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","ignoreList":[]}
|