@dynamic-labs/sdk-react-core 3.0.0-alpha.8 → 3.0.0-alpha.9

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,6 @@
1
1
 
2
+ ## [3.0.0-alpha.9](https://github.com/dynamic-labs/DynamicAuth/compare/v3.0.0-alpha.8...v3.0.0-alpha.9) (2024-06-21)
3
+
2
4
  ## [3.0.0-alpha.8](https://github.com/dynamic-labs/DynamicAuth/compare/v3.0.0-alpha.7...v3.0.0-alpha.8) (2024-06-21)
3
5
 
4
6
 
package/package.cjs CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var version = "3.0.0-alpha.8";
6
+ var version = "3.0.0-alpha.9";
7
7
  var dependencies = {
8
8
  "@dynamic-labs/sdk-api-core": "0.0.470",
9
9
  "@hcaptcha/react-hcaptcha": "1.4.4",
package/package.js CHANGED
@@ -1,5 +1,5 @@
1
1
  'use client'
2
- var version = "3.0.0-alpha.8";
2
+ var version = "3.0.0-alpha.9";
3
3
  var dependencies = {
4
4
  "@dynamic-labs/sdk-api-core": "0.0.470",
5
5
  "@hcaptcha/react-hcaptcha": "1.4.4",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/sdk-react-core",
3
- "version": "3.0.0-alpha.8",
3
+ "version": "3.0.0-alpha.9",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/dynamic-labs/dynamic-auth.git",
@@ -17,15 +17,15 @@
17
17
  "react-i18next": "13.5.0",
18
18
  "yup": "0.32.11",
19
19
  "react-international-phone": "4.2.5",
20
- "@dynamic-labs/iconic": "3.0.0-alpha.8",
21
- "@dynamic-labs/logger": "3.0.0-alpha.8",
22
- "@dynamic-labs/multi-wallet": "3.0.0-alpha.8",
23
- "@dynamic-labs/rpc-providers": "3.0.0-alpha.8",
24
- "@dynamic-labs/store": "3.0.0-alpha.8",
25
- "@dynamic-labs/types": "3.0.0-alpha.8",
26
- "@dynamic-labs/utils": "3.0.0-alpha.8",
27
- "@dynamic-labs/wallet-book": "3.0.0-alpha.8",
28
- "@dynamic-labs/wallet-connector-core": "3.0.0-alpha.8",
20
+ "@dynamic-labs/iconic": "3.0.0-alpha.9",
21
+ "@dynamic-labs/logger": "3.0.0-alpha.9",
22
+ "@dynamic-labs/multi-wallet": "3.0.0-alpha.9",
23
+ "@dynamic-labs/rpc-providers": "3.0.0-alpha.9",
24
+ "@dynamic-labs/store": "3.0.0-alpha.9",
25
+ "@dynamic-labs/types": "3.0.0-alpha.9",
26
+ "@dynamic-labs/utils": "3.0.0-alpha.9",
27
+ "@dynamic-labs/wallet-book": "3.0.0-alpha.9",
28
+ "@dynamic-labs/wallet-connector-core": "3.0.0-alpha.9",
29
29
  "eventemitter3": "5.0.1"
30
30
  },
31
31
  "devDependencies": {
package/src/index.cjs CHANGED
@@ -116,6 +116,7 @@ var useEmbeddedWalletAuthenticator = require('./lib/utils/hooks/useEmbeddedWalle
116
116
  var useDynamicModals = require('./lib/utils/hooks/useDynamicModals/useDynamicModals.cjs');
117
117
  var useMfa = require('./lib/utils/hooks/useMfa/useMfa.cjs');
118
118
  var useTokenBalances = require('./lib/utils/hooks/useTokenBalances/useTokenBalances.cjs');
119
+ var useExternalAuth = require('./lib/utils/hooks/useExternalAuth/useExternalAuth.cjs');
119
120
  var useRefreshUser = require('./lib/utils/hooks/useRefreshUser/useRefreshUser.cjs');
120
121
  var DynamicConnectButton = require('./lib/components/DynamicConnectButton/DynamicConnectButton.cjs');
121
122
  require('./lib/components/InlineWidget/InlineWidget.cjs');
@@ -218,6 +219,7 @@ exports.useEmbeddedWalletAuthenticator = useEmbeddedWalletAuthenticator.useEmbed
218
219
  exports.useDynamicModals = useDynamicModals.useDynamicModals;
219
220
  exports.useMfa = useMfa.useMfa;
220
221
  exports.useTokenBalances = useTokenBalances.useTokenBalances;
222
+ exports.useExternalAuth = useExternalAuth.useExternalAuth;
221
223
  exports.useRefreshUser = useRefreshUser.useRefreshUser;
222
224
  exports.DynamicConnectButton = DynamicConnectButton.DynamicConnectButton;
223
225
  exports.IsBrowser = IsBrowser.IsBrowser;
package/src/index.d.ts CHANGED
@@ -119,3 +119,4 @@ export { useConnectWithOtp } from './lib/context/ConnectWithOtpContext';
119
119
  export { useDynamicEvents } from './lib/utils/hooks/events/useDynamicEvents';
120
120
  export { useSwitchNetwork } from './lib/utils/hooks/useSwitchNetwork';
121
121
  export { useReinitialize } from './lib/context/ReinitializeContext';
122
+ export { useExternalAuth } from './lib/utils/hooks/useExternalAuth';
package/src/index.js CHANGED
@@ -112,6 +112,7 @@ export { useEmbeddedWalletAuthenticator } from './lib/utils/hooks/useEmbeddedWal
112
112
  export { useDynamicModals } from './lib/utils/hooks/useDynamicModals/useDynamicModals.js';
113
113
  export { useMfa } from './lib/utils/hooks/useMfa/useMfa.js';
114
114
  export { useTokenBalances } from './lib/utils/hooks/useTokenBalances/useTokenBalances.js';
115
+ export { useExternalAuth } from './lib/utils/hooks/useExternalAuth/useExternalAuth.js';
115
116
  export { useRefreshUser } from './lib/utils/hooks/useRefreshUser/useRefreshUser.js';
116
117
  export { DynamicConnectButton } from './lib/components/DynamicConnectButton/DynamicConnectButton.js';
117
118
  import './lib/components/InlineWidget/InlineWidget.js';
@@ -1,11 +0,0 @@
1
- import { FC } from 'react';
2
- export type Props = {
3
- arrowIconClassName?: string;
4
- className?: string;
5
- destinationAddress: string;
6
- originAddress: string;
7
- textClassName?: string;
8
- walletIconClassName?: string;
9
- walletKey?: string;
10
- };
11
- export declare const TransactionOriginDestination: FC<Props>;
@@ -0,0 +1,44 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var _tslib = require('../../../../../_virtual/_tslib.cjs');
7
+ var utils = require('@dynamic-labs/utils');
8
+ require('@dynamic-labs/sdk-api-core');
9
+ var logger = require('../../../shared/logger.cjs');
10
+ require('@dynamic-labs/iconic');
11
+ require('@dynamic-labs/wallet-connector-core');
12
+ require('react/jsx-runtime');
13
+ require('../../../context/ViewContext/ViewContext.cjs');
14
+ require('react');
15
+ require('@dynamic-labs/wallet-book');
16
+ require('../../../utils/constants/colors.cjs');
17
+ require('../../../utils/constants/values.cjs');
18
+ require('../../../shared/utils/classes/storage/localStorage.cjs');
19
+ require('../../../shared/utils/classes/storage/sessionStorage.cjs');
20
+ require('../../../shared/consts/index.cjs');
21
+ var storeAuthTokenAndUser = require('../../../store/utils/storeAuthTokenAndUser/storeAuthTokenAndUser.cjs');
22
+ var api = require('../api.cjs');
23
+
24
+ const externalAuthSignin = (_a) => _tslib.__awaiter(void 0, [_a], void 0, function* ({ environmentId, externalJwt, }) {
25
+ try {
26
+ const response = yield api.sdkApi().externalAuthSignin({
27
+ environmentId,
28
+ externalAuthSigninRequest: {
29
+ jwt: externalJwt,
30
+ },
31
+ });
32
+ return storeAuthTokenAndUser.storeAuthTokenAndUser(response);
33
+ }
34
+ catch (e) {
35
+ const data = yield e.json();
36
+ logger.logger.error('Error signing in with external JWT', data);
37
+ if (data.code === 'invalid_external_auth') {
38
+ throw new utils.ExternalAuthError(data.code);
39
+ }
40
+ throw new utils.DynamicError(data.error);
41
+ }
42
+ });
43
+
44
+ exports.externalAuthSignin = externalAuthSignin;
@@ -0,0 +1,40 @@
1
+ 'use client'
2
+ import { __awaiter } from '../../../../../_virtual/_tslib.js';
3
+ import { ExternalAuthError, DynamicError } from '@dynamic-labs/utils';
4
+ import '@dynamic-labs/sdk-api-core';
5
+ import { logger } from '../../../shared/logger.js';
6
+ import '@dynamic-labs/iconic';
7
+ import '@dynamic-labs/wallet-connector-core';
8
+ import 'react/jsx-runtime';
9
+ import '../../../context/ViewContext/ViewContext.js';
10
+ import 'react';
11
+ import '@dynamic-labs/wallet-book';
12
+ import '../../../utils/constants/colors.js';
13
+ import '../../../utils/constants/values.js';
14
+ import '../../../shared/utils/classes/storage/localStorage.js';
15
+ import '../../../shared/utils/classes/storage/sessionStorage.js';
16
+ import '../../../shared/consts/index.js';
17
+ import { storeAuthTokenAndUser } from '../../../store/utils/storeAuthTokenAndUser/storeAuthTokenAndUser.js';
18
+ import { sdkApi } from '../api.js';
19
+
20
+ const externalAuthSignin = (_a) => __awaiter(void 0, [_a], void 0, function* ({ environmentId, externalJwt, }) {
21
+ try {
22
+ const response = yield sdkApi().externalAuthSignin({
23
+ environmentId,
24
+ externalAuthSigninRequest: {
25
+ jwt: externalJwt,
26
+ },
27
+ });
28
+ return storeAuthTokenAndUser(response);
29
+ }
30
+ catch (e) {
31
+ const data = yield e.json();
32
+ logger.error('Error signing in with external JWT', data);
33
+ if (data.code === 'invalid_external_auth') {
34
+ throw new ExternalAuthError(data.code);
35
+ }
36
+ throw new DynamicError(data.error);
37
+ }
38
+ });
39
+
40
+ export { externalAuthSignin };
@@ -0,0 +1,115 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var _tslib = require('../../../../../_virtual/_tslib.cjs');
7
+ require('@dynamic-labs/utils');
8
+ require('@dynamic-labs/sdk-api-core');
9
+ require('../../../shared/logger.cjs');
10
+ require('@dynamic-labs/iconic');
11
+ require('@dynamic-labs/wallet-connector-core');
12
+ require('react/jsx-runtime');
13
+ require('../../../context/ViewContext/ViewContext.cjs');
14
+ require('react');
15
+ require('@dynamic-labs/wallet-book');
16
+ require('../../constants/colors.cjs');
17
+ require('../../constants/values.cjs');
18
+ require('../../../shared/utils/classes/storage/localStorage.cjs');
19
+ require('../../../shared/utils/classes/storage/sessionStorage.cjs');
20
+ require('../../../shared/consts/index.cjs');
21
+ require('../../../config/ApiEndpoint.cjs');
22
+ require('@dynamic-labs/multi-wallet');
23
+ require('react-international-phone');
24
+ require('@dynamic-labs/store');
25
+ var dynamicEvents = require('../../../events/dynamicEvents.cjs');
26
+ require('../../../context/DynamicContext/DynamicContext.cjs');
27
+ var useInternalDynamicContext = require('../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext.cjs');
28
+ require('../../../context/CaptchaContext/CaptchaContext.cjs');
29
+ require('../../../context/ErrorContext/ErrorContext.cjs');
30
+ require('../../../context/AccessDeniedContext/AccessDeniedContext.cjs');
31
+ require('../../../context/AccountExistsContext/AccountExistsContext.cjs');
32
+ require('../../../context/UserWalletsContext/UserWalletsContext.cjs');
33
+ require('../../../context/VerificationContext/VerificationContext.cjs');
34
+ require('react-dom');
35
+ require('../../../context/WalletContext/WalletContext.cjs');
36
+ require('../../../context/ThemeContext/ThemeContext.cjs');
37
+ require('../useUserUpdateRequest/useUpdateUser/userFieldsSchema.cjs');
38
+ require('@dynamic-labs/types');
39
+ require('../../../context/LoadingContext/LoadingContext.cjs');
40
+ require('yup');
41
+ require('../../../context/MockContext/MockContext.cjs');
42
+ require('../../../views/CollectUserDataView/useFields.cjs');
43
+ require('../../../context/FieldsStateContext/FieldsStateContext.cjs');
44
+ require('../../../context/UserFieldEditorContext/UserFieldEditorContext.cjs');
45
+ require('@dynamic-labs/rpc-providers');
46
+ require('react-i18next');
47
+ require('../../../components/Accordion/components/AccordionItem/AccordionItem.cjs');
48
+ require('../../../components/Alert/Alert.cjs');
49
+ require('../../../components/ShadowDOM/ShadowDOM.cjs');
50
+ require('../../../components/IconButton/IconButton.cjs');
51
+ require('../../../components/InlineWidget/InlineWidget.cjs');
52
+ require('../../../components/Input/Input.cjs');
53
+ require('../../../components/IsBrowser/IsBrowser.cjs');
54
+ require('../../../components/MenuList/Dropdown/Dropdown.cjs');
55
+ require('../../../components/Transition/ZoomTransition/ZoomTransition.cjs');
56
+ require('../../../components/Transition/SlideInUpTransition/SlideInUpTransition.cjs');
57
+ require('../../../components/Transition/OpacityTransition/OpacityTransition.cjs');
58
+ require('../../../components/OverlayCard/OverlayCardTarget/OverlayCardTarget.cjs');
59
+ require('../../../components/PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.cjs');
60
+ require('../../../components/Popper/Popper/Popper.cjs');
61
+ require('../../../components/Popper/PopperContext/PopperContext.cjs');
62
+ require('react-focus-lock');
63
+ require('qrcode');
64
+ require('formik');
65
+ require('../../../views/WalletList/WalletList.cjs');
66
+ require('../../../context/SocialRedirectContext/SocialRedirectContext.cjs');
67
+ require('../../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.cjs');
68
+ require('../../../locale/locale.cjs');
69
+ require('@hcaptcha/react-hcaptcha');
70
+ require('../../../context/FooterAnimationContext/index.cjs');
71
+ require('../../../context/WalletGroupContext/WalletGroupContext.cjs');
72
+ require('../../../context/MfaSettingsContext/MfaSettingsContext.cjs');
73
+ require('../../../context/IpConfigurationContext/IpConfigurationContext.cjs');
74
+ require('../../../context/PasskeyContext/PasskeyContext.cjs');
75
+ require('../../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.cjs');
76
+ require('../../../widgets/DynamicWidget/context/DynamicWidgetContext.cjs');
77
+ require('../../../views/TransactionConfirmationView/helpers/transactionErrorMessage.cjs');
78
+ require('../../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.cjs');
79
+ var externalAuth = require('../../../data/api/externalAuth/externalAuth.cjs');
80
+
81
+ const useExternalAuth = () => {
82
+ const { environmentId, setShowAuthFlow, setCallback } = useInternalDynamicContext.useInternalDynamicContext();
83
+ /**
84
+ * Uses a properly-conifigured non-Dynamic external JWT and user ID to sign-in to Dynamic.
85
+ * When successful, this should grant the user the ability to access Dynamic's functionality
86
+ * available to only signed-in users, such as wallet linking, etc.
87
+ *
88
+ * @param {string} props.externalJwt - JWT issued outside of Dynamic
89
+ * @param {string} props.externalUserId - User ID to identify the user outside of Dynamic
90
+ *
91
+ * @returns {UserProfile} - User profile for successfully signed in user
92
+ */
93
+ const signInWithExternalJwt = (_a) => _tslib.__awaiter(void 0, [_a], void 0, function* ({ externalUserId, externalJwt, }) {
94
+ try {
95
+ const userProfile = yield externalAuth.externalAuthSignin({
96
+ environmentId,
97
+ externalJwt,
98
+ });
99
+ setCallback('authSuccess');
100
+ setShowAuthFlow(false);
101
+ return userProfile;
102
+ }
103
+ catch (e) {
104
+ dynamicEvents.dynamicEvents.emit('authFailure', {
105
+ externalUserId,
106
+ option: externalUserId,
107
+ type: 'externalAuth',
108
+ }, { error: e });
109
+ throw e;
110
+ }
111
+ });
112
+ return { signInWithExternalJwt };
113
+ };
114
+
115
+ exports.useExternalAuth = useExternalAuth;
@@ -0,0 +1,111 @@
1
+ 'use client'
2
+ import { __awaiter } from '../../../../../_virtual/_tslib.js';
3
+ import '@dynamic-labs/utils';
4
+ import '@dynamic-labs/sdk-api-core';
5
+ import '../../../shared/logger.js';
6
+ import '@dynamic-labs/iconic';
7
+ import '@dynamic-labs/wallet-connector-core';
8
+ import 'react/jsx-runtime';
9
+ import '../../../context/ViewContext/ViewContext.js';
10
+ import 'react';
11
+ import '@dynamic-labs/wallet-book';
12
+ import '../../constants/colors.js';
13
+ import '../../constants/values.js';
14
+ import '../../../shared/utils/classes/storage/localStorage.js';
15
+ import '../../../shared/utils/classes/storage/sessionStorage.js';
16
+ import '../../../shared/consts/index.js';
17
+ import '../../../config/ApiEndpoint.js';
18
+ import '@dynamic-labs/multi-wallet';
19
+ import 'react-international-phone';
20
+ import '@dynamic-labs/store';
21
+ import { dynamicEvents } from '../../../events/dynamicEvents.js';
22
+ import '../../../context/DynamicContext/DynamicContext.js';
23
+ import { useInternalDynamicContext } from '../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext.js';
24
+ import '../../../context/CaptchaContext/CaptchaContext.js';
25
+ import '../../../context/ErrorContext/ErrorContext.js';
26
+ import '../../../context/AccessDeniedContext/AccessDeniedContext.js';
27
+ import '../../../context/AccountExistsContext/AccountExistsContext.js';
28
+ import '../../../context/UserWalletsContext/UserWalletsContext.js';
29
+ import '../../../context/VerificationContext/VerificationContext.js';
30
+ import 'react-dom';
31
+ import '../../../context/WalletContext/WalletContext.js';
32
+ import '../../../context/ThemeContext/ThemeContext.js';
33
+ import '../useUserUpdateRequest/useUpdateUser/userFieldsSchema.js';
34
+ import '@dynamic-labs/types';
35
+ import '../../../context/LoadingContext/LoadingContext.js';
36
+ import 'yup';
37
+ import '../../../context/MockContext/MockContext.js';
38
+ import '../../../views/CollectUserDataView/useFields.js';
39
+ import '../../../context/FieldsStateContext/FieldsStateContext.js';
40
+ import '../../../context/UserFieldEditorContext/UserFieldEditorContext.js';
41
+ import '@dynamic-labs/rpc-providers';
42
+ import 'react-i18next';
43
+ import '../../../components/Accordion/components/AccordionItem/AccordionItem.js';
44
+ import '../../../components/Alert/Alert.js';
45
+ import '../../../components/ShadowDOM/ShadowDOM.js';
46
+ import '../../../components/IconButton/IconButton.js';
47
+ import '../../../components/InlineWidget/InlineWidget.js';
48
+ import '../../../components/Input/Input.js';
49
+ import '../../../components/IsBrowser/IsBrowser.js';
50
+ import '../../../components/MenuList/Dropdown/Dropdown.js';
51
+ import '../../../components/Transition/ZoomTransition/ZoomTransition.js';
52
+ import '../../../components/Transition/SlideInUpTransition/SlideInUpTransition.js';
53
+ import '../../../components/Transition/OpacityTransition/OpacityTransition.js';
54
+ import '../../../components/OverlayCard/OverlayCardTarget/OverlayCardTarget.js';
55
+ import '../../../components/PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.js';
56
+ import '../../../components/Popper/Popper/Popper.js';
57
+ import '../../../components/Popper/PopperContext/PopperContext.js';
58
+ import 'react-focus-lock';
59
+ import 'qrcode';
60
+ import 'formik';
61
+ import '../../../views/WalletList/WalletList.js';
62
+ import '../../../context/SocialRedirectContext/SocialRedirectContext.js';
63
+ import '../../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.js';
64
+ import '../../../locale/locale.js';
65
+ import '@hcaptcha/react-hcaptcha';
66
+ import '../../../context/FooterAnimationContext/index.js';
67
+ import '../../../context/WalletGroupContext/WalletGroupContext.js';
68
+ import '../../../context/MfaSettingsContext/MfaSettingsContext.js';
69
+ import '../../../context/IpConfigurationContext/IpConfigurationContext.js';
70
+ import '../../../context/PasskeyContext/PasskeyContext.js';
71
+ import '../../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.js';
72
+ import '../../../widgets/DynamicWidget/context/DynamicWidgetContext.js';
73
+ import '../../../views/TransactionConfirmationView/helpers/transactionErrorMessage.js';
74
+ import '../../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.js';
75
+ import { externalAuthSignin } from '../../../data/api/externalAuth/externalAuth.js';
76
+
77
+ const useExternalAuth = () => {
78
+ const { environmentId, setShowAuthFlow, setCallback } = useInternalDynamicContext();
79
+ /**
80
+ * Uses a properly-conifigured non-Dynamic external JWT and user ID to sign-in to Dynamic.
81
+ * When successful, this should grant the user the ability to access Dynamic's functionality
82
+ * available to only signed-in users, such as wallet linking, etc.
83
+ *
84
+ * @param {string} props.externalJwt - JWT issued outside of Dynamic
85
+ * @param {string} props.externalUserId - User ID to identify the user outside of Dynamic
86
+ *
87
+ * @returns {UserProfile} - User profile for successfully signed in user
88
+ */
89
+ const signInWithExternalJwt = (_a) => __awaiter(void 0, [_a], void 0, function* ({ externalUserId, externalJwt, }) {
90
+ try {
91
+ const userProfile = yield externalAuthSignin({
92
+ environmentId,
93
+ externalJwt,
94
+ });
95
+ setCallback('authSuccess');
96
+ setShowAuthFlow(false);
97
+ return userProfile;
98
+ }
99
+ catch (e) {
100
+ dynamicEvents.emit('authFailure', {
101
+ externalUserId,
102
+ option: externalUserId,
103
+ type: 'externalAuth',
104
+ }, { error: e });
105
+ throw e;
106
+ }
107
+ });
108
+ return { signInWithExternalJwt };
109
+ };
110
+
111
+ export { useExternalAuth };