@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.
- package/README.md +150 -11
- package/dist/cjs/clients/evm.cjs +299 -11
- package/dist/cjs/clients/evm.native.js +500 -12
- package/dist/cjs/clients/evm.native.js.map +1 -1
- package/dist/cjs/clients/index.cjs +5 -0
- package/dist/cjs/clients/index.native.js +5 -0
- package/dist/cjs/clients/index.native.js.map +1 -1
- package/dist/cjs/clients/solana.cjs +39 -21
- package/dist/cjs/clients/solana.native.js +48 -23
- package/dist/cjs/clients/solana.native.js.map +1 -1
- package/dist/cjs/connectkit/GpgProvider.cjs +44 -0
- package/dist/cjs/connectkit/GpgProvider.native.js +51 -0
- package/dist/cjs/connectkit/GpgProvider.native.js.map +1 -0
- package/dist/cjs/connectkit/adapters/BitcoinAdapter.cjs +5 -14
- package/dist/cjs/connectkit/adapters/BitcoinAdapter.native.js +5 -15
- package/dist/cjs/connectkit/adapters/BitcoinAdapter.native.js.map +1 -1
- package/dist/cjs/connectkit/adapters/EthereumAdapter.cjs +6 -15
- package/dist/cjs/connectkit/adapters/EthereumAdapter.native.js +7 -16
- package/dist/cjs/connectkit/adapters/EthereumAdapter.native.js.map +1 -1
- package/dist/cjs/connectkit/adapters/SolanaAdapter.cjs +5 -14
- package/dist/cjs/connectkit/adapters/SolanaAdapter.native.js +5 -15
- package/dist/cjs/connectkit/adapters/SolanaAdapter.native.js.map +1 -1
- package/dist/cjs/connectkit/adapters/SuiAdapter.cjs +5 -14
- package/dist/cjs/connectkit/adapters/SuiAdapter.native.js +5 -15
- package/dist/cjs/connectkit/adapters/SuiAdapter.native.js.map +1 -1
- package/dist/cjs/connectkit/connectors/createWalletMessage.cjs +2 -2
- package/dist/cjs/connectkit/connectors/createWalletMessage.native.js +2 -2
- package/dist/cjs/connectkit/connectors/createWalletMessage.native.js.map +1 -1
- package/dist/cjs/connectkit/index.cjs +4 -3
- package/dist/cjs/connectkit/index.native.js +4 -3
- package/dist/cjs/connectkit/index.native.js.map +1 -1
- package/dist/cjs/connectkit/siwe/SIWEContext.native.js.map +1 -1
- package/dist/cjs/connectkit/siwe/SIWEProvider.cjs +18 -3
- package/dist/cjs/connectkit/siwe/SIWEProvider.native.js +18 -3
- package/dist/cjs/connectkit/siwe/SIWEProvider.native.js.map +1 -1
- package/dist/cjs/index.cjs +1 -0
- package/dist/cjs/index.native.js +1 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/keycloak/KeycloakWalletLogin.cjs +255 -0
- package/dist/cjs/keycloak/KeycloakWalletLogin.native.js +33 -0
- package/dist/cjs/keycloak/KeycloakWalletLogin.native.js.map +1 -0
- package/dist/cjs/keycloak/browserFlow.cjs +83 -0
- package/dist/cjs/keycloak/browserFlow.native.js +90 -0
- package/dist/cjs/keycloak/browserFlow.native.js.map +1 -0
- package/dist/cjs/keycloak/device.cjs +36 -0
- package/dist/cjs/keycloak/device.native.js +45 -0
- package/dist/cjs/keycloak/device.native.js.map +1 -0
- package/dist/cjs/keycloak/directGrant.cjs +189 -0
- package/dist/cjs/keycloak/directGrant.native.js +233 -0
- package/dist/cjs/keycloak/directGrant.native.js.map +1 -0
- package/dist/cjs/keycloak/iife.cjs +4 -0
- package/dist/cjs/keycloak/iife.native.js +7 -0
- package/dist/cjs/keycloak/iife.native.js.map +1 -0
- package/dist/cjs/keycloak/index.cjs +53 -0
- package/dist/cjs/keycloak/index.native.js +56 -0
- package/dist/cjs/keycloak/index.native.js.map +1 -0
- package/dist/cjs/keycloak/keycloakWallet.cjs +214 -0
- package/dist/cjs/keycloak/keycloakWallet.native.js +285 -0
- package/dist/cjs/keycloak/keycloakWallet.native.js.map +1 -0
- package/dist/cjs/keycloak/mount.cjs +53 -0
- package/dist/cjs/keycloak/mount.native.js +33 -0
- package/dist/cjs/keycloak/mount.native.js.map +1 -0
- package/dist/cjs/keycloak/registerWallet.cjs +74 -0
- package/dist/cjs/keycloak/registerWallet.native.js +81 -0
- package/dist/cjs/keycloak/registerWallet.native.js.map +1 -0
- package/dist/cjs/keycloak/types.cjs +46 -0
- package/dist/cjs/keycloak/types.native.js +179 -0
- package/dist/cjs/keycloak/types.native.js.map +1 -0
- package/dist/cjs/keycloak/useDirectLogin.cjs +57 -0
- package/dist/cjs/keycloak/useDirectLogin.native.js +77 -0
- package/dist/cjs/keycloak/useDirectLogin.native.js.map +1 -0
- package/dist/cjs/keycloak/useWalletLogin.cjs +97 -0
- package/dist/cjs/keycloak/useWalletLogin.native.js +33 -0
- package/dist/cjs/keycloak/useWalletLogin.native.js.map +1 -0
- package/dist/cjs/message/buildWalletMessage.cjs +113 -0
- package/dist/cjs/message/buildWalletMessage.native.js +121 -0
- package/dist/cjs/message/buildWalletMessage.native.js.map +1 -0
- package/dist/cjs/message/index.cjs +29 -0
- package/dist/cjs/message/index.native.js +32 -0
- package/dist/cjs/message/index.native.js.map +1 -0
- package/dist/cjs/providers/WalletProvider.cjs +8 -2
- package/dist/cjs/siws/message.cjs +5 -16
- package/dist/cjs/siws/message.native.js +6 -16
- package/dist/cjs/siws/message.native.js.map +1 -1
- package/dist/cjs/solana.native.js.map +1 -1
- package/dist/esm/clients/evm.mjs +295 -12
- package/dist/esm/clients/evm.mjs.map +1 -1
- package/dist/esm/clients/evm.native.js +496 -13
- package/dist/esm/clients/evm.native.js.map +1 -1
- package/dist/esm/clients/index.mjs +2 -2
- package/dist/esm/clients/index.mjs.map +1 -1
- package/dist/esm/clients/index.native.js +2 -2
- package/dist/esm/clients/index.native.js.map +1 -1
- package/dist/esm/clients/solana.mjs +39 -21
- package/dist/esm/clients/solana.mjs.map +1 -1
- package/dist/esm/clients/solana.native.js +48 -23
- package/dist/esm/clients/solana.native.js.map +1 -1
- package/dist/esm/connectkit/GpgProvider.mjs +19 -0
- package/dist/esm/connectkit/GpgProvider.mjs.map +1 -0
- package/dist/esm/connectkit/GpgProvider.native.js +23 -0
- package/dist/esm/connectkit/GpgProvider.native.js.map +1 -0
- package/dist/esm/connectkit/adapters/BitcoinAdapter.mjs +5 -14
- package/dist/esm/connectkit/adapters/BitcoinAdapter.mjs.map +1 -1
- package/dist/esm/connectkit/adapters/BitcoinAdapter.native.js +5 -15
- package/dist/esm/connectkit/adapters/BitcoinAdapter.native.js.map +1 -1
- package/dist/esm/connectkit/adapters/EthereumAdapter.mjs +6 -15
- package/dist/esm/connectkit/adapters/EthereumAdapter.mjs.map +1 -1
- package/dist/esm/connectkit/adapters/EthereumAdapter.native.js +7 -16
- package/dist/esm/connectkit/adapters/EthereumAdapter.native.js.map +1 -1
- package/dist/esm/connectkit/adapters/SolanaAdapter.mjs +5 -14
- package/dist/esm/connectkit/adapters/SolanaAdapter.mjs.map +1 -1
- package/dist/esm/connectkit/adapters/SolanaAdapter.native.js +5 -15
- package/dist/esm/connectkit/adapters/SolanaAdapter.native.js.map +1 -1
- package/dist/esm/connectkit/adapters/SuiAdapter.mjs +5 -14
- package/dist/esm/connectkit/adapters/SuiAdapter.mjs.map +1 -1
- package/dist/esm/connectkit/adapters/SuiAdapter.native.js +5 -15
- package/dist/esm/connectkit/adapters/SuiAdapter.native.js.map +1 -1
- package/dist/esm/connectkit/connectors/createWalletMessage.mjs +1 -1
- package/dist/esm/connectkit/connectors/createWalletMessage.native.js +1 -1
- package/dist/esm/connectkit/index.mjs +3 -2
- package/dist/esm/connectkit/index.mjs.map +1 -1
- package/dist/esm/connectkit/index.native.js +3 -2
- package/dist/esm/connectkit/index.native.js.map +1 -1
- package/dist/esm/connectkit/siwe/SIWEContext.mjs.map +1 -1
- package/dist/esm/connectkit/siwe/SIWEContext.native.js.map +1 -1
- package/dist/esm/connectkit/siwe/SIWEProvider.mjs +19 -4
- package/dist/esm/connectkit/siwe/SIWEProvider.mjs.map +1 -1
- package/dist/esm/connectkit/siwe/SIWEProvider.native.js +19 -4
- package/dist/esm/connectkit/siwe/SIWEProvider.native.js.map +1 -1
- package/dist/esm/index.mjs +1 -0
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +1 -0
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/keycloak/KeycloakWalletLogin.mjs +218 -0
- package/dist/esm/keycloak/KeycloakWalletLogin.mjs.map +1 -0
- package/dist/esm/keycloak/KeycloakWalletLogin.native.js +5 -0
- package/dist/esm/keycloak/KeycloakWalletLogin.native.js.map +1 -0
- package/dist/esm/keycloak/browserFlow.mjs +58 -0
- package/dist/esm/keycloak/browserFlow.mjs.map +1 -0
- package/dist/esm/keycloak/browserFlow.native.js +62 -0
- package/dist/esm/keycloak/browserFlow.native.js.map +1 -0
- package/dist/esm/keycloak/device.mjs +10 -0
- package/dist/esm/keycloak/device.mjs.map +1 -0
- package/dist/esm/keycloak/device.native.js +16 -0
- package/dist/esm/keycloak/device.native.js.map +1 -0
- package/dist/esm/keycloak/directGrant.mjs +164 -0
- package/dist/esm/keycloak/directGrant.mjs.map +1 -0
- package/dist/esm/keycloak/directGrant.native.js +205 -0
- package/dist/esm/keycloak/directGrant.native.js.map +1 -0
- package/dist/esm/keycloak/iife.mjs +5 -0
- package/dist/esm/keycloak/iife.mjs.map +1 -0
- package/dist/esm/keycloak/iife.native.js +5 -0
- package/dist/esm/keycloak/iife.native.js.map +1 -0
- package/dist/esm/keycloak/index.mjs +13 -0
- package/dist/esm/keycloak/index.mjs.map +1 -0
- package/dist/esm/keycloak/index.native.js +13 -0
- package/dist/esm/keycloak/index.native.js.map +1 -0
- package/dist/esm/keycloak/keycloakWallet.mjs +186 -0
- package/dist/esm/keycloak/keycloakWallet.mjs.map +1 -0
- package/dist/esm/keycloak/keycloakWallet.native.js +254 -0
- package/dist/esm/keycloak/keycloakWallet.native.js.map +1 -0
- package/dist/esm/keycloak/mount.mjs +28 -0
- package/dist/esm/keycloak/mount.mjs.map +1 -0
- package/dist/esm/keycloak/mount.native.js +5 -0
- package/dist/esm/keycloak/mount.native.js.map +1 -0
- package/dist/esm/keycloak/registerWallet.mjs +49 -0
- package/dist/esm/keycloak/registerWallet.mjs.map +1 -0
- package/dist/esm/keycloak/registerWallet.native.js +53 -0
- package/dist/esm/keycloak/registerWallet.native.js.map +1 -0
- package/dist/esm/keycloak/types.mjs +20 -0
- package/dist/esm/keycloak/types.mjs.map +1 -0
- package/dist/esm/keycloak/types.native.js +150 -0
- package/dist/esm/keycloak/types.native.js.map +1 -0
- package/dist/esm/keycloak/useDirectLogin.mjs +32 -0
- package/dist/esm/keycloak/useDirectLogin.mjs.map +1 -0
- package/dist/esm/keycloak/useDirectLogin.native.js +49 -0
- package/dist/esm/keycloak/useDirectLogin.native.js.map +1 -0
- package/dist/esm/keycloak/useWalletLogin.mjs +72 -0
- package/dist/esm/keycloak/useWalletLogin.mjs.map +1 -0
- package/dist/esm/keycloak/useWalletLogin.native.js +5 -0
- package/dist/esm/keycloak/useWalletLogin.native.js.map +1 -0
- package/dist/esm/message/buildWalletMessage.mjs +87 -0
- package/dist/esm/message/buildWalletMessage.mjs.map +1 -0
- package/dist/esm/message/buildWalletMessage.native.js +92 -0
- package/dist/esm/message/buildWalletMessage.native.js.map +1 -0
- package/dist/esm/message/index.mjs +3 -0
- package/dist/esm/message/index.mjs.map +1 -0
- package/dist/esm/message/index.native.js +3 -0
- package/dist/esm/message/index.native.js.map +1 -0
- package/dist/esm/providers/WalletProvider.mjs +9 -3
- package/dist/esm/providers/WalletProvider.mjs.map +1 -1
- package/dist/esm/siws/message.mjs +5 -16
- package/dist/esm/siws/message.mjs.map +1 -1
- package/dist/esm/siws/message.native.js +6 -16
- package/dist/esm/siws/message.native.js.map +1 -1
- package/dist/esm/solana.mjs.map +1 -1
- package/dist/esm/solana.native.js.map +1 -1
- package/dist/jsx/clients/evm.mjs +295 -12
- package/dist/jsx/clients/evm.mjs.map +1 -1
- package/dist/jsx/clients/evm.native.js +500 -12
- package/dist/jsx/clients/evm.native.js.map +1 -1
- package/dist/jsx/clients/index.mjs +2 -2
- package/dist/jsx/clients/index.mjs.map +1 -1
- package/dist/jsx/clients/index.native.js +5 -0
- package/dist/jsx/clients/index.native.js.map +1 -1
- package/dist/jsx/clients/solana.mjs +39 -21
- package/dist/jsx/clients/solana.mjs.map +1 -1
- package/dist/jsx/clients/solana.native.js +48 -23
- package/dist/jsx/clients/solana.native.js.map +1 -1
- package/dist/jsx/connectkit/GpgProvider.mjs +19 -0
- package/dist/jsx/connectkit/GpgProvider.mjs.map +1 -0
- package/dist/jsx/connectkit/GpgProvider.native.js +51 -0
- package/dist/jsx/connectkit/GpgProvider.native.js.map +1 -0
- package/dist/jsx/connectkit/adapters/BitcoinAdapter.mjs +5 -14
- package/dist/jsx/connectkit/adapters/BitcoinAdapter.mjs.map +1 -1
- package/dist/jsx/connectkit/adapters/BitcoinAdapter.native.js +5 -15
- package/dist/jsx/connectkit/adapters/BitcoinAdapter.native.js.map +1 -1
- package/dist/jsx/connectkit/adapters/EthereumAdapter.mjs +6 -15
- package/dist/jsx/connectkit/adapters/EthereumAdapter.mjs.map +1 -1
- package/dist/jsx/connectkit/adapters/EthereumAdapter.native.js +7 -16
- package/dist/jsx/connectkit/adapters/EthereumAdapter.native.js.map +1 -1
- package/dist/jsx/connectkit/adapters/SolanaAdapter.mjs +5 -14
- package/dist/jsx/connectkit/adapters/SolanaAdapter.mjs.map +1 -1
- package/dist/jsx/connectkit/adapters/SolanaAdapter.native.js +5 -15
- package/dist/jsx/connectkit/adapters/SolanaAdapter.native.js.map +1 -1
- package/dist/jsx/connectkit/adapters/SuiAdapter.mjs +5 -14
- package/dist/jsx/connectkit/adapters/SuiAdapter.mjs.map +1 -1
- package/dist/jsx/connectkit/adapters/SuiAdapter.native.js +5 -15
- package/dist/jsx/connectkit/adapters/SuiAdapter.native.js.map +1 -1
- package/dist/jsx/connectkit/connectors/createWalletMessage.mjs +1 -1
- package/dist/jsx/connectkit/connectors/createWalletMessage.native.js +2 -2
- package/dist/jsx/connectkit/index.mjs +3 -2
- package/dist/jsx/connectkit/index.mjs.map +1 -1
- package/dist/jsx/connectkit/index.native.js +4 -3
- package/dist/jsx/connectkit/index.native.js.map +1 -1
- package/dist/jsx/connectkit/siwe/SIWEContext.mjs.map +1 -1
- package/dist/jsx/connectkit/siwe/SIWEContext.native.js.map +1 -1
- package/dist/jsx/connectkit/siwe/SIWEProvider.mjs +19 -4
- package/dist/jsx/connectkit/siwe/SIWEProvider.mjs.map +1 -1
- package/dist/jsx/connectkit/siwe/SIWEProvider.native.js +18 -3
- package/dist/jsx/connectkit/siwe/SIWEProvider.native.js.map +1 -1
- package/dist/jsx/index.js +1 -0
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +1 -0
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +1 -0
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/keycloak/KeycloakWalletLogin.mjs +218 -0
- package/dist/jsx/keycloak/KeycloakWalletLogin.mjs.map +1 -0
- package/dist/jsx/keycloak/KeycloakWalletLogin.native.js +33 -0
- package/dist/jsx/keycloak/KeycloakWalletLogin.native.js.map +1 -0
- package/dist/jsx/keycloak/browserFlow.mjs +58 -0
- package/dist/jsx/keycloak/browserFlow.mjs.map +1 -0
- package/dist/jsx/keycloak/browserFlow.native.js +90 -0
- package/dist/jsx/keycloak/browserFlow.native.js.map +1 -0
- package/dist/jsx/keycloak/device.mjs +10 -0
- package/dist/jsx/keycloak/device.mjs.map +1 -0
- package/dist/jsx/keycloak/device.native.js +45 -0
- package/dist/jsx/keycloak/device.native.js.map +1 -0
- package/dist/jsx/keycloak/directGrant.mjs +164 -0
- package/dist/jsx/keycloak/directGrant.mjs.map +1 -0
- package/dist/jsx/keycloak/directGrant.native.js +233 -0
- package/dist/jsx/keycloak/directGrant.native.js.map +1 -0
- package/dist/jsx/keycloak/iife.mjs +5 -0
- package/dist/jsx/keycloak/iife.mjs.map +1 -0
- package/dist/jsx/keycloak/iife.native.js +7 -0
- package/dist/jsx/keycloak/iife.native.js.map +1 -0
- package/dist/jsx/keycloak/index.mjs +13 -0
- package/dist/jsx/keycloak/index.mjs.map +1 -0
- package/dist/jsx/keycloak/index.native.js +56 -0
- package/dist/jsx/keycloak/index.native.js.map +1 -0
- package/dist/jsx/keycloak/keycloakWallet.mjs +186 -0
- package/dist/jsx/keycloak/keycloakWallet.mjs.map +1 -0
- package/dist/jsx/keycloak/keycloakWallet.native.js +285 -0
- package/dist/jsx/keycloak/keycloakWallet.native.js.map +1 -0
- package/dist/jsx/keycloak/mount.mjs +28 -0
- package/dist/jsx/keycloak/mount.mjs.map +1 -0
- package/dist/jsx/keycloak/mount.native.js +33 -0
- package/dist/jsx/keycloak/mount.native.js.map +1 -0
- package/dist/jsx/keycloak/registerWallet.mjs +49 -0
- package/dist/jsx/keycloak/registerWallet.mjs.map +1 -0
- package/dist/jsx/keycloak/registerWallet.native.js +81 -0
- package/dist/jsx/keycloak/registerWallet.native.js.map +1 -0
- package/dist/jsx/keycloak/types.mjs +20 -0
- package/dist/jsx/keycloak/types.mjs.map +1 -0
- package/dist/jsx/keycloak/types.native.js +179 -0
- package/dist/jsx/keycloak/types.native.js.map +1 -0
- package/dist/jsx/keycloak/useDirectLogin.mjs +32 -0
- package/dist/jsx/keycloak/useDirectLogin.mjs.map +1 -0
- package/dist/jsx/keycloak/useDirectLogin.native.js +77 -0
- package/dist/jsx/keycloak/useDirectLogin.native.js.map +1 -0
- package/dist/jsx/keycloak/useWalletLogin.mjs +72 -0
- package/dist/jsx/keycloak/useWalletLogin.mjs.map +1 -0
- package/dist/jsx/keycloak/useWalletLogin.native.js +33 -0
- package/dist/jsx/keycloak/useWalletLogin.native.js.map +1 -0
- package/dist/jsx/message/buildWalletMessage.mjs +87 -0
- package/dist/jsx/message/buildWalletMessage.mjs.map +1 -0
- package/dist/jsx/message/buildWalletMessage.native.js +121 -0
- package/dist/jsx/message/buildWalletMessage.native.js.map +1 -0
- package/dist/jsx/message/index.mjs +3 -0
- package/dist/jsx/message/index.mjs.map +1 -0
- package/dist/jsx/message/index.native.js +32 -0
- package/dist/jsx/message/index.native.js.map +1 -0
- package/dist/jsx/providers/WalletProvider.mjs +9 -3
- package/dist/jsx/providers/WalletProvider.mjs.map +1 -1
- package/dist/jsx/siws/message.mjs +5 -16
- package/dist/jsx/siws/message.mjs.map +1 -1
- package/dist/jsx/siws/message.native.js +6 -16
- package/dist/jsx/siws/message.native.js.map +1 -1
- package/dist/jsx/solana.mjs.map +1 -1
- package/dist/jsx/solana.native.js.map +1 -1
- package/dist/keycloak/login.iife.js +3604 -0
- package/package.json +27 -8
- package/src/clients/evm.spec.ts +644 -10
- package/src/clients/evm.ts +498 -10
- package/src/clients/index.ts +8 -0
- package/src/clients/solana.spec.ts +116 -0
- package/src/clients/solana.ts +51 -31
- package/src/connectkit/GpgProvider.tsx +16 -0
- package/src/connectkit/adapters/BitcoinAdapter.ts +5 -16
- package/src/connectkit/adapters/EthereumAdapter.ts +6 -17
- package/src/connectkit/adapters/SolanaAdapter.ts +5 -16
- package/src/connectkit/adapters/SuiAdapter.ts +5 -16
- package/src/connectkit/connectors/createWalletMessage.ts +1 -1
- package/src/connectkit/index.ts +2 -6
- package/src/connectkit/openConnector/modal.spec.tsx +1 -1
- package/src/connectkit/siwe/SIWEContext.tsx +6 -2
- package/src/connectkit/siwe/SIWEProvider.tsx +22 -5
- package/src/index.ts +3 -0
- package/src/keycloak/KeycloakWalletLogin.native.tsx +7 -0
- package/src/keycloak/KeycloakWalletLogin.spec.tsx +168 -0
- package/src/keycloak/KeycloakWalletLogin.tsx +251 -0
- package/src/keycloak/browserFlow.spec.ts +108 -0
- package/src/keycloak/browserFlow.ts +84 -0
- package/src/keycloak/device.ts +17 -0
- package/src/keycloak/directGrant.spec.ts +331 -0
- package/src/keycloak/directGrant.ts +214 -0
- package/src/keycloak/iife.ts +3 -0
- package/src/keycloak/index.ts +44 -0
- package/src/keycloak/keycloakWallet.spec.ts +216 -0
- package/src/keycloak/keycloakWallet.ts +275 -0
- package/src/keycloak/mount.native.ts +11 -0
- package/src/keycloak/mount.tsx +45 -0
- package/src/keycloak/nonceReset.spec.tsx +205 -0
- package/src/keycloak/registerWallet.spec.ts +88 -0
- package/src/keycloak/registerWallet.ts +59 -0
- package/src/keycloak/types.ts +66 -0
- package/src/keycloak/useDirectLogin.spec.tsx +112 -0
- package/src/keycloak/useDirectLogin.ts +74 -0
- package/src/keycloak/useWalletLogin.native.ts +7 -0
- package/src/keycloak/useWalletLogin.ts +99 -0
- package/src/message/buildWalletMessage.spec.ts +291 -0
- package/src/message/buildWalletMessage.ts +150 -0
- package/src/message/index.ts +8 -0
- package/src/providers/WalletProvider.tsx +15 -2
- package/src/siws/message.ts +3 -22
- package/src/solana.ts +1 -0
- package/types/clients/evm.d.ts +144 -2
- package/types/clients/evm.d.ts.map +1 -1
- package/types/clients/index.d.ts +1 -1
- package/types/clients/index.d.ts.map +1 -1
- package/types/clients/solana.d.ts +14 -5
- package/types/clients/solana.d.ts.map +1 -1
- package/types/connectkit/GpgProvider.d.ts +10 -0
- package/types/connectkit/GpgProvider.d.ts.map +1 -0
- package/types/connectkit/adapters/BitcoinAdapter.d.ts.map +1 -1
- package/types/connectkit/adapters/EthereumAdapter.d.ts.map +1 -1
- package/types/connectkit/adapters/SolanaAdapter.d.ts.map +1 -1
- package/types/connectkit/adapters/SuiAdapter.d.ts.map +1 -1
- package/types/connectkit/connectors/createWalletMessage.d.ts +1 -1
- package/types/connectkit/connectors/createWalletMessage.d.ts.map +1 -1
- package/types/connectkit/index.d.ts +3 -2
- package/types/connectkit/index.d.ts.map +1 -1
- package/types/connectkit/siwe/SIWEContext.d.ts +2 -1
- package/types/connectkit/siwe/SIWEContext.d.ts.map +1 -1
- package/types/connectkit/siwe/SIWEProvider.d.ts.map +1 -1
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
- package/types/keycloak/KeycloakWalletLogin.d.ts +45 -0
- package/types/keycloak/KeycloakWalletLogin.d.ts.map +1 -0
- package/types/keycloak/KeycloakWalletLogin.native.d.ts +4 -0
- package/types/keycloak/KeycloakWalletLogin.native.d.ts.map +1 -0
- package/types/keycloak/browserFlow.d.ts +27 -0
- package/types/keycloak/browserFlow.d.ts.map +1 -0
- package/types/keycloak/device.d.ts +14 -0
- package/types/keycloak/device.d.ts.map +1 -0
- package/types/keycloak/directGrant.d.ts +43 -0
- package/types/keycloak/directGrant.d.ts.map +1 -0
- package/types/keycloak/iife.d.ts +2 -0
- package/types/keycloak/iife.d.ts.map +1 -0
- package/types/keycloak/index.d.ts +12 -0
- package/types/keycloak/index.d.ts.map +1 -0
- package/types/keycloak/keycloakWallet.d.ts +120 -0
- package/types/keycloak/keycloakWallet.d.ts.map +1 -0
- package/types/keycloak/mount.d.ts +16 -0
- package/types/keycloak/mount.d.ts.map +1 -0
- package/types/keycloak/mount.native.d.ts +5 -0
- package/types/keycloak/mount.native.d.ts.map +1 -0
- package/types/keycloak/registerWallet.d.ts +22 -0
- package/types/keycloak/registerWallet.d.ts.map +1 -0
- package/types/keycloak/types.d.ts +50 -0
- package/types/keycloak/types.d.ts.map +1 -0
- package/types/keycloak/useDirectLogin.d.ts +29 -0
- package/types/keycloak/useDirectLogin.d.ts.map +1 -0
- package/types/keycloak/useWalletLogin.d.ts +26 -0
- package/types/keycloak/useWalletLogin.d.ts.map +1 -0
- package/types/keycloak/useWalletLogin.native.d.ts +4 -0
- package/types/keycloak/useWalletLogin.native.d.ts.map +1 -0
- package/types/message/buildWalletMessage.d.ts +46 -0
- package/types/message/buildWalletMessage.d.ts.map +1 -0
- package/types/message/index.d.ts +2 -0
- package/types/message/index.d.ts.map +1 -0
- package/types/providers/WalletProvider.d.ts +8 -1
- package/types/providers/WalletProvider.d.ts.map +1 -1
- package/types/siws/message.d.ts.map +1 -1
- package/types/solana.d.ts +1 -1
- package/types/solana.d.ts.map +1 -1
- package/dist/cjs/connectkit/adapters/messages.cjs +0 -73
- package/dist/cjs/connectkit/adapters/messages.native.js +0 -79
- package/dist/cjs/connectkit/adapters/messages.native.js.map +0 -1
- package/dist/esm/connectkit/adapters/messages.mjs +0 -48
- package/dist/esm/connectkit/adapters/messages.mjs.map +0 -1
- package/dist/esm/connectkit/adapters/messages.native.js +0 -51
- package/dist/esm/connectkit/adapters/messages.native.js.map +0 -1
- package/dist/jsx/connectkit/adapters/messages.mjs +0 -48
- package/dist/jsx/connectkit/adapters/messages.mjs.map +0 -1
- package/dist/jsx/connectkit/adapters/messages.native.js +0 -79
- package/dist/jsx/connectkit/adapters/messages.native.js.map +0 -1
- package/src/connectkit/adapters/messages.ts +0 -84
- package/types/connectkit/adapters/messages.d.ts +0 -16
- 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 @@
|
|
|
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 @@
|
|
|
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":[]}
|