@hot-updater/react-native 0.18.5 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/android/src/main/java/com/hotupdater/HotUpdater.kt +7 -0
  2. package/android/src/main/java/com/hotupdater/HotUpdaterImpl.kt +13 -0
  3. package/android/src/newarch/HotUpdaterModule.kt +1 -0
  4. package/android/src/oldarch/HotUpdaterModule.kt +1 -0
  5. package/ios/HotUpdater/Internal/HotUpdater.mm +2 -1
  6. package/ios/HotUpdater/Internal/HotUpdaterImpl.swift +8 -2
  7. package/lib/commonjs/checkForUpdate.js +27 -20
  8. package/lib/commonjs/checkForUpdate.js.map +1 -1
  9. package/lib/commonjs/fetchUpdateInfo.js +53 -48
  10. package/lib/commonjs/fetchUpdateInfo.js.map +1 -1
  11. package/lib/commonjs/index.js +0 -12
  12. package/lib/commonjs/index.js.map +1 -1
  13. package/lib/commonjs/native.js +5 -19
  14. package/lib/commonjs/native.js.map +1 -1
  15. package/lib/commonjs/specs/NativeHotUpdater.js.map +1 -1
  16. package/lib/module/checkForUpdate.js +28 -21
  17. package/lib/module/checkForUpdate.js.map +1 -1
  18. package/lib/module/fetchUpdateInfo.js +53 -48
  19. package/lib/module/fetchUpdateInfo.js.map +1 -1
  20. package/lib/module/index.js +1 -13
  21. package/lib/module/index.js.map +1 -1
  22. package/lib/module/native.js +4 -17
  23. package/lib/module/native.js.map +1 -1
  24. package/lib/module/specs/NativeHotUpdater.js.map +1 -1
  25. package/lib/typescript/commonjs/checkForUpdate.d.ts +11 -2
  26. package/lib/typescript/commonjs/checkForUpdate.d.ts.map +1 -1
  27. package/lib/typescript/commonjs/fetchUpdateInfo.d.ts +9 -3
  28. package/lib/typescript/commonjs/fetchUpdateInfo.d.ts.map +1 -1
  29. package/lib/typescript/commonjs/index.d.ts +0 -12
  30. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  31. package/lib/typescript/commonjs/native.d.ts +1 -5
  32. package/lib/typescript/commonjs/native.d.ts.map +1 -1
  33. package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts +1 -0
  34. package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts.map +1 -1
  35. package/lib/typescript/module/checkForUpdate.d.ts +11 -2
  36. package/lib/typescript/module/checkForUpdate.d.ts.map +1 -1
  37. package/lib/typescript/module/fetchUpdateInfo.d.ts +9 -3
  38. package/lib/typescript/module/fetchUpdateInfo.d.ts.map +1 -1
  39. package/lib/typescript/module/index.d.ts +0 -12
  40. package/lib/typescript/module/index.d.ts.map +1 -1
  41. package/lib/typescript/module/native.d.ts +1 -5
  42. package/lib/typescript/module/native.d.ts.map +1 -1
  43. package/lib/typescript/module/specs/NativeHotUpdater.d.ts +1 -0
  44. package/lib/typescript/module/specs/NativeHotUpdater.d.ts.map +1 -1
  45. package/package.json +10 -5
  46. package/plugin/build/withHotUpdater.js +138 -7
  47. package/src/checkForUpdate.ts +44 -35
  48. package/src/fetchUpdateInfo.ts +65 -51
  49. package/src/index.ts +0 -13
  50. package/src/native.ts +4 -22
  51. package/src/specs/NativeHotUpdater.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"names":["fetchUpdateInfo","source","args","requestHeaders","onError","requestTimeout","url","controller","AbortController","timeoutId","setTimeout","abort","headers","_updateStrategy","platform","bundleId","fingerprintHash","minBundleId","channel","appVersion","Error","response","fetch","signal","clearTimeout","status","statusText","json","error","name"],"sourceRoot":"../../src","sources":["fetchUpdateInfo.ts"],"mappings":";;AAOA,OAAO,MAAMA,eAAe,GAAG,MAAAA,CAC7BC,MAAoB,EACpBC,IAAoB,EACpBC,cAAuC,EACvCC,OAAgC,EAChCC,cAAc,GAAG,IAAI,KACa;EAClC,IAAI,OAAOJ,MAAM,KAAK,UAAU,EAAE;IAChC,MAAMK,GAAG,GAAGL,MAAM,CAACC,IAAI,CAAC;IACxB,IAAI,OAAOI,GAAG,KAAK,QAAQ,EAAE;MAC3B,OAAO,IAAI;IACb;IACAL,MAAM,GAAGK,GAAG;EACd;EAEA,MAAMC,UAAU,GAAG,IAAIC,eAAe,CAAC,CAAC;EACxC,MAAMC,SAAS,GAAGC,UAAU,CAAC,MAAM;IACjCH,UAAU,CAACI,KAAK,CAAC,CAAC;EACpB,CAAC,EAAEN,cAAc,CAAC;EAElB,IAAI;IACF,IAAIO,OAA+B,GAAG,CAAC,CAAC;IAExC,QAAQV,IAAI,CAACW,eAAe;MAC1B,KAAK,aAAa;QAChBD,OAAO,GAAG;UACR,cAAc,EAAE,kBAAkB;UAClC,gBAAgB,EAAEV,IAAI,CAACY,QAAQ;UAC/B,aAAa,EAAEZ,IAAI,CAACa,QAAQ;UAC5B,oBAAoB,EAAEb,IAAI,CAACc,eAAe;UAC1C,IAAId,IAAI,CAACe,WAAW,GAAG;YAAE,iBAAiB,EAAEf,IAAI,CAACe;UAAY,CAAC,GAAG,CAAC,CAAC,CAAC;UACpE,IAAIf,IAAI,CAACgB,OAAO,GAAG;YAAE,WAAW,EAAEhB,IAAI,CAACgB;UAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;UACtD,GAAGf;QACL,CAAC;QACD;MACF,KAAK,YAAY;QACfS,OAAO,GAAG;UACR,cAAc,EAAE,kBAAkB;UAClC,gBAAgB,EAAEV,IAAI,CAACY,QAAQ;UAC/B,aAAa,EAAEZ,IAAI,CAACa,QAAQ;UAC5B,eAAe,EAAEb,IAAI,CAACiB,UAAU;UAChC,IAAIjB,IAAI,CAACe,WAAW,GAAG;YAAE,iBAAiB,EAAEf,IAAI,CAACe;UAAY,CAAC,GAAG,CAAC,CAAC,CAAC;UACpE,IAAIf,IAAI,CAACgB,OAAO,GAAG;YAAE,WAAW,EAAEhB,IAAI,CAACgB;UAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;UACtD,GAAGf;QACL,CAAC;QACD;MACF;QACE,MAAM,IAAIiB,KAAK,CAAC,yBAAyB,CAAC;IAC9C;IAEA,MAAMC,QAAQ,GAAG,MAAMC,KAAK,CAACrB,MAAM,EAAE;MACnCsB,MAAM,EAAEhB,UAAU,CAACgB,MAAM;MACzBX;IACF,CAAC,CAAC;IAEFY,YAAY,CAACf,SAAS,CAAC;IAEvB,IAAIY,QAAQ,CAACI,MAAM,KAAK,GAAG,EAAE;MAC3B,MAAM,IAAIL,KAAK,CAACC,QAAQ,CAACK,UAAU,CAAC;IACtC;IACA,OAAOL,QAAQ,CAACM,IAAI,CAAC,CAAC;EACxB,CAAC,CAAC,OAAOC,KAAU,EAAE;IACnB,IAAIA,KAAK,CAACC,IAAI,KAAK,YAAY,EAAE;MAC/BzB,OAAO,GAAG,IAAIgB,KAAK,CAAC,mBAAmB,CAAC,CAAC;MACzC,OAAO,IAAI;IACb;IACAhB,OAAO,GAAGwB,KAAc,CAAC;IACzB,OAAO,IAAI;EACb;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["buildRequestHeaders","params","requestHeaders","updateStrategy","fingerprintHash","platform","bundleId","appVersion","minBundleId","channel","resolveSource","source","url","result","info","fetchUpdateInfo","onError","requestTimeout","resolvedSource","controller","AbortController","timeoutId","setTimeout","abort","headers","response","fetch","signal","clearTimeout","status","Error","statusText","json","error","name"],"sourceRoot":"../../src","sources":["fetchUpdateInfo.ts"],"mappings":";;AAWA,SAASA,mBAAmBA,CAC1BC,MAA0B,EAC1BC,cAAuC,EACf;EACxB,MAAMC,cAA8B,GAAGF,MAAM,CAACG,eAAe,GACzD,aAAa,GACb,YAAY;EAEhB,OAAO;IACL,cAAc,EAAE,kBAAkB;IAClC,gBAAgB,EAAEH,MAAM,CAACI,QAAQ;IACjC,aAAa,EAAEJ,MAAM,CAACK,QAAQ;IAC9B,IAAIH,cAAc,KAAK,aAAa,GAChC;MAAE,oBAAoB,EAAEF,MAAM,CAACG;IAAiB,CAAC,GACjD;MAAE,eAAe,EAAEH,MAAM,CAACM;IAAW,CAAC,CAAC;IAC3C,IAAIN,MAAM,CAACO,WAAW,IAAI;MAAE,iBAAiB,EAAEP,MAAM,CAACO;IAAY,CAAC,CAAC;IACpE,IAAIP,MAAM,CAACQ,OAAO,IAAI;MAAE,WAAW,EAAER,MAAM,CAACQ;IAAQ,CAAC,CAAC;IACtD,IAAIP,cAAc,IAAI,CAAC,CAAC;EAC1B,CAAC;AACH;AAEA,eAAeQ,aAAaA,CAC1BC,MAAoB,EACpBV,MAA0B,EACiC;EAC3D,IAAI,OAAOU,MAAM,KAAK,UAAU,EAAE;IAChC,OAAO;MAAEC,GAAG,EAAED;IAAO,CAAC;EACxB;EACA,MAAME,MAAM,GAAGF,MAAM,CAACV,MAAM,CAAC;EAC7B,IAAI,OAAOY,MAAM,KAAK,QAAQ,EAAE;IAC9B,OAAO;MAAED,GAAG,EAAEC;IAAO,CAAC;EACxB;EACA,OAAO;IAAEC,IAAI,EAAE,MAAMD;EAAO,CAAC;AAC/B;AAEA,OAAO,MAAME,eAAe,GAAG,MAAAA,CAAO;EACpCJ,MAAM;EACNV,MAAM;EACNC,cAAc;EACdc,OAAO;EACPC,cAAc,GAAG;AAOnB,CAAC,KAAoC;EACnC,IAAI;IACF,MAAMC,cAAc,GAAG,MAAMR,aAAa,CAACC,MAAM,EAAEV,MAAM,CAAC;IAC1D,IAAI,MAAM,IAAIiB,cAAc,EAAE;MAC5B,OAAOA,cAAc,CAACJ,IAAI;IAC5B;IAEA,MAAMK,UAAU,GAAG,IAAIC,eAAe,CAAC,CAAC;IACxC,MAAMC,SAAS,GAAGC,UAAU,CAAC,MAAM;MACjCH,UAAU,CAACI,KAAK,CAAC,CAAC;IACpB,CAAC,EAAEN,cAAc,CAAC;IAElB,MAAMO,OAAO,GAAGxB,mBAAmB,CAACC,MAAM,EAAEC,cAAc,CAAC;IAE3D,MAAMuB,QAAQ,GAAG,MAAMC,KAAK,CAACR,cAAc,CAACN,GAAG,EAAE;MAC/Ce,MAAM,EAAER,UAAU,CAACQ,MAAM;MACzBH;IACF,CAAC,CAAC;IACFI,YAAY,CAACP,SAAS,CAAC;IAEvB,IAAII,QAAQ,CAACI,MAAM,KAAK,GAAG,EAAE;MAC3B,MAAM,IAAIC,KAAK,CAACL,QAAQ,CAACM,UAAU,CAAC;IACtC;IACA,OAAON,QAAQ,CAACO,IAAI,CAAC,CAAC;EACxB,CAAC,CAAC,OAAOC,KAAU,EAAE;IACnB,IAAIA,KAAK,CAACC,IAAI,KAAK,YAAY,EAAE;MAC/BlB,OAAO,GAAG,IAAIc,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC3C,CAAC,MAAM;MACLd,OAAO,GAAGiB,KAAc,CAAC;IAC3B;IACA,OAAO,IAAI;EACb;AACF,CAAC","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { checkForUpdate } from "./checkForUpdate.js";
4
- import { addListener, getAppVersion, getBundleId, getChannel, getFingerprintHash, getMinBundleId, getReleaseChannel, reload, updateBundle } from "./native.js";
4
+ import { addListener, getAppVersion, getBundleId, getChannel, getFingerprintHash, getMinBundleId, reload, updateBundle } from "./native.js";
5
5
  import { runUpdateProcess } from "./runUpdateProcess.js";
6
6
  import { hotUpdaterStore } from "./store.js";
7
7
  import { wrap } from "./wrap.js";
@@ -67,18 +67,6 @@ export const HotUpdater = {
67
67
  * ```
68
68
  */
69
69
  getChannel,
70
- /**
71
- * The initial channel of the native app.
72
- *
73
- * @returns {string} The current release channel of the app
74
- * @default "production"
75
- * @example
76
- * ```ts
77
- * const channel = HotUpdater.getReleaseChannel();
78
- * console.log(`Current release channel: ${channel}`);
79
- * ```
80
- */
81
- getReleaseChannel,
82
70
  /**
83
71
  * Adds a listener to HotUpdater events.
84
72
  *
@@ -1 +1 @@
1
- {"version":3,"names":["checkForUpdate","addListener","getAppVersion","getBundleId","getChannel","getFingerprintHash","getMinBundleId","getReleaseChannel","reload","updateBundle","runUpdateProcess","hotUpdaterStore","wrap","progress","setState","HotUpdater","getUpdateSource"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SAASA,cAAc,QAAQ,qBAAkB;AACjD,SACEC,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,UAAU,EACVC,kBAAkB,EAClBC,cAAc,EACdC,iBAAiB,EACjBC,MAAM,EACNC,YAAY,QACP,aAAU;AACjB,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,eAAe,QAAQ,YAAS;AACzC,SAASC,IAAI,QAAQ,WAAQ;AAK7B,cAAc,YAAS;AAEvBX,WAAW,CAAC,YAAY,EAAE,CAAC;EAAEY;AAAS,CAAC,KAAK;EAC1CF,eAAe,CAACG,QAAQ,CAAC;IACvBD;EACF,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,MAAME,UAAU,GAAG;EACxB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEH,IAAI;EACJ;AACF;AACA;EACEJ,MAAM;EACN;AACF;AACA;EACEN,aAAa;EACb;AACF;AACA;EACEC,WAAW;EACX;AACF;AACA;EACEG,cAAc;EACd;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEF,UAAU;EACV;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEG,iBAAiB;EACjB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEN,WAAW;EACX;AACF;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;EACED,cAAc;EACd;AACF;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;EACEU,gBAAgB;EAChB;AACF;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;EACED,YAAY;EACZ;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEJ;AACF,CAAC;AAED,SAASW,eAAe,QAAQ,qBAAkB","ignoreList":[]}
1
+ {"version":3,"names":["checkForUpdate","addListener","getAppVersion","getBundleId","getChannel","getFingerprintHash","getMinBundleId","reload","updateBundle","runUpdateProcess","hotUpdaterStore","wrap","progress","setState","HotUpdater","getUpdateSource"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SAASA,cAAc,QAAQ,qBAAkB;AACjD,SACEC,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,UAAU,EACVC,kBAAkB,EAClBC,cAAc,EACdC,MAAM,EACNC,YAAY,QACP,aAAU;AACjB,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,eAAe,QAAQ,YAAS;AACzC,SAASC,IAAI,QAAQ,WAAQ;AAK7B,cAAc,YAAS;AAEvBV,WAAW,CAAC,YAAY,EAAE,CAAC;EAAEW;AAAS,CAAC,KAAK;EAC1CF,eAAe,CAACG,QAAQ,CAAC;IACvBD;EACF,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,MAAME,UAAU,GAAG;EACxB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEH,IAAI;EACJ;AACF;AACA;EACEJ,MAAM;EACN;AACF;AACA;EACEL,aAAa;EACb;AACF;AACA;EACEC,WAAW;EACX;AACF;AACA;EACEG,cAAc;EACd;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEF,UAAU;EACV;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEH,WAAW;EACX;AACF;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;EACED,cAAc;EACd;AACF;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;EACES,gBAAgB;EAChB;AACF;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;EACED,YAAY;EACZ;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEH;AACF,CAAC;AAED,SAASU,eAAe,QAAQ,qBAAkB","ignoreList":[]}
@@ -1,17 +1,10 @@
1
1
  "use strict";
2
2
 
3
- import { NativeEventEmitter, Platform } from "react-native";
3
+ import { NativeEventEmitter } from "react-native";
4
4
  import HotUpdaterNative from "./specs/NativeHotUpdater.js";
5
5
  const NIL_UUID = "00000000-0000-0000-0000-000000000000";
6
6
  export const HotUpdaterConstants = {
7
- OVER_THE_AIR_CHANNEL: __HOT_UPDATER_CHANNEL,
8
- HOT_UPDATER_BUNDLE_ID: __HOT_UPDATER_BUNDLE_ID || NIL_UUID,
9
- FINGERPRINT_HASH: Platform.select({
10
- ios: __HOT_UPDATER_FINGERPRINT_HASH_IOS,
11
- android: __HOT_UPDATER_FINGERPRINT_HASH_ANDROID,
12
- default: null
13
- }),
14
- UPDATE_STRATEGY: __HOT_UPDATER_UPDATE_STRATEGY
7
+ HOT_UPDATER_BUNDLE_ID: __HOT_UPDATER_BUNDLE_ID || NIL_UUID
15
8
  };
16
9
  export const addListener = (eventName, listener) => {
17
10
  const eventEmitter = new NativeEventEmitter(HotUpdaterNative);
@@ -97,13 +90,6 @@ export const getBundleId = () => {
97
90
  * @returns {string} Resolves with the channel or null if not available.
98
91
  */
99
92
  export const getChannel = () => {
100
- if (HotUpdaterConstants.OVER_THE_AIR_CHANNEL) {
101
- return HotUpdaterConstants.OVER_THE_AIR_CHANNEL;
102
- }
103
- const constants = HotUpdaterNative.getConstants();
104
- return constants.CHANNEL;
105
- };
106
- export const getReleaseChannel = () => {
107
93
  const constants = HotUpdaterNative.getConstants();
108
94
  return constants.CHANNEL;
109
95
  };
@@ -114,6 +100,7 @@ export const getReleaseChannel = () => {
114
100
  * @returns {string | null} Resolves with the fingerprint hash
115
101
  */
116
102
  export const getFingerprintHash = () => {
117
- return HotUpdaterConstants.FINGERPRINT_HASH;
103
+ const constants = HotUpdaterNative.getConstants();
104
+ return constants.FINGERPRINT_HASH;
118
105
  };
119
106
  //# sourceMappingURL=native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["NativeEventEmitter","Platform","HotUpdaterNative","NIL_UUID","HotUpdaterConstants","OVER_THE_AIR_CHANNEL","__HOT_UPDATER_CHANNEL","HOT_UPDATER_BUNDLE_ID","__HOT_UPDATER_BUNDLE_ID","FINGERPRINT_HASH","select","ios","__HOT_UPDATER_FINGERPRINT_HASH_IOS","android","__HOT_UPDATER_FINGERPRINT_HASH_ANDROID","default","UPDATE_STRATEGY","__HOT_UPDATER_UPDATE_STRATEGY","addListener","eventName","listener","eventEmitter","subscription","remove","updateBundle","paramsOrBundleId","fileUrl","updateBundleId","bundleId","status","currentBundleId","getBundleId","localeCompare","Error","getAppVersion","constants","getConstants","APP_VERSION","reload","requestAnimationFrame","getMinBundleId","MIN_BUNDLE_ID","getChannel","CHANNEL","getReleaseChannel","getFingerprintHash"],"sourceRoot":"../../src","sources":["native.ts"],"mappings":";;AACA,SAASA,kBAAkB,EAAEC,QAAQ,QAAQ,cAAc;AAC3D,OAAOC,gBAAgB,MAEhB,6BAA0B;AAEjC,MAAMC,QAAQ,GAAG,sCAAsC;AAQvD,OAAO,MAAMC,mBAAmB,GAAG;EACjCC,oBAAoB,EAAEC,qBAAqB;EAC3CC,qBAAqB,EAAEC,uBAAuB,IAAIL,QAAQ;EAC1DM,gBAAgB,EAAER,QAAQ,CAACS,MAAM,CAAC;IAChCC,GAAG,EAAEC,kCAAkC;IACvCC,OAAO,EAAEC,sCAAsC;IAC/CC,OAAO,EAAE;EACX,CAAC,CAAC;EACFC,eAAe,EAAEC;AACnB,CAAC;AAQD,OAAO,MAAMC,WAAW,GAAGA,CACzBC,SAAY,EACZC,QAA6C,KAC1C;EACH,MAAMC,YAAY,GAAG,IAAIrB,kBAAkB,CAACE,gBAAgB,CAAC;EAC7D,MAAMoB,YAAY,GAAGD,YAAY,CAACH,WAAW,CAACC,SAAS,EAAEC,QAAQ,CAAC;EAElE,OAAO,MAAM;IACXE,YAAY,CAACC,MAAM,CAAC,CAAC;EACvB,CAAC;AACH,CAAC;;AAMD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAKA,OAAO,eAAeC,YAAYA,CAChCC,gBAAuC,EACvCC,OAAuB,EACL;EAClB,MAAMC,cAAc,GAClB,OAAOF,gBAAgB,KAAK,QAAQ,GAChCA,gBAAgB,GAChBA,gBAAgB,CAACG,QAAQ;EAE/B,MAAMC,MAAM,GACV,OAAOJ,gBAAgB,KAAK,QAAQ,GAAG,QAAQ,GAAGA,gBAAgB,CAACI,MAAM;EAE3E,MAAMC,eAAe,GAAGC,WAAW,CAAC,CAAC;;EAErC;EACA,IACEF,MAAM,KAAK,QAAQ,IACnBF,cAAc,CAACK,aAAa,CAACF,eAAe,CAAC,IAAI,CAAC,EAClD;IACA,MAAM,IAAIG,KAAK,CACb,yFACF,CAAC;EACH;EAEA,IAAI,OAAOR,gBAAgB,KAAK,QAAQ,EAAE;IACxC,OAAOvB,gBAAgB,CAACsB,YAAY,CAAC;MACnCI,QAAQ,EAAED,cAAc;MACxBD,OAAO,EAAEA,OAAO,IAAI;IACtB,CAAC,CAAC;EACJ;EACA,OAAOxB,gBAAgB,CAACsB,YAAY,CAAC;IACnCI,QAAQ,EAAED,cAAc;IACxBD,OAAO,EAAED,gBAAgB,CAACC;EAC5B,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA,OAAO,MAAMQ,aAAa,GAAGA,CAAA,KAAqB;EAChD,MAAMC,SAAS,GAAGjC,gBAAgB,CAACkC,YAAY,CAAC,CAAC;EACjD,OAAOD,SAAS,EAAEE,WAAW,IAAI,IAAI;AACvC,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMC,MAAM,GAAGA,CAAA,KAAM;EAC1BC,qBAAqB,CAAC,MAAM;IAC1BrC,gBAAgB,CAACoC,MAAM,CAAC,CAAC;EAC3B,CAAC,CAAC;AACJ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAME,cAAc,GAAGA,CAAA,KAAc;EAC1C,MAAML,SAAS,GAAGjC,gBAAgB,CAACkC,YAAY,CAAC,CAAC;EACjD,OAAOD,SAAS,CAACM,aAAa;AAChC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMV,WAAW,GAAGA,CAAA,KAAc;EACvC,OAAO3B,mBAAmB,CAACG,qBAAqB,KAAKJ,QAAQ,GACzDqC,cAAc,CAAC,CAAC,GAChBpC,mBAAmB,CAACG,qBAAqB;AAC/C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMmC,UAAU,GAAGA,CAAA,KAAc;EACtC,IAAItC,mBAAmB,CAACC,oBAAoB,EAAE;IAC5C,OAAOD,mBAAmB,CAACC,oBAAoB;EACjD;EACA,MAAM8B,SAAS,GAAGjC,gBAAgB,CAACkC,YAAY,CAAC,CAAC;EACjD,OAAOD,SAAS,CAACQ,OAAO;AAC1B,CAAC;AAED,OAAO,MAAMC,iBAAiB,GAAGA,CAAA,KAAc;EAC7C,MAAMT,SAAS,GAAGjC,gBAAgB,CAACkC,YAAY,CAAC,CAAC;EACjD,OAAOD,SAAS,CAACQ,OAAO;AAC1B,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,MAAME,kBAAkB,GAAGA,CAAA,KAAqB;EACrD,OAAOzC,mBAAmB,CAACK,gBAAgB;AAC7C,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["NativeEventEmitter","HotUpdaterNative","NIL_UUID","HotUpdaterConstants","HOT_UPDATER_BUNDLE_ID","__HOT_UPDATER_BUNDLE_ID","addListener","eventName","listener","eventEmitter","subscription","remove","updateBundle","paramsOrBundleId","fileUrl","updateBundleId","bundleId","status","currentBundleId","getBundleId","localeCompare","Error","getAppVersion","constants","getConstants","APP_VERSION","reload","requestAnimationFrame","getMinBundleId","MIN_BUNDLE_ID","getChannel","CHANNEL","getFingerprintHash","FINGERPRINT_HASH"],"sourceRoot":"../../src","sources":["native.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["specs/NativeHotUpdater.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AAsBlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,YAAY,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["specs/NativeHotUpdater.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AAuBlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,YAAY,CAAC","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import type { AppUpdateInfo, GetBundlesArgs } from "@hot-updater/core";
1
+ import type { AppUpdateInfo, UpdateBundleParams } from "@hot-updater/core";
2
2
  import { type UpdateSource } from "./fetchUpdateInfo";
3
3
  export interface CheckForUpdateOptions {
4
4
  source: UpdateSource;
@@ -18,5 +18,14 @@ export type CheckForUpdateResult = AppUpdateInfo & {
18
18
  updateBundle: () => Promise<boolean>;
19
19
  };
20
20
  export declare function checkForUpdate(options: CheckForUpdateOptions): Promise<CheckForUpdateResult | null>;
21
- export declare const getUpdateSource: (baseUrl: string) => (args: GetBundlesArgs) => string;
21
+ export interface GetUpdateSourceOptions {
22
+ /**
23
+ * The update strategy to use.
24
+ * @description
25
+ * - "fingerprint": Use the fingerprint hash to check for updates.
26
+ * - "appVersion": Use the target app version to check for updates.
27
+ */
28
+ updateStrategy: "appVersion" | "fingerprint";
29
+ }
30
+ export declare const getUpdateSource: (baseUrl: string, options: GetUpdateSourceOptions) => (params: UpdateBundleParams) => string;
22
31
  //# 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,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGvE,OAAO,EAAE,KAAK,YAAY,EAAmB,MAAM,mBAAmB,CAAC;AAUvE,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,YAAY,CAAC;IACrB,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;AAEF,wBAAsB,cAAc,CAClC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CA8DtC;AAED,eAAO,MAAM,eAAe,GAAI,SAAS,MAAM,MAAM,MAAM,cAAc,WASxE,CAAC"}
1
+ {"version":3,"file":"checkForUpdate.d.ts","sourceRoot":"","sources":["../../../src/checkForUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAG3E,OAAO,EAAE,KAAK,YAAY,EAAmB,MAAM,mBAAmB,CAAC;AAUvE,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,YAAY,CAAC;IACrB,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;AAEF,wBAAsB,cAAc,CAClC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAsDtC;AAED,MAAM,WAAW,sBAAsB;IACrC;;;;;OAKG;IACH,cAAc,EAAE,YAAY,GAAG,aAAa,CAAC;CAC9C;AAED,eAAO,MAAM,eAAe,GACzB,SAAS,MAAM,EAAE,SAAS,sBAAsB,MAChD,QAAQ,kBAAkB,WAc1B,CAAC"}
@@ -1,4 +1,10 @@
1
- import type { AppUpdateInfo, GetBundlesArgs } from "@hot-updater/core";
2
- export type UpdateSource = string | ((args: GetBundlesArgs) => Promise<AppUpdateInfo | null>) | ((args: GetBundlesArgs) => string);
3
- export declare const fetchUpdateInfo: (source: UpdateSource, args: GetBundlesArgs, requestHeaders?: Record<string, string>, onError?: (error: Error) => void, requestTimeout?: number) => Promise<AppUpdateInfo | null>;
1
+ import type { AppUpdateInfo, UpdateBundleParams } from "@hot-updater/core";
2
+ export type UpdateSource = string | ((params: UpdateBundleParams) => Promise<AppUpdateInfo | null>) | ((params: UpdateBundleParams) => string);
3
+ export declare const fetchUpdateInfo: ({ source, params, requestHeaders, onError, requestTimeout, }: {
4
+ source: UpdateSource;
5
+ params: UpdateBundleParams;
6
+ requestHeaders?: Record<string, string>;
7
+ onError?: (error: Error) => void;
8
+ requestTimeout?: number;
9
+ }) => Promise<AppUpdateInfo | null>;
4
10
  //# sourceMappingURL=fetchUpdateInfo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetchUpdateInfo.d.ts","sourceRoot":"","sources":["../../../src/fetchUpdateInfo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEvE,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,CAAC,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,GACzD,CAAC,CAAC,IAAI,EAAE,cAAc,KAAK,MAAM,CAAC,CAAC;AAEvC,eAAO,MAAM,eAAe,GAC1B,QAAQ,YAAY,EACpB,MAAM,cAAc,EACpB,iBAAiB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACvC,UAAU,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,EAChC,uBAAqB,KACpB,OAAO,CAAC,aAAa,GAAG,IAAI,CA+D9B,CAAC"}
1
+ {"version":3,"file":"fetchUpdateInfo.d.ts","sourceRoot":"","sources":["../../../src/fetchUpdateInfo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EAEnB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,CAAC,CAAC,MAAM,EAAE,kBAAkB,KAAK,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,GAC/D,CAAC,CAAC,MAAM,EAAE,kBAAkB,KAAK,MAAM,CAAC,CAAC;AAqC7C,eAAO,MAAM,eAAe,GAAU,8DAMnC;IACD,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,KAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAgC/B,CAAC"}
@@ -58,18 +58,6 @@ export declare const HotUpdater: {
58
58
  * ```
59
59
  */
60
60
  getChannel: () => string;
61
- /**
62
- * The initial channel of the native app.
63
- *
64
- * @returns {string} The current release channel of the app
65
- * @default "production"
66
- * @example
67
- * ```ts
68
- * const channel = HotUpdater.getReleaseChannel();
69
- * console.log(`Current release channel: ${channel}`);
70
- * ```
71
- */
72
- getReleaseChannel: () => string;
73
61
  /**
74
62
  * Adds a listener to HotUpdater events.
75
63
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EASL,YAAY,EACb,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,YAAY,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAChD,YAAY,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,cAAc,SAAS,CAAC;AAQxB,eAAO,MAAM,UAAU;IACrB;;;;;;;;;;;;;;;;;;;;;OAqBG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;;;;;;;;;;;OAYG;;IAEH;;;;;;;;;;OAUG;;IAEH;;;;;;;;;;;;;;;;OAgBG;;IAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;;IAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;;IAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;;IAEH;;;;;;;;;;OAUG;;CAEJ,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAQL,YAAY,EACb,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,YAAY,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAChD,YAAY,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,cAAc,SAAS,CAAC;AAQxB,eAAO,MAAM,UAAU;IACrB;;;;;;;;;;;;;;;;;;;;;OAqBG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;;;;;;;;;;;OAYG;;IAEH;;;;;;;;;;;;;;;;OAgBG;;IAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;;IAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;;IAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;;IAEH;;;;;;;;;;OAUG;;CAEJ,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1,10 +1,7 @@
1
- import type { UpdateStatus, UpdateStrategy } from "@hot-updater/core";
1
+ import type { UpdateStatus } from "@hot-updater/core";
2
2
  import { type UpdateBundleParams } from "./specs/NativeHotUpdater";
3
3
  export declare const HotUpdaterConstants: {
4
- OVER_THE_AIR_CHANNEL: string | null;
5
4
  HOT_UPDATER_BUNDLE_ID: string;
6
- FINGERPRINT_HASH: string | null;
7
- UPDATE_STRATEGY: UpdateStrategy;
8
5
  };
9
6
  export type HotUpdaterEvent = {
10
7
  onProgress: {
@@ -54,7 +51,6 @@ export declare const getBundleId: () => string;
54
51
  * @returns {string} Resolves with the channel or null if not available.
55
52
  */
56
53
  export declare const getChannel: () => string;
57
- export declare const getReleaseChannel: () => string;
58
54
  /**
59
55
  * Fetches the fingerprint for the app.
60
56
  *
@@ -1 +1 @@
1
- {"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/native.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEtE,OAAyB,EACvB,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAC;AAUlC,eAAO,MAAM,mBAAmB;;;;;CAS/B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE;QACV,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,MAAM,eAAe,EACzD,WAAW,CAAC,EACZ,UAAU,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,eAQ9C,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,kBAAkB,GAAG;IAC9C,MAAM,EAAE,YAAY,CAAC;CACtB,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC3E;;GAEG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GAAG,IAAI,GACrB,OAAO,CAAC,OAAO,CAAC,CAAC;AAqCpB;;GAEG;AACH,eAAO,MAAM,aAAa,QAAO,MAAM,GAAG,IAGzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,MAAM,YAIlB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,QAAO,MAGjC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,QAAO,MAI9B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU,QAAO,MAM7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,QAAO,MAGpC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,QAAO,MAAM,GAAG,IAE9C,CAAC"}
1
+ {"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/native.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAyB,EACvB,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAC;AAMlC,eAAO,MAAM,mBAAmB;;CAE/B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE;QACV,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,MAAM,eAAe,EACzD,WAAW,CAAC,EACZ,UAAU,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,eAQ9C,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,kBAAkB,GAAG;IAC9C,MAAM,EAAE,YAAY,CAAC;CACtB,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC3E;;GAEG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GAAG,IAAI,GACrB,OAAO,CAAC,OAAO,CAAC,CAAC;AAqCpB;;GAEG;AACH,eAAO,MAAM,aAAa,QAAO,MAAM,GAAG,IAGzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,MAAM,YAIlB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,QAAO,MAGjC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,QAAO,MAI9B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU,QAAO,MAG7B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,QAAO,MAAM,GAAG,IAG9C,CAAC"}
@@ -12,6 +12,7 @@ export interface Spec extends TurboModule {
12
12
  MIN_BUNDLE_ID: string;
13
13
  APP_VERSION: string | null;
14
14
  CHANNEL: string;
15
+ FINGERPRINT_HASH: string | null;
15
16
  };
16
17
  }
17
18
  declare const _default: Spec;
@@ -1 +1 @@
1
- {"version":3,"file":"NativeHotUpdater.d.ts","sourceRoot":"","sources":["../../../../src/specs/NativeHotUpdater.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,IAAK,SAAQ,WAAW;IAEvC,MAAM,IAAI,IAAI,CAAC;IACf,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAG3D,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM;QAC3B,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;;AAED,wBAAoE"}
1
+ {"version":3,"file":"NativeHotUpdater.d.ts","sourceRoot":"","sources":["../../../../src/specs/NativeHotUpdater.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,IAAK,SAAQ,WAAW;IAEvC,MAAM,IAAI,IAAI,CAAC;IACf,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAG3D,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM;QAC3B,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,OAAO,EAAE,MAAM,CAAC;QAChB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;KACjC,CAAC;CACH;;AAED,wBAAoE"}
@@ -1,4 +1,4 @@
1
- import type { AppUpdateInfo, GetBundlesArgs } from "@hot-updater/core";
1
+ import type { AppUpdateInfo, UpdateBundleParams } from "@hot-updater/core";
2
2
  import { type UpdateSource } from "./fetchUpdateInfo";
3
3
  export interface CheckForUpdateOptions {
4
4
  source: UpdateSource;
@@ -18,5 +18,14 @@ export type CheckForUpdateResult = AppUpdateInfo & {
18
18
  updateBundle: () => Promise<boolean>;
19
19
  };
20
20
  export declare function checkForUpdate(options: CheckForUpdateOptions): Promise<CheckForUpdateResult | null>;
21
- export declare const getUpdateSource: (baseUrl: string) => (args: GetBundlesArgs) => string;
21
+ export interface GetUpdateSourceOptions {
22
+ /**
23
+ * The update strategy to use.
24
+ * @description
25
+ * - "fingerprint": Use the fingerprint hash to check for updates.
26
+ * - "appVersion": Use the target app version to check for updates.
27
+ */
28
+ updateStrategy: "appVersion" | "fingerprint";
29
+ }
30
+ export declare const getUpdateSource: (baseUrl: string, options: GetUpdateSourceOptions) => (params: UpdateBundleParams) => string;
22
31
  //# 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,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGvE,OAAO,EAAE,KAAK,YAAY,EAAmB,MAAM,mBAAmB,CAAC;AAUvE,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,YAAY,CAAC;IACrB,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;AAEF,wBAAsB,cAAc,CAClC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CA8DtC;AAED,eAAO,MAAM,eAAe,GAAI,SAAS,MAAM,MAAM,MAAM,cAAc,WASxE,CAAC"}
1
+ {"version":3,"file":"checkForUpdate.d.ts","sourceRoot":"","sources":["../../../src/checkForUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAG3E,OAAO,EAAE,KAAK,YAAY,EAAmB,MAAM,mBAAmB,CAAC;AAUvE,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,YAAY,CAAC;IACrB,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;AAEF,wBAAsB,cAAc,CAClC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAsDtC;AAED,MAAM,WAAW,sBAAsB;IACrC;;;;;OAKG;IACH,cAAc,EAAE,YAAY,GAAG,aAAa,CAAC;CAC9C;AAED,eAAO,MAAM,eAAe,GACzB,SAAS,MAAM,EAAE,SAAS,sBAAsB,MAChD,QAAQ,kBAAkB,WAc1B,CAAC"}
@@ -1,4 +1,10 @@
1
- import type { AppUpdateInfo, GetBundlesArgs } from "@hot-updater/core";
2
- export type UpdateSource = string | ((args: GetBundlesArgs) => Promise<AppUpdateInfo | null>) | ((args: GetBundlesArgs) => string);
3
- export declare const fetchUpdateInfo: (source: UpdateSource, args: GetBundlesArgs, requestHeaders?: Record<string, string>, onError?: (error: Error) => void, requestTimeout?: number) => Promise<AppUpdateInfo | null>;
1
+ import type { AppUpdateInfo, UpdateBundleParams } from "@hot-updater/core";
2
+ export type UpdateSource = string | ((params: UpdateBundleParams) => Promise<AppUpdateInfo | null>) | ((params: UpdateBundleParams) => string);
3
+ export declare const fetchUpdateInfo: ({ source, params, requestHeaders, onError, requestTimeout, }: {
4
+ source: UpdateSource;
5
+ params: UpdateBundleParams;
6
+ requestHeaders?: Record<string, string>;
7
+ onError?: (error: Error) => void;
8
+ requestTimeout?: number;
9
+ }) => Promise<AppUpdateInfo | null>;
4
10
  //# sourceMappingURL=fetchUpdateInfo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetchUpdateInfo.d.ts","sourceRoot":"","sources":["../../../src/fetchUpdateInfo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEvE,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,CAAC,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,GACzD,CAAC,CAAC,IAAI,EAAE,cAAc,KAAK,MAAM,CAAC,CAAC;AAEvC,eAAO,MAAM,eAAe,GAC1B,QAAQ,YAAY,EACpB,MAAM,cAAc,EACpB,iBAAiB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACvC,UAAU,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,EAChC,uBAAqB,KACpB,OAAO,CAAC,aAAa,GAAG,IAAI,CA+D9B,CAAC"}
1
+ {"version":3,"file":"fetchUpdateInfo.d.ts","sourceRoot":"","sources":["../../../src/fetchUpdateInfo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EAEnB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,CAAC,CAAC,MAAM,EAAE,kBAAkB,KAAK,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,GAC/D,CAAC,CAAC,MAAM,EAAE,kBAAkB,KAAK,MAAM,CAAC,CAAC;AAqC7C,eAAO,MAAM,eAAe,GAAU,8DAMnC;IACD,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,KAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAgC/B,CAAC"}
@@ -58,18 +58,6 @@ export declare const HotUpdater: {
58
58
  * ```
59
59
  */
60
60
  getChannel: () => string;
61
- /**
62
- * The initial channel of the native app.
63
- *
64
- * @returns {string} The current release channel of the app
65
- * @default "production"
66
- * @example
67
- * ```ts
68
- * const channel = HotUpdater.getReleaseChannel();
69
- * console.log(`Current release channel: ${channel}`);
70
- * ```
71
- */
72
- getReleaseChannel: () => string;
73
61
  /**
74
62
  * Adds a listener to HotUpdater events.
75
63
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EASL,YAAY,EACb,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,YAAY,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAChD,YAAY,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,cAAc,SAAS,CAAC;AAQxB,eAAO,MAAM,UAAU;IACrB;;;;;;;;;;;;;;;;;;;;;OAqBG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;;;;;;;;;;;OAYG;;IAEH;;;;;;;;;;OAUG;;IAEH;;;;;;;;;;;;;;;;OAgBG;;IAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;;IAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;;IAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;;IAEH;;;;;;;;;;OAUG;;CAEJ,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAQL,YAAY,EACb,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,YAAY,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAChD,YAAY,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,cAAc,SAAS,CAAC;AAQxB,eAAO,MAAM,UAAU;IACrB;;;;;;;;;;;;;;;;;;;;;OAqBG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;;;;;;;;;;;OAYG;;IAEH;;;;;;;;;;;;;;;;OAgBG;;IAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;;IAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;;IAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;;IAEH;;;;;;;;;;OAUG;;CAEJ,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1,10 +1,7 @@
1
- import type { UpdateStatus, UpdateStrategy } from "@hot-updater/core";
1
+ import type { UpdateStatus } from "@hot-updater/core";
2
2
  import { type UpdateBundleParams } from "./specs/NativeHotUpdater";
3
3
  export declare const HotUpdaterConstants: {
4
- OVER_THE_AIR_CHANNEL: string | null;
5
4
  HOT_UPDATER_BUNDLE_ID: string;
6
- FINGERPRINT_HASH: string | null;
7
- UPDATE_STRATEGY: UpdateStrategy;
8
5
  };
9
6
  export type HotUpdaterEvent = {
10
7
  onProgress: {
@@ -54,7 +51,6 @@ export declare const getBundleId: () => string;
54
51
  * @returns {string} Resolves with the channel or null if not available.
55
52
  */
56
53
  export declare const getChannel: () => string;
57
- export declare const getReleaseChannel: () => string;
58
54
  /**
59
55
  * Fetches the fingerprint for the app.
60
56
  *
@@ -1 +1 @@
1
- {"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/native.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEtE,OAAyB,EACvB,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAC;AAUlC,eAAO,MAAM,mBAAmB;;;;;CAS/B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE;QACV,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,MAAM,eAAe,EACzD,WAAW,CAAC,EACZ,UAAU,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,eAQ9C,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,kBAAkB,GAAG;IAC9C,MAAM,EAAE,YAAY,CAAC;CACtB,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC3E;;GAEG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GAAG,IAAI,GACrB,OAAO,CAAC,OAAO,CAAC,CAAC;AAqCpB;;GAEG;AACH,eAAO,MAAM,aAAa,QAAO,MAAM,GAAG,IAGzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,MAAM,YAIlB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,QAAO,MAGjC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,QAAO,MAI9B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU,QAAO,MAM7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,QAAO,MAGpC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,QAAO,MAAM,GAAG,IAE9C,CAAC"}
1
+ {"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/native.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAyB,EACvB,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAC;AAMlC,eAAO,MAAM,mBAAmB;;CAE/B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE;QACV,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,MAAM,eAAe,EACzD,WAAW,CAAC,EACZ,UAAU,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,eAQ9C,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,kBAAkB,GAAG;IAC9C,MAAM,EAAE,YAAY,CAAC;CACtB,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC3E;;GAEG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GAAG,IAAI,GACrB,OAAO,CAAC,OAAO,CAAC,CAAC;AAqCpB;;GAEG;AACH,eAAO,MAAM,aAAa,QAAO,MAAM,GAAG,IAGzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,MAAM,YAIlB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,QAAO,MAGjC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,QAAO,MAI9B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU,QAAO,MAG7B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,QAAO,MAAM,GAAG,IAG9C,CAAC"}
@@ -12,6 +12,7 @@ export interface Spec extends TurboModule {
12
12
  MIN_BUNDLE_ID: string;
13
13
  APP_VERSION: string | null;
14
14
  CHANNEL: string;
15
+ FINGERPRINT_HASH: string | null;
15
16
  };
16
17
  }
17
18
  declare const _default: Spec;
@@ -1 +1 @@
1
- {"version":3,"file":"NativeHotUpdater.d.ts","sourceRoot":"","sources":["../../../../src/specs/NativeHotUpdater.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,IAAK,SAAQ,WAAW;IAEvC,MAAM,IAAI,IAAI,CAAC;IACf,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAG3D,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM;QAC3B,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;;AAED,wBAAoE"}
1
+ {"version":3,"file":"NativeHotUpdater.d.ts","sourceRoot":"","sources":["../../../../src/specs/NativeHotUpdater.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,IAAK,SAAQ,WAAW;IAEvC,MAAM,IAAI,IAAI,CAAC;IACf,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAG3D,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM;QAC3B,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,OAAO,EAAE,MAAM,CAAC;QAChB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;KACjC,CAAC;CACH;;AAED,wBAAoE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hot-updater/react-native",
3
- "version": "0.18.5",
3
+ "version": "0.19.0",
4
4
  "description": "React Native OTA solution for self-hosted",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -98,12 +98,16 @@
98
98
  "peerDependenciesMeta": {
99
99
  "expo": {
100
100
  "optional": true
101
+ },
102
+ "hot-updater": {
103
+ "optional": true
101
104
  }
102
105
  },
103
106
  "peerDependencies": {
104
107
  "expo": ">=50.0.0",
105
108
  "react": "*",
106
- "react-native": "*"
109
+ "react-native": "*",
110
+ "hot-updater": "*"
107
111
  },
108
112
  "devDependencies": {
109
113
  "@react-native-community/cli": "18.0.0",
@@ -114,12 +118,13 @@
114
118
  "react": "19.1.0",
115
119
  "react-native": "0.79.1",
116
120
  "react-native-builder-bob": "^0.40.10",
117
- "typescript": "^5.8.3"
121
+ "typescript": "^5.8.3",
122
+ "hot-updater": "0.19.0"
118
123
  },
119
124
  "dependencies": {
120
125
  "use-sync-external-store": "1.5.0",
121
- "@hot-updater/core": "0.18.5",
122
- "@hot-updater/js": "0.18.5"
126
+ "@hot-updater/core": "0.19.0",
127
+ "@hot-updater/js": "0.19.0"
123
128
  },
124
129
  "scripts": {
125
130
  "build": "bob build && tsc -p plugin/tsconfig.json",
@@ -1,10 +1,62 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
2
38
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
39
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
40
  };
5
41
  Object.defineProperty(exports, "__esModule", { value: true });
6
42
  var config_plugins_1 = require("expo/config-plugins");
43
+ var hot_updater_1 = require("hot-updater");
7
44
  var package_json_1 = __importDefault(require("../../package.json"));
45
+ var fingerprintCache = null;
46
+ var getFingerprint = function () { return __awaiter(void 0, void 0, void 0, function () {
47
+ return __generator(this, function (_a) {
48
+ switch (_a.label) {
49
+ case 0:
50
+ if (fingerprintCache) {
51
+ return [2 /*return*/, fingerprintCache];
52
+ }
53
+ return [4 /*yield*/, (0, hot_updater_1.createFingerprintJson)()];
54
+ case 1:
55
+ fingerprintCache = _a.sent();
56
+ return [2 /*return*/, fingerprintCache];
57
+ }
58
+ });
59
+ }); };
8
60
  /**
9
61
  * Helper to add lines if they don't exist, anchored by a specific string.
10
62
  */
@@ -34,7 +86,10 @@ function replaceContentOnce(contents, searchRegex, replacement, checkIfAlreadyRe
34
86
  // Otherwise, perform the replacement if the search target exists.
35
87
  return contents.replace(searchRegex, replacement);
36
88
  }
37
- var withHotUpdater = function (config) {
89
+ /**
90
+ * Native code modifications - should only run once
91
+ */
92
+ var withHotUpdaterNativeCode = function (config) {
38
93
  var modifiedConfig = config;
39
94
  // === iOS: Objective-C & Swift in AppDelegate ===
40
95
  modifiedConfig = (0, config_plugins_1.withAppDelegate)(modifiedConfig, function (cfg) {
@@ -105,9 +160,10 @@ var withHotUpdater = function (config) {
105
160
  var rnHostEndRegex = /(\s*object\s*:\s*DefaultReactNativeHost\s*\([\s\S]*?\n)(\s*\})\s*$/m;
106
161
  if (rnHostEndRegex.test(contents)) {
107
162
  contents = contents.replace(rnHostEndRegex, "$1".concat(kotlinNewMethod, "\n$2"));
108
- throw new Error("[withHotUpdater] Kotlin: Could not find Hermes anchor. Added getJSBundleFile before closing brace.");
109
163
  }
110
- throw new Error("[withHotUpdater] Kotlin: Could not find Hermes anchor or closing brace to insert getJSBundleFile.");
164
+ else {
165
+ throw new Error("[withHotUpdater] Kotlin: Could not find Hermes anchor or closing brace to insert getJSBundleFile.");
166
+ }
111
167
  }
112
168
  }
113
169
  }
@@ -131,9 +187,10 @@ var withHotUpdater = function (config) {
131
187
  var rnHostEndRegex = /(\s*new\s*DefaultReactNativeHost\s*\([\s\S]*?\n)(\s*\});\s*$/m;
132
188
  if (rnHostEndRegex.test(contents)) {
133
189
  contents = contents.replace(rnHostEndRegex, "$1".concat(javaNewMethod, "\n$2"));
134
- throw new Error("[withHotUpdater] Java: Could not find Hermes anchor. Added getJSBundleFile before closing brace.");
135
190
  }
136
- throw new Error("[withHotUpdater] Java: Could not find Hermes anchor or closing brace to insert getJSBundleFile.");
191
+ else {
192
+ throw new Error("[withHotUpdater] Java: Could not find Hermes anchor or closing brace to insert getJSBundleFile.");
193
+ }
137
194
  }
138
195
  }
139
196
  }
@@ -142,5 +199,79 @@ var withHotUpdater = function (config) {
142
199
  });
143
200
  return modifiedConfig;
144
201
  };
145
- // Export the plugin using createRunOncePlugin for idempotency at the plugin level
146
- exports.default = (0, config_plugins_1.createRunOncePlugin)(withHotUpdater, package_json_1.default.name, package_json_1.default.version);
202
+ /**
203
+ * Configuration updates - should run every time
204
+ */
205
+ var withHotUpdaterConfigAsync = function (props) { return function (config) {
206
+ var channel = props.channel || "production";
207
+ var modifiedConfig = config;
208
+ // === iOS: Add channel and fingerprint to Info.plist ===
209
+ modifiedConfig = (0, config_plugins_1.withInfoPlist)(modifiedConfig, function (cfg) { return __awaiter(void 0, void 0, void 0, function () {
210
+ var ios;
211
+ return __generator(this, function (_a) {
212
+ switch (_a.label) {
213
+ case 0: return [4 /*yield*/, getFingerprint()];
214
+ case 1:
215
+ ios = (_a.sent()).ios;
216
+ cfg.modResults.HOT_UPDATER_CHANNEL = channel;
217
+ cfg.modResults.HOT_UPDATER_FINGERPRINT_HASH = ios.hash;
218
+ return [2 /*return*/, cfg];
219
+ }
220
+ });
221
+ }); });
222
+ // === Android: Add channel and fingerprint to strings.xml ===
223
+ modifiedConfig = (0, config_plugins_1.withStringsXml)(modifiedConfig, function (cfg) { return __awaiter(void 0, void 0, void 0, function () {
224
+ var android;
225
+ return __generator(this, function (_a) {
226
+ switch (_a.label) {
227
+ case 0: return [4 /*yield*/, getFingerprint()];
228
+ case 1:
229
+ android = (_a.sent()).android;
230
+ // Ensure resources object exists
231
+ if (!cfg.modResults.resources) {
232
+ cfg.modResults.resources = {};
233
+ }
234
+ if (!cfg.modResults.resources.string) {
235
+ cfg.modResults.resources.string = [];
236
+ }
237
+ // Remove existing hot_updater_channel entry if it exists
238
+ cfg.modResults.resources.string = cfg.modResults.resources.string.filter(function (item) { return !(item.$ && item.$.name === "hot_updater_channel"); });
239
+ // Add the new hot_updater_channel entry
240
+ cfg.modResults.resources.string.push({
241
+ $: {
242
+ name: "hot_updater_channel",
243
+ moduleConfig: "true",
244
+ },
245
+ _: channel,
246
+ });
247
+ // Remove existing hot_updater_fingerprint_hash entry if it exists
248
+ cfg.modResults.resources.string = cfg.modResults.resources.string.filter(function (item) { return !(item.$ && item.$.name === "hot_updater_fingerprint_hash"); });
249
+ // Add the new hot_updater_fingerprint_hash entry
250
+ cfg.modResults.resources.string.push({
251
+ $: {
252
+ name: "hot_updater_fingerprint_hash",
253
+ moduleConfig: "true",
254
+ },
255
+ _: android.hash,
256
+ });
257
+ return [2 /*return*/, cfg];
258
+ }
259
+ });
260
+ }); });
261
+ return modifiedConfig;
262
+ }; };
263
+ /**
264
+ * Main plugin that combines both native code (run once) and config (run always)
265
+ */
266
+ var withHotUpdater = function (config, props) {
267
+ if (props === void 0) { props = {}; }
268
+ // Apply plugins in order
269
+ return (0, config_plugins_1.withPlugins)(config, [
270
+ // Native code modifications - wrapped with createRunOncePlugin
271
+ (0, config_plugins_1.createRunOncePlugin)(withHotUpdaterNativeCode, "".concat(package_json_1.default.name, "-native"), package_json_1.default.version),
272
+ // Configuration updates - runs every time
273
+ withHotUpdaterConfigAsync(props),
274
+ ]);
275
+ };
276
+ // Export the main plugin
277
+ exports.default = withHotUpdater;