@dynamic-labs/sdk-react-core 4.78.0 → 4.78.1

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 (34) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/package.cjs +1 -1
  3. package/package.js +1 -1
  4. package/package.json +12 -12
  5. package/src/index.cjs +1 -1
  6. package/src/index.js +1 -1
  7. package/src/lib/context/ErrorContext/ErrorContext.cjs +2 -2
  8. package/src/lib/context/ErrorContext/ErrorContext.d.ts +1 -1
  9. package/src/lib/context/ErrorContext/ErrorContext.js +2 -2
  10. package/src/lib/context/PhantomRedirectContext/useResponseHandlers.cjs +3 -1
  11. package/src/lib/context/PhantomRedirectContext/useResponseHandlers.js +3 -1
  12. package/src/lib/context/SocialRedirectContext/SocialRedirectContext.cjs +7 -6
  13. package/src/lib/context/SocialRedirectContext/SocialRedirectContext.js +7 -6
  14. package/src/lib/shared/utils/functions/index.d.ts +1 -0
  15. package/src/lib/shared/utils/functions/instrumentAuthLoginFailed/index.d.ts +2 -0
  16. package/src/lib/shared/utils/functions/instrumentAuthLoginFailed/instrumentAuthLoginFailed.cjs +17 -0
  17. package/src/lib/shared/utils/functions/instrumentAuthLoginFailed/instrumentAuthLoginFailed.d.ts +7 -0
  18. package/src/lib/shared/utils/functions/instrumentAuthLoginFailed/instrumentAuthLoginFailed.js +13 -0
  19. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.cjs +10 -1
  20. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.js +10 -1
  21. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.cjs +5 -1
  22. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.js +5 -1
  23. package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.cjs +5 -1
  24. package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.js +5 -1
  25. package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.cjs +6 -2
  26. package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.js +6 -2
  27. package/src/lib/utils/hooks/useUserAuth/useUserAuth.cjs +7 -1
  28. package/src/lib/utils/hooks/useUserAuth/useUserAuth.js +7 -1
  29. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.cjs +6 -2
  30. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.js +6 -2
  31. package/src/lib/utils/hooks/useWalletItemActions/useHandleWalletItem/useHandleWalletItem.cjs +1 -1
  32. package/src/lib/utils/hooks/useWalletItemActions/useHandleWalletItem/useHandleWalletItem.js +1 -1
  33. package/src/lib/views/EmailVerification/EmailVerification.cjs +3 -1
  34. package/src/lib/views/EmailVerification/EmailVerification.js +3 -1
package/CHANGELOG.md CHANGED
@@ -1,4 +1,14 @@
1
1
 
2
+ ### [4.78.1](https://github.com/dynamic-labs/dynamic-auth/compare/v4.78.0...v4.78.1) (2026-04-29)
3
+
4
+
5
+ ### Bug Fixes
6
+
7
+ * **ci:** do not fail on heroku check ([#11054](https://github.com/dynamic-labs/dynamic-auth/issues/11054)) ([fa92c8d](https://github.com/dynamic-labs/dynamic-auth/commit/fa92c8d3770f17802a3d3c4b28fbd72595eff78e))
8
+ * **demo-v2:** gate step-up sign on the actual signing connector (covers ZeroDev over WaaS) ([#11021](https://github.com/dynamic-labs/dynamic-auth/issues/11021)) ([2d7df88](https://github.com/dynamic-labs/dynamic-auth/commit/2d7df884f28013fe53b2f331a6d0f625a0313ff4))
9
+ * remediate high-severity dependency vulnerabilities ([#11039](https://github.com/dynamic-labs/dynamic-auth/issues/11039)) ([55315d9](https://github.com/dynamic-labs/dynamic-auth/commit/55315d92d2b956259b454b888db55bf552e16348)), closes [#498](https://github.com/dynamic-labs/dynamic-auth/issues/498) [#499](https://github.com/dynamic-labs/dynamic-auth/issues/499) [#538](https://github.com/dynamic-labs/dynamic-auth/issues/538) [#256](https://github.com/dynamic-labs/dynamic-auth/issues/256) [#132](https://github.com/dynamic-labs/dynamic-auth/issues/132) [#132](https://github.com/dynamic-labs/dynamic-auth/issues/132) [#11011](https://github.com/dynamic-labs/dynamic-auth/issues/11011) [#10991](https://github.com/dynamic-labs/dynamic-auth/issues/10991)
10
+ * remediate high-severity dependency vulnerabilities ([#11060](https://github.com/dynamic-labs/dynamic-auth/issues/11060)) ([514b8d6](https://github.com/dynamic-labs/dynamic-auth/commit/514b8d60d1436c765388c3a93877c562a6e6b105))
11
+
2
12
  ## [4.78.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.77.4...v4.78.0) (2026-04-22)
3
13
 
4
14
 
package/package.cjs CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var version = "4.78.0";
6
+ var version = "4.78.1";
7
7
  var dependencies = {
8
8
  "@dynamic-labs/sdk-api-core": "0.0.927",
9
9
  "@dynamic-labs-sdk/client": "0.24.0",
package/package.js CHANGED
@@ -1,5 +1,5 @@
1
1
  'use client'
2
- var version = "4.78.0";
2
+ var version = "4.78.1";
3
3
  var dependencies = {
4
4
  "@dynamic-labs/sdk-api-core": "0.0.927",
5
5
  "@dynamic-labs-sdk/client": "0.24.0",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/sdk-react-core",
3
- "version": "4.78.0",
3
+ "version": "4.78.1",
4
4
  "dependencies": {
5
5
  "@dynamic-labs/sdk-api-core": "0.0.927",
6
6
  "@dynamic-labs-sdk/client": "0.24.0",
@@ -16,17 +16,17 @@
16
16
  "yup": "0.32.11",
17
17
  "react-international-phone": "4.5.0",
18
18
  "bs58": "5.0.0",
19
- "@dynamic-labs/assert-package-version": "4.78.0",
20
- "@dynamic-labs/iconic": "4.78.0",
21
- "@dynamic-labs/locale": "4.78.0",
22
- "@dynamic-labs/logger": "4.78.0",
23
- "@dynamic-labs/multi-wallet": "4.78.0",
24
- "@dynamic-labs/rpc-providers": "4.78.0",
25
- "@dynamic-labs/store": "4.78.0",
26
- "@dynamic-labs/types": "4.78.0",
27
- "@dynamic-labs/utils": "4.78.0",
28
- "@dynamic-labs/wallet-book": "4.78.0",
29
- "@dynamic-labs/wallet-connector-core": "4.78.0",
19
+ "@dynamic-labs/assert-package-version": "4.78.1",
20
+ "@dynamic-labs/iconic": "4.78.1",
21
+ "@dynamic-labs/locale": "4.78.1",
22
+ "@dynamic-labs/logger": "4.78.1",
23
+ "@dynamic-labs/multi-wallet": "4.78.1",
24
+ "@dynamic-labs/rpc-providers": "4.78.1",
25
+ "@dynamic-labs/store": "4.78.1",
26
+ "@dynamic-labs/types": "4.78.1",
27
+ "@dynamic-labs/utils": "4.78.1",
28
+ "@dynamic-labs/wallet-book": "4.78.1",
29
+ "@dynamic-labs/wallet-connector-core": "4.78.1",
30
30
  "eventemitter3": "5.0.1"
31
31
  },
32
32
  "devDependencies": {
package/src/index.cjs CHANGED
@@ -53,10 +53,10 @@ require('./lib/utils/constants/colors.cjs');
53
53
  require('./lib/utils/constants/values.cjs');
54
54
  var sdkApiCore = require('@dynamic-labs/sdk-api-core');
55
55
  require('@dynamic-labs/wallet-connector-core');
56
+ require('./lib/shared/logger.cjs');
56
57
  var useLocalStorage = require('./lib/shared/utils/hooks/useLocalStorage/useLocalStorage.cjs');
57
58
  var index$1 = require('./lib/shared/utils/hooks/useOnClickOutside/index.cjs');
58
59
  require('./lib/shared/consts/index.cjs');
59
- require('./lib/shared/logger.cjs');
60
60
  require('./lib/components/Alert/Alert.cjs');
61
61
  var useDynamicEvents = require('./lib/utils/hooks/events/useDynamicEvents/useDynamicEvents.cjs');
62
62
  var useWalletConnectorEvent = require('./lib/utils/hooks/events/useWalletConnectorEvent/useWalletConnectorEvent.cjs');
package/src/index.js CHANGED
@@ -49,10 +49,10 @@ import './lib/utils/constants/colors.js';
49
49
  import './lib/utils/constants/values.js';
50
50
  export { ChainEnum, DynamicJwtFromJSON, MFAAction } from '@dynamic-labs/sdk-api-core';
51
51
  import '@dynamic-labs/wallet-connector-core';
52
+ import './lib/shared/logger.js';
52
53
  export { useLocalStorage } from './lib/shared/utils/hooks/useLocalStorage/useLocalStorage.js';
53
54
  export { useOnClickOutside } from './lib/shared/utils/hooks/useOnClickOutside/index.js';
54
55
  import './lib/shared/consts/index.js';
55
- import './lib/shared/logger.js';
56
56
  import './lib/components/Alert/Alert.js';
57
57
  export { useDynamicEvents } from './lib/utils/hooks/events/useDynamicEvents/useDynamicEvents.js';
58
58
  export { useWalletConnectorEvent } from './lib/utils/hooks/events/useWalletConnectorEvent/useWalletConnectorEvent.js';
@@ -56,14 +56,14 @@ const ErrorContextProvider = ({ children }) => {
56
56
  setError('Something went wrong. Please try again.', utils.ErrorCode.DEFAULT);
57
57
  }, [setError]);
58
58
  /** @deprecated Prefer setError with a translation key instead */
59
- const setErrorMessage = React.useCallback((status, error) => {
59
+ const setErrorMessage = React.useCallback((status, error, source) => {
60
60
  const mappedMessage = errorMessageMap[status];
61
61
  if (!mappedMessage) {
62
62
  logger.logger.instrument(FALLBACK_ERROR_LOG_EVENT, {
63
63
  error: error instanceof Error ? error.message : undefined,
64
64
  errorCode: status,
65
65
  key: FALLBACK_ERROR_LOG_EVENT,
66
- source: 'setErrorMessage',
66
+ source: source !== null && source !== void 0 ? source : 'setErrorMessage',
67
67
  time: 0,
68
68
  });
69
69
  }
@@ -4,7 +4,7 @@ interface ErrorContextProps {
4
4
  error: string | undefined;
5
5
  errorCode: ErrorCode | string | undefined;
6
6
  setError(error: string | undefined, errorCode?: ErrorCode | string): void;
7
- setErrorMessage: (status: string, error?: unknown) => void;
7
+ setErrorMessage: (status: string, error?: unknown, source?: string) => void;
8
8
  setDefaultError: (error?: unknown) => void;
9
9
  clearError(): void;
10
10
  }
@@ -52,14 +52,14 @@ const ErrorContextProvider = ({ children }) => {
52
52
  setError('Something went wrong. Please try again.', ErrorCode.DEFAULT);
53
53
  }, [setError]);
54
54
  /** @deprecated Prefer setError with a translation key instead */
55
- const setErrorMessage = useCallback((status, error) => {
55
+ const setErrorMessage = useCallback((status, error, source) => {
56
56
  const mappedMessage = errorMessageMap[status];
57
57
  if (!mappedMessage) {
58
58
  logger.instrument(FALLBACK_ERROR_LOG_EVENT, {
59
59
  error: error instanceof Error ? error.message : undefined,
60
60
  errorCode: status,
61
61
  key: FALLBACK_ERROR_LOG_EVENT,
62
- source: 'setErrorMessage',
62
+ source: source !== null && source !== void 0 ? source : 'setErrorMessage',
63
63
  time: 0,
64
64
  });
65
65
  }
@@ -20,6 +20,7 @@ require('@dynamic-labs/wallet-book');
20
20
  require('../../utils/constants/colors.cjs');
21
21
  require('../../utils/constants/values.cjs');
22
22
  require('@dynamic-labs/sdk-api-core');
23
+ var instrumentAuthLoginFailed = require('../../shared/utils/functions/instrumentAuthLoginFailed/instrumentAuthLoginFailed.cjs');
23
24
  require('../../shared/consts/index.cjs');
24
25
  require('../../store/state/authMode/authMode.cjs');
25
26
  var useInternalDynamicContext = require('../DynamicContext/useDynamicContext/useInternalDynamicContext/useInternalDynamicContext.cjs');
@@ -373,7 +374,8 @@ const useResponseHandlers = () => {
373
374
  logger.logger.logVerboseTroubleshootingMessage('[PhantomRedirect handleErrorResponse] no errorCode');
374
375
  return;
375
376
  }
376
- setErrorMessage(errorCode);
377
+ instrumentAuthLoginFailed.instrumentAuthLoginFailed({ code: errorCode, message: errorMessage }, { authOrigin: 'phantom-redirect' });
378
+ setErrorMessage(errorCode, undefined, 'phantom-redirect');
377
379
  const method = phantomRedirectConnector.consumeMethod();
378
380
  logger.logger.logVerboseTroubleshootingMessage('[PhantomRedirect handleErrorResponse] consumed method, emitting error', { errorCode, errorMessage, method });
379
381
  switch (method) {
@@ -16,6 +16,7 @@ import '@dynamic-labs/wallet-book';
16
16
  import '../../utils/constants/colors.js';
17
17
  import '../../utils/constants/values.js';
18
18
  import '@dynamic-labs/sdk-api-core';
19
+ import { instrumentAuthLoginFailed } from '../../shared/utils/functions/instrumentAuthLoginFailed/instrumentAuthLoginFailed.js';
19
20
  import '../../shared/consts/index.js';
20
21
  import '../../store/state/authMode/authMode.js';
21
22
  import { useInternalDynamicContext } from '../DynamicContext/useDynamicContext/useInternalDynamicContext/useInternalDynamicContext.js';
@@ -369,7 +370,8 @@ const useResponseHandlers = () => {
369
370
  logger.logVerboseTroubleshootingMessage('[PhantomRedirect handleErrorResponse] no errorCode');
370
371
  return;
371
372
  }
372
- setErrorMessage(errorCode);
373
+ instrumentAuthLoginFailed({ code: errorCode, message: errorMessage }, { authOrigin: 'phantom-redirect' });
374
+ setErrorMessage(errorCode, undefined, 'phantom-redirect');
373
375
  const method = phantomRedirectConnector.consumeMethod();
374
376
  logger.logVerboseTroubleshootingMessage('[PhantomRedirect handleErrorResponse] consumed method, emitting error', { errorCode, errorMessage, method });
375
377
  switch (method) {
@@ -9,12 +9,13 @@ var React = require('react');
9
9
  var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
10
10
  require('@dynamic-labs/iconic');
11
11
  var ViewContext = require('../ViewContext/ViewContext.cjs');
12
- var logger = require('../../shared/logger.cjs');
12
+ require('../../shared/logger.cjs');
13
13
  require('@dynamic-labs/wallet-book');
14
14
  require('@dynamic-labs/utils');
15
15
  require('../../utils/constants/colors.cjs');
16
16
  require('../../utils/constants/values.cjs');
17
17
  require('@dynamic-labs/sdk-api-core');
18
+ var instrumentAuthLoginFailed = require('../../shared/utils/functions/instrumentAuthLoginFailed/instrumentAuthLoginFailed.cjs');
18
19
  require('../../shared/consts/index.cjs');
19
20
  require('@dynamic-labs/multi-wallet');
20
21
  require('react-international-phone');
@@ -144,8 +145,8 @@ const SocialRedirectContextProvider = ({ children, }) => {
144
145
  const socialAccount = React.useMemo(() => (wallet ? getReferencedAccount.getReferencedAccount(user, wallet.id) : undefined), [user, wallet]);
145
146
  // added to make sure to reset the social provider on logout
146
147
  useDynamicEvents.useInternalDynamicEvents('logout', () => setSocialProvider(undefined));
147
- const handleError = React.useCallback((message) => {
148
- logger.logger.error(message);
148
+ const handleError = React.useCallback((message, provider) => {
149
+ instrumentAuthLoginFailed.instrumentAuthLoginFailed({ message }, { authOrigin: 'social-redirect', provider });
149
150
  if (user) {
150
151
  setShowAuthFlow(false, { emitCancelAuth: true });
151
152
  setShowDynamicUserProfile(true);
@@ -153,7 +154,7 @@ const SocialRedirectContextProvider = ({ children, }) => {
153
154
  else {
154
155
  setShowAuthFlow(true);
155
156
  clearStackAndPush('wallet-list');
156
- setErrorMessage('-1');
157
+ setErrorMessage('-1', undefined, 'social-redirect');
157
158
  }
158
159
  }, [
159
160
  user,
@@ -177,7 +178,7 @@ const SocialRedirectContextProvider = ({ children, }) => {
177
178
  const params = new URLSearchParams(window.location.search);
178
179
  if (params.has('error') && params.has('provider')) {
179
180
  const errorDescription = params.get('error_description');
180
- handleError(errorDescription !== null && errorDescription !== void 0 ? errorDescription : 'Unknown error');
181
+ handleError(errorDescription !== null && errorDescription !== void 0 ? errorDescription : 'Unknown error', params.get('provider'));
181
182
  // calling this to clear the relevant query params
182
183
  (_a = socialWalletConnector.getSession) === null || _a === void 0 ? void 0 : _a.call(socialWalletConnector);
183
184
  return;
@@ -260,7 +261,7 @@ const SocialRedirectContextProvider = ({ children, }) => {
260
261
  })).catch((error) => {
261
262
  setSocialProvider(undefined);
262
263
  setRedirectStatus('error');
263
- handleError(error);
264
+ handleError(error, providerFromParams);
264
265
  });
265
266
  }
266
267
  }, [
@@ -5,12 +5,13 @@ import { createContext, useContext, useState, useMemo, useCallback, useEffect }
5
5
  import { isSocialWalletConnector } from '@dynamic-labs/wallet-connector-core';
6
6
  import '@dynamic-labs/iconic';
7
7
  import { useViewContext } from '../ViewContext/ViewContext.js';
8
- import { logger } from '../../shared/logger.js';
8
+ import '../../shared/logger.js';
9
9
  import '@dynamic-labs/wallet-book';
10
10
  import '@dynamic-labs/utils';
11
11
  import '../../utils/constants/colors.js';
12
12
  import '../../utils/constants/values.js';
13
13
  import '@dynamic-labs/sdk-api-core';
14
+ import { instrumentAuthLoginFailed } from '../../shared/utils/functions/instrumentAuthLoginFailed/instrumentAuthLoginFailed.js';
14
15
  import '../../shared/consts/index.js';
15
16
  import '@dynamic-labs/multi-wallet';
16
17
  import 'react-international-phone';
@@ -140,8 +141,8 @@ const SocialRedirectContextProvider = ({ children, }) => {
140
141
  const socialAccount = useMemo(() => (wallet ? getReferencedAccount(user, wallet.id) : undefined), [user, wallet]);
141
142
  // added to make sure to reset the social provider on logout
142
143
  useInternalDynamicEvents('logout', () => setSocialProvider(undefined));
143
- const handleError = useCallback((message) => {
144
- logger.error(message);
144
+ const handleError = useCallback((message, provider) => {
145
+ instrumentAuthLoginFailed({ message }, { authOrigin: 'social-redirect', provider });
145
146
  if (user) {
146
147
  setShowAuthFlow(false, { emitCancelAuth: true });
147
148
  setShowDynamicUserProfile(true);
@@ -149,7 +150,7 @@ const SocialRedirectContextProvider = ({ children, }) => {
149
150
  else {
150
151
  setShowAuthFlow(true);
151
152
  clearStackAndPush('wallet-list');
152
- setErrorMessage('-1');
153
+ setErrorMessage('-1', undefined, 'social-redirect');
153
154
  }
154
155
  }, [
155
156
  user,
@@ -173,7 +174,7 @@ const SocialRedirectContextProvider = ({ children, }) => {
173
174
  const params = new URLSearchParams(window.location.search);
174
175
  if (params.has('error') && params.has('provider')) {
175
176
  const errorDescription = params.get('error_description');
176
- handleError(errorDescription !== null && errorDescription !== void 0 ? errorDescription : 'Unknown error');
177
+ handleError(errorDescription !== null && errorDescription !== void 0 ? errorDescription : 'Unknown error', params.get('provider'));
177
178
  // calling this to clear the relevant query params
178
179
  (_a = socialWalletConnector.getSession) === null || _a === void 0 ? void 0 : _a.call(socialWalletConnector);
179
180
  return;
@@ -256,7 +257,7 @@ const SocialRedirectContextProvider = ({ children, }) => {
256
257
  })).catch((error) => {
257
258
  setSocialProvider(undefined);
258
259
  setRedirectStatus('error');
259
- handleError(error);
260
+ handleError(error, providerFromParams);
260
261
  });
261
262
  }
262
263
  }, [
@@ -11,3 +11,4 @@ export * from './providerLabel';
11
11
  export * from './usingSessionKeys';
12
12
  export * from './hasPendingMfaAction';
13
13
  export * from './hasPendingRequirements';
14
+ export * from './instrumentAuthLoginFailed';
@@ -0,0 +1,2 @@
1
+ export { instrumentAuthLoginFailed } from './instrumentAuthLoginFailed';
2
+ export type { AuthLoginFailedContext, AuthOrigin, } from './instrumentAuthLoginFailed';
@@ -0,0 +1,17 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var logger = require('../../../logger.cjs');
7
+
8
+ const instrumentAuthLoginFailed = (err, context) => {
9
+ const errLike = err;
10
+ const message = typeof (errLike === null || errLike === void 0 ? void 0 : errLike.message) === 'string' ? errLike.message : undefined;
11
+ const code = (errLike === null || errLike === void 0 ? void 0 : errLike.code) !== undefined && errLike.code !== null
12
+ ? String(errLike.code)
13
+ : undefined;
14
+ logger.logger.instrument('auth.login_failed', Object.assign({ error: err instanceof Error ? err.message : message, errorCode: code !== null && code !== void 0 ? code : 'unknown', errorMessage: message, key: 'auth.login_failed', time: 0 }, context));
15
+ };
16
+
17
+ exports.instrumentAuthLoginFailed = instrumentAuthLoginFailed;
@@ -0,0 +1,7 @@
1
+ export type AuthOrigin = 'connect-and-sign' | 'connect-and-sign-split-steps' | 'email-verification' | 'phantom-redirect' | 'social-auth' | 'social-redirect' | 'user-auth' | 'wallet-verify';
2
+ export type AuthLoginFailedContext = {
3
+ authOrigin: AuthOrigin;
4
+ provider?: string;
5
+ stage?: 'connect' | 'verify';
6
+ };
7
+ export declare const instrumentAuthLoginFailed: (err: unknown, context: AuthLoginFailedContext) => void;
@@ -0,0 +1,13 @@
1
+ 'use client'
2
+ import { logger } from '../../../logger.js';
3
+
4
+ const instrumentAuthLoginFailed = (err, context) => {
5
+ const errLike = err;
6
+ const message = typeof (errLike === null || errLike === void 0 ? void 0 : errLike.message) === 'string' ? errLike.message : undefined;
7
+ const code = (errLike === null || errLike === void 0 ? void 0 : errLike.code) !== undefined && errLike.code !== null
8
+ ? String(errLike.code)
9
+ : undefined;
10
+ logger.instrument('auth.login_failed', Object.assign({ error: err instanceof Error ? err.message : message, errorCode: code !== null && code !== void 0 ? code : 'unknown', errorMessage: message, key: 'auth.login_failed', time: 0 }, context));
11
+ };
12
+
13
+ export { instrumentAuthLoginFailed };
@@ -19,6 +19,7 @@ var localStorage = require('../../../constants/localStorage.cjs');
19
19
  require('../../../constants/colors.cjs');
20
20
  require('../../../constants/values.cjs');
21
21
  require('@dynamic-labs/sdk-api-core');
22
+ var instrumentAuthLoginFailed = require('../../../../shared/utils/functions/instrumentAuthLoginFailed/instrumentAuthLoginFailed.cjs');
22
23
  require('../../../../shared/consts/index.cjs');
23
24
  var dynamicEvents = require('../../../../events/dynamicEvents.cjs');
24
25
  var ErrorContext = require('../../../../context/ErrorContext/ErrorContext.cjs');
@@ -152,18 +153,26 @@ const useConnectAndSign = ({ shouldUpdateWallets = true, shouldCallCallback = tr
152
153
  const userCancelled = (err === null || err === void 0 ? void 0 : err.code) === 'user-cancelled';
153
154
  if (!userCancelled)
154
155
  logger.logger.debug(err);
156
+ instrumentAuthLoginFailed.instrumentAuthLoginFailed(err, {
157
+ authOrigin: 'connect-and-sign',
158
+ stage: 'verify',
159
+ });
155
160
  clearStackAndPushInitialView();
156
161
  if (err instanceof utils.CustomError) {
157
162
  setError(err.message, err.code);
158
163
  }
159
164
  else {
160
- setErrorMessage((_a = err === null || err === void 0 ? void 0 : err.code) === null || _a === void 0 ? void 0 : _a.toString(), err);
165
+ setErrorMessage((_a = err === null || err === void 0 ? void 0 : err.code) === null || _a === void 0 ? void 0 : _a.toString(), err, 'connect-and-sign:verify');
161
166
  }
162
167
  };
163
168
  const handleWalletConnectionError = (error) => {
164
169
  if (error instanceof utils.GetAddressCancelledError) {
165
170
  return;
166
171
  }
172
+ instrumentAuthLoginFailed.instrumentAuthLoginFailed(error, {
173
+ authOrigin: 'connect-and-sign',
174
+ stage: 'connect',
175
+ });
167
176
  clearStackAndPushInitialView();
168
177
  if (error instanceof utils.CustomError) {
169
178
  setError(error.message, error.code);
@@ -15,6 +15,7 @@ import { LAST_USED_WALLET } from '../../../constants/localStorage.js';
15
15
  import '../../../constants/colors.js';
16
16
  import '../../../constants/values.js';
17
17
  import '@dynamic-labs/sdk-api-core';
18
+ import { instrumentAuthLoginFailed } from '../../../../shared/utils/functions/instrumentAuthLoginFailed/instrumentAuthLoginFailed.js';
18
19
  import '../../../../shared/consts/index.js';
19
20
  import { dynamicEvents } from '../../../../events/dynamicEvents.js';
20
21
  import { useErrorContext } from '../../../../context/ErrorContext/ErrorContext.js';
@@ -148,18 +149,26 @@ const useConnectAndSign = ({ shouldUpdateWallets = true, shouldCallCallback = tr
148
149
  const userCancelled = (err === null || err === void 0 ? void 0 : err.code) === 'user-cancelled';
149
150
  if (!userCancelled)
150
151
  logger.debug(err);
152
+ instrumentAuthLoginFailed(err, {
153
+ authOrigin: 'connect-and-sign',
154
+ stage: 'verify',
155
+ });
151
156
  clearStackAndPushInitialView();
152
157
  if (err instanceof CustomError) {
153
158
  setError(err.message, err.code);
154
159
  }
155
160
  else {
156
- setErrorMessage((_a = err === null || err === void 0 ? void 0 : err.code) === null || _a === void 0 ? void 0 : _a.toString(), err);
161
+ setErrorMessage((_a = err === null || err === void 0 ? void 0 : err.code) === null || _a === void 0 ? void 0 : _a.toString(), err, 'connect-and-sign:verify');
157
162
  }
158
163
  };
159
164
  const handleWalletConnectionError = (error) => {
160
165
  if (error instanceof GetAddressCancelledError) {
161
166
  return;
162
167
  }
168
+ instrumentAuthLoginFailed(error, {
169
+ authOrigin: 'connect-and-sign',
170
+ stage: 'connect',
171
+ });
163
172
  clearStackAndPushInitialView();
164
173
  if (error instanceof CustomError) {
165
174
  setError(error.message, error.code);
@@ -19,6 +19,7 @@ var localStorage = require('../../../constants/localStorage.cjs');
19
19
  require('../../../constants/colors.cjs');
20
20
  require('../../../constants/values.cjs');
21
21
  require('@dynamic-labs/sdk-api-core');
22
+ var instrumentAuthLoginFailed = require('../../../../shared/utils/functions/instrumentAuthLoginFailed/instrumentAuthLoginFailed.cjs');
22
23
  require('../../../../shared/consts/index.cjs');
23
24
  require('../../../../events/dynamicEvents.cjs');
24
25
  var ErrorContext = require('../../../../context/ErrorContext/ErrorContext.cjs');
@@ -139,8 +140,11 @@ const useConnectAndSignSplitSteps = () => {
139
140
  */
140
141
  if (err instanceof utils.MissingPublicAddressError && utils.isMobile())
141
142
  return;
143
+ instrumentAuthLoginFailed.instrumentAuthLoginFailed(err, {
144
+ authOrigin: 'connect-and-sign-split-steps',
145
+ });
142
146
  clearStackAndPushInitialView();
143
- setErrorMessage((_a = err.code) !== null && _a !== void 0 ? _a : err.toString());
147
+ setErrorMessage((_a = err.code) !== null && _a !== void 0 ? _a : err.toString(), err, 'connect-and-sign-split-steps');
144
148
  };
145
149
  // This method is similar to useConnectAndSign, but it skips signing for now
146
150
  // It's used when we want to connect and sign in two separate steps
@@ -15,6 +15,7 @@ import { LAST_USED_WALLET } from '../../../constants/localStorage.js';
15
15
  import '../../../constants/colors.js';
16
16
  import '../../../constants/values.js';
17
17
  import '@dynamic-labs/sdk-api-core';
18
+ import { instrumentAuthLoginFailed } from '../../../../shared/utils/functions/instrumentAuthLoginFailed/instrumentAuthLoginFailed.js';
18
19
  import '../../../../shared/consts/index.js';
19
20
  import '../../../../events/dynamicEvents.js';
20
21
  import { useErrorContext } from '../../../../context/ErrorContext/ErrorContext.js';
@@ -135,8 +136,11 @@ const useConnectAndSignSplitSteps = () => {
135
136
  */
136
137
  if (err instanceof MissingPublicAddressError && isMobile())
137
138
  return;
139
+ instrumentAuthLoginFailed(err, {
140
+ authOrigin: 'connect-and-sign-split-steps',
141
+ });
138
142
  clearStackAndPushInitialView();
139
- setErrorMessage((_a = err.code) !== null && _a !== void 0 ? _a : err.toString());
143
+ setErrorMessage((_a = err.code) !== null && _a !== void 0 ? _a : err.toString(), err, 'connect-and-sign-split-steps');
140
144
  };
141
145
  // This method is similar to useConnectAndSign, but it skips signing for now
142
146
  // It's used when we want to connect and sign in two separate steps
@@ -17,6 +17,7 @@ require('@dynamic-labs/utils');
17
17
  require('../../../constants/colors.cjs');
18
18
  require('../../../constants/values.cjs');
19
19
  require('@dynamic-labs/sdk-api-core');
20
+ var instrumentAuthLoginFailed = require('../../../../shared/utils/functions/instrumentAuthLoginFailed/instrumentAuthLoginFailed.cjs');
20
21
  require('../../../../shared/consts/index.cjs');
21
22
  require('../../../../events/dynamicEvents.cjs');
22
23
  var CaptchaContext = require('../../../../context/CaptchaContext/CaptchaContext.cjs');
@@ -152,7 +153,10 @@ const useSignConnectOnlyUser = () => {
152
153
  }
153
154
  catch (err) {
154
155
  logger.logger.debug(err);
155
- setErrorMessage(err.toString());
156
+ instrumentAuthLoginFailed.instrumentAuthLoginFailed(err, {
157
+ authOrigin: 'connect-and-sign-split-steps',
158
+ });
159
+ setErrorMessage(err.toString(), err, 'connect-and-sign-split-steps');
156
160
  setShowAuthFlow(false, { emitCancelAuth: true });
157
161
  return;
158
162
  }
@@ -13,6 +13,7 @@ import '@dynamic-labs/utils';
13
13
  import '../../../constants/colors.js';
14
14
  import '../../../constants/values.js';
15
15
  import '@dynamic-labs/sdk-api-core';
16
+ import { instrumentAuthLoginFailed } from '../../../../shared/utils/functions/instrumentAuthLoginFailed/instrumentAuthLoginFailed.js';
16
17
  import '../../../../shared/consts/index.js';
17
18
  import '../../../../events/dynamicEvents.js';
18
19
  import { useCaptchaContext } from '../../../../context/CaptchaContext/CaptchaContext.js';
@@ -148,7 +149,10 @@ const useSignConnectOnlyUser = () => {
148
149
  }
149
150
  catch (err) {
150
151
  logger.debug(err);
151
- setErrorMessage(err.toString());
152
+ instrumentAuthLoginFailed(err, {
153
+ authOrigin: 'connect-and-sign-split-steps',
154
+ });
155
+ setErrorMessage(err.toString(), err, 'connect-and-sign-split-steps');
152
156
  setShowAuthFlow(false, { emitCancelAuth: true });
153
157
  return;
154
158
  }
@@ -20,6 +20,7 @@ var logger = require('../../../shared/logger.cjs');
20
20
  require('@dynamic-labs/wallet-book');
21
21
  require('../../constants/colors.cjs');
22
22
  require('../../constants/values.cjs');
23
+ var instrumentAuthLoginFailed = require('../../../shared/utils/functions/instrumentAuthLoginFailed/instrumentAuthLoginFailed.cjs');
23
24
  require('../../../shared/consts/index.cjs');
24
25
  var dynamicEvents = require('../../../events/dynamicEvents.cjs');
25
26
  var ErrorContext = require('../../../context/ErrorContext/ErrorContext.cjs');
@@ -178,9 +179,12 @@ const useSocialAuth = ({ onSettled, onError, onFarcasterUrl, }) => {
178
179
  }, [onError, onSettled]);
179
180
  const handleError = React.useCallback((provider, code, message, options) => {
180
181
  const error = { code, message };
181
- logger.logger.error(message);
182
+ instrumentAuthLoginFailed.instrumentAuthLoginFailed(error, {
183
+ authOrigin: 'social-auth',
184
+ provider,
185
+ });
182
186
  setError(error);
183
- setErrorMessage(code);
187
+ setErrorMessage(code, error, 'social-auth');
184
188
  onFailed(provider, { error }, options);
185
189
  }, [onFailed, setErrorMessage]);
186
190
  const checkValidProvider = React.useCallback((provider, authMode) => {
@@ -16,6 +16,7 @@ import { logger } from '../../../shared/logger.js';
16
16
  import '@dynamic-labs/wallet-book';
17
17
  import '../../constants/colors.js';
18
18
  import '../../constants/values.js';
19
+ import { instrumentAuthLoginFailed } from '../../../shared/utils/functions/instrumentAuthLoginFailed/instrumentAuthLoginFailed.js';
19
20
  import '../../../shared/consts/index.js';
20
21
  import { dynamicEvents } from '../../../events/dynamicEvents.js';
21
22
  import { useErrorContext } from '../../../context/ErrorContext/ErrorContext.js';
@@ -174,9 +175,12 @@ const useSocialAuth = ({ onSettled, onError, onFarcasterUrl, }) => {
174
175
  }, [onError, onSettled]);
175
176
  const handleError = useCallback((provider, code, message, options) => {
176
177
  const error = { code, message };
177
- logger.error(message);
178
+ instrumentAuthLoginFailed(error, {
179
+ authOrigin: 'social-auth',
180
+ provider,
181
+ });
178
182
  setError(error);
179
- setErrorMessage(code);
183
+ setErrorMessage(code, error, 'social-auth');
180
184
  onFailed(provider, { error }, options);
181
185
  }, [onFailed, setErrorMessage]);
182
186
  const checkValidProvider = useCallback((provider, authMode) => {
@@ -20,6 +20,7 @@ require('@dynamic-labs/wallet-book');
20
20
  require('../../constants/colors.cjs');
21
21
  require('../../constants/values.cjs');
22
22
  var hasPendingMfaAction = require('../../../shared/utils/functions/hasPendingMfaAction/hasPendingMfaAction.cjs');
23
+ var instrumentAuthLoginFailed = require('../../../shared/utils/functions/instrumentAuthLoginFailed/instrumentAuthLoginFailed.cjs');
23
24
  require('../../../shared/consts/index.cjs');
24
25
  require('@dynamic-labs/multi-wallet');
25
26
  require('react-international-phone');
@@ -134,6 +135,10 @@ const useUserAuth = ({ authMethod, }) => {
134
135
  }), [authMethod, clearStackAndPushInitialView, handleLogOut]);
135
136
  const handleAuthError = React.useCallback((error, { options = {}, onError, }) => {
136
137
  var _a, _b;
138
+ instrumentAuthLoginFailed.instrumentAuthLoginFailed(error, {
139
+ authOrigin: 'user-auth',
140
+ provider: authMethod,
141
+ });
137
142
  if (error instanceof client.MfaInvalidOtpError ||
138
143
  error instanceof client.MfaRateLimitedError) {
139
144
  throw error;
@@ -196,12 +201,13 @@ const useUserAuth = ({ authMethod, }) => {
196
201
  return;
197
202
  }
198
203
  if (error.code) {
199
- setErrorMessage(error.code);
204
+ setErrorMessage(error.code, error, 'user-auth');
200
205
  }
201
206
  else {
202
207
  setError(error.message);
203
208
  }
204
209
  }, [
210
+ authMethod,
205
211
  pushView,
206
212
  setDeniedOauthProvider,
207
213
  setDeniedOauthUsername,
@@ -16,6 +16,7 @@ import '@dynamic-labs/wallet-book';
16
16
  import '../../constants/colors.js';
17
17
  import '../../constants/values.js';
18
18
  import { hasPendingMfaAction } from '../../../shared/utils/functions/hasPendingMfaAction/hasPendingMfaAction.js';
19
+ import { instrumentAuthLoginFailed } from '../../../shared/utils/functions/instrumentAuthLoginFailed/instrumentAuthLoginFailed.js';
19
20
  import '../../../shared/consts/index.js';
20
21
  import '@dynamic-labs/multi-wallet';
21
22
  import 'react-international-phone';
@@ -130,6 +131,10 @@ const useUserAuth = ({ authMethod, }) => {
130
131
  }), [authMethod, clearStackAndPushInitialView, handleLogOut]);
131
132
  const handleAuthError = useCallback((error, { options = {}, onError, }) => {
132
133
  var _a, _b;
134
+ instrumentAuthLoginFailed(error, {
135
+ authOrigin: 'user-auth',
136
+ provider: authMethod,
137
+ });
133
138
  if (error instanceof MfaInvalidOtpError ||
134
139
  error instanceof MfaRateLimitedError) {
135
140
  throw error;
@@ -192,12 +197,13 @@ const useUserAuth = ({ authMethod, }) => {
192
197
  return;
193
198
  }
194
199
  if (error.code) {
195
- setErrorMessage(error.code);
200
+ setErrorMessage(error.code, error, 'user-auth');
196
201
  }
197
202
  else {
198
203
  setError(error.message);
199
204
  }
200
205
  }, [
206
+ authMethod,
201
207
  pushView,
202
208
  setDeniedOauthProvider,
203
209
  setDeniedOauthUsername,
@@ -19,6 +19,7 @@ var localStorage = require('../../constants/localStorage.cjs');
19
19
  require('../../constants/colors.cjs');
20
20
  require('../../constants/values.cjs');
21
21
  require('@dynamic-labs/sdk-api-core');
22
+ var instrumentAuthLoginFailed = require('../../../shared/utils/functions/instrumentAuthLoginFailed/instrumentAuthLoginFailed.cjs');
22
23
  require('../../../shared/consts/index.cjs');
23
24
  var authMode = require('../../../store/state/authMode/authMode.cjs');
24
25
  var useInternalDynamicContext = require('../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext/useInternalDynamicContext.cjs');
@@ -290,12 +291,15 @@ const useVerifyWallet = ({ displaySiweStatement, environmentId, projectSettings,
290
291
  handleDisconnectWallet({ walletConnector });
291
292
  clearStackAndPushInitialView();
292
293
  }
293
- logger.logger.error(e);
294
+ instrumentAuthLoginFailed.instrumentAuthLoginFailed(e, {
295
+ authOrigin: 'wallet-verify',
296
+ provider: walletConnector === null || walletConnector === void 0 ? void 0 : walletConnector.key,
297
+ });
294
298
  if (debugError) {
295
299
  setError(`${e.message}\n ${e.stack}`);
296
300
  }
297
301
  else {
298
- setErrorMessage(e.code);
302
+ setErrorMessage(e.code, e, 'wallet-verify');
299
303
  }
300
304
  };
301
305
  return (_a) => _tslib.__awaiter(void 0, [_a], void 0, function* ({ walletConnector, getAddressOpts, publicWalletAddress, captchaToken, oauth, signedMessageOverride, messageToSignOverride, requestedScopes, }) {
@@ -15,6 +15,7 @@ import { LAST_USED_WALLET } from '../../constants/localStorage.js';
15
15
  import '../../constants/colors.js';
16
16
  import '../../constants/values.js';
17
17
  import '@dynamic-labs/sdk-api-core';
18
+ import { instrumentAuthLoginFailed } from '../../../shared/utils/functions/instrumentAuthLoginFailed/instrumentAuthLoginFailed.js';
18
19
  import '../../../shared/consts/index.js';
19
20
  import { setAuthMode, getAuthMode } from '../../../store/state/authMode/authMode.js';
20
21
  import { useInternalDynamicContext } from '../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext/useInternalDynamicContext.js';
@@ -286,12 +287,15 @@ const useVerifyWallet = ({ displaySiweStatement, environmentId, projectSettings,
286
287
  handleDisconnectWallet({ walletConnector });
287
288
  clearStackAndPushInitialView();
288
289
  }
289
- logger.error(e);
290
+ instrumentAuthLoginFailed(e, {
291
+ authOrigin: 'wallet-verify',
292
+ provider: walletConnector === null || walletConnector === void 0 ? void 0 : walletConnector.key,
293
+ });
290
294
  if (debugError) {
291
295
  setError(`${e.message}\n ${e.stack}`);
292
296
  }
293
297
  else {
294
- setErrorMessage(e.code);
298
+ setErrorMessage(e.code, e, 'wallet-verify');
295
299
  }
296
300
  };
297
301
  return (_a) => __awaiter(void 0, [_a], void 0, function* ({ walletConnector, getAddressOpts, publicWalletAddress, captchaToken, oauth, signedMessageOverride, messageToSignOverride, requestedScopes, }) {
@@ -283,7 +283,7 @@ const useHandleWalletItem = ({ allowAlreadyConnectedWallet, onQrCodeConnect, onC
283
283
  }
284
284
  catch (error) {
285
285
  if (error instanceof utils.UserRejectedRequestError) {
286
- setErrorMessage('connection_rejected');
286
+ setErrorMessage('connection_rejected', undefined, 'wallet-account-select');
287
287
  clearStackAndPushInitialView();
288
288
  return;
289
289
  }
@@ -279,7 +279,7 @@ const useHandleWalletItem = ({ allowAlreadyConnectedWallet, onQrCodeConnect, onC
279
279
  }
280
280
  catch (error) {
281
281
  if (error instanceof UserRejectedRequestError) {
282
- setErrorMessage('connection_rejected');
282
+ setErrorMessage('connection_rejected', undefined, 'wallet-account-select');
283
283
  clearStackAndPushInitialView();
284
284
  return;
285
285
  }
@@ -22,6 +22,7 @@ var logger = require('../../shared/logger.cjs');
22
22
  require('@dynamic-labs/wallet-book');
23
23
  require('../../utils/constants/colors.cjs');
24
24
  require('../../utils/constants/values.cjs');
25
+ var instrumentAuthLoginFailed = require('../../shared/utils/functions/instrumentAuthLoginFailed/instrumentAuthLoginFailed.cjs');
25
26
  require('../../shared/consts/index.cjs');
26
27
  var findEmbeddedWalletFromVerifiedCredentials = require('../../utils/functions/findEmbeddedWalletFromVerifiedCredentials/findEmbeddedWalletFromVerifiedCredentials.cjs');
27
28
  require('@dynamic-labs/multi-wallet');
@@ -352,7 +353,8 @@ const EmailVerification = ({ isEmailRecoveryFlow = false, showRetryButton: _show
352
353
  }
353
354
  catch (error) {
354
355
  logger.logger.debug(error);
355
- setErrorMessage(error.code);
356
+ instrumentAuthLoginFailed.instrumentAuthLoginFailed(error, { authOrigin: 'email-verification' });
357
+ setErrorMessage(error.code, error, 'email-verification');
356
358
  if (error.code === 'too_many_email_verification_attempts') {
357
359
  setShowRetryButton(false);
358
360
  }
@@ -18,6 +18,7 @@ import { logger } from '../../shared/logger.js';
18
18
  import '@dynamic-labs/wallet-book';
19
19
  import '../../utils/constants/colors.js';
20
20
  import '../../utils/constants/values.js';
21
+ import { instrumentAuthLoginFailed } from '../../shared/utils/functions/instrumentAuthLoginFailed/instrumentAuthLoginFailed.js';
21
22
  import '../../shared/consts/index.js';
22
23
  import { findEmbeddedWalletFromVerifiedCredentials } from '../../utils/functions/findEmbeddedWalletFromVerifiedCredentials/findEmbeddedWalletFromVerifiedCredentials.js';
23
24
  import '@dynamic-labs/multi-wallet';
@@ -348,7 +349,8 @@ const EmailVerification = ({ isEmailRecoveryFlow = false, showRetryButton: _show
348
349
  }
349
350
  catch (error) {
350
351
  logger.debug(error);
351
- setErrorMessage(error.code);
352
+ instrumentAuthLoginFailed(error, { authOrigin: 'email-verification' });
353
+ setErrorMessage(error.code, error, 'email-verification');
352
354
  if (error.code === 'too_many_email_verification_attempts') {
353
355
  setShowRetryButton(false);
354
356
  }