@multiplatform.one/web3 7.23.2 → 7.25.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 (1028) hide show
  1. package/README.md +183 -11
  2. package/dist/cjs/bridge/AuthBridge.cjs +124 -0
  3. package/dist/cjs/bridge/AuthBridge.native.js +186 -0
  4. package/dist/cjs/bridge/AuthBridge.native.js.map +1 -0
  5. package/dist/cjs/bridge/BridgeClient.cjs +12 -9
  6. package/dist/cjs/bridge/BridgeClient.native.js +17 -12
  7. package/dist/cjs/bridge/BridgeClient.native.js.map +1 -1
  8. package/dist/cjs/bridge/BridgeHost.cjs +11 -3
  9. package/dist/cjs/bridge/BridgeHost.native.js +11 -3
  10. package/dist/cjs/bridge/BridgeHost.native.js.map +1 -1
  11. package/dist/cjs/bridge/GpgBridge.cjs +61 -0
  12. package/dist/cjs/bridge/GpgBridge.native.js +111 -0
  13. package/dist/cjs/bridge/GpgBridge.native.js.map +1 -0
  14. package/dist/cjs/bridge/SolanaBridge.native.js.map +1 -1
  15. package/dist/cjs/bridge/SuiBridge.cjs +51 -0
  16. package/dist/cjs/bridge/SuiBridge.native.js +99 -0
  17. package/dist/cjs/bridge/SuiBridge.native.js.map +1 -0
  18. package/dist/cjs/bridge/authTypes.cjs +28 -0
  19. package/dist/cjs/bridge/authTypes.native.js +31 -0
  20. package/dist/cjs/bridge/authTypes.native.js.map +1 -0
  21. package/dist/cjs/bridge/base64.native.js.map +1 -1
  22. package/dist/cjs/bridge/bridgeConnector.native.js.map +1 -1
  23. package/dist/cjs/bridge/core.cjs +65 -0
  24. package/dist/cjs/bridge/core.native.js +68 -0
  25. package/dist/cjs/bridge/core.native.js.map +1 -0
  26. package/dist/cjs/bridge/eip1193.native.js.map +1 -1
  27. package/dist/cjs/bridge/hosting.cjs +91 -0
  28. package/dist/cjs/bridge/hosting.native.js +117 -0
  29. package/dist/cjs/bridge/hosting.native.js.map +1 -0
  30. package/dist/cjs/bridge/index.cjs +3 -17
  31. package/dist/cjs/bridge/index.native.js +2 -16
  32. package/dist/cjs/bridge/index.native.js.map +1 -1
  33. package/dist/cjs/bridge/nativeHost.cjs +91 -0
  34. package/dist/cjs/bridge/nativeHost.native.js +118 -0
  35. package/dist/cjs/bridge/nativeHost.native.js.map +1 -0
  36. package/dist/cjs/bridge/postMessageTransport.native.js.map +1 -1
  37. package/dist/cjs/bridge/protocol.cjs +30 -1
  38. package/dist/cjs/bridge/protocol.native.js +147 -1
  39. package/dist/cjs/bridge/protocol.native.js.map +1 -1
  40. package/dist/cjs/bridge/transport.native.js.map +1 -1
  41. package/dist/cjs/bundler/metaMaskConnectTimeouts.native.js.map +1 -1
  42. package/dist/cjs/clients/adapter.native.js.map +1 -1
  43. package/dist/cjs/clients/bitcoin.native.js.map +1 -1
  44. package/dist/cjs/clients/connector.native.js.map +1 -1
  45. package/dist/cjs/clients/evm.cjs +299 -11
  46. package/dist/cjs/clients/evm.native.js +500 -12
  47. package/dist/cjs/clients/evm.native.js.map +1 -1
  48. package/dist/cjs/clients/gpg.native.js.map +1 -1
  49. package/dist/cjs/clients/hooks.native.js.map +1 -1
  50. package/dist/cjs/clients/index.cjs +5 -0
  51. package/dist/cjs/clients/index.native.js +5 -0
  52. package/dist/cjs/clients/index.native.js.map +1 -1
  53. package/dist/cjs/clients/solana.cjs +39 -21
  54. package/dist/cjs/clients/solana.native.js +48 -23
  55. package/dist/cjs/clients/solana.native.js.map +1 -1
  56. package/dist/cjs/clients/solanaMessage.native.js.map +1 -1
  57. package/dist/cjs/clients/sui.native.js.map +1 -1
  58. package/dist/cjs/clients/types.native.js.map +1 -1
  59. package/dist/cjs/clients/useSolanaClient.native.js.map +1 -1
  60. package/dist/cjs/clients/walletStandard.native.js.map +1 -1
  61. package/dist/cjs/components/NetworkSwitcher.native.js.map +1 -1
  62. package/dist/cjs/components/TransactionStatus.native.js.map +1 -1
  63. package/dist/cjs/components/index.native.js.map +1 -1
  64. package/dist/cjs/connectkit/GpgProvider.cjs +44 -0
  65. package/dist/cjs/connectkit/GpgProvider.native.js +51 -0
  66. package/dist/cjs/connectkit/GpgProvider.native.js.map +1 -0
  67. package/dist/cjs/connectkit/adapters/BitcoinAdapter.cjs +5 -14
  68. package/dist/cjs/connectkit/adapters/BitcoinAdapter.native.js +5 -15
  69. package/dist/cjs/connectkit/adapters/BitcoinAdapter.native.js.map +1 -1
  70. package/dist/cjs/connectkit/adapters/EthereumAdapter.cjs +6 -15
  71. package/dist/cjs/connectkit/adapters/EthereumAdapter.native.js +7 -16
  72. package/dist/cjs/connectkit/adapters/EthereumAdapter.native.js.map +1 -1
  73. package/dist/cjs/connectkit/adapters/SolanaAdapter.cjs +5 -14
  74. package/dist/cjs/connectkit/adapters/SolanaAdapter.native.js +5 -15
  75. package/dist/cjs/connectkit/adapters/SolanaAdapter.native.js.map +1 -1
  76. package/dist/cjs/connectkit/adapters/SuiAdapter.cjs +5 -14
  77. package/dist/cjs/connectkit/adapters/SuiAdapter.native.js +5 -15
  78. package/dist/cjs/connectkit/adapters/SuiAdapter.native.js.map +1 -1
  79. package/dist/cjs/connectkit/adapters/discover.native.js.map +1 -1
  80. package/dist/cjs/connectkit/adapters/index.native.js.map +1 -1
  81. package/dist/cjs/connectkit/adapters/types.native.js.map +1 -1
  82. package/dist/cjs/connectkit/assets/chains.native.js.map +1 -1
  83. package/dist/cjs/connectkit/components/BalanceButton/index.native.js +1 -1
  84. package/dist/cjs/connectkit/components/BalanceButton/index.native.js.map +1 -1
  85. package/dist/cjs/connectkit/components/Common/Avatar/index.native.js.map +1 -1
  86. package/dist/cjs/connectkit/components/Common/Avatar/styles.native.js.map +1 -1
  87. package/dist/cjs/connectkit/components/Common/Chain/index.native.js.map +1 -1
  88. package/dist/cjs/connectkit/components/Common/Chain/styles.native.js.map +1 -1
  89. package/dist/cjs/connectkit/components/Common/ChainSelect/index.native.js +2 -2
  90. package/dist/cjs/connectkit/components/Common/ChainSelect/index.native.js.map +1 -1
  91. package/dist/cjs/connectkit/components/Common/ChainSelectDropdown/index.native.js +1 -1
  92. package/dist/cjs/connectkit/components/Common/ChainSelectDropdown/index.native.js.map +1 -1
  93. package/dist/cjs/connectkit/components/Common/ChainSelectDropdown/styles.native.js.map +1 -1
  94. package/dist/cjs/connectkit/components/Common/ChainSelectList/index.native.js.map +1 -1
  95. package/dist/cjs/connectkit/components/Common/ChainSelectList/styles.native.js.map +1 -1
  96. package/dist/cjs/connectkit/components/Common/ConnectorList/index.native.js.map +1 -1
  97. package/dist/cjs/connectkit/components/Common/ConnectorList/styles.native.js.map +1 -1
  98. package/dist/cjs/connectkit/components/ConnectButton/index.native.js +4 -4
  99. package/dist/cjs/connectkit/components/ConnectButton/index.native.js.map +1 -1
  100. package/dist/cjs/connectkit/components/ConnectButton/styles.native.js.map +1 -1
  101. package/dist/cjs/connectkit/components/ConnectModal/ConnectUsing.native.js +1 -1
  102. package/dist/cjs/connectkit/components/ConnectModal/ConnectUsing.native.js.map +1 -1
  103. package/dist/cjs/connectkit/components/ConnectModal/ConnectWithInjector/CircleSpinner/index.native.js.map +1 -1
  104. package/dist/cjs/connectkit/components/ConnectModal/ConnectWithInjector/CircleSpinner/styles.native.js.map +1 -1
  105. package/dist/cjs/connectkit/components/ConnectModal/ConnectWithInjector/SquircleSpinner/index.native.js.map +1 -1
  106. package/dist/cjs/connectkit/components/ConnectModal/ConnectWithInjector/SquircleSpinner/styles.native.js.map +1 -1
  107. package/dist/cjs/connectkit/components/ConnectModal/ConnectWithInjector/index.native.js +3 -3
  108. package/dist/cjs/connectkit/components/ConnectModal/ConnectWithInjector/index.native.js.map +1 -1
  109. package/dist/cjs/connectkit/components/ConnectModal/ConnectWithInjector/styles.native.js.map +1 -1
  110. package/dist/cjs/connectkit/components/ConnectModal/demo.native.js +9 -9
  111. package/dist/cjs/connectkit/components/ConnectModal/demo.native.js.map +1 -1
  112. package/dist/cjs/connectkit/components/NetworkButton/index.native.js +2 -2
  113. package/dist/cjs/connectkit/components/NetworkButton/index.native.js.map +1 -1
  114. package/dist/cjs/connectkit/components/Pages/About/graphics.native.js.map +1 -1
  115. package/dist/cjs/connectkit/components/Pages/About/index.native.js.map +1 -1
  116. package/dist/cjs/connectkit/components/Pages/About/styles.native.js.map +1 -1
  117. package/dist/cjs/connectkit/components/Pages/Connectors/index.native.js +1 -1
  118. package/dist/cjs/connectkit/components/Pages/Connectors/index.native.js.map +1 -1
  119. package/dist/cjs/connectkit/components/Pages/Connectors/styles.native.js.map +1 -1
  120. package/dist/cjs/connectkit/components/Pages/DownloadApp/index.native.js.map +1 -1
  121. package/dist/cjs/connectkit/components/Pages/Onboarding/index.native.js.map +1 -1
  122. package/dist/cjs/connectkit/components/Pages/Onboarding/styles.native.js.map +1 -1
  123. package/dist/cjs/connectkit/components/Pages/Profile/index.native.js +2 -2
  124. package/dist/cjs/connectkit/components/Pages/Profile/index.native.js.map +1 -1
  125. package/dist/cjs/connectkit/components/Pages/Profile/styles.native.js.map +1 -1
  126. package/dist/cjs/connectkit/components/Pages/SignInWithEthereum/index.native.js +3 -3
  127. package/dist/cjs/connectkit/components/Pages/SignInWithEthereum/index.native.js.map +1 -1
  128. package/dist/cjs/connectkit/components/Pages/SignInWithEthereum/styles.native.js.map +1 -1
  129. package/dist/cjs/connectkit/components/Pages/SwitchNetworks/index.native.js +1 -1
  130. package/dist/cjs/connectkit/components/Pages/SwitchNetworks/index.native.js.map +1 -1
  131. package/dist/cjs/connectkit/components/Standard/SIWE/index.native.js +1 -1
  132. package/dist/cjs/connectkit/components/Standard/SIWE/index.native.js.map +1 -1
  133. package/dist/cjs/connectkit/components/Standard/SIWE/styles.native.js.map +1 -1
  134. package/dist/cjs/connectkit/components/contexts/web3/index.native.js.map +1 -1
  135. package/dist/cjs/connectkit/connectors/aaveAccountConnector.native.js.map +1 -1
  136. package/dist/cjs/connectkit/connectors/createWalletMessage.cjs +2 -2
  137. package/dist/cjs/connectkit/connectors/createWalletMessage.native.js +2 -2
  138. package/dist/cjs/connectkit/connectors/createWalletMessage.native.js.map +1 -1
  139. package/dist/cjs/connectkit/connectors/embeddedDesktop.native.js.map +1 -1
  140. package/dist/cjs/connectkit/connectors/ensureWalletConnectors.native.js.map +1 -1
  141. package/dist/cjs/connectkit/connectors/getWalletConnectors.native.js.map +1 -1
  142. package/dist/cjs/connectkit/connectors/metaMaskConnectConnector.native.js.map +1 -1
  143. package/dist/cjs/connectkit/connectors/syntheticChains.native.js.map +1 -1
  144. package/dist/cjs/connectkit/connectors/walletAdapterConnector.native.js.map +1 -1
  145. package/dist/cjs/connectkit/constants/chainConfigs.native.js.map +1 -1
  146. package/dist/cjs/connectkit/defaultConfig.native.js.map +1 -1
  147. package/dist/cjs/connectkit/defaultConnectors.native.js.map +1 -1
  148. package/dist/cjs/connectkit/defaultTransports.native.js.map +1 -1
  149. package/dist/cjs/connectkit/hooks/useChainIsSupported.native.js.map +1 -1
  150. package/dist/cjs/connectkit/hooks/useChains.native.js.map +1 -1
  151. package/dist/cjs/connectkit/hooks/useConnect.native.js.map +1 -1
  152. package/dist/cjs/connectkit/hooks/useConnectCallback.native.js.map +1 -1
  153. package/dist/cjs/connectkit/hooks/useConnectors.native.js.map +1 -1
  154. package/dist/cjs/connectkit/hooks/useEnsFallbackConfig.native.js.map +1 -1
  155. package/dist/cjs/connectkit/hooks/useLastConnector.native.js.map +1 -1
  156. package/dist/cjs/connectkit/index.cjs +4 -3
  157. package/dist/cjs/connectkit/index.native.js +12 -11
  158. package/dist/cjs/connectkit/index.native.js.map +1 -1
  159. package/dist/cjs/connectkit/openConnector/context.native.js.map +1 -1
  160. package/dist/cjs/connectkit/openConnector/device.native.js.map +1 -1
  161. package/dist/cjs/connectkit/openConnector/index.native.js.map +1 -1
  162. package/dist/cjs/connectkit/openConnector/launcher.native.js.map +1 -1
  163. package/dist/cjs/connectkit/profileHeaderAction.native.js +1 -1
  164. package/dist/cjs/connectkit/profileHeaderAction.native.js.map +1 -1
  165. package/dist/cjs/connectkit/screens.native.js +7 -7
  166. package/dist/cjs/connectkit/screens.native.js.map +1 -1
  167. package/dist/cjs/connectkit/siwe/SIWEContext.native.js.map +1 -1
  168. package/dist/cjs/connectkit/siwe/SIWEProvider.cjs +18 -3
  169. package/dist/cjs/connectkit/siwe/SIWEProvider.native.js +18 -3
  170. package/dist/cjs/connectkit/siwe/SIWEProvider.native.js.map +1 -1
  171. package/dist/cjs/connectkit/siwe/connectIntent.native.js.map +1 -1
  172. package/dist/cjs/connectkit/siwe/index.native.js.map +1 -1
  173. package/dist/cjs/connectkit/siwe/useSIWE.native.js.map +1 -1
  174. package/dist/cjs/connectkit/useWeb3Modal.native.js +2 -2
  175. package/dist/cjs/connectkit/useWeb3Modal.native.js.map +1 -1
  176. package/dist/cjs/connectkit/wallets/index.native.js.map +1 -1
  177. package/dist/cjs/connectkit/wallets/useWallets.native.js.map +1 -1
  178. package/dist/cjs/connectkit/wallets/walletConfigs.native.js.map +1 -1
  179. package/dist/cjs/connectkit/web3Bridge.native.js +2 -2
  180. package/dist/cjs/connectkit/web3Bridge.native.js.map +1 -1
  181. package/dist/cjs/connectkit/web3Provider.native.js.map +1 -1
  182. package/dist/cjs/esbuild.native.js.map +1 -1
  183. package/dist/cjs/examples/LockContract.native.js.map +1 -1
  184. package/dist/cjs/examples/index.native.js.map +1 -1
  185. package/dist/cjs/hooks/index.native.js.map +1 -1
  186. package/dist/cjs/hooks/useContractRead.native.js.map +1 -1
  187. package/dist/cjs/hooks/useContractWrite.native.js.map +1 -1
  188. package/dist/cjs/hooks/useWallet.native.js.map +1 -1
  189. package/dist/cjs/index.cjs +2 -0
  190. package/dist/cjs/index.native.js +8 -6
  191. package/dist/cjs/index.native.js.map +1 -1
  192. package/dist/cjs/keycloak/KeycloakWalletLogin.cjs +255 -0
  193. package/dist/cjs/keycloak/KeycloakWalletLogin.native.js +33 -0
  194. package/dist/cjs/keycloak/KeycloakWalletLogin.native.js.map +1 -0
  195. package/dist/cjs/keycloak/browserFlow.cjs +83 -0
  196. package/dist/cjs/keycloak/browserFlow.native.js +90 -0
  197. package/dist/cjs/keycloak/browserFlow.native.js.map +1 -0
  198. package/dist/cjs/keycloak/device.cjs +36 -0
  199. package/dist/cjs/keycloak/device.native.js +45 -0
  200. package/dist/cjs/keycloak/device.native.js.map +1 -0
  201. package/dist/cjs/keycloak/directGrant.cjs +189 -0
  202. package/dist/cjs/keycloak/directGrant.native.js +233 -0
  203. package/dist/cjs/keycloak/directGrant.native.js.map +1 -0
  204. package/dist/cjs/keycloak/iife.cjs +4 -0
  205. package/dist/cjs/keycloak/iife.native.js +7 -0
  206. package/dist/cjs/keycloak/iife.native.js.map +1 -0
  207. package/dist/cjs/keycloak/index.cjs +53 -0
  208. package/dist/cjs/keycloak/index.native.js +56 -0
  209. package/dist/cjs/keycloak/index.native.js.map +1 -0
  210. package/dist/cjs/keycloak/keycloakWallet.cjs +214 -0
  211. package/dist/cjs/keycloak/keycloakWallet.native.js +285 -0
  212. package/dist/cjs/keycloak/keycloakWallet.native.js.map +1 -0
  213. package/dist/cjs/keycloak/mount.cjs +53 -0
  214. package/dist/cjs/keycloak/mount.native.js +33 -0
  215. package/dist/cjs/keycloak/mount.native.js.map +1 -0
  216. package/dist/cjs/keycloak/registerWallet.cjs +74 -0
  217. package/dist/cjs/keycloak/registerWallet.native.js +81 -0
  218. package/dist/cjs/keycloak/registerWallet.native.js.map +1 -0
  219. package/dist/cjs/keycloak/types.cjs +46 -0
  220. package/dist/cjs/keycloak/types.native.js +179 -0
  221. package/dist/cjs/keycloak/types.native.js.map +1 -0
  222. package/dist/cjs/keycloak/useDirectLogin.cjs +57 -0
  223. package/dist/cjs/keycloak/useDirectLogin.native.js +77 -0
  224. package/dist/cjs/keycloak/useDirectLogin.native.js.map +1 -0
  225. package/dist/cjs/keycloak/useWalletLogin.cjs +97 -0
  226. package/dist/cjs/keycloak/useWalletLogin.native.js +33 -0
  227. package/dist/cjs/keycloak/useWalletLogin.native.js.map +1 -0
  228. package/dist/cjs/message/buildWalletMessage.cjs +113 -0
  229. package/dist/cjs/message/buildWalletMessage.native.js +121 -0
  230. package/dist/cjs/message/buildWalletMessage.native.js.map +1 -0
  231. package/dist/cjs/message/index.cjs +29 -0
  232. package/dist/cjs/message/index.native.js +32 -0
  233. package/dist/cjs/message/index.native.js.map +1 -0
  234. package/dist/cjs/providers/WalletProvider.cjs +10 -2
  235. package/dist/cjs/providers/WalletProvider.native.js +123 -90
  236. package/dist/cjs/providers/WalletProvider.native.js.map +1 -1
  237. package/dist/cjs/providers/index.cjs +1 -0
  238. package/dist/cjs/providers/index.native.js +1 -0
  239. package/dist/cjs/providers/index.native.js.map +1 -1
  240. package/dist/cjs/providers/mockConnector.native.js.map +1 -1
  241. package/dist/cjs/providers/native/deepLink.cjs +40 -23
  242. package/dist/cjs/providers/native/deepLink.native.js +43 -25
  243. package/dist/cjs/providers/native/deepLink.native.js.map +1 -1
  244. package/dist/cjs/providers/native/inject.cjs +2 -4
  245. package/dist/cjs/providers/native/inject.native.js +2 -4
  246. package/dist/cjs/providers/native/inject.native.js.map +1 -1
  247. package/dist/cjs/providers/native/visibility.native.js.map +1 -1
  248. package/dist/cjs/providers/walletBridge.cjs +35 -0
  249. package/dist/cjs/providers/walletBridge.native.js +38 -0
  250. package/dist/cjs/providers/walletBridge.native.js.map +1 -0
  251. package/dist/cjs/providers/walletConfig.native.js.map +1 -1
  252. package/dist/cjs/siws/index.native.js.map +1 -1
  253. package/dist/cjs/siws/message.cjs +5 -16
  254. package/dist/cjs/siws/message.native.js +6 -16
  255. package/dist/cjs/siws/message.native.js.map +1 -1
  256. package/dist/cjs/siws/signWithBridge.native.js.map +1 -1
  257. package/dist/cjs/siws/verify.native.js.map +1 -1
  258. package/dist/cjs/solana.native.js.map +1 -1
  259. package/dist/cjs/vite.native.js.map +1 -1
  260. package/dist/esm/bridge/AuthBridge.mjs +99 -0
  261. package/dist/esm/bridge/AuthBridge.mjs.map +1 -0
  262. package/dist/esm/bridge/AuthBridge.native.js +158 -0
  263. package/dist/esm/bridge/AuthBridge.native.js.map +1 -0
  264. package/dist/esm/bridge/BridgeClient.mjs +13 -10
  265. package/dist/esm/bridge/BridgeClient.mjs.map +1 -1
  266. package/dist/esm/bridge/BridgeClient.native.js +18 -13
  267. package/dist/esm/bridge/BridgeClient.native.js.map +1 -1
  268. package/dist/esm/bridge/BridgeHost.mjs +12 -4
  269. package/dist/esm/bridge/BridgeHost.mjs.map +1 -1
  270. package/dist/esm/bridge/BridgeHost.native.js +12 -4
  271. package/dist/esm/bridge/BridgeHost.native.js.map +1 -1
  272. package/dist/esm/bridge/GpgBridge.mjs +36 -0
  273. package/dist/esm/bridge/GpgBridge.mjs.map +1 -0
  274. package/dist/esm/bridge/GpgBridge.native.js +83 -0
  275. package/dist/esm/bridge/GpgBridge.native.js.map +1 -0
  276. package/dist/esm/bridge/SolanaBridge.native.js.map +1 -1
  277. package/dist/esm/bridge/SuiBridge.mjs +26 -0
  278. package/dist/esm/bridge/SuiBridge.mjs.map +1 -0
  279. package/dist/esm/bridge/SuiBridge.native.js +71 -0
  280. package/dist/esm/bridge/SuiBridge.native.js.map +1 -0
  281. package/dist/esm/bridge/authTypes.mjs +3 -0
  282. package/dist/esm/bridge/authTypes.mjs.map +1 -0
  283. package/dist/esm/bridge/authTypes.native.js +3 -0
  284. package/dist/esm/bridge/authTypes.native.js.map +1 -0
  285. package/dist/esm/bridge/base64.native.js.map +1 -1
  286. package/dist/esm/bridge/bridgeConnector.native.js.map +1 -1
  287. package/dist/esm/bridge/core.mjs +17 -0
  288. package/dist/esm/bridge/core.mjs.map +1 -0
  289. package/dist/esm/bridge/core.native.js +17 -0
  290. package/dist/esm/bridge/core.native.js.map +1 -0
  291. package/dist/esm/bridge/eip1193.native.js.map +1 -1
  292. package/dist/esm/bridge/hosting.mjs +62 -0
  293. package/dist/esm/bridge/hosting.mjs.map +1 -0
  294. package/dist/esm/bridge/hosting.native.js +85 -0
  295. package/dist/esm/bridge/hosting.native.js.map +1 -0
  296. package/dist/esm/bridge/index.mjs +2 -9
  297. package/dist/esm/bridge/index.mjs.map +1 -1
  298. package/dist/esm/bridge/index.native.js +2 -9
  299. package/dist/esm/bridge/index.native.js.map +1 -1
  300. package/dist/esm/bridge/nativeHost.mjs +65 -0
  301. package/dist/esm/bridge/nativeHost.mjs.map +1 -0
  302. package/dist/esm/bridge/nativeHost.native.js +89 -0
  303. package/dist/esm/bridge/nativeHost.native.js.map +1 -0
  304. package/dist/esm/bridge/postMessageTransport.native.js.map +1 -1
  305. package/dist/esm/bridge/protocol.mjs +28 -2
  306. package/dist/esm/bridge/protocol.mjs.map +1 -1
  307. package/dist/esm/bridge/protocol.native.js +145 -2
  308. package/dist/esm/bridge/protocol.native.js.map +1 -1
  309. package/dist/esm/bridge/transport.native.js.map +1 -1
  310. package/dist/esm/bundler/metaMaskConnectTimeouts.native.js.map +1 -1
  311. package/dist/esm/clients/adapter.native.js.map +1 -1
  312. package/dist/esm/clients/bitcoin.native.js.map +1 -1
  313. package/dist/esm/clients/connector.native.js.map +1 -1
  314. package/dist/esm/clients/evm.mjs +295 -12
  315. package/dist/esm/clients/evm.mjs.map +1 -1
  316. package/dist/esm/clients/evm.native.js +496 -13
  317. package/dist/esm/clients/evm.native.js.map +1 -1
  318. package/dist/esm/clients/gpg.native.js.map +1 -1
  319. package/dist/esm/clients/hooks.native.js.map +1 -1
  320. package/dist/esm/clients/index.mjs +2 -2
  321. package/dist/esm/clients/index.mjs.map +1 -1
  322. package/dist/esm/clients/index.native.js +2 -2
  323. package/dist/esm/clients/index.native.js.map +1 -1
  324. package/dist/esm/clients/solana.mjs +39 -21
  325. package/dist/esm/clients/solana.mjs.map +1 -1
  326. package/dist/esm/clients/solana.native.js +48 -23
  327. package/dist/esm/clients/solana.native.js.map +1 -1
  328. package/dist/esm/clients/solanaMessage.native.js.map +1 -1
  329. package/dist/esm/clients/sui.native.js.map +1 -1
  330. package/dist/esm/clients/types.native.js.map +1 -1
  331. package/dist/esm/clients/useSolanaClient.native.js.map +1 -1
  332. package/dist/esm/clients/walletStandard.native.js.map +1 -1
  333. package/dist/esm/components/NetworkSwitcher.native.js.map +1 -1
  334. package/dist/esm/components/TransactionStatus.native.js.map +1 -1
  335. package/dist/esm/components/index.native.js.map +1 -1
  336. package/dist/esm/connectkit/GpgProvider.mjs +19 -0
  337. package/dist/esm/connectkit/GpgProvider.mjs.map +1 -0
  338. package/dist/esm/connectkit/GpgProvider.native.js +23 -0
  339. package/dist/esm/connectkit/GpgProvider.native.js.map +1 -0
  340. package/dist/esm/connectkit/adapters/BitcoinAdapter.mjs +5 -14
  341. package/dist/esm/connectkit/adapters/BitcoinAdapter.mjs.map +1 -1
  342. package/dist/esm/connectkit/adapters/BitcoinAdapter.native.js +5 -15
  343. package/dist/esm/connectkit/adapters/BitcoinAdapter.native.js.map +1 -1
  344. package/dist/esm/connectkit/adapters/EthereumAdapter.mjs +6 -15
  345. package/dist/esm/connectkit/adapters/EthereumAdapter.mjs.map +1 -1
  346. package/dist/esm/connectkit/adapters/EthereumAdapter.native.js +7 -16
  347. package/dist/esm/connectkit/adapters/EthereumAdapter.native.js.map +1 -1
  348. package/dist/esm/connectkit/adapters/SolanaAdapter.mjs +5 -14
  349. package/dist/esm/connectkit/adapters/SolanaAdapter.mjs.map +1 -1
  350. package/dist/esm/connectkit/adapters/SolanaAdapter.native.js +5 -15
  351. package/dist/esm/connectkit/adapters/SolanaAdapter.native.js.map +1 -1
  352. package/dist/esm/connectkit/adapters/SuiAdapter.mjs +5 -14
  353. package/dist/esm/connectkit/adapters/SuiAdapter.mjs.map +1 -1
  354. package/dist/esm/connectkit/adapters/SuiAdapter.native.js +5 -15
  355. package/dist/esm/connectkit/adapters/SuiAdapter.native.js.map +1 -1
  356. package/dist/esm/connectkit/adapters/discover.native.js.map +1 -1
  357. package/dist/esm/connectkit/adapters/index.native.js.map +1 -1
  358. package/dist/esm/connectkit/adapters/types.native.js.map +1 -1
  359. package/dist/esm/connectkit/assets/chains.native.js.map +1 -1
  360. package/dist/esm/connectkit/components/BalanceButton/index.native.js.map +1 -1
  361. package/dist/esm/connectkit/components/Common/Avatar/index.native.js.map +1 -1
  362. package/dist/esm/connectkit/components/Common/Avatar/styles.native.js.map +1 -1
  363. package/dist/esm/connectkit/components/Common/Chain/index.native.js.map +1 -1
  364. package/dist/esm/connectkit/components/Common/Chain/styles.native.js.map +1 -1
  365. package/dist/esm/connectkit/components/Common/ChainSelect/index.native.js.map +1 -1
  366. package/dist/esm/connectkit/components/Common/ChainSelectDropdown/index.native.js.map +1 -1
  367. package/dist/esm/connectkit/components/Common/ChainSelectDropdown/styles.native.js.map +1 -1
  368. package/dist/esm/connectkit/components/Common/ChainSelectList/index.native.js.map +1 -1
  369. package/dist/esm/connectkit/components/Common/ChainSelectList/styles.native.js.map +1 -1
  370. package/dist/esm/connectkit/components/Common/ConnectorList/index.native.js.map +1 -1
  371. package/dist/esm/connectkit/components/Common/ConnectorList/styles.native.js.map +1 -1
  372. package/dist/esm/connectkit/components/ConnectButton/index.native.js.map +1 -1
  373. package/dist/esm/connectkit/components/ConnectButton/styles.native.js.map +1 -1
  374. package/dist/esm/connectkit/components/ConnectModal/ConnectUsing.native.js.map +1 -1
  375. package/dist/esm/connectkit/components/ConnectModal/ConnectWithInjector/CircleSpinner/index.native.js.map +1 -1
  376. package/dist/esm/connectkit/components/ConnectModal/ConnectWithInjector/CircleSpinner/styles.native.js.map +1 -1
  377. package/dist/esm/connectkit/components/ConnectModal/ConnectWithInjector/SquircleSpinner/index.native.js.map +1 -1
  378. package/dist/esm/connectkit/components/ConnectModal/ConnectWithInjector/SquircleSpinner/styles.native.js.map +1 -1
  379. package/dist/esm/connectkit/components/ConnectModal/ConnectWithInjector/index.native.js.map +1 -1
  380. package/dist/esm/connectkit/components/ConnectModal/ConnectWithInjector/styles.native.js.map +1 -1
  381. package/dist/esm/connectkit/components/ConnectModal/demo.native.js.map +1 -1
  382. package/dist/esm/connectkit/components/NetworkButton/index.native.js.map +1 -1
  383. package/dist/esm/connectkit/components/Pages/About/graphics.native.js.map +1 -1
  384. package/dist/esm/connectkit/components/Pages/About/index.native.js.map +1 -1
  385. package/dist/esm/connectkit/components/Pages/About/styles.native.js.map +1 -1
  386. package/dist/esm/connectkit/components/Pages/Connectors/index.native.js.map +1 -1
  387. package/dist/esm/connectkit/components/Pages/Connectors/styles.native.js.map +1 -1
  388. package/dist/esm/connectkit/components/Pages/DownloadApp/index.native.js.map +1 -1
  389. package/dist/esm/connectkit/components/Pages/Onboarding/index.native.js.map +1 -1
  390. package/dist/esm/connectkit/components/Pages/Onboarding/styles.native.js.map +1 -1
  391. package/dist/esm/connectkit/components/Pages/Profile/index.native.js.map +1 -1
  392. package/dist/esm/connectkit/components/Pages/Profile/styles.native.js.map +1 -1
  393. package/dist/esm/connectkit/components/Pages/SignInWithEthereum/index.native.js.map +1 -1
  394. package/dist/esm/connectkit/components/Pages/SignInWithEthereum/styles.native.js.map +1 -1
  395. package/dist/esm/connectkit/components/Pages/SwitchNetworks/index.native.js.map +1 -1
  396. package/dist/esm/connectkit/components/Standard/SIWE/index.native.js.map +1 -1
  397. package/dist/esm/connectkit/components/Standard/SIWE/styles.native.js.map +1 -1
  398. package/dist/esm/connectkit/components/contexts/web3/index.native.js.map +1 -1
  399. package/dist/esm/connectkit/connectors/aaveAccountConnector.native.js.map +1 -1
  400. package/dist/esm/connectkit/connectors/createWalletMessage.mjs +1 -1
  401. package/dist/esm/connectkit/connectors/createWalletMessage.native.js +1 -1
  402. package/dist/esm/connectkit/connectors/createWalletMessage.native.js.map +1 -1
  403. package/dist/esm/connectkit/connectors/embeddedDesktop.native.js.map +1 -1
  404. package/dist/esm/connectkit/connectors/ensureWalletConnectors.native.js.map +1 -1
  405. package/dist/esm/connectkit/connectors/getWalletConnectors.native.js.map +1 -1
  406. package/dist/esm/connectkit/connectors/metaMaskConnectConnector.native.js.map +1 -1
  407. package/dist/esm/connectkit/connectors/syntheticChains.native.js.map +1 -1
  408. package/dist/esm/connectkit/connectors/walletAdapterConnector.native.js.map +1 -1
  409. package/dist/esm/connectkit/constants/chainConfigs.native.js.map +1 -1
  410. package/dist/esm/connectkit/defaultConfig.native.js.map +1 -1
  411. package/dist/esm/connectkit/defaultConnectors.native.js.map +1 -1
  412. package/dist/esm/connectkit/defaultTransports.native.js.map +1 -1
  413. package/dist/esm/connectkit/hooks/useChainIsSupported.native.js.map +1 -1
  414. package/dist/esm/connectkit/hooks/useChains.native.js.map +1 -1
  415. package/dist/esm/connectkit/hooks/useConnect.native.js.map +1 -1
  416. package/dist/esm/connectkit/hooks/useConnectCallback.native.js.map +1 -1
  417. package/dist/esm/connectkit/hooks/useConnectors.native.js.map +1 -1
  418. package/dist/esm/connectkit/hooks/useEnsFallbackConfig.native.js.map +1 -1
  419. package/dist/esm/connectkit/hooks/useLastConnector.native.js.map +1 -1
  420. package/dist/esm/connectkit/index.mjs +3 -2
  421. package/dist/esm/connectkit/index.mjs.map +1 -1
  422. package/dist/esm/connectkit/index.native.js +3 -2
  423. package/dist/esm/connectkit/index.native.js.map +1 -1
  424. package/dist/esm/connectkit/openConnector/context.native.js.map +1 -1
  425. package/dist/esm/connectkit/openConnector/device.native.js.map +1 -1
  426. package/dist/esm/connectkit/openConnector/index.native.js.map +1 -1
  427. package/dist/esm/connectkit/openConnector/launcher.native.js.map +1 -1
  428. package/dist/esm/connectkit/profileHeaderAction.native.js.map +1 -1
  429. package/dist/esm/connectkit/screens.native.js.map +1 -1
  430. package/dist/esm/connectkit/siwe/SIWEContext.mjs.map +1 -1
  431. package/dist/esm/connectkit/siwe/SIWEContext.native.js.map +1 -1
  432. package/dist/esm/connectkit/siwe/SIWEProvider.mjs +19 -4
  433. package/dist/esm/connectkit/siwe/SIWEProvider.mjs.map +1 -1
  434. package/dist/esm/connectkit/siwe/SIWEProvider.native.js +19 -4
  435. package/dist/esm/connectkit/siwe/SIWEProvider.native.js.map +1 -1
  436. package/dist/esm/connectkit/siwe/connectIntent.native.js.map +1 -1
  437. package/dist/esm/connectkit/siwe/index.native.js.map +1 -1
  438. package/dist/esm/connectkit/siwe/useSIWE.native.js.map +1 -1
  439. package/dist/esm/connectkit/useWeb3Modal.native.js.map +1 -1
  440. package/dist/esm/connectkit/wallets/index.native.js.map +1 -1
  441. package/dist/esm/connectkit/wallets/useWallets.native.js.map +1 -1
  442. package/dist/esm/connectkit/wallets/walletConfigs.native.js.map +1 -1
  443. package/dist/esm/connectkit/web3Bridge.native.js.map +1 -1
  444. package/dist/esm/connectkit/web3Provider.native.js.map +1 -1
  445. package/dist/esm/esbuild.native.js.map +1 -1
  446. package/dist/esm/examples/LockContract.native.js.map +1 -1
  447. package/dist/esm/examples/index.native.js.map +1 -1
  448. package/dist/esm/hooks/index.native.js.map +1 -1
  449. package/dist/esm/hooks/useContractRead.native.js.map +1 -1
  450. package/dist/esm/hooks/useContractWrite.native.js.map +1 -1
  451. package/dist/esm/hooks/useWallet.native.js.map +1 -1
  452. package/dist/esm/index.mjs +3 -2
  453. package/dist/esm/index.mjs.map +1 -1
  454. package/dist/esm/index.native.js +3 -2
  455. package/dist/esm/index.native.js.map +1 -1
  456. package/dist/esm/keycloak/KeycloakWalletLogin.mjs +218 -0
  457. package/dist/esm/keycloak/KeycloakWalletLogin.mjs.map +1 -0
  458. package/dist/esm/keycloak/KeycloakWalletLogin.native.js +5 -0
  459. package/dist/esm/keycloak/KeycloakWalletLogin.native.js.map +1 -0
  460. package/dist/esm/keycloak/browserFlow.mjs +58 -0
  461. package/dist/esm/keycloak/browserFlow.mjs.map +1 -0
  462. package/dist/esm/keycloak/browserFlow.native.js +62 -0
  463. package/dist/esm/keycloak/browserFlow.native.js.map +1 -0
  464. package/dist/esm/keycloak/device.mjs +10 -0
  465. package/dist/esm/keycloak/device.mjs.map +1 -0
  466. package/dist/esm/keycloak/device.native.js +16 -0
  467. package/dist/esm/keycloak/device.native.js.map +1 -0
  468. package/dist/esm/keycloak/directGrant.mjs +164 -0
  469. package/dist/esm/keycloak/directGrant.mjs.map +1 -0
  470. package/dist/esm/keycloak/directGrant.native.js +205 -0
  471. package/dist/esm/keycloak/directGrant.native.js.map +1 -0
  472. package/dist/esm/keycloak/iife.mjs +5 -0
  473. package/dist/esm/keycloak/iife.mjs.map +1 -0
  474. package/dist/esm/keycloak/iife.native.js +5 -0
  475. package/dist/esm/keycloak/iife.native.js.map +1 -0
  476. package/dist/esm/keycloak/index.mjs +13 -0
  477. package/dist/esm/keycloak/index.mjs.map +1 -0
  478. package/dist/esm/keycloak/index.native.js +13 -0
  479. package/dist/esm/keycloak/index.native.js.map +1 -0
  480. package/dist/esm/keycloak/keycloakWallet.mjs +186 -0
  481. package/dist/esm/keycloak/keycloakWallet.mjs.map +1 -0
  482. package/dist/esm/keycloak/keycloakWallet.native.js +254 -0
  483. package/dist/esm/keycloak/keycloakWallet.native.js.map +1 -0
  484. package/dist/esm/keycloak/mount.mjs +28 -0
  485. package/dist/esm/keycloak/mount.mjs.map +1 -0
  486. package/dist/esm/keycloak/mount.native.js +5 -0
  487. package/dist/esm/keycloak/mount.native.js.map +1 -0
  488. package/dist/esm/keycloak/registerWallet.mjs +49 -0
  489. package/dist/esm/keycloak/registerWallet.mjs.map +1 -0
  490. package/dist/esm/keycloak/registerWallet.native.js +53 -0
  491. package/dist/esm/keycloak/registerWallet.native.js.map +1 -0
  492. package/dist/esm/keycloak/types.mjs +20 -0
  493. package/dist/esm/keycloak/types.mjs.map +1 -0
  494. package/dist/esm/keycloak/types.native.js +150 -0
  495. package/dist/esm/keycloak/types.native.js.map +1 -0
  496. package/dist/esm/keycloak/useDirectLogin.mjs +32 -0
  497. package/dist/esm/keycloak/useDirectLogin.mjs.map +1 -0
  498. package/dist/esm/keycloak/useDirectLogin.native.js +49 -0
  499. package/dist/esm/keycloak/useDirectLogin.native.js.map +1 -0
  500. package/dist/esm/keycloak/useWalletLogin.mjs +72 -0
  501. package/dist/esm/keycloak/useWalletLogin.mjs.map +1 -0
  502. package/dist/esm/keycloak/useWalletLogin.native.js +5 -0
  503. package/dist/esm/keycloak/useWalletLogin.native.js.map +1 -0
  504. package/dist/esm/message/buildWalletMessage.mjs +87 -0
  505. package/dist/esm/message/buildWalletMessage.mjs.map +1 -0
  506. package/dist/esm/message/buildWalletMessage.native.js +92 -0
  507. package/dist/esm/message/buildWalletMessage.native.js.map +1 -0
  508. package/dist/esm/message/index.mjs +3 -0
  509. package/dist/esm/message/index.mjs.map +1 -0
  510. package/dist/esm/message/index.native.js +3 -0
  511. package/dist/esm/message/index.native.js.map +1 -0
  512. package/dist/esm/providers/WalletProvider.mjs +11 -4
  513. package/dist/esm/providers/WalletProvider.mjs.map +1 -1
  514. package/dist/esm/providers/WalletProvider.native.js +125 -93
  515. package/dist/esm/providers/WalletProvider.native.js.map +1 -1
  516. package/dist/esm/providers/index.mjs +2 -2
  517. package/dist/esm/providers/index.mjs.map +1 -1
  518. package/dist/esm/providers/index.native.js +2 -2
  519. package/dist/esm/providers/index.native.js.map +1 -1
  520. package/dist/esm/providers/mockConnector.native.js.map +1 -1
  521. package/dist/esm/providers/native/deepLink.mjs +36 -24
  522. package/dist/esm/providers/native/deepLink.mjs.map +1 -1
  523. package/dist/esm/providers/native/deepLink.native.js +39 -26
  524. package/dist/esm/providers/native/deepLink.native.js.map +1 -1
  525. package/dist/esm/providers/native/inject.mjs +1 -3
  526. package/dist/esm/providers/native/inject.mjs.map +1 -1
  527. package/dist/esm/providers/native/inject.native.js +1 -3
  528. package/dist/esm/providers/native/inject.native.js.map +1 -1
  529. package/dist/esm/providers/native/visibility.native.js.map +1 -1
  530. package/dist/esm/providers/walletBridge.mjs +9 -0
  531. package/dist/esm/providers/walletBridge.mjs.map +1 -0
  532. package/dist/esm/providers/walletBridge.native.js +9 -0
  533. package/dist/esm/providers/walletBridge.native.js.map +1 -0
  534. package/dist/esm/providers/walletConfig.mjs.map +1 -1
  535. package/dist/esm/providers/walletConfig.native.js.map +1 -1
  536. package/dist/esm/siws/index.native.js.map +1 -1
  537. package/dist/esm/siws/message.mjs +5 -16
  538. package/dist/esm/siws/message.mjs.map +1 -1
  539. package/dist/esm/siws/message.native.js +6 -16
  540. package/dist/esm/siws/message.native.js.map +1 -1
  541. package/dist/esm/siws/signWithBridge.native.js.map +1 -1
  542. package/dist/esm/siws/verify.native.js.map +1 -1
  543. package/dist/esm/solana.mjs.map +1 -1
  544. package/dist/esm/solana.native.js.map +1 -1
  545. package/dist/esm/vite.native.js.map +1 -1
  546. package/dist/jsx/bridge/AuthBridge.mjs +99 -0
  547. package/dist/jsx/bridge/AuthBridge.mjs.map +1 -0
  548. package/dist/jsx/bridge/AuthBridge.native.js +186 -0
  549. package/dist/jsx/bridge/AuthBridge.native.js.map +1 -0
  550. package/dist/jsx/bridge/BridgeClient.mjs +13 -10
  551. package/dist/jsx/bridge/BridgeClient.mjs.map +1 -1
  552. package/dist/jsx/bridge/BridgeClient.native.js +17 -12
  553. package/dist/jsx/bridge/BridgeClient.native.js.map +1 -1
  554. package/dist/jsx/bridge/BridgeHost.mjs +12 -4
  555. package/dist/jsx/bridge/BridgeHost.mjs.map +1 -1
  556. package/dist/jsx/bridge/BridgeHost.native.js +11 -3
  557. package/dist/jsx/bridge/BridgeHost.native.js.map +1 -1
  558. package/dist/jsx/bridge/GpgBridge.mjs +36 -0
  559. package/dist/jsx/bridge/GpgBridge.mjs.map +1 -0
  560. package/dist/jsx/bridge/GpgBridge.native.js +111 -0
  561. package/dist/jsx/bridge/GpgBridge.native.js.map +1 -0
  562. package/dist/jsx/bridge/SolanaBridge.native.js.map +1 -1
  563. package/dist/jsx/bridge/SuiBridge.mjs +26 -0
  564. package/dist/jsx/bridge/SuiBridge.mjs.map +1 -0
  565. package/dist/jsx/bridge/SuiBridge.native.js +99 -0
  566. package/dist/jsx/bridge/SuiBridge.native.js.map +1 -0
  567. package/dist/jsx/bridge/authTypes.mjs +3 -0
  568. package/dist/jsx/bridge/authTypes.mjs.map +1 -0
  569. package/dist/jsx/bridge/authTypes.native.js +31 -0
  570. package/dist/jsx/bridge/authTypes.native.js.map +1 -0
  571. package/dist/jsx/bridge/base64.native.js.map +1 -1
  572. package/dist/jsx/bridge/bridgeConnector.native.js.map +1 -1
  573. package/dist/jsx/bridge/core.mjs +17 -0
  574. package/dist/jsx/bridge/core.mjs.map +1 -0
  575. package/dist/jsx/bridge/core.native.js +68 -0
  576. package/dist/jsx/bridge/core.native.js.map +1 -0
  577. package/dist/jsx/bridge/eip1193.native.js.map +1 -1
  578. package/dist/jsx/bridge/hosting.mjs +62 -0
  579. package/dist/jsx/bridge/hosting.mjs.map +1 -0
  580. package/dist/jsx/bridge/hosting.native.js +117 -0
  581. package/dist/jsx/bridge/hosting.native.js.map +1 -0
  582. package/dist/jsx/bridge/index.mjs +2 -9
  583. package/dist/jsx/bridge/index.mjs.map +1 -1
  584. package/dist/jsx/bridge/index.native.js +2 -16
  585. package/dist/jsx/bridge/index.native.js.map +1 -1
  586. package/dist/jsx/bridge/nativeHost.mjs +65 -0
  587. package/dist/jsx/bridge/nativeHost.mjs.map +1 -0
  588. package/dist/jsx/bridge/nativeHost.native.js +118 -0
  589. package/dist/jsx/bridge/nativeHost.native.js.map +1 -0
  590. package/dist/jsx/bridge/postMessageTransport.native.js.map +1 -1
  591. package/dist/jsx/bridge/protocol.mjs +28 -2
  592. package/dist/jsx/bridge/protocol.mjs.map +1 -1
  593. package/dist/jsx/bridge/protocol.native.js +147 -1
  594. package/dist/jsx/bridge/protocol.native.js.map +1 -1
  595. package/dist/jsx/bridge/transport.native.js.map +1 -1
  596. package/dist/jsx/bundler/metaMaskConnectTimeouts.native.js.map +1 -1
  597. package/dist/jsx/clients/adapter.native.js.map +1 -1
  598. package/dist/jsx/clients/bitcoin.native.js.map +1 -1
  599. package/dist/jsx/clients/connector.native.js.map +1 -1
  600. package/dist/jsx/clients/evm.mjs +295 -12
  601. package/dist/jsx/clients/evm.mjs.map +1 -1
  602. package/dist/jsx/clients/evm.native.js +500 -12
  603. package/dist/jsx/clients/evm.native.js.map +1 -1
  604. package/dist/jsx/clients/gpg.native.js.map +1 -1
  605. package/dist/jsx/clients/hooks.native.js.map +1 -1
  606. package/dist/jsx/clients/index.mjs +2 -2
  607. package/dist/jsx/clients/index.mjs.map +1 -1
  608. package/dist/jsx/clients/index.native.js +5 -0
  609. package/dist/jsx/clients/index.native.js.map +1 -1
  610. package/dist/jsx/clients/solana.mjs +39 -21
  611. package/dist/jsx/clients/solana.mjs.map +1 -1
  612. package/dist/jsx/clients/solana.native.js +48 -23
  613. package/dist/jsx/clients/solana.native.js.map +1 -1
  614. package/dist/jsx/clients/solanaMessage.native.js.map +1 -1
  615. package/dist/jsx/clients/sui.native.js.map +1 -1
  616. package/dist/jsx/clients/types.native.js.map +1 -1
  617. package/dist/jsx/clients/useSolanaClient.native.js.map +1 -1
  618. package/dist/jsx/clients/walletStandard.native.js.map +1 -1
  619. package/dist/jsx/components/NetworkSwitcher.native.js.map +1 -1
  620. package/dist/jsx/components/TransactionStatus.native.js.map +1 -1
  621. package/dist/jsx/components/index.native.js.map +1 -1
  622. package/dist/jsx/connectkit/GpgProvider.mjs +19 -0
  623. package/dist/jsx/connectkit/GpgProvider.mjs.map +1 -0
  624. package/dist/jsx/connectkit/GpgProvider.native.js +51 -0
  625. package/dist/jsx/connectkit/GpgProvider.native.js.map +1 -0
  626. package/dist/jsx/connectkit/adapters/BitcoinAdapter.mjs +5 -14
  627. package/dist/jsx/connectkit/adapters/BitcoinAdapter.mjs.map +1 -1
  628. package/dist/jsx/connectkit/adapters/BitcoinAdapter.native.js +5 -15
  629. package/dist/jsx/connectkit/adapters/BitcoinAdapter.native.js.map +1 -1
  630. package/dist/jsx/connectkit/adapters/EthereumAdapter.mjs +6 -15
  631. package/dist/jsx/connectkit/adapters/EthereumAdapter.mjs.map +1 -1
  632. package/dist/jsx/connectkit/adapters/EthereumAdapter.native.js +7 -16
  633. package/dist/jsx/connectkit/adapters/EthereumAdapter.native.js.map +1 -1
  634. package/dist/jsx/connectkit/adapters/SolanaAdapter.mjs +5 -14
  635. package/dist/jsx/connectkit/adapters/SolanaAdapter.mjs.map +1 -1
  636. package/dist/jsx/connectkit/adapters/SolanaAdapter.native.js +5 -15
  637. package/dist/jsx/connectkit/adapters/SolanaAdapter.native.js.map +1 -1
  638. package/dist/jsx/connectkit/adapters/SuiAdapter.mjs +5 -14
  639. package/dist/jsx/connectkit/adapters/SuiAdapter.mjs.map +1 -1
  640. package/dist/jsx/connectkit/adapters/SuiAdapter.native.js +5 -15
  641. package/dist/jsx/connectkit/adapters/SuiAdapter.native.js.map +1 -1
  642. package/dist/jsx/connectkit/adapters/discover.native.js.map +1 -1
  643. package/dist/jsx/connectkit/adapters/index.native.js.map +1 -1
  644. package/dist/jsx/connectkit/adapters/types.native.js.map +1 -1
  645. package/dist/jsx/connectkit/assets/chains.native.js.map +1 -1
  646. package/dist/jsx/connectkit/components/BalanceButton/index.native.js +1 -1
  647. package/dist/jsx/connectkit/components/BalanceButton/index.native.js.map +1 -1
  648. package/dist/jsx/connectkit/components/Common/Avatar/index.native.js.map +1 -1
  649. package/dist/jsx/connectkit/components/Common/Avatar/styles.native.js.map +1 -1
  650. package/dist/jsx/connectkit/components/Common/Chain/index.native.js.map +1 -1
  651. package/dist/jsx/connectkit/components/Common/Chain/styles.native.js.map +1 -1
  652. package/dist/jsx/connectkit/components/Common/ChainSelect/index.native.js +2 -2
  653. package/dist/jsx/connectkit/components/Common/ChainSelect/index.native.js.map +1 -1
  654. package/dist/jsx/connectkit/components/Common/ChainSelectDropdown/index.native.js +1 -1
  655. package/dist/jsx/connectkit/components/Common/ChainSelectDropdown/index.native.js.map +1 -1
  656. package/dist/jsx/connectkit/components/Common/ChainSelectDropdown/styles.native.js.map +1 -1
  657. package/dist/jsx/connectkit/components/Common/ChainSelectList/index.native.js.map +1 -1
  658. package/dist/jsx/connectkit/components/Common/ChainSelectList/styles.native.js.map +1 -1
  659. package/dist/jsx/connectkit/components/Common/ConnectorList/index.native.js.map +1 -1
  660. package/dist/jsx/connectkit/components/Common/ConnectorList/styles.native.js.map +1 -1
  661. package/dist/jsx/connectkit/components/ConnectButton/index.native.js +4 -4
  662. package/dist/jsx/connectkit/components/ConnectButton/index.native.js.map +1 -1
  663. package/dist/jsx/connectkit/components/ConnectButton/styles.native.js.map +1 -1
  664. package/dist/jsx/connectkit/components/ConnectModal/ConnectUsing.native.js +1 -1
  665. package/dist/jsx/connectkit/components/ConnectModal/ConnectUsing.native.js.map +1 -1
  666. package/dist/jsx/connectkit/components/ConnectModal/ConnectWithInjector/CircleSpinner/index.native.js.map +1 -1
  667. package/dist/jsx/connectkit/components/ConnectModal/ConnectWithInjector/CircleSpinner/styles.native.js.map +1 -1
  668. package/dist/jsx/connectkit/components/ConnectModal/ConnectWithInjector/SquircleSpinner/index.native.js.map +1 -1
  669. package/dist/jsx/connectkit/components/ConnectModal/ConnectWithInjector/SquircleSpinner/styles.native.js.map +1 -1
  670. package/dist/jsx/connectkit/components/ConnectModal/ConnectWithInjector/index.native.js +3 -3
  671. package/dist/jsx/connectkit/components/ConnectModal/ConnectWithInjector/index.native.js.map +1 -1
  672. package/dist/jsx/connectkit/components/ConnectModal/ConnectWithInjector/styles.native.js.map +1 -1
  673. package/dist/jsx/connectkit/components/ConnectModal/demo.native.js +9 -9
  674. package/dist/jsx/connectkit/components/ConnectModal/demo.native.js.map +1 -1
  675. package/dist/jsx/connectkit/components/NetworkButton/index.native.js +2 -2
  676. package/dist/jsx/connectkit/components/NetworkButton/index.native.js.map +1 -1
  677. package/dist/jsx/connectkit/components/Pages/About/graphics.native.js.map +1 -1
  678. package/dist/jsx/connectkit/components/Pages/About/index.native.js.map +1 -1
  679. package/dist/jsx/connectkit/components/Pages/About/styles.native.js.map +1 -1
  680. package/dist/jsx/connectkit/components/Pages/Connectors/index.native.js +1 -1
  681. package/dist/jsx/connectkit/components/Pages/Connectors/index.native.js.map +1 -1
  682. package/dist/jsx/connectkit/components/Pages/Connectors/styles.native.js.map +1 -1
  683. package/dist/jsx/connectkit/components/Pages/DownloadApp/index.native.js.map +1 -1
  684. package/dist/jsx/connectkit/components/Pages/Onboarding/index.native.js.map +1 -1
  685. package/dist/jsx/connectkit/components/Pages/Onboarding/styles.native.js.map +1 -1
  686. package/dist/jsx/connectkit/components/Pages/Profile/index.native.js +2 -2
  687. package/dist/jsx/connectkit/components/Pages/Profile/index.native.js.map +1 -1
  688. package/dist/jsx/connectkit/components/Pages/Profile/styles.native.js.map +1 -1
  689. package/dist/jsx/connectkit/components/Pages/SignInWithEthereum/index.native.js +3 -3
  690. package/dist/jsx/connectkit/components/Pages/SignInWithEthereum/index.native.js.map +1 -1
  691. package/dist/jsx/connectkit/components/Pages/SignInWithEthereum/styles.native.js.map +1 -1
  692. package/dist/jsx/connectkit/components/Pages/SwitchNetworks/index.native.js +1 -1
  693. package/dist/jsx/connectkit/components/Pages/SwitchNetworks/index.native.js.map +1 -1
  694. package/dist/jsx/connectkit/components/Standard/SIWE/index.native.js +1 -1
  695. package/dist/jsx/connectkit/components/Standard/SIWE/index.native.js.map +1 -1
  696. package/dist/jsx/connectkit/components/Standard/SIWE/styles.native.js.map +1 -1
  697. package/dist/jsx/connectkit/components/contexts/web3/index.native.js.map +1 -1
  698. package/dist/jsx/connectkit/connectors/aaveAccountConnector.native.js.map +1 -1
  699. package/dist/jsx/connectkit/connectors/createWalletMessage.mjs +1 -1
  700. package/dist/jsx/connectkit/connectors/createWalletMessage.native.js +2 -2
  701. package/dist/jsx/connectkit/connectors/createWalletMessage.native.js.map +1 -1
  702. package/dist/jsx/connectkit/connectors/embeddedDesktop.native.js.map +1 -1
  703. package/dist/jsx/connectkit/connectors/ensureWalletConnectors.native.js.map +1 -1
  704. package/dist/jsx/connectkit/connectors/getWalletConnectors.native.js.map +1 -1
  705. package/dist/jsx/connectkit/connectors/metaMaskConnectConnector.native.js.map +1 -1
  706. package/dist/jsx/connectkit/connectors/syntheticChains.native.js.map +1 -1
  707. package/dist/jsx/connectkit/connectors/walletAdapterConnector.native.js.map +1 -1
  708. package/dist/jsx/connectkit/constants/chainConfigs.native.js.map +1 -1
  709. package/dist/jsx/connectkit/defaultConfig.native.js.map +1 -1
  710. package/dist/jsx/connectkit/defaultConnectors.native.js.map +1 -1
  711. package/dist/jsx/connectkit/defaultTransports.native.js.map +1 -1
  712. package/dist/jsx/connectkit/hooks/useChainIsSupported.native.js.map +1 -1
  713. package/dist/jsx/connectkit/hooks/useChains.native.js.map +1 -1
  714. package/dist/jsx/connectkit/hooks/useConnect.native.js.map +1 -1
  715. package/dist/jsx/connectkit/hooks/useConnectCallback.native.js.map +1 -1
  716. package/dist/jsx/connectkit/hooks/useConnectors.native.js.map +1 -1
  717. package/dist/jsx/connectkit/hooks/useEnsFallbackConfig.native.js.map +1 -1
  718. package/dist/jsx/connectkit/hooks/useLastConnector.native.js.map +1 -1
  719. package/dist/jsx/connectkit/index.mjs +3 -2
  720. package/dist/jsx/connectkit/index.mjs.map +1 -1
  721. package/dist/jsx/connectkit/index.native.js +12 -11
  722. package/dist/jsx/connectkit/index.native.js.map +1 -1
  723. package/dist/jsx/connectkit/openConnector/context.native.js.map +1 -1
  724. package/dist/jsx/connectkit/openConnector/device.native.js.map +1 -1
  725. package/dist/jsx/connectkit/openConnector/index.native.js.map +1 -1
  726. package/dist/jsx/connectkit/openConnector/launcher.native.js.map +1 -1
  727. package/dist/jsx/connectkit/profileHeaderAction.native.js +1 -1
  728. package/dist/jsx/connectkit/profileHeaderAction.native.js.map +1 -1
  729. package/dist/jsx/connectkit/screens.native.js +7 -7
  730. package/dist/jsx/connectkit/screens.native.js.map +1 -1
  731. package/dist/jsx/connectkit/siwe/SIWEContext.mjs.map +1 -1
  732. package/dist/jsx/connectkit/siwe/SIWEContext.native.js.map +1 -1
  733. package/dist/jsx/connectkit/siwe/SIWEProvider.mjs +19 -4
  734. package/dist/jsx/connectkit/siwe/SIWEProvider.mjs.map +1 -1
  735. package/dist/jsx/connectkit/siwe/SIWEProvider.native.js +18 -3
  736. package/dist/jsx/connectkit/siwe/SIWEProvider.native.js.map +1 -1
  737. package/dist/jsx/connectkit/siwe/connectIntent.native.js.map +1 -1
  738. package/dist/jsx/connectkit/siwe/index.native.js.map +1 -1
  739. package/dist/jsx/connectkit/siwe/useSIWE.native.js.map +1 -1
  740. package/dist/jsx/connectkit/useWeb3Modal.native.js +2 -2
  741. package/dist/jsx/connectkit/useWeb3Modal.native.js.map +1 -1
  742. package/dist/jsx/connectkit/wallets/index.native.js.map +1 -1
  743. package/dist/jsx/connectkit/wallets/useWallets.native.js.map +1 -1
  744. package/dist/jsx/connectkit/wallets/walletConfigs.native.js.map +1 -1
  745. package/dist/jsx/connectkit/web3Bridge.native.js +2 -2
  746. package/dist/jsx/connectkit/web3Bridge.native.js.map +1 -1
  747. package/dist/jsx/connectkit/web3Provider.native.js.map +1 -1
  748. package/dist/jsx/esbuild.native.js.map +1 -1
  749. package/dist/jsx/examples/LockContract.native.js.map +1 -1
  750. package/dist/jsx/examples/index.native.js.map +1 -1
  751. package/dist/jsx/hooks/index.native.js.map +1 -1
  752. package/dist/jsx/hooks/useContractRead.native.js.map +1 -1
  753. package/dist/jsx/hooks/useContractWrite.native.js.map +1 -1
  754. package/dist/jsx/hooks/useWallet.native.js.map +1 -1
  755. package/dist/jsx/index.js +3 -2
  756. package/dist/jsx/index.js.map +1 -1
  757. package/dist/jsx/index.mjs +3 -2
  758. package/dist/jsx/index.mjs.map +1 -1
  759. package/dist/jsx/index.native.js +8 -6
  760. package/dist/jsx/index.native.js.map +1 -1
  761. package/dist/jsx/keycloak/KeycloakWalletLogin.mjs +218 -0
  762. package/dist/jsx/keycloak/KeycloakWalletLogin.mjs.map +1 -0
  763. package/dist/jsx/keycloak/KeycloakWalletLogin.native.js +33 -0
  764. package/dist/jsx/keycloak/KeycloakWalletLogin.native.js.map +1 -0
  765. package/dist/jsx/keycloak/browserFlow.mjs +58 -0
  766. package/dist/jsx/keycloak/browserFlow.mjs.map +1 -0
  767. package/dist/jsx/keycloak/browserFlow.native.js +90 -0
  768. package/dist/jsx/keycloak/browserFlow.native.js.map +1 -0
  769. package/dist/jsx/keycloak/device.mjs +10 -0
  770. package/dist/jsx/keycloak/device.mjs.map +1 -0
  771. package/dist/jsx/keycloak/device.native.js +45 -0
  772. package/dist/jsx/keycloak/device.native.js.map +1 -0
  773. package/dist/jsx/keycloak/directGrant.mjs +164 -0
  774. package/dist/jsx/keycloak/directGrant.mjs.map +1 -0
  775. package/dist/jsx/keycloak/directGrant.native.js +233 -0
  776. package/dist/jsx/keycloak/directGrant.native.js.map +1 -0
  777. package/dist/jsx/keycloak/iife.mjs +5 -0
  778. package/dist/jsx/keycloak/iife.mjs.map +1 -0
  779. package/dist/jsx/keycloak/iife.native.js +7 -0
  780. package/dist/jsx/keycloak/iife.native.js.map +1 -0
  781. package/dist/jsx/keycloak/index.mjs +13 -0
  782. package/dist/jsx/keycloak/index.mjs.map +1 -0
  783. package/dist/jsx/keycloak/index.native.js +56 -0
  784. package/dist/jsx/keycloak/index.native.js.map +1 -0
  785. package/dist/jsx/keycloak/keycloakWallet.mjs +186 -0
  786. package/dist/jsx/keycloak/keycloakWallet.mjs.map +1 -0
  787. package/dist/jsx/keycloak/keycloakWallet.native.js +285 -0
  788. package/dist/jsx/keycloak/keycloakWallet.native.js.map +1 -0
  789. package/dist/jsx/keycloak/mount.mjs +28 -0
  790. package/dist/jsx/keycloak/mount.mjs.map +1 -0
  791. package/dist/jsx/keycloak/mount.native.js +33 -0
  792. package/dist/jsx/keycloak/mount.native.js.map +1 -0
  793. package/dist/jsx/keycloak/registerWallet.mjs +49 -0
  794. package/dist/jsx/keycloak/registerWallet.mjs.map +1 -0
  795. package/dist/jsx/keycloak/registerWallet.native.js +81 -0
  796. package/dist/jsx/keycloak/registerWallet.native.js.map +1 -0
  797. package/dist/jsx/keycloak/types.mjs +20 -0
  798. package/dist/jsx/keycloak/types.mjs.map +1 -0
  799. package/dist/jsx/keycloak/types.native.js +179 -0
  800. package/dist/jsx/keycloak/types.native.js.map +1 -0
  801. package/dist/jsx/keycloak/useDirectLogin.mjs +32 -0
  802. package/dist/jsx/keycloak/useDirectLogin.mjs.map +1 -0
  803. package/dist/jsx/keycloak/useDirectLogin.native.js +77 -0
  804. package/dist/jsx/keycloak/useDirectLogin.native.js.map +1 -0
  805. package/dist/jsx/keycloak/useWalletLogin.mjs +72 -0
  806. package/dist/jsx/keycloak/useWalletLogin.mjs.map +1 -0
  807. package/dist/jsx/keycloak/useWalletLogin.native.js +33 -0
  808. package/dist/jsx/keycloak/useWalletLogin.native.js.map +1 -0
  809. package/dist/jsx/message/buildWalletMessage.mjs +87 -0
  810. package/dist/jsx/message/buildWalletMessage.mjs.map +1 -0
  811. package/dist/jsx/message/buildWalletMessage.native.js +121 -0
  812. package/dist/jsx/message/buildWalletMessage.native.js.map +1 -0
  813. package/dist/jsx/message/index.mjs +3 -0
  814. package/dist/jsx/message/index.mjs.map +1 -0
  815. package/dist/jsx/message/index.native.js +32 -0
  816. package/dist/jsx/message/index.native.js.map +1 -0
  817. package/dist/jsx/providers/WalletProvider.mjs +11 -4
  818. package/dist/jsx/providers/WalletProvider.mjs.map +1 -1
  819. package/dist/jsx/providers/WalletProvider.native.js +123 -90
  820. package/dist/jsx/providers/WalletProvider.native.js.map +1 -1
  821. package/dist/jsx/providers/index.mjs +2 -2
  822. package/dist/jsx/providers/index.mjs.map +1 -1
  823. package/dist/jsx/providers/index.native.js +1 -0
  824. package/dist/jsx/providers/index.native.js.map +1 -1
  825. package/dist/jsx/providers/mockConnector.native.js.map +1 -1
  826. package/dist/jsx/providers/native/deepLink.mjs +36 -24
  827. package/dist/jsx/providers/native/deepLink.mjs.map +1 -1
  828. package/dist/jsx/providers/native/deepLink.native.js +43 -25
  829. package/dist/jsx/providers/native/deepLink.native.js.map +1 -1
  830. package/dist/jsx/providers/native/inject.mjs +1 -3
  831. package/dist/jsx/providers/native/inject.mjs.map +1 -1
  832. package/dist/jsx/providers/native/inject.native.js +2 -4
  833. package/dist/jsx/providers/native/inject.native.js.map +1 -1
  834. package/dist/jsx/providers/native/visibility.native.js.map +1 -1
  835. package/dist/jsx/providers/walletBridge.mjs +9 -0
  836. package/dist/jsx/providers/walletBridge.mjs.map +1 -0
  837. package/dist/jsx/providers/walletBridge.native.js +38 -0
  838. package/dist/jsx/providers/walletBridge.native.js.map +1 -0
  839. package/dist/jsx/providers/walletConfig.mjs.map +1 -1
  840. package/dist/jsx/providers/walletConfig.native.js.map +1 -1
  841. package/dist/jsx/siws/index.native.js.map +1 -1
  842. package/dist/jsx/siws/message.mjs +5 -16
  843. package/dist/jsx/siws/message.mjs.map +1 -1
  844. package/dist/jsx/siws/message.native.js +6 -16
  845. package/dist/jsx/siws/message.native.js.map +1 -1
  846. package/dist/jsx/siws/signWithBridge.native.js.map +1 -1
  847. package/dist/jsx/siws/verify.native.js.map +1 -1
  848. package/dist/jsx/solana.mjs.map +1 -1
  849. package/dist/jsx/solana.native.js.map +1 -1
  850. package/dist/jsx/vite.native.js.map +1 -1
  851. package/dist/keycloak/login.iife.js +3604 -0
  852. package/docs/bridge-protocol.md +485 -0
  853. package/package.json +35 -8
  854. package/src/bridge/AuthBridge.ts +146 -0
  855. package/src/bridge/BridgeClient.spec.ts +12 -0
  856. package/src/bridge/BridgeClient.ts +15 -10
  857. package/src/bridge/BridgeHost.spec.ts +20 -4
  858. package/src/bridge/BridgeHost.ts +16 -5
  859. package/src/bridge/GpgBridge.ts +49 -0
  860. package/src/bridge/SuiBridge.ts +34 -0
  861. package/src/bridge/authTypes.ts +76 -0
  862. package/src/bridge/core.ts +42 -0
  863. package/src/bridge/hosting.spec.ts +98 -0
  864. package/src/bridge/hosting.ts +99 -0
  865. package/src/bridge/index.ts +1 -8
  866. package/src/bridge/nativeHost.spec.ts +165 -0
  867. package/src/bridge/nativeHost.ts +120 -0
  868. package/src/bridge/protocol.spec.ts +24 -1
  869. package/src/bridge/protocol.ts +44 -1
  870. package/src/clients/evm.spec.ts +644 -10
  871. package/src/clients/evm.ts +498 -10
  872. package/src/clients/index.ts +8 -0
  873. package/src/clients/solana.spec.ts +116 -0
  874. package/src/clients/solana.ts +51 -31
  875. package/src/connectkit/GpgProvider.tsx +16 -0
  876. package/src/connectkit/adapters/BitcoinAdapter.ts +5 -16
  877. package/src/connectkit/adapters/EthereumAdapter.ts +6 -17
  878. package/src/connectkit/adapters/SolanaAdapter.ts +5 -16
  879. package/src/connectkit/adapters/SuiAdapter.ts +5 -16
  880. package/src/connectkit/connectors/createWalletMessage.ts +1 -1
  881. package/src/connectkit/index.ts +2 -6
  882. package/src/connectkit/openConnector/modal.spec.tsx +1 -1
  883. package/src/connectkit/siwe/SIWEContext.tsx +6 -2
  884. package/src/connectkit/siwe/SIWEProvider.tsx +22 -5
  885. package/src/index.ts +5 -0
  886. package/src/keycloak/KeycloakWalletLogin.native.tsx +7 -0
  887. package/src/keycloak/KeycloakWalletLogin.spec.tsx +168 -0
  888. package/src/keycloak/KeycloakWalletLogin.tsx +251 -0
  889. package/src/keycloak/browserFlow.spec.ts +108 -0
  890. package/src/keycloak/browserFlow.ts +84 -0
  891. package/src/keycloak/device.ts +17 -0
  892. package/src/keycloak/directGrant.spec.ts +331 -0
  893. package/src/keycloak/directGrant.ts +214 -0
  894. package/src/keycloak/iife.ts +3 -0
  895. package/src/keycloak/index.ts +44 -0
  896. package/src/keycloak/keycloakWallet.spec.ts +216 -0
  897. package/src/keycloak/keycloakWallet.ts +275 -0
  898. package/src/keycloak/mount.native.ts +11 -0
  899. package/src/keycloak/mount.tsx +45 -0
  900. package/src/keycloak/nonceReset.spec.tsx +205 -0
  901. package/src/keycloak/registerWallet.spec.ts +88 -0
  902. package/src/keycloak/registerWallet.ts +59 -0
  903. package/src/keycloak/types.ts +66 -0
  904. package/src/keycloak/useDirectLogin.spec.tsx +112 -0
  905. package/src/keycloak/useDirectLogin.ts +74 -0
  906. package/src/keycloak/useWalletLogin.native.ts +7 -0
  907. package/src/keycloak/useWalletLogin.ts +99 -0
  908. package/src/message/buildWalletMessage.spec.ts +291 -0
  909. package/src/message/buildWalletMessage.ts +150 -0
  910. package/src/message/index.ts +8 -0
  911. package/src/providers/WalletProvider.native.tsx +139 -85
  912. package/src/providers/WalletProvider.tsx +16 -3
  913. package/src/providers/index.ts +2 -0
  914. package/src/providers/native/deepLink.spec.ts +73 -1
  915. package/src/providers/native/deepLink.ts +76 -28
  916. package/src/providers/native/inject.ts +1 -9
  917. package/src/providers/walletBridge.ts +24 -0
  918. package/src/providers/walletConfig.ts +15 -1
  919. package/src/siws/message.ts +3 -22
  920. package/src/solana.ts +1 -0
  921. package/types/bridge/AuthBridge.d.ts +58 -0
  922. package/types/bridge/AuthBridge.d.ts.map +1 -0
  923. package/types/bridge/BridgeClient.d.ts +3 -1
  924. package/types/bridge/BridgeClient.d.ts.map +1 -1
  925. package/types/bridge/BridgeHost.d.ts +1 -1
  926. package/types/bridge/BridgeHost.d.ts.map +1 -1
  927. package/types/bridge/GpgBridge.d.ts +23 -0
  928. package/types/bridge/GpgBridge.d.ts.map +1 -0
  929. package/types/bridge/SuiBridge.d.ts +18 -0
  930. package/types/bridge/SuiBridge.d.ts.map +1 -0
  931. package/types/bridge/authTypes.d.ts +71 -0
  932. package/types/bridge/authTypes.d.ts.map +1 -0
  933. package/types/bridge/core.d.ts +16 -0
  934. package/types/bridge/core.d.ts.map +1 -0
  935. package/types/bridge/hosting.d.ts +34 -0
  936. package/types/bridge/hosting.d.ts.map +1 -0
  937. package/types/bridge/index.d.ts +1 -8
  938. package/types/bridge/index.d.ts.map +1 -1
  939. package/types/bridge/nativeHost.d.ts +55 -0
  940. package/types/bridge/nativeHost.d.ts.map +1 -0
  941. package/types/bridge/protocol.d.ts +34 -1
  942. package/types/bridge/protocol.d.ts.map +1 -1
  943. package/types/clients/evm.d.ts +144 -2
  944. package/types/clients/evm.d.ts.map +1 -1
  945. package/types/clients/index.d.ts +1 -1
  946. package/types/clients/index.d.ts.map +1 -1
  947. package/types/clients/solana.d.ts +14 -5
  948. package/types/clients/solana.d.ts.map +1 -1
  949. package/types/connectkit/GpgProvider.d.ts +10 -0
  950. package/types/connectkit/GpgProvider.d.ts.map +1 -0
  951. package/types/connectkit/adapters/BitcoinAdapter.d.ts.map +1 -1
  952. package/types/connectkit/adapters/EthereumAdapter.d.ts.map +1 -1
  953. package/types/connectkit/adapters/SolanaAdapter.d.ts.map +1 -1
  954. package/types/connectkit/adapters/SuiAdapter.d.ts.map +1 -1
  955. package/types/connectkit/connectors/createWalletMessage.d.ts +1 -1
  956. package/types/connectkit/connectors/createWalletMessage.d.ts.map +1 -1
  957. package/types/connectkit/index.d.ts +3 -2
  958. package/types/connectkit/index.d.ts.map +1 -1
  959. package/types/connectkit/siwe/SIWEContext.d.ts +2 -1
  960. package/types/connectkit/siwe/SIWEContext.d.ts.map +1 -1
  961. package/types/connectkit/siwe/SIWEProvider.d.ts.map +1 -1
  962. package/types/index.d.ts +2 -1
  963. package/types/index.d.ts.map +1 -1
  964. package/types/keycloak/KeycloakWalletLogin.d.ts +45 -0
  965. package/types/keycloak/KeycloakWalletLogin.d.ts.map +1 -0
  966. package/types/keycloak/KeycloakWalletLogin.native.d.ts +4 -0
  967. package/types/keycloak/KeycloakWalletLogin.native.d.ts.map +1 -0
  968. package/types/keycloak/browserFlow.d.ts +27 -0
  969. package/types/keycloak/browserFlow.d.ts.map +1 -0
  970. package/types/keycloak/device.d.ts +14 -0
  971. package/types/keycloak/device.d.ts.map +1 -0
  972. package/types/keycloak/directGrant.d.ts +43 -0
  973. package/types/keycloak/directGrant.d.ts.map +1 -0
  974. package/types/keycloak/iife.d.ts +2 -0
  975. package/types/keycloak/iife.d.ts.map +1 -0
  976. package/types/keycloak/index.d.ts +12 -0
  977. package/types/keycloak/index.d.ts.map +1 -0
  978. package/types/keycloak/keycloakWallet.d.ts +120 -0
  979. package/types/keycloak/keycloakWallet.d.ts.map +1 -0
  980. package/types/keycloak/mount.d.ts +16 -0
  981. package/types/keycloak/mount.d.ts.map +1 -0
  982. package/types/keycloak/mount.native.d.ts +5 -0
  983. package/types/keycloak/mount.native.d.ts.map +1 -0
  984. package/types/keycloak/registerWallet.d.ts +22 -0
  985. package/types/keycloak/registerWallet.d.ts.map +1 -0
  986. package/types/keycloak/types.d.ts +50 -0
  987. package/types/keycloak/types.d.ts.map +1 -0
  988. package/types/keycloak/useDirectLogin.d.ts +29 -0
  989. package/types/keycloak/useDirectLogin.d.ts.map +1 -0
  990. package/types/keycloak/useWalletLogin.d.ts +26 -0
  991. package/types/keycloak/useWalletLogin.d.ts.map +1 -0
  992. package/types/keycloak/useWalletLogin.native.d.ts +4 -0
  993. package/types/keycloak/useWalletLogin.native.d.ts.map +1 -0
  994. package/types/message/buildWalletMessage.d.ts +46 -0
  995. package/types/message/buildWalletMessage.d.ts.map +1 -0
  996. package/types/message/index.d.ts +2 -0
  997. package/types/message/index.d.ts.map +1 -0
  998. package/types/providers/WalletProvider.d.ts +9 -1
  999. package/types/providers/WalletProvider.d.ts.map +1 -1
  1000. package/types/providers/WalletProvider.native.d.ts +2 -1
  1001. package/types/providers/WalletProvider.native.d.ts.map +1 -1
  1002. package/types/providers/index.d.ts +1 -1
  1003. package/types/providers/index.d.ts.map +1 -1
  1004. package/types/providers/native/deepLink.d.ts +29 -4
  1005. package/types/providers/native/deepLink.d.ts.map +1 -1
  1006. package/types/providers/native/inject.d.ts +1 -7
  1007. package/types/providers/native/inject.d.ts.map +1 -1
  1008. package/types/providers/walletBridge.d.ts +17 -0
  1009. package/types/providers/walletBridge.d.ts.map +1 -0
  1010. package/types/providers/walletConfig.d.ts +18 -1
  1011. package/types/providers/walletConfig.d.ts.map +1 -1
  1012. package/types/siws/message.d.ts.map +1 -1
  1013. package/types/solana.d.ts +1 -1
  1014. package/types/solana.d.ts.map +1 -1
  1015. package/dist/cjs/connectkit/adapters/messages.cjs +0 -73
  1016. package/dist/cjs/connectkit/adapters/messages.native.js +0 -79
  1017. package/dist/cjs/connectkit/adapters/messages.native.js.map +0 -1
  1018. package/dist/esm/connectkit/adapters/messages.mjs +0 -48
  1019. package/dist/esm/connectkit/adapters/messages.mjs.map +0 -1
  1020. package/dist/esm/connectkit/adapters/messages.native.js +0 -51
  1021. package/dist/esm/connectkit/adapters/messages.native.js.map +0 -1
  1022. package/dist/jsx/connectkit/adapters/messages.mjs +0 -48
  1023. package/dist/jsx/connectkit/adapters/messages.mjs.map +0 -1
  1024. package/dist/jsx/connectkit/adapters/messages.native.js +0 -79
  1025. package/dist/jsx/connectkit/adapters/messages.native.js.map +0 -1
  1026. package/src/connectkit/adapters/messages.ts +0 -84
  1027. package/types/connectkit/adapters/messages.d.ts +0 -16
  1028. package/types/connectkit/adapters/messages.d.ts.map +0 -1
package/README.md CHANGED
@@ -22,8 +22,10 @@ Peers: `react`, `@tanstack/react-query`.
22
22
  `useBalance`, `useConnect`, `useSignMessage`, `useSwitchChain`, …)
23
23
  - **Components** — `ConnectKitButton`, `WalletButton`, `WalletAvatar`,
24
24
  `WalletStatus`, `NetworkSwitcher`
25
- - **Subpaths** — `./native` (WebView wallet bridge), `./connectkit`, `./vite`
26
- and `./esbuild` (bundler plugins, below)
25
+ - **Subpaths** — `./native` (WebView wallet bridge), `./connectkit`,
26
+ `./message` (the wallet sign-in messages), `./keycloak` (wallet login
27
+ against the Keycloak wallet SPI), `./vite` and `./esbuild` (bundler
28
+ plugins, below)
27
29
 
28
30
  ## Per-chain clients
29
31
 
@@ -34,12 +36,12 @@ or a provider's `request`. Every client shares
34
36
  verifiers take: EVM 0x hex, Solana base58, Sui base64, Bitcoin base64 BIP-322,
35
37
  GPG the armored signature plus the armored public key.
36
38
 
37
- | Hook / factory | What it adds |
38
- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
39
- | `useEvmClient()` / `evmClient({ walletClient } \| { provider, account, chain })` | viem `walletClient` + `publicClient`, `sendTransaction`, `writeContract`, `waitForTransactionReceipt`, `erc20.{transfer, approve, ensureAllowance, balanceOf, allowance, decimals}`, safe for tokens like USDT that return nothing or refuse a non-zero to non-zero approve |
40
- | `useSolanaClient()` / `solanaClient({ signer, rpcUrl?, chain? })` from `./solana` | web only: `@solana/kit` `rpc`, `signTransaction`, `signAndSendTransaction`, `sendTransaction`, `confirmTransaction`, `getBalance`, `transferSol` |
41
- | `useGpgSigner()` / `createGpgSigner()` | the copy/paste GPG signer: `signMessage` parks a request with its terminal `command`; `submit(pasted, request)` resolves it only while `request` is still the pending one and the pasted signature covers its message |
42
- | `useSuiClient()`, `useBitcoinClient()` | message signing only; `signTransaction` / `signPsbt` reject with `UnsupportedClientMethodError` until transactions land |
39
+ | Hook / factory | What it adds |
40
+ | --------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
41
+ | `useEvmClient()` / `evmClient({ walletClient } \| { provider, account, chain })` | viem `walletClient` + `publicClient`, `sendTransaction`, `writeContract`, `waitForTransactionReceipt`, `confirmTransaction`, `explorerTxUrl`, `erc20.{transfer, approve, ensureAllowance, balanceOf, allowance, decimals}`, safe for tokens like USDT that return nothing or refuse a non-zero to non-zero approve |
42
+ | `useSolanaClient()` / `solanaClient({ signer, rpcUrl?, chain? })` from `./solana` | web only: `@solana/kit` `rpc`, `signTransaction`, `signAndSendTransaction`, `sendTransaction`, `confirmTransaction`, `getBalance`, `transferSol` |
43
+ | `useGpgSigner()` / `createGpgSigner()` | the copy/paste GPG signer: `signMessage` parks a request with its terminal `command`; `submit(pasted, request)` resolves it only while `request` is still the pending one and the pasted signature covers its message |
44
+ | `useSuiClient()`, `useBitcoinClient()` | message signing only; `signTransaction` / `signPsbt` reject with `UnsupportedClientMethodError` until transactions land |
43
45
 
44
46
  ```tsx
45
47
  import { useEvmClient } from "@multiplatform.one/web3";
@@ -56,9 +58,13 @@ await sol?.confirmTransaction(sent!);
56
58
 
57
59
  `transferSol` returns the signature with the blockhash's `lastValidBlockHeight`,
58
60
  and `confirmTransaction` waits until the chain passes that height before it
59
- gives up. Its `SolanaConfirmationError` has `mayStillLand`: `false` means the
60
- transaction failed or expired and a retry is safe; `true` (only when there was
61
- no `lastValidBlockHeight` to judge by) means resending can pay twice.
61
+ gives up. Its `SolanaConfirmationError` has a `reason` and `mayStillLand`.
62
+ `failed` and `expired` set it `false`: the transaction will not land and a retry
63
+ is safe. `timeout` (there was no `lastValidBlockHeight` to judge by) and `rpc`
64
+ (a `getSignatureStatuses` or `getBlockHeight` poll failed, with the transport
65
+ error as `cause`) set it `true`: resending can pay twice, so call
66
+ `confirmTransaction` again on the same submission instead. `lastStatus` is the
67
+ last `confirmationStatus` the poll saw, `null` when it never saw the signature.
62
68
 
63
69
  A Solana client runs over a byte-level `SolanaSigner`: `standardSolanaSigner`
64
70
  (Wallet Standard: Phantom, Solflare, Backpack), `injectedSolanaSigner` (what the
@@ -72,6 +78,107 @@ signs Solana through the WebView bridge, so the root never imports
72
78
  through `solanaMessageClient`, so a login page carries no kit.
73
79
  `tests/clients/importGraph.spec.ts` holds both lines, for native and web.
74
80
 
81
+ ### EVM payments: pending is not failed
82
+
83
+ A sent transaction can sit in the mempool for minutes and still land. viem's
84
+ receipt wait gives up after 180 s with an error that reads like a failure, so
85
+ an app would offer "try again" and the user would pay twice. The EVM client
86
+ never does that:
87
+
88
+ - `waitForTransactionReceipt(hash)` and `confirmTransaction(hash)` wait with
89
+ no timeout. Pass `{ timeout }` for a deadline, which holds even while an
90
+ RPC call hangs. Running out rejects with
91
+ `ReceiptPendingError` (`hash`, `chainId`, `explorerUrl`, `nonce` once the
92
+ node has seen it, `mayStillLand: true`), never a generic error. A failing
93
+ RPC never ends the wait: it backs off, up to 30 s between polls, and
94
+ retries.
95
+ - Pass `{ signal }` and abort it when the screen unmounts. A wait with no
96
+ timeout otherwise polls until the transaction settles, which for a dropped
97
+ one is forever. It rejects with `ReceiptWaitAbortedError`, an `AbortError`.
98
+ - `confirmTransaction` also rejects a reverted receipt with
99
+ `TransactionRevertedError`. `waitForTransactionReceipt` still resolves it,
100
+ as it always has.
101
+ - When another transaction takes the nonce, both reject with
102
+ `TransactionReplacedError`: `reason` is `cancelled` (the wallet's cancel),
103
+ `replaced` (a different transaction), or `unmatched` (the original was never
104
+ seen, so it could be a speed-up). A speed-up resolves with the faster copy's
105
+ receipt. The wait binary-searches the nonce's block however long it slept,
106
+ so resuming one far back needs an RPC that serves state that old, an
107
+ archive node. A chain's default public RPC often keeps only the last 128
108
+ blocks, and past that the wait stays pending.
109
+ - `erc20.ensureAllowance` confirms its approvals the same way and takes the
110
+ same `timeout` and `signal`. `erc20.transfer` and `approve` return once the wallet sends,
111
+ and their rejections classify too.
112
+
113
+ `classifyTxError(error)` sorts any of these, and viem's own errors, into what
114
+ to show:
115
+
116
+ | Kind | Meaning | Show |
117
+ | --------------- | --------------------------------------------------------------------- | ---------------------------------------------- |
118
+ | `user-rejected` | declined or cancelled in the wallet; nothing paid | "Cancelled", buy enabled |
119
+ | `reverted` | the contract refused it, in simulation or on chain; nothing paid | the reason, buy enabled |
120
+ | `pending` | sent with no receipt yet, or its nonce went to what may be a speed-up | "Pending" with the explorer link, buy disabled |
121
+ | `aborted` | the app stopped waiting; the transaction is as pending as it was | nothing; keep the pending hash |
122
+ | `failed` | anything else: no hash came back, or a different transaction won | the error, buy enabled |
123
+
124
+ `failed` with no hash usually means nothing was sent. A wallet that errors
125
+ after the user approved may still have broadcast it, so tell the user to
126
+ check the wallet's activity before paying again.
127
+
128
+ Persist the hash from the moment the wallet returns it, and what `onTrack`
129
+ hands over: the nonce once the node has seen the transaction, and a speed-up's
130
+ hash when one replaces it. A wait resumed after a reload needs the nonce to
131
+ notice a cancel or replacement that landed while the app was closed; without
132
+ it, a transaction the node has forgotten stays pending. A speed-up the page
133
+ never saw can't be told from a replacement after a reload, so it stays
134
+ pending too. Refuse a second buy while one is pending:
135
+
136
+ ```tsx
137
+ import { classifyTxError, useEvmClient } from "@multiplatform.one/web3";
138
+
139
+ const evm = useEvmClient();
140
+ const [pending, setPending] = usePersistedState<{ hash: Hash; nonce?: number } | null>("buy", null);
141
+
142
+ async function settle(hash: Hash, nonce: number | undefined, signal: AbortSignal) {
143
+ try {
144
+ await evm.confirmTransaction(hash, { nonce, signal, onTrack: setPending });
145
+ setPending(null);
146
+ showPaid();
147
+ } catch (error) {
148
+ const kind = classifyTxError(error);
149
+ // aborted: unmounted, and the next mount resumes it. pending: superseded,
150
+ // maybe sped up, so keep it locked.
151
+ if (kind === "aborted" || kind === "pending") return;
152
+ setPending(null);
153
+ showFailure(kind, error);
154
+ }
155
+ }
156
+
157
+ // Every wait belongs to a mounted screen, and stops when it unmounts.
158
+ useEffect(() => {
159
+ if (!evm || !pending) return;
160
+ const controller = new AbortController();
161
+ void settle(pending.hash, pending.nonce, controller.signal);
162
+ return () => controller.abort();
163
+ }, [evm, pending?.hash]);
164
+
165
+ async function buy() {
166
+ if (!evm || pending) return;
167
+ try {
168
+ await evm.erc20.ensureAllowance({ token: qcc, spender: store, amount });
169
+ const hash = await evm.writeContract({ address: store, abi, functionName: "buy", args: [id] });
170
+ setPending({ hash });
171
+ } catch (error) {
172
+ showFailure(classifyTxError(error), error);
173
+ }
174
+ }
175
+ ```
176
+
177
+ While `pending` is set, disable buy and link `evm.explorerTxUrl(pending.hash)`.
178
+ The effect settles it on mount and after a reload; a "check again" button can
179
+ remount it. When the client can't settle it, your backend, which sees the
180
+ purchase land, is the one to release the lock.
181
+
75
182
  ### Solana on mobile (follow-up)
76
183
 
77
184
  The web path is done. A native app cannot reach Phantom through the WebView
@@ -136,6 +243,39 @@ React Native builds don't need it: the native `WalletProvider` renders the
136
243
  wallet UI from `assets/webview.html`, which this package builds with the
137
244
  plugin.
138
245
 
246
+ ## Native apps: the WebView bridge
247
+
248
+ A native app does not link wallet SDKs. The native `WalletProvider` (the
249
+ `./native` entry) loads the wallet UI, `assets/webview.html`, in a WebView and
250
+ talks to it over a JSON bridge: `evm` (EIP-1193), `solana`, `sui` and `gpg`
251
+ signing, and `auth`, the Keycloak wallet sign-in. Everything runs on
252
+ `react-native-webview` and `Linking`, so stock Expo Go runs it.
253
+
254
+ Serve `webview.html` over https and set `webViewUrl` to it. The page's host
255
+ is the sign-in message's domain and the host the Keycloak nonce cookie is set
256
+ for, so it must be in the realm's `siww.allowedDomains` (SHC Keycloak) or
257
+ `wallet.allowedDomains` (mpo Keycloak), and its origin in the client's web
258
+ origins. The provider refuses any other URL; plain http is accepted only on
259
+ `localhost`, `127.0.0.1`, `[::1]` and `10.0.2.2`, in development builds.
260
+
261
+ ```tsx
262
+ import { useWalletBridge } from "@multiplatform.one/web3";
263
+
264
+ const { auth, sui, gpg } = useWalletBridge();
265
+ const outcome = await auth.signIn({
266
+ keycloak: { baseUrl: "https://account.example.com", realm: "main", clientId: "siwe-public" },
267
+ onboarding: { clientId: "wallet-onboarding", redirectUri: "myapp://auth" },
268
+ });
269
+ if (outcome.status === "signed-in") save(outcome.tokens);
270
+ // "profile-incomplete": Keycloak's own login was opened in the system browser
271
+ // to finish the profile; call signIn again once it redirects back.
272
+ ```
273
+
274
+ `@multiplatform.one/web3/bridge` is the same bridge without wagmi, for a host
275
+ that drives the page itself. Kotlin and Swift hosts implement
276
+ [docs/bridge-protocol.md](docs/bridge-protocol.md), the versioned wire
277
+ protocol.
278
+
139
279
  ## Usage
140
280
 
141
281
  ```tsx
@@ -155,6 +295,38 @@ export function App() {
155
295
  }
156
296
  ```
157
297
 
298
+ ## Keycloak direct login and onboarding
299
+
300
+ `kc.directGrant({ clientId })` trades a wallet signature for tokens without a
301
+ browser. A brand-new user, or a realm that later adds a required profile
302
+ field, has required actions Keycloak cannot run on a direct grant: it answers
303
+ 400 "Account is not fully set up", which `login()` rejects as
304
+ `ProfileIncompleteError` and `useDirectLogin` reports as
305
+ `status: "profile-incomplete"`. Open the `url` of `kc.browserLoginUrl({
306
+ clientId, redirectUri })` in the system browser or a WebView page, where
307
+ Keycloak shows its own onboarding form, then call `signIn()` again once it
308
+ redirects back.
309
+
310
+ `browserLoginUrl` draws a fresh `state` and a PKCE S256 verifier on every call
311
+ and returns `{ url, state, codeVerifier }`. Keep `state` and accept the
312
+ redirect only when it matches; `codeVerifier` is for a caller that exchanges
313
+ the code at `kc.tokenUrl`. The client needs `standardFlowEnabled` and the
314
+ redirect URI registered exactly, with no wildcard. A direct-grant client does
315
+ not qualify: mpo's `siwe-public` and `siws-public` have `standardFlowEnabled:
316
+ false`, so mpo's realm carries a separate public client, `wallet-onboarding`
317
+ (PKCE S256 required, redirect URIs `http://localhost:8000/wallet`,
318
+ `http://localhost:3456/wallet` and `multiplatform-one://wallet`). The wallet
319
+ screen in `features/wallet` takes this path on its own.
320
+
321
+ ```tsx
322
+ const { status, signIn } = useDirectLogin(grant);
323
+ if (status === "profile-incomplete") {
324
+ const login = kc.browserLoginUrl({ clientId: "wallet-onboarding", redirectUri: "app://auth" });
325
+ await saveState(login.state);
326
+ await Linking.openURL(login.url);
327
+ }
328
+ ```
329
+
158
330
  ## License
159
331
 
160
332
  Apache-2.0
@@ -0,0 +1,124 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: true
9
+ });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
14
+ get: () => from[key],
15
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
+ });
17
+ }
18
+ return to;
19
+ };
20
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
+ value: true
22
+ }), mod);
23
+ var AuthBridge_exports = {};
24
+ __export(AuthBridge_exports, {
25
+ AuthBridge: () => AuthBridge
26
+ });
27
+ module.exports = __toCommonJS(AuthBridge_exports);
28
+ var import_hosting = require("./hosting.cjs");
29
+ var import_protocol = require("./protocol.cjs");
30
+ class AuthBridge {
31
+ constructor(bridge, options) {
32
+ this.bridge = bridge;
33
+ this.options = options;
34
+ }
35
+ bridge;
36
+ options;
37
+ pending = null;
38
+ async signIn(params = {}, options = {}) {
39
+ const {
40
+ openOnboarding = true,
41
+ ...request
42
+ } = options;
43
+ const onboarding = params.onboarding ?? this.options.defaults?.onboarding;
44
+ const keycloak = this.keycloak(params.keycloak);
45
+ const result = await this.bridge.request("auth", "signIn", {
46
+ family: params.family ?? "eth",
47
+ keycloak,
48
+ ...(onboarding ? {
49
+ onboarding
50
+ } : {})
51
+ }, {
52
+ timeoutMs: this.options.signInTimeoutMs ?? 10 * 6e4,
53
+ ...request
54
+ });
55
+ if (result.status !== "profile-incomplete") {
56
+ this.pending = null;
57
+ return result;
58
+ }
59
+ if (!isAuthorizationUrl(result.browserLogin?.url, keycloak)) {
60
+ throw new import_protocol.BridgeRequestError(import_protocol.BridgeErrorCode.internal, "auth.signIn: the page's browser login is not the realm's authorization endpoint");
61
+ }
62
+ this.pending = result.browserLogin;
63
+ if (!openOnboarding) return {
64
+ ...result,
65
+ onboardingOpened: false
66
+ };
67
+ await this.options.openUrl(result.browserLogin.url);
68
+ return {
69
+ ...result,
70
+ onboardingOpened: true
71
+ };
72
+ }
73
+ async refresh(params = {}) {
74
+ const res = await this.bridge.request("auth", "refresh", {
75
+ keycloak: this.keycloak(params.keycloak),
76
+ ...(params.refreshToken ? {
77
+ refreshToken: params.refreshToken
78
+ } : {})
79
+ });
80
+ return res.tokens;
81
+ }
82
+ async logout(params = {}) {
83
+ await this.bridge.request("auth", "logout", {
84
+ keycloak: this.keycloak(params.keycloak),
85
+ ...(params.refreshToken ? {
86
+ refreshToken: params.refreshToken
87
+ } : {})
88
+ });
89
+ }
90
+ /** The browser login the last `profile-incomplete` answer carried, until a sign-in succeeds. */
91
+ get pendingOnboarding() {
92
+ return this.pending;
93
+ }
94
+ /**
95
+ * True when `url` is Keycloak sending the browser back from that onboarding
96
+ * (its `state` matches) with no `error`. A matching return, cancelled or
97
+ * not, ends the pending onboarding, so the same return never counts twice.
98
+ */
99
+ isOnboardingReturn(url) {
100
+ if (this.pending === null) return false;
101
+ const params = (0, import_hosting.queryParams)(url);
102
+ if (params.state !== this.pending.state) return false;
103
+ this.pending = null;
104
+ return params.error === void 0;
105
+ }
106
+ /** `tokensChanged` fires whenever the page's tokens for a realm and client change. */
107
+ onTokensChanged(handler) {
108
+ return this.bridge.on((ns, method, params) => {
109
+ if (ns === "auth" && method === "tokensChanged") handler(params);
110
+ });
111
+ }
112
+ keycloak(keycloak) {
113
+ const resolved = keycloak ?? this.options.defaults?.keycloak;
114
+ if (!resolved) {
115
+ throw new import_protocol.BridgeRequestError(import_protocol.BridgeErrorCode.invalidParams, "auth: pass keycloak { baseUrl, realm, clientId } or set it in the provider defaults");
116
+ }
117
+ return resolved;
118
+ }
119
+ }
120
+ function isAuthorizationUrl(url, keycloak) {
121
+ if (typeof url !== "string") return false;
122
+ const realmUrl = `${keycloak.baseUrl.replace(/\/+$/, "")}/realms/${encodeURIComponent(keycloak.realm)}`;
123
+ return url.startsWith(`${realmUrl}/protocol/openid-connect/auth?`);
124
+ }
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
+ get: () => from[key],
17
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
+ });
19
+ }
20
+ return to;
21
+ };
22
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
23
+ value: true
24
+ }), mod);
25
+ var AuthBridge_exports = {};
26
+ __export(AuthBridge_exports, {
27
+ AuthBridge: () => AuthBridge
28
+ });
29
+ module.exports = __toCommonJS(AuthBridge_exports);
30
+ var import_hosting = require("./hosting.native.js");
31
+ var import_protocol = require("./protocol.native.js");
32
+ function _class_call_check(instance, Constructor) {
33
+ if (!(instance instanceof Constructor)) {
34
+ throw new TypeError("Cannot call a class as a function");
35
+ }
36
+ }
37
+ function _defineProperties(target, props) {
38
+ for (var i = 0; i < props.length; i++) {
39
+ var descriptor = props[i];
40
+ descriptor.enumerable = descriptor.enumerable || false;
41
+ descriptor.configurable = true;
42
+ if ("value" in descriptor) descriptor.writable = true;
43
+ Object.defineProperty(target, descriptor.key, descriptor);
44
+ }
45
+ }
46
+ function _create_class(Constructor, protoProps, staticProps) {
47
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
48
+ if (staticProps) _defineProperties(Constructor, staticProps);
49
+ return Constructor;
50
+ }
51
+ function _define_property(obj, key, value) {
52
+ if (key in obj) {
53
+ Object.defineProperty(obj, key, {
54
+ value,
55
+ enumerable: true,
56
+ configurable: true,
57
+ writable: true
58
+ });
59
+ } else {
60
+ obj[key] = value;
61
+ }
62
+ return obj;
63
+ }
64
+ var AuthBridge = /* @__PURE__ */function () {
65
+ "use strict";
66
+
67
+ function AuthBridge2(bridge, options) {
68
+ _class_call_check(this, AuthBridge2);
69
+ _define_property(this, "bridge", void 0);
70
+ _define_property(this, "options", void 0);
71
+ _define_property(this, "pending", void 0);
72
+ this.bridge = bridge;
73
+ this.options = options;
74
+ this.pending = null;
75
+ }
76
+ _create_class(AuthBridge2, [{
77
+ key: "signIn",
78
+ value: async function signIn() {
79
+ var params = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {},
80
+ options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
81
+ var _params_onboarding, _params_family, _this_options_signInTimeoutMs;
82
+ var _this_options_defaults, _result_browserLogin;
83
+ var {
84
+ openOnboarding = true,
85
+ ...request
86
+ } = options;
87
+ var onboarding = (_params_onboarding = params.onboarding) !== null && _params_onboarding !== void 0 ? _params_onboarding : (_this_options_defaults = this.options.defaults) === null || _this_options_defaults === void 0 ? void 0 : _this_options_defaults.onboarding;
88
+ var keycloak = this.keycloak(params.keycloak);
89
+ var result = await this.bridge.request("auth", "signIn", {
90
+ family: (_params_family = params.family) !== null && _params_family !== void 0 ? _params_family : "eth",
91
+ keycloak,
92
+ ...(onboarding ? {
93
+ onboarding
94
+ } : {})
95
+ }, {
96
+ timeoutMs: (_this_options_signInTimeoutMs = this.options.signInTimeoutMs) !== null && _this_options_signInTimeoutMs !== void 0 ? _this_options_signInTimeoutMs : 10 * 6e4,
97
+ ...request
98
+ });
99
+ if (result.status !== "profile-incomplete") {
100
+ this.pending = null;
101
+ return result;
102
+ }
103
+ if (!isAuthorizationUrl((_result_browserLogin = result.browserLogin) === null || _result_browserLogin === void 0 ? void 0 : _result_browserLogin.url, keycloak)) {
104
+ throw new import_protocol.BridgeRequestError(import_protocol.BridgeErrorCode.internal, "auth.signIn: the page's browser login is not the realm's authorization endpoint");
105
+ }
106
+ this.pending = result.browserLogin;
107
+ if (!openOnboarding) return {
108
+ ...result,
109
+ onboardingOpened: false
110
+ };
111
+ await this.options.openUrl(result.browserLogin.url);
112
+ return {
113
+ ...result,
114
+ onboardingOpened: true
115
+ };
116
+ }
117
+ }, {
118
+ key: "refresh",
119
+ value: async function refresh() {
120
+ var params = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
121
+ var res = await this.bridge.request("auth", "refresh", {
122
+ keycloak: this.keycloak(params.keycloak),
123
+ ...(params.refreshToken ? {
124
+ refreshToken: params.refreshToken
125
+ } : {})
126
+ });
127
+ return res.tokens;
128
+ }
129
+ }, {
130
+ key: "logout",
131
+ value: async function logout() {
132
+ var params = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
133
+ await this.bridge.request("auth", "logout", {
134
+ keycloak: this.keycloak(params.keycloak),
135
+ ...(params.refreshToken ? {
136
+ refreshToken: params.refreshToken
137
+ } : {})
138
+ });
139
+ }
140
+ }, {
141
+ key: "pendingOnboarding",
142
+ get: (/** The browser login the last `profile-incomplete` answer carried, until a sign-in succeeds. */
143
+ function get() {
144
+ return this.pending;
145
+ })
146
+ }, {
147
+ /**
148
+ * True when `url` is Keycloak sending the browser back from that onboarding
149
+ * (its `state` matches) with no `error`. A matching return, cancelled or
150
+ * not, ends the pending onboarding, so the same return never counts twice.
151
+ */
152
+ key: "isOnboardingReturn",
153
+ value: function isOnboardingReturn(url) {
154
+ if (this.pending === null) return false;
155
+ var params = (0, import_hosting.queryParams)(url);
156
+ if (params.state !== this.pending.state) return false;
157
+ this.pending = null;
158
+ return params.error === void 0;
159
+ }
160
+ }, {
161
+ /** `tokensChanged` fires whenever the page's tokens for a realm and client change. */
162
+ key: "onTokensChanged",
163
+ value: function onTokensChanged(handler) {
164
+ return this.bridge.on(function (ns, method, params) {
165
+ if (ns === "auth" && method === "tokensChanged") handler(params);
166
+ });
167
+ }
168
+ }, {
169
+ key: "keycloak",
170
+ value: function keycloak(keycloak) {
171
+ var _this_options_defaults;
172
+ var resolved = keycloak !== null && keycloak !== void 0 ? keycloak : (_this_options_defaults = this.options.defaults) === null || _this_options_defaults === void 0 ? void 0 : _this_options_defaults.keycloak;
173
+ if (!resolved) {
174
+ throw new import_protocol.BridgeRequestError(import_protocol.BridgeErrorCode.invalidParams, "auth: pass keycloak { baseUrl, realm, clientId } or set it in the provider defaults");
175
+ }
176
+ return resolved;
177
+ }
178
+ }]);
179
+ return AuthBridge2;
180
+ }();
181
+ function isAuthorizationUrl(url, keycloak) {
182
+ if (typeof url !== "string") return false;
183
+ var realmUrl = `${keycloak.baseUrl.replace(/\/+$/, "")}/realms/${encodeURIComponent(keycloak.realm)}`;
184
+ return url.startsWith(`${realmUrl}/protocol/openid-connect/auth?`);
185
+ }
186
+ //# sourceMappingURL=AuthBridge.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","AuthBridge_exports","__export","AuthBridge","module","exports","import_hosting","require","import_protocol","_class_call_check","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","prototype","_define_property","obj","AuthBridge2","bridge","options","pending","signIn","params","arguments","_params_onboarding","_params_family","_this_options_signInTimeoutMs","_this_options_defaults","_result_browserLogin","openOnboarding","request","onboarding","defaults","keycloak","result","family","timeoutMs","signInTimeoutMs","status","isAuthorizationUrl","browserLogin","url","BridgeRequestError","BridgeErrorCode","internal","onboardingOpened","openUrl","refresh","res"],"sources":["../../../src/bridge/AuthBridge.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,kBAAA;AAAAC,QAAA,CAAAD,kBAAA;EAAAE,UAAA,EAAAA,CAAA,KAAAA;AAAA;AAUAC,MAAA,CAAAC,OAAA,GAAAT,YAA4B,CAAAK,kBAAA;AAC5B,IAAAK,cAAA,GAAAC,OAAoD;AA+B7C,IAAAC,eAAiB,GAAAD,OAAA;AAAA,SAGtBE,iBAEmBA,CAAAC,QACjB,EAAAC,WAAA;EAFiB,MAAAD,QAAA,YAAAC,WAAA;IACA,UAAAC,SAAA;EAChB;AAAA;AAFgB,SACAC,kBAAAC,MAAA,EAAAC,KAAA;EAJX,SAAAC,CAAmC,MAAAA,CAAA,GAAAD,KAAA,CAAAE,MAAA,EAAAD,CAAA;IAO3C,IAAME,UACJ,GAAAH,KAAqC,CAAAC,CACrC;IAEAE,UAAQ,CAAAC,UAAA,GAAAD,UAA0B,CAAAC,UAAQ,IAAI;IAC9CD,UAAM,CAAAE,YAAa,GAAO;IAC1B,WAAM,IAAAF,UAAgB,EAAAA,UAAS,CAAOG,QAAQ;IAC9CC,MAAM,CAAAC,cAAgB,CAAAT,MAAK,EAAAI,UAAO,CAAAM,GAAA,EAAAN,UAAA;EAAA;AAChC;AACA,SACAO,cAAAd,WAAA,EAAAe,UAAA,EAAAC,WAAA;EAAA,IAAAD,UACU,EAAAb,iBAAiB,CAAAF,WAAA,CAAAiB,SAAA,EAAAF,UAAA;EAAA,IAAAC,WACzB,EAAAd,iBAAA,CAAAF,WAAA,EAAAgB,WAAA;EAAA,OACAhB,WAAI;AAA+B;AACrC,SACEkB,gBAAgBA,CAAAC,GAAA,EAAAN,GAAQ,EAAAxB,KAAA;EAA2C,IACvEwB,GAAA,IAAAM,GAAA;IACAR,MAAI,CAAAC,cAAO,CAAWO,GAAA,EAAAN,GAAA;MACpBxB,KAAK;MACLmB,UAAO;MACTC,YAAA;MAGAC,QAAK;IACH;EAAU,OACR;IAAgBS,GAAA,CAChBN,GAAA,IAAAxB,KAAA;EAAA;EACF,OACF8B,GAAA;AACA;AACA,IAAA3B,UAAK,kBAAyB,YAAW;EACzC,YAAM;;EACN,SAAO4B,WAAKA,CAAAC,MAAQ,EAAAC,OAAA;IACtBxB,iBAAA,OAAAsB,WAAA;IAEAF,gBACE,KAAmE,EAAC,QAC/C;IACrBA,gBAAa,KAAM,EAAK,SAAO,OAAQ;IAAmBA,gBAC9C,CAAK,eAAS,EAAO,OAAQ;IAAA,IACvC,CAAIG,MAAA,GAAOA,MAAA;IACb,IAAC,CAAAC,OAAA,GAAAA,OAAA;IACD,KAAAC,OAAW;EACb;EAEAT,aACE,CAAAM,WAAoE,EACrD,CACf;IACEP,GAAA,UAAU;IACVxB,KAAI,iBAAOmC,MAAiBA,CAAA;MAC7B,IAAAC,MAAA,GAAAC,SAAA,CAAApB,MAAA,QAAAoB,SAAA,iBAAAA,SAAA;QAAAJ,OAAA,GAAAI,SAAA,CAAApB,MAAA,QAAAoB,SAAA,iBAAAA,SAAA;MACH,IAAAC,kBAAA,EAAAC,cAAA,EAAAC,6BAAA;MAAA,IAAAC,sBAAA,EAAAC,oBAAA;MAGI;QAAAC,cAA6C;QAAA,GAAAC;MAAA,IAAAX,OAAA;MAC/C,IAAOY,UAAK,IAAAP,kBAAA,GAAAF,MAAA,CAAAS,UAAA,cAAAP,kBAAA,cAAAA,kBAAA,IAAAG,sBAAA,QAAAR,OAAA,CAAAa,QAAA,cAAAL,sBAAA,uBAAAA,sBAAA,CAAAI,UAAA;MACd,IAAAE,QAAA,QAAAA,QAAA,CAAAX,MAAA,CAAAW,QAAA;MAAA,IAAAC,MAAA,cAAAhB,MAAA,CAAAY,OAAA;QAAAK,MAAA,GAAAV,cAAA,GAAAH,MAAA,CAAAa,MAAA,cAAAV,cAAA,cAAAA,cAAA;QAAAQ,QAAA;QAAA,IAAAF,UAAA;UAAAA;QAOA;MACM;QACEK,SAAA,GAAAV,6BAAqB,GAAG,KAAAP,OAAA,CAAAkB,eAAA,cAAAX,6BAAA,cAAAA,6BAAA;QAC1B,GAAAI;MACJ,CAAK;MACL,IAAOI,MAAO,CAAAI,MAAA,KAAU;QAC1B,KAAAlB,OAAA;QAAA,OAAAc,MAAA;MAGA;MACE,IAAO,CAAAK,kBAAoB,EAAAX,oBAAmB,GAAAM,MAAA,CAAAM,YAAA,cAAAZ,oBAAA,uBAAAA,oBAAA,CAAAa,GAAA,EAAAR,QAAA;QACxC,UAAOvC,eAAU,CAAAgD,kBAA4B,CAAAhD,eAAmC,CAAAiD,eAAA,CAAAC,QAAA;MACrF;MACH,KAAAxB,OAAA,GAAAc,MAAA,CAAAM,YAAA;MAEQ,IAAS,CAAAX,cAA8D;QACvE,GAAAK,MAAA;QACDW,gBAAU;MACb;MACE,WAAA1B,OAAA,CAAA2B,OAAA,CAAAZ,MAAgB,CAAAM,YAAA,CAAAC,GAAA;MAChB;QACF,GAAAP,MAAA;QACFW,gBAAA;MACA;IACF;EACF,GAEA;IACMnC,GAAA,WAAO;IACXxB,KAAM,iBAAc6D,OAASA,CAAA;MAC7B,IAAOzB,MAAI,GAAAC,SAAc,CAAApB,MAAQ,QAAAoB,SAAA,aAAgC,IAAAA,SAAA;MACnE,IAAAyB,GAAA,cAAA9B,MAAA,CAAAY,OAAA","ignoreList":[]}
@@ -80,15 +80,20 @@ class BridgeClient {
80
80
  this.listeners.delete(handler);
81
81
  };
82
82
  }
83
- /** Reject all in-flight requests — call on WebView reload/crash. */
83
+ /** Fail every request in flight and keep the client usable: the page they went to is gone. */
84
+ rejectPending(reason) {
85
+ const pending = Array.from(this.pending.values());
86
+ this.pending.clear();
87
+ for (const p of pending) {
88
+ p.cleanup();
89
+ p.reject(reason);
90
+ }
91
+ }
92
+ /** Reject all in-flight requests and stop listening. */
84
93
  dispose() {
85
94
  this.disposed = true;
86
95
  this.unsubscribe();
87
- for (const [, p] of this.pending) {
88
- p.cleanup();
89
- p.reject(new Error("Bridge disposed"));
90
- }
91
- this.pending.clear();
96
+ this.rejectPending(new Error("Bridge disposed"));
92
97
  this.listeners.clear();
93
98
  }
94
99
  settle(id, reject, error) {
@@ -115,7 +120,5 @@ class BridgeClient {
115
120
  };
116
121
  }
117
122
  function toError(e) {
118
- const err = new Error(e.message);
119
- err.code = e.code;
120
- return err;
123
+ return new import_protocol.BridgeRequestError(e.code, e.message, e.data);
121
124
  }
@@ -173,19 +173,19 @@ var BridgeClient = /* @__PURE__ */function () {
173
173
  };
174
174
  }
175
175
  }, {
176
- /** Reject all in-flight requests — call on WebView reload/crash. */
177
- key: "dispose",
178
- value: function dispose() {
179
- this.disposed = true;
180
- this.unsubscribe();
176
+ /** Fail every request in flight and keep the client usable: the page they went to is gone. */
177
+ key: "rejectPending",
178
+ value: function rejectPending(reason) {
179
+ var pending = Array.from(this.pending.values());
180
+ this.pending.clear();
181
181
  var _iteratorNormalCompletion = true,
182
182
  _didIteratorError = false,
183
183
  _iteratorError = void 0;
184
184
  try {
185
- for (var _iterator = this.pending[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
186
- var [, p] = _step.value;
185
+ for (var _iterator = pending[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
186
+ var p = _step.value;
187
187
  p.cleanup();
188
- p.reject(new Error("Bridge disposed"));
188
+ p.reject(reason);
189
189
  }
190
190
  } catch (err) {
191
191
  _didIteratorError = true;
@@ -201,7 +201,14 @@ var BridgeClient = /* @__PURE__ */function () {
201
201
  }
202
202
  }
203
203
  }
204
- this.pending.clear();
204
+ }
205
+ }, {
206
+ /** Reject all in-flight requests and stop listening. */
207
+ key: "dispose",
208
+ value: function dispose() {
209
+ this.disposed = true;
210
+ this.unsubscribe();
211
+ this.rejectPending(new Error("Bridge disposed"));
205
212
  this.listeners.clear();
206
213
  }
207
214
  }, {
@@ -217,8 +224,6 @@ var BridgeClient = /* @__PURE__ */function () {
217
224
  return BridgeClient2;
218
225
  }();
219
226
  function toError(e) {
220
- var err = new Error(e.message);
221
- err.code = e.code;
222
- return err;
227
+ return new import_protocol.BridgeRequestError(e.code, e.message, e.data);
223
228
  }
224
229
  //# sourceMappingURL=BridgeClient.native.js.map