@dynamic-labs-sdk/client 0.1.0-alpha.9 → 0.1.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 (314) hide show
  1. package/CHANGELOG.md +302 -0
  2. package/InvalidParamError.cjs.js +2 -2
  3. package/InvalidParamError.esm.js +1 -1
  4. package/NotWaasWalletAccountError.cjs.js +7 -7
  5. package/NotWaasWalletAccountError.esm.js +2 -2
  6. package/constants.cjs.js +493 -9
  7. package/constants.cjs2.js +15 -0
  8. package/constants.esm.js +468 -7
  9. package/constants.esm2.js +11 -0
  10. package/core.cjs.js +96 -41
  11. package/core.esm.js +47 -10
  12. package/filterDuplicates.cjs.js +8 -0
  13. package/filterDuplicates.esm.js +6 -0
  14. package/getNetworkProviderFromNetworkId.cjs.js +178 -20
  15. package/getNetworkProviderFromNetworkId.esm.js +150 -3
  16. package/getSignedSessionId.cjs.js +7 -7
  17. package/getSignedSessionId.esm.js +2 -2
  18. package/getVerifiedCredentialForWalletAccount.cjs.js +515 -0
  19. package/getVerifiedCredentialForWalletAccount.esm.js +491 -0
  20. package/index.cjs.js +1231 -470
  21. package/index.esm.js +1028 -280
  22. package/isMfaRequiredForAction.cjs.js +15 -8
  23. package/isMfaRequiredForAction.esm.js +8 -2
  24. package/package.json +4 -4
  25. package/src/client/core/createCore/createCore.d.ts.map +1 -1
  26. package/src/client/core/createCore/getInitialState.d.ts.map +1 -1
  27. package/src/client/core/types/DynamicCore.d.ts +8 -0
  28. package/src/client/core/types/DynamicCore.d.ts.map +1 -1
  29. package/src/client/createDynamicClient/createDynamicClient.d.ts.map +1 -1
  30. package/src/client/types/DynamicClientConfig.d.ts +6 -1
  31. package/src/client/types/DynamicClientConfig.d.ts.map +1 -1
  32. package/src/constants.d.ts +1 -0
  33. package/src/constants.d.ts.map +1 -1
  34. package/src/errors/APIError/APIError.d.ts.map +1 -1
  35. package/src/errors/InvalidWalletProviderKeyError.d.ts +5 -0
  36. package/src/errors/InvalidWalletProviderKeyError.d.ts.map +1 -0
  37. package/src/errors/MissingUserVerificationError.d.ts +12 -0
  38. package/src/errors/MissingUserVerificationError.d.ts.map +1 -0
  39. package/src/errors/NoSmartWalletAccountSignerFoundError.d.ts +5 -0
  40. package/src/errors/NoSmartWalletAccountSignerFoundError.d.ts.map +1 -0
  41. package/src/errors/WalletAccountNotSelectedError.d.ts.map +1 -1
  42. package/src/exports/core.d.ts +102 -2
  43. package/src/exports/core.d.ts.map +1 -1
  44. package/src/exports/index.d.ts +25 -7
  45. package/src/exports/index.d.ts.map +1 -1
  46. package/src/exports/waas.d.ts +2 -0
  47. package/src/exports/waas.d.ts.map +1 -1
  48. package/src/modules/apiClient/createApiClient.d.ts.map +1 -1
  49. package/src/modules/auth/createVisit/createVisit.d.ts.map +1 -1
  50. package/src/modules/auth/logout/logout.d.ts.map +1 -1
  51. package/src/modules/auth/passkeys/getPasskeyAuthenticationOptions/getPasskeyAuthenticationOptions.d.ts +4 -1
  52. package/src/modules/auth/passkeys/getPasskeyAuthenticationOptions/getPasskeyAuthenticationOptions.d.ts.map +1 -1
  53. package/src/modules/auth/passkeys/getPasskeyAuthenticationSignInOptions/getPasskeyAuthenticationSignInOptions.d.ts +4 -1
  54. package/src/modules/auth/passkeys/getPasskeyAuthenticationSignInOptions/getPasskeyAuthenticationSignInOptions.d.ts.map +1 -1
  55. package/src/modules/auth/passkeys/signInWithPasskey/signInWithPasskey.d.ts +4 -1
  56. package/src/modules/auth/passkeys/signInWithPasskey/signInWithPasskey.d.ts.map +1 -1
  57. package/src/modules/auth/social/getUserSocialAccounts/getUserSocialAccounts.d.ts +9 -0
  58. package/src/modules/auth/social/getUserSocialAccounts/getUserSocialAccounts.d.ts.map +1 -0
  59. package/src/modules/auth/social/getUserSocialAccounts/index.d.ts +2 -0
  60. package/src/modules/auth/social/getUserSocialAccounts/index.d.ts.map +1 -0
  61. package/src/modules/auth/social/oauth/{signInWithSocialRedirect/signInWithSocialRedirect.d.ts → authenticateWithSocial/authenticateWithSocial.d.ts} +5 -3
  62. package/src/modules/auth/social/oauth/authenticateWithSocial/authenticateWithSocial.d.ts.map +1 -0
  63. package/src/modules/auth/social/oauth/authenticateWithSocial/buildOAuthUrl/addOAuthUrlParams/addOAuthUrlParams.d.ts.map +1 -0
  64. package/src/modules/auth/social/oauth/authenticateWithSocial/buildOAuthUrl/addOAuthUrlParams/index.d.ts.map +1 -0
  65. package/src/modules/auth/social/oauth/authenticateWithSocial/buildOAuthUrl/buildOAuthUrl.d.ts.map +1 -0
  66. package/src/modules/auth/social/oauth/authenticateWithSocial/buildOAuthUrl/getOAuthBaseUrl/getOAuthBaseUrl.d.ts.map +1 -0
  67. package/src/modules/auth/social/oauth/authenticateWithSocial/buildOAuthUrl/getOAuthBaseUrl/index.d.ts.map +1 -0
  68. package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/buildOAuthUrl/index.d.ts.map +1 -1
  69. package/src/modules/auth/social/oauth/authenticateWithSocial/index.d.ts +2 -0
  70. package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/index.d.ts.map +1 -1
  71. package/src/modules/auth/social/oauth/{completeSocialRedirectSignIn/completeSocialRedirectSignIn.d.ts → completeSocialAuthentication/completeSocialAuthentication.d.ts} +3 -3
  72. package/src/modules/auth/social/oauth/completeSocialAuthentication/completeSocialAuthentication.d.ts.map +1 -0
  73. package/src/modules/auth/social/oauth/completeSocialAuthentication/index.d.ts +2 -0
  74. package/src/modules/auth/social/oauth/{completeSocialRedirectSignIn → completeSocialAuthentication}/index.d.ts.map +1 -1
  75. package/src/modules/auth/social/oauth/redirectStateStorageSchema/index.d.ts +1 -1
  76. package/src/modules/auth/social/oauth/redirectStateStorageSchema/index.d.ts.map +1 -1
  77. package/src/modules/auth/social/oauth/redirectStateStorageSchema/redirectStateStorageSchema.d.ts +1 -1
  78. package/src/modules/auth/social/oauth/redirectStateStorageSchema/redirectStateStorageSchema.d.ts.map +1 -1
  79. package/src/modules/auth/social/oauth/unlinkSocialAccount/index.d.ts +2 -0
  80. package/src/modules/auth/social/oauth/unlinkSocialAccount/index.d.ts.map +1 -0
  81. package/src/modules/auth/social/oauth/unlinkSocialAccount/unlinkSocialAccount.d.ts +14 -0
  82. package/src/modules/auth/social/oauth/unlinkSocialAccount/unlinkSocialAccount.d.ts.map +1 -0
  83. package/src/modules/auth/social/removeDynamicOauthParamsFromUrl/index.d.ts +2 -0
  84. package/src/modules/auth/social/removeDynamicOauthParamsFromUrl/index.d.ts.map +1 -0
  85. package/src/modules/auth/social/removeDynamicOauthParamsFromUrl/removeDynamicOauthParamsFromUrl.d.ts +2 -0
  86. package/src/modules/auth/social/removeDynamicOauthParamsFromUrl/removeDynamicOauthParamsFromUrl.d.ts.map +1 -0
  87. package/src/modules/auth/social/social.types.d.ts +9 -0
  88. package/src/modules/auth/social/social.types.d.ts.map +1 -1
  89. package/src/modules/auth/updateAuthFromVerifyResponse/checkAndRaiseWalletAccountsChangedEvent/checkAndRaiseWalletAccountsChangedEvent.d.ts.map +1 -1
  90. package/src/modules/auth/updateAuthFromVerifyResponse/updateAuthFromVerifyResponse.d.ts.map +1 -1
  91. package/src/modules/balances/getMultichainBalances/getMultichainBalances.d.ts +1 -2
  92. package/src/modules/balances/getMultichainBalances/getMultichainBalances.d.ts.map +1 -1
  93. package/src/modules/balances/getMultichainBalances/index.d.ts +1 -1
  94. package/src/modules/balances/getMultichainBalances/index.d.ts.map +1 -1
  95. package/src/modules/funding/coinbase/addCoinbaseOnrampOrderEventListener/addCoinbaseOnrampOrderEventListener.d.ts +18 -0
  96. package/src/modules/funding/coinbase/addCoinbaseOnrampOrderEventListener/addCoinbaseOnrampOrderEventListener.d.ts.map +1 -0
  97. package/src/modules/funding/coinbase/addCoinbaseOnrampOrderEventListener/index.d.ts +2 -0
  98. package/src/modules/funding/coinbase/addCoinbaseOnrampOrderEventListener/index.d.ts.map +1 -0
  99. package/src/modules/funding/coinbase/coinbase.types.d.ts +269 -0
  100. package/src/modules/funding/coinbase/coinbase.types.d.ts.map +1 -0
  101. package/src/modules/funding/coinbase/createCoinbaseOnrampOrder/createCoinbaseOnrampOrder.d.ts +11 -0
  102. package/src/modules/funding/coinbase/createCoinbaseOnrampOrder/createCoinbaseOnrampOrder.d.ts.map +1 -0
  103. package/src/modules/funding/coinbase/createCoinbaseOnrampOrder/index.d.ts +2 -0
  104. package/src/modules/funding/coinbase/createCoinbaseOnrampOrder/index.d.ts.map +1 -0
  105. package/src/modules/funding/coinbase/getCoinbaseBuyUrl/getCoinbaseBuyUrl.d.ts +10 -0
  106. package/src/modules/funding/coinbase/getCoinbaseBuyUrl/getCoinbaseBuyUrl.d.ts.map +1 -0
  107. package/src/modules/funding/coinbase/getCoinbaseBuyUrl/index.d.ts +2 -0
  108. package/src/modules/funding/coinbase/getCoinbaseBuyUrl/index.d.ts.map +1 -0
  109. package/src/modules/funding/coinbase/getMissingVerificationForCoinbaseOnrampOrder/getMissingVerificationForCoinbaseOnrampOrder.d.ts +23 -0
  110. package/src/modules/funding/coinbase/getMissingVerificationForCoinbaseOnrampOrder/getMissingVerificationForCoinbaseOnrampOrder.d.ts.map +1 -0
  111. package/src/modules/funding/coinbase/getMissingVerificationForCoinbaseOnrampOrder/index.d.ts +2 -0
  112. package/src/modules/funding/coinbase/getMissingVerificationForCoinbaseOnrampOrder/index.d.ts.map +1 -0
  113. package/src/modules/funding/coinbase/utils/validateUserCredentialsForCoinbaseOnrampOrder/index.d.ts +2 -0
  114. package/src/modules/funding/coinbase/utils/validateUserCredentialsForCoinbaseOnrampOrder/index.d.ts.map +1 -0
  115. package/src/modules/funding/coinbase/utils/validateUserCredentialsForCoinbaseOnrampOrder/validateUserCredentialsForCoinbaseOnrampOrder.d.ts +4 -0
  116. package/src/modules/funding/coinbase/utils/validateUserCredentialsForCoinbaseOnrampOrder/validateUserCredentialsForCoinbaseOnrampOrder.d.ts.map +1 -0
  117. package/src/modules/funding/cryptoDotCom/createCryptoDotComPayment/createCryptoDotComPayment.d.ts +10 -0
  118. package/src/modules/funding/cryptoDotCom/createCryptoDotComPayment/createCryptoDotComPayment.d.ts.map +1 -0
  119. package/src/modules/funding/cryptoDotCom/createCryptoDotComPayment/index.d.ts +2 -0
  120. package/src/modules/funding/cryptoDotCom/createCryptoDotComPayment/index.d.ts.map +1 -0
  121. package/src/modules/funding/cryptoDotCom/cryptoDotCom.types.d.ts +8 -0
  122. package/src/modules/funding/cryptoDotCom/cryptoDotCom.types.d.ts.map +1 -0
  123. package/src/modules/initializeClient/consts.d.ts +5 -0
  124. package/src/modules/initializeClient/consts.d.ts.map +1 -0
  125. package/src/modules/initializeClient/initializeClient.d.ts.map +1 -1
  126. package/src/modules/initializeClient/waitForProjectSettings/index.d.ts +2 -0
  127. package/src/modules/initializeClient/waitForProjectSettings/index.d.ts.map +1 -0
  128. package/src/modules/initializeClient/waitForProjectSettings/waitForProjectSettings.d.ts +3 -0
  129. package/src/modules/initializeClient/waitForProjectSettings/waitForProjectSettings.d.ts.map +1 -0
  130. package/src/modules/mfa/authenticatePasskeyMFA/authenticatePasskeyMFA.d.ts +2 -1
  131. package/src/modules/mfa/authenticatePasskeyMFA/authenticatePasskeyMFA.d.ts.map +1 -1
  132. package/src/modules/otp/verifyOTP/verifyOTP.d.ts +3 -2
  133. package/src/modules/otp/verifyOTP/verifyOTP.d.ts.map +1 -1
  134. package/src/modules/projectSettings/fetchProjectSettings/fetchProjectSettings.d.ts.map +1 -1
  135. package/src/modules/projectSettings/fetchProjectSettings/projectSettingsExpirationScheme.d.ts +1 -1
  136. package/src/modules/projectSettings/fetchProjectSettings/projectSettingsExpirationScheme.d.ts.map +1 -1
  137. package/src/modules/storageSync/hydrateStateWithStorage/hydrateStateWithStorage.d.ts.map +1 -1
  138. package/src/modules/storageSync/schema.d.ts +15 -2
  139. package/src/modules/storageSync/schema.d.ts.map +1 -1
  140. package/src/modules/storageSync/syncStateWithStorage/syncStateWithStorage.d.ts.map +1 -1
  141. package/src/modules/user/deleteUser/deleteUser.d.ts +11 -0
  142. package/src/modules/user/deleteUser/deleteUser.d.ts.map +1 -0
  143. package/src/modules/user/deleteUser/index.d.ts +2 -0
  144. package/src/modules/user/deleteUser/index.d.ts.map +1 -0
  145. package/src/modules/waas/constants.d.ts +2 -2
  146. package/src/modules/waas/constants.d.ts.map +1 -1
  147. package/src/modules/waas/createWaasProvider/createWaasProvider.d.ts.map +1 -1
  148. package/src/modules/waas/createWaasWalletAccounts/createWaasWalletAccounts.d.ts.map +1 -1
  149. package/src/modules/waas/delegateWaasKeyShares/delegateWaasKeyShares.d.ts.map +1 -1
  150. package/src/modules/waas/getWaasWalletProviderByChain/getWaasWalletProviderByChain.d.ts.map +1 -1
  151. package/src/modules/waas/hasDelegatedAccess/hasDelegatedAccess.d.ts +14 -0
  152. package/src/modules/waas/hasDelegatedAccess/hasDelegatedAccess.d.ts.map +1 -0
  153. package/src/modules/waas/hasDelegatedAccess/index.d.ts +2 -0
  154. package/src/modules/waas/hasDelegatedAccess/index.d.ts.map +1 -0
  155. package/src/modules/waas/isWaasWalletAccount/isWaasWalletAccount.d.ts.map +1 -1
  156. package/src/modules/waas/isWaasWalletProvider/isWaasWalletProvider.d.ts.map +1 -1
  157. package/src/modules/waas/revokeWaasDelegation/index.d.ts +2 -0
  158. package/src/modules/waas/revokeWaasDelegation/index.d.ts.map +1 -0
  159. package/src/modules/waas/revokeWaasDelegation/revokeWaasDelegation.d.ts +16 -0
  160. package/src/modules/waas/revokeWaasDelegation/revokeWaasDelegation.d.ts.map +1 -0
  161. package/src/modules/waas/waas.types.d.ts +4 -0
  162. package/src/modules/waas/waas.types.d.ts.map +1 -1
  163. package/src/modules/wallets/connectWithWalletProvider/connectWithWalletProvider.d.ts +4 -3
  164. package/src/modules/wallets/connectWithWalletProvider/connectWithWalletProvider.d.ts.map +1 -1
  165. package/src/modules/wallets/constants.d.ts.map +1 -1
  166. package/src/modules/wallets/getAvailableWalletProvidersData/getAvailableWalletProvidersData.d.ts +2 -6
  167. package/src/modules/wallets/getAvailableWalletProvidersData/getAvailableWalletProvidersData.d.ts.map +1 -1
  168. package/src/modules/wallets/getOwnerWalletAccountForSmartWalletAccount/getOwnerWalletAccountForSmartWalletAccount.d.ts +7 -0
  169. package/src/modules/wallets/getOwnerWalletAccountForSmartWalletAccount/getOwnerWalletAccountForSmartWalletAccount.d.ts.map +1 -0
  170. package/src/modules/wallets/getOwnerWalletAccountForSmartWalletAccount/index.d.ts +2 -0
  171. package/src/modules/wallets/getOwnerWalletAccountForSmartWalletAccount/index.d.ts.map +1 -0
  172. package/src/modules/wallets/getWalletAccountAddressByType/getWalletAccountAddressByType.d.ts +8 -0
  173. package/src/modules/wallets/getWalletAccountAddressByType/getWalletAccountAddressByType.d.ts.map +1 -0
  174. package/src/modules/wallets/getWalletAccountAddressByType/index.d.ts +2 -0
  175. package/src/modules/wallets/getWalletAccountAddressByType/index.d.ts.map +1 -0
  176. package/src/modules/wallets/getWalletAccounts/getWalletAccounts.d.ts.map +1 -1
  177. package/src/modules/wallets/getWalletAccounts/getWalletAccountsFromState/getWalletAccountsFromState.d.ts +9 -1
  178. package/src/modules/wallets/getWalletAccounts/getWalletAccountsFromState/getWalletAccountsFromState.d.ts.map +1 -1
  179. package/src/modules/wallets/getWalletProviderDataByKey/getWalletProviderDataByKey.d.ts +14 -0
  180. package/src/modules/wallets/getWalletProviderDataByKey/getWalletProviderDataByKey.d.ts.map +1 -0
  181. package/src/modules/wallets/getWalletProviderDataByKey/index.d.ts +2 -0
  182. package/src/modules/wallets/getWalletProviderDataByKey/index.d.ts.map +1 -0
  183. package/src/modules/wallets/isWalletAccountVerified/index.d.ts +2 -0
  184. package/src/modules/wallets/isWalletAccountVerified/index.d.ts.map +1 -0
  185. package/src/modules/wallets/isWalletAccountVerified/isWalletAccountVerified.d.ts +13 -0
  186. package/src/modules/wallets/isWalletAccountVerified/isWalletAccountVerified.d.ts.map +1 -0
  187. package/src/modules/wallets/networks/getNetworkDataForNetworkId/getNetworkDataForNetworkId.d.ts +10 -0
  188. package/src/modules/wallets/networks/getNetworkDataForNetworkId/getNetworkDataForNetworkId.d.ts.map +1 -0
  189. package/src/modules/wallets/networks/getNetworkDataForNetworkId/index.d.ts +2 -0
  190. package/src/modules/wallets/networks/getNetworkDataForNetworkId/index.d.ts.map +1 -0
  191. package/src/modules/wallets/networks/getTransactionHistory/getTransactionHistory.d.ts +26 -0
  192. package/src/modules/wallets/networks/getTransactionHistory/getTransactionHistory.d.ts.map +1 -0
  193. package/src/modules/wallets/networks/getTransactionHistory/index.d.ts +3 -0
  194. package/src/modules/wallets/networks/getTransactionHistory/index.d.ts.map +1 -0
  195. package/src/modules/wallets/networks/lastKnownNetworkRegistry/createLastKnownNetworkRegistry/createLastKnownNetworkRegistry.d.ts.map +1 -1
  196. package/src/modules/wallets/networks/lastKnownNetworkRegistry/createLastKnownNetworkRegistry/schema.d.ts +1 -1
  197. package/src/modules/wallets/networks/lastKnownNetworkRegistry/createLastKnownNetworkRegistry/schema.d.ts.map +1 -1
  198. package/src/modules/wallets/proveWalletAccountOwnership/proveWalletAccountOwnership.d.ts +1 -1
  199. package/src/modules/wallets/proveWalletAccountOwnership/proveWalletAccountOwnership.d.ts.map +1 -1
  200. package/src/modules/wallets/removeWalletAccount/removeWalletAccount.d.ts.map +1 -1
  201. package/src/modules/wallets/unverifiedWalletAccounts/removeUnverifiedWalletAccount/removeUnverifiedWalletAccount.d.ts.map +1 -1
  202. package/src/modules/wallets/unverifiedWalletAccounts/schema.d.ts +5 -0
  203. package/src/modules/wallets/unverifiedWalletAccounts/schema.d.ts.map +1 -1
  204. package/src/modules/wallets/unverifiedWalletAccounts/setUnverifiedWalletAccounts/setUnverifiedWalletAccounts.d.ts +2 -0
  205. package/src/modules/wallets/unverifiedWalletAccounts/setUnverifiedWalletAccounts/setUnverifiedWalletAccounts.d.ts.map +1 -1
  206. package/src/modules/wallets/utils/convertUnverifiedWalletAccountToWalletAccount/convertUnverifiedWalletAccountToWalletAccount.d.ts +5 -1
  207. package/src/modules/wallets/utils/convertUnverifiedWalletAccountToWalletAccount/convertUnverifiedWalletAccountToWalletAccount.d.ts.map +1 -1
  208. package/src/modules/wallets/utils/convertVerifiedCredentialToWalletAccount/convertVerifiedCredentialToWalletAccount.d.ts +6 -1
  209. package/src/modules/wallets/utils/convertVerifiedCredentialToWalletAccount/convertVerifiedCredentialToWalletAccount.d.ts.map +1 -1
  210. package/src/modules/wallets/utils/formatSignInMessage/formatSignInMessage.d.ts +9 -7
  211. package/src/modules/wallets/utils/formatSignInMessage/formatSignInMessage.d.ts.map +1 -1
  212. package/src/modules/wallets/utils/formatWalletAccountId/formatWalletAccountId.d.ts +9 -0
  213. package/src/modules/wallets/utils/formatWalletAccountId/formatWalletAccountId.d.ts.map +1 -0
  214. package/src/modules/wallets/utils/formatWalletAccountId/index.d.ts +2 -0
  215. package/src/modules/wallets/utils/formatWalletAccountId/index.d.ts.map +1 -0
  216. package/src/modules/wallets/utils/formatWalletProviderKey/formatWalletProviderKey.d.ts +17 -2
  217. package/src/modules/wallets/utils/formatWalletProviderKey/formatWalletProviderKey.d.ts.map +1 -1
  218. package/src/modules/wallets/utils/getAddressesWithTypesFromConnectionResult/getAddressesWithTypesFromConnectionResult.d.ts +4 -0
  219. package/src/modules/wallets/utils/getAddressesWithTypesFromConnectionResult/getAddressesWithTypesFromConnectionResult.d.ts.map +1 -0
  220. package/src/modules/wallets/utils/getAddressesWithTypesFromConnectionResult/index.d.ts +2 -0
  221. package/src/modules/wallets/utils/getAddressesWithTypesFromConnectionResult/index.d.ts.map +1 -0
  222. package/src/modules/wallets/utils/getChainIdForAccountVerification/getChainIdForAccountVerification.d.ts.map +1 -1
  223. package/src/modules/wallets/utils/getInjectedProviderFromWindow/getInjectedProviderFromWindow.d.ts +2 -0
  224. package/src/modules/wallets/utils/getInjectedProviderFromWindow/getInjectedProviderFromWindow.d.ts.map +1 -0
  225. package/src/modules/wallets/utils/getInjectedProviderFromWindow/index.d.ts +2 -0
  226. package/src/modules/wallets/utils/getInjectedProviderFromWindow/index.d.ts.map +1 -0
  227. package/src/modules/wallets/utils/getSignInMessage/createSignInMessageStatement/createSignInMessageStatement.d.ts +3 -0
  228. package/src/modules/wallets/utils/getSignInMessage/createSignInMessageStatement/createSignInMessageStatement.d.ts.map +1 -0
  229. package/src/modules/wallets/utils/getSignInMessage/createSignInMessageStatement/index.d.ts +2 -0
  230. package/src/modules/wallets/utils/getSignInMessage/createSignInMessageStatement/index.d.ts.map +1 -0
  231. package/src/modules/wallets/utils/getSignInMessage/getSignInMessage.d.ts.map +1 -1
  232. package/src/modules/wallets/utils/getVerifiedCredentialForWalletAccount/getVerifiedCredentialForWalletAccount.d.ts +8 -0
  233. package/src/modules/wallets/utils/getVerifiedCredentialForWalletAccount/getVerifiedCredentialForWalletAccount.d.ts.map +1 -0
  234. package/src/modules/wallets/utils/getVerifiedCredentialForWalletAccount/index.d.ts +2 -0
  235. package/src/modules/wallets/utils/getVerifiedCredentialForWalletAccount/index.d.ts.map +1 -0
  236. package/src/modules/wallets/utils/normalizeWalletNameWithChain/index.d.ts +2 -0
  237. package/src/modules/wallets/utils/normalizeWalletNameWithChain/index.d.ts.map +1 -0
  238. package/src/modules/wallets/utils/normalizeWalletNameWithChain/normalizeWalletNameWithChain.d.ts +12 -0
  239. package/src/modules/wallets/utils/normalizeWalletNameWithChain/normalizeWalletNameWithChain.d.ts.map +1 -0
  240. package/src/modules/wallets/verifySignInMessage/index.d.ts +2 -0
  241. package/src/modules/wallets/verifySignInMessage/index.d.ts.map +1 -0
  242. package/src/modules/wallets/verifySignInMessage/verifySignInMessage.d.ts +22 -0
  243. package/src/modules/wallets/verifySignInMessage/verifySignInMessage.d.ts.map +1 -0
  244. package/src/modules/wallets/verifyWalletAccount/verifyWalletAccount.d.ts.map +1 -1
  245. package/src/modules/wallets/walletAccount/index.d.ts +1 -1
  246. package/src/modules/wallets/walletAccount/index.d.ts.map +1 -1
  247. package/src/modules/wallets/walletAccount/walletAccount.types.d.ts +8 -0
  248. package/src/modules/wallets/walletAccount/walletAccount.types.d.ts.map +1 -1
  249. package/src/modules/wallets/walletProvider/index.d.ts +1 -1
  250. package/src/modules/wallets/walletProvider/index.d.ts.map +1 -1
  251. package/src/modules/wallets/walletProvider/splitWalletProviderKey/index.d.ts +2 -0
  252. package/src/modules/wallets/walletProvider/splitWalletProviderKey/index.d.ts.map +1 -0
  253. package/src/modules/wallets/walletProvider/splitWalletProviderKey/splitWalletProviderKey.d.ts +9 -0
  254. package/src/modules/wallets/walletProvider/splitWalletProviderKey/splitWalletProviderKey.d.ts.map +1 -0
  255. package/src/modules/wallets/walletProvider/walletProvider.types.d.ts +24 -8
  256. package/src/modules/wallets/walletProvider/walletProvider.types.d.ts.map +1 -1
  257. package/src/modules/wallets/walletProvider/walletProviderKeyMap/getWalletProviderKeyFromVerifiedCredential/getWalletProviderKeyFromVerifiedCredential.d.ts +10 -0
  258. package/src/modules/wallets/walletProvider/walletProviderKeyMap/getWalletProviderKeyFromVerifiedCredential/getWalletProviderKeyFromVerifiedCredential.d.ts.map +1 -0
  259. package/src/modules/wallets/walletProvider/walletProviderKeyMap/getWalletProviderKeyFromVerifiedCredential/index.d.ts +2 -0
  260. package/src/modules/wallets/walletProvider/walletProviderKeyMap/getWalletProviderKeyFromVerifiedCredential/index.d.ts.map +1 -0
  261. package/src/modules/wallets/walletProvider/walletProviderKeyMap/schema.d.ts +3 -0
  262. package/src/modules/wallets/walletProvider/walletProviderKeyMap/schema.d.ts.map +1 -0
  263. package/src/modules/wallets/walletProvider/walletProviderKeyMap/state.d.ts +16 -0
  264. package/src/modules/wallets/walletProvider/walletProviderKeyMap/state.d.ts.map +1 -0
  265. package/src/modules/wallets/walletProvider/walletProviderKeyMap/updateWalletProviderKeysForVerifiedCredentials/index.d.ts +2 -0
  266. package/src/modules/wallets/walletProvider/walletProviderKeyMap/updateWalletProviderKeysForVerifiedCredentials/index.d.ts.map +1 -0
  267. package/src/modules/wallets/walletProvider/walletProviderKeyMap/updateWalletProviderKeysForVerifiedCredentials/updateWalletProviderKeysForVerifiedCredentials.d.ts +7 -0
  268. package/src/modules/wallets/walletProvider/walletProviderKeyMap/updateWalletProviderKeysForVerifiedCredentials/updateWalletProviderKeysForVerifiedCredentials.d.ts.map +1 -0
  269. package/src/modules/wallets/walletProvider/walletProviderKeyMap/walletProviderKeyMap.types.d.ts +12 -0
  270. package/src/modules/wallets/walletProvider/walletProviderKeyMap/walletProviderKeyMap.types.d.ts.map +1 -0
  271. package/src/services/asyncTrack/asyncTrack.types.d.ts +5 -1
  272. package/src/services/asyncTrack/asyncTrack.types.d.ts.map +1 -1
  273. package/src/services/asyncTrack/createAsyncTrack.d.ts.map +1 -1
  274. package/src/services/storage/index.d.ts +1 -1
  275. package/src/services/storage/index.d.ts.map +1 -1
  276. package/src/utils/debouncedMutex/createDebouncedMutex/createDebouncedMutex.d.ts +3 -0
  277. package/src/utils/debouncedMutex/createDebouncedMutex/createDebouncedMutex.d.ts.map +1 -0
  278. package/src/utils/debouncedMutex/createDebouncedMutex/index.d.ts +2 -0
  279. package/src/utils/debouncedMutex/createDebouncedMutex/index.d.ts.map +1 -0
  280. package/src/utils/debouncedMutex/debouncedMutex.types.d.ts +39 -0
  281. package/src/utils/debouncedMutex/debouncedMutex.types.d.ts.map +1 -0
  282. package/src/utils/debouncedMutex/index.d.ts +2 -0
  283. package/src/utils/debouncedMutex/index.d.ts.map +1 -0
  284. package/waas.cjs.js +86 -38
  285. package/waas.esm.js +62 -16
  286. package/waasCore.cjs.js +21 -10
  287. package/waasCore.esm.js +15 -4
  288. package/getWalletProviderByKey.cjs.js +0 -74
  289. package/getWalletProviderByKey.esm.js +0 -69
  290. package/logout.cjs.js +0 -1086
  291. package/logout.esm.js +0 -1020
  292. package/src/modules/apiClient/utils/logoutOnUnauthorizedRequestMiddleware/index.d.ts +0 -2
  293. package/src/modules/apiClient/utils/logoutOnUnauthorizedRequestMiddleware/index.d.ts.map +0 -1
  294. package/src/modules/apiClient/utils/logoutOnUnauthorizedRequestMiddleware/logoutOnUnauthorizedRequestMiddleware.d.ts +0 -4
  295. package/src/modules/apiClient/utils/logoutOnUnauthorizedRequestMiddleware/logoutOnUnauthorizedRequestMiddleware.d.ts.map +0 -1
  296. package/src/modules/auth/social/oauth/completeSocialRedirectSignIn/completeSocialRedirectSignIn.d.ts.map +0 -1
  297. package/src/modules/auth/social/oauth/completeSocialRedirectSignIn/index.d.ts +0 -2
  298. package/src/modules/auth/social/oauth/signInWithSocialRedirect/buildOAuthUrl/addOAuthUrlParams/addOAuthUrlParams.d.ts.map +0 -1
  299. package/src/modules/auth/social/oauth/signInWithSocialRedirect/buildOAuthUrl/addOAuthUrlParams/index.d.ts.map +0 -1
  300. package/src/modules/auth/social/oauth/signInWithSocialRedirect/buildOAuthUrl/buildOAuthUrl.d.ts.map +0 -1
  301. package/src/modules/auth/social/oauth/signInWithSocialRedirect/buildOAuthUrl/getOAuthBaseUrl/getOAuthBaseUrl.d.ts.map +0 -1
  302. package/src/modules/auth/social/oauth/signInWithSocialRedirect/buildOAuthUrl/getOAuthBaseUrl/index.d.ts.map +0 -1
  303. package/src/modules/auth/social/oauth/signInWithSocialRedirect/index.d.ts +0 -2
  304. package/src/modules/auth/social/oauth/signInWithSocialRedirect/signInWithSocialRedirect.d.ts.map +0 -1
  305. package/src/modules/wallets/utils/createWalletAccountId/createWalletAccountId.d.ts +0 -3
  306. package/src/modules/wallets/utils/createWalletAccountId/createWalletAccountId.d.ts.map +0 -1
  307. package/src/modules/wallets/utils/createWalletAccountId/index.d.ts +0 -2
  308. package/src/modules/wallets/utils/createWalletAccountId/index.d.ts.map +0 -1
  309. /package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/buildOAuthUrl/addOAuthUrlParams/addOAuthUrlParams.d.ts +0 -0
  310. /package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/buildOAuthUrl/addOAuthUrlParams/index.d.ts +0 -0
  311. /package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/buildOAuthUrl/buildOAuthUrl.d.ts +0 -0
  312. /package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/buildOAuthUrl/getOAuthBaseUrl/getOAuthBaseUrl.d.ts +0 -0
  313. /package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/buildOAuthUrl/getOAuthBaseUrl/index.d.ts +0 -0
  314. /package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/buildOAuthUrl/index.d.ts +0 -0
@@ -0,0 +1,491 @@
1
+ import { g as getDefaultClient, a as getCore, B as BaseError, d as assertDefined, k as getChainFromVerifiedCredentialChain, _ as _extends, i as isCookieEnabled } from './constants.esm.js';
2
+ import { WalletProviderEnum, JwtVerifiedCredentialFormatEnum } from '@dynamic-labs/sdk-api-core';
3
+
4
+ /**
5
+ * Sefelly sets the cookie in the browser.
6
+ */ const setCookie = (cookie)=>{
7
+ // eslint-disable-next-line no-restricted-globals
8
+ document.cookie = cookie;
9
+ };
10
+
11
+ /**
12
+ * Adds an event listener for Dynamic client events.
13
+ *
14
+ * This function allows you to listen for various events emitted by the Dynamic client,
15
+ * such as authentication state changes, wallet connections, and more.
16
+ *
17
+ * @param params.event - The event name to listen for.
18
+ * @param params.listener - The callback function to execute when the event is fired.
19
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
20
+ * @returns A function that can be called to remove the listener.
21
+ */ const onEvent = ({ event, listener }, client = getDefaultClient())=>{
22
+ const { eventEmitter } = getCore(client);
23
+ eventEmitter.on(event, listener);
24
+ return ()=>{
25
+ eventEmitter.off(event, listener);
26
+ };
27
+ };
28
+ /**
29
+ * Removes an event listener from Dynamic client events.
30
+ *
31
+ * This function unsubscribes a previously registered event listener
32
+ * from the specified Dynamic client event.
33
+ *
34
+ * @param params.event - The event name to remove the listener from.
35
+ * @param params.listener - The callback function to remove.
36
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
37
+ */ const offEvent = ({ event, listener }, client = getDefaultClient())=>{
38
+ const { eventEmitter } = getCore(client);
39
+ eventEmitter.off(event, listener);
40
+ };
41
+ /**
42
+ * Adds a one-time event listener for Dynamic client events.
43
+ *
44
+ * This function listens for an event that will automatically remove itself
45
+ * after being triggered once.
46
+ *
47
+ * @param params.event - The event name to listen for.
48
+ * @param params.listener - The callback function to execute when the event is fired.
49
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
50
+ * @returns A function that can be called to remove the listener before it fires.
51
+ */ const onceEvent = ({ event, listener }, client = getDefaultClient())=>{
52
+ const { eventEmitter } = getCore(client);
53
+ eventEmitter.once(event, listener);
54
+ return ()=>{
55
+ eventEmitter.off(event, listener);
56
+ };
57
+ };
58
+ /**
59
+ * Emits a Dynamic client event.
60
+ *
61
+ * This function triggers an event that will be received by all registered
62
+ * listeners for the specified event type.
63
+ *
64
+ * @param params.event - The event name to emit.
65
+ * @param params.args - The arguments to pass to event listeners.
66
+ * @param client - The Dynamic client instance.
67
+ */ const emitEvent = ({ event, args }, client)=>{
68
+ const { eventEmitter } = getCore(client);
69
+ eventEmitter.emit(event, args);
70
+ };
71
+
72
+ class InvalidWalletProviderKeyError extends BaseError {
73
+ constructor(value){
74
+ super({
75
+ cause: null,
76
+ code: 'invalid_wallet_provider_key',
77
+ docsUrl: null,
78
+ name: 'InvalidWalletProviderKeyError',
79
+ shortMessage: `Invalid wallet provider key: ${value}. Key must be in the format of <normalizedWalletNameWithChain>:<walletProviderType>[:<suffix>]`
80
+ });
81
+ }
82
+ }
83
+
84
+ const splitWalletProviderKey = (walletProviderKey)=>{
85
+ const [normalizedWalletNameWithChain, walletProviderType, suffix, ...rest] = walletProviderKey.split(':');
86
+ if (!normalizedWalletNameWithChain || !Object.values(WalletProviderEnum).includes(walletProviderType) || rest.length > 0) {
87
+ throw new InvalidWalletProviderKeyError(walletProviderKey);
88
+ }
89
+ return {
90
+ normalizedWalletNameWithChain,
91
+ suffix,
92
+ walletProviderType: walletProviderType
93
+ };
94
+ };
95
+
96
+ const normalizeAddress = (address, chain)=>{
97
+ let normalizedAddress = address;
98
+ if (normalizedAddress == null ? void 0 : normalizedAddress.startsWith('0x')) {
99
+ normalizedAddress = normalizedAddress.slice(2);
100
+ }
101
+ /**
102
+ * These are standard from CAIP-2: https://github.com/ChainAgnostic/CAIPs/blob/master/CAIPs/caip-2.md
103
+ * see also: https://github.com/ChainAgnostic/namespaces
104
+ * note: no standard namespace currently exists for flow
105
+ */ const chainsThatRequireLowercaseAddress = [
106
+ 'EVM',
107
+ 'FLOW'
108
+ ];
109
+ normalizedAddress = chainsThatRequireLowercaseAddress.includes(chain) ? normalizedAddress == null ? void 0 : normalizedAddress.toLowerCase() : normalizedAddress;
110
+ return normalizedAddress;
111
+ };
112
+
113
+ const formatWalletAccountId = ({ address, chain, walletProviderKey })=>{
114
+ const { normalizedWalletNameWithChain } = splitWalletProviderKey(walletProviderKey);
115
+ const normalizedAddress = normalizeAddress(address, chain);
116
+ return `${normalizedWalletNameWithChain}:${normalizedAddress}`;
117
+ };
118
+
119
+ const convertUnverifiedWalletAccountToWalletAccount = ({ unverifiedWalletAccount })=>({
120
+ address: unverifiedWalletAccount.address,
121
+ addressesWithTypes: unverifiedWalletAccount.addressesWithTypes,
122
+ chain: unverifiedWalletAccount.chain,
123
+ id: formatWalletAccountId({
124
+ address: unverifiedWalletAccount.address,
125
+ chain: unverifiedWalletAccount.chain,
126
+ walletProviderKey: unverifiedWalletAccount.walletProviderKey
127
+ }),
128
+ lastSelectedAt: unverifiedWalletAccount.lastSelectedAt,
129
+ verifiedCredentialId: null,
130
+ walletProviderKey: unverifiedWalletAccount.walletProviderKey
131
+ });
132
+
133
+ /**
134
+ * Format the raw wallet name and chain to get the value we can use for
135
+ * verified credentials' `walletName` field.
136
+ */ const normalizeWalletNameWithChain = ({ displayName, chain })=>{
137
+ const sanitizedWalletName = displayName.replace(/[^a-zA-Z0-9]/g, '').toLowerCase();
138
+ const chainLowered = chain.toLocaleLowerCase();
139
+ if (sanitizedWalletName.endsWith(chainLowered)) {
140
+ return sanitizedWalletName;
141
+ }
142
+ return `${sanitizedWalletName}${chainLowered}`;
143
+ };
144
+
145
+ /**
146
+ * Assembles the wallet provider key from the wallet name, chain, and wallet provider type.
147
+ *
148
+ * The suffix is optional and can be used to add a uniquely identifying string to the key, which
149
+ * might be necessary for some wallet providers (like Wallet Connect).
150
+ *
151
+ * IMPORTANT: Do NOT add a suffix unless absolutely necessary, as it will cause the wallet account
152
+ * to not be able to find its wallet provider when connecting to a new device (it won't be possible
153
+ * to determine the full key just from the Verified Credential data).
154
+ */ const formatWalletProviderKey = ({ suffix, chain, displayName, walletProviderType })=>{
155
+ const normalizedNameWithChain = normalizeWalletNameWithChain({
156
+ chain,
157
+ displayName
158
+ });
159
+ return `${normalizedNameWithChain}:${walletProviderType}${suffix ? `:${suffix}` : ''}`;
160
+ };
161
+
162
+ const getWalletProviderKeyFromVerifiedCredential = ({ verifiedCredential }, client)=>{
163
+ const core = getCore(client);
164
+ const { walletProviderKeyMap } = core.state.get();
165
+ const storedWalletProviderKey = walletProviderKeyMap[verifiedCredential.id];
166
+ if (storedWalletProviderKey) {
167
+ return {
168
+ walletProviderKey: storedWalletProviderKey
169
+ };
170
+ }
171
+ /**
172
+ * We fallback to comprising the wallet provider key from walletName and walletProvider.
173
+ *
174
+ * Some wallet provider types (like Wallet Connect) also use a special suffix for their wallet provider
175
+ * keys, so this won't be enough for them.
176
+ * Therefore, for those specific wallet providers, the wallet account will remain without a wallet provider
177
+ * and will require reconnection.
178
+ * Read walletProvider.types.ts for more info.
179
+ */ assertDefined(verifiedCredential.walletName, `Failed to get wallet provider for verified credential with ID ${verifiedCredential.id}: missing walletName`);
180
+ assertDefined(verifiedCredential.walletProvider, `Failed to get wallet provider for verified credential with ID ${verifiedCredential.id}: missing walletProvider`);
181
+ assertDefined(verifiedCredential.chain, `Failed to get wallet provider for verified credential with ID ${verifiedCredential.id}: missing chain`);
182
+ /**
183
+ * Historically, walletNames did not include the chain name as a suffix.
184
+ * This piece of logic simply ensures we normalize any legacy walletNames to conform.
185
+ */ const chain = getChainFromVerifiedCredentialChain(verifiedCredential.chain);
186
+ const walletProviderKey = formatWalletProviderKey({
187
+ chain,
188
+ displayName: verifiedCredential.walletName,
189
+ walletProviderType: verifiedCredential.walletProvider
190
+ });
191
+ return {
192
+ walletProviderKey
193
+ };
194
+ };
195
+
196
+ const convertVerifiedCredentialToWalletAccount = ({ verifiedCredential }, client)=>{
197
+ assertDefined(verifiedCredential.address, 'Missing address in verified credential');
198
+ assertDefined(verifiedCredential.chain, 'Missing chain in verified credential');
199
+ const chain = getChainFromVerifiedCredentialChain(verifiedCredential.chain);
200
+ const { walletProviderKey } = getWalletProviderKeyFromVerifiedCredential({
201
+ verifiedCredential
202
+ }, client);
203
+ const walletAccountId = formatWalletAccountId({
204
+ address: verifiedCredential.address,
205
+ chain,
206
+ walletProviderKey
207
+ });
208
+ var _verifiedCredential_lastSelectedAt;
209
+ return {
210
+ address: verifiedCredential.address,
211
+ addressesWithTypes: verifiedCredential.walletAdditionalAddresses,
212
+ chain,
213
+ id: walletAccountId,
214
+ lastSelectedAt: (_verifiedCredential_lastSelectedAt = verifiedCredential.lastSelectedAt) != null ? _verifiedCredential_lastSelectedAt : null,
215
+ verifiedCredentialId: verifiedCredential.id,
216
+ walletProviderKey
217
+ };
218
+ };
219
+
220
+ const getWalletAccountsFromState = ({ unverifiedWalletAccounts, user }, client)=>{
221
+ const walletAccountsMap = new Map();
222
+ /**
223
+ * Handle the unverified wallet accounts before the user verified credentials
224
+ * so the later verified wallet accounts can override the unverified wallet accounts
225
+ */ unverifiedWalletAccounts.forEach((unverifiedWalletAccount)=>{
226
+ const walletAccount = convertUnverifiedWalletAccountToWalletAccount({
227
+ unverifiedWalletAccount
228
+ });
229
+ walletAccountsMap.set(walletAccount.id, walletAccount);
230
+ });
231
+ var _user_verifiedCredentials;
232
+ /**
233
+ * Handle user verified credentials
234
+ */ const verifiedCredentials = (_user_verifiedCredentials = user == null ? void 0 : user.verifiedCredentials) != null ? _user_verifiedCredentials : [];
235
+ verifiedCredentials.filter((verified)=>verified.format === JwtVerifiedCredentialFormatEnum.Blockchain).forEach((verifiedWalletAccount)=>{
236
+ const walletAccount = convertVerifiedCredentialToWalletAccount({
237
+ verifiedCredential: verifiedWalletAccount
238
+ }, client);
239
+ walletAccountsMap.set(walletAccount.id, walletAccount);
240
+ });
241
+ return Array.from(walletAccountsMap.values());
242
+ };
243
+
244
+ /**
245
+ * Retrieves all wallet accounts associated with the current session.
246
+ *
247
+ * This function returns both verified and unverified wallet accounts,
248
+ * combining data from user credentials and local unverified accounts.
249
+ * You can differentiate between verified and unverified wallet accounts by
250
+ * checking the `verifiedCredentialId` property.
251
+ *
252
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
253
+ * @returns An array of wallet accounts associated with the session.
254
+ */ const getWalletAccounts = (client = getDefaultClient())=>{
255
+ const core = getCore(client);
256
+ const { unverifiedWalletAccounts, user } = core.state.get();
257
+ return getWalletAccountsFromState({
258
+ unverifiedWalletAccounts,
259
+ user
260
+ }, client);
261
+ };
262
+
263
+ class NoWalletProviderFoundError extends BaseError {
264
+ constructor({ walletProviderKey }){
265
+ super({
266
+ cause: null,
267
+ code: 'no_wallet_provider_found_error',
268
+ docsUrl: null,
269
+ name: 'NoWalletProviderFoundError',
270
+ shortMessage: `No wallet provider found with key: ${walletProviderKey}`
271
+ });
272
+ }
273
+ }
274
+
275
+ /**
276
+ * Creates a service accessor function that manages service instantiation and caching.
277
+ * The returned function will either retrieve an existing service from the registry or
278
+ * create a new one using the provided builder function.
279
+ *
280
+ * @template - The type of service to be created/accessed
281
+ * @param key - Unique identifier for the service in the registry
282
+ * @param builder - Function that creates the service instance when called with a DynamicClient
283
+ */ const createRuntimeServiceAccessKey = (key, builder)=>(client)=>{
284
+ const { runtimeServices } = getCore(client);
285
+ const currentService = runtimeServices.getByKey(key);
286
+ if (currentService) {
287
+ return currentService;
288
+ }
289
+ const service = builder(client);
290
+ runtimeServices.register(key, service);
291
+ return service;
292
+ };
293
+
294
+ /**
295
+ * Creates a new wallet provider registry that manages wallet providers with priority-based registration.
296
+ *
297
+ * @returns The wallet provider registry instance
298
+ *
299
+ * @example
300
+ * ```typescript
301
+ * const registry = createWalletProviderRegistry();
302
+ *
303
+ * registry.register({
304
+ * priority: WalletProviderPriority.WALLET_SDK,
305
+ * walletProvider: myWalletProvider
306
+ * });
307
+ *
308
+ * const provider = registry.getByKey('my-wallet-key');
309
+ * const providers = registry.listProviders();
310
+ * ```
311
+ */ const createWalletProviderRegistry = (client)=>{
312
+ const registry = new Map();
313
+ return {
314
+ getByKey: (key)=>{
315
+ var _registry_get;
316
+ return (_registry_get = registry.get(key)) == null ? void 0 : _registry_get.walletProvider;
317
+ },
318
+ listProviders: ()=>Array.from(registry.values()).map((v)=>v.walletProvider),
319
+ register: (args)=>{
320
+ const existingEntry = registry.get(args.walletProvider.key);
321
+ if (existingEntry) {
322
+ if (existingEntry.priority < args.priority) {
323
+ registry.set(args.walletProvider.key, args);
324
+ emitEvent({
325
+ args: {
326
+ walletProviderKey: args.walletProvider.key
327
+ },
328
+ event: 'walletProviderChanged'
329
+ }, client);
330
+ }
331
+ } else {
332
+ registry.set(args.walletProvider.key, args);
333
+ emitEvent({
334
+ args: {
335
+ walletProvider: args.walletProvider
336
+ },
337
+ event: 'walletProviderRegistered'
338
+ }, client);
339
+ emitEvent({
340
+ args: {
341
+ walletProviderKey: args.walletProvider.key
342
+ },
343
+ event: 'walletProviderChanged'
344
+ }, client);
345
+ }
346
+ },
347
+ unregister: (key)=>{
348
+ registry.delete(key);
349
+ emitEvent({
350
+ args: {
351
+ walletProviderKey: key
352
+ },
353
+ event: 'walletProviderUnregistered'
354
+ }, client);
355
+ }
356
+ };
357
+ };
358
+
359
+ /**
360
+ * This function provides access to a shared instance of the wallet provider registry.
361
+ *
362
+ * It ensures that the same registry instance is used throughout the client to maintaining
363
+ * consistency of registered wallet providers across different parts of the codebase.
364
+ *
365
+ * @returns The wallet provider registry instance
366
+ *
367
+ * @example
368
+ * ```typescript
369
+ * // Get the registry instance
370
+ * const registry = getWalletProviderRegistry();
371
+ *
372
+ * // Register a wallet provider
373
+ * registry.register({
374
+ * priority: WalletProviderPriority.WALLET_SDK,
375
+ * walletProvider: myWalletProvider
376
+ * });
377
+ *
378
+ * // Retrieve a specific provider
379
+ * const provider = registry.getByKey('metamaskevm');
380
+ * ```
381
+ */ const getWalletProviderRegistry = createRuntimeServiceAccessKey('walletProviderRegistry', (client)=>createWalletProviderRegistry(client));
382
+
383
+ var WalletProviderPriority;
384
+ (function(WalletProviderPriority) {
385
+ /**
386
+ * Highest priority should be used by wallet providers that implement
387
+ * the most reliable wallet integration.
388
+ * example: The SDK provided by the wallet provider.
389
+ */ WalletProviderPriority[WalletProviderPriority["WALLET_SDK"] = 100] = "WALLET_SDK";
390
+ /**
391
+ * Medium priority should be used by wallet providers that implement
392
+ * a wallet integration via some reliable standard.
393
+ * example: A wallet provider that uses EIP6963 announcement.
394
+ */ WalletProviderPriority[WalletProviderPriority["WALLET_SELF_ANNOUNCEMENT_STANDARD"] = 50] = "WALLET_SELF_ANNOUNCEMENT_STANDARD";
395
+ /**
396
+ * Low priority should be used by wallet providers that implement
397
+ * a wallet integration on a less reliable standard.
398
+ * example: A wallet provider that uses window.ethereum, where the
399
+ * window key can be overridden by other extensions.
400
+ */ WalletProviderPriority[WalletProviderPriority["WINDOW_INJECT"] = 20] = "WINDOW_INJECT";
401
+ })(WalletProviderPriority || (WalletProviderPriority = {}));
402
+
403
+ const getWalletProviderFromWalletAccount = ({ walletAccount }, client)=>{
404
+ const walletProviderRegistry = getWalletProviderRegistry(client);
405
+ const walletProvider = walletProviderRegistry.getByKey(walletAccount.walletProviderKey);
406
+ if (!walletProvider) {
407
+ throw new NoWalletProviderFoundError({
408
+ walletProviderKey: walletAccount.walletProviderKey
409
+ });
410
+ }
411
+ return walletProvider;
412
+ };
413
+
414
+ const DYNAMIC_AUTH_COOKIE_NAME = 'DYNAMIC_JWT_TOKEN';
415
+
416
+ /**
417
+ * Emits the `walletAccountsChanged` event.
418
+ */ const emitWalletAccountsChangedEvent = (client)=>{
419
+ const walletAccounts = getWalletAccounts(client);
420
+ emitEvent({
421
+ args: {
422
+ walletAccounts
423
+ },
424
+ event: 'walletAccountsChanged'
425
+ }, client);
426
+ };
427
+
428
+ const checkAndRaiseWalletAccountsChangedEvent = ({ previousState }, client)=>{
429
+ const core = getCore(client);
430
+ const walletAccountsHashBefore = getWalletAccountsHash(previousState, client);
431
+ const walletAccountsHashAfter = getWalletAccountsHash(core.state.get(), client);
432
+ if (walletAccountsHashBefore !== walletAccountsHashAfter) {
433
+ emitWalletAccountsChangedEvent(client);
434
+ }
435
+ };
436
+ const getWalletAccountsHash = (state, client)=>getWalletAccountsFromState(state, client).map((walletAccount)=>JSON.stringify(walletAccount)).sort().join('-');
437
+
438
+ const updateAuthFromVerifyResponse = ({ response }, client)=>{
439
+ const core = getCore(client);
440
+ const previousState = _extends({}, core.state.get());
441
+ const { user, minifiedJwt, jwt, expiresAt, mfaToken } = response;
442
+ // Expires at is in seconds, so we need to convert it to milliseconds
443
+ const sessionExpiresAt = new Date(expiresAt * 1000);
444
+ const newState = {
445
+ legacyToken: jwt != null ? jwt : null,
446
+ sessionExpiresAt: sessionExpiresAt,
447
+ token: minifiedJwt != null ? minifiedJwt : null,
448
+ user
449
+ };
450
+ // only override the mfaToken if a new one is provided in the response
451
+ if (mfaToken) {
452
+ newState.mfaToken = mfaToken;
453
+ }
454
+ core.state.set(newState);
455
+ /**
456
+ * For customers using a sandbox environment with cookies enabled, we need to set the cookie
457
+ * programmatically because Redcoast won't set the cookie via headers. We set the cookie programmatically
458
+ * so customers can access the cookie from document.cookie consistently between sandbox and live environments.
459
+ */ if (minifiedJwt && isCookieEnabled(client)) {
460
+ const expireDate = sessionExpiresAt.toUTCString();
461
+ setCookie(`${DYNAMIC_AUTH_COOKIE_NAME}=${minifiedJwt}; expires=${expireDate}; path=/; SameSite=Lax`);
462
+ }
463
+ checkAndRaiseWalletAccountsChangedEvent({
464
+ previousState
465
+ }, client);
466
+ };
467
+
468
+ /**
469
+ * Get all available wallet providers to interact with internally.
470
+ */ const getWalletProviders = (client)=>{
471
+ const walletProviderRegistry = getWalletProviderRegistry(client);
472
+ return walletProviderRegistry.listProviders();
473
+ };
474
+
475
+ const getWalletProviderByKey = ({ walletProviderKey }, client)=>{
476
+ const walletProviders = getWalletProviders(client);
477
+ const walletProvider = walletProviders.find((walletProvider)=>walletProvider.key === walletProviderKey);
478
+ if (!walletProvider) {
479
+ throw new NoWalletProviderFoundError({
480
+ walletProviderKey
481
+ });
482
+ }
483
+ return walletProvider;
484
+ };
485
+
486
+ const getVerifiedCredentialForWalletAccount = ({ walletAccount }, client)=>{
487
+ var _client_user;
488
+ return (_client_user = client.user) == null ? void 0 : _client_user.verifiedCredentials.find((vc)=>vc.id === walletAccount.verifiedCredentialId);
489
+ };
490
+
491
+ export { DYNAMIC_AUTH_COOKIE_NAME as D, InvalidWalletProviderKeyError as I, NoWalletProviderFoundError as N, WalletProviderPriority as W, getWalletProviderFromWalletAccount as a, getWalletProviderByKey as b, checkAndRaiseWalletAccountsChangedEvent as c, emitWalletAccountsChangedEvent as d, emitEvent as e, formatWalletAccountId as f, getWalletAccounts as g, getWalletProviders as h, getVerifiedCredentialForWalletAccount as i, onceEvent as j, onEvent as k, createRuntimeServiceAccessKey as l, formatWalletProviderKey as m, normalizeAddress as n, offEvent as o, normalizeWalletNameWithChain as p, splitWalletProviderKey as q, getWalletProviderRegistry as r, setCookie as s, updateAuthFromVerifyResponse as u };