@reown/appkit-utils 1.6.8 → 1.6.9-venice.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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reown/appkit-utils",
3
- "version": "1.6.8",
3
+ "version": "1.6.9-venice.0",
4
4
  "type": "module",
5
5
  "main": "./dist/esm/exports/index.js",
6
6
  "types": "./dist/types/exports/index.d.ts",
@@ -0,0 +1,16 @@
1
+ export const MobileWalletUtil = {
2
+ handleMobileWalletRedirection(properties) {
3
+ const href = window.location.href;
4
+ const encodedHref = encodeURIComponent(href);
5
+ if (properties?.name === 'Phantom' && !('phantom' in window)) {
6
+ const protocol = href.startsWith('https') ? 'https' : 'http';
7
+ const host = href.split('/')[2];
8
+ const encodedRef = encodeURIComponent(`${protocol}://${host}`);
9
+ window.location.href = `https://phantom.app/ul/browse/${encodedHref}?ref=${encodedRef}`;
10
+ }
11
+ if (properties?.name === 'Coinbase Wallet' && !('coinbaseSolana' in window)) {
12
+ window.location.href = `https://go.cb-w.com/dapp?cb_url=${encodedHref}`;
13
+ }
14
+ }
15
+ };
16
+ //# sourceMappingURL=MobileWallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MobileWallet.js","sourceRoot":"","sources":["../../../src/MobileWallet.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAO9B,6BAA6B,CAAC,UAA4B;QACxD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAA;QACjC,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;QAE5C,IAAI,UAAU,EAAE,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,CAAC;YAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAA;YAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YAC/B,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,QAAQ,MAAM,IAAI,EAAE,CAAC,CAAA;YAE9D,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,iCAAiC,WAAW,QAAQ,UAAU,EAAE,CAAA;QACzF,CAAC;QAED,IAAI,UAAU,EAAE,IAAI,KAAK,iBAAiB,IAAI,CAAC,CAAC,gBAAgB,IAAI,MAAM,CAAC,EAAE,CAAC;YAC5E,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,mCAAmC,WAAW,EAAE,CAAA;QACzE,CAAC;IACH,CAAC;CACF,CAAA"}
@@ -0,0 +1,59 @@
1
+ import { afterAll, beforeEach, describe, expect, it, vi } from 'vitest';
2
+ import { MobileWalletUtil } from '../src/MobileWallet';
3
+ const ORIGINAL_HREF = 'https://example.com/path';
4
+ const mockWindow = {
5
+ location: {
6
+ href: ORIGINAL_HREF
7
+ }
8
+ };
9
+ describe('MobileWalletUtil', () => {
10
+ beforeEach(() => {
11
+ vi.stubGlobal('window', {
12
+ location: {
13
+ href: ORIGINAL_HREF
14
+ }
15
+ });
16
+ });
17
+ afterAll(() => {
18
+ vi.unstubAllGlobals();
19
+ });
20
+ describe('handleMobileWalletRedirection', () => {
21
+ it('should redirect to Phantom app when Phantom is not installed', () => {
22
+ MobileWalletUtil.handleMobileWalletRedirection({ name: 'Phantom' });
23
+ const encodedHref = encodeURIComponent(ORIGINAL_HREF);
24
+ const encodedRef = encodeURIComponent('https://example.com');
25
+ const expectedUrl = `https://phantom.app/ul/browse/${encodedHref}?ref=${encodedRef}`;
26
+ expect(window.location.href).toBe(expectedUrl);
27
+ });
28
+ it('should not redirect when Phantom is installed', () => {
29
+ vi.stubGlobal('window', {
30
+ ...mockWindow,
31
+ phantom: {}
32
+ });
33
+ const originalHref = window.location.href;
34
+ MobileWalletUtil.handleMobileWalletRedirection({ name: 'Phantom' });
35
+ expect(window.location.href).toBe(originalHref);
36
+ });
37
+ it('should redirect to Coinbase Wallet when it is not installed', () => {
38
+ MobileWalletUtil.handleMobileWalletRedirection({ name: 'Coinbase Wallet' });
39
+ const encodedHref = encodeURIComponent(ORIGINAL_HREF);
40
+ const expectedUrl = `https://go.cb-w.com/dapp?cb_url=${encodedHref}`;
41
+ expect(window.location.href).toBe(expectedUrl);
42
+ });
43
+ it('should not redirect when Coinbase Wallet is installed', () => {
44
+ vi.stubGlobal('window', {
45
+ ...mockWindow,
46
+ coinbaseSolana: {}
47
+ });
48
+ const originalHref = window.location.href;
49
+ MobileWalletUtil.handleMobileWalletRedirection({ name: 'Coinbase Wallet' });
50
+ expect(window.location.href).toBe(originalHref);
51
+ });
52
+ it('should not redirect for unknown wallet names', () => {
53
+ const originalHref = window.location.href;
54
+ MobileWalletUtil.handleMobileWalletRedirection({ name: 'Unknown Wallet' });
55
+ expect(window.location.href).toBe(originalHref);
56
+ });
57
+ });
58
+ });
59
+ //# sourceMappingURL=MobileWallet.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MobileWallet.test.js","sourceRoot":"","sources":["../../../tests/MobileWallet.test.ts"],"names":[],"mappings":"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"}