@multiplatform.one/web3 7.23.1 → 7.24.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 (431) hide show
  1. package/README.md +150 -11
  2. package/dist/cjs/clients/evm.cjs +299 -11
  3. package/dist/cjs/clients/evm.native.js +500 -12
  4. package/dist/cjs/clients/evm.native.js.map +1 -1
  5. package/dist/cjs/clients/index.cjs +5 -0
  6. package/dist/cjs/clients/index.native.js +5 -0
  7. package/dist/cjs/clients/index.native.js.map +1 -1
  8. package/dist/cjs/clients/solana.cjs +39 -21
  9. package/dist/cjs/clients/solana.native.js +48 -23
  10. package/dist/cjs/clients/solana.native.js.map +1 -1
  11. package/dist/cjs/connectkit/GpgProvider.cjs +44 -0
  12. package/dist/cjs/connectkit/GpgProvider.native.js +51 -0
  13. package/dist/cjs/connectkit/GpgProvider.native.js.map +1 -0
  14. package/dist/cjs/connectkit/adapters/BitcoinAdapter.cjs +5 -14
  15. package/dist/cjs/connectkit/adapters/BitcoinAdapter.native.js +5 -15
  16. package/dist/cjs/connectkit/adapters/BitcoinAdapter.native.js.map +1 -1
  17. package/dist/cjs/connectkit/adapters/EthereumAdapter.cjs +6 -15
  18. package/dist/cjs/connectkit/adapters/EthereumAdapter.native.js +7 -16
  19. package/dist/cjs/connectkit/adapters/EthereumAdapter.native.js.map +1 -1
  20. package/dist/cjs/connectkit/adapters/SolanaAdapter.cjs +5 -14
  21. package/dist/cjs/connectkit/adapters/SolanaAdapter.native.js +5 -15
  22. package/dist/cjs/connectkit/adapters/SolanaAdapter.native.js.map +1 -1
  23. package/dist/cjs/connectkit/adapters/SuiAdapter.cjs +5 -14
  24. package/dist/cjs/connectkit/adapters/SuiAdapter.native.js +5 -15
  25. package/dist/cjs/connectkit/adapters/SuiAdapter.native.js.map +1 -1
  26. package/dist/cjs/connectkit/connectors/createWalletMessage.cjs +2 -2
  27. package/dist/cjs/connectkit/connectors/createWalletMessage.native.js +2 -2
  28. package/dist/cjs/connectkit/connectors/createWalletMessage.native.js.map +1 -1
  29. package/dist/cjs/connectkit/index.cjs +4 -3
  30. package/dist/cjs/connectkit/index.native.js +4 -3
  31. package/dist/cjs/connectkit/index.native.js.map +1 -1
  32. package/dist/cjs/connectkit/siwe/SIWEContext.native.js.map +1 -1
  33. package/dist/cjs/connectkit/siwe/SIWEProvider.cjs +18 -3
  34. package/dist/cjs/connectkit/siwe/SIWEProvider.native.js +18 -3
  35. package/dist/cjs/connectkit/siwe/SIWEProvider.native.js.map +1 -1
  36. package/dist/cjs/index.cjs +1 -0
  37. package/dist/cjs/index.native.js +1 -0
  38. package/dist/cjs/index.native.js.map +1 -1
  39. package/dist/cjs/keycloak/KeycloakWalletLogin.cjs +255 -0
  40. package/dist/cjs/keycloak/KeycloakWalletLogin.native.js +33 -0
  41. package/dist/cjs/keycloak/KeycloakWalletLogin.native.js.map +1 -0
  42. package/dist/cjs/keycloak/browserFlow.cjs +83 -0
  43. package/dist/cjs/keycloak/browserFlow.native.js +90 -0
  44. package/dist/cjs/keycloak/browserFlow.native.js.map +1 -0
  45. package/dist/cjs/keycloak/device.cjs +36 -0
  46. package/dist/cjs/keycloak/device.native.js +45 -0
  47. package/dist/cjs/keycloak/device.native.js.map +1 -0
  48. package/dist/cjs/keycloak/directGrant.cjs +189 -0
  49. package/dist/cjs/keycloak/directGrant.native.js +233 -0
  50. package/dist/cjs/keycloak/directGrant.native.js.map +1 -0
  51. package/dist/cjs/keycloak/iife.cjs +4 -0
  52. package/dist/cjs/keycloak/iife.native.js +7 -0
  53. package/dist/cjs/keycloak/iife.native.js.map +1 -0
  54. package/dist/cjs/keycloak/index.cjs +53 -0
  55. package/dist/cjs/keycloak/index.native.js +56 -0
  56. package/dist/cjs/keycloak/index.native.js.map +1 -0
  57. package/dist/cjs/keycloak/keycloakWallet.cjs +214 -0
  58. package/dist/cjs/keycloak/keycloakWallet.native.js +285 -0
  59. package/dist/cjs/keycloak/keycloakWallet.native.js.map +1 -0
  60. package/dist/cjs/keycloak/mount.cjs +53 -0
  61. package/dist/cjs/keycloak/mount.native.js +33 -0
  62. package/dist/cjs/keycloak/mount.native.js.map +1 -0
  63. package/dist/cjs/keycloak/registerWallet.cjs +74 -0
  64. package/dist/cjs/keycloak/registerWallet.native.js +81 -0
  65. package/dist/cjs/keycloak/registerWallet.native.js.map +1 -0
  66. package/dist/cjs/keycloak/types.cjs +46 -0
  67. package/dist/cjs/keycloak/types.native.js +179 -0
  68. package/dist/cjs/keycloak/types.native.js.map +1 -0
  69. package/dist/cjs/keycloak/useDirectLogin.cjs +57 -0
  70. package/dist/cjs/keycloak/useDirectLogin.native.js +77 -0
  71. package/dist/cjs/keycloak/useDirectLogin.native.js.map +1 -0
  72. package/dist/cjs/keycloak/useWalletLogin.cjs +97 -0
  73. package/dist/cjs/keycloak/useWalletLogin.native.js +33 -0
  74. package/dist/cjs/keycloak/useWalletLogin.native.js.map +1 -0
  75. package/dist/cjs/message/buildWalletMessage.cjs +113 -0
  76. package/dist/cjs/message/buildWalletMessage.native.js +121 -0
  77. package/dist/cjs/message/buildWalletMessage.native.js.map +1 -0
  78. package/dist/cjs/message/index.cjs +29 -0
  79. package/dist/cjs/message/index.native.js +32 -0
  80. package/dist/cjs/message/index.native.js.map +1 -0
  81. package/dist/cjs/providers/WalletProvider.cjs +8 -2
  82. package/dist/cjs/siws/message.cjs +5 -16
  83. package/dist/cjs/siws/message.native.js +6 -16
  84. package/dist/cjs/siws/message.native.js.map +1 -1
  85. package/dist/cjs/solana.native.js.map +1 -1
  86. package/dist/esm/clients/evm.mjs +295 -12
  87. package/dist/esm/clients/evm.mjs.map +1 -1
  88. package/dist/esm/clients/evm.native.js +496 -13
  89. package/dist/esm/clients/evm.native.js.map +1 -1
  90. package/dist/esm/clients/index.mjs +2 -2
  91. package/dist/esm/clients/index.mjs.map +1 -1
  92. package/dist/esm/clients/index.native.js +2 -2
  93. package/dist/esm/clients/index.native.js.map +1 -1
  94. package/dist/esm/clients/solana.mjs +39 -21
  95. package/dist/esm/clients/solana.mjs.map +1 -1
  96. package/dist/esm/clients/solana.native.js +48 -23
  97. package/dist/esm/clients/solana.native.js.map +1 -1
  98. package/dist/esm/connectkit/GpgProvider.mjs +19 -0
  99. package/dist/esm/connectkit/GpgProvider.mjs.map +1 -0
  100. package/dist/esm/connectkit/GpgProvider.native.js +23 -0
  101. package/dist/esm/connectkit/GpgProvider.native.js.map +1 -0
  102. package/dist/esm/connectkit/adapters/BitcoinAdapter.mjs +5 -14
  103. package/dist/esm/connectkit/adapters/BitcoinAdapter.mjs.map +1 -1
  104. package/dist/esm/connectkit/adapters/BitcoinAdapter.native.js +5 -15
  105. package/dist/esm/connectkit/adapters/BitcoinAdapter.native.js.map +1 -1
  106. package/dist/esm/connectkit/adapters/EthereumAdapter.mjs +6 -15
  107. package/dist/esm/connectkit/adapters/EthereumAdapter.mjs.map +1 -1
  108. package/dist/esm/connectkit/adapters/EthereumAdapter.native.js +7 -16
  109. package/dist/esm/connectkit/adapters/EthereumAdapter.native.js.map +1 -1
  110. package/dist/esm/connectkit/adapters/SolanaAdapter.mjs +5 -14
  111. package/dist/esm/connectkit/adapters/SolanaAdapter.mjs.map +1 -1
  112. package/dist/esm/connectkit/adapters/SolanaAdapter.native.js +5 -15
  113. package/dist/esm/connectkit/adapters/SolanaAdapter.native.js.map +1 -1
  114. package/dist/esm/connectkit/adapters/SuiAdapter.mjs +5 -14
  115. package/dist/esm/connectkit/adapters/SuiAdapter.mjs.map +1 -1
  116. package/dist/esm/connectkit/adapters/SuiAdapter.native.js +5 -15
  117. package/dist/esm/connectkit/adapters/SuiAdapter.native.js.map +1 -1
  118. package/dist/esm/connectkit/connectors/createWalletMessage.mjs +1 -1
  119. package/dist/esm/connectkit/connectors/createWalletMessage.native.js +1 -1
  120. package/dist/esm/connectkit/index.mjs +3 -2
  121. package/dist/esm/connectkit/index.mjs.map +1 -1
  122. package/dist/esm/connectkit/index.native.js +3 -2
  123. package/dist/esm/connectkit/index.native.js.map +1 -1
  124. package/dist/esm/connectkit/siwe/SIWEContext.mjs.map +1 -1
  125. package/dist/esm/connectkit/siwe/SIWEContext.native.js.map +1 -1
  126. package/dist/esm/connectkit/siwe/SIWEProvider.mjs +19 -4
  127. package/dist/esm/connectkit/siwe/SIWEProvider.mjs.map +1 -1
  128. package/dist/esm/connectkit/siwe/SIWEProvider.native.js +19 -4
  129. package/dist/esm/connectkit/siwe/SIWEProvider.native.js.map +1 -1
  130. package/dist/esm/index.mjs +1 -0
  131. package/dist/esm/index.mjs.map +1 -1
  132. package/dist/esm/index.native.js +1 -0
  133. package/dist/esm/index.native.js.map +1 -1
  134. package/dist/esm/keycloak/KeycloakWalletLogin.mjs +218 -0
  135. package/dist/esm/keycloak/KeycloakWalletLogin.mjs.map +1 -0
  136. package/dist/esm/keycloak/KeycloakWalletLogin.native.js +5 -0
  137. package/dist/esm/keycloak/KeycloakWalletLogin.native.js.map +1 -0
  138. package/dist/esm/keycloak/browserFlow.mjs +58 -0
  139. package/dist/esm/keycloak/browserFlow.mjs.map +1 -0
  140. package/dist/esm/keycloak/browserFlow.native.js +62 -0
  141. package/dist/esm/keycloak/browserFlow.native.js.map +1 -0
  142. package/dist/esm/keycloak/device.mjs +10 -0
  143. package/dist/esm/keycloak/device.mjs.map +1 -0
  144. package/dist/esm/keycloak/device.native.js +16 -0
  145. package/dist/esm/keycloak/device.native.js.map +1 -0
  146. package/dist/esm/keycloak/directGrant.mjs +164 -0
  147. package/dist/esm/keycloak/directGrant.mjs.map +1 -0
  148. package/dist/esm/keycloak/directGrant.native.js +205 -0
  149. package/dist/esm/keycloak/directGrant.native.js.map +1 -0
  150. package/dist/esm/keycloak/iife.mjs +5 -0
  151. package/dist/esm/keycloak/iife.mjs.map +1 -0
  152. package/dist/esm/keycloak/iife.native.js +5 -0
  153. package/dist/esm/keycloak/iife.native.js.map +1 -0
  154. package/dist/esm/keycloak/index.mjs +13 -0
  155. package/dist/esm/keycloak/index.mjs.map +1 -0
  156. package/dist/esm/keycloak/index.native.js +13 -0
  157. package/dist/esm/keycloak/index.native.js.map +1 -0
  158. package/dist/esm/keycloak/keycloakWallet.mjs +186 -0
  159. package/dist/esm/keycloak/keycloakWallet.mjs.map +1 -0
  160. package/dist/esm/keycloak/keycloakWallet.native.js +254 -0
  161. package/dist/esm/keycloak/keycloakWallet.native.js.map +1 -0
  162. package/dist/esm/keycloak/mount.mjs +28 -0
  163. package/dist/esm/keycloak/mount.mjs.map +1 -0
  164. package/dist/esm/keycloak/mount.native.js +5 -0
  165. package/dist/esm/keycloak/mount.native.js.map +1 -0
  166. package/dist/esm/keycloak/registerWallet.mjs +49 -0
  167. package/dist/esm/keycloak/registerWallet.mjs.map +1 -0
  168. package/dist/esm/keycloak/registerWallet.native.js +53 -0
  169. package/dist/esm/keycloak/registerWallet.native.js.map +1 -0
  170. package/dist/esm/keycloak/types.mjs +20 -0
  171. package/dist/esm/keycloak/types.mjs.map +1 -0
  172. package/dist/esm/keycloak/types.native.js +150 -0
  173. package/dist/esm/keycloak/types.native.js.map +1 -0
  174. package/dist/esm/keycloak/useDirectLogin.mjs +32 -0
  175. package/dist/esm/keycloak/useDirectLogin.mjs.map +1 -0
  176. package/dist/esm/keycloak/useDirectLogin.native.js +49 -0
  177. package/dist/esm/keycloak/useDirectLogin.native.js.map +1 -0
  178. package/dist/esm/keycloak/useWalletLogin.mjs +72 -0
  179. package/dist/esm/keycloak/useWalletLogin.mjs.map +1 -0
  180. package/dist/esm/keycloak/useWalletLogin.native.js +5 -0
  181. package/dist/esm/keycloak/useWalletLogin.native.js.map +1 -0
  182. package/dist/esm/message/buildWalletMessage.mjs +87 -0
  183. package/dist/esm/message/buildWalletMessage.mjs.map +1 -0
  184. package/dist/esm/message/buildWalletMessage.native.js +92 -0
  185. package/dist/esm/message/buildWalletMessage.native.js.map +1 -0
  186. package/dist/esm/message/index.mjs +3 -0
  187. package/dist/esm/message/index.mjs.map +1 -0
  188. package/dist/esm/message/index.native.js +3 -0
  189. package/dist/esm/message/index.native.js.map +1 -0
  190. package/dist/esm/providers/WalletProvider.mjs +9 -3
  191. package/dist/esm/providers/WalletProvider.mjs.map +1 -1
  192. package/dist/esm/siws/message.mjs +5 -16
  193. package/dist/esm/siws/message.mjs.map +1 -1
  194. package/dist/esm/siws/message.native.js +6 -16
  195. package/dist/esm/siws/message.native.js.map +1 -1
  196. package/dist/esm/solana.mjs.map +1 -1
  197. package/dist/esm/solana.native.js.map +1 -1
  198. package/dist/jsx/clients/evm.mjs +295 -12
  199. package/dist/jsx/clients/evm.mjs.map +1 -1
  200. package/dist/jsx/clients/evm.native.js +500 -12
  201. package/dist/jsx/clients/evm.native.js.map +1 -1
  202. package/dist/jsx/clients/index.mjs +2 -2
  203. package/dist/jsx/clients/index.mjs.map +1 -1
  204. package/dist/jsx/clients/index.native.js +5 -0
  205. package/dist/jsx/clients/index.native.js.map +1 -1
  206. package/dist/jsx/clients/solana.mjs +39 -21
  207. package/dist/jsx/clients/solana.mjs.map +1 -1
  208. package/dist/jsx/clients/solana.native.js +48 -23
  209. package/dist/jsx/clients/solana.native.js.map +1 -1
  210. package/dist/jsx/connectkit/GpgProvider.mjs +19 -0
  211. package/dist/jsx/connectkit/GpgProvider.mjs.map +1 -0
  212. package/dist/jsx/connectkit/GpgProvider.native.js +51 -0
  213. package/dist/jsx/connectkit/GpgProvider.native.js.map +1 -0
  214. package/dist/jsx/connectkit/adapters/BitcoinAdapter.mjs +5 -14
  215. package/dist/jsx/connectkit/adapters/BitcoinAdapter.mjs.map +1 -1
  216. package/dist/jsx/connectkit/adapters/BitcoinAdapter.native.js +5 -15
  217. package/dist/jsx/connectkit/adapters/BitcoinAdapter.native.js.map +1 -1
  218. package/dist/jsx/connectkit/adapters/EthereumAdapter.mjs +6 -15
  219. package/dist/jsx/connectkit/adapters/EthereumAdapter.mjs.map +1 -1
  220. package/dist/jsx/connectkit/adapters/EthereumAdapter.native.js +7 -16
  221. package/dist/jsx/connectkit/adapters/EthereumAdapter.native.js.map +1 -1
  222. package/dist/jsx/connectkit/adapters/SolanaAdapter.mjs +5 -14
  223. package/dist/jsx/connectkit/adapters/SolanaAdapter.mjs.map +1 -1
  224. package/dist/jsx/connectkit/adapters/SolanaAdapter.native.js +5 -15
  225. package/dist/jsx/connectkit/adapters/SolanaAdapter.native.js.map +1 -1
  226. package/dist/jsx/connectkit/adapters/SuiAdapter.mjs +5 -14
  227. package/dist/jsx/connectkit/adapters/SuiAdapter.mjs.map +1 -1
  228. package/dist/jsx/connectkit/adapters/SuiAdapter.native.js +5 -15
  229. package/dist/jsx/connectkit/adapters/SuiAdapter.native.js.map +1 -1
  230. package/dist/jsx/connectkit/connectors/createWalletMessage.mjs +1 -1
  231. package/dist/jsx/connectkit/connectors/createWalletMessage.native.js +2 -2
  232. package/dist/jsx/connectkit/index.mjs +3 -2
  233. package/dist/jsx/connectkit/index.mjs.map +1 -1
  234. package/dist/jsx/connectkit/index.native.js +4 -3
  235. package/dist/jsx/connectkit/index.native.js.map +1 -1
  236. package/dist/jsx/connectkit/siwe/SIWEContext.mjs.map +1 -1
  237. package/dist/jsx/connectkit/siwe/SIWEContext.native.js.map +1 -1
  238. package/dist/jsx/connectkit/siwe/SIWEProvider.mjs +19 -4
  239. package/dist/jsx/connectkit/siwe/SIWEProvider.mjs.map +1 -1
  240. package/dist/jsx/connectkit/siwe/SIWEProvider.native.js +18 -3
  241. package/dist/jsx/connectkit/siwe/SIWEProvider.native.js.map +1 -1
  242. package/dist/jsx/index.js +1 -0
  243. package/dist/jsx/index.js.map +1 -1
  244. package/dist/jsx/index.mjs +1 -0
  245. package/dist/jsx/index.mjs.map +1 -1
  246. package/dist/jsx/index.native.js +1 -0
  247. package/dist/jsx/index.native.js.map +1 -1
  248. package/dist/jsx/keycloak/KeycloakWalletLogin.mjs +218 -0
  249. package/dist/jsx/keycloak/KeycloakWalletLogin.mjs.map +1 -0
  250. package/dist/jsx/keycloak/KeycloakWalletLogin.native.js +33 -0
  251. package/dist/jsx/keycloak/KeycloakWalletLogin.native.js.map +1 -0
  252. package/dist/jsx/keycloak/browserFlow.mjs +58 -0
  253. package/dist/jsx/keycloak/browserFlow.mjs.map +1 -0
  254. package/dist/jsx/keycloak/browserFlow.native.js +90 -0
  255. package/dist/jsx/keycloak/browserFlow.native.js.map +1 -0
  256. package/dist/jsx/keycloak/device.mjs +10 -0
  257. package/dist/jsx/keycloak/device.mjs.map +1 -0
  258. package/dist/jsx/keycloak/device.native.js +45 -0
  259. package/dist/jsx/keycloak/device.native.js.map +1 -0
  260. package/dist/jsx/keycloak/directGrant.mjs +164 -0
  261. package/dist/jsx/keycloak/directGrant.mjs.map +1 -0
  262. package/dist/jsx/keycloak/directGrant.native.js +233 -0
  263. package/dist/jsx/keycloak/directGrant.native.js.map +1 -0
  264. package/dist/jsx/keycloak/iife.mjs +5 -0
  265. package/dist/jsx/keycloak/iife.mjs.map +1 -0
  266. package/dist/jsx/keycloak/iife.native.js +7 -0
  267. package/dist/jsx/keycloak/iife.native.js.map +1 -0
  268. package/dist/jsx/keycloak/index.mjs +13 -0
  269. package/dist/jsx/keycloak/index.mjs.map +1 -0
  270. package/dist/jsx/keycloak/index.native.js +56 -0
  271. package/dist/jsx/keycloak/index.native.js.map +1 -0
  272. package/dist/jsx/keycloak/keycloakWallet.mjs +186 -0
  273. package/dist/jsx/keycloak/keycloakWallet.mjs.map +1 -0
  274. package/dist/jsx/keycloak/keycloakWallet.native.js +285 -0
  275. package/dist/jsx/keycloak/keycloakWallet.native.js.map +1 -0
  276. package/dist/jsx/keycloak/mount.mjs +28 -0
  277. package/dist/jsx/keycloak/mount.mjs.map +1 -0
  278. package/dist/jsx/keycloak/mount.native.js +33 -0
  279. package/dist/jsx/keycloak/mount.native.js.map +1 -0
  280. package/dist/jsx/keycloak/registerWallet.mjs +49 -0
  281. package/dist/jsx/keycloak/registerWallet.mjs.map +1 -0
  282. package/dist/jsx/keycloak/registerWallet.native.js +81 -0
  283. package/dist/jsx/keycloak/registerWallet.native.js.map +1 -0
  284. package/dist/jsx/keycloak/types.mjs +20 -0
  285. package/dist/jsx/keycloak/types.mjs.map +1 -0
  286. package/dist/jsx/keycloak/types.native.js +179 -0
  287. package/dist/jsx/keycloak/types.native.js.map +1 -0
  288. package/dist/jsx/keycloak/useDirectLogin.mjs +32 -0
  289. package/dist/jsx/keycloak/useDirectLogin.mjs.map +1 -0
  290. package/dist/jsx/keycloak/useDirectLogin.native.js +77 -0
  291. package/dist/jsx/keycloak/useDirectLogin.native.js.map +1 -0
  292. package/dist/jsx/keycloak/useWalletLogin.mjs +72 -0
  293. package/dist/jsx/keycloak/useWalletLogin.mjs.map +1 -0
  294. package/dist/jsx/keycloak/useWalletLogin.native.js +33 -0
  295. package/dist/jsx/keycloak/useWalletLogin.native.js.map +1 -0
  296. package/dist/jsx/message/buildWalletMessage.mjs +87 -0
  297. package/dist/jsx/message/buildWalletMessage.mjs.map +1 -0
  298. package/dist/jsx/message/buildWalletMessage.native.js +121 -0
  299. package/dist/jsx/message/buildWalletMessage.native.js.map +1 -0
  300. package/dist/jsx/message/index.mjs +3 -0
  301. package/dist/jsx/message/index.mjs.map +1 -0
  302. package/dist/jsx/message/index.native.js +32 -0
  303. package/dist/jsx/message/index.native.js.map +1 -0
  304. package/dist/jsx/providers/WalletProvider.mjs +9 -3
  305. package/dist/jsx/providers/WalletProvider.mjs.map +1 -1
  306. package/dist/jsx/siws/message.mjs +5 -16
  307. package/dist/jsx/siws/message.mjs.map +1 -1
  308. package/dist/jsx/siws/message.native.js +6 -16
  309. package/dist/jsx/siws/message.native.js.map +1 -1
  310. package/dist/jsx/solana.mjs.map +1 -1
  311. package/dist/jsx/solana.native.js.map +1 -1
  312. package/dist/keycloak/login.iife.js +3604 -0
  313. package/package.json +27 -8
  314. package/src/clients/evm.spec.ts +644 -10
  315. package/src/clients/evm.ts +498 -10
  316. package/src/clients/index.ts +8 -0
  317. package/src/clients/solana.spec.ts +116 -0
  318. package/src/clients/solana.ts +51 -31
  319. package/src/connectkit/GpgProvider.tsx +16 -0
  320. package/src/connectkit/adapters/BitcoinAdapter.ts +5 -16
  321. package/src/connectkit/adapters/EthereumAdapter.ts +6 -17
  322. package/src/connectkit/adapters/SolanaAdapter.ts +5 -16
  323. package/src/connectkit/adapters/SuiAdapter.ts +5 -16
  324. package/src/connectkit/connectors/createWalletMessage.ts +1 -1
  325. package/src/connectkit/index.ts +2 -6
  326. package/src/connectkit/openConnector/modal.spec.tsx +1 -1
  327. package/src/connectkit/siwe/SIWEContext.tsx +6 -2
  328. package/src/connectkit/siwe/SIWEProvider.tsx +22 -5
  329. package/src/index.ts +3 -0
  330. package/src/keycloak/KeycloakWalletLogin.native.tsx +7 -0
  331. package/src/keycloak/KeycloakWalletLogin.spec.tsx +168 -0
  332. package/src/keycloak/KeycloakWalletLogin.tsx +251 -0
  333. package/src/keycloak/browserFlow.spec.ts +108 -0
  334. package/src/keycloak/browserFlow.ts +84 -0
  335. package/src/keycloak/device.ts +17 -0
  336. package/src/keycloak/directGrant.spec.ts +331 -0
  337. package/src/keycloak/directGrant.ts +214 -0
  338. package/src/keycloak/iife.ts +3 -0
  339. package/src/keycloak/index.ts +44 -0
  340. package/src/keycloak/keycloakWallet.spec.ts +216 -0
  341. package/src/keycloak/keycloakWallet.ts +275 -0
  342. package/src/keycloak/mount.native.ts +11 -0
  343. package/src/keycloak/mount.tsx +45 -0
  344. package/src/keycloak/nonceReset.spec.tsx +205 -0
  345. package/src/keycloak/registerWallet.spec.ts +88 -0
  346. package/src/keycloak/registerWallet.ts +59 -0
  347. package/src/keycloak/types.ts +66 -0
  348. package/src/keycloak/useDirectLogin.spec.tsx +112 -0
  349. package/src/keycloak/useDirectLogin.ts +74 -0
  350. package/src/keycloak/useWalletLogin.native.ts +7 -0
  351. package/src/keycloak/useWalletLogin.ts +99 -0
  352. package/src/message/buildWalletMessage.spec.ts +291 -0
  353. package/src/message/buildWalletMessage.ts +150 -0
  354. package/src/message/index.ts +8 -0
  355. package/src/providers/WalletProvider.tsx +15 -2
  356. package/src/siws/message.ts +3 -22
  357. package/src/solana.ts +1 -0
  358. package/types/clients/evm.d.ts +144 -2
  359. package/types/clients/evm.d.ts.map +1 -1
  360. package/types/clients/index.d.ts +1 -1
  361. package/types/clients/index.d.ts.map +1 -1
  362. package/types/clients/solana.d.ts +14 -5
  363. package/types/clients/solana.d.ts.map +1 -1
  364. package/types/connectkit/GpgProvider.d.ts +10 -0
  365. package/types/connectkit/GpgProvider.d.ts.map +1 -0
  366. package/types/connectkit/adapters/BitcoinAdapter.d.ts.map +1 -1
  367. package/types/connectkit/adapters/EthereumAdapter.d.ts.map +1 -1
  368. package/types/connectkit/adapters/SolanaAdapter.d.ts.map +1 -1
  369. package/types/connectkit/adapters/SuiAdapter.d.ts.map +1 -1
  370. package/types/connectkit/connectors/createWalletMessage.d.ts +1 -1
  371. package/types/connectkit/connectors/createWalletMessage.d.ts.map +1 -1
  372. package/types/connectkit/index.d.ts +3 -2
  373. package/types/connectkit/index.d.ts.map +1 -1
  374. package/types/connectkit/siwe/SIWEContext.d.ts +2 -1
  375. package/types/connectkit/siwe/SIWEContext.d.ts.map +1 -1
  376. package/types/connectkit/siwe/SIWEProvider.d.ts.map +1 -1
  377. package/types/index.d.ts +1 -0
  378. package/types/index.d.ts.map +1 -1
  379. package/types/keycloak/KeycloakWalletLogin.d.ts +45 -0
  380. package/types/keycloak/KeycloakWalletLogin.d.ts.map +1 -0
  381. package/types/keycloak/KeycloakWalletLogin.native.d.ts +4 -0
  382. package/types/keycloak/KeycloakWalletLogin.native.d.ts.map +1 -0
  383. package/types/keycloak/browserFlow.d.ts +27 -0
  384. package/types/keycloak/browserFlow.d.ts.map +1 -0
  385. package/types/keycloak/device.d.ts +14 -0
  386. package/types/keycloak/device.d.ts.map +1 -0
  387. package/types/keycloak/directGrant.d.ts +43 -0
  388. package/types/keycloak/directGrant.d.ts.map +1 -0
  389. package/types/keycloak/iife.d.ts +2 -0
  390. package/types/keycloak/iife.d.ts.map +1 -0
  391. package/types/keycloak/index.d.ts +12 -0
  392. package/types/keycloak/index.d.ts.map +1 -0
  393. package/types/keycloak/keycloakWallet.d.ts +120 -0
  394. package/types/keycloak/keycloakWallet.d.ts.map +1 -0
  395. package/types/keycloak/mount.d.ts +16 -0
  396. package/types/keycloak/mount.d.ts.map +1 -0
  397. package/types/keycloak/mount.native.d.ts +5 -0
  398. package/types/keycloak/mount.native.d.ts.map +1 -0
  399. package/types/keycloak/registerWallet.d.ts +22 -0
  400. package/types/keycloak/registerWallet.d.ts.map +1 -0
  401. package/types/keycloak/types.d.ts +50 -0
  402. package/types/keycloak/types.d.ts.map +1 -0
  403. package/types/keycloak/useDirectLogin.d.ts +29 -0
  404. package/types/keycloak/useDirectLogin.d.ts.map +1 -0
  405. package/types/keycloak/useWalletLogin.d.ts +26 -0
  406. package/types/keycloak/useWalletLogin.d.ts.map +1 -0
  407. package/types/keycloak/useWalletLogin.native.d.ts +4 -0
  408. package/types/keycloak/useWalletLogin.native.d.ts.map +1 -0
  409. package/types/message/buildWalletMessage.d.ts +46 -0
  410. package/types/message/buildWalletMessage.d.ts.map +1 -0
  411. package/types/message/index.d.ts +2 -0
  412. package/types/message/index.d.ts.map +1 -0
  413. package/types/providers/WalletProvider.d.ts +8 -1
  414. package/types/providers/WalletProvider.d.ts.map +1 -1
  415. package/types/siws/message.d.ts.map +1 -1
  416. package/types/solana.d.ts +1 -1
  417. package/types/solana.d.ts.map +1 -1
  418. package/dist/cjs/connectkit/adapters/messages.cjs +0 -73
  419. package/dist/cjs/connectkit/adapters/messages.native.js +0 -79
  420. package/dist/cjs/connectkit/adapters/messages.native.js.map +0 -1
  421. package/dist/esm/connectkit/adapters/messages.mjs +0 -48
  422. package/dist/esm/connectkit/adapters/messages.mjs.map +0 -1
  423. package/dist/esm/connectkit/adapters/messages.native.js +0 -51
  424. package/dist/esm/connectkit/adapters/messages.native.js.map +0 -1
  425. package/dist/jsx/connectkit/adapters/messages.mjs +0 -48
  426. package/dist/jsx/connectkit/adapters/messages.mjs.map +0 -1
  427. package/dist/jsx/connectkit/adapters/messages.native.js +0 -79
  428. package/dist/jsx/connectkit/adapters/messages.native.js.map +0 -1
  429. package/src/connectkit/adapters/messages.ts +0 -84
  430. package/types/connectkit/adapters/messages.d.ts +0 -16
  431. package/types/connectkit/adapters/messages.d.ts.map +0 -1
@@ -0,0 +1,214 @@
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 keycloakWallet_exports = {};
24
+ __export(keycloakWallet_exports, {
25
+ deriveKeycloakFromLocation: () => deriveKeycloakFromLocation,
26
+ keycloakWallet: () => keycloakWallet,
27
+ pkceChallenge: () => pkceChallenge,
28
+ toCredentials: () => toCredentials
29
+ });
30
+ module.exports = __toCommonJS(keycloakWallet_exports);
31
+ var import_viem = require("viem");
32
+ var import_base64 = require("../bridge/base64.cjs");
33
+ var import_createWalletMessage = require("../connectkit/connectors/createWalletMessage.cjs");
34
+ var import_message = require("../message/index.cjs");
35
+ var import_browserFlow = require("./browserFlow.cjs");
36
+ var import_directGrant = require("./directGrant.cjs");
37
+ var import_registerWallet = require("./registerWallet.cjs");
38
+ var import_types = require("./types.cjs");
39
+ const sessionCookie = /(KEYCLOAK_SESSION_[A-Z]+)=([^;,\s]+)/;
40
+ function readSessionCookie(res) {
41
+ const headers = res.headers;
42
+ const values = headers.getSetCookie?.() ?? [headers.get("set-cookie") ?? ""];
43
+ for (const value of values) {
44
+ const match = value.match(sessionCookie);
45
+ if (match) return `${match[1]}=${match[2]}`;
46
+ }
47
+ return void 0;
48
+ }
49
+ const base64Url = bytes => (0, import_base64.bytesToBase64)(bytes).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
50
+ function randomBase64Url(size) {
51
+ const crypto = globalThis.crypto;
52
+ if (!crypto?.getRandomValues) {
53
+ throw new Error("browserLoginUrl needs crypto.getRandomValues (react-native-get-random-values on Hermes)");
54
+ }
55
+ return base64Url(crypto.getRandomValues(new Uint8Array(size)));
56
+ }
57
+ function pkceChallenge(codeVerifier) {
58
+ return base64Url((0, import_viem.sha256)(new TextEncoder().encode(codeVerifier), "bytes"));
59
+ }
60
+ function toCredentials(args) {
61
+ return {
62
+ username: args.signature,
63
+ password: (0, import_base64.bytesToBase64)(new TextEncoder().encode(args.message)),
64
+ message: args.message
65
+ };
66
+ }
67
+ function keycloakWallet(options) {
68
+ const baseUrl = options.baseUrl.replace(/\/+$/, "");
69
+ const resource = options.resource ?? "siww";
70
+ const realmUrl = `${baseUrl}/realms/${encodeURIComponent(options.realm)}`;
71
+ const resourceUrl = `${realmUrl}/${resource}`;
72
+ const tokenUrl = `${realmUrl}/protocol/openid-connect/token`;
73
+ const fetchImpl = options.fetch ?? ((input, init) => globalThis.fetch(input, init));
74
+ let cookie;
75
+ let nonce;
76
+ const nonceListeners = /* @__PURE__ */new Set();
77
+ const request = (url, init = {}) => {
78
+ const headers = new Headers(init.headers);
79
+ if (cookie && !headers.has("cookie")) headers.set("cookie", cookie);
80
+ return fetchImpl(url, {
81
+ credentials: "include",
82
+ ...init,
83
+ headers
84
+ });
85
+ };
86
+ const fetchNonce = async () => {
87
+ const res = await request(`${resourceUrl}/nonce`);
88
+ if (!res.ok) {
89
+ throw new import_types.KeycloakWalletError(`Keycloak nonce request failed (${res.status})`, res.status);
90
+ }
91
+ cookie = readSessionCookie(res) ?? cookie;
92
+ const value = (await res.text()).trim();
93
+ if (!value) throw new import_types.KeycloakWalletError("Keycloak returned an empty nonce", res.status);
94
+ return value;
95
+ };
96
+ const kc = {
97
+ baseUrl,
98
+ realm: options.realm,
99
+ resource,
100
+ realmUrl,
101
+ resourceUrl,
102
+ tokenUrl,
103
+ request,
104
+ getNonce() {
105
+ if (!nonce) {
106
+ const pending = fetchNonce();
107
+ nonce = pending;
108
+ pending.catch(() => {
109
+ if (nonce === pending) nonce = void 0;
110
+ });
111
+ }
112
+ return nonce;
113
+ },
114
+ resetNonce() {
115
+ nonce = void 0;
116
+ for (const listener of nonceListeners) listener();
117
+ },
118
+ subscribeNonceReset(listener) {
119
+ nonceListeners.add(listener);
120
+ return () => {
121
+ nonceListeners.delete(listener);
122
+ };
123
+ },
124
+ createMessage({
125
+ nonce: value,
126
+ address,
127
+ chainId
128
+ }) {
129
+ return (0, import_createWalletMessage.createWalletMessage)({
130
+ address,
131
+ chainId,
132
+ nonce: value,
133
+ domain: options.domain,
134
+ uri: options.uri
135
+ });
136
+ },
137
+ gpgMessage({
138
+ nonce: value
139
+ }) {
140
+ return (0, import_message.buildWalletMessage)("gpg", {
141
+ nonce: value,
142
+ domain: options.domain,
143
+ uri: options.uri
144
+ });
145
+ },
146
+ siweConfig(onSign) {
147
+ return {
148
+ getNonce: () => kc.getNonce(),
149
+ createMessage: ({
150
+ nonce: value,
151
+ address,
152
+ chainId
153
+ }) => kc.createMessage({
154
+ nonce: value,
155
+ address,
156
+ chainId
157
+ }),
158
+ onSign,
159
+ subscribeNonceReset: kc.subscribeNonceReset,
160
+ verifyMessage: async () => true,
161
+ getSession: async () => null,
162
+ signOut: async () => true
163
+ };
164
+ },
165
+ gpgConfig(onSign) {
166
+ return {
167
+ getNonce: () => kc.getNonce(),
168
+ buildMessage: args => kc.gpgMessage(args),
169
+ onSign,
170
+ subscribeNonceReset: kc.subscribeNonceReset
171
+ };
172
+ },
173
+ browserFlow(opts) {
174
+ return (0, import_browserFlow.browserFlow)(opts);
175
+ },
176
+ directGrant(opts) {
177
+ return (0, import_directGrant.createDirectGrant)(kc, opts);
178
+ },
179
+ browserLoginUrl({
180
+ clientId,
181
+ redirectUri,
182
+ scope
183
+ }) {
184
+ const state = randomBase64Url(16);
185
+ const codeVerifier = randomBase64Url(32);
186
+ const params = new URLSearchParams({
187
+ client_id: clientId,
188
+ redirect_uri: redirectUri,
189
+ response_type: "code",
190
+ scope: Array.isArray(scope) ? scope.join(" ") : scope ?? "openid",
191
+ state,
192
+ code_challenge: pkceChallenge(codeVerifier),
193
+ code_challenge_method: "S256"
194
+ });
195
+ return {
196
+ url: `${realmUrl}/protocol/openid-connect/auth?${params}`,
197
+ state,
198
+ codeVerifier
199
+ };
200
+ },
201
+ registerWallet(opts) {
202
+ return (0, import_registerWallet.createWalletRegistration)(kc, opts);
203
+ }
204
+ };
205
+ return kc;
206
+ }
207
+ function deriveKeycloakFromLocation(location = globalThis.location) {
208
+ const match = location?.pathname.match(/^(.*)\/realms\/([^/]+)\//);
209
+ if (!location || !match) return void 0;
210
+ return {
211
+ baseUrl: location.origin + match[1],
212
+ realm: decodeURIComponent(match[2])
213
+ };
214
+ }
@@ -0,0 +1,285 @@
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 keycloakWallet_exports = {};
26
+ __export(keycloakWallet_exports, {
27
+ deriveKeycloakFromLocation: () => deriveKeycloakFromLocation,
28
+ keycloakWallet: () => keycloakWallet,
29
+ pkceChallenge: () => pkceChallenge,
30
+ toCredentials: () => toCredentials
31
+ });
32
+ module.exports = __toCommonJS(keycloakWallet_exports);
33
+ var import_viem = require("viem");
34
+ var import_base64 = require("../bridge/base64.native.js");
35
+ var import_createWalletMessage = require("../connectkit/connectors/createWalletMessage.native.js");
36
+ var import_message = require("../message/index.native.js");
37
+ var import_browserFlow = require("./browserFlow.native.js");
38
+ var import_directGrant = require("./directGrant.native.js");
39
+ var import_registerWallet = require("./registerWallet.native.js");
40
+ var import_types = require("./types.native.js");
41
+ var sessionCookie = /(KEYCLOAK_SESSION_[A-Z]+)=([^;,\s]+)/;
42
+ function readSessionCookie(res) {
43
+ var _ref, _headers_get;
44
+ var _headers_getSetCookie;
45
+ var headers = res.headers;
46
+ var values = (_ref = (_headers_getSetCookie = headers.getSetCookie) === null || _headers_getSetCookie === void 0 ? void 0 : _headers_getSetCookie.call(headers)) !== null && _ref !== void 0 ? _ref : [(_headers_get = headers.get("set-cookie")) !== null && _headers_get !== void 0 ? _headers_get : ""];
47
+ var _iteratorNormalCompletion = true,
48
+ _didIteratorError = false,
49
+ _iteratorError = void 0;
50
+ try {
51
+ for (var _iterator = values[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
52
+ var value = _step.value;
53
+ var match = value.match(sessionCookie);
54
+ if (match) return `${match[1]}=${match[2]}`;
55
+ }
56
+ } catch (err) {
57
+ _didIteratorError = true;
58
+ _iteratorError = err;
59
+ } finally {
60
+ try {
61
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
62
+ _iterator.return();
63
+ }
64
+ } finally {
65
+ if (_didIteratorError) {
66
+ throw _iteratorError;
67
+ }
68
+ }
69
+ }
70
+ return void 0;
71
+ }
72
+ var base64Url = function base64Url2(bytes) {
73
+ return (0, import_base64.bytesToBase64)(bytes).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
74
+ };
75
+ function randomBase64Url(size) {
76
+ var crypto = globalThis.crypto;
77
+ if (!(crypto === null || crypto === void 0 ? void 0 : crypto.getRandomValues)) {
78
+ throw new Error("browserLoginUrl needs crypto.getRandomValues (react-native-get-random-values on Hermes)");
79
+ }
80
+ return base64Url(crypto.getRandomValues(new Uint8Array(size)));
81
+ }
82
+ function pkceChallenge(codeVerifier) {
83
+ return base64Url((0, import_viem.sha256)(new TextEncoder().encode(codeVerifier), "bytes"));
84
+ }
85
+ function toCredentials(args) {
86
+ return {
87
+ username: args.signature,
88
+ password: (0, import_base64.bytesToBase64)(new TextEncoder().encode(args.message)),
89
+ message: args.message
90
+ };
91
+ }
92
+ function keycloakWallet(options) {
93
+ var _options_resource, _options_fetch;
94
+ var baseUrl = options.baseUrl.replace(/\/+$/, "");
95
+ var resource = (_options_resource = options.resource) !== null && _options_resource !== void 0 ? _options_resource : "siww";
96
+ var realmUrl = `${baseUrl}/realms/${encodeURIComponent(options.realm)}`;
97
+ var resourceUrl = `${realmUrl}/${resource}`;
98
+ var tokenUrl = `${realmUrl}/protocol/openid-connect/token`;
99
+ var fetchImpl = (_options_fetch = options.fetch) !== null && _options_fetch !== void 0 ? _options_fetch : function (input, init) {
100
+ return globalThis.fetch(input, init);
101
+ };
102
+ var cookie;
103
+ var nonce;
104
+ var nonceListeners = /* @__PURE__ */new Set();
105
+ var request = function request2(url) {
106
+ var init = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
107
+ var headers = new Headers(init.headers);
108
+ if (cookie && !headers.has("cookie")) headers.set("cookie", cookie);
109
+ return fetchImpl(url, {
110
+ credentials: "include",
111
+ ...init,
112
+ headers
113
+ });
114
+ };
115
+ var fetchNonce = async function fetchNonce2() {
116
+ var _readSessionCookie;
117
+ var res = await request(`${resourceUrl}/nonce`);
118
+ if (!res.ok) {
119
+ throw new import_types.KeycloakWalletError(`Keycloak nonce request failed (${res.status})`, res.status);
120
+ }
121
+ cookie = (_readSessionCookie = readSessionCookie(res)) !== null && _readSessionCookie !== void 0 ? _readSessionCookie : cookie;
122
+ var value = (await res.text()).trim();
123
+ if (!value) throw new import_types.KeycloakWalletError("Keycloak returned an empty nonce", res.status);
124
+ return value;
125
+ };
126
+ var kc = {
127
+ baseUrl,
128
+ realm: options.realm,
129
+ resource,
130
+ realmUrl,
131
+ resourceUrl,
132
+ tokenUrl,
133
+ request,
134
+ getNonce() {
135
+ if (!nonce) {
136
+ var pending = fetchNonce();
137
+ nonce = pending;
138
+ pending.catch(function () {
139
+ if (nonce === pending) nonce = void 0;
140
+ });
141
+ }
142
+ return nonce;
143
+ },
144
+ resetNonce() {
145
+ nonce = void 0;
146
+ var _iteratorNormalCompletion = true,
147
+ _didIteratorError = false,
148
+ _iteratorError = void 0;
149
+ try {
150
+ for (var _iterator = nonceListeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
151
+ var listener = _step.value;
152
+ listener();
153
+ }
154
+ } catch (err) {
155
+ _didIteratorError = true;
156
+ _iteratorError = err;
157
+ } finally {
158
+ try {
159
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
160
+ _iterator.return();
161
+ }
162
+ } finally {
163
+ if (_didIteratorError) {
164
+ throw _iteratorError;
165
+ }
166
+ }
167
+ }
168
+ },
169
+ subscribeNonceReset(listener) {
170
+ nonceListeners.add(listener);
171
+ return function () {
172
+ nonceListeners.delete(listener);
173
+ };
174
+ },
175
+ createMessage(param) {
176
+ var {
177
+ nonce: value,
178
+ address,
179
+ chainId
180
+ } = param;
181
+ return (0, import_createWalletMessage.createWalletMessage)({
182
+ address,
183
+ chainId,
184
+ nonce: value,
185
+ domain: options.domain,
186
+ uri: options.uri
187
+ });
188
+ },
189
+ gpgMessage(param) {
190
+ var {
191
+ nonce: value
192
+ } = param;
193
+ return (0, import_message.buildWalletMessage)("gpg", {
194
+ nonce: value,
195
+ domain: options.domain,
196
+ uri: options.uri
197
+ });
198
+ },
199
+ siweConfig(onSign) {
200
+ return {
201
+ getNonce: function getNonce() {
202
+ return kc.getNonce();
203
+ },
204
+ createMessage: function createMessage(param) {
205
+ var {
206
+ nonce: value,
207
+ address,
208
+ chainId
209
+ } = param;
210
+ return kc.createMessage({
211
+ nonce: value,
212
+ address,
213
+ chainId
214
+ });
215
+ },
216
+ onSign,
217
+ subscribeNonceReset: kc.subscribeNonceReset,
218
+ verifyMessage: async function verifyMessage() {
219
+ return true;
220
+ },
221
+ getSession: async function getSession() {
222
+ return null;
223
+ },
224
+ signOut: async function signOut() {
225
+ return true;
226
+ }
227
+ };
228
+ },
229
+ gpgConfig(onSign) {
230
+ return {
231
+ getNonce: function getNonce() {
232
+ return kc.getNonce();
233
+ },
234
+ buildMessage: function buildMessage(args) {
235
+ return kc.gpgMessage(args);
236
+ },
237
+ onSign,
238
+ subscribeNonceReset: kc.subscribeNonceReset
239
+ };
240
+ },
241
+ browserFlow(opts) {
242
+ return (0, import_browserFlow.browserFlow)(opts);
243
+ },
244
+ directGrant(opts) {
245
+ return (0, import_directGrant.createDirectGrant)(kc, opts);
246
+ },
247
+ browserLoginUrl(param) {
248
+ var {
249
+ clientId,
250
+ redirectUri,
251
+ scope
252
+ } = param;
253
+ var state = randomBase64Url(16);
254
+ var codeVerifier = randomBase64Url(32);
255
+ var params = new URLSearchParams({
256
+ client_id: clientId,
257
+ redirect_uri: redirectUri,
258
+ response_type: "code",
259
+ scope: Array.isArray(scope) ? scope.join(" ") : scope !== null && scope !== void 0 ? scope : "openid",
260
+ state,
261
+ code_challenge: pkceChallenge(codeVerifier),
262
+ code_challenge_method: "S256"
263
+ });
264
+ return {
265
+ url: `${realmUrl}/protocol/openid-connect/auth?${params}`,
266
+ state,
267
+ codeVerifier
268
+ };
269
+ },
270
+ registerWallet(opts) {
271
+ return (0, import_registerWallet.createWalletRegistration)(kc, opts);
272
+ }
273
+ };
274
+ return kc;
275
+ }
276
+ function deriveKeycloakFromLocation() {
277
+ var location = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : globalThis.location;
278
+ var match = location === null || location === void 0 ? void 0 : location.pathname.match(/^(.*)\/realms\/([^/]+)\//);
279
+ if (!location || !match) return void 0;
280
+ return {
281
+ baseUrl: location.origin + match[1],
282
+ realm: decodeURIComponent(match[2])
283
+ };
284
+ }
285
+ //# sourceMappingURL=keycloakWallet.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","keycloakWallet_exports","__export","deriveKeycloakFromLocation","keycloakWallet","pkceChallenge","toCredentials","module","exports","import_viem","require","import_base64","import_createWalletMessage","import_message","import_browserFlow","import_directGrant","import_registerWallet","import_types","sessionCookie","readSessionCookie","res","_ref","_headers_get","_headers_getSetCookie","headers","values","getSetCookie","call","get","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","match","err","return","base64Url","base64Url2","bytes","bytesToBase64","replace","randomBase64Url","size","crypto","globalThis","getRandomValues","Error","Uint8Array","codeVerifier","sha256","TextEncoder","encode","args","username","signature","password","message","options","_options_resource","_options_fetch","baseUrl","resource","realmUrl","encodeURIComponent","realm","resourceUrl","tokenUrl","fetchImpl","fetch","input","init","cookie","nonce","nonceListeners","Set","request","request2","url","arguments","length","Headers","has","set","credentials","fetchNonce","fetchNonce2","_readSessionCookie","ok","KeycloakWalletError","status","text","trim","kc","getNonce","pending","catch","resetNonce","listener","subscribeNonceReset","add","delete","createMessage","param","address","chainId","createWalletMessage","domain","uri","gpgMessage","buildWalletMessage"],"sources":["../../../src/keycloak/keycloakWallet.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,53 @@
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 mount_exports = {};
24
+ __export(mount_exports, {
25
+ mount: () => mount
26
+ });
27
+ module.exports = __toCommonJS(mount_exports);
28
+ var import_client = require("react-dom/client");
29
+ var import_KeycloakWalletLogin = require("./KeycloakWalletLogin.cjs");
30
+ var import_jsx_runtime = require("react/jsx-runtime");
31
+ const mounted = /* @__PURE__ */new WeakMap();
32
+ function mount(target, opts = {}) {
33
+ const el = typeof target === "string" ? document.querySelector(target) : target;
34
+ if (!el) throw new Error(`MpoKeycloakWallet.mount: nothing matches ${String(target)}`);
35
+ const existing = mounted.get(el);
36
+ if (existing) return existing;
37
+ const config = opts.wagmiConfig ?? (0, import_KeycloakWalletLogin.createKeycloakWalletConfig)(opts);
38
+ const root = (0, import_client.createRoot)(el);
39
+ root.render(/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_KeycloakWalletLogin.KeycloakWalletLogin, {
40
+ ...opts,
41
+ wagmiConfig: config
42
+ }));
43
+ const handle = {
44
+ config,
45
+ unmount() {
46
+ if (mounted.get(el) !== handle) return;
47
+ mounted.delete(el);
48
+ root.unmount();
49
+ }
50
+ };
51
+ mounted.set(el, handle);
52
+ return handle;
53
+ }
@@ -0,0 +1,33 @@
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 mount_native_exports = {};
26
+ __export(mount_native_exports, {
27
+ mount: () => mount
28
+ });
29
+ module.exports = __toCommonJS(mount_native_exports);
30
+ function mount(_target, _opts) {
31
+ throw new Error("MpoKeycloakWallet.mount is web only");
32
+ }
33
+ //# sourceMappingURL=mount.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["mount_native_exports","__export","mount","module","exports","__toCommonJS","_target","_opts","Error"],"sources":["../../../src/keycloak/mount.native.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,oBAAA;AAAAC,QAAA,CAAAD,oBAAA;EAAAE,KAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAC,YAAA,CAAAL,oBAAA;AAAO,SAASE,MAAMI,OAAA,EAASC,KAAA,EAAO;EAClC,MAAM,IAAIC,KAAA,CAAM,qCAAqC;AACzD","ignoreList":[]}
@@ -0,0 +1,74 @@
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 registerWallet_exports = {};
24
+ __export(registerWallet_exports, {
25
+ createWalletRegistration: () => createWalletRegistration
26
+ });
27
+ module.exports = __toCommonJS(registerWallet_exports);
28
+ var import_types = require("./types.cjs");
29
+ function createWalletRegistration(kc, opts) {
30
+ const registration = {
31
+ async register({
32
+ message,
33
+ signature
34
+ }) {
35
+ const accessToken = typeof opts.accessToken === "function" ? await opts.accessToken() : opts.accessToken;
36
+ if (!accessToken) throw new Error("registerWallet needs a signed-in user's access token");
37
+ try {
38
+ const res = await kc.request(`${kc.resourceUrl}/register`, {
39
+ method: "POST",
40
+ headers: {
41
+ authorization: `Bearer ${accessToken}`,
42
+ "content-type": "application/json"
43
+ },
44
+ body: JSON.stringify({
45
+ message,
46
+ signature
47
+ })
48
+ });
49
+ const data = await res.json().catch(() => ({}));
50
+ if (!res.ok) {
51
+ throw new import_types.KeycloakWalletError(data.message || `Keycloak wallet register failed (${res.status})`, res.status, {
52
+ error: data.message
53
+ });
54
+ }
55
+ return {
56
+ registered: Boolean(data.registered)
57
+ };
58
+ } finally {
59
+ kc.resetNonce();
60
+ }
61
+ },
62
+ onSign: async ({
63
+ username,
64
+ message
65
+ }) => {
66
+ await registration.register({
67
+ message,
68
+ signature: username
69
+ });
70
+ return true;
71
+ }
72
+ };
73
+ return registration;
74
+ }