@dynamic-labs/sdk-react-core 4.28.0 → 4.29.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.
package/CHANGELOG.md CHANGED
@@ -1,4 +1,11 @@
1
1
 
2
+ ## [4.29.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.28.0...v4.29.0) (2025-08-19)
3
+
4
+
5
+ ### Features
6
+
7
+ * add support for World Mini App social redirect ([#9371](https://github.com/dynamic-labs/dynamic-auth/issues/9371)) ([12bcee8](https://github.com/dynamic-labs/dynamic-auth/commit/12bcee875007e6a2c6143a222f9af39d8127fcf8))
8
+
2
9
  ## [4.28.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.27.1...v4.28.0) (2025-08-18)
3
10
 
4
11
 
package/package.cjs CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var version = "4.28.0";
6
+ var version = "4.29.0";
7
7
  var dependencies = {
8
8
  "@dynamic-labs/sdk-api-core": "0.0.753",
9
9
  "@dynamic-labs-sdk/client": "0.0.1-alpha.24",
package/package.js CHANGED
@@ -1,5 +1,5 @@
1
1
  'use client'
2
- var version = "4.28.0";
2
+ var version = "4.29.0";
3
3
  var dependencies = {
4
4
  "@dynamic-labs/sdk-api-core": "0.0.753",
5
5
  "@dynamic-labs-sdk/client": "0.0.1-alpha.24",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/sdk-react-core",
3
- "version": "4.28.0",
3
+ "version": "4.29.0",
4
4
  "dependencies": {
5
5
  "@dynamic-labs/sdk-api-core": "0.0.753",
6
6
  "@dynamic-labs-sdk/client": "0.0.1-alpha.24",
@@ -15,16 +15,16 @@
15
15
  "yup": "0.32.11",
16
16
  "react-international-phone": "4.5.0",
17
17
  "bs58": "5.0.0",
18
- "@dynamic-labs/assert-package-version": "4.28.0",
19
- "@dynamic-labs/iconic": "4.28.0",
20
- "@dynamic-labs/logger": "4.28.0",
21
- "@dynamic-labs/multi-wallet": "4.28.0",
22
- "@dynamic-labs/rpc-providers": "4.28.0",
23
- "@dynamic-labs/store": "4.28.0",
24
- "@dynamic-labs/types": "4.28.0",
25
- "@dynamic-labs/utils": "4.28.0",
26
- "@dynamic-labs/wallet-book": "4.28.0",
27
- "@dynamic-labs/wallet-connector-core": "4.28.0",
18
+ "@dynamic-labs/assert-package-version": "4.29.0",
19
+ "@dynamic-labs/iconic": "4.29.0",
20
+ "@dynamic-labs/logger": "4.29.0",
21
+ "@dynamic-labs/multi-wallet": "4.29.0",
22
+ "@dynamic-labs/rpc-providers": "4.29.0",
23
+ "@dynamic-labs/store": "4.29.0",
24
+ "@dynamic-labs/types": "4.29.0",
25
+ "@dynamic-labs/utils": "4.29.0",
26
+ "@dynamic-labs/wallet-book": "4.29.0",
27
+ "@dynamic-labs/wallet-connector-core": "4.29.0",
28
28
  "eventemitter3": "5.0.1"
29
29
  },
30
30
  "devDependencies": {
@@ -108,6 +108,7 @@ require('../../../../store/state/tokenBalances.cjs');
108
108
  require('../../../../store/state/multichainBalances.cjs');
109
109
  require('../../../../shared/utils/functions/getInitialUrl/getInitialUrl.cjs');
110
110
  var usePromptAndFundWithExchange = require('../../../../utils/hooks/usePromptAndFundWithExchange/usePromptAndFundWithExchange.cjs');
111
+ var getDynamicRedirectData = require('../../utils/getDynamicRedirectData/getDynamicRedirectData.cjs');
111
112
 
112
113
  const useRedirectSocialHandler = ({ setSocialProvider, }) => {
113
114
  const { clearStackAndPush } = ViewContext.useViewContext();
@@ -131,13 +132,14 @@ const useRedirectSocialHandler = ({ setSocialProvider, }) => {
131
132
  setShowAuthFlow,
132
133
  ]);
133
134
  useEffectOnce.useEffectOnce(() => {
135
+ var _a;
134
136
  // Do not run on server side
135
137
  if (isSSR.isSSR())
136
138
  return;
137
- // TODO: use PlatformService
138
- const url = new URL(redirectUrl !== null && redirectUrl !== void 0 ? redirectUrl : window.location.href);
139
- const dynamicOauthState = url.searchParams.get('dynamicOauthState');
140
- const dynamicOauthCode = url.searchParams.get('dynamicOauthCode');
139
+ /**
140
+ * Find the redirect data from the first available source
141
+ */
142
+ const { dynamicOauthCode, dynamicOauthState } = (_a = getDynamicRedirectData.getDynamicRedirectData(redirectUrl !== null && redirectUrl !== void 0 ? redirectUrl : null, window.location.href)) !== null && _a !== void 0 ? _a : {};
141
143
  if (!dynamicOauthState || !dynamicOauthCode) {
142
144
  return;
143
145
  }
@@ -104,6 +104,7 @@ import '../../../../store/state/tokenBalances.js';
104
104
  import '../../../../store/state/multichainBalances.js';
105
105
  import '../../../../shared/utils/functions/getInitialUrl/getInitialUrl.js';
106
106
  import { usePromptAmountAndFundWithExchange } from '../../../../utils/hooks/usePromptAndFundWithExchange/usePromptAndFundWithExchange.js';
107
+ import { getDynamicRedirectData } from '../../utils/getDynamicRedirectData/getDynamicRedirectData.js';
107
108
 
108
109
  const useRedirectSocialHandler = ({ setSocialProvider, }) => {
109
110
  const { clearStackAndPush } = useViewContext();
@@ -127,13 +128,14 @@ const useRedirectSocialHandler = ({ setSocialProvider, }) => {
127
128
  setShowAuthFlow,
128
129
  ]);
129
130
  useEffectOnce(() => {
131
+ var _a;
130
132
  // Do not run on server side
131
133
  if (isSSR())
132
134
  return;
133
- // TODO: use PlatformService
134
- const url = new URL(redirectUrl !== null && redirectUrl !== void 0 ? redirectUrl : window.location.href);
135
- const dynamicOauthState = url.searchParams.get('dynamicOauthState');
136
- const dynamicOauthCode = url.searchParams.get('dynamicOauthCode');
135
+ /**
136
+ * Find the redirect data from the first available source
137
+ */
138
+ const { dynamicOauthCode, dynamicOauthState } = (_a = getDynamicRedirectData(redirectUrl !== null && redirectUrl !== void 0 ? redirectUrl : null, window.location.href)) !== null && _a !== void 0 ? _a : {};
137
139
  if (!dynamicOauthState || !dynamicOauthCode) {
138
140
  return;
139
141
  }
@@ -0,0 +1,22 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var getDynamicRedirectDataFromUrl = require('../getDynamicRedirectDataFromUrl/getDynamicRedirectDataFromUrl.cjs');
7
+
8
+ const getDynamicRedirectData = (redirectUrl, href) => {
9
+ if (redirectUrl) {
10
+ const data = getDynamicRedirectDataFromUrl.getDynamicRedirectDataFromUrl(redirectUrl);
11
+ if (data) {
12
+ return data;
13
+ }
14
+ }
15
+ const data = getDynamicRedirectDataFromUrl.getDynamicRedirectDataFromUrl(href);
16
+ if (data) {
17
+ return data;
18
+ }
19
+ return null;
20
+ };
21
+
22
+ exports.getDynamicRedirectData = getDynamicRedirectData;
@@ -0,0 +1,4 @@
1
+ export declare const getDynamicRedirectData: (redirectUrl: string | null, href: string) => {
2
+ dynamicOauthCode: string;
3
+ dynamicOauthState: string;
4
+ } | null;
@@ -0,0 +1,18 @@
1
+ 'use client'
2
+ import { getDynamicRedirectDataFromUrl } from '../getDynamicRedirectDataFromUrl/getDynamicRedirectDataFromUrl.js';
3
+
4
+ const getDynamicRedirectData = (redirectUrl, href) => {
5
+ if (redirectUrl) {
6
+ const data = getDynamicRedirectDataFromUrl(redirectUrl);
7
+ if (data) {
8
+ return data;
9
+ }
10
+ }
11
+ const data = getDynamicRedirectDataFromUrl(href);
12
+ if (data) {
13
+ return data;
14
+ }
15
+ return null;
16
+ };
17
+
18
+ export { getDynamicRedirectData };
@@ -0,0 +1 @@
1
+ export { getDynamicRedirectData } from './getDynamicRedirectData';
@@ -0,0 +1,31 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var logger = require('../../../../shared/logger.cjs');
7
+
8
+ /**
9
+ * Extracts the dynamicOauthCode and dynamicOauthState from the URL
10
+ * if the URL is not a valid URL, returns null
11
+ */
12
+ const getDynamicRedirectDataFromUrl = (url) => {
13
+ if (!url) {
14
+ return null;
15
+ }
16
+ try {
17
+ const urlObj = new URL(url);
18
+ const dynamicOauthCode = urlObj.searchParams.get('dynamicOauthCode');
19
+ const dynamicOauthState = urlObj.searchParams.get('dynamicOauthState');
20
+ if (!dynamicOauthCode || !dynamicOauthState) {
21
+ return null;
22
+ }
23
+ return { dynamicOauthCode, dynamicOauthState };
24
+ }
25
+ catch (error) {
26
+ logger.logger.error('Error extracting dynamic redirect data from URL', error);
27
+ return null;
28
+ }
29
+ };
30
+
31
+ exports.getDynamicRedirectDataFromUrl = getDynamicRedirectDataFromUrl;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Extracts the dynamicOauthCode and dynamicOauthState from the URL
3
+ * if the URL is not a valid URL, returns null
4
+ */
5
+ export declare const getDynamicRedirectDataFromUrl: (url: string) => {
6
+ dynamicOauthCode: string;
7
+ dynamicOauthState: string;
8
+ } | null;
@@ -0,0 +1,27 @@
1
+ 'use client'
2
+ import { logger } from '../../../../shared/logger.js';
3
+
4
+ /**
5
+ * Extracts the dynamicOauthCode and dynamicOauthState from the URL
6
+ * if the URL is not a valid URL, returns null
7
+ */
8
+ const getDynamicRedirectDataFromUrl = (url) => {
9
+ if (!url) {
10
+ return null;
11
+ }
12
+ try {
13
+ const urlObj = new URL(url);
14
+ const dynamicOauthCode = urlObj.searchParams.get('dynamicOauthCode');
15
+ const dynamicOauthState = urlObj.searchParams.get('dynamicOauthState');
16
+ if (!dynamicOauthCode || !dynamicOauthState) {
17
+ return null;
18
+ }
19
+ return { dynamicOauthCode, dynamicOauthState };
20
+ }
21
+ catch (error) {
22
+ logger.error('Error extracting dynamic redirect data from URL', error);
23
+ return null;
24
+ }
25
+ };
26
+
27
+ export { getDynamicRedirectDataFromUrl };
@@ -0,0 +1 @@
1
+ export { getDynamicRedirectDataFromUrl } from './getDynamicRedirectDataFromUrl';