@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,205 @@
1
+ import { KeycloakWalletError, ProfileIncompleteError } from "./types.native.js";
2
+ function _instanceof(left, right) {
3
+ "@swc/helpers - instanceof";
4
+
5
+ if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
6
+ return !!right[Symbol.hasInstance](left);
7
+ } else {
8
+ return left instanceof right;
9
+ }
10
+ }
11
+ function refreshRefused(error) {
12
+ if (!_instanceof(error, KeycloakWalletError)) return false;
13
+ return error.status === 401 || error.status === 400 && error.error === "invalid_grant";
14
+ }
15
+ function profileIncomplete(status, data) {
16
+ var _data_error_description;
17
+ if (data.error === "resolve_required_actions") return true;
18
+ return status === 400 && data.error === "invalid_grant" && /not fully set up/i.test((_data_error_description = data.error_description) !== null && _data_error_description !== void 0 ? _data_error_description : "");
19
+ }
20
+ function createDirectGrant(kc, opts) {
21
+ var _opts_now, _opts_scope;
22
+ var now = (_opts_now = opts.now) !== null && _opts_now !== void 0 ? _opts_now : Date.now;
23
+ var scope = Array.isArray(opts.scope) ? opts.scope.join(" ") : (_opts_scope = opts.scope) !== null && _opts_scope !== void 0 ? _opts_scope : "openid";
24
+ var listeners = /* @__PURE__ */new Set();
25
+ var state = {
26
+ tokens: null,
27
+ error: null
28
+ };
29
+ var refreshing;
30
+ var setState = function setState2(next) {
31
+ state = next;
32
+ var _iteratorNormalCompletion = true,
33
+ _didIteratorError = false,
34
+ _iteratorError = void 0;
35
+ try {
36
+ for (var _iterator = listeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
37
+ var listener = _step.value;
38
+ listener(state);
39
+ }
40
+ } catch (err) {
41
+ _didIteratorError = true;
42
+ _iteratorError = err;
43
+ } finally {
44
+ try {
45
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
46
+ _iterator.return();
47
+ }
48
+ } finally {
49
+ if (_didIteratorError) {
50
+ throw _iteratorError;
51
+ }
52
+ }
53
+ }
54
+ };
55
+ var form = function form2(params) {
56
+ return new URLSearchParams({
57
+ client_id: opts.clientId,
58
+ ...params,
59
+ ...(opts.clientSecret ? {
60
+ client_secret: opts.clientSecret
61
+ } : {})
62
+ }).toString();
63
+ };
64
+ var tokenRequest = async function tokenRequest2(params) {
65
+ var _data_token_type, _data_expires_in;
66
+ var res = await kc.request(kc.tokenUrl, {
67
+ method: "POST",
68
+ headers: {
69
+ "content-type": "application/x-www-form-urlencoded"
70
+ },
71
+ body: form(params)
72
+ });
73
+ var data = await res.json().catch(function () {
74
+ return {};
75
+ });
76
+ if (!res.ok || !data.access_token) {
77
+ var Refusal = profileIncomplete(res.status, data) ? ProfileIncompleteError : KeycloakWalletError;
78
+ throw new Refusal(data.error_description || data.error || `Keycloak token request failed (${res.status})`, res.status, {
79
+ error: data.error,
80
+ errorDescription: data.error_description
81
+ });
82
+ }
83
+ var issuedAt = now();
84
+ return {
85
+ accessToken: data.access_token,
86
+ refreshToken: data.refresh_token,
87
+ idToken: data.id_token,
88
+ tokenType: (_data_token_type = data.token_type) !== null && _data_token_type !== void 0 ? _data_token_type : "Bearer",
89
+ scope: data.scope,
90
+ expiresAt: issuedAt + ((_data_expires_in = data.expires_in) !== null && _data_expires_in !== void 0 ? _data_expires_in : 0) * 1e3,
91
+ refreshExpiresAt: data.refresh_expires_in ? issuedAt + data.refresh_expires_in * 1e3 : void 0
92
+ };
93
+ };
94
+ var grant = {
95
+ get state() {
96
+ return state;
97
+ },
98
+ get tokens() {
99
+ return state.tokens;
100
+ },
101
+ async login(param) {
102
+ var {
103
+ username,
104
+ password
105
+ } = param;
106
+ try {
107
+ var tokens = await tokenRequest({
108
+ grant_type: "password",
109
+ username,
110
+ password,
111
+ scope
112
+ });
113
+ setState({
114
+ tokens,
115
+ error: null
116
+ });
117
+ return tokens;
118
+ } catch (error) {
119
+ setState({
120
+ tokens: state.tokens,
121
+ error
122
+ });
123
+ throw error;
124
+ } finally {
125
+ kc.resetNonce();
126
+ }
127
+ },
128
+ onSign: async function onSign(credentials) {
129
+ await grant.login(credentials);
130
+ return true;
131
+ },
132
+ refresh(refreshToken) {
133
+ var _state_tokens;
134
+ var token = refreshToken !== null && refreshToken !== void 0 ? refreshToken : (_state_tokens = state.tokens) === null || _state_tokens === void 0 ? void 0 : _state_tokens.refreshToken;
135
+ if (!token) return Promise.reject(new Error("no refresh token"));
136
+ if (!refreshing) {
137
+ var startedWith = state.tokens;
138
+ var superseded = function superseded2(error) {
139
+ if (state.tokens) return state.tokens;
140
+ throw error;
141
+ };
142
+ refreshing = tokenRequest({
143
+ grant_type: "refresh_token",
144
+ refresh_token: token
145
+ }).then(function (tokens) {
146
+ if (state.tokens !== startedWith) {
147
+ return superseded(new Error("signed out while the refresh was in flight"));
148
+ }
149
+ setState({
150
+ tokens,
151
+ error: null
152
+ });
153
+ return tokens;
154
+ }, function (error) {
155
+ if (state.tokens !== startedWith) return superseded(error);
156
+ setState({
157
+ tokens: refreshRefused(error) ? null : state.tokens,
158
+ error
159
+ });
160
+ throw error;
161
+ }).finally(function () {
162
+ refreshing = void 0;
163
+ });
164
+ }
165
+ return refreshing;
166
+ },
167
+ async getAccessToken() {
168
+ var {
169
+ minValiditySeconds = 30
170
+ } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
171
+ var tokens = state.tokens;
172
+ if (!tokens) return null;
173
+ if (tokens.expiresAt - minValiditySeconds * 1e3 > now()) return tokens.accessToken;
174
+ if (!tokens.refreshToken) return null;
175
+ return (await grant.refresh()).accessToken;
176
+ },
177
+ async logout() {
178
+ var _state_tokens;
179
+ var token = (_state_tokens = state.tokens) === null || _state_tokens === void 0 ? void 0 : _state_tokens.refreshToken;
180
+ setState({
181
+ tokens: null,
182
+ error: null
183
+ });
184
+ if (!token) return;
185
+ await kc.request(`${kc.realmUrl}/protocol/openid-connect/logout`, {
186
+ method: "POST",
187
+ headers: {
188
+ "content-type": "application/x-www-form-urlencoded"
189
+ },
190
+ body: form({
191
+ refresh_token: token
192
+ })
193
+ });
194
+ },
195
+ subscribe(listener) {
196
+ listeners.add(listener);
197
+ return function () {
198
+ listeners.delete(listener);
199
+ };
200
+ }
201
+ };
202
+ return grant;
203
+ }
204
+ export { createDirectGrant };
205
+ //# sourceMappingURL=directGrant.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["KeycloakWalletError","ProfileIncompleteError","_instanceof","left","right","Symbol","hasInstance","refreshRefused","error","status","profileIncomplete","data","_data_error_description","test","error_description","createDirectGrant","kc","opts","_opts_now","_opts_scope","now","Date","scope","Array","isArray","join","listeners","Set","state","tokens","refreshing","setState","setState2","next","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","done","listener","value","err","return","form","form2","params","URLSearchParams","client_id","clientId","clientSecret","client_secret","toString","tokenRequest","tokenRequest2","_data_token_type","_data_expires_in","res","request","tokenUrl","method","headers","body","json","catch","ok","access_token","Refusal","errorDescription","issuedAt","accessToken","refreshToken","refresh_token","idToken","id_token","tokenType","token_type","expiresAt","expires_in","refreshExpiresAt","refresh_expires_in","grant","login","param","username","password","grant_type","resetNonce","onSign","credentials","refresh","_state_tokens","token","Promise","reject","Error"],"sources":["../../../src/keycloak/directGrant.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ import { mount } from "./mount.mjs";
2
+ globalThis.MpoKeycloakWallet = {
3
+ mount
4
+ };
5
+ //# sourceMappingURL=iife.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["mount","globalThis","MpoKeycloakWallet"],"sources":["../../../src/keycloak/iife.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,KAAA,QAAa;AAErBC,UAAA,CAA+DC,iBAAA,GAAoB;EAAEF;AAAM","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ import { mount } from "./mount.native.js";
2
+ globalThis.MpoKeycloakWallet = {
3
+ mount
4
+ };
5
+ //# sourceMappingURL=iife.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["mount","globalThis","MpoKeycloakWallet"],"sources":["../../../src/keycloak/iife.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,KAAA,QAAa;AAErBC,UAAA,CAA+DC,iBAAA,GAAoB","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ import { keycloakWallet, deriveKeycloakFromLocation, toCredentials, pkceChallenge } from "./keycloakWallet.mjs";
2
+ import { browserFlow } from "./browserFlow.mjs";
3
+ import { createDirectGrant } from "./directGrant.mjs";
4
+ import { createWalletRegistration } from "./registerWallet.mjs";
5
+ import { useDirectLogin } from "./useDirectLogin.mjs";
6
+ import { useWalletLogin } from "./useWalletLogin.mjs";
7
+ import { KeycloakWalletLogin } from "./KeycloakWalletLogin.mjs";
8
+ import { mount } from "./mount.mjs";
9
+ import { hasUserActivation, isMobileBrowser } from "./device.mjs";
10
+ import { KeycloakWalletError, ProfileIncompleteError } from "./types.mjs";
11
+ import { StatusState } from "../connectkit/siwe/SIWEContext.mjs";
12
+ export { KeycloakWalletError, KeycloakWalletLogin, ProfileIncompleteError, StatusState, browserFlow, createDirectGrant, createWalletRegistration, deriveKeycloakFromLocation, hasUserActivation, isMobileBrowser, keycloakWallet, mount, pkceChallenge, toCredentials, useDirectLogin, useWalletLogin };
13
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["keycloakWallet","deriveKeycloakFromLocation","toCredentials","pkceChallenge","browserFlow","createDirectGrant","createWalletRegistration","useDirectLogin","useWalletLogin","KeycloakWalletLogin","mount","hasUserActivation","isMobileBrowser","KeycloakWalletError","ProfileIncompleteError","StatusState"],"sources":["../../../src/keycloak/index.ts"],"sourcesContent":[null],"mappings":"AAAA,SACEA,cAAA,EACAC,0BAAA,EACAC,aAAA,EACAC,aAAA,QAKK;AACP,SAASC,WAAA,QAA4C;AACrD,SACEC,iBAAA,QAIK;AACP,SACEC,wBAAA,QAGK;AACP,SACEC,cAAA,QAGK;AACP,SACEC,cAAA,QAGK;AACP,SAASC,mBAAA,QAA0D;AACnE,SAASC,KAAA,QAA8C;AACvD,SAASC,iBAAA,EAAmBC,eAAA,QAAuB;AACnD,SACEC,mBAAA,EACAC,sBAAA,QAKK;AACP,SAASC,WAAA,QAAmB","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ import { keycloakWallet, deriveKeycloakFromLocation, toCredentials, pkceChallenge } from "./keycloakWallet.native.js";
2
+ import { browserFlow } from "./browserFlow.native.js";
3
+ import { createDirectGrant } from "./directGrant.native.js";
4
+ import { createWalletRegistration } from "./registerWallet.native.js";
5
+ import { useDirectLogin } from "./useDirectLogin.native.js";
6
+ import { useWalletLogin } from "./useWalletLogin.native.js";
7
+ import { KeycloakWalletLogin } from "./KeycloakWalletLogin.native.js";
8
+ import { mount } from "./mount.native.js";
9
+ import { hasUserActivation, isMobileBrowser } from "./device.native.js";
10
+ import { KeycloakWalletError, ProfileIncompleteError } from "./types.native.js";
11
+ import { StatusState } from "../connectkit/siwe/SIWEContext.native.js";
12
+ export { KeycloakWalletError, KeycloakWalletLogin, ProfileIncompleteError, StatusState, browserFlow, createDirectGrant, createWalletRegistration, deriveKeycloakFromLocation, hasUserActivation, isMobileBrowser, keycloakWallet, mount, pkceChallenge, toCredentials, useDirectLogin, useWalletLogin };
13
+ //# sourceMappingURL=index.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["keycloakWallet","deriveKeycloakFromLocation","toCredentials","pkceChallenge","browserFlow","createDirectGrant","createWalletRegistration","useDirectLogin","useWalletLogin","KeycloakWalletLogin","mount","hasUserActivation","isMobileBrowser","KeycloakWalletError","ProfileIncompleteError","StatusState"],"sources":["../../../src/keycloak/index.ts"],"sourcesContent":[null],"mappings":"AAAA,SAAAA,cAAA,EAAAC,0BAAA,EAAAC,aAAA,EAAAC,aAAA;AAAA,SACEC,WAAA;AAAA,SACAC,iBAAA;AAAA,SACAC,wBAAA;AAAA,SACAC,cAAA;AAAA,SAKKC,cAAA;AACP,SAASC,mBAA4C;AACrD,SAAAC,KAAA;AAAA,SACEC,iBAAA,EAAAC,eAAA;AAAA,SAIKC,mBAAA,EAAAC,sBAAA;AACP,SAAAC,WAAA;AAAA,SACEF,mBAGK,EACPJ,mBAAA,EACEK,sBAAA,EAAAC,WAGK,EACPX,WAAA,EACEC,iBAAA,EAAAC,wBAGK,EACPL,0BAAS,EACTU,iBAAS,EACTC,eAAS,EACTZ,cAAA,EACEU,KAAA,EACAP,aAAA,EAAAD,aAKK,EACPK,cAAS,E","ignoreList":[]}
@@ -0,0 +1,186 @@
1
+ import { sha256 } from "viem";
2
+ import { bytesToBase64 } from "../bridge/base64.mjs";
3
+ import { createWalletMessage } from "../connectkit/connectors/createWalletMessage.mjs";
4
+ import { buildWalletMessage } from "../message/index.mjs";
5
+ import { browserFlow } from "./browserFlow.mjs";
6
+ import { createDirectGrant } from "./directGrant.mjs";
7
+ import { createWalletRegistration } from "./registerWallet.mjs";
8
+ import { KeycloakWalletError } from "./types.mjs";
9
+ const sessionCookie = /(KEYCLOAK_SESSION_[A-Z]+)=([^;,\s]+)/;
10
+ function readSessionCookie(res) {
11
+ const headers = res.headers;
12
+ const values = headers.getSetCookie?.() ?? [headers.get("set-cookie") ?? ""];
13
+ for (const value of values) {
14
+ const match = value.match(sessionCookie);
15
+ if (match) return `${match[1]}=${match[2]}`;
16
+ }
17
+ return void 0;
18
+ }
19
+ const base64Url = bytes => bytesToBase64(bytes).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
20
+ function randomBase64Url(size) {
21
+ const crypto = globalThis.crypto;
22
+ if (!crypto?.getRandomValues) {
23
+ throw new Error("browserLoginUrl needs crypto.getRandomValues (react-native-get-random-values on Hermes)");
24
+ }
25
+ return base64Url(crypto.getRandomValues(new Uint8Array(size)));
26
+ }
27
+ function pkceChallenge(codeVerifier) {
28
+ return base64Url(sha256(new TextEncoder().encode(codeVerifier), "bytes"));
29
+ }
30
+ function toCredentials(args) {
31
+ return {
32
+ username: args.signature,
33
+ password: bytesToBase64(new TextEncoder().encode(args.message)),
34
+ message: args.message
35
+ };
36
+ }
37
+ function keycloakWallet(options) {
38
+ const baseUrl = options.baseUrl.replace(/\/+$/, "");
39
+ const resource = options.resource ?? "siww";
40
+ const realmUrl = `${baseUrl}/realms/${encodeURIComponent(options.realm)}`;
41
+ const resourceUrl = `${realmUrl}/${resource}`;
42
+ const tokenUrl = `${realmUrl}/protocol/openid-connect/token`;
43
+ const fetchImpl = options.fetch ?? ((input, init) => globalThis.fetch(input, init));
44
+ let cookie;
45
+ let nonce;
46
+ const nonceListeners = /* @__PURE__ */new Set();
47
+ const request = (url, init = {}) => {
48
+ const headers = new Headers(init.headers);
49
+ if (cookie && !headers.has("cookie")) headers.set("cookie", cookie);
50
+ return fetchImpl(url, {
51
+ credentials: "include",
52
+ ...init,
53
+ headers
54
+ });
55
+ };
56
+ const fetchNonce = async () => {
57
+ const res = await request(`${resourceUrl}/nonce`);
58
+ if (!res.ok) {
59
+ throw new KeycloakWalletError(`Keycloak nonce request failed (${res.status})`, res.status);
60
+ }
61
+ cookie = readSessionCookie(res) ?? cookie;
62
+ const value = (await res.text()).trim();
63
+ if (!value) throw new KeycloakWalletError("Keycloak returned an empty nonce", res.status);
64
+ return value;
65
+ };
66
+ const kc = {
67
+ baseUrl,
68
+ realm: options.realm,
69
+ resource,
70
+ realmUrl,
71
+ resourceUrl,
72
+ tokenUrl,
73
+ request,
74
+ getNonce() {
75
+ if (!nonce) {
76
+ const pending = fetchNonce();
77
+ nonce = pending;
78
+ pending.catch(() => {
79
+ if (nonce === pending) nonce = void 0;
80
+ });
81
+ }
82
+ return nonce;
83
+ },
84
+ resetNonce() {
85
+ nonce = void 0;
86
+ for (const listener of nonceListeners) listener();
87
+ },
88
+ subscribeNonceReset(listener) {
89
+ nonceListeners.add(listener);
90
+ return () => {
91
+ nonceListeners.delete(listener);
92
+ };
93
+ },
94
+ createMessage({
95
+ nonce: value,
96
+ address,
97
+ chainId
98
+ }) {
99
+ return createWalletMessage({
100
+ address,
101
+ chainId,
102
+ nonce: value,
103
+ domain: options.domain,
104
+ uri: options.uri
105
+ });
106
+ },
107
+ gpgMessage({
108
+ nonce: value
109
+ }) {
110
+ return buildWalletMessage("gpg", {
111
+ nonce: value,
112
+ domain: options.domain,
113
+ uri: options.uri
114
+ });
115
+ },
116
+ siweConfig(onSign) {
117
+ return {
118
+ getNonce: () => kc.getNonce(),
119
+ createMessage: ({
120
+ nonce: value,
121
+ address,
122
+ chainId
123
+ }) => kc.createMessage({
124
+ nonce: value,
125
+ address,
126
+ chainId
127
+ }),
128
+ onSign,
129
+ subscribeNonceReset: kc.subscribeNonceReset,
130
+ verifyMessage: async () => true,
131
+ getSession: async () => null,
132
+ signOut: async () => true
133
+ };
134
+ },
135
+ gpgConfig(onSign) {
136
+ return {
137
+ getNonce: () => kc.getNonce(),
138
+ buildMessage: args => kc.gpgMessage(args),
139
+ onSign,
140
+ subscribeNonceReset: kc.subscribeNonceReset
141
+ };
142
+ },
143
+ browserFlow(opts) {
144
+ return browserFlow(opts);
145
+ },
146
+ directGrant(opts) {
147
+ return createDirectGrant(kc, opts);
148
+ },
149
+ browserLoginUrl({
150
+ clientId,
151
+ redirectUri,
152
+ scope
153
+ }) {
154
+ const state = randomBase64Url(16);
155
+ const codeVerifier = randomBase64Url(32);
156
+ const params = new URLSearchParams({
157
+ client_id: clientId,
158
+ redirect_uri: redirectUri,
159
+ response_type: "code",
160
+ scope: Array.isArray(scope) ? scope.join(" ") : scope ?? "openid",
161
+ state,
162
+ code_challenge: pkceChallenge(codeVerifier),
163
+ code_challenge_method: "S256"
164
+ });
165
+ return {
166
+ url: `${realmUrl}/protocol/openid-connect/auth?${params}`,
167
+ state,
168
+ codeVerifier
169
+ };
170
+ },
171
+ registerWallet(opts) {
172
+ return createWalletRegistration(kc, opts);
173
+ }
174
+ };
175
+ return kc;
176
+ }
177
+ function deriveKeycloakFromLocation(location = globalThis.location) {
178
+ const match = location?.pathname.match(/^(.*)\/realms\/([^/]+)\//);
179
+ if (!location || !match) return void 0;
180
+ return {
181
+ baseUrl: location.origin + match[1],
182
+ realm: decodeURIComponent(match[2])
183
+ };
184
+ }
185
+ export { deriveKeycloakFromLocation, keycloakWallet, pkceChallenge, toCredentials };
186
+ //# sourceMappingURL=keycloakWallet.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["sha256","bytesToBase64","createWalletMessage","buildWalletMessage","browserFlow","createDirectGrant","createWalletRegistration","KeycloakWalletError","sessionCookie","readSessionCookie","res","headers","values","getSetCookie","get","value","match","base64Url","bytes","replace","randomBase64Url","size","crypto","globalThis","getRandomValues","Error","Uint8Array","pkceChallenge","codeVerifier","TextEncoder","encode","toCredentials","args","username","signature","password","message","keycloakWallet","options","baseUrl","resource","realmUrl","encodeURIComponent","realm","resourceUrl","tokenUrl","fetchImpl","fetch","input","init","cookie","nonce","nonceListeners","Set","request","url","Headers","has","set","credentials","fetchNonce","ok","status","text","trim","kc","getNonce","pending","catch","resetNonce","listener","subscribeNonceReset","add","delete","createMessage","address","chainId","domain","uri","gpgMessage","siweConfig","onSign","verifyMessage","getSession","signOut","gpgConfig","buildMessage","opts","directGrant","browserLoginUrl","clientId","redirectUri","scope","state","params","URLSearchParams","client_id","redirect_uri","response_type","Array","isArray","join","code_challenge","code_challenge_method","registerWallet","deriveKeycloakFromLocation","location","pathname","origin","decodeURIComponent"],"sources":["../../../src/keycloak/keycloakWallet.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}