@hot-updater/react-native 0.18.4 → 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
@@ -33,6 +33,13 @@ class HotUpdater : ReactPackage {
33
33
  */
34
34
  fun getMinBundleId(context: Context): String = HotUpdaterFactory.getInstance(context).getMinBundleId()
35
35
 
36
+ /**
37
+ * Gets the current fingerprint hash
38
+ * @param context Application context
39
+ * @return The fingerprint hash or null if not set
40
+ */
41
+ fun getFingerprintHash(context: Context): String? = HotUpdaterFactory.getInstance(context).getFingerprintHash()
42
+
36
43
  /**
37
44
  * Gets the current update channel
38
45
  * @param context Application context
@@ -117,6 +117,19 @@ class HotUpdaterImpl(
117
117
  "00000000-0000-0000-0000-000000000000"
118
118
  }
119
119
 
120
+ /**
121
+ * Gets the current fingerprint hash
122
+ * @return The fingerprint hash or null if not set
123
+ */
124
+ fun getFingerprintHash(): String? {
125
+ val id = context.resources.getIdentifier("hot_updater_fingerprint_hash", "string", context.packageName)
126
+ return if (id != 0) {
127
+ context.getString(id).takeIf { it.isNotEmpty() }
128
+ } else {
129
+ null
130
+ }
131
+ }
132
+
120
133
  /**
121
134
  * Gets the current update channel
122
135
  * @return The channel name or null if not set
@@ -65,6 +65,7 @@ class HotUpdaterModule internal constructor(
65
65
  constants["MIN_BUNDLE_ID"] = HotUpdater.getMinBundleId(mReactApplicationContext)
66
66
  constants["APP_VERSION"] = HotUpdater.getAppVersion(mReactApplicationContext)
67
67
  constants["CHANNEL"] = HotUpdater.getChannel(mReactApplicationContext)
68
+ constants["FINGERPRINT_HASH"] = HotUpdater.getFingerprintHash(mReactApplicationContext)
68
69
  return constants
69
70
  }
70
71
 
@@ -80,6 +80,7 @@ class HotUpdaterModule internal constructor(
80
80
  constants["MIN_BUNDLE_ID"] = HotUpdater.getMinBundleId(mReactApplicationContext)
81
81
  constants["APP_VERSION"] = HotUpdater.getAppVersion(mReactApplicationContext)
82
82
  constants["CHANNEL"] = HotUpdater.getChannel(mReactApplicationContext)
83
+ constants["FINGERPRINT_HASH"] = HotUpdater.getFingerprintHash(mReactApplicationContext)
83
84
  return constants
84
85
  }
85
86
 
@@ -108,7 +108,8 @@ RCT_EXPORT_MODULE();
108
108
  return @{
109
109
  @"MIN_BUNDLE_ID": [self getMinBundleId] ?: [NSNull null], // Local
110
110
  @"APP_VERSION": [HotUpdaterImpl appVersion] ?: [NSNull null], // Swift
111
- @"CHANNEL": [_hotUpdaterImpl getChannel] ?: [NSNull null] // Swift
111
+ @"CHANNEL": [_hotUpdaterImpl getChannel] ?: [NSNull null], // Swift
112
+ @"FINGERPRINT_HASH": [_hotUpdaterImpl getFingerprintHash] ?: [NSNull null] // Swift
112
113
  };
113
114
  }
114
115
 
@@ -69,12 +69,18 @@ import React
69
69
  * Gets the current update channel.
70
70
  * @return The channel name or nil if not set
71
71
  */
72
-
73
72
  public func getChannel() -> String {
74
73
  return Bundle.main.object(forInfoDictionaryKey: "HOT_UPDATER_CHANNEL") as? String ?? Self.DEFAULT_CHANNEL
75
74
  }
76
75
 
77
-
76
+ /**
77
+ * Gets the current fingerprint hash.
78
+ * @return The fingerprint hash or nil if not set
79
+ */
80
+ public func getFingerprintHash() -> String? {
81
+ return Bundle.main.object(forInfoDictionaryKey: "HOT_UPDATER_FINGERPRINT_HASH") as? String
82
+ }
83
+
78
84
  // MARK: - Bundle URL Management
79
85
 
80
86
  /**
@@ -26,21 +26,21 @@ async function checkForUpdate(options) {
26
26
  options.onError?.(new _error.HotUpdaterError("Failed to get app version"));
27
27
  return null;
28
28
  }
29
- const baseArgs = {
30
- bundleId: currentBundleId,
31
- platform,
32
- minBundleId,
33
- channel: channel ?? undefined
34
- };
35
- return (0, _fetchUpdateInfo.fetchUpdateInfo)(options.source, _native.HotUpdaterConstants.UPDATE_STRATEGY === "appVersion" ? {
36
- _updateStrategy: _native.HotUpdaterConstants.UPDATE_STRATEGY,
37
- appVersion: currentAppVersion,
38
- ...baseArgs
39
- } : {
40
- _updateStrategy: _native.HotUpdaterConstants.UPDATE_STRATEGY,
41
- fingerprintHash: _native.HotUpdaterConstants.FINGERPRINT_HASH,
42
- ...baseArgs
43
- }, options.requestHeaders, options.onError, options.requestTimeout).then(updateInfo => {
29
+ const fingerprintHash = (0, _native.getFingerprintHash)();
30
+ return (0, _fetchUpdateInfo.fetchUpdateInfo)({
31
+ source: options.source,
32
+ params: {
33
+ bundleId: currentBundleId,
34
+ appVersion: currentAppVersion,
35
+ platform,
36
+ minBundleId,
37
+ channel,
38
+ fingerprintHash
39
+ },
40
+ requestHeaders: options.requestHeaders,
41
+ onError: options.onError,
42
+ requestTimeout: options.requestTimeout
43
+ }).then(updateInfo => {
44
44
  if (!updateInfo) {
45
45
  return null;
46
46
  }
@@ -56,12 +56,19 @@ async function checkForUpdate(options) {
56
56
  };
57
57
  });
58
58
  }
59
- const getUpdateSource = baseUrl => args => {
60
- switch (args._updateStrategy) {
61
- case "appVersion":
62
- return `${baseUrl}/app-version/${args.platform}/${args.appVersion}/${args.channel}/${args.minBundleId}/${args.bundleId}`;
59
+ const getUpdateSource = (baseUrl, options) => params => {
60
+ switch (options.updateStrategy) {
63
61
  case "fingerprint":
64
- return `${baseUrl}/fingerprint/${args.platform}/${args.fingerprintHash}/${args.channel}/${args.minBundleId}/${args.bundleId}`;
62
+ {
63
+ if (!params.fingerprintHash) {
64
+ throw new _error.HotUpdaterError("Fingerprint hash is required");
65
+ }
66
+ return `${baseUrl}/fingerprint/${params.platform}/${params.fingerprintHash}/${params.channel}/${params.minBundleId}/${params.bundleId}`;
67
+ }
68
+ case "appVersion":
69
+ {
70
+ return `${baseUrl}/app-version/${params.platform}/${params.appVersion}/${params.channel}/${params.minBundleId}/${params.bundleId}`;
71
+ }
65
72
  default:
66
73
  return baseUrl;
67
74
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_error","_fetchUpdateInfo","_native","checkForUpdate","options","__DEV__","includes","Platform","OS","onError","HotUpdaterError","currentAppVersion","getAppVersion","platform","currentBundleId","getBundleId","minBundleId","getMinBundleId","channel","getChannel","baseArgs","bundleId","undefined","fetchUpdateInfo","source","HotUpdaterConstants","UPDATE_STRATEGY","_updateStrategy","appVersion","fingerprintHash","FINGERPRINT_HASH","requestHeaders","requestTimeout","then","updateInfo","updateBundle","id","fileUrl","status","getUpdateSource","baseUrl","args","exports"],"sourceRoot":"../../src","sources":["checkForUpdate.ts"],"mappings":";;;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AA4BO,eAAeI,cAAcA,CAClCC,OAA8B,EACQ;EACtC,IAAIC,OAAO,EAAE;IACX,OAAO,IAAI;EACb;EAEA,IAAI,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAACC,QAAQ,CAACC,qBAAQ,CAACC,EAAE,CAAC,EAAE;IAC7CJ,OAAO,CAACK,OAAO,GACb,IAAIC,sBAAe,CAAC,iDAAiD,CACvE,CAAC;IACD,OAAO,IAAI;EACb;EAEA,MAAMC,iBAAiB,GAAG,IAAAC,qBAAa,EAAC,CAAC;EACzC,MAAMC,QAAQ,GAAGN,qBAAQ,CAACC,EAAuB;EACjD,MAAMM,eAAe,GAAG,IAAAC,mBAAW,EAAC,CAAC;EACrC,MAAMC,WAAW,GAAG,IAAAC,sBAAc,EAAC,CAAC;EACpC,MAAMC,OAAO,GAAG,IAAAC,kBAAU,EAAC,CAAC;EAE5B,IAAI,CAACR,iBAAiB,EAAE;IACtBP,OAAO,CAACK,OAAO,GAAG,IAAIC,sBAAe,CAAC,2BAA2B,CAAC,CAAC;IACnE,OAAO,IAAI;EACb;EAEA,MAAMU,QAAQ,GAAG;IACfC,QAAQ,EAAEP,eAAe;IACzBD,QAAQ;IACRG,WAAW;IACXE,OAAO,EAAEA,OAAO,IAAII;EACtB,CAAC;EAED,OAAO,IAAAC,gCAAe,EACpBnB,OAAO,CAACoB,MAAM,EACdC,2BAAmB,CAACC,eAAe,KAAK,YAAY,GAChD;IACEC,eAAe,EAAEF,2BAAmB,CAACC,eAAe;IACpDE,UAAU,EAAEjB,iBAAiB;IAC7B,GAAGS;EACL,CAAC,GACD;IACEO,eAAe,EAAEF,2BAAmB,CAACC,eAAe;IACpDG,eAAe,EAAEJ,2BAAmB,CAACK,gBAAiB;IACtD,GAAGV;EACL,CAAC,EACLhB,OAAO,CAAC2B,cAAc,EACtB3B,OAAO,CAACK,OAAO,EACfL,OAAO,CAAC4B,cACV,CAAC,CAACC,IAAI,CAAEC,UAAU,IAAK;IACrB,IAAI,CAACA,UAAU,EAAE;MACf,OAAO,IAAI;IACb;IAEA,OAAO;MACL,GAAGA,UAAU;MACbC,YAAY,EAAE,MAAAA,CAAA,KAAY;QACxB,OAAO,IAAAA,oBAAY,EAAC;UAClBd,QAAQ,EAAEa,UAAU,CAACE,EAAE;UACvBC,OAAO,EAAEH,UAAU,CAACG,OAAO;UAC3BC,MAAM,EAAEJ,UAAU,CAACI;QACrB,CAAC,CAAC;MACJ;IACF,CAAC;EACH,CAAC,CAAC;AACJ;AAEO,MAAMC,eAAe,GAAIC,OAAe,IAAMC,IAAoB,IAAK;EAC5E,QAAQA,IAAI,CAACd,eAAe;IAC1B,KAAK,YAAY;MACf,OAAO,GAAGa,OAAO,gBAAgBC,IAAI,CAAC5B,QAAQ,IAAI4B,IAAI,CAACb,UAAU,IAAIa,IAAI,CAACvB,OAAO,IAAIuB,IAAI,CAACzB,WAAW,IAAIyB,IAAI,CAACpB,QAAQ,EAAE;IAC1H,KAAK,aAAa;MAChB,OAAO,GAAGmB,OAAO,gBAAgBC,IAAI,CAAC5B,QAAQ,IAAI4B,IAAI,CAACZ,eAAe,IAAIY,IAAI,CAACvB,OAAO,IAAIuB,IAAI,CAACzB,WAAW,IAAIyB,IAAI,CAACpB,QAAQ,EAAE;IAC/H;MACE,OAAOmB,OAAO;EAClB;AACF,CAAC;AAACE,OAAA,CAAAH,eAAA,GAAAA,eAAA","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_error","_fetchUpdateInfo","_native","checkForUpdate","options","__DEV__","includes","Platform","OS","onError","HotUpdaterError","currentAppVersion","getAppVersion","platform","currentBundleId","getBundleId","minBundleId","getMinBundleId","channel","getChannel","fingerprintHash","getFingerprintHash","fetchUpdateInfo","source","params","bundleId","appVersion","requestHeaders","requestTimeout","then","updateInfo","updateBundle","id","fileUrl","status","getUpdateSource","baseUrl","updateStrategy","exports"],"sourceRoot":"../../src","sources":["checkForUpdate.ts"],"mappings":";;;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AA4BO,eAAeI,cAAcA,CAClCC,OAA8B,EACQ;EACtC,IAAIC,OAAO,EAAE;IACX,OAAO,IAAI;EACb;EAEA,IAAI,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAACC,QAAQ,CAACC,qBAAQ,CAACC,EAAE,CAAC,EAAE;IAC7CJ,OAAO,CAACK,OAAO,GACb,IAAIC,sBAAe,CAAC,iDAAiD,CACvE,CAAC;IACD,OAAO,IAAI;EACb;EAEA,MAAMC,iBAAiB,GAAG,IAAAC,qBAAa,EAAC,CAAC;EACzC,MAAMC,QAAQ,GAAGN,qBAAQ,CAACC,EAAuB;EACjD,MAAMM,eAAe,GAAG,IAAAC,mBAAW,EAAC,CAAC;EACrC,MAAMC,WAAW,GAAG,IAAAC,sBAAc,EAAC,CAAC;EACpC,MAAMC,OAAO,GAAG,IAAAC,kBAAU,EAAC,CAAC;EAE5B,IAAI,CAACR,iBAAiB,EAAE;IACtBP,OAAO,CAACK,OAAO,GAAG,IAAIC,sBAAe,CAAC,2BAA2B,CAAC,CAAC;IACnE,OAAO,IAAI;EACb;EAEA,MAAMU,eAAe,GAAG,IAAAC,0BAAkB,EAAC,CAAC;EAE5C,OAAO,IAAAC,gCAAe,EAAC;IACrBC,MAAM,EAAEnB,OAAO,CAACmB,MAAM;IACtBC,MAAM,EAAE;MACNC,QAAQ,EAAEX,eAAe;MACzBY,UAAU,EAAEf,iBAAiB;MAC7BE,QAAQ;MACRG,WAAW;MACXE,OAAO;MACPE;IACF,CAAC;IACDO,cAAc,EAAEvB,OAAO,CAACuB,cAAc;IACtClB,OAAO,EAAEL,OAAO,CAACK,OAAO;IACxBmB,cAAc,EAAExB,OAAO,CAACwB;EAC1B,CAAC,CAAC,CAACC,IAAI,CAAEC,UAAU,IAAK;IACtB,IAAI,CAACA,UAAU,EAAE;MACf,OAAO,IAAI;IACb;IAEA,OAAO;MACL,GAAGA,UAAU;MACbC,YAAY,EAAE,MAAAA,CAAA,KAAY;QACxB,OAAO,IAAAA,oBAAY,EAAC;UAClBN,QAAQ,EAAEK,UAAU,CAACE,EAAE;UACvBC,OAAO,EAAEH,UAAU,CAACG,OAAO;UAC3BC,MAAM,EAAEJ,UAAU,CAACI;QACrB,CAAC,CAAC;MACJ;IACF,CAAC;EACH,CAAC,CAAC;AACJ;AAYO,MAAMC,eAAe,GAC1BA,CAACC,OAAe,EAAEhC,OAA+B,KAChDoB,MAA0B,IAAK;EAC9B,QAAQpB,OAAO,CAACiC,cAAc;IAC5B,KAAK,aAAa;MAAE;QAClB,IAAI,CAACb,MAAM,CAACJ,eAAe,EAAE;UAC3B,MAAM,IAAIV,sBAAe,CAAC,8BAA8B,CAAC;QAC3D;QACA,OAAO,GAAG0B,OAAO,gBAAgBZ,MAAM,CAACX,QAAQ,IAAIW,MAAM,CAACJ,eAAe,IAAII,MAAM,CAACN,OAAO,IAAIM,MAAM,CAACR,WAAW,IAAIQ,MAAM,CAACC,QAAQ,EAAE;MACzI;IACA,KAAK,YAAY;MAAE;QACjB,OAAO,GAAGW,OAAO,gBAAgBZ,MAAM,CAACX,QAAQ,IAAIW,MAAM,CAACE,UAAU,IAAIF,MAAM,CAACN,OAAO,IAAIM,MAAM,CAACR,WAAW,IAAIQ,MAAM,CAACC,QAAQ,EAAE;MACpI;IACA;MACE,OAAOW,OAAO;EAClB;AACF,CAAC;AAACE,OAAA,CAAAH,eAAA,GAAAA,eAAA","ignoreList":[]}
@@ -4,55 +4,60 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.fetchUpdateInfo = void 0;
7
- const fetchUpdateInfo = async (source, args, requestHeaders, onError, requestTimeout = 5000) => {
8
- if (typeof source === "function") {
9
- const url = source(args);
10
- if (typeof url !== "string") {
11
- return null;
12
- }
13
- source = url;
7
+ function buildRequestHeaders(params, requestHeaders) {
8
+ const updateStrategy = params.fingerprintHash ? "fingerprint" : "appVersion";
9
+ return {
10
+ "Content-Type": "application/json",
11
+ "x-app-platform": params.platform,
12
+ "x-bundle-id": params.bundleId,
13
+ ...(updateStrategy === "fingerprint" ? {
14
+ "x-fingerprint-hash": params.fingerprintHash
15
+ } : {
16
+ "x-app-version": params.appVersion
17
+ }),
18
+ ...(params.minBundleId && {
19
+ "x-min-bundle-id": params.minBundleId
20
+ }),
21
+ ...(params.channel && {
22
+ "x-channel": params.channel
23
+ }),
24
+ ...(requestHeaders ?? {})
25
+ };
26
+ }
27
+ async function resolveSource(source, params) {
28
+ if (typeof source !== "function") {
29
+ return {
30
+ url: source
31
+ };
32
+ }
33
+ const result = source(params);
34
+ if (typeof result === "string") {
35
+ return {
36
+ url: result
37
+ };
14
38
  }
15
- const controller = new AbortController();
16
- const timeoutId = setTimeout(() => {
17
- controller.abort();
18
- }, requestTimeout);
39
+ return {
40
+ info: await result
41
+ };
42
+ }
43
+ const fetchUpdateInfo = async ({
44
+ source,
45
+ params,
46
+ requestHeaders,
47
+ onError,
48
+ requestTimeout = 5000
49
+ }) => {
19
50
  try {
20
- let headers = {};
21
- switch (args._updateStrategy) {
22
- case "fingerprint":
23
- headers = {
24
- "Content-Type": "application/json",
25
- "x-app-platform": args.platform,
26
- "x-bundle-id": args.bundleId,
27
- "x-fingerprint-hash": args.fingerprintHash,
28
- ...(args.minBundleId ? {
29
- "x-min-bundle-id": args.minBundleId
30
- } : {}),
31
- ...(args.channel ? {
32
- "x-channel": args.channel
33
- } : {}),
34
- ...requestHeaders
35
- };
36
- break;
37
- case "appVersion":
38
- headers = {
39
- "Content-Type": "application/json",
40
- "x-app-platform": args.platform,
41
- "x-bundle-id": args.bundleId,
42
- "x-app-version": args.appVersion,
43
- ...(args.minBundleId ? {
44
- "x-min-bundle-id": args.minBundleId
45
- } : {}),
46
- ...(args.channel ? {
47
- "x-channel": args.channel
48
- } : {}),
49
- ...requestHeaders
50
- };
51
- break;
52
- default:
53
- throw new Error("Invalid update strategy");
51
+ const resolvedSource = await resolveSource(source, params);
52
+ if ("info" in resolvedSource) {
53
+ return resolvedSource.info;
54
54
  }
55
- const response = await fetch(source, {
55
+ const controller = new AbortController();
56
+ const timeoutId = setTimeout(() => {
57
+ controller.abort();
58
+ }, requestTimeout);
59
+ const headers = buildRequestHeaders(params, requestHeaders);
60
+ const response = await fetch(resolvedSource.url, {
56
61
  signal: controller.signal,
57
62
  headers
58
63
  });
@@ -64,9 +69,9 @@ const fetchUpdateInfo = async (source, args, requestHeaders, onError, requestTim
64
69
  } catch (error) {
65
70
  if (error.name === "AbortError") {
66
71
  onError?.(new Error("Request timed out"));
67
- return null;
72
+ } else {
73
+ onError?.(error);
68
74
  }
69
- onError?.(error);
70
75
  return null;
71
76
  }
72
77
  };
@@ -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","exports"],"sourceRoot":"../../src","sources":["fetchUpdateInfo.ts"],"mappings":";;;;;;AAOO,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;AAACE,OAAA,CAAA9B,eAAA,GAAAA,eAAA","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","exports"],"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;AAEO,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;AAACE,OAAA,CAAApB,eAAA,GAAAA,eAAA","ignoreList":[]}
@@ -91,18 +91,6 @@ const HotUpdater = exports.HotUpdater = {
91
91
  * ```
92
92
  */
93
93
  getChannel: _native.getChannel,
94
- /**
95
- * The initial channel of the native app.
96
- *
97
- * @returns {string} The current release channel of the app
98
- * @default "production"
99
- * @example
100
- * ```ts
101
- * const channel = HotUpdater.getReleaseChannel();
102
- * console.log(`Current release channel: ${channel}`);
103
- * ```
104
- */
105
- getReleaseChannel: _native.getReleaseChannel,
106
94
  /**
107
95
  * Adds a listener to HotUpdater events.
108
96
  *
@@ -1 +1 @@
1
- {"version":3,"names":["_checkForUpdate","require","_native","_runUpdateProcess","_store","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_wrap","addListener","progress","hotUpdaterStore","setState","HotUpdater","wrap","reload","getAppVersion","getBundleId","getMinBundleId","getChannel","getReleaseChannel","checkForUpdate","runUpdateProcess","updateBundle","getFingerprintHash"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAWA,IAAAE,iBAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAMAI,MAAA,CAAAC,IAAA,CAAAF,MAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,MAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,MAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AALA,IAAAS,KAAA,GAAAhB,OAAA;AAOA,IAAAiB,mBAAW,EAAC,YAAY,EAAE,CAAC;EAAEC;AAAS,CAAC,KAAK;EAC1CC,sBAAe,CAACC,QAAQ,CAAC;IACvBF;EACF,CAAC,CAAC;AACJ,CAAC,CAAC;AAEK,MAAMG,UAAU,GAAAT,OAAA,CAAAS,UAAA,GAAG;EACxB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,IAAI,EAAJA,UAAI;EACJ;AACF;AACA;EACEC,MAAM,EAANA,cAAM;EACN;AACF;AACA;EACEC,aAAa,EAAbA,qBAAa;EACb;AACF;AACA;EACEC,WAAW,EAAXA,mBAAW;EACX;AACF;AACA;EACEC,cAAc,EAAdA,sBAAc;EACd;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,UAAU,EAAVA,kBAAU;EACV;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,iBAAiB,EAAjBA,yBAAiB;EACjB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEX,WAAW,EAAXA,mBAAW;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;EACEY,cAAc,EAAdA,8BAAc;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;EACEC,gBAAgB,EAAhBA,kCAAgB;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;EACEC,YAAY,EAAZA,oBAAY;EACZ;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,kBAAkB,EAAlBA;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_checkForUpdate","require","_native","_runUpdateProcess","_store","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_wrap","addListener","progress","hotUpdaterStore","setState","HotUpdater","wrap","reload","getAppVersion","getBundleId","getMinBundleId","getChannel","checkForUpdate","runUpdateProcess","updateBundle","getFingerprintHash"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAUA,IAAAE,iBAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAMAI,MAAA,CAAAC,IAAA,CAAAF,MAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,MAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,MAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AALA,IAAAS,KAAA,GAAAhB,OAAA;AAOA,IAAAiB,mBAAW,EAAC,YAAY,EAAE,CAAC;EAAEC;AAAS,CAAC,KAAK;EAC1CC,sBAAe,CAACC,QAAQ,CAAC;IACvBF;EACF,CAAC,CAAC;AACJ,CAAC,CAAC;AAEK,MAAMG,UAAU,GAAAT,OAAA,CAAAS,UAAA,GAAG;EACxB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,IAAI,EAAJA,UAAI;EACJ;AACF;AACA;EACEC,MAAM,EAANA,cAAM;EACN;AACF;AACA;EACEC,aAAa,EAAbA,qBAAa;EACb;AACF;AACA;EACEC,WAAW,EAAXA,mBAAW;EACX;AACF;AACA;EACEC,cAAc,EAAdA,sBAAc;EACd;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,UAAU,EAAVA,kBAAU;EACV;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEV,WAAW,EAAXA,mBAAW;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;EACEW,cAAc,EAAdA,8BAAc;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;EACEC,gBAAgB,EAAhBA,kCAAgB;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;EACEC,YAAY,EAAZA,oBAAY;EACZ;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,kBAAkB,EAAlBA;AACF,CAAC","ignoreList":[]}
@@ -3,21 +3,14 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.reload = exports.getReleaseChannel = exports.getMinBundleId = exports.getFingerprintHash = exports.getChannel = exports.getBundleId = exports.getAppVersion = exports.addListener = exports.HotUpdaterConstants = void 0;
6
+ exports.reload = exports.getMinBundleId = exports.getFingerprintHash = exports.getChannel = exports.getBundleId = exports.getAppVersion = exports.addListener = exports.HotUpdaterConstants = void 0;
7
7
  exports.updateBundle = updateBundle;
8
8
  var _reactNative = require("react-native");
9
9
  var _NativeHotUpdater = _interopRequireDefault(require("./specs/NativeHotUpdater.js"));
10
10
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
11
  const NIL_UUID = "00000000-0000-0000-0000-000000000000";
12
12
  const HotUpdaterConstants = exports.HotUpdaterConstants = {
13
- OVER_THE_AIR_CHANNEL: __HOT_UPDATER_CHANNEL,
14
- HOT_UPDATER_BUNDLE_ID: __HOT_UPDATER_BUNDLE_ID || NIL_UUID,
15
- FINGERPRINT_HASH: _reactNative.Platform.select({
16
- ios: __HOT_UPDATER_FINGERPRINT_HASH_IOS,
17
- android: __HOT_UPDATER_FINGERPRINT_HASH_ANDROID,
18
- default: null
19
- }),
20
- UPDATE_STRATEGY: __HOT_UPDATER_UPDATE_STRATEGY
13
+ HOT_UPDATER_BUNDLE_ID: __HOT_UPDATER_BUNDLE_ID || NIL_UUID
21
14
  };
22
15
  const addListener = (eventName, listener) => {
23
16
  const eventEmitter = new _reactNative.NativeEventEmitter(_NativeHotUpdater.default);
@@ -107,14 +100,6 @@ const getBundleId = () => {
107
100
  */
108
101
  exports.getBundleId = getBundleId;
109
102
  const getChannel = () => {
110
- if (HotUpdaterConstants.OVER_THE_AIR_CHANNEL) {
111
- return HotUpdaterConstants.OVER_THE_AIR_CHANNEL;
112
- }
113
- const constants = _NativeHotUpdater.default.getConstants();
114
- return constants.CHANNEL;
115
- };
116
- exports.getChannel = getChannel;
117
- const getReleaseChannel = () => {
118
103
  const constants = _NativeHotUpdater.default.getConstants();
119
104
  return constants.CHANNEL;
120
105
  };
@@ -124,9 +109,10 @@ const getReleaseChannel = () => {
124
109
  *
125
110
  * @returns {string | null} Resolves with the fingerprint hash
126
111
  */
127
- exports.getReleaseChannel = getReleaseChannel;
112
+ exports.getChannel = getChannel;
128
113
  const getFingerprintHash = () => {
129
- return HotUpdaterConstants.FINGERPRINT_HASH;
114
+ const constants = _NativeHotUpdater.default.getConstants();
115
+ return constants.FINGERPRINT_HASH;
130
116
  };
131
117
  exports.getFingerprintHash = getFingerprintHash;
132
118
  //# sourceMappingURL=native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_NativeHotUpdater","_interopRequireDefault","e","__esModule","default","NIL_UUID","HotUpdaterConstants","exports","OVER_THE_AIR_CHANNEL","__HOT_UPDATER_CHANNEL","HOT_UPDATER_BUNDLE_ID","__HOT_UPDATER_BUNDLE_ID","FINGERPRINT_HASH","Platform","select","ios","__HOT_UPDATER_FINGERPRINT_HASH_IOS","android","__HOT_UPDATER_FINGERPRINT_HASH_ANDROID","UPDATE_STRATEGY","__HOT_UPDATER_UPDATE_STRATEGY","addListener","eventName","listener","eventEmitter","NativeEventEmitter","HotUpdaterNative","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":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_NativeHotUpdater","_interopRequireDefault","e","__esModule","default","NIL_UUID","HotUpdaterConstants","exports","HOT_UPDATER_BUNDLE_ID","__HOT_UPDATER_BUNDLE_ID","addListener","eventName","listener","eventEmitter","NativeEventEmitter","HotUpdaterNative","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":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["specs/NativeHotUpdater.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAsBpCC,gCAAmB,CAACC,YAAY,CAAO,YAAY,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["specs/NativeHotUpdater.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAuBpCC,gCAAmB,CAACC,YAAY,CAAO,YAAY,CAAC","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  import { Platform } from "react-native";
4
4
  import { HotUpdaterError } from "./error.js";
5
5
  import { fetchUpdateInfo } from "./fetchUpdateInfo.js";
6
- import { HotUpdaterConstants, getAppVersion, getBundleId, getChannel, getMinBundleId, updateBundle } from "./native.js";
6
+ import { getAppVersion, getBundleId, getChannel, getFingerprintHash, getMinBundleId, updateBundle } from "./native.js";
7
7
  export async function checkForUpdate(options) {
8
8
  if (__DEV__) {
9
9
  return null;
@@ -21,21 +21,21 @@ export async function checkForUpdate(options) {
21
21
  options.onError?.(new HotUpdaterError("Failed to get app version"));
22
22
  return null;
23
23
  }
24
- const baseArgs = {
25
- bundleId: currentBundleId,
26
- platform,
27
- minBundleId,
28
- channel: channel ?? undefined
29
- };
30
- return fetchUpdateInfo(options.source, HotUpdaterConstants.UPDATE_STRATEGY === "appVersion" ? {
31
- _updateStrategy: HotUpdaterConstants.UPDATE_STRATEGY,
32
- appVersion: currentAppVersion,
33
- ...baseArgs
34
- } : {
35
- _updateStrategy: HotUpdaterConstants.UPDATE_STRATEGY,
36
- fingerprintHash: HotUpdaterConstants.FINGERPRINT_HASH,
37
- ...baseArgs
38
- }, options.requestHeaders, options.onError, options.requestTimeout).then(updateInfo => {
24
+ const fingerprintHash = getFingerprintHash();
25
+ return fetchUpdateInfo({
26
+ source: options.source,
27
+ params: {
28
+ bundleId: currentBundleId,
29
+ appVersion: currentAppVersion,
30
+ platform,
31
+ minBundleId,
32
+ channel,
33
+ fingerprintHash
34
+ },
35
+ requestHeaders: options.requestHeaders,
36
+ onError: options.onError,
37
+ requestTimeout: options.requestTimeout
38
+ }).then(updateInfo => {
39
39
  if (!updateInfo) {
40
40
  return null;
41
41
  }
@@ -51,12 +51,19 @@ export async function checkForUpdate(options) {
51
51
  };
52
52
  });
53
53
  }
54
- export const getUpdateSource = baseUrl => args => {
55
- switch (args._updateStrategy) {
56
- case "appVersion":
57
- return `${baseUrl}/app-version/${args.platform}/${args.appVersion}/${args.channel}/${args.minBundleId}/${args.bundleId}`;
54
+ export const getUpdateSource = (baseUrl, options) => params => {
55
+ switch (options.updateStrategy) {
58
56
  case "fingerprint":
59
- return `${baseUrl}/fingerprint/${args.platform}/${args.fingerprintHash}/${args.channel}/${args.minBundleId}/${args.bundleId}`;
57
+ {
58
+ if (!params.fingerprintHash) {
59
+ throw new HotUpdaterError("Fingerprint hash is required");
60
+ }
61
+ return `${baseUrl}/fingerprint/${params.platform}/${params.fingerprintHash}/${params.channel}/${params.minBundleId}/${params.bundleId}`;
62
+ }
63
+ case "appVersion":
64
+ {
65
+ return `${baseUrl}/app-version/${params.platform}/${params.appVersion}/${params.channel}/${params.minBundleId}/${params.bundleId}`;
66
+ }
60
67
  default:
61
68
  return baseUrl;
62
69
  }
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","HotUpdaterError","fetchUpdateInfo","HotUpdaterConstants","getAppVersion","getBundleId","getChannel","getMinBundleId","updateBundle","checkForUpdate","options","__DEV__","includes","OS","onError","currentAppVersion","platform","currentBundleId","minBundleId","channel","baseArgs","bundleId","undefined","source","UPDATE_STRATEGY","_updateStrategy","appVersion","fingerprintHash","FINGERPRINT_HASH","requestHeaders","requestTimeout","then","updateInfo","id","fileUrl","status","getUpdateSource","baseUrl","args"],"sourceRoot":"../../src","sources":["checkForUpdate.ts"],"mappings":";;AACA,SAASA,QAAQ,QAAQ,cAAc;AACvC,SAASC,eAAe,QAAQ,YAAS;AACzC,SAA4BC,eAAe,QAAQ,sBAAmB;AACtE,SACEC,mBAAmB,EACnBC,aAAa,EACbC,WAAW,EACXC,UAAU,EACVC,cAAc,EACdC,YAAY,QACP,aAAU;AAqBjB,OAAO,eAAeC,cAAcA,CAClCC,OAA8B,EACQ;EACtC,IAAIC,OAAO,EAAE;IACX,OAAO,IAAI;EACb;EAEA,IAAI,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAACC,QAAQ,CAACZ,QAAQ,CAACa,EAAE,CAAC,EAAE;IAC7CH,OAAO,CAACI,OAAO,GACb,IAAIb,eAAe,CAAC,iDAAiD,CACvE,CAAC;IACD,OAAO,IAAI;EACb;EAEA,MAAMc,iBAAiB,GAAGX,aAAa,CAAC,CAAC;EACzC,MAAMY,QAAQ,GAAGhB,QAAQ,CAACa,EAAuB;EACjD,MAAMI,eAAe,GAAGZ,WAAW,CAAC,CAAC;EACrC,MAAMa,WAAW,GAAGX,cAAc,CAAC,CAAC;EACpC,MAAMY,OAAO,GAAGb,UAAU,CAAC,CAAC;EAE5B,IAAI,CAACS,iBAAiB,EAAE;IACtBL,OAAO,CAACI,OAAO,GAAG,IAAIb,eAAe,CAAC,2BAA2B,CAAC,CAAC;IACnE,OAAO,IAAI;EACb;EAEA,MAAMmB,QAAQ,GAAG;IACfC,QAAQ,EAAEJ,eAAe;IACzBD,QAAQ;IACRE,WAAW;IACXC,OAAO,EAAEA,OAAO,IAAIG;EACtB,CAAC;EAED,OAAOpB,eAAe,CACpBQ,OAAO,CAACa,MAAM,EACdpB,mBAAmB,CAACqB,eAAe,KAAK,YAAY,GAChD;IACEC,eAAe,EAAEtB,mBAAmB,CAACqB,eAAe;IACpDE,UAAU,EAAEX,iBAAiB;IAC7B,GAAGK;EACL,CAAC,GACD;IACEK,eAAe,EAAEtB,mBAAmB,CAACqB,eAAe;IACpDG,eAAe,EAAExB,mBAAmB,CAACyB,gBAAiB;IACtD,GAAGR;EACL,CAAC,EACLV,OAAO,CAACmB,cAAc,EACtBnB,OAAO,CAACI,OAAO,EACfJ,OAAO,CAACoB,cACV,CAAC,CAACC,IAAI,CAAEC,UAAU,IAAK;IACrB,IAAI,CAACA,UAAU,EAAE;MACf,OAAO,IAAI;IACb;IAEA,OAAO;MACL,GAAGA,UAAU;MACbxB,YAAY,EAAE,MAAAA,CAAA,KAAY;QACxB,OAAOA,YAAY,CAAC;UAClBa,QAAQ,EAAEW,UAAU,CAACC,EAAE;UACvBC,OAAO,EAAEF,UAAU,CAACE,OAAO;UAC3BC,MAAM,EAAEH,UAAU,CAACG;QACrB,CAAC,CAAC;MACJ;IACF,CAAC;EACH,CAAC,CAAC;AACJ;AAEA,OAAO,MAAMC,eAAe,GAAIC,OAAe,IAAMC,IAAoB,IAAK;EAC5E,QAAQA,IAAI,CAACb,eAAe;IAC1B,KAAK,YAAY;MACf,OAAO,GAAGY,OAAO,gBAAgBC,IAAI,CAACtB,QAAQ,IAAIsB,IAAI,CAACZ,UAAU,IAAIY,IAAI,CAACnB,OAAO,IAAImB,IAAI,CAACpB,WAAW,IAAIoB,IAAI,CAACjB,QAAQ,EAAE;IAC1H,KAAK,aAAa;MAChB,OAAO,GAAGgB,OAAO,gBAAgBC,IAAI,CAACtB,QAAQ,IAAIsB,IAAI,CAACX,eAAe,IAAIW,IAAI,CAACnB,OAAO,IAAImB,IAAI,CAACpB,WAAW,IAAIoB,IAAI,CAACjB,QAAQ,EAAE;IAC/H;MACE,OAAOgB,OAAO;EAClB;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Platform","HotUpdaterError","fetchUpdateInfo","getAppVersion","getBundleId","getChannel","getFingerprintHash","getMinBundleId","updateBundle","checkForUpdate","options","__DEV__","includes","OS","onError","currentAppVersion","platform","currentBundleId","minBundleId","channel","fingerprintHash","source","params","bundleId","appVersion","requestHeaders","requestTimeout","then","updateInfo","id","fileUrl","status","getUpdateSource","baseUrl","updateStrategy"],"sourceRoot":"../../src","sources":["checkForUpdate.ts"],"mappings":";;AACA,SAASA,QAAQ,QAAQ,cAAc;AACvC,SAASC,eAAe,QAAQ,YAAS;AACzC,SAA4BC,eAAe,QAAQ,sBAAmB;AACtE,SACEC,aAAa,EACbC,WAAW,EACXC,UAAU,EACVC,kBAAkB,EAClBC,cAAc,EACdC,YAAY,QACP,aAAU;AAqBjB,OAAO,eAAeC,cAAcA,CAClCC,OAA8B,EACQ;EACtC,IAAIC,OAAO,EAAE;IACX,OAAO,IAAI;EACb;EAEA,IAAI,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAACC,QAAQ,CAACZ,QAAQ,CAACa,EAAE,CAAC,EAAE;IAC7CH,OAAO,CAACI,OAAO,GACb,IAAIb,eAAe,CAAC,iDAAiD,CACvE,CAAC;IACD,OAAO,IAAI;EACb;EAEA,MAAMc,iBAAiB,GAAGZ,aAAa,CAAC,CAAC;EACzC,MAAMa,QAAQ,GAAGhB,QAAQ,CAACa,EAAuB;EACjD,MAAMI,eAAe,GAAGb,WAAW,CAAC,CAAC;EACrC,MAAMc,WAAW,GAAGX,cAAc,CAAC,CAAC;EACpC,MAAMY,OAAO,GAAGd,UAAU,CAAC,CAAC;EAE5B,IAAI,CAACU,iBAAiB,EAAE;IACtBL,OAAO,CAACI,OAAO,GAAG,IAAIb,eAAe,CAAC,2BAA2B,CAAC,CAAC;IACnE,OAAO,IAAI;EACb;EAEA,MAAMmB,eAAe,GAAGd,kBAAkB,CAAC,CAAC;EAE5C,OAAOJ,eAAe,CAAC;IACrBmB,MAAM,EAAEX,OAAO,CAACW,MAAM;IACtBC,MAAM,EAAE;MACNC,QAAQ,EAAEN,eAAe;MACzBO,UAAU,EAAET,iBAAiB;MAC7BC,QAAQ;MACRE,WAAW;MACXC,OAAO;MACPC;IACF,CAAC;IACDK,cAAc,EAAEf,OAAO,CAACe,cAAc;IACtCX,OAAO,EAAEJ,OAAO,CAACI,OAAO;IACxBY,cAAc,EAAEhB,OAAO,CAACgB;EAC1B,CAAC,CAAC,CAACC,IAAI,CAAEC,UAAU,IAAK;IACtB,IAAI,CAACA,UAAU,EAAE;MACf,OAAO,IAAI;IACb;IAEA,OAAO;MACL,GAAGA,UAAU;MACbpB,YAAY,EAAE,MAAAA,CAAA,KAAY;QACxB,OAAOA,YAAY,CAAC;UAClBe,QAAQ,EAAEK,UAAU,CAACC,EAAE;UACvBC,OAAO,EAAEF,UAAU,CAACE,OAAO;UAC3BC,MAAM,EAAEH,UAAU,CAACG;QACrB,CAAC,CAAC;MACJ;IACF,CAAC;EACH,CAAC,CAAC;AACJ;AAYA,OAAO,MAAMC,eAAe,GAC1BA,CAACC,OAAe,EAAEvB,OAA+B,KAChDY,MAA0B,IAAK;EAC9B,QAAQZ,OAAO,CAACwB,cAAc;IAC5B,KAAK,aAAa;MAAE;QAClB,IAAI,CAACZ,MAAM,CAACF,eAAe,EAAE;UAC3B,MAAM,IAAInB,eAAe,CAAC,8BAA8B,CAAC;QAC3D;QACA,OAAO,GAAGgC,OAAO,gBAAgBX,MAAM,CAACN,QAAQ,IAAIM,MAAM,CAACF,eAAe,IAAIE,MAAM,CAACH,OAAO,IAAIG,MAAM,CAACJ,WAAW,IAAII,MAAM,CAACC,QAAQ,EAAE;MACzI;IACA,KAAK,YAAY;MAAE;QACjB,OAAO,GAAGU,OAAO,gBAAgBX,MAAM,CAACN,QAAQ,IAAIM,MAAM,CAACE,UAAU,IAAIF,MAAM,CAACH,OAAO,IAAIG,MAAM,CAACJ,WAAW,IAAII,MAAM,CAACC,QAAQ,EAAE;MACpI;IACA;MACE,OAAOU,OAAO;EAClB;AACF,CAAC","ignoreList":[]}
@@ -1,54 +1,59 @@
1
1
  "use strict";
2
2
 
3
- export const fetchUpdateInfo = async (source, args, requestHeaders, onError, requestTimeout = 5000) => {
4
- if (typeof source === "function") {
5
- const url = source(args);
6
- if (typeof url !== "string") {
7
- return null;
8
- }
9
- source = url;
3
+ function buildRequestHeaders(params, requestHeaders) {
4
+ const updateStrategy = params.fingerprintHash ? "fingerprint" : "appVersion";
5
+ return {
6
+ "Content-Type": "application/json",
7
+ "x-app-platform": params.platform,
8
+ "x-bundle-id": params.bundleId,
9
+ ...(updateStrategy === "fingerprint" ? {
10
+ "x-fingerprint-hash": params.fingerprintHash
11
+ } : {
12
+ "x-app-version": params.appVersion
13
+ }),
14
+ ...(params.minBundleId && {
15
+ "x-min-bundle-id": params.minBundleId
16
+ }),
17
+ ...(params.channel && {
18
+ "x-channel": params.channel
19
+ }),
20
+ ...(requestHeaders ?? {})
21
+ };
22
+ }
23
+ async function resolveSource(source, params) {
24
+ if (typeof source !== "function") {
25
+ return {
26
+ url: source
27
+ };
28
+ }
29
+ const result = source(params);
30
+ if (typeof result === "string") {
31
+ return {
32
+ url: result
33
+ };
10
34
  }
11
- const controller = new AbortController();
12
- const timeoutId = setTimeout(() => {
13
- controller.abort();
14
- }, requestTimeout);
35
+ return {
36
+ info: await result
37
+ };
38
+ }
39
+ export const fetchUpdateInfo = async ({
40
+ source,
41
+ params,
42
+ requestHeaders,
43
+ onError,
44
+ requestTimeout = 5000
45
+ }) => {
15
46
  try {
16
- let headers = {};
17
- switch (args._updateStrategy) {
18
- case "fingerprint":
19
- headers = {
20
- "Content-Type": "application/json",
21
- "x-app-platform": args.platform,
22
- "x-bundle-id": args.bundleId,
23
- "x-fingerprint-hash": args.fingerprintHash,
24
- ...(args.minBundleId ? {
25
- "x-min-bundle-id": args.minBundleId
26
- } : {}),
27
- ...(args.channel ? {
28
- "x-channel": args.channel
29
- } : {}),
30
- ...requestHeaders
31
- };
32
- break;
33
- case "appVersion":
34
- headers = {
35
- "Content-Type": "application/json",
36
- "x-app-platform": args.platform,
37
- "x-bundle-id": args.bundleId,
38
- "x-app-version": args.appVersion,
39
- ...(args.minBundleId ? {
40
- "x-min-bundle-id": args.minBundleId
41
- } : {}),
42
- ...(args.channel ? {
43
- "x-channel": args.channel
44
- } : {}),
45
- ...requestHeaders
46
- };
47
- break;
48
- default:
49
- throw new Error("Invalid update strategy");
47
+ const resolvedSource = await resolveSource(source, params);
48
+ if ("info" in resolvedSource) {
49
+ return resolvedSource.info;
50
50
  }
51
- const response = await fetch(source, {
51
+ const controller = new AbortController();
52
+ const timeoutId = setTimeout(() => {
53
+ controller.abort();
54
+ }, requestTimeout);
55
+ const headers = buildRequestHeaders(params, requestHeaders);
56
+ const response = await fetch(resolvedSource.url, {
52
57
  signal: controller.signal,
53
58
  headers
54
59
  });
@@ -60,9 +65,9 @@ export const fetchUpdateInfo = async (source, args, requestHeaders, onError, req
60
65
  } catch (error) {
61
66
  if (error.name === "AbortError") {
62
67
  onError?.(new Error("Request timed out"));
63
- return null;
68
+ } else {
69
+ onError?.(error);
64
70
  }
65
- onError?.(error);
66
71
  return null;
67
72
  }
68
73
  };