@hot-updater/react-native 0.24.0 → 0.24.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 (46) hide show
  1. package/lib/commonjs/DefaultResolver.js +38 -0
  2. package/lib/commonjs/DefaultResolver.js.map +1 -0
  3. package/lib/commonjs/checkForUpdate.js +35 -50
  4. package/lib/commonjs/checkForUpdate.js.map +1 -1
  5. package/lib/commonjs/index.js +26 -14
  6. package/lib/commonjs/index.js.map +1 -1
  7. package/lib/commonjs/types.js +12 -0
  8. package/lib/commonjs/types.js.map +1 -1
  9. package/lib/commonjs/wrap.js +44 -13
  10. package/lib/commonjs/wrap.js.map +1 -1
  11. package/lib/module/DefaultResolver.js +34 -0
  12. package/lib/module/DefaultResolver.js.map +1 -0
  13. package/lib/module/checkForUpdate.js +35 -50
  14. package/lib/module/checkForUpdate.js.map +1 -1
  15. package/lib/module/index.js +26 -14
  16. package/lib/module/index.js.map +1 -1
  17. package/lib/module/types.js +12 -0
  18. package/lib/module/types.js.map +1 -1
  19. package/lib/module/wrap.js +44 -13
  20. package/lib/module/wrap.js.map +1 -1
  21. package/lib/typescript/commonjs/DefaultResolver.d.ts +10 -0
  22. package/lib/typescript/commonjs/DefaultResolver.d.ts.map +1 -0
  23. package/lib/typescript/commonjs/checkForUpdate.d.ts +2 -1
  24. package/lib/typescript/commonjs/checkForUpdate.d.ts.map +1 -1
  25. package/lib/typescript/commonjs/index.d.ts +3 -3
  26. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  27. package/lib/typescript/commonjs/types.d.ts +115 -0
  28. package/lib/typescript/commonjs/types.d.ts.map +1 -1
  29. package/lib/typescript/commonjs/wrap.d.ts +64 -10
  30. package/lib/typescript/commonjs/wrap.d.ts.map +1 -1
  31. package/lib/typescript/module/DefaultResolver.d.ts +10 -0
  32. package/lib/typescript/module/DefaultResolver.d.ts.map +1 -0
  33. package/lib/typescript/module/checkForUpdate.d.ts +2 -1
  34. package/lib/typescript/module/checkForUpdate.d.ts.map +1 -1
  35. package/lib/typescript/module/index.d.ts +3 -3
  36. package/lib/typescript/module/index.d.ts.map +1 -1
  37. package/lib/typescript/module/types.d.ts +115 -0
  38. package/lib/typescript/module/types.d.ts.map +1 -1
  39. package/lib/typescript/module/wrap.d.ts +64 -10
  40. package/lib/typescript/module/wrap.d.ts.map +1 -1
  41. package/package.json +7 -7
  42. package/src/DefaultResolver.ts +36 -0
  43. package/src/checkForUpdate.ts +43 -59
  44. package/src/index.ts +51 -19
  45. package/src/types.ts +135 -0
  46. package/src/wrap.tsx +161 -72
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { checkForUpdate } from "./checkForUpdate.js";
4
+ import { createDefaultResolver } from "./DefaultResolver.js";
4
5
  import { addListener, clearCrashHistory, getAppVersion, getBundleId, getChannel, getCrashHistory, getFingerprintHash, getMinBundleId, reload, updateBundle } from "./native.js";
5
6
  import { hotUpdaterStore } from "./store.js";
6
7
  import { wrap } from "./wrap.js";
@@ -21,14 +22,14 @@ addListener("onProgress", ({
21
22
  function createHotUpdaterClient() {
22
23
  // Global configuration stored from wrap
23
24
  const globalConfig = {
24
- baseURL: null
25
+ resolver: null
25
26
  };
26
- function ensureGlobalBaseURL(methodName) {
27
- if (globalConfig.baseURL === null) {
27
+ const ensureGlobalResolver = methodName => {
28
+ if (!globalConfig.resolver) {
28
29
  throw new Error(`[HotUpdater] ${methodName} requires HotUpdater.wrap() to be used.\n\n` + `To fix this issue, wrap your root component with HotUpdater.wrap():\n\n` + `Option 1: With automatic updates\n` + ` export default HotUpdater.wrap({\n` + ` baseURL: "<your-update-server-url>",\n` + ` updateStrategy: "appVersion",\n` + ` updateMode: "auto"\n` + ` })(App);\n\n` + `Option 2: Manual updates only (custom flow)\n` + ` export default HotUpdater.wrap({\n` + ` baseURL: "<your-update-server-url>",\n` + ` updateMode: "manual"\n` + ` })(App);\n\n` + `For more information, visit: https://hot-updater.dev/docs/react-native-api/wrap`);
29
30
  }
30
- return globalConfig.baseURL;
31
- }
31
+ return globalConfig.resolver;
32
+ };
32
33
  return {
33
34
  /**
34
35
  * `HotUpdater.wrap` checks for updates at the entry point, and if there is a bundle to update, it downloads the bundle and applies the update strategy.
@@ -55,10 +56,25 @@ function createHotUpdaterClient() {
55
56
  * ```
56
57
  */
57
58
  wrap: options => {
58
- globalConfig.baseURL = options.baseURL;
59
+ let normalizedOptions;
60
+ if ("baseURL" in options && options.baseURL) {
61
+ const {
62
+ baseURL,
63
+ ...rest
64
+ } = options;
65
+ normalizedOptions = {
66
+ ...rest,
67
+ resolver: createDefaultResolver(baseURL)
68
+ };
69
+ } else if ("resolver" in options && options.resolver) {
70
+ normalizedOptions = options;
71
+ } else {
72
+ throw new Error(`[HotUpdater] Either baseURL or resolver must be provided.\n\n` + `Option 1: Using baseURL (recommended for most cases)\n` + ` export default HotUpdater.wrap({\n` + ` baseURL: "<your-update-server-url>",\n` + ` updateStrategy: "appVersion",\n` + ` updateMode: "auto"\n` + ` })(App);\n\n` + `Option 2: Using custom resolver (advanced)\n` + ` 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` + `For more information, visit: https://hot-updater.dev/docs/react-native-api/wrap`);
73
+ }
74
+ globalConfig.resolver = normalizedOptions.resolver;
59
75
  globalConfig.requestHeaders = options.requestHeaders;
60
76
  globalConfig.requestTimeout = options.requestTimeout;
61
- return wrap(options);
77
+ return wrap(normalizedOptions);
62
78
  },
63
79
  /**
64
80
  * Reloads the app.
@@ -156,14 +172,10 @@ function createHotUpdaterClient() {
156
172
  * ```
157
173
  */
158
174
  checkForUpdate: config => {
159
- const baseURL = ensureGlobalBaseURL("checkForUpdate");
160
-
161
- // Merge globalConfig with provided config
162
- // baseURL is always from wrap (globalConfig)
163
- // requestHeaders/requestTimeout from wrap are used as defaults, but can be overridden
175
+ const resolver = ensureGlobalResolver("checkForUpdate");
164
176
  const mergedConfig = {
165
177
  ...config,
166
- baseURL,
178
+ resolver,
167
179
  requestHeaders: {
168
180
  ...globalConfig.requestHeaders,
169
181
  ...config.requestHeaders
@@ -206,7 +218,7 @@ function createHotUpdaterClient() {
206
218
  * ```
207
219
  */
208
220
  updateBundle: params => {
209
- ensureGlobalBaseURL("updateBundle");
221
+ ensureGlobalResolver("updateBundle");
210
222
  return updateBundle(params);
211
223
  },
212
224
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["checkForUpdate","addListener","clearCrashHistory","getAppVersion","getBundleId","getChannel","getCrashHistory","getFingerprintHash","getMinBundleId","reload","updateBundle","hotUpdaterStore","wrap","extractSignatureFailure","isSignatureVerificationError","progress","setState","createHotUpdaterClient","globalConfig","baseURL","ensureGlobalBaseURL","methodName","Error","options","requestHeaders","requestTimeout","isUpdateDownloaded","getSnapshot","config","mergedConfig","params","HotUpdater"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SAEEA,cAAc,QAET,qBAAkB;AACzB,SACEC,WAAW,EACXC,iBAAiB,EACjBC,aAAa,EACbC,WAAW,EACXC,UAAU,EACVC,eAAe,EACfC,kBAAkB,EAClBC,cAAc,EACdC,MAAM,EAENC,YAAY,QACP,aAAU;AACjB,SAASC,eAAe,QAAQ,YAAS;AACzC,SAAiCC,IAAI,QAAQ,WAAQ;AAGrD,cAAc,YAAS;AACvB,SACEC,uBAAuB,EACvBC,4BAA4B,QAEvB,YAAS;AAGhBb,WAAW,CAAC,YAAY,EAAE,CAAC;EAAEc;AAAS,CAAC,KAAK;EAC1CJ,eAAe,CAACK,QAAQ,CAAC;IACvBD;EACF,CAAC,CAAC;AACJ,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA,SAASE,sBAAsBA,CAAA,EAAG;EAChC;EACA,MAAMC,YAIL,GAAG;IACFC,OAAO,EAAE;EACX,CAAC;EAED,SAASC,mBAAmBA,CAACC,UAAkB,EAAE;IAC/C,IAAIH,YAAY,CAACC,OAAO,KAAK,IAAI,EAAE;MACjC,MAAM,IAAIG,KAAK,CACb,gBAAgBD,UAAU,6CAA6C,GACrE,yEAAyE,GACzE,oCAAoC,GACpC,sCAAsC,GACtC,4CAA4C,GAC5C,qCAAqC,GACrC,0BAA0B,GAC1B,gBAAgB,GAChB,+CAA+C,GAC/C,sCAAsC,GACtC,4CAA4C,GAC5C,4BAA4B,GAC5B,gBAAgB,GAChB,iFACJ,CAAC;IACH;IAEA,OAAOH,YAAY,CAACC,OAAO;EAC7B;EAEA,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;IACIP,IAAI,EAAIW,OAA0B,IAAK;MACrCL,YAAY,CAACC,OAAO,GAAGI,OAAO,CAACJ,OAAO;MACtCD,YAAY,CAACM,cAAc,GAAGD,OAAO,CAACC,cAAc;MACpDN,YAAY,CAACO,cAAc,GAAGF,OAAO,CAACE,cAAc;MACpD,OAAOb,IAAI,CAACW,OAAO,CAAC;IACtB,CAAiB;IAEjB;AACJ;AACA;IACId,MAAM;IAEN;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIiB,kBAAkB,EAAEA,CAAA,KAAMf,eAAe,CAACgB,WAAW,CAAC,CAAC,CAACD,kBAAkB;IAE1E;AACJ;AACA;IACIvB,aAAa;IAEb;AACJ;AACA;IACIC,WAAW;IAEX;AACJ;AACA;IACII,cAAc;IAEd;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIH,UAAU;IAEV;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIJ,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;IACID,cAAc,EAAG4B,MAA6B,IAAK;MACjD,MAAMT,OAAO,GAAGC,mBAAmB,CAAC,gBAAgB,CAAC;;MAErD;MACA;MACA;MACA,MAAMS,YAA2C,GAAG;QAClD,GAAGD,MAAM;QACTT,OAAO;QACPK,cAAc,EAAE;UACd,GAAGN,YAAY,CAACM,cAAc;UAC9B,GAAGI,MAAM,CAACJ;QACZ,CAAC;QACDC,cAAc,EAAEG,MAAM,CAACH,cAAc,IAAIP,YAAY,CAACO;MACxD,CAAC;MAED,OAAOzB,cAAc,CAAC6B,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;IACInB,YAAY,EAAGoB,MAAoB,IAAK;MACtCV,mBAAmB,CAAC,cAAc,CAAC;MAEnC,OAAOV,YAAY,CAACoB,MAAM,CAAC;IAC7B,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIvB,kBAAkB;IAElB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACID,eAAe;IAEf;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIJ;EACF,CAAC;AACH;AAEA,OAAO,MAAM6B,UAAU,GAAGd,sBAAsB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["checkForUpdate","createDefaultResolver","addListener","clearCrashHistory","getAppVersion","getBundleId","getChannel","getCrashHistory","getFingerprintHash","getMinBundleId","reload","updateBundle","hotUpdaterStore","wrap","extractSignatureFailure","isSignatureVerificationError","progress","setState","createHotUpdaterClient","globalConfig","resolver","ensureGlobalResolver","methodName","Error","options","normalizedOptions","baseURL","rest","requestHeaders","requestTimeout","isUpdateDownloaded","getSnapshot","config","mergedConfig","params","HotUpdater"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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BAAgB,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,OAAO7B,cAAc,CAACiC,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;IACItB,YAAY,EAAGuB,MAAoB,IAAK;MACtCb,oBAAoB,CAAC,cAAc,CAAC;MACpC,OAAOV,YAAY,CAACuB,MAAM,CAAC;IAC7B,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACI1B,kBAAkB;IAElB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACID,eAAe;IAEf;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIJ;EACF,CAAC;AACH;AAEA,OAAO,MAAMgC,UAAU,GAAGjB,sBAAsB,CAAC,CAAC","ignoreList":[]}
@@ -1,5 +1,17 @@
1
1
  "use strict";
2
2
 
3
+ /**
4
+ * Parameters passed to resolver.checkUpdate method
5
+ */
6
+
7
+ /**
8
+ * Parameters passed to resolver.notifyAppReady method
9
+ */
10
+
11
+ /**
12
+ * Resolver interface for custom network operations
13
+ */
14
+
3
15
  /**
4
16
  * Information about a signature verification failure.
5
17
  * This is a security-critical event that indicates the bundle
@@ -1 +1 @@
1
- {"version":3,"names":["isSignatureVerificationError","error","Error","message","toLowerCase","includes","extractSignatureFailure","bundleId","normalizedError","String"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,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;AACA,OAAO,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":[]}
1
+ {"version":3,"names":["isSignatureVerificationError","error","Error","message","toLowerCase","includes","extractSignatureFailure","bundleId","normalizedError","String"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;AAGA;AACA;AACA;;AAgDA;AACA;AACA;;AA0BA;AACA;AACA;;AAoDA;AACA;AACA;AACA;AACA;;AAgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,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;AACA,OAAO,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":[]}
@@ -9,18 +9,54 @@ import { useHotUpdaterStore } from "./store.js";
9
9
  /**
10
10
  * Common options shared between auto and manual update modes
11
11
  */
12
+
13
+ /**
14
+ * Configuration with baseURL for standard server-based updates
15
+ */
16
+
17
+ /**
18
+ * Configuration with resolver for custom network operations
19
+ */
20
+
21
+ /**
22
+ * Union type ensuring baseURL and resolver are mutually exclusive
23
+ */
24
+
25
+ /**
26
+ * Internal options after normalization in index.ts
27
+ * Always has resolver (never baseURL)
28
+ */
12
29
  import { jsx as _jsx } from "react/jsx-runtime";
30
+ /**
31
+ * Helper function to handle notifyAppReady flow
32
+ */
33
+ const handleNotifyAppReady = async options => {
34
+ try {
35
+ // Always call native notifyAppReady for bundle promotion
36
+ const nativeResult = nativeNotifyAppReady();
37
+
38
+ // If resolver.notifyAppReady exists, call it with simplified params
39
+ if (options.resolver?.notifyAppReady) {
40
+ await options.resolver.notifyAppReady({
41
+ status: nativeResult.status,
42
+ crashedBundleId: nativeResult.crashedBundleId,
43
+ requestHeaders: options.requestHeaders,
44
+ requestTimeout: options.requestTimeout
45
+ }).catch(e => {
46
+ console.warn("[HotUpdater] Resolver notifyAppReady failed:", e);
47
+ });
48
+ }
49
+ options.onNotifyAppReady?.(nativeResult);
50
+ } catch (e) {
51
+ console.warn("[HotUpdater] Failed to notify app ready:", e);
52
+ }
53
+ };
13
54
  export function wrap(options) {
14
55
  if (options.updateMode === "manual") {
15
56
  return WrappedComponent => {
16
57
  const ManualHOC = props => {
17
58
  useLayoutEffect(() => {
18
- try {
19
- const result = nativeNotifyAppReady();
20
- options.onNotifyAppReady?.(result);
21
- } catch (e) {
22
- console.warn("[HotUpdater] Failed to notify app ready:", e);
23
- }
59
+ void handleNotifyAppReady(options);
24
60
  }, []);
25
61
  return /*#__PURE__*/_jsx(WrappedComponent, {
26
62
  ...props
@@ -44,7 +80,7 @@ export function wrap(options) {
44
80
  try {
45
81
  setUpdateStatus("CHECK_FOR_UPDATE");
46
82
  const updateInfo = await checkForUpdate({
47
- baseURL: restOptions.baseURL,
83
+ resolver: restOptions.resolver,
48
84
  updateStrategy: restOptions.updateStrategy,
49
85
  requestHeaders: restOptions.requestHeaders,
50
86
  requestTimeout: restOptions.requestTimeout,
@@ -101,12 +137,7 @@ export function wrap(options) {
101
137
 
102
138
  // Notify native side that app is ready (JS bundle fully loaded)
103
139
  useLayoutEffect(() => {
104
- try {
105
- const result = nativeNotifyAppReady();
106
- restOptions.onNotifyAppReady?.(result);
107
- } catch (e) {
108
- console.warn("[HotUpdater] Failed to notify app ready:", e);
109
- }
140
+ void handleNotifyAppReady(restOptions);
110
141
  }, []);
111
142
 
112
143
  // Start update check
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useLayoutEffect","useState","checkForUpdate","useEventCallback","getBundleId","notifyAppReady","nativeNotifyAppReady","reload","useHotUpdaterStore","jsx","_jsx","wrap","options","updateMode","WrappedComponent","ManualHOC","props","result","onNotifyAppReady","e","console","warn","reloadOnForceUpdate","restOptions","HotUpdaterHOC","progress","state","message","setMessage","updateStatus","setUpdateStatus","initHotUpdater","updateInfo","baseURL","updateStrategy","requestHeaders","requestTimeout","onError","onUpdateProcessCompleted","status","shouldForceUpdate","id","updateBundle","catch","error","isSuccess","Error","onProgress","fallbackComponent","Fallback"],"sourceRoot":"../../src","sources":["wrap.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useLayoutEffect","useState","checkForUpdate","useEventCallback","getBundleId","notifyAppReady","nativeNotifyAppReady","reload","useHotUpdaterStore","jsx","_jsx","handleNotifyAppReady","options","nativeResult","resolver","status","crashedBundleId","requestHeaders","requestTimeout","catch","e","console","warn","onNotifyAppReady","wrap","updateMode","WrappedComponent","ManualHOC","props","reloadOnForceUpdate","restOptions","HotUpdaterHOC","progress","state","message","setMessage","updateStatus","setUpdateStatus","initHotUpdater","updateInfo","updateStrategy","onError","onUpdateProcessCompleted","shouldForceUpdate","id","updateBundle","error","isSuccess","Error","onProgress","fallbackComponent","Fallback"],"sourceRoot":"../../src","sources":["wrap.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ import type { HotUpdaterResolver } from "./types";
2
+ /**
3
+ * Creates a default resolver that uses baseURL for network operations.
4
+ * This encapsulates the existing baseURL logic into a resolver.
5
+ *
6
+ * @param baseURL - The base URL for the update server
7
+ * @returns A HotUpdaterResolver that uses the baseURL
8
+ */
9
+ export declare function createDefaultResolver(baseURL: string): HotUpdaterResolver;
10
+ //# sourceMappingURL=DefaultResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultResolver.d.ts","sourceRoot":"","sources":["../../../src/DefaultResolver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAA6B,MAAM,SAAS,CAAC;AAE7E;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,CAwBzE"}
@@ -1,4 +1,5 @@
1
1
  import type { AppUpdateInfo } from "@hot-updater/core";
2
+ import type { HotUpdaterResolver } from "./types";
2
3
  export interface CheckForUpdateOptions {
3
4
  /**
4
5
  * Update strategy
@@ -23,7 +24,7 @@ export type CheckForUpdateResult = AppUpdateInfo & {
23
24
  updateBundle: () => Promise<boolean>;
24
25
  };
25
26
  export interface InternalCheckForUpdateOptions extends CheckForUpdateOptions {
26
- baseURL: string;
27
+ resolver: HotUpdaterResolver;
27
28
  }
28
29
  export declare function checkForUpdate(options: InternalCheckForUpdateOptions): Promise<CheckForUpdateResult | null>;
29
30
  //# sourceMappingURL=checkForUpdate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkForUpdate.d.ts","sourceRoot":"","sources":["../../../src/checkForUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAsB,MAAM,mBAAmB,CAAC;AAa3E,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,cAAc,EAAE,YAAY,GAAG,aAAa,CAAC;IAE7C,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG;IACjD;;;OAGG;IACH,YAAY,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACtC,CAAC;AAGF,MAAM,WAAW,6BAA8B,SAAQ,qBAAqB;IAC1E,OAAO,EAAE,MAAM,CAAC;CACjB;AAqBD,wBAAsB,cAAc,CAClC,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CA+DtC"}
1
+ {"version":3,"file":"checkForUpdate.d.ts","sourceRoot":"","sources":["../../../src/checkForUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAWvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,cAAc,EAAE,YAAY,GAAG,aAAa,CAAC;IAE7C,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG;IACjD;;;OAGG;IACH,YAAY,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACtC,CAAC;AAGF,MAAM,WAAW,6BAA8B,SAAQ,qBAAqB;IAC1E,QAAQ,EAAE,kBAAkB,CAAC;CAC9B;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAkEtC"}
@@ -1,9 +1,9 @@
1
1
  import { type CheckForUpdateOptions } from "./checkForUpdate";
2
2
  import { type UpdateParams } from "./native";
3
- import { wrap } from "./wrap";
3
+ import { type HotUpdaterOptions } from "./wrap";
4
4
  export type { HotUpdaterEvent, NotifyAppReadyResult } from "./native";
5
5
  export * from "./store";
6
- export { extractSignatureFailure, isSignatureVerificationError, type SignatureVerificationFailure, } from "./types";
6
+ export { extractSignatureFailure, type HotUpdaterResolver, isSignatureVerificationError, type ResolverCheckUpdateParams, type ResolverNotifyAppReadyParams, type SignatureVerificationFailure, } from "./types";
7
7
  export type { HotUpdaterOptions, RunUpdateProcessResponse } from "./wrap";
8
8
  export declare const HotUpdater: {
9
9
  /**
@@ -30,7 +30,7 @@ export declare const HotUpdater: {
30
30
  * })(App);
31
31
  * ```
32
32
  */
33
- wrap: typeof wrap;
33
+ wrap: (options: HotUpdaterOptions) => (WrappedComponent: import("react").ComponentType<object>) => import("react").ComponentType<object>;
34
34
  /**
35
35
  * Reloads the app.
36
36
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,qBAAqB,EAG3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAUL,KAAK,YAAY,EAElB,MAAM,UAAU,CAAC;AAElB,OAAO,EAA0B,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEtD,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACtE,cAAc,SAAS,CAAC;AACxB,OAAO,EACL,uBAAuB,EACvB,4BAA4B,EAC5B,KAAK,4BAA4B,GAClC,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,QAAQ,CAAC;AAwR1E,eAAO,MAAM,UAAU;IA1OnB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;UAMG,OAAO,IAAI;IAEjB;;OAEG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;;;;;;;;;;OAYG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;6BACsB,qBAAqB;IAmB9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;2BACoB,YAAY;IAMnC;;;;;;;;;;OAUG;;IAGH;;;;;;;;;;;OAWG;;IAGH;;;;;;;;;;;OAWG;;CAK2C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,qBAAqB,EAG3B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAUL,KAAK,YAAY,EAElB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,KAAK,iBAAiB,EAAkC,MAAM,QAAQ,CAAC;AAEhF,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACtE,cAAc,SAAS,CAAC;AACxB,OAAO,EACL,uBAAuB,EACvB,KAAK,kBAAkB,EACvB,4BAA4B,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,GAClC,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,QAAQ,CAAC;AAmT1E,eAAO,MAAM,UAAU;IAtQnB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;oBACa,iBAAiB;IAuCjC;;OAEG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;;;;;;;;;;OAYG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;6BACsB,qBAAqB;IAgB9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;2BACoB,YAAY;IAKnC;;;;;;;;;;OAUG;;IAGH;;;;;;;;;;;OAWG;;IAGH;;;;;;;;;;;OAWG;;CAK2C,CAAC"}
@@ -1,3 +1,118 @@
1
+ import type { AppUpdateInfo } from "@hot-updater/core";
2
+ import type { NotifyAppReadyResult } from "./native";
3
+ /**
4
+ * Parameters passed to resolver.checkUpdate method
5
+ */
6
+ export interface ResolverCheckUpdateParams {
7
+ /**
8
+ * The platform the app is running on
9
+ */
10
+ platform: "ios" | "android";
11
+ /**
12
+ * The current app version
13
+ */
14
+ appVersion: string;
15
+ /**
16
+ * The current bundle ID
17
+ */
18
+ bundleId: string;
19
+ /**
20
+ * Minimum bundle ID from build time
21
+ */
22
+ minBundleId: string;
23
+ /**
24
+ * The channel name (e.g., "production", "staging")
25
+ */
26
+ channel: string;
27
+ /**
28
+ * Update strategy being used
29
+ */
30
+ updateStrategy: "fingerprint" | "appVersion";
31
+ /**
32
+ * The fingerprint hash (only present when using fingerprint strategy)
33
+ */
34
+ fingerprintHash: string | null;
35
+ /**
36
+ * Request headers from global config (for optional use)
37
+ */
38
+ requestHeaders?: Record<string, string>;
39
+ /**
40
+ * Request timeout from global config (for optional use)
41
+ */
42
+ requestTimeout?: number;
43
+ }
44
+ /**
45
+ * Parameters passed to resolver.notifyAppReady method
46
+ */
47
+ export interface ResolverNotifyAppReadyParams {
48
+ /**
49
+ * The bundle state from native notifyAppReady
50
+ * - "PROMOTED": Staging bundle was promoted to stable
51
+ * - "RECOVERED": App recovered from crash, rollback occurred
52
+ * - "STABLE": No changes, bundle is stable
53
+ */
54
+ status: "PROMOTED" | "RECOVERED" | "STABLE";
55
+ /**
56
+ * Present only when status is "RECOVERED"
57
+ */
58
+ crashedBundleId?: string;
59
+ /**
60
+ * Request headers from global config (for optional use)
61
+ */
62
+ requestHeaders?: Record<string, string>;
63
+ /**
64
+ * Request timeout from global config (for optional use)
65
+ */
66
+ requestTimeout?: number;
67
+ }
68
+ /**
69
+ * Resolver interface for custom network operations
70
+ */
71
+ export interface HotUpdaterResolver {
72
+ /**
73
+ * Custom implementation for checking updates.
74
+ * When provided, this completely replaces the default fetchUpdateInfo flow.
75
+ *
76
+ * @param params - All parameters needed to check for updates
77
+ * @returns Update information or null if up to date
78
+ *
79
+ * @example
80
+ * ```typescript
81
+ * checkUpdate: async (params) => {
82
+ * const response = await fetch(`https://api.custom.com/check`, {
83
+ * method: 'POST',
84
+ * body: JSON.stringify(params),
85
+ * headers: params.requestHeaders,
86
+ * });
87
+ *
88
+ * if (!response.ok) return null;
89
+ * return response.json();
90
+ * }
91
+ * ```
92
+ */
93
+ checkUpdate?: (params: ResolverCheckUpdateParams) => Promise<AppUpdateInfo | null>;
94
+ /**
95
+ * Custom implementation for notifying app ready.
96
+ * When provided, this completely replaces the default notifyAppReady network flow.
97
+ * Note: The native notifyAppReady for bundle promotion still happens automatically.
98
+ *
99
+ * @param params - All parameters about the current app state
100
+ * @returns Notification result
101
+ *
102
+ * @example
103
+ * ```typescript
104
+ * notifyAppReady: async (params) => {
105
+ * await fetch(`https://api.custom.com/notify`, {
106
+ * method: 'POST',
107
+ * body: JSON.stringify(params),
108
+ * });
109
+ *
110
+ * return { status: "STABLE" };
111
+ * }
112
+ * ```
113
+ */
114
+ notifyAppReady?: (params: ResolverNotifyAppReadyParams) => Promise<NotifyAppReadyResult | undefined>;
115
+ }
1
116
  /**
2
117
  * Information about a signature verification failure.
3
118
  * This is a security-critical event that indicates the bundle
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,KAAK,EAAE,KAAK,CAAC;CACd;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAgBpE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,MAAM,GACf,4BAA4B,CAS9B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;IAE5B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,cAAc,EAAE,aAAa,GAAG,YAAY,CAAC;IAE7C;;OAEG;IACH,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/B;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAExC;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;;;;OAKG;IACH,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;IAE5C;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAExC;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,WAAW,CAAC,EAAE,CACZ,MAAM,EAAE,yBAAyB,KAC9B,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IAEnC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,cAAc,CAAC,EAAE,CACf,MAAM,EAAE,4BAA4B,KACjC,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAAC;CAChD;AAED;;;;GAIG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,KAAK,EAAE,KAAK,CAAC;CACd;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAgBpE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,MAAM,GACf,4BAA4B,CAS9B"}
@@ -1,6 +1,7 @@
1
1
  import React from "react";
2
2
  import type { HotUpdaterError } from "./error";
3
3
  import { type NotifyAppReadyResult } from "./native";
4
+ import type { HotUpdaterResolver } from "./types";
4
5
  export interface RunUpdateProcessResponse {
5
6
  status: "ROLLBACK" | "UPDATE" | "UP_TO_DATE";
6
7
  shouldForceUpdate: boolean;
@@ -12,11 +13,6 @@ type UpdateStatus = "CHECK_FOR_UPDATE" | "UPDATING" | "UPDATE_PROCESS_COMPLETED"
12
13
  * Common options shared between auto and manual update modes
13
14
  */
14
15
  interface CommonHotUpdaterOptions {
15
- /**
16
- * Base URL for update server
17
- * @example "https://update.example.com"
18
- */
19
- baseURL: string;
20
16
  /**
21
17
  * Custom request headers for update checks
22
18
  */
@@ -54,7 +50,38 @@ interface CommonHotUpdaterOptions {
54
50
  */
55
51
  onNotifyAppReady?: (result: NotifyAppReadyResult) => void;
56
52
  }
57
- export interface AutoUpdateOptions extends CommonHotUpdaterOptions {
53
+ /**
54
+ * Configuration with baseURL for standard server-based updates
55
+ */
56
+ interface BaseURLConfig {
57
+ /**
58
+ * Base URL for update server
59
+ * @example "https://update.example.com"
60
+ */
61
+ baseURL: string;
62
+ /**
63
+ * Resolver is not allowed when using baseURL
64
+ */
65
+ resolver?: never;
66
+ }
67
+ /**
68
+ * Configuration with resolver for custom network operations
69
+ */
70
+ interface ResolverConfig {
71
+ /**
72
+ * Custom resolver for network operations
73
+ */
74
+ resolver: HotUpdaterResolver;
75
+ /**
76
+ * baseURL is not allowed when using resolver
77
+ */
78
+ baseURL?: never;
79
+ }
80
+ /**
81
+ * Union type ensuring baseURL and resolver are mutually exclusive
82
+ */
83
+ type NetworkConfig = BaseURLConfig | ResolverConfig;
84
+ export type AutoUpdateOptions = CommonHotUpdaterOptions & NetworkConfig & {
58
85
  /**
59
86
  * Update strategy
60
87
  * - "fingerprint": Use fingerprint hash to check for updates
@@ -108,15 +135,42 @@ export interface AutoUpdateOptions extends CommonHotUpdaterOptions {
108
135
  * @see {@link https://hot-updater.dev/docs/react-native-api/wrap#onupdateprocesscompleted}
109
136
  */
110
137
  onUpdateProcessCompleted?: (response: RunUpdateProcessResponse) => void;
111
- }
112
- export interface ManualUpdateOptions extends CommonHotUpdaterOptions {
138
+ };
139
+ export type ManualUpdateOptions = CommonHotUpdaterOptions & NetworkConfig & {
113
140
  /**
114
141
  * Update mode
115
142
  * - "manual": Only notify app ready, user manually calls checkForUpdate()
116
143
  */
117
144
  updateMode: "manual";
118
- }
145
+ };
119
146
  export type HotUpdaterOptions = AutoUpdateOptions | ManualUpdateOptions;
120
- export declare function wrap<P extends React.JSX.IntrinsicAttributes = object>(options: HotUpdaterOptions): (WrappedComponent: React.ComponentType<P>) => React.ComponentType<P>;
147
+ /**
148
+ * Internal options after normalization in index.ts
149
+ * Always has resolver (never baseURL)
150
+ */
151
+ type InternalCommonOptions = {
152
+ resolver: HotUpdaterResolver;
153
+ requestHeaders?: Record<string, string>;
154
+ requestTimeout?: number;
155
+ onNotifyAppReady?: (result: NotifyAppReadyResult) => void;
156
+ };
157
+ type InternalAutoUpdateOptions = InternalCommonOptions & {
158
+ updateStrategy: "fingerprint" | "appVersion";
159
+ updateMode: "auto";
160
+ onError?: (error: HotUpdaterError | Error | unknown) => void;
161
+ fallbackComponent?: React.FC<{
162
+ status: Exclude<UpdateStatus, "UPDATE_PROCESS_COMPLETED">;
163
+ progress: number;
164
+ message: string | null;
165
+ }>;
166
+ onProgress?: (progress: number) => void;
167
+ reloadOnForceUpdate?: boolean;
168
+ onUpdateProcessCompleted?: (response: RunUpdateProcessResponse) => void;
169
+ };
170
+ type InternalManualUpdateOptions = InternalCommonOptions & {
171
+ updateMode: "manual";
172
+ };
173
+ export type InternalWrapOptions = InternalAutoUpdateOptions | InternalManualUpdateOptions;
174
+ export declare function wrap<P extends React.JSX.IntrinsicAttributes = object>(options: InternalWrapOptions): (WrappedComponent: React.ComponentType<P>) => React.ComponentType<P>;
121
175
  export {};
122
176
  //# sourceMappingURL=wrap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wrap.d.ts","sourceRoot":"","sources":["../../../src/wrap.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAEpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,OAAO,EAEL,KAAK,oBAAoB,EAG1B,MAAM,UAAU,CAAC;AAGlB,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,UAAU,GAAG,QAAQ,GAAG,YAAY,CAAC;IAC7C,iBAAiB,EAAE,OAAO,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,KAAK,YAAY,GACb,kBAAkB,GAClB,UAAU,GACV,0BAA0B,CAAC;AAE/B;;GAEG;AACH,UAAU,uBAAuB;IAC/B;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAExC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;CAC3D;AAED,MAAM,WAAW,iBAAkB,SAAQ,uBAAuB;IAChE;;;;OAIG;IACH,cAAc,EAAE,aAAa,GAAG,YAAY,CAAC;IAE7C;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,GAAG,KAAK,GAAG,OAAO,KAAK,IAAI,CAAC;IAE7D;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,iBAAiB,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE,0BAA0B,CAAC,CAAC;QAC1D,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,CAAC,CAAC;IAEH,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAExC;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,CAAC,QAAQ,EAAE,wBAAwB,KAAK,IAAI,CAAC;CACzE;AAED,MAAM,WAAW,mBAAoB,SAAQ,uBAAuB;IAClE;;;OAGG;IACH,UAAU,EAAE,QAAQ,CAAC;CACtB;AAED,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,GAAG,mBAAmB,CAAC;AAExE,wBAAgB,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,mBAAmB,GAAG,MAAM,EACnE,OAAO,EAAE,iBAAiB,GACzB,CAAC,gBAAgB,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAwItE"}
1
+ {"version":3,"file":"wrap.d.ts","sourceRoot":"","sources":["../../../src/wrap.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { HotUpdaterResolver } from "./types";
2
+ /**
3
+ * Creates a default resolver that uses baseURL for network operations.
4
+ * This encapsulates the existing baseURL logic into a resolver.
5
+ *
6
+ * @param baseURL - The base URL for the update server
7
+ * @returns A HotUpdaterResolver that uses the baseURL
8
+ */
9
+ export declare function createDefaultResolver(baseURL: string): HotUpdaterResolver;
10
+ //# sourceMappingURL=DefaultResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultResolver.d.ts","sourceRoot":"","sources":["../../../src/DefaultResolver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAA6B,MAAM,SAAS,CAAC;AAE7E;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,CAwBzE"}
@@ -1,4 +1,5 @@
1
1
  import type { AppUpdateInfo } from "@hot-updater/core";
2
+ import type { HotUpdaterResolver } from "./types";
2
3
  export interface CheckForUpdateOptions {
3
4
  /**
4
5
  * Update strategy
@@ -23,7 +24,7 @@ export type CheckForUpdateResult = AppUpdateInfo & {
23
24
  updateBundle: () => Promise<boolean>;
24
25
  };
25
26
  export interface InternalCheckForUpdateOptions extends CheckForUpdateOptions {
26
- baseURL: string;
27
+ resolver: HotUpdaterResolver;
27
28
  }
28
29
  export declare function checkForUpdate(options: InternalCheckForUpdateOptions): Promise<CheckForUpdateResult | null>;
29
30
  //# sourceMappingURL=checkForUpdate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkForUpdate.d.ts","sourceRoot":"","sources":["../../../src/checkForUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAsB,MAAM,mBAAmB,CAAC;AAa3E,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,cAAc,EAAE,YAAY,GAAG,aAAa,CAAC;IAE7C,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG;IACjD;;;OAGG;IACH,YAAY,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACtC,CAAC;AAGF,MAAM,WAAW,6BAA8B,SAAQ,qBAAqB;IAC1E,OAAO,EAAE,MAAM,CAAC;CACjB;AAqBD,wBAAsB,cAAc,CAClC,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CA+DtC"}
1
+ {"version":3,"file":"checkForUpdate.d.ts","sourceRoot":"","sources":["../../../src/checkForUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAWvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,cAAc,EAAE,YAAY,GAAG,aAAa,CAAC;IAE7C,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG;IACjD;;;OAGG;IACH,YAAY,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACtC,CAAC;AAGF,MAAM,WAAW,6BAA8B,SAAQ,qBAAqB;IAC1E,QAAQ,EAAE,kBAAkB,CAAC;CAC9B;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAkEtC"}
@@ -1,9 +1,9 @@
1
1
  import { type CheckForUpdateOptions } from "./checkForUpdate";
2
2
  import { type UpdateParams } from "./native";
3
- import { wrap } from "./wrap";
3
+ import { type HotUpdaterOptions } from "./wrap";
4
4
  export type { HotUpdaterEvent, NotifyAppReadyResult } from "./native";
5
5
  export * from "./store";
6
- export { extractSignatureFailure, isSignatureVerificationError, type SignatureVerificationFailure, } from "./types";
6
+ export { extractSignatureFailure, type HotUpdaterResolver, isSignatureVerificationError, type ResolverCheckUpdateParams, type ResolverNotifyAppReadyParams, type SignatureVerificationFailure, } from "./types";
7
7
  export type { HotUpdaterOptions, RunUpdateProcessResponse } from "./wrap";
8
8
  export declare const HotUpdater: {
9
9
  /**
@@ -30,7 +30,7 @@ export declare const HotUpdater: {
30
30
  * })(App);
31
31
  * ```
32
32
  */
33
- wrap: typeof wrap;
33
+ wrap: (options: HotUpdaterOptions) => (WrappedComponent: import("react").ComponentType<object>) => import("react").ComponentType<object>;
34
34
  /**
35
35
  * Reloads the app.
36
36
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,qBAAqB,EAG3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAUL,KAAK,YAAY,EAElB,MAAM,UAAU,CAAC;AAElB,OAAO,EAA0B,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEtD,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACtE,cAAc,SAAS,CAAC;AACxB,OAAO,EACL,uBAAuB,EACvB,4BAA4B,EAC5B,KAAK,4BAA4B,GAClC,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,QAAQ,CAAC;AAwR1E,eAAO,MAAM,UAAU;IA1OnB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;UAMG,OAAO,IAAI;IAEjB;;OAEG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;;;;;;;;;;OAYG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;6BACsB,qBAAqB;IAmB9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;2BACoB,YAAY;IAMnC;;;;;;;;;;OAUG;;IAGH;;;;;;;;;;;OAWG;;IAGH;;;;;;;;;;;OAWG;;CAK2C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,qBAAqB,EAG3B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAUL,KAAK,YAAY,EAElB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,KAAK,iBAAiB,EAAkC,MAAM,QAAQ,CAAC;AAEhF,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACtE,cAAc,SAAS,CAAC;AACxB,OAAO,EACL,uBAAuB,EACvB,KAAK,kBAAkB,EACvB,4BAA4B,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,GAClC,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,QAAQ,CAAC;AAmT1E,eAAO,MAAM,UAAU;IAtQnB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;oBACa,iBAAiB;IAuCjC;;OAEG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;;;;;;;;;;OAYG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;6BACsB,qBAAqB;IAgB9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;2BACoB,YAAY;IAKnC;;;;;;;;;;OAUG;;IAGH;;;;;;;;;;;OAWG;;IAGH;;;;;;;;;;;OAWG;;CAK2C,CAAC"}