@reown/appkit-core-react-native 2.0.5 → 2.0.6

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.
@@ -83,16 +83,49 @@ class FetchUtil {
83
83
  const response = await fetch(url, {
84
84
  headers
85
85
  });
86
- const blob = await response.blob();
87
- const reader = new FileReader();
88
- reader.readAsDataURL(blob);
89
- return new Promise(resolve => {
90
- reader.onloadend = () => resolve(reader.result);
91
- });
86
+
87
+ // Bail on non-2xx so error bodies aren't base64-encoded into a bogus data
88
+ // URL (RN's `Image` would silently fail instead of showing the placeholder).
89
+ if (!response.ok) {
90
+ return undefined;
91
+ }
92
+
93
+ // React Native's `fetch(...).blob()` throws "Creating blobs from
94
+ // 'ArrayBuffer' and 'ArrayBufferView' are not supported" for binary
95
+ // responses, so Blob + FileReader can't be used to build the data URL
96
+ // (wallet/network images would silently fail to load). Read the bytes as
97
+ // an ArrayBuffer and base64-encode them into a data URL instead.
98
+ const arrayBuffer = await response.arrayBuffer();
99
+ // Strip any `; charset=...`/`; quality=...` parameters so the media type
100
+ // doesn't leak into the data URL as `data:image/svg+xml; charset=utf-8;base64,...`,
101
+ // which strict parsers may reject.
102
+ const rawContentType = response.headers.get('content-type') ?? 'image/png';
103
+ const contentType = rawContentType.split(';')[0]?.trim() || 'image/png';
104
+ return `data:${contentType};base64,${FetchUtil._arrayBufferToBase64(arrayBuffer)}`;
92
105
  } catch {
93
106
  return undefined;
94
107
  }
95
108
  }
109
+
110
+ // Dependency-free base64 encoder (RN has no global `Buffer`/`btoa` guarantee).
111
+ /* eslint-disable no-bitwise */
112
+ static _arrayBufferToBase64(buffer) {
113
+ const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
114
+ const bytes = new Uint8Array(buffer);
115
+ const parts = [];
116
+ for (let i = 0; i < bytes.length; i += 3) {
117
+ const byte0 = bytes[i];
118
+ const byte1 = i + 1 < bytes.length ? bytes[i + 1] : 0;
119
+ const byte2 = i + 2 < bytes.length ? bytes[i + 2] : 0;
120
+ parts.push(chars[byte0 >> 2]);
121
+ parts.push(chars[(byte0 & 0x03) << 4 | byte1 >> 4]);
122
+ parts.push(i + 1 < bytes.length ? chars[(byte1 & 0x0f) << 2 | byte2 >> 6] : '=');
123
+ parts.push(i + 2 < bytes.length ? chars[byte2 & 0x3f] : '=');
124
+ }
125
+ return parts.join('');
126
+ }
127
+ /* eslint-enable no-bitwise */
128
+
96
129
  createUrl({
97
130
  path,
98
131
  params
@@ -1 +1 @@
1
- {"version":3,"names":["_LogController","require","FetchUtil","constructor","baseUrl","clientId","get","headers","signal","args","url","createUrl","response","fetch","method","processResponse","post","body","JSON","stringify","undefined","put","delete","fetchImage","path","params","toString","blob","reader","FileReader","readAsDataURL","Promise","resolve","onloadend","result","fullUrl","isAbsoluteUrl","startsWith","endsWith","pathUrl","substring","allParams","queryParams","key","value","push","encodeURIComponent","length","queryString","join","includes","ok","errorData","json","LogController","sendError","reject","jsonError","status","statusText","errorText","text","exports"],"sourceRoot":"../../../src","sources":["utils/FetchUtil.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_LogController","require","FetchUtil","constructor","baseUrl","clientId","get","headers","signal","args","url","createUrl","response","fetch","method","processResponse","post","body","JSON","stringify","undefined","put","delete","fetchImage","path","params","toString","ok","arrayBuffer","rawContentType","contentType","split","trim","_arrayBufferToBase64","buffer","chars","bytes","Uint8Array","parts","i","length","byte0","byte1","byte2","push","join","fullUrl","isAbsoluteUrl","startsWith","endsWith","pathUrl","substring","allParams","queryParams","key","value","encodeURIComponent","queryString","includes","errorData","json","LogController","sendError","Promise","reject","jsonError","status","statusText","errorText","text","exports"],"sourceRoot":"../../../src","sources":["utils/FetchUtil.ts"],"mappings":"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","ignoreList":[]}
@@ -80,16 +80,49 @@ export class FetchUtil {
80
80
  const response = await fetch(url, {
81
81
  headers
82
82
  });
83
- const blob = await response.blob();
84
- const reader = new FileReader();
85
- reader.readAsDataURL(blob);
86
- return new Promise(resolve => {
87
- reader.onloadend = () => resolve(reader.result);
88
- });
83
+
84
+ // Bail on non-2xx so error bodies aren't base64-encoded into a bogus data
85
+ // URL (RN's `Image` would silently fail instead of showing the placeholder).
86
+ if (!response.ok) {
87
+ return undefined;
88
+ }
89
+
90
+ // React Native's `fetch(...).blob()` throws "Creating blobs from
91
+ // 'ArrayBuffer' and 'ArrayBufferView' are not supported" for binary
92
+ // responses, so Blob + FileReader can't be used to build the data URL
93
+ // (wallet/network images would silently fail to load). Read the bytes as
94
+ // an ArrayBuffer and base64-encode them into a data URL instead.
95
+ const arrayBuffer = await response.arrayBuffer();
96
+ // Strip any `; charset=...`/`; quality=...` parameters so the media type
97
+ // doesn't leak into the data URL as `data:image/svg+xml; charset=utf-8;base64,...`,
98
+ // which strict parsers may reject.
99
+ const rawContentType = response.headers.get('content-type') ?? 'image/png';
100
+ const contentType = rawContentType.split(';')[0]?.trim() || 'image/png';
101
+ return `data:${contentType};base64,${FetchUtil._arrayBufferToBase64(arrayBuffer)}`;
89
102
  } catch {
90
103
  return undefined;
91
104
  }
92
105
  }
106
+
107
+ // Dependency-free base64 encoder (RN has no global `Buffer`/`btoa` guarantee).
108
+ /* eslint-disable no-bitwise */
109
+ static _arrayBufferToBase64(buffer) {
110
+ const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
111
+ const bytes = new Uint8Array(buffer);
112
+ const parts = [];
113
+ for (let i = 0; i < bytes.length; i += 3) {
114
+ const byte0 = bytes[i];
115
+ const byte1 = i + 1 < bytes.length ? bytes[i + 1] : 0;
116
+ const byte2 = i + 2 < bytes.length ? bytes[i + 2] : 0;
117
+ parts.push(chars[byte0 >> 2]);
118
+ parts.push(chars[(byte0 & 0x03) << 4 | byte1 >> 4]);
119
+ parts.push(i + 1 < bytes.length ? chars[(byte1 & 0x0f) << 2 | byte2 >> 6] : '=');
120
+ parts.push(i + 2 < bytes.length ? chars[byte2 & 0x3f] : '=');
121
+ }
122
+ return parts.join('');
123
+ }
124
+ /* eslint-enable no-bitwise */
125
+
93
126
  createUrl({
94
127
  path,
95
128
  params
@@ -1 +1 @@
1
- {"version":3,"names":["LogController","FetchUtil","constructor","baseUrl","clientId","get","headers","signal","args","url","createUrl","response","fetch","method","processResponse","post","body","JSON","stringify","undefined","put","delete","fetchImage","path","params","toString","blob","reader","FileReader","readAsDataURL","Promise","resolve","onloadend","result","fullUrl","isAbsoluteUrl","startsWith","endsWith","pathUrl","substring","allParams","queryParams","key","value","push","encodeURIComponent","length","queryString","join","includes","ok","errorData","json","sendError","reject","jsonError","status","statusText","errorText","text"],"sourceRoot":"../../../src","sources":["utils/FetchUtil.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["LogController","FetchUtil","constructor","baseUrl","clientId","get","headers","signal","args","url","createUrl","response","fetch","method","processResponse","post","body","JSON","stringify","undefined","put","delete","fetchImage","path","params","toString","ok","arrayBuffer","rawContentType","contentType","split","trim","_arrayBufferToBase64","buffer","chars","bytes","Uint8Array","parts","i","length","byte0","byte1","byte2","push","join","fullUrl","isAbsoluteUrl","startsWith","endsWith","pathUrl","substring","allParams","queryParams","key","value","encodeURIComponent","queryString","includes","errorData","json","sendError","Promise","reject","jsonError","status","statusText","errorText","text"],"sourceRoot":"../../../src","sources":["utils/FetchUtil.ts"],"mappings":"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","ignoreList":[]}
@@ -22,6 +22,7 @@ export declare class FetchUtil {
22
22
  put<T>({ body, headers, signal, ...args }: PostArguments): Promise<T | undefined>;
23
23
  delete<T>({ body, headers, signal, ...args }: PostArguments): Promise<T | undefined>;
24
24
  fetchImage(path: string, headers?: Record<string, string>, params?: Record<string, string>): Promise<string | undefined>;
25
+ private static _arrayBufferToBase64;
25
26
  createUrl({ path, params }: RequestArguments): string;
26
27
  private processResponse;
27
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FetchUtil.d.ts","sourceRoot":"","sources":["../../../src/utils/FetchUtil.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAItE,UAAU,OAAO;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC5C,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,UAAU,aAAc,SAAQ,gBAAgB;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAGD,qBAAa,SAAS;IACb,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;gBAElB,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,OAAO;IAKpC,GAAG,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,gBAAgB;IAOrD,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,aAAa;IAYzD,GAAG,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,aAAa;IAYxD,MAAM,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,aAAa;IAY3D,UAAU,CACrB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAiB1B,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,gBAAgB;YAsCrC,eAAe;CA+B9B"}
1
+ {"version":3,"file":"FetchUtil.d.ts","sourceRoot":"","sources":["../../../src/utils/FetchUtil.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAItE,UAAU,OAAO;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC5C,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,UAAU,aAAc,SAAQ,gBAAgB;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAGD,qBAAa,SAAS;IACb,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;gBAElB,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,OAAO;IAKpC,GAAG,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,gBAAgB;IAOrD,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,aAAa;IAYzD,GAAG,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,aAAa;IAYxD,MAAM,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,aAAa;IAY3D,UAAU,CACrB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAgCjC,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAsB5B,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,gBAAgB;YAsCrC,eAAe;CA+B9B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reown/appkit-core-react-native",
3
- "version": "2.0.5",
3
+ "version": "2.0.6",
4
4
  "main": "lib/commonjs/index.js",
5
5
  "types": "lib/typescript/index.d.ts",
6
6
  "module": "lib/module/index.js",
@@ -40,7 +40,7 @@
40
40
  "provenance": true
41
41
  },
42
42
  "dependencies": {
43
- "@reown/appkit-common-react-native": "2.0.5",
43
+ "@reown/appkit-common-react-native": "2.0.6",
44
44
  "countries-and-timezones": "3.7.2",
45
45
  "derive-valtio": "0.2.0",
46
46
  "valtio": "2.1.8"
@@ -80,18 +80,55 @@ export class FetchUtil {
80
80
  try {
81
81
  const url = this.createUrl({ path, params }).toString();
82
82
  const response = await fetch(url, { headers });
83
- const blob = await response.blob();
84
- const reader = new FileReader();
85
- reader.readAsDataURL(blob);
86
83
 
87
- return new Promise<string>(resolve => {
88
- reader.onloadend = () => resolve(reader.result as string);
89
- });
84
+ // Bail on non-2xx so error bodies aren't base64-encoded into a bogus data
85
+ // URL (RN's `Image` would silently fail instead of showing the placeholder).
86
+ if (!response.ok) {
87
+ return undefined;
88
+ }
89
+
90
+ // React Native's `fetch(...).blob()` throws "Creating blobs from
91
+ // 'ArrayBuffer' and 'ArrayBufferView' are not supported" for binary
92
+ // responses, so Blob + FileReader can't be used to build the data URL
93
+ // (wallet/network images would silently fail to load). Read the bytes as
94
+ // an ArrayBuffer and base64-encode them into a data URL instead.
95
+ const arrayBuffer = await response.arrayBuffer();
96
+ // Strip any `; charset=...`/`; quality=...` parameters so the media type
97
+ // doesn't leak into the data URL as `data:image/svg+xml; charset=utf-8;base64,...`,
98
+ // which strict parsers may reject.
99
+ const rawContentType = response.headers.get('content-type') ?? 'image/png';
100
+ const contentType = rawContentType.split(';')[0]?.trim() || 'image/png';
101
+
102
+ return `data:${contentType};base64,${FetchUtil._arrayBufferToBase64(arrayBuffer)}`;
90
103
  } catch {
91
104
  return undefined;
92
105
  }
93
106
  }
94
107
 
108
+ // Dependency-free base64 encoder (RN has no global `Buffer`/`btoa` guarantee).
109
+ /* eslint-disable no-bitwise */
110
+ private static _arrayBufferToBase64(buffer: ArrayBuffer): string {
111
+ const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
112
+ const bytes = new Uint8Array(buffer);
113
+ const parts: string[] = [];
114
+
115
+ for (let i = 0; i < bytes.length; i += 3) {
116
+ const byte0 = bytes[i] as number;
117
+ const byte1 = i + 1 < bytes.length ? (bytes[i + 1] as number) : 0;
118
+ const byte2 = i + 2 < bytes.length ? (bytes[i + 2] as number) : 0;
119
+
120
+ parts.push(chars[byte0 >> 2] as string);
121
+ parts.push(chars[((byte0 & 0x03) << 4) | (byte1 >> 4)] as string);
122
+ parts.push(
123
+ i + 1 < bytes.length ? (chars[((byte1 & 0x0f) << 2) | (byte2 >> 6)] as string) : '='
124
+ );
125
+ parts.push(i + 2 < bytes.length ? (chars[byte2 & 0x3f] as string) : '=');
126
+ }
127
+
128
+ return parts.join('');
129
+ }
130
+ /* eslint-enable no-bitwise */
131
+
95
132
  public createUrl({ path, params }: RequestArguments) {
96
133
  let fullUrl: string;
97
134