@dynamic-labs/sdk-react-core 2.1.0-alpha.18 → 2.1.0-alpha.19

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.
Files changed (93) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/package.cjs +2 -2
  3. package/package.js +2 -2
  4. package/package.json +13 -13
  5. package/src/lib/components/MfaRecoveryIcon/MfaRecoveryIcon.cjs +15 -0
  6. package/src/lib/components/MfaRecoveryIcon/MfaRecoveryIcon.d.ts +2 -0
  7. package/src/lib/components/MfaRecoveryIcon/MfaRecoveryIcon.js +11 -0
  8. package/src/lib/components/MfaRecoveryIcon/index.d.ts +1 -0
  9. package/src/lib/components/Portal/Portal.cjs +0 -1
  10. package/src/lib/components/Portal/Portal.js +0 -1
  11. package/src/lib/components/SocialSignIn/SocialSignIn.cjs +5 -2
  12. package/src/lib/components/SocialSignIn/SocialSignIn.js +5 -2
  13. package/src/lib/components/UserProfile/parts/UserProfileField/UserProfileField.d.ts +1 -1
  14. package/src/lib/components/index.d.ts +1 -0
  15. package/src/lib/context/DynamicContext/DynamicContext.cjs +1 -1
  16. package/src/lib/context/DynamicContext/DynamicContext.js +1 -1
  17. package/src/lib/context/DynamicContext/hooks/useNameService/useNameService.cjs +4 -5
  18. package/src/lib/context/DynamicContext/hooks/useNameService/useNameService.d.ts +3 -2
  19. package/src/lib/context/DynamicContext/hooks/useNameService/useNameService.js +4 -5
  20. package/src/lib/context/PasskeyContext/PasskeyContext.cjs +1 -1
  21. package/src/lib/context/PasskeyContext/PasskeyContext.js +2 -2
  22. package/src/lib/context/ViewContext/types/index.d.ts +1 -1
  23. package/src/lib/data/api/api.cjs +2 -2
  24. package/src/lib/data/api/api.js +2 -2
  25. package/src/lib/data/api/user/user.cjs +3 -0
  26. package/src/lib/data/api/user/user.js +4 -1
  27. package/src/lib/locale/en/translation.cjs +38 -21
  28. package/src/lib/locale/en/translation.d.ts +38 -21
  29. package/src/lib/locale/en/translation.js +38 -21
  30. package/src/lib/modals/SignMessageConfirmationModal/getProperErrorMessage.cjs +19 -2
  31. package/src/lib/modals/SignMessageConfirmationModal/getProperErrorMessage.js +19 -2
  32. package/src/lib/shared/assets/index.d.ts +1 -0
  33. package/src/lib/shared/assets/mfa-recovery-icon.cjs +54 -0
  34. package/src/lib/shared/assets/mfa-recovery-icon.js +30 -0
  35. package/src/lib/shared/utils/functions/lastAuthenticatedAccount/index.d.ts +2 -2
  36. package/src/lib/styles/index.shadow.cjs +1 -1
  37. package/src/lib/styles/index.shadow.js +1 -1
  38. package/src/lib/utils/functions/createUserProfile/createUserProfile.cjs +1 -1
  39. package/src/lib/utils/functions/createUserProfile/createUserProfile.d.ts +2 -1
  40. package/src/lib/utils/functions/createUserProfile/createUserProfile.js +1 -1
  41. package/src/lib/utils/functions/getEnabledSocialSignInProvidersAsProviderEnum/getEnabledSocialSignInProvidersAsProviderEnum.cjs +21 -0
  42. package/src/lib/utils/functions/getEnabledSocialSignInProvidersAsProviderEnum/getEnabledSocialSignInProvidersAsProviderEnum.js +17 -0
  43. package/src/lib/utils/functions/getUserProfileFields/getUserProfileFields.cjs +6 -3
  44. package/src/lib/utils/functions/getUserProfileFields/getUserProfileFields.d.ts +2 -1
  45. package/src/lib/utils/functions/getUserProfileFields/getUserProfileFields.js +7 -4
  46. package/src/lib/utils/functions/validateMfaRecoveryCode/index.d.ts +1 -0
  47. package/src/lib/utils/functions/validateMfaRecoveryCode/validateMfaRecoveryCode.cjs +11 -0
  48. package/src/lib/utils/functions/validateMfaRecoveryCode/validateMfaRecoveryCode.d.ts +1 -0
  49. package/src/lib/utils/functions/validateMfaRecoveryCode/validateMfaRecoveryCode.js +7 -0
  50. package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.cjs +5 -3
  51. package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.js +5 -3
  52. package/src/lib/utils/hooks/useDynamicLayoutData/useDynamicLayoutData.cjs +8 -0
  53. package/src/lib/utils/hooks/useDynamicLayoutData/useDynamicLayoutData.js +8 -0
  54. package/src/lib/utils/hooks/useDynamicModals/useDynamicModals.cjs +10 -1
  55. package/src/lib/utils/hooks/useDynamicModals/useDynamicModals.d.ts +5 -0
  56. package/src/lib/utils/hooks/useDynamicModals/useDynamicModals.js +10 -1
  57. package/src/lib/utils/hooks/useKYCFlag/useKYCFlag.cjs +1 -0
  58. package/src/lib/utils/hooks/useKYCFlag/useKYCFlag.js +1 -0
  59. package/src/lib/utils/hooks/useMfaModals/index.d.ts +1 -0
  60. package/src/lib/utils/hooks/useMfaModals/useMfaModals.cjs +131 -0
  61. package/src/lib/utils/hooks/useMfaModals/useMfaModals.d.ts +8 -0
  62. package/src/lib/utils/hooks/useMfaModals/useMfaModals.js +127 -0
  63. package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.cjs +24 -3
  64. package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.d.ts +1 -0
  65. package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.js +24 -3
  66. package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.cjs +8 -4
  67. package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.d.ts +3 -3
  68. package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.js +8 -4
  69. package/src/lib/utils/hooks/useUserAuth/useUserAuth.cjs +9 -2
  70. package/src/lib/utils/hooks/useUserAuth/useUserAuth.js +10 -3
  71. package/src/lib/utils/hooks/useUserUpdateRequest/useUpdateUser/useUpdateUser.cjs +7 -2
  72. package/src/lib/utils/hooks/useUserUpdateRequest/useUpdateUser/useUpdateUser.js +7 -2
  73. package/src/lib/views/EmailVerification/EmailVerification.cjs +1 -10
  74. package/src/lib/views/EmailVerification/EmailVerification.js +1 -10
  75. package/src/lib/views/FarcasterQrCodeView/FarcasterQrCodeView.cjs +1 -1
  76. package/src/lib/views/FarcasterQrCodeView/FarcasterQrCodeView.js +1 -1
  77. package/src/lib/views/LoginView/sections/SocialSignInSection/DynamicSocialSignIn/DynamicSocialSignIn.cjs +5 -2
  78. package/src/lib/views/LoginView/sections/SocialSignInSection/DynamicSocialSignIn/DynamicSocialSignIn.js +5 -2
  79. package/src/lib/views/MfaRecoveryView/MfaRecoveryView.cjs +116 -0
  80. package/src/lib/views/MfaRecoveryView/MfaRecoveryView.d.ts +2 -0
  81. package/src/lib/views/MfaRecoveryView/MfaRecoveryView.js +112 -0
  82. package/src/lib/views/MfaRecoveryView/index.d.ts +1 -0
  83. package/src/lib/views/viewToComponentMap.cjs +2 -2
  84. package/src/lib/views/viewToComponentMap.d.ts +2 -2
  85. package/src/lib/views/viewToComponentMap.js +2 -2
  86. package/src/lib/widgets/DynamicBridgeWidget/views/ProfileView/ProfileView.cjs +5 -1
  87. package/src/lib/widgets/DynamicBridgeWidget/views/ProfileView/ProfileView.js +5 -1
  88. package/src/lib/widgets/DynamicWidget/prompts/PendingConnectionModal/PendingConnectionModal.cjs +3 -3
  89. package/src/lib/widgets/DynamicWidget/prompts/PendingConnectionModal/PendingConnectionModal.js +3 -3
  90. package/src/lib/views/EmailUpdate/EmailUpdate.cjs +0 -131
  91. package/src/lib/views/EmailUpdate/EmailUpdate.d.ts +0 -2
  92. package/src/lib/views/EmailUpdate/EmailUpdate.js +0 -127
  93. package/src/lib/views/EmailUpdate/index.d.ts +0 -1
package/CHANGELOG.md CHANGED
@@ -1,4 +1,20 @@
1
1
 
2
+ ## [2.1.0-alpha.19](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.18...v2.1.0-alpha.19) (2024-05-17)
3
+
4
+
5
+ ### Features
6
+
7
+ * add createUserProfileFromSDKUser ([#5596](https://github.com/dynamic-labs/DynamicAuth/issues/5596)) ([d37a1b4](https://github.com/dynamic-labs/DynamicAuth/commit/d37a1b4119f5ff4fff1e987d157f6d5abf105a8b))
8
+ * add headless social sign-in ([#5439](https://github.com/dynamic-labs/DynamicAuth/issues/5439)) ([e32fdf8](https://github.com/dynamic-labs/DynamicAuth/commit/e32fdf863718d661b90b592c8df734e92386ddf3))
9
+ * fetch custom fields in profile and update user ([#5627](https://github.com/dynamic-labs/DynamicAuth/issues/5627)) ([3940c25](https://github.com/dynamic-labs/DynamicAuth/commit/3940c2542bb330f3ed9a8eb98eed9d05c8fcb03a))
10
+
11
+
12
+ ### Bug Fixes
13
+
14
+ * include applinks details to AASA ([#5635](https://github.com/dynamic-labs/DynamicAuth/issues/5635)) ([ce94fec](https://github.com/dynamic-labs/DynamicAuth/commit/ce94fec80adbb3eb4efcb79d1aa2cc6eb35eab6f))
15
+ * include the appOrigin to every api call to create correct passkey ([#5636](https://github.com/dynamic-labs/DynamicAuth/issues/5636)) ([ee64df3](https://github.com/dynamic-labs/DynamicAuth/commit/ee64df3b90037bd29cca161e601973ef202c58f0))
16
+ * use PromptModal when using the DynamicMultiWalletPromptsWidget for pending connection views ([#5594](https://github.com/dynamic-labs/DynamicAuth/issues/5594)) ([c095b6e](https://github.com/dynamic-labs/DynamicAuth/commit/c095b6e4c974f02cfe632963be92d16bb201dfa5))
17
+
2
18
  ## [2.1.0-alpha.18](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.17...v2.1.0-alpha.18) (2024-05-15)
3
19
 
4
20
  ## [2.1.0-alpha.17](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.16...v2.1.0-alpha.17) (2024-05-15)
package/package.cjs CHANGED
@@ -3,9 +3,9 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var version = "2.1.0-alpha.18";
6
+ var version = "2.1.0-alpha.19";
7
7
  var dependencies = {
8
- "@dynamic-labs/sdk-api-core": "0.0.433",
8
+ "@dynamic-labs/sdk-api-core": "0.0.444",
9
9
  "@hcaptcha/react-hcaptcha": "1.4.4",
10
10
  "country-list": "2.3.0",
11
11
  formik: "2.2.9",
package/package.js CHANGED
@@ -1,7 +1,7 @@
1
1
  'use client'
2
- var version = "2.1.0-alpha.18";
2
+ var version = "2.1.0-alpha.19";
3
3
  var dependencies = {
4
- "@dynamic-labs/sdk-api-core": "0.0.433",
4
+ "@dynamic-labs/sdk-api-core": "0.0.444",
5
5
  "@hcaptcha/react-hcaptcha": "1.4.4",
6
6
  "country-list": "2.3.0",
7
7
  formik: "2.2.9",
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@dynamic-labs/sdk-react-core",
3
- "version": "2.1.0-alpha.18",
3
+ "version": "2.1.0-alpha.19",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/dynamic-labs/DynamicAuth.git",
7
7
  "directory": "packages/sdk-react-core"
8
8
  },
9
9
  "dependencies": {
10
- "@dynamic-labs/sdk-api-core": "0.0.433",
10
+ "@dynamic-labs/sdk-api-core": "0.0.444",
11
11
  "@hcaptcha/react-hcaptcha": "1.4.4",
12
12
  "country-list": "2.3.0",
13
13
  "formik": "2.2.9",
@@ -18,17 +18,17 @@
18
18
  "yup": "0.32.11",
19
19
  "react-international-phone": "4.2.5",
20
20
  "zustand": "4.5.2",
21
- "@dynamic-labs/iconic": "2.1.0-alpha.18",
22
- "@dynamic-labs/logger": "2.1.0-alpha.18",
23
- "@dynamic-labs/multi-wallet": "2.1.0-alpha.18",
24
- "@dynamic-labs/rpc-provider-ethereum": "2.1.0-alpha.18",
25
- "@dynamic-labs/rpc-provider-solana": "2.1.0-alpha.18",
26
- "@dynamic-labs/rpc-providers": "2.1.0-alpha.18",
27
- "@dynamic-labs/types": "2.1.0-alpha.18",
28
- "@dynamic-labs/utils": "2.1.0-alpha.18",
29
- "@dynamic-labs/viem-utils": "2.1.0-alpha.18",
30
- "@dynamic-labs/wallet-book": "2.1.0-alpha.18",
31
- "@dynamic-labs/wallet-connector-core": "2.1.0-alpha.18",
21
+ "@dynamic-labs/iconic": "2.1.0-alpha.19",
22
+ "@dynamic-labs/logger": "2.1.0-alpha.19",
23
+ "@dynamic-labs/multi-wallet": "2.1.0-alpha.19",
24
+ "@dynamic-labs/rpc-provider-ethereum": "2.1.0-alpha.19",
25
+ "@dynamic-labs/rpc-provider-solana": "2.1.0-alpha.19",
26
+ "@dynamic-labs/rpc-providers": "2.1.0-alpha.19",
27
+ "@dynamic-labs/types": "2.1.0-alpha.19",
28
+ "@dynamic-labs/utils": "2.1.0-alpha.19",
29
+ "@dynamic-labs/viem-utils": "2.1.0-alpha.19",
30
+ "@dynamic-labs/wallet-book": "2.1.0-alpha.19",
31
+ "@dynamic-labs/wallet-connector-core": "2.1.0-alpha.19",
32
32
  "eventemitter3": "5.0.1"
33
33
  },
34
34
  "devDependencies": {
@@ -0,0 +1,15 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var jsxRuntime = require('react/jsx-runtime');
7
+ var Icon = require('../Icon/Icon.cjs');
8
+ require('@dynamic-labs/iconic');
9
+ require('../../context/ViewContext/ViewContext.cjs');
10
+ require('react');
11
+ var mfaRecoveryIcon = require('../../shared/assets/mfa-recovery-icon.cjs');
12
+
13
+ const MfaRecoveryScreenIcon = (props) => (jsxRuntime.jsx(Icon.Icon, { color: 'brand-primary', children: jsxRuntime.jsx(mfaRecoveryIcon.ReactComponent, Object.assign({}, props, { "data-testid": 'mfa-recovery-icon' })) }));
14
+
15
+ exports.MfaRecoveryScreenIcon = MfaRecoveryScreenIcon;
@@ -0,0 +1,2 @@
1
+ import { FC } from 'react';
2
+ export declare const MfaRecoveryScreenIcon: FC;
@@ -0,0 +1,11 @@
1
+ 'use client'
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { Icon } from '../Icon/Icon.js';
4
+ import '@dynamic-labs/iconic';
5
+ import '../../context/ViewContext/ViewContext.js';
6
+ import 'react';
7
+ import { ReactComponent as SvgMfaRecoveryIcon } from '../../shared/assets/mfa-recovery-icon.js';
8
+
9
+ const MfaRecoveryScreenIcon = (props) => (jsx(Icon, { color: 'brand-primary', children: jsx(SvgMfaRecoveryIcon, Object.assign({}, props, { "data-testid": 'mfa-recovery-icon' })) }));
10
+
11
+ export { MfaRecoveryScreenIcon };
@@ -0,0 +1 @@
1
+ export { MfaRecoveryScreenIcon } from './MfaRecoveryIcon';
@@ -83,7 +83,6 @@ const ModalComponent = ({ children, handleClose, withBackdrop = true, zIndex, wh
83
83
  const { view } = ViewContext.useViewContext();
84
84
  const shouldCloseOnBackdropClick = (view === null || view === void 0 ? void 0 : view.type) &&
85
85
  view.type !== 'collect-user-data' &&
86
- view.type !== 'update-email' &&
87
86
  view.type !== 'login-with-email-verification' &&
88
87
  view.type !== 'login-with-sms-verification' &&
89
88
  view.type !== 'verify-sms' &&
@@ -75,7 +75,6 @@ const ModalComponent = ({ children, handleClose, withBackdrop = true, zIndex, wh
75
75
  const { view } = useViewContext();
76
76
  const shouldCloseOnBackdropClick = (view === null || view === void 0 ? void 0 : view.type) &&
77
77
  view.type !== 'collect-user-data' &&
78
- view.type !== 'update-email' &&
79
78
  view.type !== 'login-with-email-verification' &&
80
79
  view.type !== 'login-with-sms-verification' &&
81
80
  view.type !== 'verify-sms' &&
@@ -5,6 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
6
  var jsxRuntime = require('react/jsx-runtime');
7
7
  var React = require('react');
8
+ var reactI18next = require('react-i18next');
8
9
  var iconic = require('@dynamic-labs/iconic');
9
10
  require('@dynamic-labs/sdk-api-core');
10
11
  var logger = require('../../shared/logger.cjs');
@@ -42,7 +43,6 @@ require('@dynamic-labs/types');
42
43
  require('../../context/LoadingContext/LoadingContext.cjs');
43
44
  require('yup');
44
45
  require('../../context/MockContext/MockContext.cjs');
45
- require('react-i18next');
46
46
  require('../../context/FieldsStateContext/FieldsStateContext.cjs');
47
47
  require('../../utils/hooks/useUserUpdateRequest/useUpdateUser/useUpdateUser.cjs');
48
48
  require('../../context/UserFieldEditorContext/UserFieldEditorContext.cjs');
@@ -86,6 +86,7 @@ require('../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/
86
86
 
87
87
  const INTERNAL_MAX_INLINE_ITEMS = 5;
88
88
  const SocialSignIn = ({ providers, onSelectProvider, isLoading, selectedProvider, testId, defaultProvider, numOfItemsToDisplay: externalMaxInlineItems = 5, collapsedLayout, }) => {
89
+ const { t } = reactI18next.useTranslation();
89
90
  const iconThemeVariant = useIconThemeVariant.useIconThemeVariant();
90
91
  // ====================================
91
92
  // INLINE VS DEFAULT PROVIDERS
@@ -123,7 +124,9 @@ const SocialSignIn = ({ providers, onSelectProvider, isLoading, selectedProvider
123
124
  'social-sign-in--tile__full-width': fullWidth,
124
125
  }), children: [jsxRuntime.jsx(IconWithSpinner.IconWithSpinner, { Icon:
125
126
  // eslint-disable-next-line react/jsx-wrap-multilines
126
- jsxRuntime.jsx(iconic.SocialIcon, { name: getProviderAsString(provider), variant: iconThemeVariant }), isSpinning: selectedProvider === provider, iconSize: 32 }), !insideCard && fullWidth && (jsxRuntime.jsxs(Typography.Typography, { variant: 'button_primary', children: ["Continue with ", providerLabel.providerLabel(provider)] }))] }, getProviderAsString(provider)));
127
+ jsxRuntime.jsx(iconic.SocialIcon, { name: getProviderAsString(provider), variant: iconThemeVariant }), isSpinning: selectedProvider === provider, iconSize: 32 }), !insideCard && fullWidth && (jsxRuntime.jsx(Typography.Typography, { variant: 'button_primary', copykey: 'dyn_login.social.button_label', children: t('dyn_login.social.button_label', {
128
+ provider: providerLabel.providerLabel(provider),
129
+ }) }))] }, getProviderAsString(provider)));
127
130
  if (!providers.length) {
128
131
  logger.logger.error('Failed to render SocialSignInSection - no social providers enabled');
129
132
  return null;
@@ -1,6 +1,7 @@
1
1
  'use client'
2
2
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
3
3
  import { useState } from 'react';
4
+ import { useTranslation } from 'react-i18next';
4
5
  import { SocialIcon } from '@dynamic-labs/iconic';
5
6
  import '@dynamic-labs/sdk-api-core';
6
7
  import { logger } from '../../shared/logger.js';
@@ -38,7 +39,6 @@ import '@dynamic-labs/types';
38
39
  import '../../context/LoadingContext/LoadingContext.js';
39
40
  import 'yup';
40
41
  import '../../context/MockContext/MockContext.js';
41
- import 'react-i18next';
42
42
  import '../../context/FieldsStateContext/FieldsStateContext.js';
43
43
  import '../../utils/hooks/useUserUpdateRequest/useUpdateUser/useUpdateUser.js';
44
44
  import '../../context/UserFieldEditorContext/UserFieldEditorContext.js';
@@ -82,6 +82,7 @@ import '../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/P
82
82
 
83
83
  const INTERNAL_MAX_INLINE_ITEMS = 5;
84
84
  const SocialSignIn = ({ providers, onSelectProvider, isLoading, selectedProvider, testId, defaultProvider, numOfItemsToDisplay: externalMaxInlineItems = 5, collapsedLayout, }) => {
85
+ const { t } = useTranslation();
85
86
  const iconThemeVariant = useIconThemeVariant();
86
87
  // ====================================
87
88
  // INLINE VS DEFAULT PROVIDERS
@@ -119,7 +120,9 @@ const SocialSignIn = ({ providers, onSelectProvider, isLoading, selectedProvider
119
120
  'social-sign-in--tile__full-width': fullWidth,
120
121
  }), children: [jsx(IconWithSpinner, { Icon:
121
122
  // eslint-disable-next-line react/jsx-wrap-multilines
122
- jsx(SocialIcon, { name: getProviderAsString(provider), variant: iconThemeVariant }), isSpinning: selectedProvider === provider, iconSize: 32 }), !insideCard && fullWidth && (jsxs(Typography, { variant: 'button_primary', children: ["Continue with ", providerLabel(provider)] }))] }, getProviderAsString(provider)));
123
+ jsx(SocialIcon, { name: getProviderAsString(provider), variant: iconThemeVariant }), isSpinning: selectedProvider === provider, iconSize: 32 }), !insideCard && fullWidth && (jsx(Typography, { variant: 'button_primary', copykey: 'dyn_login.social.button_label', children: t('dyn_login.social.button_label', {
124
+ provider: providerLabel(provider),
125
+ }) }))] }, getProviderAsString(provider)));
123
126
  if (!providers.length) {
124
127
  logger.error('Failed to render SocialSignInSection - no social providers enabled');
125
128
  return null;
@@ -4,7 +4,7 @@ export type UserProfileFieldProps = {
4
4
  disabled?: boolean;
5
5
  label?: string;
6
6
  name: string;
7
- value?: string | boolean | null;
7
+ value: string | boolean | null | undefined;
8
8
  autoComplete?: string;
9
9
  } & CopyKey;
10
10
  export declare const UserProfileField: ({ name, label, value, copykey, autoComplete, }: UserProfileFieldProps) => JSX.Element;
@@ -11,6 +11,7 @@ export * from './CopyButton';
11
11
  export * from './Divider';
12
12
  export * from './DynamicConnectButton';
13
13
  export * from './EmailIcon';
14
+ export * from './MfaRecoveryIcon';
14
15
  export * from './EnterTileAnimation';
15
16
  export * from './ErrorContainer';
16
17
  export * from './FormFieldLabel';
@@ -303,8 +303,8 @@ const InnerDynamicContextProvider = ({ children, theme, settings: settings$1, lo
303
303
  walletBook: walletBook$1,
304
304
  });
305
305
  const { getNameService, removeConnectedNameService } = useNameService.useNameService({
306
- authToken,
307
306
  currentWallet: primaryWallet !== null && primaryWallet !== void 0 ? primaryWallet : connectedWallets[0],
307
+ user,
308
308
  });
309
309
  const { clearAllWalletConnectSessions } = useClearWalletConnectSessions.useClearWalletConnectSessions({
310
310
  connectors: walletConnectors,
@@ -299,8 +299,8 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
299
299
  walletBook,
300
300
  });
301
301
  const { getNameService, removeConnectedNameService } = useNameService({
302
- authToken,
303
302
  currentWallet: primaryWallet !== null && primaryWallet !== void 0 ? primaryWallet : connectedWallets[0],
303
+ user,
304
304
  });
305
305
  const { clearAllWalletConnectSessions } = useClearWalletConnectSessions({
306
306
  connectors: walletConnectors,
@@ -5,7 +5,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
6
  var _tslib = require('../../../../../../_virtual/_tslib.cjs');
7
7
  var React = require('react');
8
- var decodeJwt = require('../../../../shared/utils/functions/decodeJwt/decodeJwt.cjs');
9
8
  require('@dynamic-labs/sdk-api-core');
10
9
  require('../../../../shared/logger.cjs');
11
10
  require('@dynamic-labs/iconic');
@@ -22,7 +21,7 @@ require('@dynamic-labs/utils');
22
21
  require('../../../../shared/consts/index.cjs');
23
22
  var getWalletVerifiedCredential = require('../../../../utils/functions/getWalletVerifiedCredential/getWalletVerifiedCredential.cjs');
24
23
 
25
- const useNameService = ({ currentWallet, authToken }) => {
24
+ const useNameService = ({ currentWallet, user }) => {
26
25
  const [connectedNameService, setConnectedNameService, removeConnectedNameService,] = useLocalStorage.useLocalStorage(localStorage.CONNECTED_WALLET_NAME_SERVICE, null);
27
26
  const lastFetchedNameServiceAddress = React.useRef();
28
27
  const lastFetchedNameServiceNetwork = React.useRef();
@@ -60,16 +59,16 @@ const useNameService = ({ currentWallet, authToken }) => {
60
59
  return undefined;
61
60
  }), [setConnectedNameService]);
62
61
  const getNameService = (address) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
63
- var _a, _b;
62
+ var _a;
64
63
  if (!currentWallet) {
65
64
  return;
66
65
  }
67
66
  const network = yield currentWallet.connector.getNetwork();
68
- const verifiedCredentials = (_a = decodeJwt.decodeJwt(authToken)) === null || _a === void 0 ? void 0 : _a.verifiedCredentials;
67
+ const verifiedCredentials = user === null || user === void 0 ? void 0 : user.verifiedCredentials;
69
68
  //if there are verified credentials, check if there is a name service for the current wallet
70
69
  if (verifiedCredentials) {
71
70
  const verifiedCredential = getWalletVerifiedCredential.getWalletVerifiedCredential(currentWallet === null || currentWallet === void 0 ? void 0 : currentWallet.address, verifiedCredentials, currentWallet.chain);
72
- if (verifiedCredential && ((_b = verifiedCredential.nameService) === null || _b === void 0 ? void 0 : _b.name)) {
71
+ if (verifiedCredential && ((_a = verifiedCredential.nameService) === null || _a === void 0 ? void 0 : _a.name)) {
73
72
  return verifiedCredential.nameService;
74
73
  }
75
74
  }
@@ -1,10 +1,11 @@
1
1
  import { NameServiceData } from '@dynamic-labs/sdk-api-core';
2
2
  import { Wallet } from '../../../../shared';
3
+ import { UserProfile } from '../../../../..';
3
4
  type Props = {
4
- authToken: string | undefined;
5
+ user: UserProfile | undefined;
5
6
  currentWallet: Wallet | null;
6
7
  };
7
- export declare const useNameService: ({ currentWallet, authToken }: Props) => {
8
+ export declare const useNameService: ({ currentWallet, user }: Props) => {
8
9
  getNameService: (address?: string) => Promise<NameServiceData | undefined>;
9
10
  removeConnectedNameService: () => void;
10
11
  };
@@ -1,7 +1,6 @@
1
1
  'use client'
2
2
  import { __awaiter } from '../../../../../../_virtual/_tslib.js';
3
3
  import { useRef, useCallback } from 'react';
4
- import { decodeJwt } from '../../../../shared/utils/functions/decodeJwt/decodeJwt.js';
5
4
  import '@dynamic-labs/sdk-api-core';
6
5
  import '../../../../shared/logger.js';
7
6
  import '@dynamic-labs/iconic';
@@ -18,7 +17,7 @@ import '@dynamic-labs/utils';
18
17
  import '../../../../shared/consts/index.js';
19
18
  import { getWalletVerifiedCredential } from '../../../../utils/functions/getWalletVerifiedCredential/getWalletVerifiedCredential.js';
20
19
 
21
- const useNameService = ({ currentWallet, authToken }) => {
20
+ const useNameService = ({ currentWallet, user }) => {
22
21
  const [connectedNameService, setConnectedNameService, removeConnectedNameService,] = useLocalStorage(CONNECTED_WALLET_NAME_SERVICE, null);
23
22
  const lastFetchedNameServiceAddress = useRef();
24
23
  const lastFetchedNameServiceNetwork = useRef();
@@ -56,16 +55,16 @@ const useNameService = ({ currentWallet, authToken }) => {
56
55
  return undefined;
57
56
  }), [setConnectedNameService]);
58
57
  const getNameService = (address) => __awaiter(void 0, void 0, void 0, function* () {
59
- var _a, _b;
58
+ var _a;
60
59
  if (!currentWallet) {
61
60
  return;
62
61
  }
63
62
  const network = yield currentWallet.connector.getNetwork();
64
- const verifiedCredentials = (_a = decodeJwt(authToken)) === null || _a === void 0 ? void 0 : _a.verifiedCredentials;
63
+ const verifiedCredentials = user === null || user === void 0 ? void 0 : user.verifiedCredentials;
65
64
  //if there are verified credentials, check if there is a name service for the current wallet
66
65
  if (verifiedCredentials) {
67
66
  const verifiedCredential = getWalletVerifiedCredential(currentWallet === null || currentWallet === void 0 ? void 0 : currentWallet.address, verifiedCredentials, currentWallet.chain);
68
- if (verifiedCredential && ((_b = verifiedCredential.nameService) === null || _b === void 0 ? void 0 : _b.name)) {
67
+ if (verifiedCredential && ((_a = verifiedCredential.nameService) === null || _a === void 0 ? void 0 : _a.name)) {
69
68
  return verifiedCredential.nameService;
70
69
  }
71
70
  }
@@ -133,7 +133,7 @@ const PasskeyContextProviderWithBrowser = ({ children, }) => {
133
133
  if (typeof window === 'undefined') {
134
134
  return false;
135
135
  }
136
- const { location: { hostname }, } = window;
136
+ const hostname = utils.LocationService.getHostname();
137
137
  if (!getUserPasskeysResult.data)
138
138
  return false;
139
139
  return getUserPasskeysResult.data.some((passkey) => {
@@ -2,7 +2,7 @@
2
2
  import { __awaiter } from '../../../../_virtual/_tslib.js';
3
3
  import { jsx } from 'react/jsx-runtime';
4
4
  import { createContext, useContext, useState, useMemo, useCallback } from 'react';
5
- import { getTLD } from '@dynamic-labs/utils';
5
+ import { LocationService, getTLD } from '@dynamic-labs/utils';
6
6
  import '../../events/dynamicEvents.js';
7
7
  import '../DynamicContext/DynamicContext.js';
8
8
  import '@dynamic-labs/sdk-api-core';
@@ -129,7 +129,7 @@ const PasskeyContextProviderWithBrowser = ({ children, }) => {
129
129
  if (typeof window === 'undefined') {
130
130
  return false;
131
131
  }
132
- const { location: { hostname }, } = window;
132
+ const hostname = LocationService.getHostname();
133
133
  if (!getUserPasskeysResult.data)
134
134
  return false;
135
135
  return getUserPasskeysResult.data.some((passkey) => {
@@ -1,6 +1,6 @@
1
1
  import { FC } from 'react';
2
2
  import { viewToComponentMap } from '../../../views/viewToComponentMap';
3
- export type ViewType = 'select-hardware-wallet' | 'captcha' | 'chainalysis-blocked-wallet' | 'collect-user-data' | 'collect-user-data-login-no-wallet' | 'login-with-email-or-wallet-full-wallet-list' | 'login-with-email-or-wallet' | 'login-with-wallet-only' | 'login-with-email-verification' | 'login-with-sms-verification' | 'network-not-supported' | 'network-not-supported-manual' | 'no-access' | 'no-qr-not-installed' | 'pending-connect' | 'pending-signature-without-back-button' | 'pending-signature' | 'qr-code' | 'update-email' | 'verify-email' | 'verify-sms' | 'wallet-connect-mobile-wallets-list' | 'wallet-list' | 'multi-wallet-wallet-list' | 'wallet-sign' | 'wallet-used' | 'wallet-group' | 'select-wallet-in-wallet-group' | 'wait-for-email-confirmation-view' | 'email-wallet-otp-verification-view' | 'social-redirect-view' | 'wallet-locked-view' | 'social-wrong-account' | 'gate-blocked-wallet' | 'bridge-welcome' | 'bridge-summary' | 'bridge-next-wallet-connection' | 'account-exists' | 'merge-user-accounts' | 'merge-user-accounts-conflicts' | 'merge-user-accounts-with-same-email' | 'mfa-choose-device' | 'mfa-secure-device' | 'mfa-verification' | 'mfa-display-backup-codes' | 'wallet-cannot-be-transferred' | 'passkey-intro' | 'passkey-recovery-add-email' | 'passkey-recovery-start' | 'passkey-recovery-bundle' | 'passkey-recovery-complete' | 'passkey-new-domain-detected' | 'embedded-reveal-view' | 'embedded-reveal-account-view' | 'embedded-wallet-auth-choice' | 'rename-passkey' | 'wallet-redirect-view' | 'create-password-view' | 'wallet-claim-intro' | 'farcaster-connect-view';
3
+ export type ViewType = 'select-hardware-wallet' | 'captcha' | 'chainalysis-blocked-wallet' | 'collect-user-data' | 'collect-user-data-login-no-wallet' | 'login-with-email-or-wallet-full-wallet-list' | 'login-with-email-or-wallet' | 'login-with-wallet-only' | 'login-with-email-verification' | 'login-with-sms-verification' | 'network-not-supported' | 'network-not-supported-manual' | 'no-access' | 'no-qr-not-installed' | 'pending-connect' | 'pending-signature-without-back-button' | 'pending-signature' | 'qr-code' | 'verify-email' | 'verify-sms' | 'wallet-connect-mobile-wallets-list' | 'wallet-list' | 'multi-wallet-wallet-list' | 'wallet-sign' | 'wallet-used' | 'wallet-group' | 'select-wallet-in-wallet-group' | 'wait-for-email-confirmation-view' | 'email-wallet-otp-verification-view' | 'social-redirect-view' | 'wallet-locked-view' | 'social-wrong-account' | 'gate-blocked-wallet' | 'bridge-welcome' | 'bridge-summary' | 'bridge-next-wallet-connection' | 'account-exists' | 'merge-user-accounts' | 'merge-user-accounts-conflicts' | 'merge-user-accounts-with-same-email' | 'mfa-choose-device' | 'mfa-recovery' | 'mfa-secure-device' | 'mfa-verification' | 'mfa-display-backup-codes' | 'wallet-cannot-be-transferred' | 'passkey-intro' | 'passkey-recovery-add-email' | 'passkey-recovery-start' | 'passkey-recovery-bundle' | 'passkey-recovery-complete' | 'passkey-new-domain-detected' | 'embedded-reveal-view' | 'embedded-reveal-account-view' | 'embedded-wallet-auth-choice' | 'rename-passkey' | 'wallet-redirect-view' | 'create-password-view' | 'wallet-claim-intro' | 'farcaster-connect-view';
4
4
  export type ViewMapConstraint = Record<ViewType, FC<any>>;
5
5
  type ComponentProps<T extends FC<any>> = T extends FC<infer P> ? P : never;
6
6
  export type ViewMap = typeof viewToComponentMap;
@@ -4,6 +4,7 @@
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
6
  var sdkApiCore = require('@dynamic-labs/sdk-api-core');
7
+ var utils = require('@dynamic-labs/utils');
7
8
  var version = require('../../../version.cjs');
8
9
  var ApiEndpoint = require('../../config/ApiEndpoint.cjs');
9
10
  require('@dynamic-labs/wallet-connector-core');
@@ -16,7 +17,6 @@ require('@dynamic-labs/wallet-book');
16
17
  require('../../utils/constants/colors.cjs');
17
18
  require('../../utils/constants/values.cjs');
18
19
  require('../../shared/utils/classes/storage/localStorage.cjs');
19
- require('@dynamic-labs/utils');
20
20
  require('../../shared/consts/index.cjs');
21
21
  require('../../../../_virtual/_tslib.cjs');
22
22
  require('@dynamic-labs/multi-wallet');
@@ -41,7 +41,7 @@ const sdkApi = () => {
41
41
  }
42
42
  settings.headers['x-dyn-version'] = `WalletKit/${version.VERSION}`;
43
43
  settings.headers['x-dyn-api-version'] = `API/${version.API_VERSION}`;
44
- return new sdkApiCore.SDKApi(new sdkApiCore.Configuration(settings));
44
+ return new sdkApiCore.SDKApi(new sdkApiCore.Configuration(Object.assign(Object.assign({}, settings), { fetchApi: utils.FetchService.fetch })));
45
45
  };
46
46
 
47
47
  exports.sdkApi = sdkApi;
@@ -1,5 +1,6 @@
1
1
  'use client'
2
2
  import { SDKApi, Configuration } from '@dynamic-labs/sdk-api-core';
3
+ import { FetchService } from '@dynamic-labs/utils';
3
4
  import { VERSION, API_VERSION } from '../../../version.js';
4
5
  import ApiEndpoint from '../../config/ApiEndpoint.js';
5
6
  import '@dynamic-labs/wallet-connector-core';
@@ -12,7 +13,6 @@ import '@dynamic-labs/wallet-book';
12
13
  import '../../utils/constants/colors.js';
13
14
  import '../../utils/constants/values.js';
14
15
  import '../../shared/utils/classes/storage/localStorage.js';
15
- import '@dynamic-labs/utils';
16
16
  import '../../shared/consts/index.js';
17
17
  import '../../../../_virtual/_tslib.js';
18
18
  import '@dynamic-labs/multi-wallet';
@@ -37,7 +37,7 @@ const sdkApi = () => {
37
37
  }
38
38
  settings.headers['x-dyn-version'] = `WalletKit/${VERSION}`;
39
39
  settings.headers['x-dyn-api-version'] = `API/${API_VERSION}`;
40
- return new SDKApi(new Configuration(settings));
40
+ return new SDKApi(new Configuration(Object.assign(Object.assign({}, settings), { fetchApi: FetchService.fetch })));
41
41
  };
42
42
 
43
43
  export { sdkApi };
@@ -34,6 +34,9 @@ const updateUserProfileFields = (environmentId, fields) => _tslib.__awaiter(void
34
34
  if (error.code === 'email_already_exists') {
35
35
  throw new utils.EmailAlreadyExistsError();
36
36
  }
37
+ else if (error.code === 'custom_field_data_not_unique') {
38
+ throw new utils.CustomFieldNotUniqueError();
39
+ }
37
40
  else if (error.code === 'username_already_exists') {
38
41
  throw new utils.UsernameAlreadyExistsError();
39
42
  }
@@ -1,6 +1,6 @@
1
1
  'use client'
2
2
  import { __awaiter } from '../../../../../_virtual/_tslib.js';
3
- import { EmailAlreadyExistsError, UsernameAlreadyExistsError, TooManyEmailVerificationsError, InvalidPhoneNumberError } from '@dynamic-labs/utils';
3
+ import { EmailAlreadyExistsError, CustomFieldNotUniqueError, UsernameAlreadyExistsError, TooManyEmailVerificationsError, InvalidPhoneNumberError } from '@dynamic-labs/utils';
4
4
  import '@dynamic-labs/sdk-api-core';
5
5
  import { logger } from '../../../shared/logger.js';
6
6
  import '@dynamic-labs/iconic';
@@ -30,6 +30,9 @@ const updateUserProfileFields = (environmentId, fields) => __awaiter(void 0, voi
30
30
  if (error.code === 'email_already_exists') {
31
31
  throw new EmailAlreadyExistsError();
32
32
  }
33
+ else if (error.code === 'custom_field_data_not_unique') {
34
+ throw new CustomFieldNotUniqueError();
35
+ }
33
36
  else if (error.code === 'username_already_exists') {
34
37
  throw new UsernameAlreadyExistsError();
35
38
  }
@@ -378,7 +378,6 @@ const translation = {
378
378
 
379
379
  email: {
380
380
  title: 'Confirm your email',
381
- edit: 'Edit email',
382
381
  complete:
383
382
  'Verification complete, the email is now verified to this account.',
384
383
  },
@@ -402,7 +401,6 @@ const translation = {
402
401
  hang_tight: 'Hang tight while we get things ready for you',
403
402
  email: {
404
403
  title: 'Confirm your email',
405
- edit: 'Edit email',
406
404
  complete: 'Verification complete, the email is now verified to this account.',
407
405
  },
408
406
  phone_number: {
@@ -574,11 +572,6 @@ const translation = {
574
572
  email_form: {
575
573
  invalid_email: 'Invalid or incorrect email. Did you mistype it?',
576
574
  },
577
- phone_number_form: {
578
- invalid_phone: 'Invalid or incorrect number. Did you mistype it?',
579
- invalid_sms_verification:
580
- 'Invalid or incorrect number. Did you mistype it?',
581
- },
582
575
  pending_connect: {
583
576
  title: 'Connecting a wallet',
584
577
  },
@@ -588,6 +581,11 @@ const translation = {
588
581
  pending_signature_without_back_button: {
589
582
  title: 'Signing a wallet',
590
583
  },
584
+ phone_number_form: {
585
+ invalid_phone: 'Invalid or incorrect number. Did you mistype it?',
586
+ invalid_sms_verification:
587
+ 'Invalid or incorrect number. Did you mistype it?',
588
+ },
591
589
  qr_code: {
592
590
  title: 'Connecting a wallet',
593
591
  },
@@ -596,22 +594,25 @@ const translation = {
596
594
  qr_code: {
597
595
  title: 'Connect',
598
596
  },
597
+ select_wallet_in_wallet_group: {
598
+ title: 'Select'
599
+ },
599
600
  separators: {
600
601
  default: 'OR',
601
602
  },
602
603
  sign_wallet: {
603
604
  title: 'Sign',
604
605
  },
605
- title: {
606
- all: 'Log in or sign up',
607
- all_wallet_list: 'Select your wallet',
608
- wallet_only: 'Select your wallet',
606
+ social: {
607
+ button_label: 'Continue with {{provider}}',
609
608
  },
610
609
  wallet_group: {
611
610
  title: 'Select Chain',
612
611
  },
613
- select_wallet_in_wallet_group: {
614
- title: 'Select'
612
+ title: {
613
+ all: 'Log in or sign up',
614
+ all_wallet_list: 'Select your wallet',
615
+ wallet_only: 'Select your wallet',
615
616
  },
616
617
  wallet_list: {
617
618
  button_only: 'Continue with a wallet',
@@ -647,11 +648,6 @@ const translation = {
647
648
  email_form: {
648
649
  invalid_email: 'Invalid or incorrect email. Did you mistype it?',
649
650
  },
650
- phone_number_form: {
651
- invalid_phone: 'Invalid or incorrect number. Did you mistype it?',
652
- invalid_sms_verification: 'The code you entered is incorrect. Please try again.',
653
- too_many_sms_verification_attempts: 'Too many verification attempts, please try again later.',
654
- },
655
651
  pending_connect: {
656
652
  title: 'Connecting a wallet',
657
653
  },
@@ -661,6 +657,11 @@ const translation = {
661
657
  pending_signature_without_back_button: {
662
658
  title: 'Signing a wallet',
663
659
  },
660
+ phone_number_form: {
661
+ invalid_phone: 'Invalid or incorrect number. Did you mistype it?',
662
+ invalid_sms_verification: 'The code you entered is incorrect. Please try again.',
663
+ too_many_sms_verification_attempts: 'Too many verification attempts, please try again later.',
664
+ },
664
665
  qr_code: {
665
666
  title: 'Connecting a wallet',
666
667
  },
@@ -675,6 +676,12 @@ const translation = {
675
676
  sign_wallet: {
676
677
  title: 'Sign',
677
678
  },
679
+ select_wallet_in_wallet_group: {
680
+ title: 'Select',
681
+ },
682
+ social: {
683
+ button_label: 'Continue with {{provider}}',
684
+ },
678
685
  title: {
679
686
  all: 'Log in or sign up',
680
687
  all_wallet_list: 'Select your wallet',
@@ -683,9 +690,6 @@ const translation = {
683
690
  wallet_group: {
684
691
  title: 'Select Chain',
685
692
  },
686
- select_wallet_in_wallet_group: {
687
- title: 'Select',
688
- },
689
693
  wallet_list: {
690
694
  button_only: 'Continue with a wallet',
691
695
  },
@@ -895,6 +899,19 @@ const translation = {
895
899
  body: 'Setup a new sign-in method in your authenticator app',
896
900
  continue: 'Continue',
897
901
  },
902
+ recovery_view: {
903
+ title: 'Enter your backup code',
904
+ body: 'Your backup code is the 24 character code you received when you activated two step authentication',
905
+ input_label: 'Enter back up code',
906
+ button_label: 'Continue',
907
+ get_help: {
908
+ description: 'Missing your back up codes?',
909
+ button_label: 'Get Help',
910
+ },
911
+ helper: {
912
+ title: 'Mfa Recovery Help',
913
+ },
914
+ },
898
915
  },
899
916
  /**
900
917
  * @description copy keys for merge user accounts view