@dynamic-labs/sdk-react-core 4.71.0 → 4.73.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/package.cjs +2 -2
  3. package/package.js +2 -2
  4. package/package.json +13 -13
  5. package/src/lib/client/extension/functions/generateChainingSignature/generateChainingSignature.cjs +15 -0
  6. package/src/lib/client/extension/functions/generateChainingSignature/generateChainingSignature.d.ts +1 -0
  7. package/src/lib/client/extension/functions/generateChainingSignature/generateChainingSignature.js +11 -0
  8. package/src/lib/client/extension/functions/generateSessionKeys/generateSessionKeys.cjs +11 -0
  9. package/src/lib/client/extension/functions/generateSessionKeys/generateSessionKeys.d.ts +1 -0
  10. package/src/lib/client/extension/functions/generateSessionKeys/generateSessionKeys.js +7 -0
  11. package/src/lib/client/extension/functions/getClientSessionNonceHeaders/getClientSessionNonceHeaders.cjs +33 -0
  12. package/src/lib/client/extension/functions/getClientSessionNonceHeaders/getClientSessionNonceHeaders.d.ts +16 -0
  13. package/src/lib/client/extension/functions/getClientSessionNonceHeaders/getClientSessionNonceHeaders.js +29 -0
  14. package/src/lib/client/extension/functions/getSessionKeys/getSessionKeys.d.ts +1 -0
  15. package/src/lib/client/extension/functions/hasElevatedAccessToken/hasElevatedAccessToken.cjs +5 -9
  16. package/src/lib/client/extension/functions/hasElevatedAccessToken/hasElevatedAccessToken.d.ts +4 -0
  17. package/src/lib/client/extension/functions/hasElevatedAccessToken/hasElevatedAccessToken.js +6 -10
  18. package/src/lib/client/extension/functions/migrateClientSessionKey/migrateClientSessionKey.cjs +51 -0
  19. package/src/lib/client/extension/functions/migrateClientSessionKey/migrateClientSessionKey.d.ts +1 -0
  20. package/src/lib/client/extension/functions/migrateClientSessionKey/migrateClientSessionKey.js +47 -0
  21. package/src/lib/client/extension/hooks/useInitializeSdkClient/getApiHeaders/getApiHeaders.cjs +5 -6
  22. package/src/lib/client/extension/hooks/useInitializeSdkClient/getApiHeaders/getApiHeaders.js +5 -6
  23. package/src/lib/client/extension/hooks/useInitializeSdkClient/syncEvents/syncEvents.cjs +2 -2
  24. package/src/lib/client/extension/hooks/useInitializeSdkClient/syncEvents/syncEvents.js +2 -2
  25. package/src/lib/client/extension/hooks/useInitializeSdkClient/useInitializeSdkClient.cjs +2 -0
  26. package/src/lib/client/extension/hooks/useInitializeSdkClient/useInitializeSdkClient.js +2 -0
  27. package/src/lib/client/extension/index.d.ts +4 -0
  28. package/src/lib/components/UserProfile/parts/UserProfileSocialAccount/UserProfileSocialAccount.cjs +2 -2
  29. package/src/lib/components/UserProfile/parts/UserProfileSocialAccount/UserProfileSocialAccount.js +2 -2
  30. package/src/lib/context/ConnectWithOtpContext/utils/createEmailHandler.cjs +2 -2
  31. package/src/lib/context/ConnectWithOtpContext/utils/createEmailHandler.js +2 -2
  32. package/src/lib/context/ConnectWithOtpContext/utils/createSmsHandler.cjs +2 -2
  33. package/src/lib/context/ConnectWithOtpContext/utils/createSmsHandler.js +2 -2
  34. package/src/lib/context/DynamicContext/DynamicContext.cjs +0 -3
  35. package/src/lib/context/DynamicContext/DynamicContext.js +0 -3
  36. package/src/lib/context/DynamicContext/hooks/useHandleLogout/useHandleLogout.cjs +10 -9
  37. package/src/lib/context/DynamicContext/hooks/useHandleLogout/useHandleLogout.d.ts +2 -1
  38. package/src/lib/context/DynamicContext/hooks/useHandleLogout/useHandleLogout.js +10 -9
  39. package/src/lib/context/DynamicContext/types/DynamicContextProps.d.ts +10 -0
  40. package/src/lib/context/SocialRedirectContext/SocialRedirectContext.cjs +0 -2
  41. package/src/lib/context/SocialRedirectContext/SocialRedirectContext.js +0 -2
  42. package/src/lib/data/api/api.cjs +1 -1
  43. package/src/lib/data/api/api.js +1 -1
  44. package/src/lib/data/api/embeddedWallets/embeddedWallets.cjs +2 -4
  45. package/src/lib/data/api/embeddedWallets/embeddedWallets.js +2 -4
  46. package/src/lib/events/auth.d.ts +2 -1
  47. package/src/lib/shared/assets/backupArrow.cjs +1 -1
  48. package/src/lib/shared/assets/backupArrow.js +1 -1
  49. package/src/lib/shared/assets/export-private-key.cjs +1 -2
  50. package/src/lib/shared/assets/export-private-key.js +1 -2
  51. package/src/lib/shared/assets/export-recovery-phrase.cjs +1 -2
  52. package/src/lib/shared/assets/export-recovery-phrase.js +1 -2
  53. package/src/lib/shared/assets/face-id.cjs +1 -1
  54. package/src/lib/shared/assets/face-id.js +1 -1
  55. package/src/lib/shared/assets/lock.cjs +1 -2
  56. package/src/lib/shared/assets/lock.js +1 -2
  57. package/src/lib/store/state/dynamicContextProps/defaultDynamicSettings.cjs +2 -0
  58. package/src/lib/store/state/dynamicContextProps/defaultDynamicSettings.d.ts +3 -3
  59. package/src/lib/store/state/dynamicContextProps/defaultDynamicSettings.js +2 -0
  60. package/src/lib/utils/functions/clientSessionKeys/getClientSessionKeys.cjs +0 -88
  61. package/src/lib/utils/functions/clientSessionKeys/getClientSessionKeys.d.ts +0 -25
  62. package/src/lib/utils/functions/clientSessionKeys/getClientSessionKeys.js +2 -83
  63. package/src/lib/utils/functions/index.d.ts +0 -1
  64. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.cjs +0 -2
  65. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.js +0 -2
  66. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.cjs +0 -2
  67. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.js +0 -2
  68. package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.cjs +0 -2
  69. package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.js +0 -2
  70. package/src/lib/utils/hooks/index.d.ts +0 -1
  71. package/src/lib/utils/hooks/useDynamicWaas/useDynamicWaas.cjs +4 -12
  72. package/src/lib/utils/hooks/useDynamicWaas/useDynamicWaas.js +4 -12
  73. package/src/lib/utils/hooks/useEmbeddedWalletSessionKeys/useEmbeddedWalletSessionKeys.cjs +1 -1
  74. package/src/lib/utils/hooks/useEmbeddedWalletSessionKeys/useEmbeddedWalletSessionKeys.js +1 -1
  75. package/src/lib/utils/hooks/useExternalAuth/useExternalAuth.cjs +2 -2
  76. package/src/lib/utils/hooks/useExternalAuth/useExternalAuth.js +2 -2
  77. package/src/lib/utils/hooks/useSetWalletConnectorFetchers/useSetWalletConnectorFetchers.cjs +2 -3
  78. package/src/lib/utils/hooks/useSetWalletConnectorFetchers/useSetWalletConnectorFetchers.js +2 -3
  79. package/src/lib/utils/hooks/useSignInWithPasskey/useSignInWithPasskey.cjs +14 -14
  80. package/src/lib/utils/hooks/useSignInWithPasskey/useSignInWithPasskey.js +14 -14
  81. package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.cjs +3 -3
  82. package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.js +3 -3
  83. package/src/lib/utils/hooks/useStepUpAuthentication/useStepUpAuthentication.cjs +14 -38
  84. package/src/lib/utils/hooks/useStepUpAuthentication/useStepUpAuthentication.js +14 -38
  85. package/src/lib/utils/hooks/useStepUpAuthentication/useStepUpAuthentication.types.d.ts +8 -3
  86. package/src/lib/utils/hooks/useStepUpAuthentication/useStepUpOtp.cjs +6 -10
  87. package/src/lib/utils/hooks/useStepUpAuthentication/useStepUpOtp.d.ts +2 -2
  88. package/src/lib/utils/hooks/useStepUpAuthentication/useStepUpOtp.js +6 -10
  89. package/src/lib/utils/hooks/useStepUpAuthentication/useStepUpPromptMfa.cjs +4 -1
  90. package/src/lib/utils/hooks/useStepUpAuthentication/useStepUpPromptMfa.js +4 -1
  91. package/src/lib/utils/hooks/useStepUpAuthentication/useStepUpPromptReauth.cjs +22 -6
  92. package/src/lib/utils/hooks/useStepUpAuthentication/useStepUpPromptReauth.js +22 -6
  93. package/src/lib/utils/hooks/useStepUpAuthentication/useStepUpWallet.cjs +9 -3
  94. package/src/lib/utils/hooks/useStepUpAuthentication/useStepUpWallet.d.ts +1 -1
  95. package/src/lib/utils/hooks/useStepUpAuthentication/useStepUpWallet.js +9 -3
  96. package/src/lib/utils/hooks/useSyncDeviceRegistrationFlow/useSyncDeviceRegistrationFlow.cjs +5 -1
  97. package/src/lib/utils/hooks/useSyncDeviceRegistrationFlow/useSyncDeviceRegistrationFlow.js +5 -1
  98. package/src/lib/utils/hooks/useValidateSession/handleWalletInfoOutOfSync/handleWalletInfoOutOfSync.cjs +1 -1
  99. package/src/lib/utils/hooks/useValidateSession/handleWalletInfoOutOfSync/handleWalletInfoOutOfSync.d.ts +2 -1
  100. package/src/lib/utils/hooks/useValidateSession/handleWalletInfoOutOfSync/handleWalletInfoOutOfSync.js +1 -1
  101. package/src/lib/utils/hooks/useValidateSession/useValidateSession.cjs +2 -2
  102. package/src/lib/utils/hooks/useValidateSession/useValidateSession.d.ts +2 -1
  103. package/src/lib/utils/hooks/useValidateSession/useValidateSession.js +2 -2
  104. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.cjs +0 -2
  105. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.js +0 -2
  106. package/src/lib/views/BridgeSummaryView/BridgeSummaryView.cjs +1 -1
  107. package/src/lib/views/BridgeSummaryView/BridgeSummaryView.js +1 -1
  108. package/src/lib/views/EmailVerification/EmailVerification.cjs +2 -2
  109. package/src/lib/views/EmailVerification/EmailVerification.js +2 -2
  110. package/src/lib/views/SmsVerification/useSmsVerification/useSmsVerification.cjs +2 -2
  111. package/src/lib/views/SmsVerification/useSmsVerification/useSmsVerification.js +2 -2
  112. package/src/lib/views/StepUpReauthOtpView/StepUpReauthOtpView.cjs +1 -109
  113. package/src/lib/views/StepUpReauthOtpView/StepUpReauthOtpView.js +1 -109
  114. package/src/lib/views/StepUpReauthSocialView/StepUpReauthSocialView.cjs +1 -2
  115. package/src/lib/views/StepUpReauthSocialView/StepUpReauthSocialView.js +1 -2
  116. package/src/lib/views/StepUpReauthWalletView/StepUpReauthWalletView.cjs +2 -96
  117. package/src/lib/views/StepUpReauthWalletView/StepUpReauthWalletView.js +2 -96
  118. package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeWalletCardBody/DynamicBridgeWalletCardBody.cjs +2 -2
  119. package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeWalletCardBody/DynamicBridgeWalletCardBody.d.ts +1 -0
  120. package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeWalletCardBody/DynamicBridgeWalletCardBody.js +2 -2
  121. package/src/lib/widgets/DynamicBridgeWidget/views/WalletsView/WalletsView.cjs +1 -1
  122. package/src/lib/widgets/DynamicBridgeWidget/views/WalletsView/WalletsView.js +1 -1
  123. package/src/lib/widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.cjs +1 -1
  124. package/src/lib/widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.js +1 -1
  125. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetWallets/DynamicWidgetWallets.cjs +1 -1
  126. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetWallets/DynamicWidgetWallets.js +1 -1
  127. package/src/lib/widgets/DynamicWidget/components/PasskeyCard/PasskeyCard.cjs +1 -1
  128. package/src/lib/widgets/DynamicWidget/components/PasskeyCard/PasskeyCard.js +1 -1
  129. package/src/lib/widgets/DynamicWidget/prompts/UnlinkWalletPopUp/UnlinkWalletPopUp.cjs +1 -1
  130. package/src/lib/widgets/DynamicWidget/prompts/UnlinkWalletPopUp/UnlinkWalletPopUp.js +1 -1
  131. package/src/lib/widgets/DynamicWidget/views/AccountAndSecuritySettingsView/EmbeddedWalletExportSection/EmbeddedWalletExportSection.cjs +62 -8
  132. package/src/lib/widgets/DynamicWidget/views/AccountAndSecuritySettingsView/EmbeddedWalletExportSection/EmbeddedWalletExportSection.js +63 -9
  133. package/src/lib/widgets/DynamicWidget/views/AccountAndSecuritySettingsView/MfaSection/MfaSection.cjs +12 -54
  134. package/src/lib/widgets/DynamicWidget/views/AccountAndSecuritySettingsView/MfaSection/MfaSection.js +12 -54
  135. package/src/lib/widgets/DynamicWidget/views/EditProfileView/EditProfileView.cjs +1 -1
  136. package/src/lib/widgets/DynamicWidget/views/EditProfileView/EditProfileView.js +1 -1
  137. package/src/lib/widgets/DynamicWidget/views/ExportAndRecoveryView/ExportAndRecoveryView.cjs +2 -3
  138. package/src/lib/widgets/DynamicWidget/views/ExportAndRecoveryView/ExportAndRecoveryView.js +2 -3
  139. package/src/lib/widgets/DynamicWidget/views/ManagePasskeysMfaWidgetView/ManagePasskeysMfaWidgetView.cjs +1 -1
  140. package/src/lib/widgets/DynamicWidget/views/ManagePasskeysMfaWidgetView/ManagePasskeysMfaWidgetView.js +1 -1
  141. package/src/lib/widgets/DynamicWidget/views/ManageTotpMfaWidgetView/ManageTotpMfaWidgetView.cjs +2 -2
  142. package/src/lib/widgets/DynamicWidget/views/ManageTotpMfaWidgetView/ManageTotpMfaWidgetView.js +2 -2
  143. package/src/lib/utils/functions/clientSessionKeys/constants.cjs +0 -8
  144. package/src/lib/utils/functions/clientSessionKeys/constants.js +0 -4
  145. package/src/lib/utils/hooks/useClientSessionKeys/index.d.ts +0 -1
  146. package/src/lib/utils/hooks/useClientSessionKeys/useClientSessionKeys.cjs +0 -101
  147. package/src/lib/utils/hooks/useClientSessionKeys/useClientSessionKeys.d.ts +0 -4
  148. package/src/lib/utils/hooks/useClientSessionKeys/useClientSessionKeys.js +0 -97
@@ -1 +0,0 @@
1
- export { useClientSessionKeys } from './useClientSessionKeys';
@@ -1,101 +0,0 @@
1
- 'use client'
2
- 'use strict';
3
-
4
- Object.defineProperty(exports, '__esModule', { value: true });
5
-
6
- var _tslib = require('../../../../../_virtual/_tslib.cjs');
7
- var React = require('react');
8
- var utils = require('@dynamic-labs/utils');
9
- require('@dynamic-labs-sdk/client/core');
10
- require('@dynamic-labs/sdk-api-core');
11
- require('../../../client/client.cjs');
12
- require('@dynamic-labs-sdk/client');
13
- require('../../../config/ApiEndpoint.cjs');
14
- require('@dynamic-labs/iconic');
15
- require('@dynamic-labs/wallet-connector-core');
16
- require('react/jsx-runtime');
17
- require('../../../context/ViewContext/ViewContext.cjs');
18
- var logger = require('../../../shared/logger.cjs');
19
- require('@dynamic-labs/wallet-book');
20
- require('../../constants/colors.cjs');
21
- require('../../constants/values.cjs');
22
- require('../../../shared/consts/index.cjs');
23
- require('@dynamic-labs/multi-wallet');
24
- require('react-international-phone');
25
- require('../../../store/state/nonce/nonce.cjs');
26
- require('@dynamic-labs/locale');
27
- require('../../../store/state/dynamicContextProps/dynamicContextProps.cjs');
28
- require('../../../store/state/primaryWalletId/primaryWalletId.cjs');
29
- require('../../../store/state/connectedWalletsInfo/connectedWalletsInfo.cjs');
30
- var getClientSessionKeys = require('../../functions/clientSessionKeys/getClientSessionKeys.cjs');
31
- require('../../functions/getWaasAddressTypeLabel/getWaasAddressTypeLabel.cjs');
32
- require('../../../events/dynamicEvents.cjs');
33
- var getUserProfile = require('../../../client/extension/user/getUserProfile/getUserProfile.cjs');
34
- var useOnboardingCompleteUser = require('../../../client/extension/user/useOnboardingCompleteUser/useOnboardingCompleteUser.cjs');
35
- var getMinAuthToken = require('../../../client/extension/functions/getMinAuthToken/getMinAuthToken.cjs');
36
- var sessionStorage = require('../../constants/sessionStorage.cjs');
37
-
38
- const useClientSessionKeys = () => {
39
- const user = useOnboardingCompleteUser.useOnboardingCompleteUser();
40
- const sessionPublicKey = getClientSessionKeys.getClientSessionPublicKey();
41
- // Use refs to capture latest values without causing function reference changes
42
- const userRef = React.useRef(user);
43
- const sessionPublicKeyRef = React.useRef(sessionPublicKey);
44
- // Update refs on every render
45
- userRef.current = user;
46
- sessionPublicKeyRef.current = sessionPublicKey;
47
- /**
48
- * Get a signed session ID with nonce for replay protection.
49
- * Returns signature in format: `${signedSessionId}/${signedNonce}/${nonce}`
50
- *
51
- * This is a lazy function - nonce API is only called when this function is invoked.
52
- */
53
- const getSignedSessionId = React.useCallback(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
54
- const currentUser = userRef.current;
55
- const currentPublicKey = sessionPublicKeyRef.current;
56
- if (!(currentUser === null || currentUser === void 0 ? void 0 : currentUser.sessionId) || !currentPublicKey) {
57
- logger.logger.instrument('[SessionChaining] Session ID and public key are required', {
58
- hasClientSessionKeysInSecureStorage: Boolean(utils.StorageService.getItem(sessionStorage.CLIENT_SESSION_KEYS, sessionStorage.CLIENT_SESSION_KEYS_STORAGE_OPTIONS)),
59
- hasLocalStorage: Boolean(utils.StorageService.getSourceStorage('localStorage')),
60
- hasSecureStorage: Boolean(utils.StorageService.getSourceStorage('secureStorage')),
61
- hasSessionId: currentUser ? Boolean(currentUser.sessionId) : false,
62
- hasSessionPublicKey: Boolean(currentPublicKey),
63
- hasSessionStorage: Boolean(utils.StorageService.getSourceStorage('sessionStorage')),
64
- hasUser: Boolean(currentUser),
65
- key: 'session_chaining_missing_requirements',
66
- sessionId: currentUser === null || currentUser === void 0 ? void 0 : currentUser.sessionId,
67
- sessionPublicKey: currentPublicKey,
68
- stateHasMinAuthToken: Boolean(getMinAuthToken.getMinAuthToken()),
69
- stateHasUser: Boolean(getUserProfile.getUserProfile()),
70
- time: 0,
71
- userId: currentUser === null || currentUser === void 0 ? void 0 : currentUser.id,
72
- });
73
- throw new Error('Session ID and public key are required');
74
- }
75
- const { sessionSignature: signedSessionId } = yield getClientSessionKeys.getClientSessionSignature({
76
- sessionId: currentUser.sessionId,
77
- });
78
- const { nonce, nonceSignature } = yield getClientSessionKeys.getClientSessionNonceSignature({
79
- environmentId: currentUser.projectEnvironmentId,
80
- });
81
- const sessionSignature = `${signedSessionId}/${nonceSignature}/${nonce}`;
82
- logger.logger.instrument('[SessionChaining] Generated session signature', {
83
- environmentId: currentUser.projectEnvironmentId,
84
- key: 'generated_session_signature',
85
- nonce,
86
- nonceSignature,
87
- sessionId: currentUser.sessionId,
88
- sessionPublicKey: currentPublicKey,
89
- sessionSignature,
90
- signedSessionId,
91
- time: 0,
92
- });
93
- return sessionSignature;
94
- }), []);
95
- return {
96
- getSignedSessionId,
97
- sessionPublicKey,
98
- };
99
- };
100
-
101
- exports.useClientSessionKeys = useClientSessionKeys;
@@ -1,4 +0,0 @@
1
- export declare const useClientSessionKeys: () => {
2
- getSignedSessionId: () => Promise<string>;
3
- sessionPublicKey: string | undefined;
4
- };
@@ -1,97 +0,0 @@
1
- 'use client'
2
- import { __awaiter } from '../../../../../_virtual/_tslib.js';
3
- import { useRef, useCallback } from 'react';
4
- import { StorageService } from '@dynamic-labs/utils';
5
- import '@dynamic-labs-sdk/client/core';
6
- import '@dynamic-labs/sdk-api-core';
7
- import '../../../client/client.js';
8
- import '@dynamic-labs-sdk/client';
9
- import '../../../config/ApiEndpoint.js';
10
- import '@dynamic-labs/iconic';
11
- import '@dynamic-labs/wallet-connector-core';
12
- import 'react/jsx-runtime';
13
- import '../../../context/ViewContext/ViewContext.js';
14
- import { logger } from '../../../shared/logger.js';
15
- import '@dynamic-labs/wallet-book';
16
- import '../../constants/colors.js';
17
- import '../../constants/values.js';
18
- import '../../../shared/consts/index.js';
19
- import '@dynamic-labs/multi-wallet';
20
- import 'react-international-phone';
21
- import '../../../store/state/nonce/nonce.js';
22
- import '@dynamic-labs/locale';
23
- import '../../../store/state/dynamicContextProps/dynamicContextProps.js';
24
- import '../../../store/state/primaryWalletId/primaryWalletId.js';
25
- import '../../../store/state/connectedWalletsInfo/connectedWalletsInfo.js';
26
- import { getClientSessionPublicKey, getClientSessionSignature, getClientSessionNonceSignature } from '../../functions/clientSessionKeys/getClientSessionKeys.js';
27
- import '../../functions/getWaasAddressTypeLabel/getWaasAddressTypeLabel.js';
28
- import '../../../events/dynamicEvents.js';
29
- import { getUserProfile } from '../../../client/extension/user/getUserProfile/getUserProfile.js';
30
- import { useOnboardingCompleteUser } from '../../../client/extension/user/useOnboardingCompleteUser/useOnboardingCompleteUser.js';
31
- import { getMinAuthToken } from '../../../client/extension/functions/getMinAuthToken/getMinAuthToken.js';
32
- import { CLIENT_SESSION_KEYS, CLIENT_SESSION_KEYS_STORAGE_OPTIONS } from '../../constants/sessionStorage.js';
33
-
34
- const useClientSessionKeys = () => {
35
- const user = useOnboardingCompleteUser();
36
- const sessionPublicKey = getClientSessionPublicKey();
37
- // Use refs to capture latest values without causing function reference changes
38
- const userRef = useRef(user);
39
- const sessionPublicKeyRef = useRef(sessionPublicKey);
40
- // Update refs on every render
41
- userRef.current = user;
42
- sessionPublicKeyRef.current = sessionPublicKey;
43
- /**
44
- * Get a signed session ID with nonce for replay protection.
45
- * Returns signature in format: `${signedSessionId}/${signedNonce}/${nonce}`
46
- *
47
- * This is a lazy function - nonce API is only called when this function is invoked.
48
- */
49
- const getSignedSessionId = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
50
- const currentUser = userRef.current;
51
- const currentPublicKey = sessionPublicKeyRef.current;
52
- if (!(currentUser === null || currentUser === void 0 ? void 0 : currentUser.sessionId) || !currentPublicKey) {
53
- logger.instrument('[SessionChaining] Session ID and public key are required', {
54
- hasClientSessionKeysInSecureStorage: Boolean(StorageService.getItem(CLIENT_SESSION_KEYS, CLIENT_SESSION_KEYS_STORAGE_OPTIONS)),
55
- hasLocalStorage: Boolean(StorageService.getSourceStorage('localStorage')),
56
- hasSecureStorage: Boolean(StorageService.getSourceStorage('secureStorage')),
57
- hasSessionId: currentUser ? Boolean(currentUser.sessionId) : false,
58
- hasSessionPublicKey: Boolean(currentPublicKey),
59
- hasSessionStorage: Boolean(StorageService.getSourceStorage('sessionStorage')),
60
- hasUser: Boolean(currentUser),
61
- key: 'session_chaining_missing_requirements',
62
- sessionId: currentUser === null || currentUser === void 0 ? void 0 : currentUser.sessionId,
63
- sessionPublicKey: currentPublicKey,
64
- stateHasMinAuthToken: Boolean(getMinAuthToken()),
65
- stateHasUser: Boolean(getUserProfile()),
66
- time: 0,
67
- userId: currentUser === null || currentUser === void 0 ? void 0 : currentUser.id,
68
- });
69
- throw new Error('Session ID and public key are required');
70
- }
71
- const { sessionSignature: signedSessionId } = yield getClientSessionSignature({
72
- sessionId: currentUser.sessionId,
73
- });
74
- const { nonce, nonceSignature } = yield getClientSessionNonceSignature({
75
- environmentId: currentUser.projectEnvironmentId,
76
- });
77
- const sessionSignature = `${signedSessionId}/${nonceSignature}/${nonce}`;
78
- logger.instrument('[SessionChaining] Generated session signature', {
79
- environmentId: currentUser.projectEnvironmentId,
80
- key: 'generated_session_signature',
81
- nonce,
82
- nonceSignature,
83
- sessionId: currentUser.sessionId,
84
- sessionPublicKey: currentPublicKey,
85
- sessionSignature,
86
- signedSessionId,
87
- time: 0,
88
- });
89
- return sessionSignature;
90
- }), []);
91
- return {
92
- getSignedSessionId,
93
- sessionPublicKey,
94
- };
95
- };
96
-
97
- export { useClientSessionKeys };