@take-out/native-hot-update 0.0.37 → 0.0.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -26,6 +26,7 @@ bun add @take-out/native-hot-update react-native-mmkv
26
26
  import { MMKV } from 'react-native-mmkv'
27
27
  import { createHotUpdater } from '@take-out/native-hot-update'
28
28
  import { createMMKVStorage } from '@take-out/native-hot-update/mmkv'
29
+ import { HotUpdater } from '@hot-updater/react-native'
29
30
 
30
31
  const mmkv = new MMKV({ id: 'hot-updater' })
31
32
 
@@ -35,12 +36,32 @@ const hotUpdaterInstance = createHotUpdater({
35
36
  updateStrategy: 'appVersion',
36
37
  })
37
38
 
38
- // Export the hook directly for convenience
39
+ // Export the hook and resolver
39
40
  export const useOtaUpdater = hotUpdaterInstance.useOtaUpdater
41
+ export const hotUpdaterResolver = hotUpdaterInstance.createResolver()
40
42
  export const hotUpdater = hotUpdaterInstance
41
43
  ```
42
44
 
43
- ### 2. Use in Your App
45
+ ### 2. Wrap Your App
46
+
47
+ ```tsx
48
+ // app/index.tsx or App.tsx
49
+ import { HotUpdater } from '@hot-updater/react-native'
50
+ import { hotUpdaterResolver } from './hotUpdater'
51
+
52
+ function App() {
53
+ // Your app component
54
+ return <YourApp />
55
+ }
56
+
57
+ // IMPORTANT: You must wrap your app with HotUpdater.wrap
58
+ export default HotUpdater.wrap({
59
+ resolver: hotUpdaterResolver,
60
+ updateMode: 'manual', // Use manual mode with custom hooks
61
+ })(App)
62
+ ```
63
+
64
+ ### 3. Use in Your App
44
65
 
45
66
  ```tsx
46
67
  // app/_layout.tsx
@@ -43,10 +43,32 @@ const INITIAL_OTA_ID = "00000000-0000-0000-0000-000000000000",
43
43
  PRE_RELEASE_BUNDLE_ID_KEY = "hotUpdater.preReleaseBundleId";
44
44
  function createHotUpdater(config) {
45
45
  const {
46
- serverUrl,
47
- storage,
48
- updateStrategy = "appVersion"
49
- } = config;
46
+ serverUrl,
47
+ storage,
48
+ updateStrategy = "appVersion"
49
+ } = config,
50
+ createResolver = () => ({
51
+ checkUpdate: async params => {
52
+ const response = await fetch(`${serverUrl}/check`, {
53
+ method: "POST",
54
+ headers: {
55
+ "Content-Type": "application/json",
56
+ ...params.requestHeaders
57
+ },
58
+ body: JSON.stringify({
59
+ platform: params.platform,
60
+ appVersion: params.appVersion,
61
+ bundleId: params.bundleId,
62
+ minBundleId: params.minBundleId,
63
+ channel: params.channel,
64
+ updateStrategy: params.updateStrategy || updateStrategy,
65
+ fingerprintHash: params.fingerprintHash
66
+ }),
67
+ signal: params.requestTimeout ? AbortSignal.timeout(params.requestTimeout) : void 0
68
+ });
69
+ return response.ok ? response.json() : null;
70
+ }
71
+ });
50
72
  let isUpdatePending = !1;
51
73
  const getAppliedOta = () => {
52
74
  const id = import_react_native.HotUpdater.getBundleId();
@@ -63,6 +85,8 @@ function createHotUpdater(config) {
63
85
  appVersion && storage.set(`${BUNDLE_ID_KEY_PREFIX}.${appVersion}`, id), options.isPreRelease ? storage.set(PRE_RELEASE_BUNDLE_ID_KEY, id) : storage.delete(PRE_RELEASE_BUNDLE_ID_KEY), isUpdatePending = !0;
64
86
  };
65
87
  return {
88
+ createResolver,
89
+ // Export resolver for use with HotUpdater.wrap()
66
90
  useOtaUpdater: (options = {}) => {
67
91
  const {
68
92
  enabled = !0,
@@ -95,9 +119,7 @@ function createHotUpdater(config) {
95
119
  }
96
120
  if (!shouldContinue) return;
97
121
  const updateInfo = await import_react_native.HotUpdater.checkForUpdate({
98
- source: (0, import_react_native.getUpdateSource)(serverUrl, {
99
- updateStrategy
100
- })
122
+ updateStrategy
101
123
  });
102
124
  if (!updateInfo) {
103
125
  setIsUserClearedForAccess(!0);
@@ -153,16 +175,14 @@ function createHotUpdater(config) {
153
175
  channel,
154
176
  isPreRelease = !1
155
177
  } = options,
156
- updateSource = (0, import_react_native.getUpdateSource)(serverUrl, {
157
- updateStrategy
158
- }),
159
- finalSource = channel ? params => updateSource({
160
- ...params,
161
- channel
162
- }) : updateSource,
163
- updateInfo = await import_react_native.HotUpdater.checkForUpdate({
164
- source: finalSource
165
- });
178
+ requestHeaders = {};
179
+ channel && (requestHeaders["X-Channel"] = channel);
180
+ const updateInfo = await import_react_native.HotUpdater.checkForUpdate({
181
+ updateStrategy,
182
+ ...(Object.keys(requestHeaders).length > 0 && {
183
+ requestHeaders
184
+ })
185
+ });
166
186
  return updateInfo ? (await updateInfo.updateBundle(), handleUpdateDownloaded(updateInfo.id, {
167
187
  isPreRelease
168
188
  }), {
@@ -28,7 +28,28 @@ module.exports = __toCommonJS(createHotUpdater_exports);
28
28
  var import_react_native = require("@hot-updater/react-native"), Application = __toESM(require("expo-application"), 1), import_react = require("react"), import_react_native2 = require("react-native-web");
29
29
  const INITIAL_OTA_ID = "00000000-0000-0000-0000-000000000000", BUNDLE_ID_KEY_PREFIX = "hotUpdater.bundleId", PRE_RELEASE_BUNDLE_ID_KEY = "hotUpdater.preReleaseBundleId";
30
30
  function createHotUpdater(config) {
31
- const { serverUrl, storage, updateStrategy = "appVersion" } = config;
31
+ const { serverUrl, storage, updateStrategy = "appVersion" } = config, createResolver = () => ({
32
+ checkUpdate: async (params) => {
33
+ const response = await fetch(`${serverUrl}/check`, {
34
+ method: "POST",
35
+ headers: {
36
+ "Content-Type": "application/json",
37
+ ...params.requestHeaders
38
+ },
39
+ body: JSON.stringify({
40
+ platform: params.platform,
41
+ appVersion: params.appVersion,
42
+ bundleId: params.bundleId,
43
+ minBundleId: params.minBundleId,
44
+ channel: params.channel,
45
+ updateStrategy: params.updateStrategy || updateStrategy,
46
+ fingerprintHash: params.fingerprintHash
47
+ }),
48
+ signal: params.requestTimeout ? AbortSignal.timeout(params.requestTimeout) : void 0
49
+ });
50
+ return response.ok ? response.json() : null;
51
+ }
52
+ });
32
53
  let isUpdatePending = !1;
33
54
  const getAppliedOta = () => {
34
55
  const id = import_react_native.HotUpdater.getBundleId();
@@ -41,6 +62,8 @@ function createHotUpdater(config) {
41
62
  appVersion && storage.set(`${BUNDLE_ID_KEY_PREFIX}.${appVersion}`, id), options.isPreRelease ? storage.set(PRE_RELEASE_BUNDLE_ID_KEY, id) : storage.delete(PRE_RELEASE_BUNDLE_ID_KEY), isUpdatePending = !0;
42
63
  };
43
64
  return {
65
+ createResolver,
66
+ // Export resolver for use with HotUpdater.wrap()
44
67
  useOtaUpdater: (options = {}) => {
45
68
  const {
46
69
  enabled = !0,
@@ -69,7 +92,7 @@ function createHotUpdater(config) {
69
92
  }
70
93
  if (!shouldContinue) return;
71
94
  const updateInfo = await import_react_native.HotUpdater.checkForUpdate({
72
- source: (0, import_react_native.getUpdateSource)(serverUrl, { updateStrategy })
95
+ updateStrategy
73
96
  });
74
97
  if (!updateInfo) {
75
98
  setIsUserClearedForAccess(!0);
@@ -124,8 +147,11 @@ function createHotUpdater(config) {
124
147
  };
125
148
  },
126
149
  checkForUpdate: async (options = {}) => {
127
- const { channel, isPreRelease = !1 } = options, updateSource = (0, import_react_native.getUpdateSource)(serverUrl, { updateStrategy }), finalSource = channel ? (params) => updateSource({ ...params, channel }) : updateSource, updateInfo = await import_react_native.HotUpdater.checkForUpdate({
128
- source: finalSource
150
+ const { channel, isPreRelease = !1 } = options, requestHeaders = {};
151
+ channel && (requestHeaders["X-Channel"] = channel);
152
+ const updateInfo = await import_react_native.HotUpdater.checkForUpdate({
153
+ updateStrategy,
154
+ ...Object.keys(requestHeaders).length > 0 && { requestHeaders }
129
155
  });
130
156
  return updateInfo ? (await updateInfo.updateBundle(), handleUpdateDownloaded(updateInfo.id, { isPreRelease }), {
131
157
  id: updateInfo.id,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createHotUpdater.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAIO,sCACP,cAA6B,yCAC7B,eAA4C,kBAC5CA,uBAAsB;AAItB,MAAM,iBAAiB,wCACjB,uBAAuB,uBACvB,4BAA4B;AAE3B,SAAS,iBAAiB,QAA8C;AAC7E,QAAM,EAAE,WAAW,SAAS,iBAAiB,aAAa,IAAI;AAE9D,MAAI,kBAAkB;AAEtB,QAAM,gBAAgB,MAAqB;AACzC,UAAM,KAAK,+BAAW,YAAY;AAElC,WADI,OAAO,kBACP,OAAO,+BAAW,eAAe,IAAU,OACxC;AAAA,EACT,GAEM,gBAAgB,MAAqB;AACzC,UAAM,SAAS,cAAc;AAC7B,WAAO,SAAS,OAAO,MAAM,EAAE,IAAI;AAAA,EACrC,GAEM,qBAAqB,MAClB,iBAGH,wBAAwB,MACrB,QAAQ,IAAI,yBAAyB,GAGxC,yBAAyB,CAC7B,IACA,UAAsC,CAAC,MACpC;AACH,UAAM,aAAa,YAAY;AAC/B,IAAI,cACF,QAAQ,IAAI,GAAG,oBAAoB,IAAI,UAAU,IAAI,EAAE,GAGrD,QAAQ,eACV,QAAQ,IAAI,2BAA2B,EAAE,IAEzC,QAAQ,OAAO,yBAAyB,GAG1C,kBAAkB;AAAA,EACpB;AA4KA,SAAO;AAAA,IACL,eA3KoB,CACpB,UAII,CAAC,MACF;AACH,YAAM;AAAA,QACJ,UAAU;AAAA,QACV,oBAAoB;AAAA,QACpB;AAAA,MACF,IAAI,SAEE,eAAW,wCAAmB,CAAC,UAAU,MAAM,QAAQ,GACvD,aAAa,WAAW,MAExB,CAAC,wBAAwB,yBAAyB,QAAI,uBAAS,EAAK,GACpE,gCAA4B,qBAAO,sBAAsB;AAC/D,uCAA0B,UAAU,4BAGpC,wBAAU,MAAM;AACd,YAAI,CAAC,YAAY;AACf,gBAAM,QAAQ,WAAW,MAAM;AAC7B,YAAK,0BAA0B,WAC7B,0BAA0B,EAAI;AAAA,UAElC,GAAG,GAAI;AACP,iBAAO,MAAM,aAAa,KAAK;AAAA,QACjC;AAAA,MACF,GAAG,CAAC,UAAU,CAAC,OAGf,wBAAU,MAAM;AACd,cAAM,QAAQ,WAAW,MAAM;AAC7B,UAAK,0BAA0B,WAC7B,0BAA0B,EAAI;AAAA,QAElC,GAAG,GAAK;AACR,eAAO,MAAM,aAAa,KAAK;AAAA,MACjC,GAAG,CAAC,CAAC,OAGL,wBAAU,MAAM;AACd,YAAI,iBAAiB;AAEpB,gBAAC,YAAY;AACZ,cAAI;AACF,gBAAI,CAAC,SAAS;AACZ,wCAA0B,EAAI;AAC9B;AAAA,YACF;AAEA,gBAAI,CAAC,eAAgB;AAErB,kBAAM,aAAa,MAAM,+BAAW,eAAe;AAAA,cACjD,YAAQ,qCAAgB,WAAW,EAAE,eAAe,CAAC;AAAA,YACvD,CAAC;AAED,gBAAI,CAAC,YAAY;AACf,wCAA0B,EAAI;AAC9B;AAAA,YACF;AAEA,gBAAI,CAAC,eAAgB;AAGrB,gBAAI,WAAW,WAAW,YAAY;AACpC,oBAAM,qBAAqB,sBAAsB,GAC3C,kBAAkB,+BAAW,YAAY;AAE/C,kBACE,sBACA,uBAAuB,mBACvB,kBAAkB,WAAW,IAC7B;AACA,2CAAM;AAAA,kBACJ;AAAA,kBACA;AAAA,gBACF,GACA,0BAA0B,EAAI;AAC9B;AAAA,cACF;AAAA,YACF;AAMA,gBAJK,WAAW,qBACd,0BAA0B,EAAI,GAG5B,CAAC,eAAgB;AAErB,kBAAM,WAAW,aAAa,GAC9B,uBAAuB,WAAW,EAAE;AAEpC,kBAAM,OAAmB;AAAA,cACvB,IAAI,WAAW;AAAA,cACf,kBAAkB,WAAW;AAAA,cAC7B,SAAS,WAAW;AAAA,cACpB,SAAS,WAAW;AAAA,YACtB;AAGA,gBAFA,6BAA6B,IAAI,GAE7B,CAAC,eAAgB;AAErB,gBAAI,WAAW,mBAAmB;AAChC,kBAAI,CAAC,0BAA0B,SAAS;AACtC,+CAAW,OAAO;AAClB;AAAA,cACF;AACA,yCAAM;AAAA,gBACJ;AAAA,gBACA;AAAA,gBACA;AAAA,kBACE,EAAE,MAAM,SAAS,OAAO,SAAS;AAAA,kBACjC,EAAE,MAAM,cAAc,SAAS,MAAM,+BAAW,OAAO,EAAE;AAAA,gBAC3D;AAAA,cACF;AAAA,YACF;AAAA,UACF,SAAS,OAAO;AACd,sBAAU,KAAK,GACf,0BAA0B,EAAI;AAAA,UAChC,UAAE;AACA,YAAK,0BAA0B,WAC7B,0BAA0B,EAAI;AAAA,UAElC;AAAA,QACF,GAAG,GAEI,MAAM;AACX,2BAAiB;AAAA,QACnB;AAAA,MACF,GAAG,CAAC,SAAS,4BAA4B,OAAO,CAAC,GAE1C;AAAA,QACL,sBAAsB;AAAA,QACtB;AAAA,QACA,iBAAiB,mBAAmB;AAAA,MACtC;AAAA,IACF;AAAA,IAkCE,gBAhCqB,OACrB,UAAwD,CAAC,MACtD;AACH,YAAM,EAAE,SAAS,eAAe,GAAM,IAAI,SAEpC,mBAAe,qCAAgB,WAAW,EAAE,eAAe,CAAC,GAE5D,cAAc,UAChB,CAAC,WAAgB,aAAa,EAAE,GAAG,QAAQ,QAAQ,CAAC,IACpD,cAEE,aAAa,MAAM,+BAAW,eAAe;AAAA,QACjD,QAAQ;AAAA,MACV,CAAC;AAED,aAAI,cACF,MAAM,WAAW,aAAa,GAC9B,uBAAuB,WAAW,IAAI,EAAE,aAAa,CAAC,GAE/C;AAAA,QACL,IAAI,WAAW;AAAA,QACf,kBAAkB,WAAW;AAAA,QAC7B,SAAS,WAAW;AAAA,QACpB,SAAS,WAAW;AAAA,MACtB,KAGK;AAAA,IACT;AAAA,IAKE;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ,MAAM,+BAAW,OAAO;AAAA,IAChC,aAAa,MAAM,+BAAW,YAAY;AAAA,IAC1C,gBAAgB,MAAM,+BAAW,eAAe;AAAA,IAChD,YAAY,MAAM,+BAAW,WAAW;AAAA,EAC1C;AACF;",
4
+ "mappings": "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",
5
5
  "names": ["import_react_native"]
6
6
  }
@@ -49,6 +49,30 @@ function createHotUpdater(config) {
49
49
  storage,
50
50
  updateStrategy = "appVersion"
51
51
  } = config,
52
+ createResolver = function () {
53
+ return {
54
+ checkUpdate: async function (params) {
55
+ var response = await fetch(`${serverUrl}/check`, {
56
+ method: "POST",
57
+ headers: {
58
+ "Content-Type": "application/json",
59
+ ...params.requestHeaders
60
+ },
61
+ body: JSON.stringify({
62
+ platform: params.platform,
63
+ appVersion: params.appVersion,
64
+ bundleId: params.bundleId,
65
+ minBundleId: params.minBundleId,
66
+ channel: params.channel,
67
+ updateStrategy: params.updateStrategy || updateStrategy,
68
+ fingerprintHash: params.fingerprintHash
69
+ }),
70
+ signal: params.requestTimeout ? AbortSignal.timeout(params.requestTimeout) : void 0
71
+ });
72
+ return response.ok ? response.json() : null;
73
+ }
74
+ };
75
+ },
52
76
  isUpdatePending = !1,
53
77
  getAppliedOta = function () {
54
78
  var id = import_react_native.HotUpdater.getBundleId();
@@ -108,9 +132,7 @@ function createHotUpdater(config) {
108
132
  }
109
133
  if (!shouldContinue) return;
110
134
  var updateInfo = await import_react_native.HotUpdater.checkForUpdate({
111
- source: (0, import_react_native.getUpdateSource)(serverUrl, {
112
- updateStrategy
113
- })
135
+ updateStrategy
114
136
  });
115
137
  if (!updateInfo) {
116
138
  setIsUserClearedForAccess(!0);
@@ -169,18 +191,14 @@ function createHotUpdater(config) {
169
191
  channel,
170
192
  isPreRelease = !1
171
193
  } = options,
172
- updateSource = (0, import_react_native.getUpdateSource)(serverUrl, {
173
- updateStrategy
174
- }),
175
- finalSource = channel ? function (params) {
176
- return updateSource({
177
- ...params,
178
- channel
179
- });
180
- } : updateSource,
181
- updateInfo = await import_react_native.HotUpdater.checkForUpdate({
182
- source: finalSource
183
- });
194
+ requestHeaders = {};
195
+ channel && (requestHeaders["X-Channel"] = channel);
196
+ var updateInfo = await import_react_native.HotUpdater.checkForUpdate({
197
+ updateStrategy,
198
+ ...(Object.keys(requestHeaders).length > 0 && {
199
+ requestHeaders
200
+ })
201
+ });
184
202
  return updateInfo ? (await updateInfo.updateBundle(), handleUpdateDownloaded(updateInfo.id, {
185
203
  isPreRelease
186
204
  }), {
@@ -191,6 +209,8 @@ function createHotUpdater(config) {
191
209
  }) : null;
192
210
  };
193
211
  return {
212
+ createResolver,
213
+ // Export resolver for use with HotUpdater.wrap()
194
214
  useOtaUpdater,
195
215
  checkForUpdate,
196
216
  getAppliedOta,
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createHotUpdater_exports","__export","createHotUpdater","module","exports","import_react_native","require","Application","__toESM","import_react","import_react_native2","INITIAL_OTA_ID","BUNDLE_ID_KEY_PREFIX","PRE_RELEASE_BUNDLE_ID_KEY","config","serverUrl","storage","updateStrategy","isUpdatePending","getAppliedOta","id","HotUpdater","getBundleId","getMinBundleId","getShortOtaId","fullId","slice","getIsUpdatePending","getPreReleaseBundleId","get","handleUpdateDownloaded","options","arguments","length","appVersion","nativeApplicationVersion","set","isPreRelease","delete","useOtaUpdater","enabled","onUpdateDownloaded","onUpdateDownloadedCallback","onError","progress","useHotUpdaterStore","state","isUpdating","isUserClearedForAccess","setIsUserClearedForAccess","useState","isUserClearedForAccessRef","useRef","current","useEffect","timer","setTimeout","clearTimeout","shouldContinue","updateInfo","checkForUpdate","source","getUpdateSource","status","preReleaseBundleId","currentBundleId","Alert","alert","shouldForceUpdate","updateBundle","info","isCriticalUpdate","fileUrl","message","reload","text","style","onPress","error","userClearedForAccess","channel","updateSource","finalSource","params"],"sources":["../../src/createHotUpdater.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createHotUpdater_exports","__export","createHotUpdater","module","exports","import_react_native","require","Application","__toESM","import_react","import_react_native2","INITIAL_OTA_ID","BUNDLE_ID_KEY_PREFIX","PRE_RELEASE_BUNDLE_ID_KEY","config","serverUrl","storage","updateStrategy","createResolver","checkUpdate","params","response","fetch","method","headers","requestHeaders","body","JSON","stringify","platform","appVersion","bundleId","minBundleId","channel","fingerprintHash","signal","requestTimeout","AbortSignal","timeout","ok","json","isUpdatePending","getAppliedOta","id","HotUpdater","getBundleId","getMinBundleId","getShortOtaId","fullId","slice","getIsUpdatePending","getPreReleaseBundleId","get","handleUpdateDownloaded","options","arguments","length","nativeApplicationVersion","set","isPreRelease","delete","useOtaUpdater","enabled","onUpdateDownloaded","onUpdateDownloadedCallback","onError","progress","useHotUpdaterStore","state","isUpdating","isUserClearedForAccess","setIsUserClearedForAccess","useState","isUserClearedForAccessRef","useRef","current","useEffect","timer","setTimeout","clearTimeout","shouldContinue","updateInfo","checkForUpdate","status","preReleaseBundleId","currentBundleId","Alert","alert","shouldForceUpdate","updateBundle","info","isCriticalUpdate","fileUrl","message","reload","text","style","onPress","error","userClearedForAccess","Object","keys"],"sources":["../../src/createHotUpdater.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,4 @@
1
1
  import {
2
- getUpdateSource,
3
2
  HotUpdater,
4
3
  useHotUpdaterStore
5
4
  } from "@hot-updater/react-native";
@@ -8,7 +7,28 @@ import { useEffect, useRef, useState } from "react";
8
7
  import { Alert } from "react-native-web";
9
8
  const INITIAL_OTA_ID = "00000000-0000-0000-0000-000000000000", BUNDLE_ID_KEY_PREFIX = "hotUpdater.bundleId", PRE_RELEASE_BUNDLE_ID_KEY = "hotUpdater.preReleaseBundleId";
10
9
  function createHotUpdater(config) {
11
- const { serverUrl, storage, updateStrategy = "appVersion" } = config;
10
+ const { serverUrl, storage, updateStrategy = "appVersion" } = config, createResolver = () => ({
11
+ checkUpdate: async (params) => {
12
+ const response = await fetch(`${serverUrl}/check`, {
13
+ method: "POST",
14
+ headers: {
15
+ "Content-Type": "application/json",
16
+ ...params.requestHeaders
17
+ },
18
+ body: JSON.stringify({
19
+ platform: params.platform,
20
+ appVersion: params.appVersion,
21
+ bundleId: params.bundleId,
22
+ minBundleId: params.minBundleId,
23
+ channel: params.channel,
24
+ updateStrategy: params.updateStrategy || updateStrategy,
25
+ fingerprintHash: params.fingerprintHash
26
+ }),
27
+ signal: params.requestTimeout ? AbortSignal.timeout(params.requestTimeout) : void 0
28
+ });
29
+ return response.ok ? response.json() : null;
30
+ }
31
+ });
12
32
  let isUpdatePending = !1;
13
33
  const getAppliedOta = () => {
14
34
  const id = HotUpdater.getBundleId();
@@ -21,6 +41,8 @@ function createHotUpdater(config) {
21
41
  appVersion && storage.set(`${BUNDLE_ID_KEY_PREFIX}.${appVersion}`, id), options.isPreRelease ? storage.set(PRE_RELEASE_BUNDLE_ID_KEY, id) : storage.delete(PRE_RELEASE_BUNDLE_ID_KEY), isUpdatePending = !0;
22
42
  };
23
43
  return {
44
+ createResolver,
45
+ // Export resolver for use with HotUpdater.wrap()
24
46
  useOtaUpdater: (options = {}) => {
25
47
  const {
26
48
  enabled = !0,
@@ -49,7 +71,7 @@ function createHotUpdater(config) {
49
71
  }
50
72
  if (!shouldContinue) return;
51
73
  const updateInfo = await HotUpdater.checkForUpdate({
52
- source: getUpdateSource(serverUrl, { updateStrategy })
74
+ updateStrategy
53
75
  });
54
76
  if (!updateInfo) {
55
77
  setIsUserClearedForAccess(!0);
@@ -104,8 +126,11 @@ function createHotUpdater(config) {
104
126
  };
105
127
  },
106
128
  checkForUpdate: async (options = {}) => {
107
- const { channel, isPreRelease = !1 } = options, updateSource = getUpdateSource(serverUrl, { updateStrategy }), finalSource = channel ? (params) => updateSource({ ...params, channel }) : updateSource, updateInfo = await HotUpdater.checkForUpdate({
108
- source: finalSource
129
+ const { channel, isPreRelease = !1 } = options, requestHeaders = {};
130
+ channel && (requestHeaders["X-Channel"] = channel);
131
+ const updateInfo = await HotUpdater.checkForUpdate({
132
+ updateStrategy,
133
+ ...Object.keys(requestHeaders).length > 0 && { requestHeaders }
109
134
  });
110
135
  return updateInfo ? (await updateInfo.updateBundle(), handleUpdateDownloaded(updateInfo.id, { isPreRelease }), {
111
136
  id: updateInfo.id,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createHotUpdater.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -1,4 +1,4 @@
1
- import { getUpdateSource, HotUpdater, useHotUpdaterStore } from "@hot-updater/react-native";
1
+ import { HotUpdater, useHotUpdaterStore } from "@hot-updater/react-native";
2
2
  import * as Application from "expo-application";
3
3
  import { useEffect, useRef, useState } from "react";
4
4
  import { Alert } from "react-native-web";
@@ -7,10 +7,32 @@ const INITIAL_OTA_ID = "00000000-0000-0000-0000-000000000000",
7
7
  PRE_RELEASE_BUNDLE_ID_KEY = "hotUpdater.preReleaseBundleId";
8
8
  function createHotUpdater(config) {
9
9
  const {
10
- serverUrl,
11
- storage,
12
- updateStrategy = "appVersion"
13
- } = config;
10
+ serverUrl,
11
+ storage,
12
+ updateStrategy = "appVersion"
13
+ } = config,
14
+ createResolver = () => ({
15
+ checkUpdate: async params => {
16
+ const response = await fetch(`${serverUrl}/check`, {
17
+ method: "POST",
18
+ headers: {
19
+ "Content-Type": "application/json",
20
+ ...params.requestHeaders
21
+ },
22
+ body: JSON.stringify({
23
+ platform: params.platform,
24
+ appVersion: params.appVersion,
25
+ bundleId: params.bundleId,
26
+ minBundleId: params.minBundleId,
27
+ channel: params.channel,
28
+ updateStrategy: params.updateStrategy || updateStrategy,
29
+ fingerprintHash: params.fingerprintHash
30
+ }),
31
+ signal: params.requestTimeout ? AbortSignal.timeout(params.requestTimeout) : void 0
32
+ });
33
+ return response.ok ? response.json() : null;
34
+ }
35
+ });
14
36
  let isUpdatePending = !1;
15
37
  const getAppliedOta = () => {
16
38
  const id = HotUpdater.getBundleId();
@@ -27,6 +49,8 @@ function createHotUpdater(config) {
27
49
  appVersion && storage.set(`${BUNDLE_ID_KEY_PREFIX}.${appVersion}`, id), options.isPreRelease ? storage.set(PRE_RELEASE_BUNDLE_ID_KEY, id) : storage.delete(PRE_RELEASE_BUNDLE_ID_KEY), isUpdatePending = !0;
28
50
  };
29
51
  return {
52
+ createResolver,
53
+ // Export resolver for use with HotUpdater.wrap()
30
54
  useOtaUpdater: (options = {}) => {
31
55
  const {
32
56
  enabled = !0,
@@ -59,9 +83,7 @@ function createHotUpdater(config) {
59
83
  }
60
84
  if (!shouldContinue) return;
61
85
  const updateInfo = await HotUpdater.checkForUpdate({
62
- source: getUpdateSource(serverUrl, {
63
- updateStrategy
64
- })
86
+ updateStrategy
65
87
  });
66
88
  if (!updateInfo) {
67
89
  setIsUserClearedForAccess(!0);
@@ -117,16 +139,14 @@ function createHotUpdater(config) {
117
139
  channel,
118
140
  isPreRelease = !1
119
141
  } = options,
120
- updateSource = getUpdateSource(serverUrl, {
121
- updateStrategy
122
- }),
123
- finalSource = channel ? params => updateSource({
124
- ...params,
125
- channel
126
- }) : updateSource,
127
- updateInfo = await HotUpdater.checkForUpdate({
128
- source: finalSource
129
- });
142
+ requestHeaders = {};
143
+ channel && (requestHeaders["X-Channel"] = channel);
144
+ const updateInfo = await HotUpdater.checkForUpdate({
145
+ updateStrategy,
146
+ ...(Object.keys(requestHeaders).length > 0 && {
147
+ requestHeaders
148
+ })
149
+ });
130
150
  return updateInfo ? (await updateInfo.updateBundle(), handleUpdateDownloaded(updateInfo.id, {
131
151
  isPreRelease
132
152
  }), {
@@ -1 +1 @@
1
- {"version":3,"names":["getUpdateSource","HotUpdater","useHotUpdaterStore","Application","useEffect","useRef","useState","Alert","INITIAL_OTA_ID","BUNDLE_ID_KEY_PREFIX","PRE_RELEASE_BUNDLE_ID_KEY","createHotUpdater","config","serverUrl","storage","updateStrategy","isUpdatePending","getAppliedOta","id","getBundleId","getMinBundleId","getShortOtaId","fullId","slice","getIsUpdatePending","getPreReleaseBundleId","get","handleUpdateDownloaded","options","appVersion","nativeApplicationVersion","set","isPreRelease","delete","useOtaUpdater","enabled","onUpdateDownloaded","onUpdateDownloadedCallback","onError","progress","state","isUpdating","isUserClearedForAccess","setIsUserClearedForAccess","isUserClearedForAccessRef","current","timer","setTimeout","clearTimeout","shouldContinue","updateInfo","checkForUpdate","source","status","preReleaseBundleId","currentBundleId","alert","shouldForceUpdate","updateBundle","info","isCriticalUpdate","fileUrl","message","reload","text","style","onPress","error","userClearedForAccess","channel","updateSource","finalSource","params","getChannel"],"sources":["../../src/createHotUpdater.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["HotUpdater","useHotUpdaterStore","Application","useEffect","useRef","useState","Alert","INITIAL_OTA_ID","BUNDLE_ID_KEY_PREFIX","PRE_RELEASE_BUNDLE_ID_KEY","createHotUpdater","config","serverUrl","storage","updateStrategy","createResolver","checkUpdate","params","response","fetch","method","headers","requestHeaders","body","JSON","stringify","platform","appVersion","bundleId","minBundleId","channel","fingerprintHash","signal","requestTimeout","AbortSignal","timeout","ok","json","isUpdatePending","getAppliedOta","id","getBundleId","getMinBundleId","getShortOtaId","fullId","slice","getIsUpdatePending","getPreReleaseBundleId","get","handleUpdateDownloaded","options","nativeApplicationVersion","set","isPreRelease","delete","useOtaUpdater","enabled","onUpdateDownloaded","onUpdateDownloadedCallback","onError","progress","state","isUpdating","isUserClearedForAccess","setIsUserClearedForAccess","isUserClearedForAccessRef","current","timer","setTimeout","clearTimeout","shouldContinue","updateInfo","checkForUpdate","status","preReleaseBundleId","currentBundleId","alert","shouldForceUpdate","updateBundle","info","isCriticalUpdate","fileUrl","message","reload","text","style","onPress","error","userClearedForAccess","Object","keys","length","getChannel"],"sources":["../../src/createHotUpdater.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { getUpdateSource, HotUpdater, useHotUpdaterStore } from "@hot-updater/react-native";
1
+ import { HotUpdater, useHotUpdaterStore } from "@hot-updater/react-native";
2
2
  import * as Application from "expo-application";
3
3
  import { useEffect, useRef, useState } from "react";
4
4
  import { Alert } from "react-native";
@@ -11,6 +11,30 @@ function createHotUpdater(config) {
11
11
  storage,
12
12
  updateStrategy = "appVersion"
13
13
  } = config,
14
+ createResolver = function () {
15
+ return {
16
+ checkUpdate: async function (params) {
17
+ var response = await fetch(`${serverUrl}/check`, {
18
+ method: "POST",
19
+ headers: {
20
+ "Content-Type": "application/json",
21
+ ...params.requestHeaders
22
+ },
23
+ body: JSON.stringify({
24
+ platform: params.platform,
25
+ appVersion: params.appVersion,
26
+ bundleId: params.bundleId,
27
+ minBundleId: params.minBundleId,
28
+ channel: params.channel,
29
+ updateStrategy: params.updateStrategy || updateStrategy,
30
+ fingerprintHash: params.fingerprintHash
31
+ }),
32
+ signal: params.requestTimeout ? AbortSignal.timeout(params.requestTimeout) : void 0
33
+ });
34
+ return response.ok ? response.json() : null;
35
+ }
36
+ };
37
+ },
14
38
  isUpdatePending = !1,
15
39
  getAppliedOta = function () {
16
40
  var id = HotUpdater.getBundleId();
@@ -70,9 +94,7 @@ function createHotUpdater(config) {
70
94
  }
71
95
  if (!shouldContinue) return;
72
96
  var updateInfo = await HotUpdater.checkForUpdate({
73
- source: getUpdateSource(serverUrl, {
74
- updateStrategy
75
- })
97
+ updateStrategy
76
98
  });
77
99
  if (!updateInfo) {
78
100
  setIsUserClearedForAccess(!0);
@@ -131,18 +153,14 @@ function createHotUpdater(config) {
131
153
  channel,
132
154
  isPreRelease = !1
133
155
  } = options,
134
- updateSource = getUpdateSource(serverUrl, {
135
- updateStrategy
136
- }),
137
- finalSource = channel ? function (params) {
138
- return updateSource({
139
- ...params,
140
- channel
141
- });
142
- } : updateSource,
143
- updateInfo = await HotUpdater.checkForUpdate({
144
- source: finalSource
145
- });
156
+ requestHeaders = {};
157
+ channel && (requestHeaders["X-Channel"] = channel);
158
+ var updateInfo = await HotUpdater.checkForUpdate({
159
+ updateStrategy,
160
+ ...(Object.keys(requestHeaders).length > 0 && {
161
+ requestHeaders
162
+ })
163
+ });
146
164
  return updateInfo ? (await updateInfo.updateBundle(), handleUpdateDownloaded(updateInfo.id, {
147
165
  isPreRelease
148
166
  }), {
@@ -153,6 +171,8 @@ function createHotUpdater(config) {
153
171
  }) : null;
154
172
  };
155
173
  return {
174
+ createResolver,
175
+ // Export resolver for use with HotUpdater.wrap()
156
176
  useOtaUpdater,
157
177
  checkForUpdate,
158
178
  getAppliedOta,
@@ -1 +1 @@
1
- {"version":3,"names":["getUpdateSource","HotUpdater","useHotUpdaterStore","Application","useEffect","useRef","useState","Alert","INITIAL_OTA_ID","BUNDLE_ID_KEY_PREFIX","PRE_RELEASE_BUNDLE_ID_KEY","createHotUpdater","config","serverUrl","storage","updateStrategy","isUpdatePending","getAppliedOta","id","getBundleId","getMinBundleId","getShortOtaId","fullId","slice","getIsUpdatePending","getPreReleaseBundleId","get","handleUpdateDownloaded","options","arguments","length","appVersion","nativeApplicationVersion","set","isPreRelease","delete","useOtaUpdater","enabled","onUpdateDownloaded","onUpdateDownloadedCallback","onError","progress","state","isUpdating","isUserClearedForAccess","setIsUserClearedForAccess","isUserClearedForAccessRef","current","timer","setTimeout","clearTimeout","shouldContinue","updateInfo","checkForUpdate","source","status","preReleaseBundleId","currentBundleId","alert","shouldForceUpdate","updateBundle","info","isCriticalUpdate","fileUrl","message","reload","text","style","onPress","error","userClearedForAccess","channel","updateSource","finalSource","params"],"sources":["../../src/createHotUpdater.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["HotUpdater","useHotUpdaterStore","Application","useEffect","useRef","useState","Alert","INITIAL_OTA_ID","BUNDLE_ID_KEY_PREFIX","PRE_RELEASE_BUNDLE_ID_KEY","createHotUpdater","config","serverUrl","storage","updateStrategy","createResolver","checkUpdate","params","response","fetch","method","headers","requestHeaders","body","JSON","stringify","platform","appVersion","bundleId","minBundleId","channel","fingerprintHash","signal","requestTimeout","AbortSignal","timeout","ok","json","isUpdatePending","getAppliedOta","id","getBundleId","getMinBundleId","getShortOtaId","fullId","slice","getIsUpdatePending","getPreReleaseBundleId","get","handleUpdateDownloaded","options","arguments","length","nativeApplicationVersion","set","isPreRelease","delete","useOtaUpdater","enabled","onUpdateDownloaded","onUpdateDownloadedCallback","onError","progress","state","isUpdating","isUserClearedForAccess","setIsUserClearedForAccess","isUserClearedForAccessRef","current","timer","setTimeout","clearTimeout","shouldContinue","updateInfo","checkForUpdate","status","preReleaseBundleId","currentBundleId","alert","shouldForceUpdate","updateBundle","info","isCriticalUpdate","fileUrl","message","reload","text","style","onPress","error","userClearedForAccess","Object","keys"],"sources":["../../src/createHotUpdater.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@take-out/native-hot-update",
3
- "version": "0.0.37",
3
+ "version": "0.0.39",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "source": "src/index.ts",
@@ -40,7 +40,7 @@
40
40
  "check": "tsc --noEmit"
41
41
  },
42
42
  "dependencies": {
43
- "@hot-updater/react-native": "^0.20.11"
43
+ "@hot-updater/react-native": "0.25.6"
44
44
  },
45
45
  "peerDependencies": {
46
46
  "expo-application": "*",
@@ -1,10 +1,10 @@
1
1
  import {
2
- getUpdateSource,
3
2
  HotUpdater,
4
3
  useHotUpdaterStore,
4
+ type HotUpdaterResolver,
5
5
  } from '@hot-updater/react-native'
6
6
  import * as Application from 'expo-application'
7
- import { useEffect, useRef, useState } from 'react'
7
+ import React, { useEffect, useRef, useState } from 'react'
8
8
  import { Alert } from 'react-native'
9
9
 
10
10
  import type { HotUpdaterConfig, HotUpdaterInstance, UpdateInfo } from './types'
@@ -16,6 +16,35 @@ const PRE_RELEASE_BUNDLE_ID_KEY = 'hotUpdater.preReleaseBundleId'
16
16
  export function createHotUpdater(config: HotUpdaterConfig): HotUpdaterInstance {
17
17
  const { serverUrl, storage, updateStrategy = 'appVersion' } = config
18
18
 
19
+ // Create a resolver that uses the configured serverUrl
20
+ const createResolver = (): HotUpdaterResolver => ({
21
+ checkUpdate: async (params) => {
22
+ // Use POST request with all params in body (more flexible than URL path)
23
+ const response = await fetch(`${serverUrl}/check`, {
24
+ method: 'POST',
25
+ headers: {
26
+ 'Content-Type': 'application/json',
27
+ ...params.requestHeaders,
28
+ },
29
+ body: JSON.stringify({
30
+ platform: params.platform,
31
+ appVersion: params.appVersion,
32
+ bundleId: params.bundleId,
33
+ minBundleId: params.minBundleId,
34
+ channel: params.channel,
35
+ updateStrategy: params.updateStrategy || updateStrategy,
36
+ fingerprintHash: params.fingerprintHash,
37
+ }),
38
+ signal: params.requestTimeout
39
+ ? AbortSignal.timeout(params.requestTimeout)
40
+ : undefined,
41
+ })
42
+
43
+ if (!response.ok) return null
44
+ return response.json()
45
+ },
46
+ })
47
+
19
48
  let isUpdatePending = false
20
49
 
21
50
  const getAppliedOta = (): string | null => {
@@ -111,8 +140,9 @@ export function createHotUpdater(config: HotUpdaterConfig): HotUpdaterInstance {
111
140
 
112
141
  if (!shouldContinue) return
113
142
 
143
+ // Check for update using the configured strategy
114
144
  const updateInfo = await HotUpdater.checkForUpdate({
115
- source: getUpdateSource(serverUrl, { updateStrategy }),
145
+ updateStrategy,
116
146
  })
117
147
 
118
148
  if (!updateInfo) {
@@ -201,14 +231,15 @@ export function createHotUpdater(config: HotUpdaterConfig): HotUpdaterInstance {
201
231
  ) => {
202
232
  const { channel, isPreRelease = false } = options
203
233
 
204
- const updateSource = getUpdateSource(serverUrl, { updateStrategy })
205
-
206
- const finalSource = channel
207
- ? (params: any) => updateSource({ ...params, channel })
208
- : updateSource
234
+ // Check for update with optional request headers for channel
235
+ const requestHeaders: Record<string, string> = {}
236
+ if (channel) {
237
+ requestHeaders['X-Channel'] = channel
238
+ }
209
239
 
210
240
  const updateInfo = await HotUpdater.checkForUpdate({
211
- source: finalSource,
241
+ updateStrategy,
242
+ ...(Object.keys(requestHeaders).length > 0 && { requestHeaders }),
212
243
  })
213
244
 
214
245
  if (updateInfo) {
@@ -227,6 +258,7 @@ export function createHotUpdater(config: HotUpdaterConfig): HotUpdaterInstance {
227
258
  }
228
259
 
229
260
  return {
261
+ createResolver, // Export resolver for use with HotUpdater.wrap()
230
262
  useOtaUpdater,
231
263
  checkForUpdate,
232
264
  getAppliedOta,
package/src/types.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import type { HotUpdaterResolver } from '@hot-updater/react-native'
2
+
1
3
  /** Simple key-value storage interface */
2
4
  export interface HotUpdateStorage {
3
5
  get(key: string): string | undefined
@@ -22,6 +24,9 @@ export interface UpdateInfo {
22
24
  }
23
25
 
24
26
  export interface HotUpdaterInstance {
27
+ /** Creates a resolver for use with HotUpdater.wrap() */
28
+ createResolver: () => HotUpdaterResolver
29
+
25
30
  /** React hook for automatic update checking */
26
31
  useOtaUpdater: (options?: {
27
32
  enabled?: boolean