@zerodev/wallet-core 0.0.1-alpha.9 → 0.0.1
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 +68 -18
- package/dist/_cjs/actions/auth/authenticateWithEmail.js +1 -2
- package/dist/_cjs/actions/auth/authenticateWithEmail.js.map +1 -1
- package/dist/_cjs/actions/auth/authenticateWithOAuth.js +2 -3
- package/dist/_cjs/actions/auth/authenticateWithOAuth.js.map +1 -1
- package/dist/_cjs/actions/auth/getAuthProxyConfigId.js +10 -0
- package/dist/_cjs/actions/auth/getAuthProxyConfigId.js.map +1 -0
- package/dist/_cjs/actions/auth/getAuthenticators.js +16 -0
- package/dist/_cjs/actions/auth/getAuthenticators.js.map +1 -0
- package/dist/_cjs/actions/auth/getOAuthLoginUrl.js +18 -0
- package/dist/_cjs/actions/auth/getOAuthLoginUrl.js.map +1 -0
- package/dist/_cjs/actions/auth/getParentOrgId.js +10 -0
- package/dist/_cjs/actions/auth/getParentOrgId.js.map +1 -0
- package/dist/_cjs/actions/auth/getWhoami.js +18 -4
- package/dist/_cjs/actions/auth/getWhoami.js.map +1 -1
- package/dist/_cjs/actions/auth/index.js +9 -3
- package/dist/_cjs/actions/auth/index.js.map +1 -1
- package/dist/_cjs/actions/auth/loginWithStamp.js +5 -6
- package/dist/_cjs/actions/auth/loginWithStamp.js.map +1 -1
- package/dist/_cjs/actions/auth/registerWithOTP.js +1 -2
- package/dist/_cjs/actions/auth/registerWithOTP.js.map +1 -1
- package/dist/_cjs/actions/auth/registerWithPasskey.js +1 -2
- package/dist/_cjs/actions/auth/registerWithPasskey.js.map +1 -1
- package/dist/_cjs/actions/index.js +9 -3
- package/dist/_cjs/actions/index.js.map +1 -1
- package/dist/_cjs/actions/wallet/getUserWallet.js +3 -5
- package/dist/_cjs/actions/wallet/getUserWallet.js.map +1 -1
- package/dist/_cjs/actions/wallet/index.js +9 -3
- package/dist/_cjs/actions/wallet/index.js.map +1 -1
- package/dist/_cjs/actions/wallet/sign7702Authorization.js +16 -0
- package/dist/_cjs/actions/wallet/sign7702Authorization.js.map +1 -0
- package/dist/_cjs/actions/wallet/signMessage.js +17 -0
- package/dist/_cjs/actions/wallet/signMessage.js.map +1 -0
- package/dist/_cjs/actions/wallet/signTransaction.js +9 -18
- package/dist/_cjs/actions/wallet/signTransaction.js.map +1 -1
- package/dist/_cjs/actions/wallet/signTypedDataV4.js +17 -0
- package/dist/_cjs/actions/wallet/signTypedDataV4.js.map +1 -0
- package/dist/_cjs/actions/wallet/signUserOperation.js +17 -0
- package/dist/_cjs/actions/wallet/signUserOperation.js.map +1 -0
- package/dist/_cjs/actions/wallet/signingUtils.js +64 -0
- package/dist/_cjs/actions/wallet/signingUtils.js.map +1 -0
- package/dist/_cjs/adapters/viem.js +60 -27
- package/dist/_cjs/adapters/viem.js.map +1 -1
- package/dist/_cjs/client/authProxy.js +1 -1
- package/dist/_cjs/client/authProxy.js.map +1 -1
- package/dist/_cjs/client/createClient.js +5 -5
- package/dist/_cjs/client/createClient.js.map +1 -1
- package/dist/_cjs/client/decorators/client.js +9 -4
- package/dist/_cjs/client/decorators/client.js.map +1 -1
- package/dist/_cjs/client/index.js.map +1 -1
- package/dist/_cjs/client/transports/createTransport.js +6 -5
- package/dist/_cjs/client/transports/createTransport.js.map +1 -1
- package/dist/_cjs/client/transports/rest.js +40 -28
- package/dist/_cjs/client/transports/rest.js.map +1 -1
- package/dist/_cjs/constants.js +4 -4
- package/dist/_cjs/constants.js.map +1 -1
- package/dist/_cjs/core/{createZeroDevWallet.js → createZeroDevWalletCore.js} +94 -86
- package/dist/_cjs/core/createZeroDevWalletCore.js.map +1 -0
- package/dist/_cjs/index.js +14 -8
- package/dist/_cjs/index.js.map +1 -1
- package/dist/_cjs/index.native.js +39 -0
- package/dist/_cjs/index.native.js.map +1 -0
- package/dist/_cjs/native/createZeroDevWallet.js +13 -0
- package/dist/_cjs/native/createZeroDevWallet.js.map +1 -0
- package/dist/_cjs/native/stampers/passkey.js +30 -0
- package/dist/_cjs/native/stampers/passkey.js.map +1 -0
- package/dist/_cjs/native/stampers/secureStore.js +112 -0
- package/dist/_cjs/native/stampers/secureStore.js.map +1 -0
- package/dist/_cjs/native/storage/asyncStorage.js +11 -0
- package/dist/_cjs/native/storage/asyncStorage.js.map +1 -0
- package/dist/_cjs/stampers/iframeStamper.js +3 -0
- package/dist/_cjs/stampers/iframeStamper.js.map +1 -1
- package/dist/_cjs/stampers/indexedDbStamper.js +20 -2
- package/dist/_cjs/stampers/indexedDbStamper.js.map +1 -1
- package/dist/_cjs/stampers/noopPasskeyStamper.js +16 -0
- package/dist/_cjs/stampers/noopPasskeyStamper.js.map +1 -0
- package/dist/_cjs/stampers/webauthnStamper.js +23 -3
- package/dist/_cjs/stampers/webauthnStamper.js.map +1 -1
- package/dist/_cjs/stubs/native-on-web.js +12 -0
- package/dist/_cjs/stubs/native-on-web.js.map +1 -0
- package/dist/_cjs/utils/encryptOtpAttempt.js +57 -0
- package/dist/_cjs/utils/encryptOtpAttempt.js.map +1 -0
- package/dist/_cjs/utils/exportPrivateKey.js +1 -1
- package/dist/_cjs/utils/exportPrivateKey.js.map +1 -1
- package/dist/_cjs/utils/exportWallet.js +52 -61
- package/dist/_cjs/utils/exportWallet.js.map +1 -1
- package/dist/_cjs/utils/hpke.js +78 -0
- package/dist/_cjs/utils/hpke.js.map +1 -0
- package/dist/_cjs/utils/platform.js +19 -0
- package/dist/_cjs/utils/platform.js.map +1 -0
- package/dist/_cjs/utils/resolveOrganizationId.js +20 -0
- package/dist/_cjs/utils/resolveOrganizationId.js.map +1 -0
- package/dist/_cjs/utils/utils.js +5 -6
- package/dist/_cjs/utils/utils.js.map +1 -1
- package/dist/_cjs/web/createZeroDevWallet.js +21 -0
- package/dist/_cjs/web/createZeroDevWallet.js.map +1 -0
- package/dist/_esm/actions/auth/authenticateWithEmail.js +1 -2
- package/dist/_esm/actions/auth/authenticateWithEmail.js.map +1 -1
- package/dist/_esm/actions/auth/authenticateWithOAuth.js +8 -7
- package/dist/_esm/actions/auth/authenticateWithOAuth.js.map +1 -1
- package/dist/_esm/actions/auth/getAuthProxyConfigId.js +13 -0
- package/dist/_esm/actions/auth/getAuthProxyConfigId.js.map +1 -0
- package/dist/_esm/actions/auth/getAuthenticators.js +36 -0
- package/dist/_esm/actions/auth/getAuthenticators.js.map +1 -0
- package/dist/_esm/actions/auth/getOAuthLoginUrl.js +23 -0
- package/dist/_esm/actions/auth/getOAuthLoginUrl.js.map +1 -0
- package/dist/_esm/actions/auth/getParentOrgId.js +17 -0
- package/dist/_esm/actions/auth/getParentOrgId.js.map +1 -0
- package/dist/_esm/actions/auth/getWhoami.js +28 -6
- package/dist/_esm/actions/auth/getWhoami.js.map +1 -1
- package/dist/_esm/actions/auth/index.js +4 -1
- package/dist/_esm/actions/auth/index.js.map +1 -1
- package/dist/_esm/actions/auth/loginWithStamp.js +9 -6
- package/dist/_esm/actions/auth/loginWithStamp.js.map +1 -1
- package/dist/_esm/actions/auth/registerWithOTP.js +5 -2
- package/dist/_esm/actions/auth/registerWithOTP.js.map +1 -1
- package/dist/_esm/actions/auth/registerWithPasskey.js +1 -3
- package/dist/_esm/actions/auth/registerWithPasskey.js.map +1 -1
- package/dist/_esm/actions/index.js +2 -2
- package/dist/_esm/actions/index.js.map +1 -1
- package/dist/_esm/actions/wallet/getUserWallet.js +5 -5
- package/dist/_esm/actions/wallet/getUserWallet.js.map +1 -1
- package/dist/_esm/actions/wallet/index.js +4 -1
- package/dist/_esm/actions/wallet/index.js.map +1 -1
- package/dist/_esm/actions/wallet/sign7702Authorization.js +13 -0
- package/dist/_esm/actions/wallet/sign7702Authorization.js.map +1 -0
- package/dist/_esm/actions/wallet/signMessage.js +14 -0
- package/dist/_esm/actions/wallet/signMessage.js.map +1 -0
- package/dist/_esm/actions/wallet/signTransaction.js +9 -36
- package/dist/_esm/actions/wallet/signTransaction.js.map +1 -1
- package/dist/_esm/actions/wallet/signTypedDataV4.js +14 -0
- package/dist/_esm/actions/wallet/signTypedDataV4.js.map +1 -0
- package/dist/_esm/actions/wallet/signUserOperation.js +14 -0
- package/dist/_esm/actions/wallet/signUserOperation.js.map +1 -0
- package/dist/_esm/actions/wallet/signingUtils.js +69 -0
- package/dist/_esm/actions/wallet/signingUtils.js.map +1 -0
- package/dist/_esm/adapters/viem.js +63 -30
- package/dist/_esm/adapters/viem.js.map +1 -1
- package/dist/_esm/client/authProxy.js +9 -4
- package/dist/_esm/client/authProxy.js.map +1 -1
- package/dist/_esm/client/createClient.js +5 -5
- package/dist/_esm/client/createClient.js.map +1 -1
- package/dist/_esm/client/decorators/client.js +9 -4
- package/dist/_esm/client/decorators/client.js.map +1 -1
- package/dist/_esm/client/index.js +1 -1
- package/dist/_esm/client/index.js.map +1 -1
- package/dist/_esm/client/transports/createTransport.js +6 -5
- package/dist/_esm/client/transports/createTransport.js.map +1 -1
- package/dist/_esm/client/transports/rest.js +44 -29
- package/dist/_esm/client/transports/rest.js.map +1 -1
- package/dist/_esm/constants.js +10 -3
- package/dist/_esm/constants.js.map +1 -1
- package/dist/_esm/core/{createZeroDevWallet.js → createZeroDevWalletCore.js} +115 -90
- package/dist/_esm/core/createZeroDevWalletCore.js.map +1 -0
- package/dist/_esm/index.js +13 -5
- package/dist/_esm/index.js.map +1 -1
- package/dist/_esm/index.native.js +19 -0
- package/dist/_esm/index.native.js.map +1 -0
- package/dist/_esm/native/createZeroDevWallet.js +10 -0
- package/dist/_esm/native/createZeroDevWallet.js.map +1 -0
- package/dist/_esm/native/stampers/passkey.js +27 -0
- package/dist/_esm/native/stampers/passkey.js.map +1 -0
- package/dist/_esm/native/stampers/secureStore.js +120 -0
- package/dist/_esm/native/stampers/secureStore.js.map +1 -0
- package/dist/_esm/native/storage/asyncStorage.js +13 -0
- package/dist/_esm/native/storage/asyncStorage.js.map +1 -0
- package/dist/_esm/stampers/iframeStamper.js +3 -0
- package/dist/_esm/stampers/iframeStamper.js.map +1 -1
- package/dist/_esm/stampers/indexedDbStamper.js +20 -2
- package/dist/_esm/stampers/indexedDbStamper.js.map +1 -1
- package/dist/_esm/stampers/noopPasskeyStamper.js +18 -0
- package/dist/_esm/stampers/noopPasskeyStamper.js.map +1 -0
- package/dist/_esm/stampers/webauthnStamper.js +23 -4
- package/dist/_esm/stampers/webauthnStamper.js.map +1 -1
- package/dist/_esm/stubs/native-on-web.js +25 -0
- package/dist/_esm/stubs/native-on-web.js.map +1 -0
- package/dist/_esm/utils/encryptOtpAttempt.js +81 -0
- package/dist/_esm/utils/encryptOtpAttempt.js.map +1 -0
- package/dist/_esm/utils/exportPrivateKey.js +1 -1
- package/dist/_esm/utils/exportPrivateKey.js.map +1 -1
- package/dist/_esm/utils/exportWallet.js +52 -61
- package/dist/_esm/utils/exportWallet.js.map +1 -1
- package/dist/_esm/utils/hpke.js +119 -0
- package/dist/_esm/utils/hpke.js.map +1 -0
- package/dist/_esm/utils/platform.js +16 -0
- package/dist/_esm/utils/platform.js.map +1 -0
- package/dist/_esm/utils/resolveOrganizationId.js +27 -0
- package/dist/_esm/utils/resolveOrganizationId.js.map +1 -0
- package/dist/_esm/utils/utils.js +5 -6
- package/dist/_esm/utils/utils.js.map +1 -1
- package/dist/_esm/web/createZeroDevWallet.js +18 -0
- package/dist/_esm/web/createZeroDevWallet.js.map +1 -0
- package/dist/_types/actions/auth/authenticateWithEmail.d.ts +0 -6
- package/dist/_types/actions/auth/authenticateWithEmail.d.ts.map +1 -1
- package/dist/_types/actions/auth/authenticateWithOAuth.d.ts +10 -4
- package/dist/_types/actions/auth/authenticateWithOAuth.d.ts.map +1 -1
- package/dist/_types/actions/auth/getAuthProxyConfigId.d.ts +12 -0
- package/dist/_types/actions/auth/getAuthProxyConfigId.d.ts.map +1 -0
- package/dist/_types/actions/auth/getAuthenticators.d.ts +65 -0
- package/dist/_types/actions/auth/getAuthenticators.d.ts.map +1 -0
- package/dist/_types/actions/auth/getOAuthLoginUrl.d.ts +30 -0
- package/dist/_types/actions/auth/getOAuthLoginUrl.d.ts.map +1 -0
- package/dist/_types/actions/auth/getParentOrgId.d.ts +17 -0
- package/dist/_types/actions/auth/getParentOrgId.d.ts.map +1 -0
- package/dist/_types/actions/auth/getWhoami.d.ts +9 -2
- package/dist/_types/actions/auth/getWhoami.d.ts.map +1 -1
- package/dist/_types/actions/auth/index.d.ts +5 -2
- package/dist/_types/actions/auth/index.d.ts.map +1 -1
- package/dist/_types/actions/auth/loginWithStamp.d.ts +2 -5
- package/dist/_types/actions/auth/loginWithStamp.d.ts.map +1 -1
- package/dist/_types/actions/auth/registerWithOTP.d.ts +10 -3
- package/dist/_types/actions/auth/registerWithOTP.d.ts.map +1 -1
- package/dist/_types/actions/auth/registerWithPasskey.d.ts +0 -7
- package/dist/_types/actions/auth/registerWithPasskey.d.ts.map +1 -1
- package/dist/_types/actions/index.d.ts +2 -2
- package/dist/_types/actions/index.d.ts.map +1 -1
- package/dist/_types/actions/wallet/index.d.ts +4 -1
- package/dist/_types/actions/wallet/index.d.ts.map +1 -1
- package/dist/_types/actions/wallet/sign7702Authorization.d.ts +19 -0
- package/dist/_types/actions/wallet/sign7702Authorization.d.ts.map +1 -0
- package/dist/_types/actions/wallet/signMessage.d.ts +19 -0
- package/dist/_types/actions/wallet/signMessage.d.ts.map +1 -0
- package/dist/_types/actions/wallet/signTransaction.d.ts +1 -19
- package/dist/_types/actions/wallet/signTransaction.d.ts.map +1 -1
- package/dist/_types/actions/wallet/signTypedDataV4.d.ts +21 -0
- package/dist/_types/actions/wallet/signTypedDataV4.d.ts.map +1 -0
- package/dist/_types/actions/wallet/signUserOperation.d.ts +21 -0
- package/dist/_types/actions/wallet/signUserOperation.d.ts.map +1 -0
- package/dist/_types/actions/wallet/signingUtils.d.ts +32 -0
- package/dist/_types/actions/wallet/signingUtils.d.ts.map +1 -0
- package/dist/_types/adapters/viem.d.ts +1 -1
- package/dist/_types/adapters/viem.d.ts.map +1 -1
- package/dist/_types/client/authProxy.d.ts +13 -7
- package/dist/_types/client/authProxy.d.ts.map +1 -1
- package/dist/_types/client/decorators/client.d.ts +32 -6
- package/dist/_types/client/decorators/client.d.ts.map +1 -1
- package/dist/_types/client/index.d.ts +1 -1
- package/dist/_types/client/index.d.ts.map +1 -1
- package/dist/_types/client/transports/createTransport.d.ts +2 -0
- package/dist/_types/client/transports/createTransport.d.ts.map +1 -1
- package/dist/_types/client/transports/rest.d.ts +13 -5
- package/dist/_types/client/transports/rest.d.ts.map +1 -1
- package/dist/_types/client/types.d.ts +9 -9
- package/dist/_types/client/types.d.ts.map +1 -1
- package/dist/_types/constants.d.ts +3 -3
- package/dist/_types/constants.d.ts.map +1 -1
- package/dist/_types/core/{createZeroDevWallet.d.ts → createZeroDevWalletCore.d.ts} +30 -10
- package/dist/_types/core/createZeroDevWalletCore.d.ts.map +1 -0
- package/dist/_types/index.d.ts +7 -7
- package/dist/_types/index.d.ts.map +1 -1
- package/dist/_types/index.native.d.ts +19 -0
- package/dist/_types/index.native.d.ts.map +1 -0
- package/dist/_types/native/createZeroDevWallet.d.ts +12 -0
- package/dist/_types/native/createZeroDevWallet.d.ts.map +1 -0
- package/dist/_types/native/stampers/passkey.d.ts +5 -0
- package/dist/_types/native/stampers/passkey.d.ts.map +1 -0
- package/dist/_types/native/stampers/secureStore.d.ts +3 -0
- package/dist/_types/native/stampers/secureStore.d.ts.map +1 -0
- package/dist/_types/native/storage/asyncStorage.d.ts +3 -0
- package/dist/_types/native/storage/asyncStorage.d.ts.map +1 -0
- package/dist/_types/stampers/iframeStamper.d.ts.map +1 -1
- package/dist/_types/stampers/indexedDbStamper.d.ts +2 -2
- package/dist/_types/stampers/indexedDbStamper.d.ts.map +1 -1
- package/dist/_types/stampers/noopPasskeyStamper.d.ts +8 -0
- package/dist/_types/stampers/noopPasskeyStamper.d.ts.map +1 -0
- package/dist/_types/stampers/types.d.ts +39 -5
- package/dist/_types/stampers/types.d.ts.map +1 -1
- package/dist/_types/stampers/webauthnStamper.d.ts +2 -2
- package/dist/_types/stampers/webauthnStamper.d.ts.map +1 -1
- package/dist/_types/stubs/native-on-web.d.ts +6 -0
- package/dist/_types/stubs/native-on-web.d.ts.map +1 -0
- package/dist/_types/types/session.d.ts +2 -3
- package/dist/_types/types/session.d.ts.map +1 -1
- package/dist/_types/utils/buildClientSignature.d.ts +3 -3
- package/dist/_types/utils/buildClientSignature.d.ts.map +1 -1
- package/dist/_types/utils/encryptOtpAttempt.d.ts +40 -0
- package/dist/_types/utils/encryptOtpAttempt.d.ts.map +1 -0
- package/dist/_types/utils/exportPrivateKey.d.ts +1 -1
- package/dist/_types/utils/exportPrivateKey.d.ts.map +1 -1
- package/dist/_types/utils/exportWallet.d.ts +1 -1
- package/dist/_types/utils/exportWallet.d.ts.map +1 -1
- package/dist/_types/utils/hpke.d.ts +38 -0
- package/dist/_types/utils/hpke.d.ts.map +1 -0
- package/dist/_types/utils/platform.d.ts +2 -0
- package/dist/_types/utils/platform.d.ts.map +1 -0
- package/dist/_types/utils/resolveOrganizationId.d.ts +16 -0
- package/dist/_types/utils/resolveOrganizationId.d.ts.map +1 -0
- package/dist/_types/utils/utils.d.ts.map +1 -1
- package/dist/_types/web/createZeroDevWallet.d.ts +18 -0
- package/dist/_types/web/createZeroDevWallet.d.ts.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +100 -11
- package/src/actions/auth/authenticateWithEmail.ts +1 -9
- package/src/actions/auth/authenticateWithOAuth.ts +12 -7
- package/src/actions/auth/getAuthProxyConfigId.ts +20 -0
- package/src/actions/auth/getAuthenticators.ts +89 -0
- package/src/actions/auth/getOAuthLoginUrl.ts +48 -0
- package/src/actions/auth/getParentOrgId.ts +25 -0
- package/src/actions/auth/getWhoami.ts +33 -6
- package/src/actions/auth/index.ts +21 -5
- package/src/actions/auth/loginWithStamp.ts +11 -12
- package/src/actions/auth/registerWithOTP.ts +11 -5
- package/src/actions/auth/registerWithPasskey.ts +1 -10
- package/src/actions/index.ts +26 -7
- package/src/actions/wallet/getUserWallet.ts +5 -5
- package/src/actions/wallet/index.ts +22 -4
- package/src/actions/wallet/sign7702Authorization.ts +48 -0
- package/src/actions/wallet/signMessage.ts +47 -0
- package/src/actions/wallet/signTransaction.ts +19 -38
- package/src/actions/wallet/signTypedDataV4.ts +52 -0
- package/src/actions/wallet/signUserOperation.ts +56 -0
- package/src/actions/wallet/signingUtils.ts +110 -0
- package/src/adapters/viem.ts +75 -43
- package/src/client/authProxy.ts +14 -8
- package/src/client/createClient.ts +6 -6
- package/src/client/decorators/client.ts +78 -19
- package/src/client/index.ts +4 -1
- package/src/client/transports/createTransport.ts +8 -5
- package/src/client/transports/rest.ts +57 -34
- package/src/client/types.ts +9 -9
- package/src/constants.ts +12 -4
- package/src/core/{createZeroDevWallet.ts → createZeroDevWalletCore.ts} +147 -122
- package/src/index.native.ts +102 -0
- package/src/index.ts +49 -16
- package/src/native/createZeroDevWallet.ts +26 -0
- package/src/native/stampers/passkey.ts +39 -0
- package/src/native/stampers/secureStore.ts +139 -0
- package/src/native/storage/asyncStorage.ts +18 -0
- package/src/stampers/iframeStamper.ts +3 -0
- package/src/stampers/indexedDbStamper.ts +27 -4
- package/src/stampers/noopPasskeyStamper.ts +21 -0
- package/src/stampers/types.ts +39 -5
- package/src/stampers/webauthnStamper.ts +27 -6
- package/src/stubs/native-on-web.ts +29 -0
- package/src/types/session.ts +2 -3
- package/src/utils/buildClientSignature.ts +3 -3
- package/src/utils/encryptOtpAttempt.ts +142 -0
- package/src/utils/exportPrivateKey.ts +2 -2
- package/src/utils/exportWallet.ts +66 -75
- package/src/utils/hpke.ts +219 -0
- package/src/utils/platform.ts +21 -0
- package/src/utils/resolveOrganizationId.ts +28 -0
- package/src/utils/utils.ts +5 -6
- package/src/web/createZeroDevWallet.ts +45 -0
- package/dist/_cjs/actions/auth/getUserEmail.js +0 -19
- package/dist/_cjs/actions/auth/getUserEmail.js.map +0 -1
- package/dist/_cjs/actions/wallet/signRawPayload.js +0 -27
- package/dist/_cjs/actions/wallet/signRawPayload.js.map +0 -1
- package/dist/_cjs/core/createZeroDevWallet.js.map +0 -1
- package/dist/_cjs/stampers/index.js +0 -10
- package/dist/_cjs/stampers/index.js.map +0 -1
- package/dist/_esm/actions/auth/getUserEmail.js +0 -33
- package/dist/_esm/actions/auth/getUserEmail.js.map +0 -1
- package/dist/_esm/actions/wallet/signRawPayload.js +0 -42
- package/dist/_esm/actions/wallet/signRawPayload.js.map +0 -1
- package/dist/_esm/core/createZeroDevWallet.js.map +0 -1
- package/dist/_esm/stampers/index.js +0 -4
- package/dist/_esm/stampers/index.js.map +0 -1
- package/dist/_types/actions/auth/getUserEmail.d.ts +0 -32
- package/dist/_types/actions/auth/getUserEmail.d.ts.map +0 -1
- package/dist/_types/actions/wallet/signRawPayload.d.ts +0 -39
- package/dist/_types/actions/wallet/signRawPayload.d.ts.map +0 -1
- package/dist/_types/core/createZeroDevWallet.d.ts.map +0 -1
- package/dist/_types/stampers/index.d.ts +0 -5
- package/dist/_types/stampers/index.d.ts.map +0 -1
- package/src/actions/auth/getUserEmail.ts +0 -52
- package/src/actions/wallet/signRawPayload.ts +0 -75
- package/src/stampers/index.ts +0 -8
|
@@ -1,31 +1,40 @@
|
|
|
1
|
-
import { getWebAuthnAttestation } from '@turnkey/http';
|
|
2
1
|
import { toViemAccount } from '../adapters/viem.js';
|
|
3
2
|
import { createAuthProxyClient, createClient, zeroDevWalletTransport, } from '../client/index.js';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { createWebauthnStamper } from '../stampers/webauthnStamper.js';
|
|
7
|
-
import { createWebStorageAdapter } from '../storage/adapters.js';
|
|
3
|
+
import { DEFAULT_ORGANIZATION_ID, DEFAULT_SESSION_EXPIRATION_IN_SECONDS, KMS_SERVER_URL, } from '../constants.js';
|
|
4
|
+
import { createNoopPasskeyStamper } from '../stampers/noopPasskeyStamper.js';
|
|
8
5
|
import { createStorageManager, } from '../storage/manager.js';
|
|
9
6
|
import { SessionType } from '../types/session.js';
|
|
10
7
|
import { buildClientSignature } from '../utils/buildClientSignature.js';
|
|
11
|
-
import {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const
|
|
16
|
-
const
|
|
8
|
+
import { encryptOtpAttempt } from '../utils/encryptOtpAttempt.js';
|
|
9
|
+
import { createOrganizationIdResolver } from '../utils/resolveOrganizationId.js';
|
|
10
|
+
import { humanReadableDateTime, parseSession } from '../utils/utils.js';
|
|
11
|
+
export async function createZeroDevWalletCore(config) {
|
|
12
|
+
const { projectId, sessionStorage, rpId, apiKeyStamper, organizationId } = config;
|
|
13
|
+
const passkeyStamper = config.passkeyStamper ?? createNoopPasskeyStamper();
|
|
14
|
+
const sessionStorageManager = createStorageManager(sessionStorage);
|
|
17
15
|
const client = createClient({
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
apiKeyStamper,
|
|
17
|
+
passkeyStamper,
|
|
20
18
|
transport: zeroDevWalletTransport({
|
|
21
19
|
baseUrl: config.proxyBaseUrl || `${KMS_SERVER_URL}/api/v1`,
|
|
20
|
+
...(config.fetchOptions && { fetchOptions: config.fetchOptions }),
|
|
22
21
|
}),
|
|
23
22
|
});
|
|
23
|
+
let cachedAuthProxyConfigId;
|
|
24
|
+
// Resolve the Turnkey parent org that stamp-login is signed against: explicit
|
|
25
|
+
// override → backend fetch (/server-info/parent-org-id, cached) → hardcoded
|
|
26
|
+
// fallback if the endpoint is unavailable (older backends). This is why the
|
|
27
|
+
// org no longer needs to be hardcoded/overridden per environment.
|
|
28
|
+
const resolveOrganizationId = createOrganizationIdResolver({
|
|
29
|
+
organizationId,
|
|
30
|
+
fetchParentOrgId: async () => (await client.getParentOrgId()).parentOrgId,
|
|
31
|
+
fallback: DEFAULT_ORGANIZATION_ID,
|
|
32
|
+
});
|
|
24
33
|
return {
|
|
25
34
|
client,
|
|
26
35
|
async getPublicKey() {
|
|
27
|
-
await client.
|
|
28
|
-
const compressedPublicKey = await client.
|
|
36
|
+
await client.apiKeyStamper.resetKeyPair();
|
|
37
|
+
const compressedPublicKey = await client.apiKeyStamper.getPublicKey();
|
|
29
38
|
return compressedPublicKey;
|
|
30
39
|
},
|
|
31
40
|
async getSession() {
|
|
@@ -57,25 +66,25 @@ export async function createZeroDevWallet(config) {
|
|
|
57
66
|
if (!activeSession) {
|
|
58
67
|
throw new Error('No active session');
|
|
59
68
|
}
|
|
60
|
-
if (activeSession.stamperType === '
|
|
61
|
-
const
|
|
62
|
-
name: 'ECDSA',
|
|
63
|
-
namedCurve: 'P-256',
|
|
64
|
-
}, false, ['sign', 'verify']);
|
|
65
|
-
const compressedPublicKeyHex = await generateCompressedPublicKeyFromKeyPair(newKeyPair);
|
|
69
|
+
if (activeSession.stamperType === 'apiKey') {
|
|
70
|
+
const compressedPublicKeyHex = await client.apiKeyStamper.prepareKeyRotation();
|
|
66
71
|
const data = await client.loginWithStamp({
|
|
67
72
|
targetPublicKey: compressedPublicKeyHex,
|
|
68
73
|
projectId,
|
|
69
|
-
|
|
70
|
-
|
|
74
|
+
// Stamp-login is signed against the Turnkey parent org; the backend
|
|
75
|
+
// resolves the sub-org from the stamped credential. Signing the
|
|
76
|
+
// sub-org here makes the relayed payload's org mismatch the
|
|
77
|
+
// signature → Turnkey SIGNATURE_INVALID.
|
|
78
|
+
organizationId: await resolveOrganizationId(),
|
|
79
|
+
stampWith: 'apiKey',
|
|
71
80
|
});
|
|
72
|
-
await client.
|
|
81
|
+
await client.apiKeyStamper.commitKeyRotation();
|
|
73
82
|
const parsedSession = parseSession(data.session);
|
|
74
83
|
const session = {
|
|
75
84
|
id: `session_indexedDb_${Date.now()}`,
|
|
76
85
|
userId: parsedSession.userId,
|
|
77
86
|
organizationId: parsedSession.organizationId,
|
|
78
|
-
stamperType: '
|
|
87
|
+
stamperType: 'apiKey',
|
|
79
88
|
sessionType: SessionType.READ_WRITE,
|
|
80
89
|
token: data.session,
|
|
81
90
|
expiry: parsedSession.expiry,
|
|
@@ -91,26 +100,25 @@ export async function createZeroDevWallet(config) {
|
|
|
91
100
|
async auth(params) {
|
|
92
101
|
switch (params.type) {
|
|
93
102
|
case 'oauth': {
|
|
94
|
-
|
|
95
|
-
// set during the OAuth popup flow via /oauth/google/login
|
|
103
|
+
const popSignature = await client.apiKeyStamper.sign(params.sessionId);
|
|
96
104
|
const data = await client.authenticateWithOAuth({
|
|
97
105
|
provider: params.provider,
|
|
98
106
|
projectId,
|
|
107
|
+
sessionId: params.sessionId,
|
|
108
|
+
popSignature,
|
|
99
109
|
});
|
|
100
110
|
if (data.session) {
|
|
101
111
|
// Parse the JWT to get session data
|
|
102
112
|
const parsedSession = parseSession(data.session);
|
|
103
|
-
const publicKey = await client.indexedDbStamper.getPublicKey();
|
|
104
113
|
const session = {
|
|
105
114
|
id: `session_oauth_${Date.now()}`,
|
|
106
115
|
userId: parsedSession.userId,
|
|
107
116
|
organizationId: parsedSession.organizationId,
|
|
108
|
-
stamperType: '
|
|
117
|
+
stamperType: 'apiKey',
|
|
109
118
|
sessionType: parsedSession.sessionType || SessionType.READ_WRITE,
|
|
110
119
|
token: data.session,
|
|
111
120
|
expiry: parsedSession.expiry,
|
|
112
121
|
createdAt: Date.now(),
|
|
113
|
-
publicKey: publicKey || '',
|
|
114
122
|
};
|
|
115
123
|
await sessionStorageManager.storeSession(session, session.id);
|
|
116
124
|
}
|
|
@@ -121,59 +129,35 @@ export async function createZeroDevWallet(config) {
|
|
|
121
129
|
if (type === 'passkey' &&
|
|
122
130
|
'mode' in params &&
|
|
123
131
|
params.mode === 'register') {
|
|
124
|
-
|
|
125
|
-
await client.
|
|
126
|
-
const tempPublicKey = await client.indexedDbStamper.getPublicKey();
|
|
132
|
+
await client.apiKeyStamper.resetKeyPair();
|
|
133
|
+
const tempPublicKey = await client.apiKeyStamper.getPublicKey();
|
|
127
134
|
if (!tempPublicKey) {
|
|
128
135
|
throw new Error('Failed to get public key');
|
|
129
136
|
}
|
|
130
|
-
const
|
|
131
|
-
const encodedChallenge =
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
const attestation = await getWebAuthnAttestation({
|
|
135
|
-
publicKey: {
|
|
136
|
-
rp: { id: rpId, name: '' },
|
|
137
|
-
challenge,
|
|
138
|
-
pubKeyCredParams: [
|
|
139
|
-
{
|
|
140
|
-
type: 'public-key',
|
|
141
|
-
alg: -7,
|
|
142
|
-
},
|
|
143
|
-
{
|
|
144
|
-
type: 'public-key',
|
|
145
|
-
alg: -257,
|
|
146
|
-
},
|
|
147
|
-
],
|
|
148
|
-
user: {
|
|
149
|
-
id: authenticatorUserId,
|
|
150
|
-
name,
|
|
151
|
-
displayName: name,
|
|
152
|
-
},
|
|
153
|
-
},
|
|
137
|
+
const name = `ZeroDevWallet-${humanReadableDateTime()}`;
|
|
138
|
+
const { attestation, encodedChallenge } = await passkeyStamper.register({
|
|
139
|
+
rp: { id: rpId, name: '' },
|
|
140
|
+
userName: name,
|
|
154
141
|
});
|
|
155
142
|
const data = await client.registerWithPasskey({
|
|
156
|
-
email,
|
|
157
143
|
attestation,
|
|
158
144
|
challenge: encodedChallenge,
|
|
159
145
|
projectId,
|
|
160
146
|
encodedPublicKey: tempPublicKey,
|
|
161
147
|
});
|
|
162
|
-
const
|
|
163
|
-
name: 'ECDSA',
|
|
164
|
-
namedCurve: 'P-256',
|
|
165
|
-
}, false, ['sign', 'verify']);
|
|
166
|
-
const compressedPublicKeyHex = await generateCompressedPublicKeyFromKeyPair(newKeyPair);
|
|
148
|
+
const compressedPublicKeyHex = await client.apiKeyStamper.prepareKeyRotation();
|
|
167
149
|
const loginData = await client.loginWithStamp({
|
|
168
150
|
projectId,
|
|
169
151
|
targetPublicKey: compressedPublicKeyHex,
|
|
170
|
-
|
|
152
|
+
// Sign against the parent org (see refreshSession note) — the
|
|
153
|
+
// backend derives the sub-org from the stamped credential.
|
|
154
|
+
organizationId: await resolveOrganizationId(),
|
|
171
155
|
});
|
|
172
|
-
await client.
|
|
156
|
+
await client.apiKeyStamper.commitKeyRotation();
|
|
173
157
|
const parsedSession = parseSession(loginData.session);
|
|
174
158
|
const session = {
|
|
175
159
|
id: `session_indexedDb_${Date.now()}`,
|
|
176
|
-
stamperType: '
|
|
160
|
+
stamperType: 'apiKey',
|
|
177
161
|
createdAt: Date.now(),
|
|
178
162
|
sessionType: SessionType.READ_WRITE,
|
|
179
163
|
userId: parsedSession.userId,
|
|
@@ -188,21 +172,24 @@ export async function createZeroDevWallet(config) {
|
|
|
188
172
|
if (type === 'passkey' &&
|
|
189
173
|
'mode' in params &&
|
|
190
174
|
params.mode === 'login') {
|
|
191
|
-
await client.
|
|
192
|
-
const generatedPublicKey = await client.
|
|
175
|
+
await client.apiKeyStamper.resetKeyPair();
|
|
176
|
+
const generatedPublicKey = await client.apiKeyStamper.getPublicKey();
|
|
193
177
|
if (!generatedPublicKey) {
|
|
194
178
|
throw new Error('Failed to get public key');
|
|
195
179
|
}
|
|
196
180
|
const loginData = await client.loginWithStamp({
|
|
197
181
|
targetPublicKey: generatedPublicKey,
|
|
198
182
|
projectId,
|
|
199
|
-
|
|
200
|
-
|
|
183
|
+
// Sign against the parent org, not the user's sub-org (see the
|
|
184
|
+
// refreshSession note). The backend derives the sub-org from the
|
|
185
|
+
// stamped passkey credential.
|
|
186
|
+
organizationId: await resolveOrganizationId(),
|
|
187
|
+
stampWith: 'passkey',
|
|
201
188
|
});
|
|
202
189
|
const parsedSession = parseSession(loginData.session);
|
|
203
190
|
const session = {
|
|
204
191
|
id: `session_indexedDb_${Date.now()}`,
|
|
205
|
-
stamperType: '
|
|
192
|
+
stamperType: 'apiKey',
|
|
206
193
|
createdAt: Date.now(),
|
|
207
194
|
sessionType: SessionType.READ_WRITE,
|
|
208
195
|
userId: parsedSession.userId,
|
|
@@ -216,40 +203,76 @@ export async function createZeroDevWallet(config) {
|
|
|
216
203
|
}
|
|
217
204
|
throw new Error('Passkey authentication requires passkey parameter');
|
|
218
205
|
}
|
|
219
|
-
case 'otp':
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
206
|
+
case 'otp':
|
|
207
|
+
case 'magicLink': {
|
|
208
|
+
// Normalize magicLink params into OTP params
|
|
209
|
+
let otpParams;
|
|
210
|
+
if (params.type === 'magicLink') {
|
|
211
|
+
if (params.mode === 'send') {
|
|
212
|
+
// Magic-link vs plain-OTP delivery and the link URL template are
|
|
213
|
+
// configured per-project on the backend (`wallet.otp_configs`);
|
|
214
|
+
// the client just initiates OTP and the backend decides.
|
|
215
|
+
otpParams = {
|
|
216
|
+
type: 'otp',
|
|
217
|
+
mode: 'sendOtp',
|
|
218
|
+
email: params.email,
|
|
219
|
+
contact: { type: 'email', contact: params.email },
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
otpParams = {
|
|
224
|
+
type: 'otp',
|
|
225
|
+
mode: 'verifyOtp',
|
|
226
|
+
otpId: params.otpId,
|
|
227
|
+
otpCode: params.code,
|
|
228
|
+
otpEncryptionTargetBundle: params.otpEncryptionTargetBundle,
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
otpParams = params;
|
|
234
|
+
}
|
|
235
|
+
if (otpParams.mode === 'sendOtp') {
|
|
236
|
+
const { email, contact } = otpParams;
|
|
223
237
|
const data = await client.registerWithOTP({
|
|
224
238
|
email,
|
|
225
239
|
contact,
|
|
226
240
|
projectId,
|
|
227
|
-
...(emailCustomization && { emailCustomization }),
|
|
228
241
|
});
|
|
229
242
|
return data;
|
|
230
243
|
}
|
|
231
|
-
if (
|
|
232
|
-
const { otpId, otpCode } =
|
|
244
|
+
if (otpParams.mode === 'verifyOtp') {
|
|
245
|
+
const { otpId, otpCode, otpEncryptionTargetBundle } = otpParams;
|
|
233
246
|
// Step 1: Generate new key pair
|
|
234
|
-
await client.
|
|
235
|
-
const targetPublicKey = await client.
|
|
247
|
+
await client.apiKeyStamper.resetKeyPair();
|
|
248
|
+
const targetPublicKey = await client.apiKeyStamper.getPublicKey();
|
|
236
249
|
if (!targetPublicKey) {
|
|
237
250
|
throw new Error('Failed to get public key');
|
|
238
251
|
}
|
|
239
|
-
// Step
|
|
252
|
+
// Step 2a: HPKE-seal the OTP attempt to the enclave's per-session
|
|
253
|
+
// target key. The auth proxy never sees the plaintext OTP code.
|
|
254
|
+
const encryptedOtpBundle = await encryptOtpAttempt({
|
|
255
|
+
otpCode,
|
|
256
|
+
publicKey: targetPublicKey,
|
|
257
|
+
encryptionTargetBundle: otpEncryptionTargetBundle,
|
|
258
|
+
});
|
|
259
|
+
// Step 2b: Verify OTP via Auth Proxy
|
|
260
|
+
if (!cachedAuthProxyConfigId) {
|
|
261
|
+
const { authProxyConfigId } = await client.getAuthProxyConfigId();
|
|
262
|
+
cachedAuthProxyConfigId = authProxyConfigId;
|
|
263
|
+
}
|
|
240
264
|
const authProxyClient = createAuthProxyClient({
|
|
241
|
-
authProxyConfigId:
|
|
265
|
+
authProxyConfigId: cachedAuthProxyConfigId,
|
|
242
266
|
});
|
|
243
267
|
const { verificationToken } = await authProxyClient.verifyOtp({
|
|
244
268
|
otpId,
|
|
245
|
-
|
|
246
|
-
public_key: targetPublicKey,
|
|
269
|
+
encryptedOtpBundle,
|
|
247
270
|
});
|
|
248
271
|
// Step 3: Build client signature
|
|
249
272
|
const clientSignature = await buildClientSignature({
|
|
250
273
|
verificationToken,
|
|
251
274
|
publicKey: targetPublicKey,
|
|
252
|
-
stamper: client.
|
|
275
|
+
stamper: client.apiKeyStamper,
|
|
253
276
|
});
|
|
254
277
|
// Step 4: Login via backend (not Auth Proxy!)
|
|
255
278
|
const data = await client.loginWithOTP({
|
|
@@ -264,12 +287,11 @@ export async function createZeroDevWallet(config) {
|
|
|
264
287
|
id: `session_otp_${Date.now()}`,
|
|
265
288
|
userId: parsedSession.userId,
|
|
266
289
|
organizationId: parsedSession.organizationId,
|
|
267
|
-
stamperType: '
|
|
290
|
+
stamperType: 'apiKey',
|
|
268
291
|
sessionType: parsedSession.sessionType || SessionType.READ_WRITE,
|
|
269
292
|
token: data.session,
|
|
270
293
|
expiry: parsedSession.expiry,
|
|
271
294
|
createdAt: Date.now(),
|
|
272
|
-
publicKey: targetPublicKey,
|
|
273
295
|
};
|
|
274
296
|
await sessionStorageManager.storeSession(session, session.id);
|
|
275
297
|
}
|
|
@@ -283,7 +305,7 @@ export async function createZeroDevWallet(config) {
|
|
|
283
305
|
},
|
|
284
306
|
async logout() {
|
|
285
307
|
await sessionStorageManager.clearAllSessions();
|
|
286
|
-
await client.
|
|
308
|
+
await client.apiKeyStamper.resetKeyPair();
|
|
287
309
|
return true;
|
|
288
310
|
},
|
|
289
311
|
async toAccount() {
|
|
@@ -295,9 +317,12 @@ export async function createZeroDevWallet(config) {
|
|
|
295
317
|
client,
|
|
296
318
|
organizationId: session.organizationId,
|
|
297
319
|
projectId,
|
|
298
|
-
|
|
320
|
+
getToken: async () => {
|
|
321
|
+
const activeSession = await sessionStorageManager.getActiveSession();
|
|
322
|
+
return activeSession?.token ?? '';
|
|
323
|
+
},
|
|
299
324
|
});
|
|
300
325
|
},
|
|
301
326
|
};
|
|
302
327
|
}
|
|
303
|
-
//# sourceMappingURL=
|
|
328
|
+
//# sourceMappingURL=createZeroDevWalletCore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createZeroDevWalletCore.js","sourceRoot":"","sources":["../../../src/core/createZeroDevWalletCore.ts"],"names":[],"mappings":"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"}
|
package/dist/_esm/index.js
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
|
+
import { isReactNative } from './utils/platform.js';
|
|
2
|
+
if (isReactNative()) {
|
|
3
|
+
// biome-ignore lint/suspicious/noConsole: Warning users if they try to use the web entry on React Native.
|
|
4
|
+
console.warn('@zerodev/wallet-core: the web entry was loaded in a React Native runtime. Check that your metro.config.js has `unstable_enablePackageExports: true` and `"react-native"` in `unstable_conditionNames`.');
|
|
5
|
+
}
|
|
1
6
|
// Actions
|
|
2
7
|
export {
|
|
3
8
|
// Auth actions
|
|
4
|
-
authenticateWithEmail, authenticateWithOAuth,
|
|
9
|
+
authenticateWithEmail, authenticateWithOAuth, getAuthenticators,
|
|
5
10
|
// Wallet actions
|
|
6
|
-
getUserWallet, getWhoami, loginWithOTP, registerWithOTP,
|
|
11
|
+
getUserWallet, getWhoami, loginWithOTP, registerWithOTP, sign7702Authorization, signMessage, signTransaction, signTypedDataV4, signUserOperation, } from './actions/index.js';
|
|
7
12
|
// Adapters
|
|
8
13
|
export { toViemAccount } from './adapters/viem.js';
|
|
9
14
|
// Client decorators
|
|
@@ -12,12 +17,15 @@ export { zeroDevWalletActions } from './client/decorators/client.js';
|
|
|
12
17
|
export { createBaseClient, createClient, zeroDevWalletTransport, } from './client/index.js';
|
|
13
18
|
// Constants
|
|
14
19
|
export { KMS_SERVER_URL } from './constants.js';
|
|
15
|
-
// Core
|
|
16
|
-
export { createZeroDevWallet } from './core/createZeroDevWallet.js';
|
|
17
20
|
// Stampers
|
|
18
|
-
export { createIframeStamper
|
|
21
|
+
export { createIframeStamper } from './stampers/iframeStamper.js';
|
|
19
22
|
export { exportPrivateKey } from './utils/exportPrivateKey.js';
|
|
20
23
|
export { exportWallet } from './utils/exportWallet.js';
|
|
21
24
|
// Utils
|
|
22
25
|
export { normalizeTimestamp } from './utils/utils.js';
|
|
26
|
+
// Core — bare specifier resolves web defaults (IndexedDB, WebAuthn, session
|
|
27
|
+
// storage, hostname-derived rpId) before forwarding to the shared factory.
|
|
28
|
+
// RN consumers go through `@zerodev/wallet-core/react-native`, which exposes
|
|
29
|
+
// the strict `ZeroDevWalletConfig` (= core's required-fields shape) directly.
|
|
30
|
+
export { createZeroDevWallet, } from './web/createZeroDevWallet.js';
|
|
23
31
|
//# sourceMappingURL=index.js.map
|
package/dist/_esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD,IAAI,aAAa,EAAE,EAAE,CAAC;IACpB,0GAA0G;IAC1G,OAAO,CAAC,IAAI,CACV,wMAAwM,CACzM,CAAA;AACH,CAAC;AAoCD,UAAU;AACV,OAAO;AACL,eAAe;AACf,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB;AACjB,iBAAiB;AACjB,aAAa,EACb,SAAS,EACT,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,WAAW,EACX,eAAe,EACf,eAAe,EACf,iBAAiB,GAClB,MAAM,oBAAoB,CAAA;AAE3B,WAAW;AACX,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,oBAAoB;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAOpE,SAAS;AACT,OAAO,EACL,gBAAgB,EAChB,YAAY,EAEZ,sBAAsB,GACvB,MAAM,mBAAmB,CAAA;AAC1B,YAAY;AACZ,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAK/C,WAAW;AACX,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAcjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,QAAQ;AACR,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,4EAA4E;AAC5E,2EAA2E;AAC3E,6EAA6E;AAC7E,8EAA8E;AAC9E,OAAO,EACL,mBAAmB,GAEpB,MAAM,8BAA8B,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { isReactNative } from './utils/platform.js';
|
|
2
|
+
if (!isReactNative()) {
|
|
3
|
+
// biome-ignore lint/suspicious/noConsole: Warning users if they try to use the web entry on React Native.
|
|
4
|
+
console.warn('@zerodev/wallet-core/react-native: the React Native entry was loaded outside a React Native runtime. If this is a non-RN context, import `@zerodev/wallet-core` (the bare specifier) instead.');
|
|
5
|
+
}
|
|
6
|
+
export { authenticateWithEmail, authenticateWithOAuth, getAuthenticators, getUserWallet, getWhoami, loginWithOTP, registerWithOTP, sign7702Authorization, signMessage, signTransaction, signTypedDataV4, signUserOperation, } from './actions/index.js';
|
|
7
|
+
export { toViemAccount } from './adapters/viem.js';
|
|
8
|
+
export { zeroDevWalletActions } from './client/decorators/client.js';
|
|
9
|
+
export { createBaseClient, createClient, zeroDevWalletTransport, } from './client/index.js';
|
|
10
|
+
export { KMS_SERVER_URL } from './constants.js';
|
|
11
|
+
// RN entry re-exports through a thin wrapper that auto-injects the
|
|
12
|
+
// `Origin: https://${rpId}` header on Turnkey requests. `ZeroDevWalletConfig`
|
|
13
|
+
// matches the strict `ZeroDevWalletConfigCore` shape, so RN consumers still
|
|
14
|
+
// get compile-time enforcement of the four required adapter fields.
|
|
15
|
+
export { createZeroDevWallet, } from './native/createZeroDevWallet.js';
|
|
16
|
+
export { exportPrivateKey } from './utils/exportPrivateKey.js';
|
|
17
|
+
export { exportWallet } from './utils/exportWallet.js';
|
|
18
|
+
export { normalizeTimestamp } from './utils/utils.js';
|
|
19
|
+
//# sourceMappingURL=index.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.native.js","sourceRoot":"","sources":["../../src/index.native.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;IACrB,0GAA0G;IAC1G,OAAO,CAAC,IAAI,CACV,+LAA+L,CAChM,CAAA;AACH,CAAC;AAsCD,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,SAAS,EACT,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,WAAW,EACX,eAAe,EACf,eAAe,EACf,iBAAiB,GAClB,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAOpE,OAAO,EACL,gBAAgB,EAChB,YAAY,EAEZ,sBAAsB,GACvB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAK/C,mEAAmE;AACnE,8EAA8E;AAC9E,4EAA4E;AAC5E,oEAAoE;AACpE,OAAO,EACL,mBAAmB,GAEpB,MAAM,iCAAiC,CAAA;AAYxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createZeroDevWalletCore, } from '../core/createZeroDevWalletCore.js';
|
|
2
|
+
export async function createZeroDevWallet(config) {
|
|
3
|
+
return createZeroDevWalletCore({
|
|
4
|
+
...config,
|
|
5
|
+
fetchOptions: config.fetchOptions ?? {
|
|
6
|
+
headers: { Origin: `https://${config.rpId}` },
|
|
7
|
+
},
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=createZeroDevWallet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createZeroDevWallet.js","sourceRoot":"","sources":["../../../src/native/createZeroDevWallet.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,GAGxB,MAAM,oCAAoC,CAAA;AAY3C,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAA2B;IAE3B,OAAO,uBAAuB,CAAC;QAC7B,GAAG,MAAM;QACT,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI;YACnC,OAAO,EAAE,EAAE,MAAM,EAAE,WAAW,MAAM,CAAC,IAAI,EAAE,EAAE;SAC9C;KACF,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { createPasskey, PasskeyStamper as TurnkeyPasskeyStamper, } from '@turnkey/react-native-passkey-stamper';
|
|
2
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
3
|
+
export async function createReactNativePasskeyStamper({ rpId, }) {
|
|
4
|
+
const inner = new TurnkeyPasskeyStamper({ rpId });
|
|
5
|
+
return {
|
|
6
|
+
async stamp(payload) {
|
|
7
|
+
return await inner.stamp(payload);
|
|
8
|
+
},
|
|
9
|
+
async clear() { },
|
|
10
|
+
async register({ rp, userName }) {
|
|
11
|
+
const { attestation, challenge: encodedChallenge } = await createPasskey({
|
|
12
|
+
rp: {
|
|
13
|
+
id: rp.id,
|
|
14
|
+
name: rp.name ?? 'Turnkey',
|
|
15
|
+
},
|
|
16
|
+
user: {
|
|
17
|
+
id: uuidv4(),
|
|
18
|
+
name: userName,
|
|
19
|
+
displayName: userName,
|
|
20
|
+
},
|
|
21
|
+
authenticatorName: userName ?? 'End-User Passkey',
|
|
22
|
+
});
|
|
23
|
+
return { attestation, encodedChallenge };
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=passkey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"passkey.js","sourceRoot":"","sources":["../../../../src/native/stampers/passkey.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,cAAc,IAAI,qBAAqB,GACxC,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAA;AAMnC,MAAM,CAAC,KAAK,UAAU,+BAA+B,CAAC,EACpD,IAAI,GAGL;IACC,MAAM,KAAK,GAAG,IAAI,qBAAqB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;IAEjD,OAAO;QACL,KAAK,CAAC,KAAK,CAAC,OAAe;YACzB,OAAO,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACnC,CAAC;QACD,KAAK,CAAC,KAAK,KAAI,CAAC;QAChB,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,QAAQ,EAA8B;YACzD,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,MAAM,aAAa,CAAC;gBACvE,EAAE,EAAE;oBACF,EAAE,EAAE,EAAE,CAAC,EAAE;oBACT,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,SAAS;iBAC3B;gBACD,IAAI,EAAE;oBACJ,EAAE,EAAE,MAAM,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,QAAQ;iBACtB;gBACD,iBAAiB,EAAE,QAAQ,IAAI,kBAAkB;aAClD,CAAC,CAAA;YACF,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAA;QAC1C,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { ApiKeyStamper, SignatureFormat } from '@turnkey/api-key-stamper';
|
|
2
|
+
import { generateP256KeyPair } from '@turnkey/crypto';
|
|
3
|
+
import * as SecureStore from 'expo-secure-store';
|
|
4
|
+
const PUBLIC_KEY = 'zerodev.publicKey';
|
|
5
|
+
const PRIVATE_KEY = 'zerodev.privateKey';
|
|
6
|
+
class SecureStoreStamperInner {
|
|
7
|
+
constructor() {
|
|
8
|
+
Object.defineProperty(this, "publicKeyHex", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
configurable: true,
|
|
11
|
+
writable: true,
|
|
12
|
+
value: null
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
async init() {
|
|
16
|
+
const publicKey = await SecureStore.getItemAsync(PUBLIC_KEY);
|
|
17
|
+
const privateKey = await SecureStore.getItemAsync(PRIVATE_KEY);
|
|
18
|
+
if (publicKey && privateKey) {
|
|
19
|
+
this.publicKeyHex = publicKey;
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
await this.resetKeyPair();
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
async getPublicKey() {
|
|
26
|
+
return this.publicKeyHex;
|
|
27
|
+
}
|
|
28
|
+
async resetKeyPair(externalKeyPair) {
|
|
29
|
+
await this.clear();
|
|
30
|
+
const pair = externalKeyPair ?? generateP256KeyPair();
|
|
31
|
+
await SecureStore.setItemAsync(PUBLIC_KEY, pair.publicKey);
|
|
32
|
+
await SecureStore.setItemAsync(PRIVATE_KEY, pair.privateKey);
|
|
33
|
+
this.publicKeyHex = pair.publicKey;
|
|
34
|
+
}
|
|
35
|
+
async getTurnkeyApiKeyStamper() {
|
|
36
|
+
if (!this.publicKeyHex) {
|
|
37
|
+
throw new Error('Key not initialized. Call init() or resetKeyPair() first.');
|
|
38
|
+
}
|
|
39
|
+
const privateKey = await SecureStore.getItemAsync(PRIVATE_KEY);
|
|
40
|
+
if (!privateKey) {
|
|
41
|
+
throw new Error('No private key found in secure store.');
|
|
42
|
+
}
|
|
43
|
+
return new ApiKeyStamper({
|
|
44
|
+
apiPublicKey: this.publicKeyHex,
|
|
45
|
+
apiPrivateKey: privateKey,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
async stamp(payload) {
|
|
49
|
+
const stamper = await this.getTurnkeyApiKeyStamper();
|
|
50
|
+
const { stampHeaderName, stampHeaderValue } = await stamper.stamp(payload);
|
|
51
|
+
return { stampHeaderName, stampHeaderValue };
|
|
52
|
+
}
|
|
53
|
+
async sign(payload) {
|
|
54
|
+
const stamper = await this.getTurnkeyApiKeyStamper();
|
|
55
|
+
return stamper.sign(payload, SignatureFormat.Der);
|
|
56
|
+
}
|
|
57
|
+
async clear() {
|
|
58
|
+
await SecureStore.deleteItemAsync(PUBLIC_KEY);
|
|
59
|
+
await SecureStore.deleteItemAsync(PRIVATE_KEY);
|
|
60
|
+
this.publicKeyHex = null;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
async function warmApiKeyStamperForMetroDev(inner) {
|
|
64
|
+
// `__DEV__` is a global set by React Native's Metro; read it via globalThis
|
|
65
|
+
// so this file needs no ambient `.d.ts` (which would conflict with RN's own
|
|
66
|
+
// typings when both happen to be in scope, e.g. in the editor).
|
|
67
|
+
if (!globalThis.__DEV__)
|
|
68
|
+
return;
|
|
69
|
+
// In Expo dev, Turnkey's API key stamper loads its React Native signer with a
|
|
70
|
+
// dynamic import the first time `stamp()` runs. OTP verification is usually
|
|
71
|
+
// the first code path that stamps a payload, and if the app was backgrounded
|
|
72
|
+
// while the user copied the code, Metro can serve that lazy module after
|
|
73
|
+
// foregrounding and trigger a full JS reload. Warming the stamper during dev
|
|
74
|
+
// startup makes Metro load the signer while the app is foregrounded; production
|
|
75
|
+
// builds do not use Metro and skip this block via `__DEV__`.
|
|
76
|
+
try {
|
|
77
|
+
await inner.stamp('{"purpose":"metro-dev-warmup"}');
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
// biome-ignore lint/suspicious/noConsole: This only runs in dev mode
|
|
81
|
+
console.warn('Failed to warm API key stamper in dev:', error);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
export async function createSecureStoreStamper() {
|
|
85
|
+
const inner = new SecureStoreStamperInner();
|
|
86
|
+
await inner.init();
|
|
87
|
+
await warmApiKeyStamperForMetroDev(inner);
|
|
88
|
+
let pendingKeyPair = null;
|
|
89
|
+
return {
|
|
90
|
+
async getPublicKey() {
|
|
91
|
+
return inner.getPublicKey();
|
|
92
|
+
},
|
|
93
|
+
async stamp(payload) {
|
|
94
|
+
return inner.stamp(payload);
|
|
95
|
+
},
|
|
96
|
+
async sign(payload) {
|
|
97
|
+
return inner.sign(payload);
|
|
98
|
+
},
|
|
99
|
+
async clear() {
|
|
100
|
+
await inner.clear();
|
|
101
|
+
},
|
|
102
|
+
async resetKeyPair() {
|
|
103
|
+
pendingKeyPair = null;
|
|
104
|
+
await inner.resetKeyPair();
|
|
105
|
+
},
|
|
106
|
+
async prepareKeyRotation() {
|
|
107
|
+
const keyPair = generateP256KeyPair();
|
|
108
|
+
pendingKeyPair = keyPair;
|
|
109
|
+
return keyPair.publicKey;
|
|
110
|
+
},
|
|
111
|
+
async commitKeyRotation() {
|
|
112
|
+
if (!pendingKeyPair) {
|
|
113
|
+
throw new Error('No pending key rotation to commit');
|
|
114
|
+
}
|
|
115
|
+
await inner.resetKeyPair(pendingKeyPair);
|
|
116
|
+
pendingKeyPair = null;
|
|
117
|
+
},
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=secureStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secureStore.js","sourceRoot":"","sources":["../../../../src/native/stampers/secureStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAA;AAGhD,MAAM,UAAU,GAAG,mBAAmB,CAAA;AACtC,MAAM,WAAW,GAAG,oBAAoB,CAAA;AAExC,MAAM,uBAAuB;IAA7B;QACU;;;;mBAA8B,IAAI;WAAA;IAmE5C,CAAC;IAjEC,KAAK,CAAC,IAAI;QACR,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;QAC5D,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;QAE9D,IAAI,SAAS,IAAI,UAAU,EAAE,CAAC;YAC5B,IAAI,CAAC,YAAY,GAAG,SAAS,CAAA;QAC/B,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;QAC3B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,eAGlB;QACC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;QAElB,MAAM,IAAI,GAAG,eAAe,IAAI,mBAAmB,EAAE,CAAA;QAErD,MAAM,WAAW,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QAC1D,MAAM,WAAW,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QAE5D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAA;IACpC,CAAC;IAEO,KAAK,CAAC,uBAAuB;QACnC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAA;QACH,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;QAC9D,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;QAC1D,CAAC;QAED,OAAO,IAAI,aAAa,CAAC;YACvB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,aAAa,EAAE,UAAU;SAC1B,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,KAAK,CACT,OAAe;QAEf,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAA;QACpD,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC1E,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAA;IAC9C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAe;QACxB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAA;QACpD,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,CAAA;IACnD,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,WAAW,CAAC,eAAe,CAAC,UAAU,CAAC,CAAA;QAC7C,MAAM,WAAW,CAAC,eAAe,CAAC,WAAW,CAAC,CAAA;QAC9C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;IAC1B,CAAC;CACF;AAED,KAAK,UAAU,4BAA4B,CACzC,KAA8B;IAE9B,4EAA4E;IAC5E,4EAA4E;IAC5E,gEAAgE;IAChE,IAAI,CAAE,UAAoC,CAAC,OAAO;QAAE,OAAM;IAE1D,8EAA8E;IAC9E,4EAA4E;IAC5E,6EAA6E;IAC7E,yEAAyE;IACzE,6EAA6E;IAC7E,gFAAgF;IAChF,6DAA6D;IAC7D,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAA;IACrD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,qEAAqE;QACrE,OAAO,CAAC,IAAI,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAA;IAC/D,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB;IAC5C,MAAM,KAAK,GAAG,IAAI,uBAAuB,EAAE,CAAA;IAC3C,MAAM,KAAK,CAAC,IAAI,EAAE,CAAA;IAClB,MAAM,4BAA4B,CAAC,KAAK,CAAC,CAAA;IAEzC,IAAI,cAAc,GAAqD,IAAI,CAAA;IAE3E,OAAO;QACL,KAAK,CAAC,YAAY;YAChB,OAAO,KAAK,CAAC,YAAY,EAAE,CAAA;QAC7B,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,OAAe;YACzB,OAAO,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC7B,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,OAAe;YACxB,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC5B,CAAC;QACD,KAAK,CAAC,KAAK;YACT,MAAM,KAAK,CAAC,KAAK,EAAE,CAAA;QACrB,CAAC;QACD,KAAK,CAAC,YAAY;YAChB,cAAc,GAAG,IAAI,CAAA;YACrB,MAAM,KAAK,CAAC,YAAY,EAAE,CAAA;QAC5B,CAAC;QACD,KAAK,CAAC,kBAAkB;YACtB,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAA;YACrC,cAAc,GAAG,OAAO,CAAA;YACxB,OAAO,OAAO,CAAC,SAAS,CAAA;QAC1B,CAAC;QACD,KAAK,CAAC,iBAAiB;YACrB,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;YACtD,CAAC;YACD,MAAM,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CAAA;YACxC,cAAc,GAAG,IAAI,CAAA;QACvB,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as AsyncStorageNS from '@react-native-async-storage/async-storage';
|
|
2
|
+
// CJS package whose `.d.ts` declares `export default AsyncStorage`. Our tsconfig
|
|
3
|
+
// keeps `esModuleInterop: false` (and `verbatimModuleSyntax: true`), so a plain
|
|
4
|
+
// `import AsyncStorage from '...'` types as the module namespace instead of
|
|
5
|
+
// the default. Unwrap explicitly. At runtime Metro returns the default object
|
|
6
|
+
// either way; this only affects the static type.
|
|
7
|
+
const AsyncStorage = AsyncStorageNS.default;
|
|
8
|
+
export const asyncStorageAdapter = {
|
|
9
|
+
getItem: (key) => AsyncStorage.getItem(key),
|
|
10
|
+
setItem: (key, value) => AsyncStorage.setItem(key, value),
|
|
11
|
+
removeItem: (key) => AsyncStorage.removeItem(key),
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=asyncStorage.js.map
|