@dynamic-labs-sdk/client 0.24.1 → 0.25.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 (266) hide show
  1. package/android/build.gradle +71 -0
  2. package/android/src/main/java/xyz/dynamic/client/DynamicClientPackage.kt +42 -0
  3. package/android/src/main/java/xyz/dynamic/client/keychain/KeyStoreKeyManager.kt +147 -0
  4. package/android/src/main/java/xyz/dynamic/client/keychain/KeychainModule.kt +85 -0
  5. package/android/src/main/java/xyz/dynamic/client/manifest/ReactNativeManifestModule.kt +25 -0
  6. package/dist/InvalidParamError-BDHw6nr1.native.esm.js +1178 -0
  7. package/dist/InvalidParamError-BDHw6nr1.native.esm.js.map +1 -0
  8. package/dist/{InvalidParamError-9IR2C0up.cjs.js → InvalidParamError-BqDEZ6er.cjs.js} +5 -5
  9. package/dist/InvalidParamError-BqDEZ6er.cjs.js.map +1 -0
  10. package/dist/{InvalidParamError-Bq5zAFj4.esm.js → InvalidParamError-DcN56mC-.esm.js} +4 -4
  11. package/dist/InvalidParamError-DcN56mC-.esm.js.map +1 -0
  12. package/dist/NotWaasWalletAccountError-B_TYSgak.native.esm.js +50 -0
  13. package/dist/NotWaasWalletAccountError-B_TYSgak.native.esm.js.map +1 -0
  14. package/dist/{NotWaasWalletAccountError-CIJRq-EG.esm.js → NotWaasWalletAccountError-CQ7CMol4.esm.js} +3 -3
  15. package/dist/{NotWaasWalletAccountError-CIJRq-EG.esm.js.map → NotWaasWalletAccountError-CQ7CMol4.esm.js.map} +1 -1
  16. package/dist/{NotWaasWalletAccountError-DpRIY6Pd.cjs.js → NotWaasWalletAccountError-ftYfHk_N.cjs.js} +3 -3
  17. package/dist/{NotWaasWalletAccountError-DpRIY6Pd.cjs.js.map → NotWaasWalletAccountError-ftYfHk_N.cjs.js.map} +1 -1
  18. package/dist/client/core/createCore/createCore.d.ts.map +1 -1
  19. package/dist/client/core/types/DynamicCore.d.ts +4 -0
  20. package/dist/client/core/types/DynamicCore.d.ts.map +1 -1
  21. package/dist/client/types/DynamicClientConfig.d.ts +10 -0
  22. package/dist/client/types/DynamicClientConfig.d.ts.map +1 -1
  23. package/dist/core.cjs.js +36 -6
  24. package/dist/core.cjs.js.map +1 -1
  25. package/dist/core.esm.js +34 -6
  26. package/dist/core.esm.js.map +1 -1
  27. package/dist/core.native.esm.js +417 -0
  28. package/dist/core.native.esm.js.map +1 -0
  29. package/dist/errors/APIError/APIError.d.ts.map +1 -1
  30. package/dist/errors/InvalidParamError.d.ts.map +1 -1
  31. package/dist/errors/InvalidStorageValue.d.ts.map +1 -1
  32. package/dist/errors/InvalidWalletProviderKeyError.d.ts.map +1 -1
  33. package/dist/errors/MethodNotImplementedError.d.ts.map +1 -1
  34. package/dist/errors/MissingSocialUrlParamError.d.ts.map +1 -1
  35. package/dist/errors/NativeModuleNotLinkedError.d.ts +9 -0
  36. package/dist/errors/NativeModuleNotLinkedError.d.ts.map +1 -0
  37. package/dist/errors/NoSmartWalletAccountSignerFoundError.d.ts.map +1 -1
  38. package/dist/errors/ReactNativeOnlyError.d.ts +9 -0
  39. package/dist/errors/ReactNativeOnlyError.d.ts.map +1 -0
  40. package/dist/errors/UnavailableInServerSideError.d.ts.map +1 -1
  41. package/dist/errors/ValueMustBeDefinedError.d.ts.map +1 -1
  42. package/dist/errors/WalletAccountAlreadyVerifiedError.d.ts.map +1 -1
  43. package/dist/exports/core.d.ts +8 -2
  44. package/dist/exports/core.d.ts.map +1 -1
  45. package/dist/exports/index.d.ts +4 -4
  46. package/dist/exports/index.d.ts.map +1 -1
  47. package/dist/getNetworkProviderFromNetworkId-BRWuk0I8.native.esm.js +1557 -0
  48. package/dist/getNetworkProviderFromNetworkId-BRWuk0I8.native.esm.js.map +1 -0
  49. package/dist/{getNetworkProviderFromNetworkId-C4aba1hS.esm.js → getNetworkProviderFromNetworkId-COHxfpo-.esm.js} +275 -48
  50. package/dist/getNetworkProviderFromNetworkId-COHxfpo-.esm.js.map +1 -0
  51. package/dist/{getNetworkProviderFromNetworkId-COxYamJy.cjs.js → getNetworkProviderFromNetworkId-ClfETwqS.cjs.js} +304 -53
  52. package/dist/getNetworkProviderFromNetworkId-ClfETwqS.cjs.js.map +1 -0
  53. package/dist/{getSignedSessionId-_vjv5TNw.esm.js → getSignedSessionId-B6ry-rvs.esm.js} +3 -3
  54. package/dist/{getSignedSessionId-_vjv5TNw.esm.js.map → getSignedSessionId-B6ry-rvs.esm.js.map} +1 -1
  55. package/dist/{getSignedSessionId-D7uV3dw0.cjs.js → getSignedSessionId-Bkw9TATj.cjs.js} +3 -3
  56. package/dist/{getSignedSessionId-D7uV3dw0.cjs.js.map → getSignedSessionId-Bkw9TATj.cjs.js.map} +1 -1
  57. package/dist/getSignedSessionId-C58DvQAd.native.esm.js +67 -0
  58. package/dist/getSignedSessionId-C58DvQAd.native.esm.js.map +1 -0
  59. package/dist/{getVerifiedCredentialForWalletAccount-Df_wN20i.cjs.js → getVerifiedCredentialForWalletAccount-DEiU9FZG.cjs.js} +11 -10
  60. package/dist/getVerifiedCredentialForWalletAccount-DEiU9FZG.cjs.js.map +1 -0
  61. package/dist/{getVerifiedCredentialForWalletAccount-Y-aJ2rY7.esm.js → getVerifiedCredentialForWalletAccount-DP4VQBly.esm.js} +10 -9
  62. package/dist/getVerifiedCredentialForWalletAccount-DP4VQBly.esm.js.map +1 -0
  63. package/dist/getVerifiedCredentialForWalletAccount-d_bHvLLE.native.esm.js +784 -0
  64. package/dist/getVerifiedCredentialForWalletAccount-d_bHvLLE.native.esm.js.map +1 -0
  65. package/dist/index.cjs.js +143 -320
  66. package/dist/index.cjs.js.map +1 -1
  67. package/dist/index.esm.js +139 -316
  68. package/dist/index.esm.js.map +1 -1
  69. package/dist/index.native.esm.js +6799 -0
  70. package/dist/index.native.esm.js.map +1 -0
  71. package/dist/isMfaRequiredForAction-Cjbuyen3.native.esm.js +89 -0
  72. package/dist/isMfaRequiredForAction-Cjbuyen3.native.esm.js.map +1 -0
  73. package/dist/{isMfaRequiredForAction-Cc6jkbY5.esm.js → isMfaRequiredForAction-D8GPFYzv.esm.js} +2 -2
  74. package/dist/{isMfaRequiredForAction-Cc6jkbY5.esm.js.map → isMfaRequiredForAction-D8GPFYzv.esm.js.map} +1 -1
  75. package/dist/{isMfaRequiredForAction-cfGmMd_g.cjs.js → isMfaRequiredForAction-mZub0YwI.cjs.js} +2 -2
  76. package/dist/{isMfaRequiredForAction-cfGmMd_g.cjs.js.map → isMfaRequiredForAction-mZub0YwI.cjs.js.map} +1 -1
  77. package/dist/modules/auth/decodeJwt/decodeJwt.d.ts.map +1 -1
  78. package/dist/modules/auth/externalAuth/requestExternalAuthElevatedToken/requestExternalAuthElevatedToken.d.ts.map +1 -1
  79. package/dist/modules/auth/externalAuth/signInWithExternalJwt/signInWithExternalJwt.d.ts +0 -1
  80. package/dist/modules/auth/externalAuth/signInWithExternalJwt/signInWithExternalJwt.d.ts.map +1 -1
  81. package/dist/modules/auth/extractSessionId/extractSessionId.d.ts.map +1 -1
  82. package/dist/modules/auth/initializeAuth/initializeAuth.d.ts +1 -1
  83. package/dist/modules/auth/initializeAuth/setLongTimeout/setLongTimeout.d.ts +8 -2
  84. package/dist/modules/auth/initializeAuth/setLongTimeout/setLongTimeout.d.ts.map +1 -1
  85. package/dist/modules/auth/logout/logout.d.ts +1 -1
  86. package/dist/modules/auth/logout/logout.d.ts.map +1 -1
  87. package/dist/modules/auth/logoutReason.d.ts +4 -7
  88. package/dist/modules/auth/logoutReason.d.ts.map +1 -1
  89. package/dist/modules/auth/logoutWithReason/index.d.ts +2 -0
  90. package/dist/modules/auth/logoutWithReason/index.d.ts.map +1 -0
  91. package/dist/modules/auth/logoutWithReason/logoutWithReason.d.ts +24 -0
  92. package/dist/modules/auth/logoutWithReason/logoutWithReason.d.ts.map +1 -0
  93. package/dist/modules/auth/social/oauth/authenticateWithSocial/buildOAuthUrl/addOAuthUrlParams/addOAuthUrlParams.d.ts +7 -4
  94. package/dist/modules/auth/social/oauth/authenticateWithSocial/buildOAuthUrl/addOAuthUrlParams/addOAuthUrlParams.d.ts.map +1 -1
  95. package/dist/modules/auth/social/oauth/authenticateWithSocial/buildOAuthUrl/buildOAuthUrl.d.ts.map +1 -1
  96. package/dist/modules/auth/social/removeDynamicOauthParamsFromUrl/removeDynamicOauthParamsFromUrl.d.ts.map +1 -1
  97. package/dist/modules/auth/updateAuthFromVerifyResponse/elevatedAccessTokens/normalizeScopes/normalizeScopes.d.ts.map +1 -1
  98. package/dist/modules/auth/updateAuthFromVerifyResponse/elevatedAccessTokens/parseElevatedAccessToken/parseElevatedAccessToken.d.ts +6 -4
  99. package/dist/modules/auth/updateAuthFromVerifyResponse/elevatedAccessTokens/parseElevatedAccessToken/parseElevatedAccessToken.d.ts.map +1 -1
  100. package/dist/modules/auth/updateAuthFromVerifyResponse/updateAuthFromVerifyResponse.d.ts.map +1 -1
  101. package/dist/modules/checkout/attachCheckoutTransactionSource/attachCheckoutTransactionSource.d.ts +34 -6
  102. package/dist/modules/checkout/attachCheckoutTransactionSource/attachCheckoutTransactionSource.d.ts.map +1 -1
  103. package/dist/modules/checkout/broadcastCheckoutTransaction/broadcastCheckoutTransaction.d.ts +11 -3
  104. package/dist/modules/checkout/broadcastCheckoutTransaction/broadcastCheckoutTransaction.d.ts.map +1 -1
  105. package/dist/modules/checkout/checkout.types.d.ts +1 -0
  106. package/dist/modules/checkout/checkout.types.d.ts.map +1 -1
  107. package/dist/modules/checkout/trackCheckoutTransaction/trackCheckoutTransaction.d.ts +7 -3
  108. package/dist/modules/checkout/trackCheckoutTransaction/trackCheckoutTransaction.d.ts.map +1 -1
  109. package/dist/modules/checkout/utils/createCheckoutSessionTokenStorageKey/createCheckoutSessionTokenStorageKey.d.ts.map +1 -1
  110. package/dist/modules/checkout/utils/subscribeToCheckoutTransaction/subscribeToCheckoutTransaction.d.ts.map +1 -1
  111. package/dist/modules/initializeClient/initializeClient.d.ts.map +1 -1
  112. package/dist/modules/instrumentation/setInstrumentationEnabled/setInstrumentationEnabled.d.ts +6 -2
  113. package/dist/modules/instrumentation/setInstrumentationEnabled/setInstrumentationEnabled.d.ts.map +1 -1
  114. package/dist/modules/keychainMigration/migrateSessionKeyToKeychain/KeyMigrationError.d.ts.map +1 -1
  115. package/dist/modules/legacyWalletBook/getWalletConnectCatalog/shouldFilterWallet/shouldFilterWallet.d.ts +9 -5
  116. package/dist/modules/legacyWalletBook/getWalletConnectCatalog/shouldFilterWallet/shouldFilterWallet.d.ts.map +1 -1
  117. package/dist/modules/otp/sendEmailOTP/sendEmailOTP.d.ts +0 -1
  118. package/dist/modules/otp/sendEmailOTP/sendEmailOTP.d.ts.map +1 -1
  119. package/dist/modules/otp/sendSmsOTP/sendSmsOTP.d.ts +0 -1
  120. package/dist/modules/otp/sendSmsOTP/sendSmsOTP.d.ts.map +1 -1
  121. package/dist/modules/storageSync/schema.d.ts.map +1 -1
  122. package/dist/modules/user/deleteUser/deleteUser.d.ts +1 -1
  123. package/dist/modules/user/updateUser/updateUser.d.ts +0 -1
  124. package/dist/modules/user/updateUser/updateUser.d.ts.map +1 -1
  125. package/dist/modules/waas/createWaasClient/createWaasClient.d.ts.map +1 -1
  126. package/dist/modules/waas/createWaasProvider/createWaasProvider.d.ts.map +1 -1
  127. package/dist/modules/waas/getWaasChainNameFromChain/getWaasChainNameFromChain.d.ts.map +1 -1
  128. package/dist/modules/wallets/networks/createBaseNetworkProvider/createBaseNetworkProvider.d.ts.map +1 -1
  129. package/dist/modules/wallets/networks/getSdkChainFromApiChainName/getSdkChainFromApiChainName.d.ts.map +1 -1
  130. package/dist/modules/wallets/utils/assertWalletProviderMethodDefined/assertWalletProviderMethodDefined.d.ts.map +1 -1
  131. package/dist/modules/wallets/utils/getAllProvidersFromWindow/getAllProvidersFromWindow.d.ts.map +1 -1
  132. package/dist/modules/wallets/utils/getInjectedProviderFromWindow/getInjectedProviderFromWindow.d.ts.map +1 -1
  133. package/dist/modules/wallets/utils/isSameAddress/isSameAddress.d.ts +9 -1
  134. package/dist/modules/wallets/utils/isSameAddress/isSameAddress.d.ts.map +1 -1
  135. package/dist/modules/wallets/utils/normalizeAddress/normalizeAddress.d.ts +7 -1
  136. package/dist/modules/wallets/utils/normalizeAddress/normalizeAddress.d.ts.map +1 -1
  137. package/dist/modules/wallets/verifyWalletAccountForSignInOrTransfer/verifyWalletAccountForSignInOrTransfer.d.ts.map +1 -1
  138. package/dist/modules/wallets/walletProvider/splitWalletProviderKey/splitWalletProviderKey.d.ts.map +1 -1
  139. package/dist/services/instrumentation/createInstrumentation/createInstrumentation.d.ts.map +1 -1
  140. package/dist/services/instrumentation/instrumentFunction/extractParams/extractParams.d.ts.map +1 -1
  141. package/dist/services/keychain/createKeychainService/ImportKeyNotSupportedError.d.ts +5 -0
  142. package/dist/services/keychain/createKeychainService/ImportKeyNotSupportedError.d.ts.map +1 -0
  143. package/dist/services/keychain/createKeychainService/KeyNotFoundError.d.ts.map +1 -0
  144. package/dist/services/keychain/createKeychainService/createKeychainService.d.ts +4 -0
  145. package/dist/services/keychain/createKeychainService/createKeychainService.d.ts.map +1 -0
  146. package/dist/services/keychain/createKeychainService/createKeychainService.types.d.ts +11 -0
  147. package/dist/services/keychain/createKeychainService/createKeychainService.types.d.ts.map +1 -0
  148. package/dist/services/keychain/createKeychainService/index.d.ts +2 -0
  149. package/dist/services/keychain/createKeychainService/index.d.ts.map +1 -0
  150. package/dist/services/keychain/createKeychainService/utils/constants.d.ts.map +1 -0
  151. package/dist/services/keychain/createKeychainService/utils/deleteIndexedDBItem.d.ts +9 -0
  152. package/dist/services/keychain/createKeychainService/utils/deleteIndexedDBItem.d.ts.map +1 -0
  153. package/dist/services/keychain/createKeychainService/utils/getIndexedDBItem.d.ts +10 -0
  154. package/dist/services/keychain/createKeychainService/utils/getIndexedDBItem.d.ts.map +1 -0
  155. package/dist/services/keychain/createKeychainService/utils/openDatabase.d.ts.map +1 -0
  156. package/dist/services/keychain/createKeychainService/utils/setIndexedDBItem.d.ts +10 -0
  157. package/dist/services/keychain/createKeychainService/utils/setIndexedDBItem.d.ts.map +1 -0
  158. package/dist/services/keychain/createKeychainService/utils/withDatabase/index.d.ts.map +1 -0
  159. package/dist/services/keychain/createKeychainService/utils/withDatabase/withDatabase.d.ts.map +1 -0
  160. package/dist/services/keychain/index.d.ts +1 -1
  161. package/dist/services/keychain/index.d.ts.map +1 -1
  162. package/dist/services/logger/createLogger/createLogger.d.ts.map +1 -1
  163. package/dist/services/nativeManifest/getReactNativeManifest/getReactNativeManifest.d.ts +11 -0
  164. package/dist/services/nativeManifest/getReactNativeManifest/getReactNativeManifest.d.ts.map +1 -0
  165. package/dist/services/nativeManifest/getReactNativeManifest/index.d.ts +2 -0
  166. package/dist/services/nativeManifest/getReactNativeManifest/index.d.ts.map +1 -0
  167. package/dist/services/nativeManifest/nativeManifest.types.d.ts +14 -0
  168. package/dist/services/nativeManifest/nativeManifest.types.d.ts.map +1 -0
  169. package/dist/services/realtime/createRealtimeService/createRealtimeService.d.ts.map +1 -1
  170. package/dist/services/realtime/realtime.types.d.ts +1 -0
  171. package/dist/services/realtime/realtime.types.d.ts.map +1 -1
  172. package/dist/services/runtimeServices/createRuntimeServiceAccessKey/createRuntimeServiceAccessKey.d.ts.map +1 -1
  173. package/dist/services/runtimeServices/createRuntimeServices/createRuntimeServices.d.ts.map +1 -1
  174. package/dist/services/storage/createLocalStorageAdapter/createLocalStorageAdapter.d.ts +2 -2
  175. package/dist/services/storage/createStorage/createStorage.d.ts +4 -2
  176. package/dist/services/storage/createStorage/createStorage.d.ts.map +1 -1
  177. package/dist/services/storage/createStorage/formatForStorage/isValidDateISOString/isValidDateISOString.d.ts.map +1 -1
  178. package/dist/services/storage/createStorageKeySchema/createStorageKeySchema.d.ts +2 -1
  179. package/dist/services/storage/createStorageKeySchema/createStorageKeySchema.d.ts.map +1 -1
  180. package/dist/services/storage/index.d.ts +1 -1
  181. package/dist/services/storage/index.d.ts.map +1 -1
  182. package/dist/services/storage/storage.types.d.ts +27 -3
  183. package/dist/services/storage/storage.types.d.ts.map +1 -1
  184. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  185. package/dist/utils/assertDefined/assertDefined.d.ts.map +1 -1
  186. package/dist/utils/base64UrlDecode/base64UrlDecode.d.ts.map +1 -1
  187. package/dist/utils/base64urlFromBytes/base64urlFromBytes.d.ts +8 -0
  188. package/dist/utils/base64urlFromBytes/base64urlFromBytes.d.ts.map +1 -0
  189. package/dist/utils/base64urlFromBytes/index.d.ts +2 -0
  190. package/dist/utils/base64urlFromBytes/index.d.ts.map +1 -0
  191. package/dist/utils/bytesFromBase64url/bytesFromBase64url.d.ts +8 -0
  192. package/dist/utils/bytesFromBase64url/bytesFromBase64url.d.ts.map +1 -0
  193. package/dist/utils/bytesFromBase64url/index.d.ts +2 -0
  194. package/dist/utils/bytesFromBase64url/index.d.ts.map +1 -0
  195. package/dist/utils/derToP1363/InvalidDERSignatureError.d.ts +5 -0
  196. package/dist/utils/derToP1363/InvalidDERSignatureError.d.ts.map +1 -0
  197. package/dist/utils/derToP1363/derToP1363.d.ts +8 -0
  198. package/dist/utils/derToP1363/derToP1363.d.ts.map +1 -0
  199. package/dist/utils/derToP1363/index.d.ts +2 -0
  200. package/dist/utils/derToP1363/index.d.ts.map +1 -0
  201. package/dist/utils/digestSHA256/digestSHA256.d.ts.map +1 -1
  202. package/dist/utils/getChainFromVerifiedCredentialChain/getChainFromVerifiedCredentialChain.d.ts.map +1 -1
  203. package/dist/utils/isEqualShallow/isEqualShallow.d.ts.map +1 -1
  204. package/dist/utils/isErrorWithCode/isErrorWithCode.d.ts.map +1 -1
  205. package/dist/utils/isMobile/isMobile.d.ts.map +1 -1
  206. package/dist/utils/observable/createObservableState/createObservableState.d.ts.map +1 -1
  207. package/dist/utils/observable/subscribeWithSelector/subscribeWithSelector.d.ts.map +1 -1
  208. package/dist/utils/randomString/randomString.d.ts +1 -1
  209. package/dist/utils/randomString/randomString.d.ts.map +1 -1
  210. package/dist/utils/retryOnFail/InvalidRetryOnFailCallError.d.ts.map +1 -1
  211. package/dist/utils/setCookie/setCookie.d.ts.map +1 -1
  212. package/dist/waas.cjs.js +4 -4
  213. package/dist/waas.esm.js +3 -3
  214. package/dist/waas.native.esm.js +506 -0
  215. package/dist/waas.native.esm.js.map +1 -0
  216. package/dist/waasCore.cjs.js +7 -5
  217. package/dist/waasCore.cjs.js.map +1 -1
  218. package/dist/waasCore.esm.js +6 -4
  219. package/dist/waasCore.esm.js.map +1 -1
  220. package/dist/waasCore.native.esm.js +253 -0
  221. package/dist/waasCore.native.esm.js.map +1 -0
  222. package/dynamic-labs-sdk-client.podspec +27 -0
  223. package/ios/Keychain.h +4 -0
  224. package/ios/Keychain.mm +101 -0
  225. package/ios/ReactNativeManifest.h +4 -0
  226. package/ios/ReactNativeManifest.mm +45 -0
  227. package/ios/ReactNativeManifestImpl.swift +20 -0
  228. package/ios/SecureEnclaveKeyManager.swift +180 -0
  229. package/package.json +40 -6
  230. package/react-native.config.cjs +14 -0
  231. package/dist/InvalidParamError-9IR2C0up.cjs.js.map +0 -1
  232. package/dist/InvalidParamError-Bq5zAFj4.esm.js.map +0 -1
  233. package/dist/getNetworkProviderFromNetworkId-C4aba1hS.esm.js.map +0 -1
  234. package/dist/getNetworkProviderFromNetworkId-COxYamJy.cjs.js.map +0 -1
  235. package/dist/getVerifiedCredentialForWalletAccount-Df_wN20i.cjs.js.map +0 -1
  236. package/dist/getVerifiedCredentialForWalletAccount-Y-aJ2rY7.esm.js.map +0 -1
  237. package/dist/modules/auth/handleSessionExpiration/handleSessionExpiration.d.ts +0 -11
  238. package/dist/modules/auth/handleSessionExpiration/handleSessionExpiration.d.ts.map +0 -1
  239. package/dist/modules/auth/handleSessionExpiration/index.d.ts +0 -2
  240. package/dist/modules/auth/handleSessionExpiration/index.d.ts.map +0 -1
  241. package/dist/modules/auth/performLogout/index.d.ts +0 -2
  242. package/dist/modules/auth/performLogout/index.d.ts.map +0 -1
  243. package/dist/modules/auth/performLogout/performLogout.d.ts +0 -12
  244. package/dist/modules/auth/performLogout/performLogout.d.ts.map +0 -1
  245. package/dist/services/keychain/createIndexedDBKeychainService/KeyNotFoundError.d.ts.map +0 -1
  246. package/dist/services/keychain/createIndexedDBKeychainService/createIndexedDBKeychainService.d.ts +0 -8
  247. package/dist/services/keychain/createIndexedDBKeychainService/createIndexedDBKeychainService.d.ts.map +0 -1
  248. package/dist/services/keychain/createIndexedDBKeychainService/createIndexedDBKeychainService.types.d.ts +0 -6
  249. package/dist/services/keychain/createIndexedDBKeychainService/createIndexedDBKeychainService.types.d.ts.map +0 -1
  250. package/dist/services/keychain/createIndexedDBKeychainService/index.d.ts +0 -2
  251. package/dist/services/keychain/createIndexedDBKeychainService/index.d.ts.map +0 -1
  252. package/dist/services/keychain/createIndexedDBKeychainService/utils/constants.d.ts.map +0 -1
  253. package/dist/services/keychain/createIndexedDBKeychainService/utils/deleteIndexedDBItem.d.ts +0 -3
  254. package/dist/services/keychain/createIndexedDBKeychainService/utils/deleteIndexedDBItem.d.ts.map +0 -1
  255. package/dist/services/keychain/createIndexedDBKeychainService/utils/getIndexedDBItem.d.ts +0 -4
  256. package/dist/services/keychain/createIndexedDBKeychainService/utils/getIndexedDBItem.d.ts.map +0 -1
  257. package/dist/services/keychain/createIndexedDBKeychainService/utils/openDatabase.d.ts.map +0 -1
  258. package/dist/services/keychain/createIndexedDBKeychainService/utils/setIndexedDBItem.d.ts +0 -4
  259. package/dist/services/keychain/createIndexedDBKeychainService/utils/setIndexedDBItem.d.ts.map +0 -1
  260. package/dist/services/keychain/createIndexedDBKeychainService/utils/withDatabase/index.d.ts.map +0 -1
  261. package/dist/services/keychain/createIndexedDBKeychainService/utils/withDatabase/withDatabase.d.ts.map +0 -1
  262. /package/dist/services/keychain/{createIndexedDBKeychainService → createKeychainService}/KeyNotFoundError.d.ts +0 -0
  263. /package/dist/services/keychain/{createIndexedDBKeychainService → createKeychainService}/utils/constants.d.ts +0 -0
  264. /package/dist/services/keychain/{createIndexedDBKeychainService → createKeychainService}/utils/openDatabase.d.ts +0 -0
  265. /package/dist/services/keychain/{createIndexedDBKeychainService → createKeychainService}/utils/withDatabase/index.d.ts +0 -0
  266. /package/dist/services/keychain/{createIndexedDBKeychainService → createKeychainService}/utils/withDatabase/withDatabase.d.ts +0 -0
package/dist/index.cjs.js CHANGED
@@ -1,8 +1,8 @@
1
- const require_getNetworkProviderFromNetworkId = require('./getNetworkProviderFromNetworkId-COxYamJy.cjs.js');
2
- const require_InvalidParamError = require('./InvalidParamError-9IR2C0up.cjs.js');
3
- const require_getVerifiedCredentialForWalletAccount = require('./getVerifiedCredentialForWalletAccount-Df_wN20i.cjs.js');
4
- const require_NotWaasWalletAccountError = require('./NotWaasWalletAccountError-DpRIY6Pd.cjs.js');
5
- const require_isMfaRequiredForAction = require('./isMfaRequiredForAction-cfGmMd_g.cjs.js');
1
+ const require_getNetworkProviderFromNetworkId = require('./getNetworkProviderFromNetworkId-ClfETwqS.cjs.js');
2
+ const require_InvalidParamError = require('./InvalidParamError-BqDEZ6er.cjs.js');
3
+ const require_getVerifiedCredentialForWalletAccount = require('./getVerifiedCredentialForWalletAccount-DEiU9FZG.cjs.js');
4
+ const require_NotWaasWalletAccountError = require('./NotWaasWalletAccountError-ftYfHk_N.cjs.js');
5
+ const require_isMfaRequiredForAction = require('./isMfaRequiredForAction-mZub0YwI.cjs.js');
6
6
  let _dynamic_labs_sdk_assert_package_version = require("@dynamic-labs-sdk/assert-package-version");
7
7
  let _dynamic_labs_sdk_api_core = require("@dynamic-labs/sdk-api-core");
8
8
  let zod_mini = require("zod/mini");
@@ -35,113 +35,6 @@ const prefetchNoncesIfNeeded = async (client) => {
35
35
  await require_InvalidParamError.fetchAndStoreNonces(client);
36
36
  };
37
37
 
38
- //#endregion
39
- //#region src/utils/retryOnFail/InvalidRetryOnFailCallError.ts
40
- /**
41
- * This error is thrown when the `retryOnFail` function is called with an invalid
42
- * number of retries (i.e. less than 0).
43
- */
44
- var InvalidRetryOnFailCallError = class extends require_InvalidParamError.BaseError {
45
- constructor(maxRetries) {
46
- super({
47
- cause: null,
48
- code: "invalid_retry_on_fail_call_error",
49
- docsUrl: null,
50
- name: "InvalidRetryOnFailCallError",
51
- shortMessage: `Invalid retries parameter for retryOnFail call: ${maxRetries}`
52
- });
53
- }
54
- };
55
-
56
- //#endregion
57
- //#region src/utils/retryOnFail/retryOnFail.ts
58
- /** @not-instrumented */
59
- const retryOnFail = async ({ delay = 0, fn, maxRetries }) => {
60
- for (let retry = 0; retry <= maxRetries; retry++) try {
61
- return await fn();
62
- } catch (error) {
63
- if (retry >= maxRetries) throw error;
64
- if (delay > 0) await new Promise((resolve) => setTimeout(resolve, delay));
65
- }
66
- /**
67
- * Reaching this point should never happen and this
68
- * error is thrown to help us debug the issue.
69
- */
70
- throw new InvalidRetryOnFailCallError(maxRetries);
71
- };
72
-
73
- //#endregion
74
- //#region src/modules/auth/isSignedIn/isSignedIn.ts
75
- /**
76
- * Checks if the user is currently signed in to the Dynamic client.
77
- *
78
- * The client is considered to be in a signed in state if a user has
79
- * authenticated or if the client has at least one wallet connected.
80
- *
81
- * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
82
- * @returns True if the user is signed in, false otherwise.
83
- * @not-instrumented
84
- */
85
- const isSignedIn = (client = require_InvalidParamError.getDefaultClient()) => Boolean(client.user || require_getVerifiedCredentialForWalletAccount.__getWalletAccounts_wrapped(client).length > 0);
86
-
87
- //#endregion
88
- //#region src/modules/projectSettings/fetchProjectSettings/projectSettingsExpirationScheme.ts
89
- /**
90
- * The schema to track the expiration time of the project settings.
91
- */
92
- const projectSettingsExpirationStorageKeySchema = require_getNetworkProviderFromNetworkId.__createStorageKeySchema_wrapped({
93
- key: "projectSettingsExpiration",
94
- schema: zod_mini.number()
95
- });
96
-
97
- //#endregion
98
- //#region src/modules/projectSettings/fetchProjectSettings/fetchProjectSettings.ts
99
- /**
100
- * Expiration time of the project settings in milliseconds.
101
- */
102
- const PROJECT_SETTINGS_EXPIRATION_TIME = 1e3 * 60 * 5;
103
- /**
104
- * Fetches and updates the project settings from the API.
105
- *
106
- * This function retrieves the latest project configuration settings
107
- * from Dynamic's servers, including authentication options, enabled chains,
108
- * and security configurations. The settings are cached for performance.
109
- *
110
- * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
111
- * @returns A promise that resolves to the updated project settings.
112
- * @instrumented
113
- */
114
- const fetchProjectSettings = async (client = require_InvalidParamError.getDefaultClient()) => {
115
- const core = require_InvalidParamError.getCore(client);
116
- const currentExpiration = await core.storage.getItem(projectSettingsExpirationStorageKeySchema);
117
- if (Boolean(client.projectSettings) && !(currentExpiration && currentExpiration < Date.now()) && isSignedIn(client)) return client.projectSettings;
118
- const apiClient = require_InvalidParamError.__createApiClient_wrapped({}, client);
119
- core.logger.debug("[fetchProjectSettings] Fetching project settings...");
120
- const doFetch = async () => apiClient.getEnvironmentSettings({
121
- environmentId: core.environmentId,
122
- sdkVersion: `${require_InvalidParamError.CLIENT_SDK_NAME}/${core.version}`
123
- }, { credentials: "omit" });
124
- const projectSettings = await retryOnFail({
125
- fn: doFetch,
126
- maxRetries: 2
127
- });
128
- core.state.set({ projectSettings: projectSettings ?? null });
129
- await core.storage.setItem(projectSettingsExpirationStorageKeySchema, Date.now() + PROJECT_SETTINGS_EXPIRATION_TIME);
130
- return projectSettings;
131
- };
132
- const __fetchProjectSettings_impl = fetchProjectSettings;
133
- const __fetchProjectSettings_wrapped = require_InvalidParamError.instrumentFunction({
134
- fn: __fetchProjectSettings_impl,
135
- functionName: "fetchProjectSettings",
136
- getCore: () => {
137
- try {
138
- return require_InvalidParamError.getCore(require_InvalidParamError.getDefaultClient());
139
- } catch {
140
- return;
141
- }
142
- }
143
- });
144
-
145
38
  //#endregion
146
39
  //#region src/services/runtimeServices/createRuntimeServices/createRuntimeServices.ts
147
40
  /**
@@ -159,124 +52,13 @@ const createRuntimeServices = () => {
159
52
  };
160
53
  };
161
54
 
162
- //#endregion
163
- //#region src/modules/wallets/utils/getAvailableWalletProvidersFromWalletAccounts/getAvailableWalletProvidersFromWalletAccounts.ts
164
- /** @not-instrumented */
165
- const getAvailableWalletProvidersFromWalletAccounts = (client) => {
166
- const core = require_InvalidParamError.getCore(client);
167
- const walletProvidersMap = /* @__PURE__ */ new Map();
168
- require_getVerifiedCredentialForWalletAccount.__getWalletAccounts_wrapped(client).forEach((walletAccount) => {
169
- if (walletProvidersMap.has(walletAccount.walletProviderKey)) return;
170
- try {
171
- const walletProvider = require_getVerifiedCredentialForWalletAccount.__getWalletProviderFromWalletAccount_wrapped({ walletAccount }, client);
172
- walletProvidersMap.set(walletAccount.walletProviderKey, walletProvider);
173
- } catch (error) {
174
- core.logger.debug("Wallet provider not found for wallet account", {
175
- error,
176
- walletAccount: walletAccount.address
177
- });
178
- }
179
- });
180
- return Array.from(walletProvidersMap.values());
181
- };
182
-
183
- //#endregion
184
- //#region src/modules/wallets/disconnectAndTerminateWalletProviders/disconnectAndTerminateWalletProviders.ts
185
- /**
186
- * Disconnect and terminate each wallet provider, if available.
187
- * @not-instrumented
188
- */
189
- const disconnectAndTerminateWalletProviders = async ({ reason }, client) => {
190
- const core = require_InvalidParamError.getCore(client);
191
- const walletProviders = getAvailableWalletProvidersFromWalletAccounts(client);
192
- await Promise.all(walletProviders.map(async (walletProvider) => {
193
- if (walletProvider.terminate) await walletProvider.terminate({ reason });
194
- if (walletProvider.disconnect) try {
195
- await walletProvider.disconnect();
196
- } catch (err) {
197
- core.logger.error(`Error disconnecting from wallet ${walletProvider.key}`, err);
198
- }
199
- }));
200
- };
201
-
202
- //#endregion
203
- //#region src/modules/auth/performLogout/performLogout.ts
204
- /**
205
- * Shared logout implementation that revokes the session, clears auth state,
206
- * terminates wallet providers, and emits the logout event with the given reason.
207
- *
208
- * @not-instrumented
209
- */
210
- const performLogout = async ({ reason }, client) => {
211
- const core = require_InvalidParamError.getCore(client);
212
- core.logger.debug("[logout] Logging out...");
213
- await disconnectAndTerminateWalletProviders({ reason }, client);
214
- if (client.user !== null) {
215
- const apiClient = require_InvalidParamError.__createApiClient_wrapped({}, client);
216
- try {
217
- await apiClient.revokeSession({ environmentId: core.environmentId });
218
- } catch (error) {
219
- core.logger.error("Failed to revoke session", error);
220
- }
221
- /**
222
- * This deletes the auth cookie if it exists.
223
- * If the cookie doesn't exist, this sets a new cookie that expires immediately.
224
- */
225
- if (require_InvalidParamError.isCookieEnabled(client)) require_getVerifiedCredentialForWalletAccount.setCookie(`${require_getVerifiedCredentialForWalletAccount.DYNAMIC_AUTH_COOKIE_NAME}=; Max-Age=-99999999; path=/; SameSite=Lax`);
226
- }
227
- await core.keychain.removeKey("session");
228
- core.state.set({
229
- captchaToken: null,
230
- elevatedAccessTokens: [],
231
- legacyToken: null,
232
- mfaToken: null,
233
- sessionExpiresAt: null,
234
- sessionKeys: null,
235
- token: null,
236
- unverifiedWalletAccounts: [],
237
- user: null
238
- });
239
- require_getVerifiedCredentialForWalletAccount.emitEvent({
240
- args: { reason },
241
- event: "logout"
242
- }, client);
243
- __fetchProjectSettings_wrapped(client);
244
- require_getNetworkProviderFromNetworkId.__generateSessionKeys_wrapped(client);
245
- };
246
-
247
- //#endregion
248
- //#region src/modules/auth/handleSessionExpiration/handleSessionExpiration.ts
249
- /**
250
- * Logs out due to session expiry with a token-expired reason,
251
- * allowing downstream providers to decide their own cleanup behavior.
252
- *
253
- * @param client - The Dynamic client instance.
254
- * @returns A promise that resolves when the logout process is complete.
255
- * @instrumented
256
- */
257
- const handleSessionExpiration = async (client) => {
258
- return performLogout({ reason: "token-expired" }, client);
259
- };
260
- const __handleSessionExpiration_impl = handleSessionExpiration;
261
- const __handleSessionExpiration_wrapped = require_InvalidParamError.instrumentFunction({
262
- fn: __handleSessionExpiration_impl,
263
- functionName: "handleSessionExpiration",
264
- getCore: () => {
265
- try {
266
- return require_InvalidParamError.getCore(require_InvalidParamError.getDefaultClient());
267
- } catch {
268
- return;
269
- }
270
- }
271
- });
272
-
273
55
  //#endregion
274
56
  //#region src/modules/auth/initializeAuth/setLongTimeout/setLongTimeout.ts
275
57
  /**
276
58
  * A replacement for setTimeout that supports delays longer than 2147483647ms (~24.8 days).
277
59
  * @not-instrumented
278
60
  */
279
- const setLongTimeout = (callback, delay) => {
61
+ const setLongTimeout = ({ callback, delay }) => {
280
62
  const MAX_DELAY = 2147483647;
281
63
  let timeoutId = null;
282
64
  let remaining = delay;
@@ -310,40 +92,18 @@ const initializeAuth = (client) => {
310
92
  const now = /* @__PURE__ */ new Date();
311
93
  const timeUntilExpiration = expiration.getTime() - now.getTime();
312
94
  if (timeUntilExpiration <= 0) {
313
- __handleSessionExpiration_wrapped(client);
95
+ require_getNetworkProviderFromNetworkId.__logoutWithReason_wrapped({ reason: "token-expired" }, client);
314
96
  return;
315
97
  }
316
- clearExpirationTimeout = setLongTimeout(checkExpiration, timeUntilExpiration);
98
+ clearExpirationTimeout = setLongTimeout({
99
+ callback: checkExpiration,
100
+ delay: timeUntilExpiration
101
+ });
317
102
  };
318
103
  onChangeExpiration(checkExpiration);
319
104
  checkExpiration();
320
105
  };
321
106
 
322
- //#endregion
323
- //#region src/modules/auth/logout/logout.ts
324
- /**
325
- * Logs out the current user and clears all authentication data.
326
- *
327
- * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
328
- * @returns A promise that resolves when the logout process is complete.
329
- * @instrumented
330
- */
331
- const logout = async (client = require_InvalidParamError.getDefaultClient()) => {
332
- return performLogout({ reason: "user-intent" }, client);
333
- };
334
- const __logout_impl = logout;
335
- const __logout_wrapped = require_InvalidParamError.instrumentFunction({
336
- fn: __logout_impl,
337
- functionName: "logout",
338
- getCore: () => {
339
- try {
340
- return require_InvalidParamError.getCore(require_InvalidParamError.getDefaultClient());
341
- } catch {
342
- return;
343
- }
344
- }
345
- });
346
-
347
107
  //#endregion
348
108
  //#region src/modules/crossTabEventSync/setupCrossTabEventSync/setupCrossTabEventSync.ts
349
109
  /**
@@ -410,6 +170,7 @@ const stateStorageKeySchema = require_getNetworkProviderFromNetworkId.__createSt
410
170
  })
411
171
  });
412
172
  const sessionStorageKeySchema = require_getNetworkProviderFromNetworkId.__createStorageKeySchema_wrapped({
173
+ config: { storageTier: "secure" },
413
174
  key: "session",
414
175
  schema: zod_mini.object({
415
176
  captchaToken: zod_mini.nullable(zod_mini.string()),
@@ -668,10 +429,10 @@ const initializeClient = async (client = require_InvalidParamError.getDefaultCli
668
429
  logger: core.logger,
669
430
  state: core.state,
670
431
  storage: core.storage
671
- }).catch(() => __logout_wrapped(client));
672
- if (core.state.get().sessionKeys && !await core.keychain.hasKey("session")) await __logout_wrapped(client);
432
+ }).catch(() => require_getNetworkProviderFromNetworkId.__logoutWithReason_wrapped({ reason: "keychain-migration-failed" }, client));
433
+ if (core.state.get().sessionKeys && !await core.keychain.hasKey("session")) await require_getNetworkProviderFromNetworkId.__logoutWithReason_wrapped({ reason: "keychain-key-missing" }, client);
673
434
  }).then(async () => {
674
- if (!core.state.get().projectSettings) await __fetchProjectSettings_wrapped(client);
435
+ if (!core.state.get().projectSettings) await require_getNetworkProviderFromNetworkId.__fetchProjectSettings_wrapped(client);
675
436
  });
676
437
  fetchProjectSettingsPromise.then(() => prefetchNoncesIfNeeded(client)).catch((error) => {
677
438
  core.logger.error("Failed to prefetch nonces:", error);
@@ -705,7 +466,7 @@ const initializeClient = async (client = require_InvalidParamError.getDefaultCli
705
466
  if (require_InvalidParamError.isCookieEnabled(client)) await require_NotWaasWalletAccountError.__refreshAuth_wrapped(client).catch(async (error) => {
706
467
  if (error.status === 401) {
707
468
  core.logger.error("Session expired during initialization", error);
708
- if (client.user) await __logout_wrapped(client);
469
+ if (client.user) await require_getNetworkProviderFromNetworkId.__logoutWithReason_wrapped({ reason: "session-refresh-unauthorized" }, client);
709
470
  } else throw error;
710
471
  });
711
472
  });
@@ -716,7 +477,7 @@ const initializeClient = async (client = require_InvalidParamError.getDefaultCli
716
477
  */
717
478
  const refreshUserStateFromValidTokenPromise = refreshUserStateFromCookiePromise.then(async () => {
718
479
  if (core.state.get().token && !core.state.get().user) await __refreshUser_wrapped(client).catch(async () => {
719
- await __logout_wrapped(client);
480
+ await require_getNetworkProviderFromNetworkId.__logoutWithReason_wrapped({ reason: "user-refresh-failed" }, client);
720
481
  });
721
482
  });
722
483
  core.initTrack.track({
@@ -1206,7 +967,7 @@ const createCore = (config) => {
1206
967
  const passkey = config.coreConfig?.passkey ?? createWebPasskeyService();
1207
968
  const realtime = config.coreConfig?.realtime ?? require_getNetworkProviderFromNetworkId.__createRealtimeService_wrapped();
1208
969
  const deviceSigner = config.coreConfig?.deviceSigner;
1209
- const keychain = config.coreConfig?.keychain ?? require_getNetworkProviderFromNetworkId.__createIndexedDBKeychainService_wrapped({ dbName: `dynamic_${config.environmentId}_keychain` });
970
+ const keychain = config.coreConfig?.keychain ?? require_getNetworkProviderFromNetworkId.createKeychainService({ dbName: `dynamic_${config.environmentId}_keychain` });
1210
971
  return {
1211
972
  apiBaseUrl,
1212
973
  crossTabBroadcast: config.coreConfig?.crossTabBroadcast ?? require_getNetworkProviderFromNetworkId.__createCrossTabBroadcast_wrapped({ channelName: `dynamic_${config.environmentId}_broadcast` }),
@@ -1234,7 +995,8 @@ const createCore = (config) => {
1234
995
  state,
1235
996
  storage,
1236
997
  transformers: config.transformers,
1237
- version: require_InvalidParamError.version
998
+ version: require_InvalidParamError.version,
999
+ waas: config.waas
1238
1000
  };
1239
1001
  };
1240
1002
 
@@ -1750,7 +1512,7 @@ const requestExternalAuthElevatedToken = async ({ externalJwt }, client = requir
1750
1512
  environmentId: core.environmentId,
1751
1513
  externalAuthSigninRequest: { jwt: externalJwt }
1752
1514
  });
1753
- const parsedToken = require_getVerifiedCredentialForWalletAccount.parseElevatedAccessToken(response.elevatedAccessToken);
1515
+ const parsedToken = require_getVerifiedCredentialForWalletAccount.parseElevatedAccessToken({ token: response.elevatedAccessToken });
1754
1516
  if (parsedToken) {
1755
1517
  const currentTokens = core.state.get().elevatedAccessTokens || [];
1756
1518
  core.state.set({ elevatedAccessTokens: require_getVerifiedCredentialForWalletAccount.upsertElevatedAccessToken({
@@ -1785,7 +1547,6 @@ const __requestExternalAuthElevatedToken_wrapped = require_InvalidParamError.ins
1785
1547
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
1786
1548
  * @returns A promise that resolves to the authentication response from the server.
1787
1549
  * @instrumented
1788
-
1789
1550
  * @redact-params
1790
1551
  */
1791
1552
  const signInWithExternalJwt = async ({ externalJwt, sessionPublicKey } = {}, client = require_InvalidParamError.getDefaultClient()) => {
@@ -1814,6 +1575,25 @@ const __signInWithExternalJwt_wrapped = require_InvalidParamError.instrumentFunc
1814
1575
  redactAll: true
1815
1576
  });
1816
1577
 
1578
+ //#endregion
1579
+ //#region src/modules/auth/logout/logout.ts
1580
+ /**
1581
+ * Logs out the current user and clears all authentication data.
1582
+ *
1583
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
1584
+ * @returns A promise that resolves when the logout process is complete.
1585
+ * @not-instrumented
1586
+ */
1587
+ const logout = async (client = require_InvalidParamError.getDefaultClient()) => {
1588
+ /**
1589
+ * Delegates to `logoutWithReason` with `'user-intent'` so telemetry correctly
1590
+ * attributes the logout to an explicit user action. Instrumentation lives on
1591
+ * `logoutWithReason` — this wrapper is intentionally not instrumented so that
1592
+ * Datadog sees a single function name per logout regardless of entry point.
1593
+ */
1594
+ return require_getNetworkProviderFromNetworkId.__logoutWithReason_wrapped({ reason: "user-intent" }, client);
1595
+ };
1596
+
1817
1597
  //#endregion
1818
1598
  //#region src/modules/auth/passkeys/deletePasskey/deletePasskey.ts
1819
1599
  /**
@@ -2091,7 +1871,7 @@ const APPLE_RESPONSE_MODE = "form_post";
2091
1871
  const APPLE_RESPONSE_TYPE = "code id_token";
2092
1872
  /** Helper function to add OAuth URL parameters to a given base URL. * @not-instrumented
2093
1873
  */
2094
- const addOAuthUrlParams = (provider, baseUrl, options = {}) => {
1874
+ const addOAuthUrlParams = ({ baseUrl, isGoogleDriveBackupEnabled, provider }) => {
2095
1875
  require_InvalidParamError.assertDefined(provider.clientId, "Client ID not found");
2096
1876
  require_InvalidParamError.assertDefined(provider.provider, "Provider type not found");
2097
1877
  require_InvalidParamError.assertDefined(provider.redirectUrl, "Redirect URL not found");
@@ -2105,7 +1885,7 @@ const addOAuthUrlParams = (provider, baseUrl, options = {}) => {
2105
1885
  }
2106
1886
  if (providerType === _dynamic_labs_sdk_api_core.ProviderEnum.Google) {
2107
1887
  baseUrl.searchParams.set("access_type", "offline");
2108
- if (options.isGoogleDriveBackupEnabled) baseUrl.searchParams.set("prompt", "consent");
1888
+ if (isGoogleDriveBackupEnabled) baseUrl.searchParams.set("prompt", "consent");
2109
1889
  }
2110
1890
  if (providerType === _dynamic_labs_sdk_api_core.ProviderEnum.Apple) {
2111
1891
  baseUrl.searchParams.set("response_mode", APPLE_RESPONSE_MODE);
@@ -2147,7 +1927,11 @@ const buildOAuthUrl = async (core, provider) => {
2147
1927
  const socialProvider = projectSettings.providers.find((p) => p.provider === provider);
2148
1928
  require_InvalidParamError.assertDefined(socialProvider, `Social provider ${provider} not supported`);
2149
1929
  const isGoogleDriveBackupEnabled = projectSettings.sdk.waas?.backupOptions?.includes(_dynamic_labs_sdk_api_core.WaasBackupOptionsEnum.GoogleDrive);
2150
- const socialProviderUrl = addOAuthUrlParams(socialProvider, getOAuthBaseUrl(socialProvider), { isGoogleDriveBackupEnabled });
1930
+ const socialProviderUrl = addOAuthUrlParams({
1931
+ baseUrl: getOAuthBaseUrl(socialProvider),
1932
+ isGoogleDriveBackupEnabled,
1933
+ provider: socialProvider
1934
+ });
2151
1935
  const usingPkce = providersRequiringPkce.includes(provider);
2152
1936
  const state = require_InvalidParamError.randomString({ length: 32 });
2153
1937
  const codeVerifier = require_InvalidParamError.randomString({ length: 43 });
@@ -2487,22 +2271,29 @@ const createCheckoutApiClient = async ({ transactionId }, client) => {
2487
2271
  //#endregion
2488
2272
  //#region src/modules/checkout/attachCheckoutTransactionSource/attachCheckoutTransactionSource.ts
2489
2273
  /**
2490
- * Attaches a wallet source to a checkout transaction
2274
+ * Attaches a payment source to a checkout transaction.
2275
+ *
2276
+ * For exchange sources, the backend generates the buy URL and creates the
2277
+ * exchange source record. The response includes `exchangeSource.metadata.url`
2278
+ * which can be embedded in an iframe for the user to complete payment.
2491
2279
  *
2492
2280
  * @param params AttachCheckoutTransactionSourceParams - The source details to attach.
2493
2281
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
2494
- * @returns The updated checkout transaction
2282
+ * @returns The updated checkout transaction (with exchangeSource if sourceType is 'exchange')
2495
2283
  * @instrumented
2496
2284
  */
2497
- const attachCheckoutTransactionSource = async ({ fromAddress, fromChainId, fromChainName, transactionId }, client = require_InvalidParamError.getDefaultClient()) => {
2285
+ const attachCheckoutTransactionSource = async (params, client = require_InvalidParamError.getDefaultClient()) => {
2286
+ const { transactionId, sourceType = "wallet" } = params;
2498
2287
  const { apiClient, environmentId, sessionToken } = await createCheckoutApiClient({ transactionId }, client);
2288
+ const attachSourceRequest = { sourceType };
2289
+ if (params.sourceType === "exchange") attachSourceRequest.exchangeProvider = params.exchangeProvider;
2290
+ else {
2291
+ attachSourceRequest.fromAddress = params.fromAddress;
2292
+ attachSourceRequest.fromChainId = params.fromChainId;
2293
+ attachSourceRequest.fromChainName = params.fromChainName;
2294
+ }
2499
2295
  return apiClient.attachSource({
2500
- attachSourceRequest: {
2501
- fromAddress,
2502
- fromChainId,
2503
- fromChainName,
2504
- sourceType: "wallet"
2505
- },
2296
+ attachSourceRequest,
2506
2297
  environmentId,
2507
2298
  transactionId,
2508
2299
  xDynamicCheckoutSessionToken: sessionToken
@@ -2524,9 +2315,13 @@ const __attachCheckoutTransactionSource_wrapped = require_InvalidParamError.inst
2524
2315
  //#endregion
2525
2316
  //#region src/modules/checkout/broadcastCheckoutTransaction/broadcastCheckoutTransaction.ts
2526
2317
  /**
2527
- * Records the on-chain broadcast of a checkout transaction
2318
+ * Records that a checkout transaction has been broadcasted.
2319
+ *
2320
+ * For wallet sources, pass the `txHash` from the on-chain transaction.
2321
+ * For exchange sources, `txHash` can be omitted — the user confirms
2322
+ * they completed the payment and the transaction moves to `broadcasted`.
2528
2323
  *
2529
- * @param params BroadcastCheckoutTransactionParams - The transaction ID and tx hash.
2324
+ * @param params BroadcastCheckoutTransactionParams - The transaction ID and optional tx hash.
2530
2325
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
2531
2326
  * @returns The updated checkout transaction
2532
2327
  * @instrumented
@@ -2641,8 +2436,20 @@ const isTerminalEvent = (data) => {
2641
2436
  * @not-instrumented
2642
2437
  */
2643
2438
  const subscribeToCheckoutTransaction = async ({ transactionId }, client) => {
2644
- const { realtime } = require_InvalidParamError.getCore(client);
2645
- if (realtime.getConnectionState() === "idle") await realtime.connect({ client });
2439
+ const core = require_InvalidParamError.getCore(client);
2440
+ const { realtime } = core;
2441
+ if (realtime.getConnectionState() === "idle") {
2442
+ const sessionToken = await core.storage.getItem(createCheckoutSessionTokenStorageKey(transactionId));
2443
+ const headers = {};
2444
+ if (sessionToken) {
2445
+ headers["x-dynamic-checkout-session-token"] = sessionToken;
2446
+ headers["x-dynamic-checkout-transaction-id"] = transactionId;
2447
+ }
2448
+ await realtime.connect({
2449
+ client,
2450
+ headers
2451
+ });
2452
+ }
2646
2453
  const channelSchema = createCheckoutTransactionChannelSchema(transactionId);
2647
2454
  const handler = ({ data }) => {
2648
2455
  if (data.axis === "execution") require_getVerifiedCredentialForWalletAccount.emitEvent({
@@ -2945,6 +2752,36 @@ const __submitCheckoutTransaction_wrapped = require_InvalidParamError.instrument
2945
2752
  }
2946
2753
  });
2947
2754
 
2755
+ //#endregion
2756
+ //#region src/modules/checkout/trackCheckoutTransaction/trackCheckoutTransaction.ts
2757
+ /**
2758
+ * Subscribes to realtime `checkoutTransactionExecutionStateChanged` and
2759
+ * `checkoutTransactionSettlementStateChanged` events for an existing
2760
+ * checkout transaction.
2761
+ *
2762
+ * This is only needed after a page refresh to re-establish the subscription.
2763
+ * Transactions created with {@link createCheckoutTransaction} are automatically
2764
+ * subscribed — calling this again for those is unnecessary unless the page
2765
+ * has been reloaded.
2766
+ *
2767
+ * @param params.transactionId - The ID of the checkout transaction to track.
2768
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
2769
+ * @instrumented
2770
+ */
2771
+ const trackCheckoutTransaction = ({ transactionId }, client = require_InvalidParamError.getDefaultClient()) => subscribeToCheckoutTransaction({ transactionId }, client);
2772
+ const __trackCheckoutTransaction_impl = trackCheckoutTransaction;
2773
+ const __trackCheckoutTransaction_wrapped = require_InvalidParamError.instrumentFunction({
2774
+ fn: __trackCheckoutTransaction_impl,
2775
+ functionName: "trackCheckoutTransaction",
2776
+ getCore: () => {
2777
+ try {
2778
+ return require_InvalidParamError.getCore(require_InvalidParamError.getDefaultClient());
2779
+ } catch {
2780
+ return;
2781
+ }
2782
+ }
2783
+ });
2784
+
2948
2785
  //#endregion
2949
2786
  //#region src/modules/checkout/utils/requiresConversion/requiresConversion.ts
2950
2787
  /**
@@ -2980,32 +2817,6 @@ const __requiresConversion_wrapped = require_InvalidParamError.instrumentFunctio
2980
2817
  }
2981
2818
  });
2982
2819
 
2983
- //#endregion
2984
- //#region src/modules/checkout/trackCheckoutTransaction/trackCheckoutTransaction.ts
2985
- /**
2986
- * Subscribes to realtime state change events for an existing checkout transaction.
2987
- *
2988
- * Call this after a page refresh to resume receiving transaction events
2989
- * for a transaction that was created in a previous page session.
2990
- *
2991
- * @param params.transactionId - The ID of the checkout transaction to track.
2992
- * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
2993
- * @instrumented
2994
- */
2995
- const trackCheckoutTransaction = ({ transactionId }, client = require_InvalidParamError.getDefaultClient()) => subscribeToCheckoutTransaction({ transactionId }, client);
2996
- const __trackCheckoutTransaction_impl = trackCheckoutTransaction;
2997
- const __trackCheckoutTransaction_wrapped = require_InvalidParamError.instrumentFunction({
2998
- fn: __trackCheckoutTransaction_impl,
2999
- functionName: "trackCheckoutTransaction",
3000
- getCore: () => {
3001
- try {
3002
- return require_InvalidParamError.getCore(require_InvalidParamError.getDefaultClient());
3003
- } catch {
3004
- return;
3005
- }
3006
- }
3007
- });
3008
-
3009
2820
  //#endregion
3010
2821
  //#region src/modules/deviceRegistration/completeDeviceRegistration/completeDeviceRegistration.ts
3011
2822
  const DEVICE_REGISTRATION_TOKEN_HEADER = "x-dynamic-device-registration-token";
@@ -3149,7 +2960,7 @@ const isDeviceRegistrationRequired = (user) => Boolean(user.scope?.includes("dev
3149
2960
  const revokeAllRegisteredDevices = async (client = require_InvalidParamError.getDefaultClient()) => {
3150
2961
  const core = require_InvalidParamError.getCore(client);
3151
2962
  await require_InvalidParamError.__createApiClient_wrapped({}, client).deleteAllDeviceRegistrations({ environmentId: core.environmentId });
3152
- await __logout_wrapped(client);
2963
+ await require_getNetworkProviderFromNetworkId.__logoutWithReason_wrapped({ reason: "all-devices-revoked" }, client);
3153
2964
  };
3154
2965
  const __revokeAllRegisteredDevices_impl = revokeAllRegisteredDevices;
3155
2966
  const __revokeAllRegisteredDevices_wrapped = require_InvalidParamError.instrumentFunction({
@@ -3173,7 +2984,7 @@ const revokeRegisteredDevice = async ({ deviceRegistrationId }, client = require
3173
2984
  if ((await require_InvalidParamError.__createApiClient_wrapped({}, client).deleteDeviceRegistration({
3174
2985
  deviceRegistrationId,
3175
2986
  environmentId: core.environmentId
3176
- })).currentDeviceRevoked) await __logout_wrapped(client);
2987
+ })).currentDeviceRevoked) await require_getNetworkProviderFromNetworkId.__logoutWithReason_wrapped({ reason: "device-revoked" }, client);
3177
2988
  };
3178
2989
  const __revokeRegisteredDevice_impl = revokeRegisteredDevice;
3179
2990
  const __revokeRegisteredDevice_wrapped = require_InvalidParamError.instrumentFunction({
@@ -3561,7 +3372,7 @@ const __waitForClientInitialized_wrapped = require_InvalidParamError.instrumentF
3561
3372
  * normally but emit no telemetry.
3562
3373
  * @instrumented
3563
3374
  */
3564
- const setInstrumentationEnabled = (enabled, client = require_InvalidParamError.getDefaultClient()) => {
3375
+ const setInstrumentationEnabled = ({ enabled }, client = require_InvalidParamError.getDefaultClient()) => {
3565
3376
  require_InvalidParamError.getCore(client).instrumentation.setEnabled(enabled);
3566
3377
  };
3567
3378
  const __setInstrumentationEnabled_impl = setInstrumentationEnabled;
@@ -3670,7 +3481,7 @@ const fetchLegacyWalletBook = async (client) => {
3670
3481
  const core = require_InvalidParamError.getCore(client);
3671
3482
  core.logger.debug("[fetchLegacyWalletBook] Fetching wallet book...");
3672
3483
  try {
3673
- const walletBook = await retryOnFail({
3484
+ const walletBook = await require_getNetworkProviderFromNetworkId.retryOnFail({
3674
3485
  delay: RETRY_DELAY_MS,
3675
3486
  fn: async () => fetchWithTimeout(client),
3676
3487
  maxRetries: MAX_RETRIES
@@ -3712,12 +3523,10 @@ const EMBEDDED_WALLET_KEYS = [
3712
3523
  /**
3713
3524
  * Checks if a wallet should be filtered out from the WalletConnect catalog.
3714
3525
  *
3715
- * @param walletKey - The wallet key identifier.
3716
- * @param wallet - The wallet schema to check.
3717
3526
  * @returns True if the wallet should be filtered out, false otherwise.
3718
3527
  * @not-instrumented
3719
3528
  */
3720
- const shouldFilterWallet = (walletKey, wallet) => {
3529
+ const shouldFilterWallet = ({ wallet, walletKey }) => {
3721
3530
  if (EMBEDDED_WALLET_KEYS.includes(walletKey)) return true;
3722
3531
  if (!wallet.walletConnect || !wallet.walletConnect.sdks.includes("sign_v2")) return true;
3723
3532
  const hasInjectedConfig = wallet.injectedConfig && wallet.injectedConfig.length > 0;
@@ -3932,7 +3741,10 @@ const transformWalletBook = ({ walletBook }) => {
3932
3741
  for (const [groupKey, group] of Object.entries(walletBook.groups)) groups[groupKey] = transformGroup({ group });
3933
3742
  const wallets = {};
3934
3743
  for (const [walletKey, wallet] of Object.entries(walletBook.wallets)) {
3935
- if (shouldFilterWallet(walletKey, wallet)) continue;
3744
+ if (shouldFilterWallet({
3745
+ wallet,
3746
+ walletKey
3747
+ })) continue;
3936
3748
  wallets[walletKey] = transformWallet({
3937
3749
  wallet,
3938
3750
  walletKey
@@ -4044,7 +3856,6 @@ const __getWalletConnectCatalogWalletByWalletProviderKey_wrapped = require_Inval
4044
3856
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
4045
3857
  * @returns A promise that resolves to OTP verification details if verification is required, or undefined.
4046
3858
  * @instrumented
4047
-
4048
3859
  * @redact-params
4049
3860
  */
4050
3861
  const updateUser = async ({ userFields }, client = require_InvalidParamError.getDefaultClient()) => {
@@ -4559,7 +4370,6 @@ const __setDefaultMfaDevice_wrapped = require_InvalidParamError.instrumentFuncti
4559
4370
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
4560
4371
  * @returns A promise that resolves to an OTPVerification object containing the email and verification UUID.
4561
4372
  * @instrumented
4562
-
4563
4373
  * @redact-params
4564
4374
  */
4565
4375
  const sendEmailOTP = async ({ email }, client = require_InvalidParamError.getDefaultClient()) => {
@@ -5521,7 +5331,6 @@ const supportedCountries = {
5521
5331
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
5522
5332
  * @returns A promise that resolves to an OTPVerification object containing the phone details and verification UUID.
5523
5333
  * @instrumented
5524
-
5525
5334
  * @redact-params
5526
5335
  */
5527
5336
  const sendSmsOTP = async ({ isoCountryCode, phoneNumber }, client = require_InvalidParamError.getDefaultClient()) => {
@@ -5758,7 +5567,7 @@ const __getSwapStatus_wrapped = require_InvalidParamError.instrumentFunction({
5758
5567
  const deleteUser = async (client = require_InvalidParamError.getDefaultClient()) => {
5759
5568
  const core = require_InvalidParamError.getCore(client);
5760
5569
  await require_InvalidParamError.__createApiClient_wrapped({ includeMfaToken: true }, client).hardDeleteUser({ environmentId: core.environmentId });
5761
- await __logout_wrapped(client);
5570
+ await require_getNetworkProviderFromNetworkId.__logoutWithReason_wrapped({ reason: "user-deleted" }, client);
5762
5571
  };
5763
5572
  const __deleteUser_impl = deleteUser;
5764
5573
  const __deleteUser_wrapped = require_InvalidParamError.instrumentFunction({
@@ -6062,7 +5871,13 @@ const __proveWalletAccountOwnership_wrapped = require_InvalidParamError.instrume
6062
5871
  //#endregion
6063
5872
  //#region src/modules/wallets/utils/isSameAddress/isSameAddress.ts
6064
5873
  /** @not-instrumented */
6065
- const isSameAddress = (left, right, chain) => require_getVerifiedCredentialForWalletAccount.normalizeAddress(left, chain) === require_getVerifiedCredentialForWalletAccount.normalizeAddress(right, chain);
5874
+ const isSameAddress = ({ chain, left, right }) => require_getVerifiedCredentialForWalletAccount.normalizeAddress({
5875
+ address: left,
5876
+ chain
5877
+ }) === require_getVerifiedCredentialForWalletAccount.normalizeAddress({
5878
+ address: right,
5879
+ chain
5880
+ });
6066
5881
 
6067
5882
  //#endregion
6068
5883
  //#region src/modules/wallets/verifyWalletAccountForSignInOrTransfer/verifyWalletAccountForSignInOrTransfer.ts
@@ -6088,7 +5903,11 @@ const verifyWalletAccountForSignInOrTransfer = async ({ walletAccount, isTransfe
6088
5903
  walletDisplayName: walletProvider.metadata.displayName,
6089
5904
  walletProviderType: walletProvider.walletProviderType
6090
5905
  }, client);
6091
- const walletVerifiedCredential = response.user?.verifiedCredentials.find((verifiedCredential) => isSameAddress(verifiedCredential.address ?? "", walletAccount.address, walletAccount.chain));
5906
+ const walletVerifiedCredential = response.user?.verifiedCredentials.find((verifiedCredential) => isSameAddress({
5907
+ chain: walletAccount.chain,
5908
+ left: verifiedCredential.address ?? "",
5909
+ right: walletAccount.address
5910
+ }));
6092
5911
  require_InvalidParamError.assertDefined(walletVerifiedCredential, `After verifying, still unable to find verified wallet credential for wallet account ${walletAccount.address} on chain ${walletAccount.chain}`);
6093
5912
  require_getNetworkProviderFromNetworkId.__updateWalletProviderKeysForVerifiedCredentials_wrapped({ keysToUpdate: { [walletVerifiedCredential.id]: walletProvider.key } }, client);
6094
5913
  /**
@@ -6100,7 +5919,11 @@ const verifyWalletAccountForSignInOrTransfer = async ({ walletAccount, isTransfe
6100
5919
  * Remove the now verified wallet account from the unverified wallet accounts
6101
5920
  */
6102
5921
  require_getNetworkProviderFromNetworkId.__removeUnverifiedWalletAccount_wrapped({ unverifiedWalletAccount: walletAccount }, client);
6103
- const verifiedWalletAccount = require_getVerifiedCredentialForWalletAccount.__getWalletAccounts_wrapped(client).find(({ address }) => isSameAddress(address, walletAccount.address, walletAccount.chain));
5922
+ const verifiedWalletAccount = require_getVerifiedCredentialForWalletAccount.__getWalletAccounts_wrapped(client).find(({ address }) => isSameAddress({
5923
+ chain: walletAccount.chain,
5924
+ left: address,
5925
+ right: walletAccount.address
5926
+ }));
6104
5927
  require_InvalidParamError.assertDefined(verifiedWalletAccount, `Unable to find wallet account ${walletAccount.address} on chain ${walletAccount.chain} for verified credential ${walletVerifiedCredential.id}`);
6105
5928
  return verifiedWalletAccount;
6106
5929
  };
@@ -7048,7 +6871,7 @@ exports.deleteUser = __deleteUser_wrapped;
7048
6871
  exports.detectDeviceRegistrationRedirect = __detectDeviceRegistrationRedirect_wrapped;
7049
6872
  exports.detectOAuthRedirect = __detectOAuthRedirect_wrapped;
7050
6873
  exports.executeSwapTransaction = __executeSwapTransaction_wrapped;
7051
- exports.fetchProjectSettings = __fetchProjectSettings_wrapped;
6874
+ exports.fetchProjectSettings = require_getNetworkProviderFromNetworkId.__fetchProjectSettings_wrapped;
7052
6875
  exports.getActiveNetworkData = __getActiveNetworkData_wrapped;
7053
6876
  exports.getActiveNetworkId = __getActiveNetworkId_wrapped;
7054
6877
  exports.getAvailableWalletProvidersData = __getAvailableWalletProvidersData_wrapped;
@@ -7094,11 +6917,11 @@ exports.isMfaRequiredForAction = require_isMfaRequiredForAction.isMfaRequiredFor
7094
6917
  exports.isMobile = isMobile;
7095
6918
  exports.isPendingRecoveryCodesAcknowledgment = isPendingRecoveryCodesAcknowledgment;
7096
6919
  exports.isProgrammaticNetworkSwitchAvailable = isProgrammaticNetworkSwitchAvailable;
7097
- exports.isSignedIn = isSignedIn;
6920
+ exports.isSignedIn = require_getNetworkProviderFromNetworkId.isSignedIn;
7098
6921
  exports.isUserMissingMfaAuth = isUserMissingMfaAuth;
7099
6922
  exports.isUserOnboardingComplete = isUserOnboardingComplete;
7100
6923
  exports.isWalletAccountVerified = isWalletAccountVerified;
7101
- exports.logout = __logout_wrapped;
6924
+ exports.logout = logout;
7102
6925
  exports.offEvent = require_getVerifiedCredentialForWalletAccount.__offEvent_wrapped;
7103
6926
  exports.offWalletProviderEvent = __offWalletProviderEvent_wrapped;
7104
6927
  exports.onEvent = require_getVerifiedCredentialForWalletAccount.__onEvent_wrapped;