@hot-updater/react-native 1.0.0-rc.31 → 1.0.0-rc.32
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/lib/commonjs/fetchUpdateResponse.js +8 -2
- package/lib/commonjs/fetchUpdateResponse.js.map +1 -1
- package/lib/commonjs/sdkVersion.js +1 -1
- package/lib/commonjs/updateError.js +13 -0
- package/lib/commonjs/updateError.js.map +1 -1
- package/lib/module/fetchUpdateResponse.js +8 -2
- package/lib/module/fetchUpdateResponse.js.map +1 -1
- package/lib/module/sdkVersion.js +1 -1
- package/lib/module/updateError.js +13 -0
- package/lib/module/updateError.js.map +1 -1
- package/lib/typescript/commonjs/fetchUpdateResponse.d.ts.map +1 -1
- package/lib/typescript/commonjs/sdkVersion.d.ts +1 -1
- package/lib/typescript/commonjs/updateError.d.ts.map +1 -1
- package/lib/typescript/module/fetchUpdateResponse.d.ts.map +1 -1
- package/lib/typescript/module/sdkVersion.d.ts +1 -1
- package/lib/typescript/module/updateError.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/fetchUpdateResponse.ts +8 -2
- package/src/sdkVersion.ts +1 -1
- package/src/updateError.ts +14 -0
|
@@ -13,7 +13,11 @@ const fetchUpdateResponse = async ({
|
|
|
13
13
|
onResponse
|
|
14
14
|
}) => {
|
|
15
15
|
const controller = new AbortController();
|
|
16
|
-
|
|
16
|
+
let timedOut = false;
|
|
17
|
+
const timeoutId = setTimeout(() => {
|
|
18
|
+
timedOut = true;
|
|
19
|
+
controller.abort();
|
|
20
|
+
}, requestTimeout);
|
|
17
21
|
try {
|
|
18
22
|
const headers = new Headers(requestHeaders);
|
|
19
23
|
if (!headers.has("Accept")) headers.set("Accept", "application/json");
|
|
@@ -42,7 +46,9 @@ const fetchUpdateResponse = async ({
|
|
|
42
46
|
body
|
|
43
47
|
};
|
|
44
48
|
} catch (error) {
|
|
45
|
-
|
|
49
|
+
// Whatever the fetch rejects with once its timeout aborts it: an
|
|
50
|
+
// AbortError, or Expo's "fetch failed: FetchRequestCanceledException".
|
|
51
|
+
if (timedOut || error instanceof Error && error.name === "AbortError") {
|
|
46
52
|
throw new Error("Request timed out");
|
|
47
53
|
}
|
|
48
54
|
throw error;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["fetchUpdateResponse","url","resource","requestHeaders","requestTimeout","onResponse","controller","AbortController","timeoutId","setTimeout","abort","headers","Headers","has","set","response","fetch","signal","body","text","error","status","path","replace","split","bodyTruncated","Error","name","clearTimeout","exports"],"sourceRoot":"../../src","sources":["fetchUpdateResponse.ts"],"mappings":";;;;;;AAUA;AACO,MAAMA,mBAAmB,GAAG,MAAAA,CAAO;EACxCC,GAAG;EACHC,QAAQ;EACRC,cAAc;EACdC,cAAc,GAAG,IAAI;EACrBC;AACa,CAAC,KAA2D;EACzE,MAAMC,UAAU,GAAG,IAAIC,eAAe,CAAC,CAAC;EACxC,MAAMC,SAAS,GAAGC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"names":["fetchUpdateResponse","url","resource","requestHeaders","requestTimeout","onResponse","controller","AbortController","timedOut","timeoutId","setTimeout","abort","headers","Headers","has","set","response","fetch","signal","body","text","error","status","path","replace","split","bodyTruncated","Error","name","clearTimeout","exports"],"sourceRoot":"../../src","sources":["fetchUpdateResponse.ts"],"mappings":";;;;;;AAUA;AACO,MAAMA,mBAAmB,GAAG,MAAAA,CAAO;EACxCC,GAAG;EACHC,QAAQ;EACRC,cAAc;EACdC,cAAc,GAAG,IAAI;EACrBC;AACa,CAAC,KAA2D;EACzE,MAAMC,UAAU,GAAG,IAAIC,eAAe,CAAC,CAAC;EACxC,IAAIC,QAAQ,GAAG,KAAK;EACpB,MAAMC,SAAS,GAAGC,UAAU,CAAC,MAAM;IACjCF,QAAQ,GAAG,IAAI;IACfF,UAAU,CAACK,KAAK,CAAC,CAAC;EACpB,CAAC,EAAEP,cAAc,CAAC;EAClB,IAAI;IACF,MAAMQ,OAAO,GAAG,IAAIC,OAAO,CAACV,cAAc,CAAC;IAC3C,IAAI,CAACS,OAAO,CAACE,GAAG,CAAC,QAAQ,CAAC,EAAEF,OAAO,CAACG,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACrE,MAAMC,QAAQ,GAAG,MAAMC,KAAK,CAAChB,GAAG,EAAE;MAChCW,OAAO;MACPM,MAAM,EAAEZ,UAAU,CAACY;IACrB,CAAC,CAAC;IACF,IAAIC,IAAmB,GAAG,IAAI;IAC9B,IAAI;MACFA,IAAI,GAAG,MAAMH,QAAQ,CAACI,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC,OAAOC,KAAK,EAAE;MACd;MACA,IAAIL,QAAQ,CAACM,MAAM,KAAK,GAAG,EAAE,MAAMD,KAAK;IAC1C,CAAC,SAAS;MACRhB,UAAU,GAAG;QACXH,QAAQ;QACR;QACAqB,IAAI,EACFtB,GAAG,CAACuB,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAACC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG;QACpEH,MAAM,EAAEN,QAAQ,CAACM,MAAM;QACvBH,IAAI;QACJO,aAAa,EAAE;MACjB,CAAC,CAAC;IACJ;IACA,OAAO;MAAEV,QAAQ;MAAEG;IAAK,CAAC;EAC3B,CAAC,CAAC,OAAOE,KAAc,EAAE;IACvB;IACA;IACA,IAAIb,QAAQ,IAAKa,KAAK,YAAYM,KAAK,IAAIN,KAAK,CAACO,IAAI,KAAK,YAAa,EAAE;MACvE,MAAM,IAAID,KAAK,CAAC,mBAAmB,CAAC;IACtC;IACA,MAAMN,KAAK;EACb,CAAC,SAAS;IACRQ,YAAY,CAACpB,SAAS,CAAC;EACzB;AACF,CAAC;AAACqB,OAAA,CAAA9B,mBAAA,GAAAA,mBAAA","ignoreList":[]}
|
|
@@ -4,5 +4,5 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.HOT_UPDATER_SDK_VERSION = void 0;
|
|
7
|
-
const HOT_UPDATER_SDK_VERSION = exports.HOT_UPDATER_SDK_VERSION = "1.0.0-rc.
|
|
7
|
+
const HOT_UPDATER_SDK_VERSION = exports.HOT_UPDATER_SDK_VERSION = "1.0.0-rc.32";
|
|
8
8
|
//# sourceMappingURL=sdkVersion.js.map
|
|
@@ -33,6 +33,8 @@ const RESOURCES = ["catalog", "artifact", "manifest", "file", "patch", "archive"
|
|
|
33
33
|
const TRANSPORTS = ["timeout", "dns", "tls", "connection", "offline", "cancelled"];
|
|
34
34
|
/** An S3, R2, or GCS error code: letters, digits, and punctuation only. */
|
|
35
35
|
const ORIGIN_CODE = /^[A-Za-z0-9._-]{1,64}$/;
|
|
36
|
+
/** Expo's iOS and Android names for a fetch canceled before its response. */
|
|
37
|
+
const EXPO_FETCH_CANCELED = /FetchRequestCanceledException|Fetch request has been canceled|The operation was aborted/;
|
|
36
38
|
const oneOf = (values, value) => values.includes(value);
|
|
37
39
|
const readNativeClassification = error => {
|
|
38
40
|
if (!("code" in error) || typeof error.code !== "string") return undefined;
|
|
@@ -115,6 +117,17 @@ const classifyUpdateError = (error, stage, resource) => {
|
|
|
115
117
|
transport: "cancelled"
|
|
116
118
|
};
|
|
117
119
|
}
|
|
120
|
+
// Expo's fetch rejects with "fetch failed: <native exception>" when no
|
|
121
|
+
// response arrives, and names a canceled request.
|
|
122
|
+
if (error instanceof Error && error.message.startsWith("fetch failed:")) {
|
|
123
|
+
return {
|
|
124
|
+
...scope,
|
|
125
|
+
reason: "network",
|
|
126
|
+
...(EXPO_FETCH_CANCELED.test(error.message) ? {
|
|
127
|
+
transport: "cancelled"
|
|
128
|
+
} : {})
|
|
129
|
+
};
|
|
130
|
+
}
|
|
118
131
|
if (name === "TypeError") {
|
|
119
132
|
// fetch rejects with a TypeError when no response arrives, without
|
|
120
133
|
// saying why.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_error","require","InvalidUpdateResponseError","HotUpdaterError","constructor","message","options","name","cause","undefined","exports","UpdateHttpError","status","statusText","STAGES","REASONS","RESOURCES","TRANSPORTS","ORIGIN_CODE","oneOf","values","value","includes","readNativeClassification","error","code","userInfo","stage","reason","resource","transport","originCode","httpStatus","Number","isSafeInteger","test","classifyUpdateError","native","scope","Error"],"sourceRoot":"../../src","sources":["updateError.ts"],"mappings":";;;;;;AAOA,IAAAA,MAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACO,MAAMC,0BAA0B,SAASC,sBAAe,CAAC;EAC9DC,WAAWA,CAACC,OAAe,EAAEC,OAA6B,EAAE;IAC1D,KAAK,CAACD,OAAO,CAAC;IACd,IAAI,CAACE,IAAI,GAAG,4BAA4B;IACxC,IAAID,OAAO,EAAEE,KAAK,KAAKC,SAAS,EAAE,IAAI,CAACD,KAAK,GAAGF,OAAO,CAACE,KAAK;EAC9D;AACF;;AAEA;AAAAE,OAAA,CAAAR,0BAAA,GAAAA,0BAAA;AACO,MAAMS,eAAe,SAASR,sBAAe,CAAC;EACnDC,WAAWA,CACAQ,MAAc,EACvBC,UAAkB,EAClB;IACA,KAAK,CACH,4BAA4BD,MAAM,GAAGC,UAAU,GAAG,IAAIA,UAAU,EAAE,GAAG,EAAE,EACzE,CAAC;IAAC,KALOD,MAAc,GAAdA,MAAc;IAMvB,IAAI,CAACL,IAAI,GAAG,iBAAiB;EAC/B;AACF;AAACG,OAAA,CAAAC,eAAA,GAAAA,eAAA;AAED,MAAMG,MAAmC,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC;AAC5E,MAAMC,OAAqC,GAAG,CAC5C,SAAS,EACT,MAAM,EACN,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,CACV;AACD,MAAMC,SAAyC,GAAG,CAChD,SAAS,EACT,UAAU,EACV,UAAU,EACV,MAAM,EACN,OAAO,EACP,SAAS,CACV;AACD,MAAMC,UAA2C,GAAG,CAClD,SAAS,EACT,KAAK,EACL,KAAK,EACL,YAAY,EACZ,SAAS,EACT,WAAW,CACZ;AACD;AACA,MAAMC,WAAW,GAAG,wBAAwB;
|
|
1
|
+
{"version":3,"names":["_error","require","InvalidUpdateResponseError","HotUpdaterError","constructor","message","options","name","cause","undefined","exports","UpdateHttpError","status","statusText","STAGES","REASONS","RESOURCES","TRANSPORTS","ORIGIN_CODE","EXPO_FETCH_CANCELED","oneOf","values","value","includes","readNativeClassification","error","code","userInfo","stage","reason","resource","transport","originCode","httpStatus","Number","isSafeInteger","test","classifyUpdateError","native","scope","Error","startsWith"],"sourceRoot":"../../src","sources":["updateError.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,7 +9,11 @@ export const fetchUpdateResponse = async ({
|
|
|
9
9
|
onResponse
|
|
10
10
|
}) => {
|
|
11
11
|
const controller = new AbortController();
|
|
12
|
-
|
|
12
|
+
let timedOut = false;
|
|
13
|
+
const timeoutId = setTimeout(() => {
|
|
14
|
+
timedOut = true;
|
|
15
|
+
controller.abort();
|
|
16
|
+
}, requestTimeout);
|
|
13
17
|
try {
|
|
14
18
|
const headers = new Headers(requestHeaders);
|
|
15
19
|
if (!headers.has("Accept")) headers.set("Accept", "application/json");
|
|
@@ -38,7 +42,9 @@ export const fetchUpdateResponse = async ({
|
|
|
38
42
|
body
|
|
39
43
|
};
|
|
40
44
|
} catch (error) {
|
|
41
|
-
|
|
45
|
+
// Whatever the fetch rejects with once its timeout aborts it: an
|
|
46
|
+
// AbortError, or Expo's "fetch failed: FetchRequestCanceledException".
|
|
47
|
+
if (timedOut || error instanceof Error && error.name === "AbortError") {
|
|
42
48
|
throw new Error("Request timed out");
|
|
43
49
|
}
|
|
44
50
|
throw error;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["fetchUpdateResponse","url","resource","requestHeaders","requestTimeout","onResponse","controller","AbortController","timeoutId","setTimeout","abort","headers","Headers","has","set","response","fetch","signal","body","text","error","status","path","replace","split","bodyTruncated","Error","name","clearTimeout"],"sourceRoot":"../../src","sources":["fetchUpdateResponse.ts"],"mappings":";;AAUA;AACA,OAAO,MAAMA,mBAAmB,GAAG,MAAAA,CAAO;EACxCC,GAAG;EACHC,QAAQ;EACRC,cAAc;EACdC,cAAc,GAAG,IAAI;EACrBC;AACa,CAAC,KAA2D;EACzE,MAAMC,UAAU,GAAG,IAAIC,eAAe,CAAC,CAAC;EACxC,MAAMC,SAAS,GAAGC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"names":["fetchUpdateResponse","url","resource","requestHeaders","requestTimeout","onResponse","controller","AbortController","timedOut","timeoutId","setTimeout","abort","headers","Headers","has","set","response","fetch","signal","body","text","error","status","path","replace","split","bodyTruncated","Error","name","clearTimeout"],"sourceRoot":"../../src","sources":["fetchUpdateResponse.ts"],"mappings":";;AAUA;AACA,OAAO,MAAMA,mBAAmB,GAAG,MAAAA,CAAO;EACxCC,GAAG;EACHC,QAAQ;EACRC,cAAc;EACdC,cAAc,GAAG,IAAI;EACrBC;AACa,CAAC,KAA2D;EACzE,MAAMC,UAAU,GAAG,IAAIC,eAAe,CAAC,CAAC;EACxC,IAAIC,QAAQ,GAAG,KAAK;EACpB,MAAMC,SAAS,GAAGC,UAAU,CAAC,MAAM;IACjCF,QAAQ,GAAG,IAAI;IACfF,UAAU,CAACK,KAAK,CAAC,CAAC;EACpB,CAAC,EAAEP,cAAc,CAAC;EAClB,IAAI;IACF,MAAMQ,OAAO,GAAG,IAAIC,OAAO,CAACV,cAAc,CAAC;IAC3C,IAAI,CAACS,OAAO,CAACE,GAAG,CAAC,QAAQ,CAAC,EAAEF,OAAO,CAACG,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACrE,MAAMC,QAAQ,GAAG,MAAMC,KAAK,CAAChB,GAAG,EAAE;MAChCW,OAAO;MACPM,MAAM,EAAEZ,UAAU,CAACY;IACrB,CAAC,CAAC;IACF,IAAIC,IAAmB,GAAG,IAAI;IAC9B,IAAI;MACFA,IAAI,GAAG,MAAMH,QAAQ,CAACI,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC,OAAOC,KAAK,EAAE;MACd;MACA,IAAIL,QAAQ,CAACM,MAAM,KAAK,GAAG,EAAE,MAAMD,KAAK;IAC1C,CAAC,SAAS;MACRhB,UAAU,GAAG;QACXH,QAAQ;QACR;QACAqB,IAAI,EACFtB,GAAG,CAACuB,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAACC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG;QACpEH,MAAM,EAAEN,QAAQ,CAACM,MAAM;QACvBH,IAAI;QACJO,aAAa,EAAE;MACjB,CAAC,CAAC;IACJ;IACA,OAAO;MAAEV,QAAQ;MAAEG;IAAK,CAAC;EAC3B,CAAC,CAAC,OAAOE,KAAc,EAAE;IACvB;IACA;IACA,IAAIb,QAAQ,IAAKa,KAAK,YAAYM,KAAK,IAAIN,KAAK,CAACO,IAAI,KAAK,YAAa,EAAE;MACvE,MAAM,IAAID,KAAK,CAAC,mBAAmB,CAAC;IACtC;IACA,MAAMN,KAAK;EACb,CAAC,SAAS;IACRQ,YAAY,CAACpB,SAAS,CAAC;EACzB;AACF,CAAC","ignoreList":[]}
|
package/lib/module/sdkVersion.js
CHANGED
|
@@ -28,6 +28,8 @@ const RESOURCES = ["catalog", "artifact", "manifest", "file", "patch", "archive"
|
|
|
28
28
|
const TRANSPORTS = ["timeout", "dns", "tls", "connection", "offline", "cancelled"];
|
|
29
29
|
/** An S3, R2, or GCS error code: letters, digits, and punctuation only. */
|
|
30
30
|
const ORIGIN_CODE = /^[A-Za-z0-9._-]{1,64}$/;
|
|
31
|
+
/** Expo's iOS and Android names for a fetch canceled before its response. */
|
|
32
|
+
const EXPO_FETCH_CANCELED = /FetchRequestCanceledException|Fetch request has been canceled|The operation was aborted/;
|
|
31
33
|
const oneOf = (values, value) => values.includes(value);
|
|
32
34
|
const readNativeClassification = error => {
|
|
33
35
|
if (!("code" in error) || typeof error.code !== "string") return undefined;
|
|
@@ -110,6 +112,17 @@ export const classifyUpdateError = (error, stage, resource) => {
|
|
|
110
112
|
transport: "cancelled"
|
|
111
113
|
};
|
|
112
114
|
}
|
|
115
|
+
// Expo's fetch rejects with "fetch failed: <native exception>" when no
|
|
116
|
+
// response arrives, and names a canceled request.
|
|
117
|
+
if (error instanceof Error && error.message.startsWith("fetch failed:")) {
|
|
118
|
+
return {
|
|
119
|
+
...scope,
|
|
120
|
+
reason: "network",
|
|
121
|
+
...(EXPO_FETCH_CANCELED.test(error.message) ? {
|
|
122
|
+
transport: "cancelled"
|
|
123
|
+
} : {})
|
|
124
|
+
};
|
|
125
|
+
}
|
|
113
126
|
if (name === "TypeError") {
|
|
114
127
|
// fetch rejects with a TypeError when no response arrives, without
|
|
115
128
|
// saying why.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["HotUpdaterError","InvalidUpdateResponseError","constructor","message","options","name","cause","undefined","UpdateHttpError","status","statusText","STAGES","REASONS","RESOURCES","TRANSPORTS","ORIGIN_CODE","oneOf","values","value","includes","readNativeClassification","error","code","userInfo","stage","reason","resource","transport","originCode","httpStatus","Number","isSafeInteger","test","classifyUpdateError","native","scope","Error"],"sourceRoot":"../../src","sources":["updateError.ts"],"mappings":";;AAOA,SAASA,eAAe,QAAQ,YAAS;;AAEzC;AACA;AACA;AACA;AACA,OAAO,MAAMC,0BAA0B,SAASD,eAAe,CAAC;EAC9DE,WAAWA,CAACC,OAAe,EAAEC,OAA6B,EAAE;IAC1D,KAAK,CAACD,OAAO,CAAC;IACd,IAAI,CAACE,IAAI,GAAG,4BAA4B;IACxC,IAAID,OAAO,EAAEE,KAAK,KAAKC,SAAS,EAAE,IAAI,CAACD,KAAK,GAAGF,OAAO,CAACE,KAAK;EAC9D;AACF;;AAEA;AACA,OAAO,MAAME,eAAe,SAASR,eAAe,CAAC;EACnDE,WAAWA,CACAO,MAAc,EACvBC,UAAkB,EAClB;IACA,KAAK,CACH,4BAA4BD,MAAM,GAAGC,UAAU,GAAG,IAAIA,UAAU,EAAE,GAAG,EAAE,EACzE,CAAC;IAAC,KALOD,MAAc,GAAdA,MAAc;IAMvB,IAAI,CAACJ,IAAI,GAAG,iBAAiB;EAC/B;AACF;AAEA,MAAMM,MAAmC,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC;AAC5E,MAAMC,OAAqC,GAAG,CAC5C,SAAS,EACT,MAAM,EACN,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,CACV;AACD,MAAMC,SAAyC,GAAG,CAChD,SAAS,EACT,UAAU,EACV,UAAU,EACV,MAAM,EACN,OAAO,EACP,SAAS,CACV;AACD,MAAMC,UAA2C,GAAG,CAClD,SAAS,EACT,KAAK,EACL,KAAK,EACL,YAAY,EACZ,SAAS,EACT,WAAW,CACZ;AACD;AACA,MAAMC,WAAW,GAAG,wBAAwB;
|
|
1
|
+
{"version":3,"names":["HotUpdaterError","InvalidUpdateResponseError","constructor","message","options","name","cause","undefined","UpdateHttpError","status","statusText","STAGES","REASONS","RESOURCES","TRANSPORTS","ORIGIN_CODE","EXPO_FETCH_CANCELED","oneOf","values","value","includes","readNativeClassification","error","code","userInfo","stage","reason","resource","transport","originCode","httpStatus","Number","isSafeInteger","test","classifyUpdateError","native","scope","Error","startsWith"],"sourceRoot":"../../src","sources":["updateError.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchUpdateResponse.d.ts","sourceRoot":"","sources":["../../../src/fetchUpdateResponse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAClD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAC9D;AAED,6EAA6E;AAC7E,eAAO,MAAM,mBAAmB,mEAM7B,aAAa,KAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"fetchUpdateResponse.d.ts","sourceRoot":"","sources":["../../../src/fetchUpdateResponse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAClD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAC9D;AAED,6EAA6E;AAC7E,eAAO,MAAM,mBAAmB,mEAM7B,aAAa,KAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CA0CrE,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const HOT_UPDATER_SDK_VERSION = "1.0.0-rc.
|
|
1
|
+
export declare const HOT_UPDATER_SDK_VERSION = "1.0.0-rc.32";
|
|
2
2
|
//# sourceMappingURL=sdkVersion.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateError.d.ts","sourceRoot":"","sources":["../../../src/updateError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EAEX,mBAAmB,EACnB,gBAAgB,EAEjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C;;;GAGG;AACH,qBAAa,0BAA2B,SAAQ,eAAe;IAC7D,YAAY,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,EAIzD;CACF;AAED,2EAA2E;AAC3E,qBAAa,eAAgB,SAAQ,eAAe;IAEhD,QAAQ,CAAC,MAAM,EAAE,MAAM;IADzB,YACW,MAAM,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,EAMnB;CACF;
|
|
1
|
+
{"version":3,"file":"updateError.d.ts","sourceRoot":"","sources":["../../../src/updateError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EAEX,mBAAmB,EACnB,gBAAgB,EAEjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C;;;GAGG;AACH,qBAAa,0BAA2B,SAAQ,eAAe;IAC7D,YAAY,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,EAIzD;CACF;AAED,2EAA2E;AAC3E,qBAAa,eAAgB,SAAQ,eAAe;IAEhD,QAAQ,CAAC,MAAM,EAAE,MAAM;IADzB,YACW,MAAM,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,EAMnB;CACF;AAoCD,KAAK,cAAc,GAAG,IAAI,CACxB,WAAW,EACX,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,YAAY,GAAG,YAAY,GAAG,WAAW,CAC5E,CAAC;AAsCF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,UACvB,OAAO,SACP,gBAAgB,aACZ,mBAAmB,KAC7B,cAAc,GAAG,IA+CnB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchUpdateResponse.d.ts","sourceRoot":"","sources":["../../../src/fetchUpdateResponse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAClD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAC9D;AAED,6EAA6E;AAC7E,eAAO,MAAM,mBAAmB,mEAM7B,aAAa,KAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"fetchUpdateResponse.d.ts","sourceRoot":"","sources":["../../../src/fetchUpdateResponse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAClD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAC9D;AAED,6EAA6E;AAC7E,eAAO,MAAM,mBAAmB,mEAM7B,aAAa,KAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CA0CrE,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const HOT_UPDATER_SDK_VERSION = "1.0.0-rc.
|
|
1
|
+
export declare const HOT_UPDATER_SDK_VERSION = "1.0.0-rc.32";
|
|
2
2
|
//# sourceMappingURL=sdkVersion.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateError.d.ts","sourceRoot":"","sources":["../../../src/updateError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EAEX,mBAAmB,EACnB,gBAAgB,EAEjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C;;;GAGG;AACH,qBAAa,0BAA2B,SAAQ,eAAe;IAC7D,YAAY,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,EAIzD;CACF;AAED,2EAA2E;AAC3E,qBAAa,eAAgB,SAAQ,eAAe;IAEhD,QAAQ,CAAC,MAAM,EAAE,MAAM;IADzB,YACW,MAAM,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,EAMnB;CACF;
|
|
1
|
+
{"version":3,"file":"updateError.d.ts","sourceRoot":"","sources":["../../../src/updateError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EAEX,mBAAmB,EACnB,gBAAgB,EAEjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C;;;GAGG;AACH,qBAAa,0BAA2B,SAAQ,eAAe;IAC7D,YAAY,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,EAIzD;CACF;AAED,2EAA2E;AAC3E,qBAAa,eAAgB,SAAQ,eAAe;IAEhD,QAAQ,CAAC,MAAM,EAAE,MAAM;IADzB,YACW,MAAM,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,EAMnB;CACF;AAoCD,KAAK,cAAc,GAAG,IAAI,CACxB,WAAW,EACX,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,YAAY,GAAG,YAAY,GAAG,WAAW,CAC5E,CAAC;AAsCF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,UACvB,OAAO,SACP,gBAAgB,aACZ,mBAAmB,KAC7B,cAAc,GAAG,IA+CnB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hot-updater/react-native",
|
|
3
|
-
"version": "1.0.0-rc.
|
|
3
|
+
"version": "1.0.0-rc.32",
|
|
4
4
|
"description": "React Native OTA solution for self-hosted",
|
|
5
5
|
"source": "./src/index.ts",
|
|
6
6
|
"main": "./lib/commonjs/index.js",
|
|
@@ -123,8 +123,8 @@
|
|
|
123
123
|
},
|
|
124
124
|
"dependencies": {
|
|
125
125
|
"use-sync-external-store": "1.5.0",
|
|
126
|
-
"@hot-updater/protocol": "1.0.0-rc.
|
|
127
|
-
"@hot-updater/plugin-insights": "1.0.0-rc.
|
|
126
|
+
"@hot-updater/protocol": "1.0.0-rc.29",
|
|
127
|
+
"@hot-updater/plugin-insights": "1.0.0-rc.32"
|
|
128
128
|
},
|
|
129
129
|
"scripts": {
|
|
130
130
|
"build": "node ./scripts/sync-sdk-version.mjs run -- bob build",
|
|
@@ -17,7 +17,11 @@ export const fetchUpdateResponse = async ({
|
|
|
17
17
|
onResponse,
|
|
18
18
|
}: UpdateRequest): Promise<{ response: Response; body: string | null }> => {
|
|
19
19
|
const controller = new AbortController();
|
|
20
|
-
|
|
20
|
+
let timedOut = false;
|
|
21
|
+
const timeoutId = setTimeout(() => {
|
|
22
|
+
timedOut = true;
|
|
23
|
+
controller.abort();
|
|
24
|
+
}, requestTimeout);
|
|
21
25
|
try {
|
|
22
26
|
const headers = new Headers(requestHeaders);
|
|
23
27
|
if (!headers.has("Accept")) headers.set("Accept", "application/json");
|
|
@@ -44,7 +48,9 @@ export const fetchUpdateResponse = async ({
|
|
|
44
48
|
}
|
|
45
49
|
return { response, body };
|
|
46
50
|
} catch (error: unknown) {
|
|
47
|
-
|
|
51
|
+
// Whatever the fetch rejects with once its timeout aborts it: an
|
|
52
|
+
// AbortError, or Expo's "fetch failed: FetchRequestCanceledException".
|
|
53
|
+
if (timedOut || (error instanceof Error && error.name === "AbortError")) {
|
|
48
54
|
throw new Error("Request timed out");
|
|
49
55
|
}
|
|
50
56
|
throw error;
|
package/src/sdkVersion.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const HOT_UPDATER_SDK_VERSION = "1.0.0-rc.
|
|
1
|
+
export const HOT_UPDATER_SDK_VERSION = "1.0.0-rc.32";
|
package/src/updateError.ts
CHANGED
|
@@ -62,6 +62,9 @@ const TRANSPORTS: readonly UpdateErrorTransport[] = [
|
|
|
62
62
|
];
|
|
63
63
|
/** An S3, R2, or GCS error code: letters, digits, and punctuation only. */
|
|
64
64
|
const ORIGIN_CODE = /^[A-Za-z0-9._-]{1,64}$/;
|
|
65
|
+
/** Expo's iOS and Android names for a fetch canceled before its response. */
|
|
66
|
+
const EXPO_FETCH_CANCELED =
|
|
67
|
+
/FetchRequestCanceledException|Fetch request has been canceled|The operation was aborted/;
|
|
65
68
|
|
|
66
69
|
type Classification = Pick<
|
|
67
70
|
UpdateError,
|
|
@@ -144,6 +147,17 @@ export const classifyUpdateError = (
|
|
|
144
147
|
if (name === "AbortError") {
|
|
145
148
|
return { ...scope, reason: "network", transport: "cancelled" };
|
|
146
149
|
}
|
|
150
|
+
// Expo's fetch rejects with "fetch failed: <native exception>" when no
|
|
151
|
+
// response arrives, and names a canceled request.
|
|
152
|
+
if (error instanceof Error && error.message.startsWith("fetch failed:")) {
|
|
153
|
+
return {
|
|
154
|
+
...scope,
|
|
155
|
+
reason: "network",
|
|
156
|
+
...(EXPO_FETCH_CANCELED.test(error.message)
|
|
157
|
+
? { transport: "cancelled" }
|
|
158
|
+
: {}),
|
|
159
|
+
};
|
|
160
|
+
}
|
|
147
161
|
if (name === "TypeError") {
|
|
148
162
|
// fetch rejects with a TypeError when no response arrives, without
|
|
149
163
|
// saying why.
|