@zerodev/wallet-core 0.0.1-alpha.10
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 +310 -0
- package/dist/_cjs/actions/auth/authenticateWithEmail.js +17 -0
- package/dist/_cjs/actions/auth/authenticateWithEmail.js.map +1 -0
- package/dist/_cjs/actions/auth/authenticateWithOAuth.js +13 -0
- package/dist/_cjs/actions/auth/authenticateWithOAuth.js.map +1 -0
- package/dist/_cjs/actions/auth/getAuthProxyConfigId.js +10 -0
- package/dist/_cjs/actions/auth/getAuthProxyConfigId.js.map +1 -0
- package/dist/_cjs/actions/auth/getUserEmail.js +19 -0
- package/dist/_cjs/actions/auth/getUserEmail.js.map +1 -0
- package/dist/_cjs/actions/auth/getWhoami.js +15 -0
- package/dist/_cjs/actions/auth/getWhoami.js.map +1 -0
- package/dist/_cjs/actions/auth/index.js +22 -0
- package/dist/_cjs/actions/auth/index.js.map +1 -0
- package/dist/_cjs/actions/auth/loginWithOTP.js +15 -0
- package/dist/_cjs/actions/auth/loginWithOTP.js.map +1 -0
- package/dist/_cjs/actions/auth/loginWithStamp.js +39 -0
- package/dist/_cjs/actions/auth/loginWithStamp.js.map +1 -0
- package/dist/_cjs/actions/auth/registerWithOTP.js +16 -0
- package/dist/_cjs/actions/auth/registerWithOTP.js.map +1 -0
- package/dist/_cjs/actions/auth/registerWithPasskey.js +17 -0
- package/dist/_cjs/actions/auth/registerWithPasskey.js.map +1 -0
- package/dist/_cjs/actions/index.js +17 -0
- package/dist/_cjs/actions/index.js.map +1 -0
- package/dist/_cjs/actions/wallet/getUserWallet.js +18 -0
- package/dist/_cjs/actions/wallet/getUserWallet.js.map +1 -0
- package/dist/_cjs/actions/wallet/index.js +10 -0
- package/dist/_cjs/actions/wallet/index.js.map +1 -0
- package/dist/_cjs/actions/wallet/signRawPayload.js +27 -0
- package/dist/_cjs/actions/wallet/signRawPayload.js.map +1 -0
- package/dist/_cjs/actions/wallet/signTransaction.js +26 -0
- package/dist/_cjs/actions/wallet/signTransaction.js.map +1 -0
- package/dist/_cjs/adapters/viem.js +92 -0
- package/dist/_cjs/adapters/viem.js.map +1 -0
- package/dist/_cjs/client/authProxy.js +31 -0
- package/dist/_cjs/client/authProxy.js.map +1 -0
- package/dist/_cjs/client/createClient.js +49 -0
- package/dist/_cjs/client/createClient.js.map +1 -0
- package/dist/_cjs/client/decorators/client.js +23 -0
- package/dist/_cjs/client/decorators/client.js.map +1 -0
- package/dist/_cjs/client/index.js +11 -0
- package/dist/_cjs/client/index.js.map +1 -0
- package/dist/_cjs/client/transports/createTransport.js +31 -0
- package/dist/_cjs/client/transports/createTransport.js.map +1 -0
- package/dist/_cjs/client/transports/rest.js +104 -0
- package/dist/_cjs/client/transports/rest.js.map +1 -0
- package/dist/_cjs/client/types.js +3 -0
- package/dist/_cjs/client/types.js.map +1 -0
- package/dist/_cjs/constants.js +9 -0
- package/dist/_cjs/constants.js.map +1 -0
- package/dist/_cjs/core/createZeroDevWallet.js +302 -0
- package/dist/_cjs/core/createZeroDevWallet.js.map +1 -0
- package/dist/_cjs/errors/request.js +61 -0
- package/dist/_cjs/errors/request.js.map +1 -0
- package/dist/_cjs/index.js +35 -0
- package/dist/_cjs/index.js.map +1 -0
- package/dist/_cjs/package.json +1 -0
- package/dist/_cjs/polyfills/window.js +26 -0
- package/dist/_cjs/polyfills/window.js.map +1 -0
- package/dist/_cjs/stampers/iframeStamper.js +35 -0
- package/dist/_cjs/stampers/iframeStamper.js.map +1 -0
- package/dist/_cjs/stampers/index.js +10 -0
- package/dist/_cjs/stampers/index.js.map +1 -0
- package/dist/_cjs/stampers/indexedDbStamper.js +23 -0
- package/dist/_cjs/stampers/indexedDbStamper.js.map +1 -0
- package/dist/_cjs/stampers/types.js +3 -0
- package/dist/_cjs/stampers/types.js.map +1 -0
- package/dist/_cjs/stampers/webauthnStamper.js +17 -0
- package/dist/_cjs/stampers/webauthnStamper.js.map +1 -0
- package/dist/_cjs/storage/adapters.js +18 -0
- package/dist/_cjs/storage/adapters.js.map +1 -0
- package/dist/_cjs/storage/manager.js +108 -0
- package/dist/_cjs/storage/manager.js.map +1 -0
- package/dist/_cjs/types/session.js +9 -0
- package/dist/_cjs/types/session.js.map +1 -0
- package/dist/_cjs/utils/buildClientSignature.js +39 -0
- package/dist/_cjs/utils/buildClientSignature.js.map +1 -0
- package/dist/_cjs/utils/derToRawSignature.js +63 -0
- package/dist/_cjs/utils/derToRawSignature.js.map +1 -0
- package/dist/_cjs/utils/exportPrivateKey.js +55 -0
- package/dist/_cjs/utils/exportPrivateKey.js.map +1 -0
- package/dist/_cjs/utils/exportWallet.js +70 -0
- package/dist/_cjs/utils/exportWallet.js.map +1 -0
- package/dist/_cjs/utils/utils.js +75 -0
- package/dist/_cjs/utils/utils.js.map +1 -0
- package/dist/_esm/actions/auth/authenticateWithEmail.js +18 -0
- package/dist/_esm/actions/auth/authenticateWithEmail.js.map +1 -0
- package/dist/_esm/actions/auth/authenticateWithOAuth.js +29 -0
- package/dist/_esm/actions/auth/authenticateWithOAuth.js.map +1 -0
- package/dist/_esm/actions/auth/getAuthProxyConfigId.js +13 -0
- package/dist/_esm/actions/auth/getAuthProxyConfigId.js.map +1 -0
- package/dist/_esm/actions/auth/getUserEmail.js +33 -0
- package/dist/_esm/actions/auth/getUserEmail.js.map +1 -0
- package/dist/_esm/actions/auth/getWhoami.js +28 -0
- package/dist/_esm/actions/auth/getWhoami.js.map +1 -0
- package/dist/_esm/actions/auth/index.js +10 -0
- package/dist/_esm/actions/auth/index.js.map +1 -0
- package/dist/_esm/actions/auth/loginWithOTP.js +38 -0
- package/dist/_esm/actions/auth/loginWithOTP.js.map +1 -0
- package/dist/_esm/actions/auth/loginWithStamp.js +52 -0
- package/dist/_esm/actions/auth/loginWithStamp.js.map +1 -0
- package/dist/_esm/actions/auth/registerWithOTP.js +35 -0
- package/dist/_esm/actions/auth/registerWithOTP.js.map +1 -0
- package/dist/_esm/actions/auth/registerWithPasskey.js +36 -0
- package/dist/_esm/actions/auth/registerWithPasskey.js.map +1 -0
- package/dist/_esm/actions/index.js +5 -0
- package/dist/_esm/actions/index.js.map +1 -0
- package/dist/_esm/actions/wallet/getUserWallet.js +31 -0
- package/dist/_esm/actions/wallet/getUserWallet.js.map +1 -0
- package/dist/_esm/actions/wallet/index.js +4 -0
- package/dist/_esm/actions/wallet/index.js.map +1 -0
- package/dist/_esm/actions/wallet/signRawPayload.js +42 -0
- package/dist/_esm/actions/wallet/signRawPayload.js.map +1 -0
- package/dist/_esm/actions/wallet/signTransaction.js +41 -0
- package/dist/_esm/actions/wallet/signTransaction.js.map +1 -0
- package/dist/_esm/adapters/viem.js +94 -0
- package/dist/_esm/adapters/viem.js.map +1 -0
- package/dist/_esm/client/authProxy.js +41 -0
- package/dist/_esm/client/authProxy.js.map +1 -0
- package/dist/_esm/client/createClient.js +60 -0
- package/dist/_esm/client/createClient.js.map +1 -0
- package/dist/_esm/client/decorators/client.js +44 -0
- package/dist/_esm/client/decorators/client.js.map +1 -0
- package/dist/_esm/client/index.js +4 -0
- package/dist/_esm/client/index.js.map +1 -0
- package/dist/_esm/client/transports/createTransport.js +33 -0
- package/dist/_esm/client/transports/createTransport.js.map +1 -0
- package/dist/_esm/client/transports/rest.js +103 -0
- package/dist/_esm/client/transports/rest.js.map +1 -0
- package/dist/_esm/client/types.js +2 -0
- package/dist/_esm/client/types.js.map +1 -0
- package/dist/_esm/constants.js +6 -0
- package/dist/_esm/constants.js.map +1 -0
- package/dist/_esm/core/createZeroDevWallet.js +308 -0
- package/dist/_esm/core/createZeroDevWallet.js.map +1 -0
- package/dist/_esm/errors/request.js +60 -0
- package/dist/_esm/errors/request.js.map +1 -0
- package/dist/_esm/index.js +23 -0
- package/dist/_esm/index.js.map +1 -0
- package/dist/_esm/package.json +1 -0
- package/dist/_esm/polyfills/window.js +24 -0
- package/dist/_esm/polyfills/window.js.map +1 -0
- package/dist/_esm/stampers/iframeStamper.js +32 -0
- package/dist/_esm/stampers/iframeStamper.js.map +1 -0
- package/dist/_esm/stampers/index.js +4 -0
- package/dist/_esm/stampers/index.js.map +1 -0
- package/dist/_esm/stampers/indexedDbStamper.js +20 -0
- package/dist/_esm/stampers/indexedDbStamper.js.map +1 -0
- package/dist/_esm/stampers/types.js +2 -0
- package/dist/_esm/stampers/types.js.map +1 -0
- package/dist/_esm/stampers/webauthnStamper.js +15 -0
- package/dist/_esm/stampers/webauthnStamper.js.map +1 -0
- package/dist/_esm/storage/adapters.js +15 -0
- package/dist/_esm/storage/adapters.js.map +1 -0
- package/dist/_esm/storage/manager.js +118 -0
- package/dist/_esm/storage/manager.js.map +1 -0
- package/dist/_esm/types/session.js +6 -0
- package/dist/_esm/types/session.js.map +1 -0
- package/dist/_esm/utils/buildClientSignature.js +64 -0
- package/dist/_esm/utils/buildClientSignature.js.map +1 -0
- package/dist/_esm/utils/derToRawSignature.js +89 -0
- package/dist/_esm/utils/derToRawSignature.js.map +1 -0
- package/dist/_esm/utils/exportPrivateKey.js +83 -0
- package/dist/_esm/utils/exportPrivateKey.js.map +1 -0
- package/dist/_esm/utils/exportWallet.js +98 -0
- package/dist/_esm/utils/exportWallet.js.map +1 -0
- package/dist/_esm/utils/utils.js +105 -0
- package/dist/_esm/utils/utils.js.map +1 -0
- package/dist/_types/actions/auth/authenticateWithEmail.d.ts +33 -0
- package/dist/_types/actions/auth/authenticateWithEmail.d.ts.map +1 -0
- package/dist/_types/actions/auth/authenticateWithOAuth.d.ts +38 -0
- package/dist/_types/actions/auth/authenticateWithOAuth.d.ts.map +1 -0
- 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/getUserEmail.d.ts +32 -0
- package/dist/_types/actions/auth/getUserEmail.d.ts.map +1 -0
- package/dist/_types/actions/auth/getWhoami.d.ts +35 -0
- package/dist/_types/actions/auth/getWhoami.d.ts.map +1 -0
- package/dist/_types/actions/auth/index.d.ts +10 -0
- package/dist/_types/actions/auth/index.d.ts.map +1 -0
- package/dist/_types/actions/auth/loginWithOTP.d.ts +41 -0
- package/dist/_types/actions/auth/loginWithOTP.d.ts.map +1 -0
- package/dist/_types/actions/auth/loginWithStamp.d.ts +37 -0
- package/dist/_types/actions/auth/loginWithStamp.d.ts.map +1 -0
- package/dist/_types/actions/auth/registerWithOTP.d.ts +46 -0
- package/dist/_types/actions/auth/registerWithOTP.d.ts.map +1 -0
- package/dist/_types/actions/auth/registerWithPasskey.d.ts +53 -0
- package/dist/_types/actions/auth/registerWithPasskey.d.ts.map +1 -0
- package/dist/_types/actions/index.d.ts +3 -0
- package/dist/_types/actions/index.d.ts.map +1 -0
- package/dist/_types/actions/wallet/getUserWallet.d.ts +34 -0
- package/dist/_types/actions/wallet/getUserWallet.d.ts.map +1 -0
- package/dist/_types/actions/wallet/index.d.ts +4 -0
- package/dist/_types/actions/wallet/index.d.ts.map +1 -0
- package/dist/_types/actions/wallet/signRawPayload.d.ts +39 -0
- package/dist/_types/actions/wallet/signRawPayload.d.ts.map +1 -0
- package/dist/_types/actions/wallet/signTransaction.d.ts +35 -0
- package/dist/_types/actions/wallet/signTransaction.d.ts.map +1 -0
- package/dist/_types/adapters/viem.d.ts +10 -0
- package/dist/_types/adapters/viem.d.ts.map +1 -0
- package/dist/_types/client/authProxy.d.ts +36 -0
- package/dist/_types/client/authProxy.d.ts.map +1 -0
- package/dist/_types/client/createClient.d.ts +17 -0
- package/dist/_types/client/createClient.d.ts.map +1 -0
- package/dist/_types/client/decorators/client.d.ts +81 -0
- package/dist/_types/client/decorators/client.d.ts.map +1 -0
- package/dist/_types/client/index.d.ts +5 -0
- package/dist/_types/client/index.d.ts.map +1 -0
- package/dist/_types/client/transports/createTransport.d.ts +17 -0
- package/dist/_types/client/transports/createTransport.d.ts.map +1 -0
- package/dist/_types/client/transports/rest.d.ts +35 -0
- package/dist/_types/client/transports/rest.d.ts.map +1 -0
- package/dist/_types/client/types.d.ts +59 -0
- package/dist/_types/client/types.d.ts.map +1 -0
- package/dist/_types/constants.d.ts +6 -0
- package/dist/_types/constants.d.ts.map +1 -0
- package/dist/_types/core/createZeroDevWallet.d.ts +52 -0
- package/dist/_types/core/createZeroDevWallet.d.ts.map +1 -0
- package/dist/_types/errors/request.d.ts +12 -0
- package/dist/_types/errors/request.d.ts.map +1 -0
- package/dist/_types/index.d.ts +20 -0
- package/dist/_types/index.d.ts.map +1 -0
- package/dist/_types/polyfills/window.d.ts +15 -0
- package/dist/_types/polyfills/window.d.ts.map +1 -0
- package/dist/_types/stampers/iframeStamper.d.ts +7 -0
- package/dist/_types/stampers/iframeStamper.d.ts.map +1 -0
- package/dist/_types/stampers/index.d.ts +5 -0
- package/dist/_types/stampers/index.d.ts.map +1 -0
- package/dist/_types/stampers/indexedDbStamper.d.ts +3 -0
- package/dist/_types/stampers/indexedDbStamper.d.ts.map +1 -0
- package/dist/_types/stampers/types.d.ts +25 -0
- package/dist/_types/stampers/types.d.ts.map +1 -0
- package/dist/_types/stampers/webauthnStamper.d.ts +5 -0
- package/dist/_types/stampers/webauthnStamper.d.ts.map +1 -0
- package/dist/_types/storage/adapters.d.ts +3 -0
- package/dist/_types/storage/adapters.d.ts.map +1 -0
- package/dist/_types/storage/manager.d.ts +19 -0
- package/dist/_types/storage/manager.d.ts.map +1 -0
- package/dist/_types/types/session.d.ts +17 -0
- package/dist/_types/types/session.d.ts.map +1 -0
- package/dist/_types/utils/buildClientSignature.d.ts +25 -0
- package/dist/_types/utils/buildClientSignature.d.ts.map +1 -0
- package/dist/_types/utils/derToRawSignature.d.ts +11 -0
- package/dist/_types/utils/derToRawSignature.d.ts.map +1 -0
- package/dist/_types/utils/exportPrivateKey.d.ts +47 -0
- package/dist/_types/utils/exportPrivateKey.d.ts.map +1 -0
- package/dist/_types/utils/exportWallet.d.ts +44 -0
- package/dist/_types/utils/exportWallet.d.ts.map +1 -0
- package/dist/_types/utils/utils.d.ts +52 -0
- package/dist/_types/utils/utils.d.ts.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/package.json +74 -0
- package/src/actions/auth/authenticateWithEmail.ts +52 -0
- package/src/actions/auth/authenticateWithOAuth.ts +52 -0
- package/src/actions/auth/getAuthProxyConfigId.ts +20 -0
- package/src/actions/auth/getUserEmail.ts +52 -0
- package/src/actions/auth/getWhoami.ts +51 -0
- package/src/actions/auth/index.ts +47 -0
- package/src/actions/auth/loginWithOTP.ts +57 -0
- package/src/actions/auth/loginWithStamp.ts +79 -0
- package/src/actions/auth/registerWithOTP.ts +64 -0
- package/src/actions/auth/registerWithPasskey.ts +72 -0
- package/src/actions/index.ts +41 -0
- package/src/actions/wallet/getUserWallet.ts +53 -0
- package/src/actions/wallet/index.ts +17 -0
- package/src/actions/wallet/signRawPayload.ts +75 -0
- package/src/actions/wallet/signTransaction.ts +64 -0
- package/src/adapters/viem.ts +162 -0
- package/src/client/authProxy.ts +78 -0
- package/src/client/createClient.ts +90 -0
- package/src/client/decorators/client.ts +171 -0
- package/src/client/index.ts +19 -0
- package/src/client/transports/createTransport.ts +54 -0
- package/src/client/transports/rest.ts +138 -0
- package/src/client/types.ts +64 -0
- package/src/constants.ts +5 -0
- package/src/core/createZeroDevWallet.ts +447 -0
- package/src/errors/request.ts +36 -0
- package/src/index.ts +79 -0
- package/src/polyfills/window.ts +24 -0
- package/src/stampers/iframeStamper.ts +49 -0
- package/src/stampers/index.ts +8 -0
- package/src/stampers/indexedDbStamper.ts +22 -0
- package/src/stampers/types.ts +35 -0
- package/src/stampers/webauthnStamper.ts +21 -0
- package/src/storage/adapters.ts +20 -0
- package/src/storage/manager.ts +170 -0
- package/src/types/session.ts +18 -0
- package/src/utils/buildClientSignature.ts +86 -0
- package/src/utils/derToRawSignature.ts +103 -0
- package/src/utils/exportPrivateKey.ts +116 -0
- package/src/utils/exportWallet.ts +130 -0
- package/src/utils/utils.ts +136 -0
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createStorageManager = createStorageManager;
|
|
4
|
+
const utils_js_1 = require("../utils/utils.js");
|
|
5
|
+
function createStorageManager(adapter) {
|
|
6
|
+
const ACTIVE_SESSION_KEY = '@zerodev/active_session';
|
|
7
|
+
const ALL_SESSIONS_KEY = '@zerodev/sessions';
|
|
8
|
+
const storeSession = async (sessionData, sessionKey) => {
|
|
9
|
+
await adapter.setItem(sessionKey, JSON.stringify(sessionData));
|
|
10
|
+
const sessionsStr = await adapter.getItem(ALL_SESSIONS_KEY);
|
|
11
|
+
const sessions = JSON.parse(sessionsStr || '[]');
|
|
12
|
+
if (!sessions.includes(sessionKey)) {
|
|
13
|
+
sessions.push(sessionKey);
|
|
14
|
+
await adapter.setItem(ALL_SESSIONS_KEY, JSON.stringify(sessions));
|
|
15
|
+
}
|
|
16
|
+
await adapter.setItem(ACTIVE_SESSION_KEY, sessionKey);
|
|
17
|
+
};
|
|
18
|
+
const getActiveSession = async () => {
|
|
19
|
+
const activeKey = await adapter.getItem(ACTIVE_SESSION_KEY);
|
|
20
|
+
if (!activeKey)
|
|
21
|
+
return undefined;
|
|
22
|
+
return getSession(activeKey);
|
|
23
|
+
};
|
|
24
|
+
const getActiveSessionKey = async () => {
|
|
25
|
+
const key = await adapter.getItem(ACTIVE_SESSION_KEY);
|
|
26
|
+
return key || undefined;
|
|
27
|
+
};
|
|
28
|
+
const getSession = async (sessionKey) => {
|
|
29
|
+
const sessionStr = await adapter.getItem(sessionKey);
|
|
30
|
+
if (!sessionStr)
|
|
31
|
+
return undefined;
|
|
32
|
+
try {
|
|
33
|
+
const session = JSON.parse(sessionStr);
|
|
34
|
+
if (session.expiry && (0, utils_js_1.normalizeTimestamp)(session.expiry) < Date.now()) {
|
|
35
|
+
await clearSession(sessionKey);
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
return session;
|
|
39
|
+
}
|
|
40
|
+
catch (_error) {
|
|
41
|
+
await clearSession(sessionKey);
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
const listSessionKeys = async () => {
|
|
46
|
+
const sessionsStr = await adapter.getItem(ALL_SESSIONS_KEY);
|
|
47
|
+
const sessionKeys = JSON.parse(sessionsStr || '[]');
|
|
48
|
+
const validKeys = [];
|
|
49
|
+
for (const key of sessionKeys) {
|
|
50
|
+
const exists = await adapter.getItem(key);
|
|
51
|
+
if (exists) {
|
|
52
|
+
validKeys.push(key);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
if (validKeys.length !== sessionKeys.length) {
|
|
56
|
+
await adapter.setItem(ALL_SESSIONS_KEY, JSON.stringify(validKeys));
|
|
57
|
+
}
|
|
58
|
+
return validKeys;
|
|
59
|
+
};
|
|
60
|
+
const listSessions = async () => {
|
|
61
|
+
const sessionKeys = await listSessionKeys();
|
|
62
|
+
const sessions = [];
|
|
63
|
+
for (const key of sessionKeys) {
|
|
64
|
+
const session = await getSession(key);
|
|
65
|
+
if (session) {
|
|
66
|
+
sessions.push(session);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return sessions;
|
|
70
|
+
};
|
|
71
|
+
const setActiveSession = async (sessionKey) => {
|
|
72
|
+
const session = await getSession(sessionKey);
|
|
73
|
+
if (!session) {
|
|
74
|
+
throw new Error(`Session not found: ${sessionKey}`);
|
|
75
|
+
}
|
|
76
|
+
await adapter.setItem(ACTIVE_SESSION_KEY, sessionKey);
|
|
77
|
+
};
|
|
78
|
+
const clearSession = async (sessionKey) => {
|
|
79
|
+
await adapter.removeItem(sessionKey);
|
|
80
|
+
const sessions = await listSessionKeys();
|
|
81
|
+
const updated = sessions.filter((k) => k !== sessionKey);
|
|
82
|
+
await adapter.setItem(ALL_SESSIONS_KEY, JSON.stringify(updated));
|
|
83
|
+
const activeKey = await adapter.getItem(ACTIVE_SESSION_KEY);
|
|
84
|
+
if (activeKey === sessionKey) {
|
|
85
|
+
await adapter.removeItem(ACTIVE_SESSION_KEY);
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
const clearAllSessions = async () => {
|
|
89
|
+
const sessions = await listSessionKeys();
|
|
90
|
+
for (const key of sessions) {
|
|
91
|
+
await adapter.removeItem(key);
|
|
92
|
+
}
|
|
93
|
+
await adapter.removeItem(ALL_SESSIONS_KEY);
|
|
94
|
+
await adapter.removeItem(ACTIVE_SESSION_KEY);
|
|
95
|
+
};
|
|
96
|
+
return {
|
|
97
|
+
storeSession,
|
|
98
|
+
getActiveSession,
|
|
99
|
+
getActiveSessionKey,
|
|
100
|
+
getSession,
|
|
101
|
+
listSessionKeys,
|
|
102
|
+
listSessions,
|
|
103
|
+
setActiveSession,
|
|
104
|
+
clearSession,
|
|
105
|
+
clearAllSessions,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/storage/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SessionType = void 0;
|
|
4
|
+
var SessionType;
|
|
5
|
+
(function (SessionType) {
|
|
6
|
+
SessionType["READ_ONLY"] = "SESSION_TYPE_READ_ONLY";
|
|
7
|
+
SessionType["READ_WRITE"] = "SESSION_TYPE_READ_WRITE";
|
|
8
|
+
})(SessionType || (exports.SessionType = SessionType = {}));
|
|
9
|
+
//# sourceMappingURL=session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/types/session.ts"],"names":[],"mappings":";;;AAAA,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,mDAAoC,CAAA;IACpC,qDAAsC,CAAA;AACxC,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildClientSignature = buildClientSignature;
|
|
4
|
+
const derToRawSignature_js_1 = require("./derToRawSignature.js");
|
|
5
|
+
async function buildClientSignature(params) {
|
|
6
|
+
const { verificationToken, publicKey, stamper } = params;
|
|
7
|
+
const tokenId = extractTokenIdFromJwt(verificationToken);
|
|
8
|
+
const signaturePayload = {
|
|
9
|
+
login: { publicKey },
|
|
10
|
+
tokenId,
|
|
11
|
+
type: 'USAGE_TYPE_LOGIN',
|
|
12
|
+
};
|
|
13
|
+
const message = JSON.stringify(signaturePayload);
|
|
14
|
+
const stamp = await stamper.stamp(message);
|
|
15
|
+
const stampData = JSON.parse(base64UrlDecode(stamp.stampHeaderValue));
|
|
16
|
+
const derSignatureHex = stampData.signature;
|
|
17
|
+
const rawSignature = (0, derToRawSignature_js_1.derToRawSignature)(derSignatureHex);
|
|
18
|
+
return rawSignature;
|
|
19
|
+
}
|
|
20
|
+
function extractTokenIdFromJwt(jwt) {
|
|
21
|
+
const parts = jwt.split('.');
|
|
22
|
+
if (parts.length !== 3) {
|
|
23
|
+
throw new Error('Invalid JWT format');
|
|
24
|
+
}
|
|
25
|
+
const payload = JSON.parse(base64UrlDecode(parts[1]));
|
|
26
|
+
if (!payload.id) {
|
|
27
|
+
throw new Error('JWT payload missing id field');
|
|
28
|
+
}
|
|
29
|
+
return payload.id;
|
|
30
|
+
}
|
|
31
|
+
function base64UrlDecode(str) {
|
|
32
|
+
let base64 = str.replace(/-/g, '+').replace(/_/g, '/');
|
|
33
|
+
const padding = base64.length % 4;
|
|
34
|
+
if (padding) {
|
|
35
|
+
base64 += '='.repeat(4 - padding);
|
|
36
|
+
}
|
|
37
|
+
return atob(base64);
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=buildClientSignature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildClientSignature.js","sourceRoot":"","sources":["../../../src/utils/buildClientSignature.ts"],"names":[],"mappings":";;AA0BA,oDA6BC;AAtDD,iEAA0D;AAyBnD,KAAK,UAAU,oBAAoB,CACxC,MAAkC;IAElC,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;IAGxD,MAAM,OAAO,GAAG,qBAAqB,CAAC,iBAAiB,CAAC,CAAA;IAGxD,MAAM,gBAAgB,GAAG;QACvB,KAAK,EAAE,EAAE,SAAS,EAAE;QACpB,OAAO;QACP,IAAI,EAAE,kBAAkB;KACzB,CAAA;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAA;IAGhD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAI1C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAA;IACrE,MAAM,eAAe,GAAW,SAAS,CAAC,SAAS,CAAA;IAGnD,MAAM,YAAY,GAAG,IAAA,wCAAiB,EAAC,eAAe,CAAC,CAAA;IAGvD,OAAO,YAAY,CAAA;AACrB,CAAC;AAKD,SAAS,qBAAqB,CAAC,GAAW;IACxC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC5B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;IACvC,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAA;IACtD,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;IACjD,CAAC;IAED,OAAO,OAAO,CAAC,EAAE,CAAA;AACnB,CAAC;AAKD,SAAS,eAAe,CAAC,GAAW;IAElC,IAAI,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACtD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;IACjC,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAA;IACnC,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAA;AACrB,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.derToRawSignature = derToRawSignature;
|
|
4
|
+
function derToRawSignature(derHex) {
|
|
5
|
+
const der = hexToBytes(derHex);
|
|
6
|
+
if (der[0] !== 0x30) {
|
|
7
|
+
throw new Error('Invalid DER signature: expected SEQUENCE tag (0x30)');
|
|
8
|
+
}
|
|
9
|
+
let offset = 2;
|
|
10
|
+
if (der[offset] !== 0x02) {
|
|
11
|
+
throw new Error('Invalid DER signature: expected INTEGER tag (0x02) for r');
|
|
12
|
+
}
|
|
13
|
+
offset++;
|
|
14
|
+
const rLength = der[offset];
|
|
15
|
+
offset++;
|
|
16
|
+
const rBytes = der.slice(offset, offset + rLength);
|
|
17
|
+
offset += rLength;
|
|
18
|
+
if (der[offset] !== 0x02) {
|
|
19
|
+
throw new Error('Invalid DER signature: expected INTEGER tag (0x02) for s');
|
|
20
|
+
}
|
|
21
|
+
offset++;
|
|
22
|
+
const sLength = der[offset];
|
|
23
|
+
offset++;
|
|
24
|
+
const sBytes = der.slice(offset, offset + sLength);
|
|
25
|
+
const r = padTo32Bytes(stripLeadingZeros(rBytes));
|
|
26
|
+
const s = padTo32Bytes(stripLeadingZeros(sBytes));
|
|
27
|
+
const raw = new Uint8Array(64);
|
|
28
|
+
raw.set(r, 0);
|
|
29
|
+
raw.set(s, 32);
|
|
30
|
+
return bytesToHex(raw);
|
|
31
|
+
}
|
|
32
|
+
function hexToBytes(hex) {
|
|
33
|
+
const cleanHex = hex.startsWith('0x') ? hex.slice(2) : hex;
|
|
34
|
+
const bytes = new Uint8Array(cleanHex.length / 2);
|
|
35
|
+
for (let i = 0; i < bytes.length; i++) {
|
|
36
|
+
bytes[i] = parseInt(cleanHex.slice(i * 2, i * 2 + 2), 16);
|
|
37
|
+
}
|
|
38
|
+
return bytes;
|
|
39
|
+
}
|
|
40
|
+
function bytesToHex(bytes) {
|
|
41
|
+
return Array.from(bytes)
|
|
42
|
+
.map((b) => b.toString(16).padStart(2, '0'))
|
|
43
|
+
.join('');
|
|
44
|
+
}
|
|
45
|
+
function stripLeadingZeros(bytes) {
|
|
46
|
+
let start = 0;
|
|
47
|
+
while (start < bytes.length - 1 && bytes[start] === 0) {
|
|
48
|
+
start++;
|
|
49
|
+
}
|
|
50
|
+
return bytes.slice(start);
|
|
51
|
+
}
|
|
52
|
+
function padTo32Bytes(bytes) {
|
|
53
|
+
if (bytes.length === 32) {
|
|
54
|
+
return bytes;
|
|
55
|
+
}
|
|
56
|
+
if (bytes.length > 32) {
|
|
57
|
+
return bytes.slice(bytes.length - 32);
|
|
58
|
+
}
|
|
59
|
+
const padded = new Uint8Array(32);
|
|
60
|
+
padded.set(bytes, 32 - bytes.length);
|
|
61
|
+
return padded;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=derToRawSignature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"derToRawSignature.js","sourceRoot":"","sources":["../../../src/utils/derToRawSignature.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.exportPrivateKey = exportPrivateKey;
|
|
4
|
+
async function exportPrivateKey(params) {
|
|
5
|
+
const { targetPublicKey, wallet, address: addressParam } = params;
|
|
6
|
+
const session = await wallet.getSession();
|
|
7
|
+
if (!session) {
|
|
8
|
+
throw new Error('Session not found');
|
|
9
|
+
}
|
|
10
|
+
const { organizationId } = session;
|
|
11
|
+
let address = addressParam;
|
|
12
|
+
if (!address) {
|
|
13
|
+
const account = await wallet.toAccount();
|
|
14
|
+
if (!account?.address) {
|
|
15
|
+
throw new Error('Could not get address from wallet account');
|
|
16
|
+
}
|
|
17
|
+
address = account.address;
|
|
18
|
+
}
|
|
19
|
+
const exportBody = JSON.stringify({
|
|
20
|
+
type: 'ACTIVITY_TYPE_EXPORT_WALLET_ACCOUNT',
|
|
21
|
+
timestampMs: Date.now().toString(),
|
|
22
|
+
organizationId: organizationId,
|
|
23
|
+
parameters: {
|
|
24
|
+
address: address,
|
|
25
|
+
targetPublicKey,
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
const stamperKey = session.stamperType === 'indexedDb' ? 'indexedDbStamper' : 'webauthnStamper';
|
|
29
|
+
const stamper = wallet.client[stamperKey];
|
|
30
|
+
if (!stamper) {
|
|
31
|
+
throw new Error(`Stamper '${stamperKey}' not found on wallet.client`);
|
|
32
|
+
}
|
|
33
|
+
const exportStamp = await stamper.stamp(exportBody);
|
|
34
|
+
if (!exportStamp) {
|
|
35
|
+
throw new Error('Failed to stamp export body');
|
|
36
|
+
}
|
|
37
|
+
const exportResponse = await fetch('https://api.turnkey.com/public/v1/submit/export_wallet_account', {
|
|
38
|
+
method: 'POST',
|
|
39
|
+
body: exportBody,
|
|
40
|
+
headers: {
|
|
41
|
+
[exportStamp.stampHeaderName]: exportStamp.stampHeaderValue,
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
if (!exportResponse.ok) {
|
|
45
|
+
const errorText = await exportResponse.text();
|
|
46
|
+
throw new Error(`Failed to export wallet account: ${exportResponse.status} ${errorText}`);
|
|
47
|
+
}
|
|
48
|
+
const exportData = await exportResponse.json();
|
|
49
|
+
const exportBundle = exportData?.activity?.result?.exportWalletAccountResult?.exportBundle;
|
|
50
|
+
if (!exportBundle) {
|
|
51
|
+
throw new Error(`Export bundle not found in response: ${JSON.stringify(exportData)}`);
|
|
52
|
+
}
|
|
53
|
+
return { exportBundle, address: address, organizationId };
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=exportPrivateKey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exportPrivateKey.js","sourceRoot":"","sources":["../../../src/utils/exportPrivateKey.ts"],"names":[],"mappings":";;AA0CA,4CAuEC;AAvEM,KAAK,UAAU,gBAAgB,CACpC,MAAkC;IAElC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,CAAA;IAEjE,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAA;IACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;IACtC,CAAC;IACD,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAA;IAGlC,IAAI,OAAO,GAAG,YAAY,CAAA;IAC1B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAA;QACxC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;QAC9D,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;IAC3B,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,EAAE,qCAAqC;QAC3C,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QAClC,cAAc,EAAE,cAAc;QAC9B,UAAU,EAAE;YACV,OAAO,EAAE,OAAO;YAChB,eAAe;SAChB;KACF,CAAC,CAAA;IAEF,MAAM,UAAU,GACd,OAAO,CAAC,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,CAAA;IAC9E,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,YAAY,UAAU,8BAA8B,CAAC,CAAA;IACvE,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IACnD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;IAChD,CAAC;IAED,MAAM,cAAc,GAAG,MAAM,KAAK,CAChC,gEAAgE,EAChE;QACE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE;YACP,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,WAAW,CAAC,gBAAgB;SAC5D;KACF,CACF,CAAA;IACD,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,CAAA;QAC7C,MAAM,IAAI,KAAK,CACb,oCAAoC,cAAc,CAAC,MAAM,IAAI,SAAS,EAAE,CACzE,CAAA;IACH,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,CAAA;IAE9C,MAAM,YAAY,GAChB,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,yBAAyB,EAAE,YAAY,CAAA;IAEvE,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACb,wCAAwC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CACrE,CAAA;IACH,CAAC;IAED,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,OAAQ,EAAE,cAAc,EAAE,CAAA;AAC5D,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.exportWallet = exportWallet;
|
|
4
|
+
async function exportWallet(params) {
|
|
5
|
+
const { targetPublicKey, wallet } = params;
|
|
6
|
+
try {
|
|
7
|
+
const session = await wallet.getSession();
|
|
8
|
+
if (!session) {
|
|
9
|
+
throw new Error('Session not found');
|
|
10
|
+
}
|
|
11
|
+
const { organizationId } = session;
|
|
12
|
+
const listWalletsBody = JSON.stringify({
|
|
13
|
+
organizationId,
|
|
14
|
+
});
|
|
15
|
+
const listWalletsStamp = await wallet.client[session.stamperType === 'indexedDb'
|
|
16
|
+
? 'indexedDbStamper'
|
|
17
|
+
: 'webauthnStamper'].stamp(listWalletsBody);
|
|
18
|
+
if (!listWalletsStamp) {
|
|
19
|
+
throw new Error('Failed to stamp list wallets body');
|
|
20
|
+
}
|
|
21
|
+
const listWalletsResponse = await fetch('https://api.turnkey.com/public/v1/query/list_wallets', {
|
|
22
|
+
method: 'POST',
|
|
23
|
+
body: listWalletsBody,
|
|
24
|
+
headers: {
|
|
25
|
+
[listWalletsStamp.stampHeaderName]: listWalletsStamp.stampHeaderValue,
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
if (!listWalletsResponse.ok) {
|
|
29
|
+
throw new Error('Failed to list wallets');
|
|
30
|
+
}
|
|
31
|
+
const listWalletsData = await listWalletsResponse.json();
|
|
32
|
+
const walletId = listWalletsData.wallets[0].walletId;
|
|
33
|
+
const exportWalletBody = JSON.stringify({
|
|
34
|
+
type: 'ACTIVITY_TYPE_EXPORT_WALLET',
|
|
35
|
+
timestampMs: Date.now().toString(),
|
|
36
|
+
organizationId: organizationId,
|
|
37
|
+
parameters: {
|
|
38
|
+
walletId: walletId,
|
|
39
|
+
targetPublicKey,
|
|
40
|
+
language: 'MNEMONIC_LANGUAGE_ENGLISH',
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
const exportWalletStamp = await wallet.client[session.stamperType === 'indexedDb'
|
|
44
|
+
? 'indexedDbStamper'
|
|
45
|
+
: 'webauthnStamper'].stamp(exportWalletBody);
|
|
46
|
+
if (!exportWalletStamp) {
|
|
47
|
+
throw new Error('Failed to stamp export wallet body');
|
|
48
|
+
}
|
|
49
|
+
const exportWalletResponse = await fetch('https://api.turnkey.com/public/v1/submit/export_wallet', {
|
|
50
|
+
method: 'POST',
|
|
51
|
+
body: exportWalletBody,
|
|
52
|
+
headers: {
|
|
53
|
+
[exportWalletStamp.stampHeaderName]: exportWalletStamp.stampHeaderValue,
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
if (!exportWalletResponse.ok) {
|
|
57
|
+
throw new Error('Failed to export wallet');
|
|
58
|
+
}
|
|
59
|
+
const exportWalletData = await exportWalletResponse.json();
|
|
60
|
+
const exportBundle = exportWalletData?.activity?.result?.exportWalletResult?.exportBundle;
|
|
61
|
+
if (!exportBundle) {
|
|
62
|
+
throw new Error('Export bundle not found in response');
|
|
63
|
+
}
|
|
64
|
+
return { exportBundle, walletId, organizationId };
|
|
65
|
+
}
|
|
66
|
+
catch (_) {
|
|
67
|
+
throw new Error('Error exporting wallet');
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=exportWallet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exportWallet.js","sourceRoot":"","sources":["../../../src/utils/exportWallet.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.humanReadableDateTime = exports.base64UrlEncode = exports.generateRandomBuffer = void 0;
|
|
4
|
+
exports.parseSession = parseSession;
|
|
5
|
+
exports.normalizeTimestamp = normalizeTimestamp;
|
|
6
|
+
exports.pointEncode = pointEncode;
|
|
7
|
+
exports.uint8ArrayToHexString = uint8ArrayToHexString;
|
|
8
|
+
exports.generateCompressedPublicKeyFromKeyPair = generateCompressedPublicKeyFromKeyPair;
|
|
9
|
+
function parseSession(token) {
|
|
10
|
+
if (typeof token !== 'string') {
|
|
11
|
+
return token;
|
|
12
|
+
}
|
|
13
|
+
const [, payload] = token.split('.');
|
|
14
|
+
if (!payload) {
|
|
15
|
+
throw new Error('Invalid JWT: Missing payload');
|
|
16
|
+
}
|
|
17
|
+
const decoded = JSON.parse(Buffer.from(payload, 'base64').toString());
|
|
18
|
+
const { exp, public_key: publicKey, session_type: sessionType, user_id: userId, organization_id: organizationId, } = decoded;
|
|
19
|
+
if (!exp || !publicKey || !sessionType || !userId || !organizationId) {
|
|
20
|
+
throw new Error('JWT payload missing required fields');
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
sessionType,
|
|
24
|
+
userId,
|
|
25
|
+
organizationId,
|
|
26
|
+
expiry: exp,
|
|
27
|
+
token: publicKey,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
function normalizeTimestamp(timestamp) {
|
|
31
|
+
return timestamp < 1e10 ? timestamp * 1_000 : timestamp;
|
|
32
|
+
}
|
|
33
|
+
const generateRandomBuffer = () => {
|
|
34
|
+
const arr = new Uint8Array(32);
|
|
35
|
+
crypto.getRandomValues(arr);
|
|
36
|
+
return arr.buffer;
|
|
37
|
+
};
|
|
38
|
+
exports.generateRandomBuffer = generateRandomBuffer;
|
|
39
|
+
const base64UrlEncode = (challenge) => {
|
|
40
|
+
return Buffer.from(challenge)
|
|
41
|
+
.toString('base64')
|
|
42
|
+
.replace(/\+/g, '-')
|
|
43
|
+
.replace(/\//g, '_')
|
|
44
|
+
.replace(/=/g, '');
|
|
45
|
+
};
|
|
46
|
+
exports.base64UrlEncode = base64UrlEncode;
|
|
47
|
+
function pointEncode(raw) {
|
|
48
|
+
if (raw.length !== 65 || raw[0] !== 0x04) {
|
|
49
|
+
throw new Error('Invalid uncompressed P-256 key');
|
|
50
|
+
}
|
|
51
|
+
const x = raw.slice(1, 33);
|
|
52
|
+
const y = raw.slice(33, 65);
|
|
53
|
+
if (x.length !== 32 || y.length !== 32) {
|
|
54
|
+
throw new Error('Invalid x or y length');
|
|
55
|
+
}
|
|
56
|
+
const prefix = (y[31] & 1) === 0 ? 0x02 : 0x03;
|
|
57
|
+
const compressed = new Uint8Array(33);
|
|
58
|
+
compressed[0] = prefix;
|
|
59
|
+
compressed.set(x, 1);
|
|
60
|
+
return compressed;
|
|
61
|
+
}
|
|
62
|
+
function uint8ArrayToHexString(input) {
|
|
63
|
+
return input.reduce((result, x) => result + x.toString(16).padStart(2, '0'), '');
|
|
64
|
+
}
|
|
65
|
+
async function generateCompressedPublicKeyFromKeyPair(keyPair) {
|
|
66
|
+
const rawPubKey = new Uint8Array(await crypto.subtle.exportKey('raw', keyPair.publicKey));
|
|
67
|
+
const compressedPubKey = pointEncode(rawPubKey);
|
|
68
|
+
const compressedHex = uint8ArrayToHexString(compressedPubKey);
|
|
69
|
+
return compressedHex;
|
|
70
|
+
}
|
|
71
|
+
const humanReadableDateTime = () => {
|
|
72
|
+
return new Date().toLocaleString().replaceAll('/', '-').replaceAll(':', '.');
|
|
73
|
+
};
|
|
74
|
+
exports.humanReadableDateTime = humanReadableDateTime;
|
|
75
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/utils/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @deprecated Use {@link registerWithOTP} instead
|
|
3
|
+
* See {@link registerWithOTP} for more details on how to authenticate with email.
|
|
4
|
+
*/
|
|
5
|
+
export async function authenticateWithEmail(client, params) {
|
|
6
|
+
const { email, projectId, targetPublicKey, emailCustomization } = params;
|
|
7
|
+
return await client.request({
|
|
8
|
+
path: `${projectId}/auth/email-magic`,
|
|
9
|
+
method: 'POST',
|
|
10
|
+
body: {
|
|
11
|
+
email,
|
|
12
|
+
emailCustomization,
|
|
13
|
+
targetPublicKey,
|
|
14
|
+
projectId,
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=authenticateWithEmail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authenticateWithEmail.js","sourceRoot":"","sources":["../../../../src/actions/auth/authenticateWithEmail.ts"],"names":[],"mappings":"AA+BA;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAc,EACd,MAAuC;IAEvC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAAA;IAExE,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,GAAG,SAAS,mBAAmB;QACrC,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACJ,KAAK;YACL,kBAAkB;YAClB,eAAe;YACf,SAAS;SACV;KACF,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Authenticates a user with OAuth using cookie-based backend flow
|
|
3
|
+
*
|
|
4
|
+
* The backend reads the OAuth session from a cookie set during the OAuth flow.
|
|
5
|
+
* This requires the OAuth popup flow to complete first via the backend's
|
|
6
|
+
* /oauth/google/login endpoint.
|
|
7
|
+
*
|
|
8
|
+
* @param client - The ZeroDev Wallet client
|
|
9
|
+
* @param params - The parameters for OAuth authentication
|
|
10
|
+
* @returns The authentication result
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* const result = await authenticateWithOAuth(client, {
|
|
15
|
+
* provider: 'google',
|
|
16
|
+
* projectId: 'proj_456',
|
|
17
|
+
* });
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export async function authenticateWithOAuth(client, params) {
|
|
21
|
+
const { projectId } = params;
|
|
22
|
+
return await client.request({
|
|
23
|
+
path: `${projectId}/auth/oauth`,
|
|
24
|
+
method: 'POST',
|
|
25
|
+
body: null,
|
|
26
|
+
credentials: 'include',
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=authenticateWithOAuth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authenticateWithOAuth.js","sourceRoot":"","sources":["../../../../src/actions/auth/authenticateWithOAuth.ts"],"names":[],"mappings":"AAoBA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAc,EACd,MAAuC;IAEvC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;IAE5B,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,GAAG,SAAS,aAAa;QAC/B,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI;QACV,WAAW,EAAE,SAAS;KACvB,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fetches the auth proxy config ID from the backend
|
|
3
|
+
*
|
|
4
|
+
* @param client - The ZeroDev Wallet client
|
|
5
|
+
* @returns The auth proxy config ID
|
|
6
|
+
*/
|
|
7
|
+
export async function getAuthProxyConfigId(client) {
|
|
8
|
+
return await client.request({
|
|
9
|
+
path: 'server-info/auth-proxy-id',
|
|
10
|
+
method: 'GET',
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=getAuthProxyConfigId.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getAuthProxyConfigId.js","sourceRoot":"","sources":["../../../../src/actions/auth/getAuthProxyConfigId.ts"],"names":[],"mappings":"AAMA;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAc;IAEd,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,2BAA2B;QACjC,MAAM,EAAE,KAAK;KACd,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gets the user's email address
|
|
3
|
+
*
|
|
4
|
+
* @param client - The ZeroDev Wallet client
|
|
5
|
+
* @param params - The parameters for the user email request
|
|
6
|
+
* @returns The user's email address
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* const userEmail = await getUserEmail(client, {
|
|
11
|
+
* organizationId: 'org_123',
|
|
12
|
+
* projectId: 'proj_456',
|
|
13
|
+
* token: 'session_token_abc',
|
|
14
|
+
* });
|
|
15
|
+
* console.log(userEmail.email); // 'user@example.com'
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export async function getUserEmail(client, params) {
|
|
19
|
+
const { organizationId, projectId, token } = params;
|
|
20
|
+
return await client.request({
|
|
21
|
+
path: `${projectId}/user-email`,
|
|
22
|
+
method: 'POST',
|
|
23
|
+
body: {
|
|
24
|
+
organizationId,
|
|
25
|
+
},
|
|
26
|
+
headers: {
|
|
27
|
+
Authorization: `Bearer ${token}`,
|
|
28
|
+
},
|
|
29
|
+
stamp: true,
|
|
30
|
+
stampPostion: 'headers',
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=getUserEmail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getUserEmail.js","sourceRoot":"","sources":["../../../../src/actions/auth/getUserEmail.ts"],"names":[],"mappings":"AAgBA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,MAA8B;IAE9B,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,MAAM,CAAA;IAEnD,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,GAAG,SAAS,aAAa;QAC/B,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACJ,cAAc;SACf;QACD,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,KAAK,EAAE;SACjC;QACD,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,SAAS;KACxB,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gets the current user information
|
|
3
|
+
*
|
|
4
|
+
* @param client - The ZeroDev Wallet client
|
|
5
|
+
* @param params - The parameters for the whoami request
|
|
6
|
+
* @returns The user information
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* const userInfo = await getWhoami(client, {
|
|
11
|
+
* organizationId: 'org_123',
|
|
12
|
+
* projectId: 'proj_456'
|
|
13
|
+
* });
|
|
14
|
+
* console.log(userInfo.userId); // 'user_789'
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export async function getWhoami(client, params) {
|
|
18
|
+
const { organizationId, projectId } = params;
|
|
19
|
+
return await client.request({
|
|
20
|
+
path: `${projectId}/whoami`,
|
|
21
|
+
method: 'POST',
|
|
22
|
+
body: {
|
|
23
|
+
organizationId,
|
|
24
|
+
},
|
|
25
|
+
stamp: true,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=getWhoami.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getWhoami.js","sourceRoot":"","sources":["../../../../src/actions/auth/getWhoami.ts"],"names":[],"mappings":"AAoBA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,MAAc,EACd,MAA2B;IAE3B,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;IAE5C,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,GAAG,SAAS,SAAS;QAC3B,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACJ,cAAc;SACf;QACD,KAAK,EAAE,IAAI;KACZ,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { authenticateWithEmail, } from './authenticateWithEmail.js';
|
|
2
|
+
export { authenticateWithOAuth, } from './authenticateWithOAuth.js';
|
|
3
|
+
export { getAuthProxyConfigId, } from './getAuthProxyConfigId.js';
|
|
4
|
+
export { getUserEmail, } from './getUserEmail.js';
|
|
5
|
+
export { getWhoami, } from './getWhoami.js';
|
|
6
|
+
export { loginWithOTP, } from './loginWithOTP.js';
|
|
7
|
+
export { loginWithStamp, } from './loginWithStamp.js';
|
|
8
|
+
export { registerWithOTP, } from './registerWithOTP.js';
|
|
9
|
+
export { registerWithPasskey, } from './registerWithPasskey.js';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/actions/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,qBAAqB,GAEtB,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EAGL,qBAAqB,GACtB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAEL,oBAAoB,GACrB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAGL,YAAY,GACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAGL,SAAS,GACV,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAGL,YAAY,GACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAGL,cAAc,GACf,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAIL,eAAe,GAChB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAGL,mBAAmB,GACpB,MAAM,0BAA0B,CAAA"}
|