@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.
Files changed (119) hide show
  1. package/HotUpdater.podspec +1 -0
  2. package/android/build.gradle +1 -0
  3. package/android/src/main/java/com/hotupdater/BsdiffPatch.kt +284 -0
  4. package/android/src/main/java/com/hotupdater/BundleFileStorageService.kt +885 -5
  5. package/android/src/main/java/com/hotupdater/HotUpdaterImpl.kt +13 -2
  6. package/android/src/main/java/com/hotupdater/OkHttpDownloadService.kt +37 -8
  7. package/android/src/main/java/com/hotupdater/ReactNativeValueConverters.kt +48 -12
  8. package/android/src/main/java/com/hotupdater/SignatureVerifier.kt +60 -22
  9. package/android/src/newarch/HotUpdater.kt +14 -2
  10. package/android/src/newarch/HotUpdaterModule.kt +112 -1
  11. package/android/src/oldarch/HotUpdater.kt +14 -2
  12. package/android/src/oldarch/HotUpdaterModule.kt +107 -3
  13. package/android/src/test/java/com/hotupdater/BsdiffPatchTest.kt +46 -0
  14. package/android/src/test/java/com/hotupdater/BundleFileStorageServiceTest.kt +29 -1
  15. package/android/src/test/java/com/hotupdater/HotUpdaterImplTest.kt +4 -1
  16. package/ios/HotUpdater/Internal/BsdiffPatchBridge.h +16 -0
  17. package/ios/HotUpdater/Internal/BsdiffPatchBridge.mm +343 -0
  18. package/ios/HotUpdater/Internal/BundleFileStorageService.swift +1093 -47
  19. package/ios/HotUpdater/Internal/HotUpdater-Bridging-Header.h +2 -0
  20. package/ios/HotUpdater/Internal/HotUpdater.mm +12 -2
  21. package/ios/HotUpdater/Internal/HotUpdaterImpl.swift +64 -5
  22. package/ios/HotUpdater/Internal/NotificationExtension.swift +2 -1
  23. package/ios/HotUpdater/Internal/SignatureVerifier.swift +28 -5
  24. package/ios/HotUpdater/Internal/StreamingTarArchiveExtractor.swift +11 -0
  25. package/ios/HotUpdater/Internal/URLSessionDownloadService.swift +11 -5
  26. package/lib/commonjs/DefaultResolver.js +6 -2
  27. package/lib/commonjs/DefaultResolver.js.map +1 -1
  28. package/lib/commonjs/DefaultResolver.spec.js +79 -3
  29. package/lib/commonjs/DefaultResolver.spec.js.map +1 -1
  30. package/lib/commonjs/checkForUpdate.js +6 -0
  31. package/lib/commonjs/checkForUpdate.js.map +1 -1
  32. package/lib/commonjs/index.js +53 -18
  33. package/lib/commonjs/index.js.map +1 -1
  34. package/lib/commonjs/index.spec.js +117 -1
  35. package/lib/commonjs/index.spec.js.map +1 -1
  36. package/lib/commonjs/native.js +40 -16
  37. package/lib/commonjs/native.js.map +1 -1
  38. package/lib/commonjs/native.spec.js +119 -3
  39. package/lib/commonjs/native.spec.js.map +1 -1
  40. package/lib/commonjs/sdkVersion.js +8 -0
  41. package/lib/commonjs/sdkVersion.js.map +1 -0
  42. package/lib/commonjs/specs/NativeHotUpdater.js.map +1 -1
  43. package/lib/commonjs/store.js +72 -5
  44. package/lib/commonjs/store.js.map +1 -1
  45. package/lib/commonjs/store.spec.js +265 -8
  46. package/lib/commonjs/store.spec.js.map +1 -1
  47. package/lib/commonjs/wrap.js +19 -5
  48. package/lib/commonjs/wrap.js.map +1 -1
  49. package/lib/commonjs/wrap.spec.js +74 -0
  50. package/lib/commonjs/wrap.spec.js.map +1 -1
  51. package/lib/module/DefaultResolver.js +6 -2
  52. package/lib/module/DefaultResolver.js.map +1 -1
  53. package/lib/module/DefaultResolver.spec.js +78 -3
  54. package/lib/module/DefaultResolver.spec.js.map +1 -1
  55. package/lib/module/checkForUpdate.js +6 -0
  56. package/lib/module/checkForUpdate.js.map +1 -1
  57. package/lib/module/index.js +53 -18
  58. package/lib/module/index.js.map +1 -1
  59. package/lib/module/index.spec.js +117 -1
  60. package/lib/module/index.spec.js.map +1 -1
  61. package/lib/module/native.js +40 -16
  62. package/lib/module/native.js.map +1 -1
  63. package/lib/module/native.spec.js +119 -3
  64. package/lib/module/native.spec.js.map +1 -1
  65. package/lib/module/sdkVersion.js +4 -0
  66. package/lib/module/sdkVersion.js.map +1 -0
  67. package/lib/module/specs/NativeHotUpdater.js.map +1 -1
  68. package/lib/module/store.js +72 -5
  69. package/lib/module/store.js.map +1 -1
  70. package/lib/module/store.spec.js +265 -8
  71. package/lib/module/store.spec.js.map +1 -1
  72. package/lib/module/wrap.js +19 -5
  73. package/lib/module/wrap.js.map +1 -1
  74. package/lib/module/wrap.spec.js +74 -0
  75. package/lib/module/wrap.spec.js.map +1 -1
  76. package/lib/typescript/commonjs/DefaultResolver.d.ts.map +1 -1
  77. package/lib/typescript/commonjs/checkForUpdate.d.ts +2 -2
  78. package/lib/typescript/commonjs/checkForUpdate.d.ts.map +1 -1
  79. package/lib/typescript/commonjs/index.d.ts +36 -8
  80. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  81. package/lib/typescript/commonjs/native.d.ts +56 -3
  82. package/lib/typescript/commonjs/native.d.ts.map +1 -1
  83. package/lib/typescript/commonjs/sdkVersion.d.ts +2 -0
  84. package/lib/typescript/commonjs/sdkVersion.d.ts.map +1 -0
  85. package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts +27 -0
  86. package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts.map +1 -1
  87. package/lib/typescript/commonjs/store.d.ts +5 -0
  88. package/lib/typescript/commonjs/store.d.ts.map +1 -1
  89. package/lib/typescript/commonjs/wrap.d.ts +43 -29
  90. package/lib/typescript/commonjs/wrap.d.ts.map +1 -1
  91. package/lib/typescript/module/DefaultResolver.d.ts.map +1 -1
  92. package/lib/typescript/module/checkForUpdate.d.ts +2 -2
  93. package/lib/typescript/module/checkForUpdate.d.ts.map +1 -1
  94. package/lib/typescript/module/index.d.ts +36 -8
  95. package/lib/typescript/module/index.d.ts.map +1 -1
  96. package/lib/typescript/module/native.d.ts +56 -3
  97. package/lib/typescript/module/native.d.ts.map +1 -1
  98. package/lib/typescript/module/sdkVersion.d.ts +2 -0
  99. package/lib/typescript/module/sdkVersion.d.ts.map +1 -0
  100. package/lib/typescript/module/specs/NativeHotUpdater.d.ts +27 -0
  101. package/lib/typescript/module/specs/NativeHotUpdater.d.ts.map +1 -1
  102. package/lib/typescript/module/store.d.ts +5 -0
  103. package/lib/typescript/module/store.d.ts.map +1 -1
  104. package/lib/typescript/module/wrap.d.ts +43 -29
  105. package/lib/typescript/module/wrap.d.ts.map +1 -1
  106. package/package.json +20 -10
  107. package/src/DefaultResolver.spec.ts +103 -3
  108. package/src/DefaultResolver.ts +9 -2
  109. package/src/checkForUpdate.ts +9 -2
  110. package/src/index.spec.ts +149 -1
  111. package/src/index.ts +99 -40
  112. package/src/native.spec.ts +139 -1
  113. package/src/native.ts +145 -31
  114. package/src/sdkVersion.ts +1 -0
  115. package/src/specs/NativeHotUpdater.ts +28 -0
  116. package/src/store.spec.ts +324 -9
  117. package/src/store.ts +133 -7
  118. package/src/wrap.spec.ts +91 -0
  119. 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: undefined,
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: undefined,
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: undefined,
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","resolveBaseURL","resolver","checkUpdate","toHaveBeenCalledWith","requestHeaders","undefined","requestTimeout","url","mockResolvedValueOnce","toHaveBeenCalledTimes","toHaveBeenNthCalledWith","rejects","toThrow"],"sourceRoot":"../../src","sources":["DefaultResolver.spec.ts"],"mappings":"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","ignoreList":[]}
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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","ignoreList":[]}
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":[]}
@@ -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 more information, visit: https://hot-updater.dev/docs/react-native-api/init`);
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",\n` + ` updateMode: "auto"\n` + ` })(App);\n\n`;
42
- const resolverExample = ` export default HotUpdater.wrap({\n` + ` resolver: {\n` + ` checkUpdate: async (params) => { /* custom logic */ },\n` + ` notifyAppReady: async (params) => { /* custom logic */ }\n` + ` },\n` + ` updateMode: "manual"\n` + ` })(App);\n\n`;
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 ("baseURL" in options && options.baseURL) {
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
- } = options;
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 options && options.resolver) {
57
- return options;
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
- ...rest,
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",\n` + ` updateMode: "auto"\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 more information, visit: https://hot-updater.dev/docs/react-native-api/wrap ` + `or https://hot-updater.dev/docs/react-native-api/init`);
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. It has the same initialization effect as
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;
@@ -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","resolverExample","normalizeOptions","options","baseURL","rest","normalizeInitOptions","updateMode","_updateMode","configureGlobal","normalizedOptions","requestHeaders","requestTimeout","ensureGlobalResolver","methodName","isUpdateDownloaded","getSnapshot","config","mergedConfig","params","ok","setState","progress","HotUpdater"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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AAC;EAED,OAAO;IACL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIT,IAAI,EAAGgB,OAA0B,IAAK;MACpC,MAAMO,iBAAiB,GAAGR,gBAAgB,CAACC,OAAO,CAAC;MACnDM,eAAe,CAACC,iBAAiB,EAAEP,OAAO,CAAC;MAE3C,OAAOhB,IAAI,CAACuB,iBAAiB,CAAC;IAChC,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIxB,IAAI,EAAGiB,OAA8B,IAAW;MAC9C,MAAMO,iBAAiB,GAAGJ,oBAAoB,CAACH,OAAO,CAAC;MAEvDM,eAAe,CAACC,iBAAiB,EAAEP,OAAO,CAAC;MAE3CjB,IAAI,CAACwB,iBAAiB,CAAC;IACzB,CAAC;IAED;AACJ;AACA;IACI9B,MAAM;IAEN;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIG,iBAAiB;IAEjB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIgC,kBAAkB,EAAEA,CAAA,KAAM9B,eAAe,CAAC+B,WAAW,CAAC,CAAC,CAACD,kBAAkB;IAE1E;AACJ;AACA;IACI9C,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,EAAGoD,MAA6B,IAAK;MACjD,MAAMrB,QAAQ,GAAGiB,oBAAoB,CAAC,gBAAgB,CAAC;MAEvD,MAAMK,YAA2C,GAAG;QAClD,GAAGD,MAAM;QACTrB,QAAQ;QACRe,cAAc,EAAE;UACd,GAAGhB,YAAY,CAACgB,cAAc;UAC9B,GAAGM,MAAM,CAACN;QACZ,CAAC;QACDC,cAAc,EAAEK,MAAM,CAACL,cAAc,IAAIjB,YAAY,CAACiB;MACxD,CAAC;MAED,OAAO/C,cAAc,CAACqD,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;IACIlC,YAAY,EAAGmC,MAAoB,IAAK;MACtCN,oBAAoB,CAAC,cAAc,CAAC;MACpC,OAAO7B,YAAY,CAACmC,MAAM,CAAC;IAC7B,CAAC;IAED;AACJ;AACA;AACA;AACA;IACItC,YAAY,EAAE,MAAAA,CAAA,KAAY;MACxB,MAAMuC,EAAE,GAAG,MAAMvC,YAAY,CAAC,CAAC;MAC/B,IAAIuC,EAAE,EAAE;QACNnC,eAAe,CAACoC,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;IACI5C,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,MAAMuD,UAAU,GAAG7B,sBAAsB,CAAC,CAAC","ignoreList":[]}
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":[]}
@@ -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","toThrow","not","toHaveBeenCalled"],"sourceRoot":"../../src","sources":["index.spec.ts"],"mappings":"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","ignoreList":[]}
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":[]}