@zerodev/wallet-core 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/dist/_cjs/actions/auth/getAuthenticators.js.map +1 -1
  2. package/dist/_cjs/actions/auth/index.js +3 -1
  3. package/dist/_cjs/actions/auth/index.js.map +1 -1
  4. package/dist/_cjs/actions/auth/logout.js +23 -0
  5. package/dist/_cjs/actions/auth/logout.js.map +1 -0
  6. package/dist/_cjs/actions/index.js +2 -1
  7. package/dist/_cjs/actions/index.js.map +1 -1
  8. package/dist/_cjs/actions/wallet/signingUtils.js +23 -3
  9. package/dist/_cjs/actions/wallet/signingUtils.js.map +1 -1
  10. package/dist/_cjs/adapters/viem.js +26 -9
  11. package/dist/_cjs/adapters/viem.js.map +1 -1
  12. package/dist/_cjs/client/decorators/client.js +1 -0
  13. package/dist/_cjs/client/decorators/client.js.map +1 -1
  14. package/dist/_cjs/client/transports/rest.js.map +1 -1
  15. package/dist/_cjs/core/createZeroDevWalletCore.js +297 -168
  16. package/dist/_cjs/core/createZeroDevWalletCore.js.map +1 -1
  17. package/dist/_cjs/index.js +2 -1
  18. package/dist/_cjs/index.js.map +1 -1
  19. package/dist/_cjs/index.native.js +2 -1
  20. package/dist/_cjs/index.native.js.map +1 -1
  21. package/dist/_cjs/native/stampers/secureStore.js +94 -17
  22. package/dist/_cjs/native/stampers/secureStore.js.map +1 -1
  23. package/dist/_cjs/stampers/indexedDbStamper.js +34 -0
  24. package/dist/_cjs/stampers/indexedDbStamper.js.map +1 -1
  25. package/dist/_cjs/storage/manager.js +144 -17
  26. package/dist/_cjs/storage/manager.js.map +1 -1
  27. package/dist/_cjs/utils/buildClientSignature.js +4 -1
  28. package/dist/_cjs/utils/buildClientSignature.js.map +1 -1
  29. package/dist/_cjs/utils/derToRawSignature.js +12 -0
  30. package/dist/_cjs/utils/derToRawSignature.js.map +1 -1
  31. package/dist/_cjs/utils/exportPrivateKey.js +1 -1
  32. package/dist/_cjs/utils/exportPrivateKey.js.map +1 -1
  33. package/dist/_cjs/utils/utils.js +27 -6
  34. package/dist/_cjs/utils/utils.js.map +1 -1
  35. package/dist/_esm/actions/auth/getAuthenticators.js +3 -2
  36. package/dist/_esm/actions/auth/getAuthenticators.js.map +1 -1
  37. package/dist/_esm/actions/auth/index.js +1 -0
  38. package/dist/_esm/actions/auth/index.js.map +1 -1
  39. package/dist/_esm/actions/auth/logout.js +21 -0
  40. package/dist/_esm/actions/auth/logout.js.map +1 -0
  41. package/dist/_esm/actions/index.js +1 -1
  42. package/dist/_esm/actions/index.js.map +1 -1
  43. package/dist/_esm/actions/wallet/signingUtils.js +24 -4
  44. package/dist/_esm/actions/wallet/signingUtils.js.map +1 -1
  45. package/dist/_esm/adapters/viem.js +27 -10
  46. package/dist/_esm/adapters/viem.js.map +1 -1
  47. package/dist/_esm/client/decorators/client.js +2 -1
  48. package/dist/_esm/client/decorators/client.js.map +1 -1
  49. package/dist/_esm/client/transports/rest.js.map +1 -1
  50. package/dist/_esm/core/createZeroDevWalletCore.js +320 -186
  51. package/dist/_esm/core/createZeroDevWalletCore.js.map +1 -1
  52. package/dist/_esm/index.js +1 -1
  53. package/dist/_esm/index.js.map +1 -1
  54. package/dist/_esm/index.native.js +1 -1
  55. package/dist/_esm/index.native.js.map +1 -1
  56. package/dist/_esm/native/stampers/secureStore.js +111 -18
  57. package/dist/_esm/native/stampers/secureStore.js.map +1 -1
  58. package/dist/_esm/stampers/indexedDbStamper.js +36 -0
  59. package/dist/_esm/stampers/indexedDbStamper.js.map +1 -1
  60. package/dist/_esm/storage/manager.js +150 -22
  61. package/dist/_esm/storage/manager.js.map +1 -1
  62. package/dist/_esm/utils/buildClientSignature.js +4 -1
  63. package/dist/_esm/utils/buildClientSignature.js.map +1 -1
  64. package/dist/_esm/utils/derToRawSignature.js +12 -0
  65. package/dist/_esm/utils/derToRawSignature.js.map +1 -1
  66. package/dist/_esm/utils/exportPrivateKey.js +1 -1
  67. package/dist/_esm/utils/exportPrivateKey.js.map +1 -1
  68. package/dist/_esm/utils/utils.js +27 -6
  69. package/dist/_esm/utils/utils.js.map +1 -1
  70. package/dist/_types/actions/auth/getAuthenticators.d.ts +19 -2
  71. package/dist/_types/actions/auth/getAuthenticators.d.ts.map +1 -1
  72. package/dist/_types/actions/auth/index.d.ts +2 -1
  73. package/dist/_types/actions/auth/index.d.ts.map +1 -1
  74. package/dist/_types/actions/auth/logout.d.ts +11 -0
  75. package/dist/_types/actions/auth/logout.d.ts.map +1 -0
  76. package/dist/_types/actions/index.d.ts +1 -1
  77. package/dist/_types/actions/index.d.ts.map +1 -1
  78. package/dist/_types/actions/wallet/signingUtils.d.ts.map +1 -1
  79. package/dist/_types/adapters/viem.d.ts.map +1 -1
  80. package/dist/_types/client/decorators/client.d.ts +3 -1
  81. package/dist/_types/client/decorators/client.d.ts.map +1 -1
  82. package/dist/_types/client/transports/rest.d.ts +3 -3
  83. package/dist/_types/client/transports/rest.d.ts.map +1 -1
  84. package/dist/_types/core/createZeroDevWalletCore.d.ts +8 -1
  85. package/dist/_types/core/createZeroDevWalletCore.d.ts.map +1 -1
  86. package/dist/_types/index.d.ts +2 -2
  87. package/dist/_types/index.d.ts.map +1 -1
  88. package/dist/_types/index.native.d.ts +2 -2
  89. package/dist/_types/index.native.d.ts.map +1 -1
  90. package/dist/_types/native/stampers/secureStore.d.ts.map +1 -1
  91. package/dist/_types/stampers/indexedDbStamper.d.ts.map +1 -1
  92. package/dist/_types/stampers/types.d.ts +6 -0
  93. package/dist/_types/stampers/types.d.ts.map +1 -1
  94. package/dist/_types/storage/manager.d.ts +3 -0
  95. package/dist/_types/storage/manager.d.ts.map +1 -1
  96. package/dist/_types/types/session.d.ts +2 -0
  97. package/dist/_types/types/session.d.ts.map +1 -1
  98. package/dist/_types/utils/buildClientSignature.d.ts +1 -1
  99. package/dist/_types/utils/buildClientSignature.d.ts.map +1 -1
  100. package/dist/_types/utils/derToRawSignature.d.ts.map +1 -1
  101. package/dist/_types/utils/utils.d.ts +1 -1
  102. package/dist/_types/utils/utils.d.ts.map +1 -1
  103. package/dist/tsconfig.build.tsbuildinfo +1 -1
  104. package/package.json +1 -1
  105. package/src/actions/auth/getAuthenticators.ts +20 -2
  106. package/src/actions/auth/index.ts +6 -0
  107. package/src/actions/auth/logout.ts +35 -0
  108. package/src/actions/index.ts +4 -0
  109. package/src/actions/wallet/signingUtils.ts +43 -4
  110. package/src/adapters/viem.ts +40 -12
  111. package/src/client/decorators/client.ts +7 -0
  112. package/src/client/transports/rest.ts +4 -4
  113. package/src/core/createZeroDevWalletCore.ts +393 -205
  114. package/src/index.native.ts +4 -0
  115. package/src/index.ts +4 -0
  116. package/src/native/stampers/secureStore.ts +119 -24
  117. package/src/stampers/indexedDbStamper.ts +47 -0
  118. package/src/stampers/types.ts +6 -0
  119. package/src/storage/manager.ts +205 -25
  120. package/src/types/session.ts +2 -0
  121. package/src/utils/buildClientSignature.ts +4 -2
  122. package/src/utils/derToRawSignature.ts +16 -2
  123. package/src/utils/exportPrivateKey.ts +1 -1
  124. package/src/utils/utils.ts +30 -9
@@ -4,6 +4,7 @@ exports.createZeroDevWalletCore = createZeroDevWalletCore;
4
4
  const viem_js_1 = require("../adapters/viem.js");
5
5
  const index_js_1 = require("../client/index.js");
6
6
  const constants_js_1 = require("../constants.js");
7
+ const request_js_1 = require("../errors/request.js");
7
8
  const noopPasskeyStamper_js_1 = require("../stampers/noopPasskeyStamper.js");
8
9
  const manager_js_1 = require("../storage/manager.js");
9
10
  const session_js_1 = require("../types/session.js");
@@ -11,6 +12,7 @@ const buildClientSignature_js_1 = require("../utils/buildClientSignature.js");
11
12
  const encryptOtpAttempt_js_1 = require("../utils/encryptOtpAttempt.js");
12
13
  const resolveOrganizationId_js_1 = require("../utils/resolveOrganizationId.js");
13
14
  const utils_js_1 = require("../utils/utils.js");
15
+ let keyTransitionTail = Promise.resolve();
14
16
  async function createZeroDevWalletCore(config) {
15
17
  const { projectId, sessionStorage, rpId, apiKeyStamper, organizationId } = config;
16
18
  const passkeyStamper = config.passkeyStamper ?? (0, noopPasskeyStamper_js_1.createNoopPasskeyStamper)();
@@ -29,12 +31,94 @@ async function createZeroDevWalletCore(config) {
29
31
  fetchParentOrgId: async () => (await client.getParentOrgId()).parentOrgId,
30
32
  fallback: constants_js_1.DEFAULT_ORGANIZATION_ID,
31
33
  });
34
+ let preparedOAuthPublicKey;
35
+ const prepareFreshKeyRotation = async () => {
36
+ if (preparedOAuthPublicKey) {
37
+ await client.apiKeyStamper.discardKeyRotation();
38
+ preparedOAuthPublicKey = undefined;
39
+ }
40
+ return client.apiKeyStamper.prepareKeyRotation();
41
+ };
42
+ const withKeyTransition = async (transition) => {
43
+ const result = keyTransitionTail.then(transition);
44
+ keyTransitionTail = result.then(() => undefined, () => undefined);
45
+ return result;
46
+ };
47
+ const normalizeKey = (key) => key.replace(/^0x/, '').toLowerCase();
48
+ const createReplacementSession = (token, expectedPublicKey, idPrefix, sessionType) => {
49
+ const parsed = (0, utils_js_1.parseSession)(token);
50
+ if (!parsed.publicKey ||
51
+ normalizeKey(parsed.publicKey) !== normalizeKey(expectedPublicKey)) {
52
+ throw new Error('Session public key does not match the locally prepared signing key');
53
+ }
54
+ const now = Date.now();
55
+ return {
56
+ id: `session_${idPrefix}_${now}`,
57
+ userId: parsed.userId,
58
+ organizationId: parsed.organizationId,
59
+ stamperType: 'apiKey',
60
+ sessionType: sessionType ?? parsed.sessionType ?? session_js_1.SessionType.READ_WRITE,
61
+ token,
62
+ publicKey: expectedPublicKey,
63
+ expiry: parsed.expiry,
64
+ createdAt: now,
65
+ };
66
+ };
67
+ const commitReplacementSession = async (session, targetPublicKey) => {
68
+ await sessionStorageManager.stageSessionTransition(session, targetPublicKey);
69
+ try {
70
+ await client.apiKeyStamper.commitKeyRotation();
71
+ }
72
+ catch (error) {
73
+ await client.apiKeyStamper.discardKeyRotation();
74
+ const activePublicKey = await client.apiKeyStamper.getPublicKey();
75
+ const recovered = await sessionStorageManager.recoverSessionTransition(activePublicKey);
76
+ if (!activePublicKey ||
77
+ normalizeKey(activePublicKey) !== normalizeKey(targetPublicKey) ||
78
+ !recovered) {
79
+ throw error;
80
+ }
81
+ return;
82
+ }
83
+ try {
84
+ const committed = await sessionStorageManager.commitSessionTransition();
85
+ if (!committed) {
86
+ throw new Error('Session transition journal disappeared before commit');
87
+ }
88
+ }
89
+ catch (error) {
90
+ const recovered = await sessionStorageManager.recoverSessionTransition(await client.apiKeyStamper.getPublicKey());
91
+ if (!recovered)
92
+ throw error;
93
+ }
94
+ };
95
+ await withKeyTransition(async () => {
96
+ const activePublicKey = await client.apiKeyStamper.getPublicKey();
97
+ await sessionStorageManager.recoverSessionTransition(activePublicKey);
98
+ const restoredSession = await sessionStorageManager.getActiveSession();
99
+ if (restoredSession) {
100
+ try {
101
+ const restoredPublicKey = (0, utils_js_1.parseSession)(restoredSession.token).publicKey;
102
+ if (!activePublicKey ||
103
+ !restoredPublicKey ||
104
+ normalizeKey(activePublicKey) !== normalizeKey(restoredPublicKey)) {
105
+ await sessionStorageManager.clearAllSessions();
106
+ }
107
+ }
108
+ catch {
109
+ await sessionStorageManager.clearAllSessions();
110
+ }
111
+ }
112
+ });
32
113
  return {
33
114
  client,
34
115
  async getPublicKey() {
35
- await client.apiKeyStamper.resetKeyPair();
36
- const compressedPublicKey = await client.apiKeyStamper.getPublicKey();
37
- return compressedPublicKey;
116
+ return withKeyTransition(async () => {
117
+ if (preparedOAuthPublicKey)
118
+ return preparedOAuthPublicKey;
119
+ preparedOAuthPublicKey = await client.apiKeyStamper.prepareKeyRotation();
120
+ return preparedOAuthPublicKey;
121
+ });
38
122
  },
39
123
  async getSession() {
40
124
  return sessionStorageManager.getActiveSession();
@@ -48,146 +132,144 @@ async function createZeroDevWalletCore(config) {
48
132
  return sessionMap;
49
133
  },
50
134
  async switchSession(sessionId) {
51
- await sessionStorageManager.setActiveSession(sessionId);
52
- const session = await sessionStorageManager.getActiveSession();
53
- return session;
135
+ const activeSessionKey = await sessionStorageManager.getActiveSessionKey();
136
+ if (sessionId !== activeSessionKey) {
137
+ throw new Error('Session switching is not supported with a single active key vault');
138
+ }
139
+ return sessionStorageManager.getActiveSession();
54
140
  },
55
141
  async clearSession(sessionId) {
142
+ if ((await sessionStorageManager.getActiveSessionKey()) === sessionId) {
143
+ throw new Error('Refusing to clear the active session locally; use logout() to revoke its remote key first.');
144
+ }
56
145
  await sessionStorageManager.clearSession(sessionId);
57
146
  },
58
147
  async clearAllSessions() {
148
+ if (await sessionStorageManager.getActiveSession()) {
149
+ throw new Error('Refusing to clear the active session locally; use logout() to revoke its remote key first.');
150
+ }
59
151
  await sessionStorageManager.clearAllSessions();
60
152
  },
61
153
  async refreshSession(sessionId) {
62
- const activeSession = sessionId
63
- ? await sessionStorageManager.getSession(sessionId)
64
- : await sessionStorageManager.getActiveSession();
65
- if (!activeSession) {
66
- throw new Error('No active session');
67
- }
68
- if (activeSession.stamperType === 'apiKey') {
69
- const compressedPublicKeyHex = await client.apiKeyStamper.prepareKeyRotation();
70
- const data = await client.loginWithStamp({
71
- targetPublicKey: compressedPublicKeyHex,
72
- projectId,
73
- organizationId: await resolveOrganizationId(),
74
- stampWith: 'apiKey',
75
- });
76
- await client.apiKeyStamper.commitKeyRotation();
77
- const parsedSession = (0, utils_js_1.parseSession)(data.session);
78
- const session = {
79
- id: `session_indexedDb_${Date.now()}`,
80
- userId: parsedSession.userId,
81
- organizationId: parsedSession.organizationId,
82
- stamperType: 'apiKey',
83
- sessionType: session_js_1.SessionType.READ_WRITE,
84
- token: data.session,
85
- expiry: parsedSession.expiry,
86
- createdAt: Date.now(),
87
- };
88
- await sessionStorageManager.clearSession(activeSession.id);
89
- await sessionStorageManager.storeSession(session, session.id);
90
- return session;
91
- }
92
- throw new Error('Invalid session type');
154
+ return withKeyTransition(async () => {
155
+ const activeSessionKey = await sessionStorageManager.getActiveSessionKey();
156
+ if (sessionId && sessionId !== activeSessionKey) {
157
+ throw new Error('Refreshing an inactive session is not supported with a single active key vault');
158
+ }
159
+ const activeSession = await sessionStorageManager.getActiveSession();
160
+ if (!activeSession) {
161
+ throw new Error('No active session');
162
+ }
163
+ if (activeSession.stamperType !== 'apiKey') {
164
+ throw new Error('Invalid session type');
165
+ }
166
+ const targetPublicKey = await prepareFreshKeyRotation();
167
+ try {
168
+ const data = await client.loginWithStamp({
169
+ targetPublicKey,
170
+ projectId,
171
+ organizationId: await resolveOrganizationId(),
172
+ stampWith: 'apiKey',
173
+ });
174
+ const session = createReplacementSession(data.session, targetPublicKey, 'indexedDb', session_js_1.SessionType.READ_WRITE);
175
+ await commitReplacementSession(session, targetPublicKey);
176
+ return session;
177
+ }
178
+ catch (error) {
179
+ await client.apiKeyStamper.discardKeyRotation();
180
+ throw error;
181
+ }
182
+ });
93
183
  },
94
184
  async auth(params) {
95
185
  switch (params.type) {
96
186
  case 'oauth': {
97
- const popSignature = await client.apiKeyStamper.sign(params.sessionId);
98
- const data = await client.authenticateWithOAuth({
99
- provider: params.provider,
100
- projectId,
101
- sessionId: params.sessionId,
102
- popSignature,
187
+ return withKeyTransition(async () => {
188
+ const targetPublicKey = preparedOAuthPublicKey ??
189
+ (await client.apiKeyStamper.prepareKeyRotation());
190
+ preparedOAuthPublicKey = undefined;
191
+ try {
192
+ const popSignature = await client.apiKeyStamper.signPending(params.sessionId);
193
+ const data = await client.authenticateWithOAuth({
194
+ provider: params.provider,
195
+ projectId,
196
+ sessionId: params.sessionId,
197
+ popSignature,
198
+ });
199
+ if (!data.session) {
200
+ await client.apiKeyStamper.discardKeyRotation();
201
+ return data;
202
+ }
203
+ const session = createReplacementSession(data.session, targetPublicKey, 'oauth');
204
+ await commitReplacementSession(session, targetPublicKey);
205
+ return data;
206
+ }
207
+ catch (error) {
208
+ await client.apiKeyStamper.discardKeyRotation();
209
+ throw error;
210
+ }
103
211
  });
104
- if (data.session) {
105
- const parsedSession = (0, utils_js_1.parseSession)(data.session);
106
- const session = {
107
- id: `session_oauth_${Date.now()}`,
108
- userId: parsedSession.userId,
109
- organizationId: parsedSession.organizationId,
110
- stamperType: 'apiKey',
111
- sessionType: parsedSession.sessionType || session_js_1.SessionType.READ_WRITE,
112
- token: data.session,
113
- expiry: parsedSession.expiry,
114
- createdAt: Date.now(),
115
- };
116
- await sessionStorageManager.storeSession(session, session.id);
117
- }
118
- return data;
119
212
  }
120
213
  case 'passkey': {
121
214
  const { type } = params;
122
215
  if (type === 'passkey' &&
123
216
  'mode' in params &&
124
217
  params.mode === 'register') {
125
- await client.apiKeyStamper.resetKeyPair();
126
- const tempPublicKey = await client.apiKeyStamper.getPublicKey();
127
- if (!tempPublicKey) {
128
- throw new Error('Failed to get public key');
129
- }
130
- const name = `ZeroDevWallet-${(0, utils_js_1.humanReadableDateTime)()}`;
131
- const { attestation, encodedChallenge } = await passkeyStamper.register({
132
- rp: { id: rpId, name: '' },
133
- userName: name,
134
- });
135
- const data = await client.registerWithPasskey({
136
- attestation,
137
- challenge: encodedChallenge,
138
- projectId,
139
- encodedPublicKey: tempPublicKey,
218
+ return withKeyTransition(async () => {
219
+ if (await sessionStorageManager.getActiveSession()) {
220
+ throw new Error('Passkey registration requires an unauthenticated wallet; logout before registering a new wallet.');
221
+ }
222
+ const registrationPublicKey = await prepareFreshKeyRotation();
223
+ try {
224
+ const name = `ZeroDevWallet-${(0, utils_js_1.humanReadableDateTime)()}`;
225
+ const { attestation, encodedChallenge } = await passkeyStamper.register({
226
+ rp: { id: rpId, name: 'ZeroDev Wallet' },
227
+ userName: name,
228
+ });
229
+ const data = await client.registerWithPasskey({
230
+ attestation,
231
+ challenge: encodedChallenge,
232
+ projectId,
233
+ encodedPublicKey: registrationPublicKey,
234
+ });
235
+ await client.apiKeyStamper.commitKeyRotation();
236
+ const targetPublicKey = await prepareFreshKeyRotation();
237
+ const loginData = await client.loginWithStamp({
238
+ projectId,
239
+ targetPublicKey,
240
+ organizationId: await resolveOrganizationId(),
241
+ });
242
+ const session = createReplacementSession(loginData.session, targetPublicKey, 'indexedDb');
243
+ await commitReplacementSession(session, targetPublicKey);
244
+ return data;
245
+ }
246
+ catch (error) {
247
+ await client.apiKeyStamper.discardKeyRotation();
248
+ throw error;
249
+ }
140
250
  });
141
- const compressedPublicKeyHex = await client.apiKeyStamper.prepareKeyRotation();
142
- const loginData = await client.loginWithStamp({
143
- projectId,
144
- targetPublicKey: compressedPublicKeyHex,
145
- organizationId: await resolveOrganizationId(),
146
- });
147
- await client.apiKeyStamper.commitKeyRotation();
148
- const parsedSession = (0, utils_js_1.parseSession)(loginData.session);
149
- const session = {
150
- id: `session_indexedDb_${Date.now()}`,
151
- stamperType: 'apiKey',
152
- createdAt: Date.now(),
153
- sessionType: session_js_1.SessionType.READ_WRITE,
154
- userId: parsedSession.userId,
155
- organizationId: parsedSession.organizationId,
156
- expiry: Date.now() +
157
- Number(constants_js_1.DEFAULT_SESSION_EXPIRATION_IN_SECONDS) * 1000,
158
- token: loginData.session,
159
- };
160
- await sessionStorageManager.storeSession(session, session.id);
161
- return data;
162
251
  }
163
252
  if (type === 'passkey' &&
164
253
  'mode' in params &&
165
254
  params.mode === 'login') {
166
- await client.apiKeyStamper.resetKeyPair();
167
- const generatedPublicKey = await client.apiKeyStamper.getPublicKey();
168
- if (!generatedPublicKey) {
169
- throw new Error('Failed to get public key');
170
- }
171
- const loginData = await client.loginWithStamp({
172
- targetPublicKey: generatedPublicKey,
173
- projectId,
174
- organizationId: await resolveOrganizationId(),
175
- stampWith: 'passkey',
255
+ return withKeyTransition(async () => {
256
+ const targetPublicKey = await prepareFreshKeyRotation();
257
+ try {
258
+ const loginData = await client.loginWithStamp({
259
+ targetPublicKey,
260
+ projectId,
261
+ organizationId: await resolveOrganizationId(),
262
+ stampWith: 'passkey',
263
+ });
264
+ const session = createReplacementSession(loginData.session, targetPublicKey, 'indexedDb');
265
+ await commitReplacementSession(session, targetPublicKey);
266
+ return loginData;
267
+ }
268
+ catch (error) {
269
+ await client.apiKeyStamper.discardKeyRotation();
270
+ throw error;
271
+ }
176
272
  });
177
- const parsedSession = (0, utils_js_1.parseSession)(loginData.session);
178
- const session = {
179
- id: `session_indexedDb_${Date.now()}`,
180
- stamperType: 'apiKey',
181
- createdAt: Date.now(),
182
- sessionType: session_js_1.SessionType.READ_WRITE,
183
- userId: parsedSession.userId,
184
- organizationId: parsedSession.organizationId,
185
- expiry: Date.now() +
186
- Number(constants_js_1.DEFAULT_SESSION_EXPIRATION_IN_SECONDS) * 1000,
187
- token: loginData.session,
188
- };
189
- await sessionStorageManager.storeSession(session, session.id);
190
- return loginData;
191
273
  }
192
274
  throw new Error('Passkey authentication requires passkey parameter');
193
275
  }
@@ -226,53 +308,51 @@ async function createZeroDevWalletCore(config) {
226
308
  return data;
227
309
  }
228
310
  if (otpParams.mode === 'verifyOtp') {
229
- const { otpId, otpCode, otpEncryptionTargetBundle } = otpParams;
230
- await client.apiKeyStamper.resetKeyPair();
231
- const targetPublicKey = await client.apiKeyStamper.getPublicKey();
232
- if (!targetPublicKey) {
233
- throw new Error('Failed to get public key');
234
- }
235
- const encryptedOtpBundle = await (0, encryptOtpAttempt_js_1.encryptOtpAttempt)({
236
- otpCode,
237
- publicKey: targetPublicKey,
238
- encryptionTargetBundle: otpEncryptionTargetBundle,
239
- });
240
- if (!cachedAuthProxyConfigId) {
241
- const { authProxyConfigId } = await client.getAuthProxyConfigId();
242
- cachedAuthProxyConfigId = authProxyConfigId;
243
- }
244
- const authProxyClient = (0, index_js_1.createAuthProxyClient)({
245
- authProxyConfigId: cachedAuthProxyConfigId,
311
+ return withKeyTransition(async () => {
312
+ const { otpId, otpCode, otpEncryptionTargetBundle } = otpParams;
313
+ const targetPublicKey = await prepareFreshKeyRotation();
314
+ try {
315
+ const encryptedOtpBundle = await (0, encryptOtpAttempt_js_1.encryptOtpAttempt)({
316
+ otpCode,
317
+ publicKey: targetPublicKey,
318
+ encryptionTargetBundle: otpEncryptionTargetBundle,
319
+ });
320
+ if (!cachedAuthProxyConfigId) {
321
+ const { authProxyConfigId } = await client.getAuthProxyConfigId();
322
+ cachedAuthProxyConfigId = authProxyConfigId;
323
+ }
324
+ const authProxyClient = (0, index_js_1.createAuthProxyClient)({
325
+ authProxyConfigId: cachedAuthProxyConfigId,
326
+ });
327
+ const { verificationToken } = await authProxyClient.verifyOtp({
328
+ otpId,
329
+ encryptedOtpBundle,
330
+ });
331
+ const clientSignature = await (0, buildClientSignature_js_1.buildClientSignature)({
332
+ verificationToken,
333
+ publicKey: targetPublicKey,
334
+ stamper: {
335
+ stamp: (payload) => client.apiKeyStamper.stampPending(payload),
336
+ },
337
+ });
338
+ const data = await client.loginWithOTP({
339
+ verificationToken,
340
+ clientSignature,
341
+ projectId,
342
+ });
343
+ if (!data.session) {
344
+ await client.apiKeyStamper.discardKeyRotation();
345
+ return data;
346
+ }
347
+ const session = createReplacementSession(data.session, targetPublicKey, 'otp');
348
+ await commitReplacementSession(session, targetPublicKey);
349
+ return data;
350
+ }
351
+ catch (error) {
352
+ await client.apiKeyStamper.discardKeyRotation();
353
+ throw error;
354
+ }
246
355
  });
247
- const { verificationToken } = await authProxyClient.verifyOtp({
248
- otpId,
249
- encryptedOtpBundle,
250
- });
251
- const clientSignature = await (0, buildClientSignature_js_1.buildClientSignature)({
252
- verificationToken,
253
- publicKey: targetPublicKey,
254
- stamper: client.apiKeyStamper,
255
- });
256
- const data = await client.loginWithOTP({
257
- verificationToken,
258
- clientSignature,
259
- projectId,
260
- });
261
- if (data.session) {
262
- const parsedSession = (0, utils_js_1.parseSession)(data.session);
263
- const session = {
264
- id: `session_otp_${Date.now()}`,
265
- userId: parsedSession.userId,
266
- organizationId: parsedSession.organizationId,
267
- stamperType: 'apiKey',
268
- sessionType: parsedSession.sessionType || session_js_1.SessionType.READ_WRITE,
269
- token: data.session,
270
- expiry: parsedSession.expiry,
271
- createdAt: Date.now(),
272
- };
273
- await sessionStorageManager.storeSession(session, session.id);
274
- }
275
- return data;
276
356
  }
277
357
  throw new Error('OTP authentication requires mode parameter');
278
358
  }
@@ -280,10 +360,59 @@ async function createZeroDevWalletCore(config) {
280
360
  throw new Error(`Unknown auth type: ${params.type}`);
281
361
  }
282
362
  },
283
- async logout() {
284
- await sessionStorageManager.clearAllSessions();
285
- await client.apiKeyStamper.resetKeyPair();
286
- return true;
363
+ async logout(options) {
364
+ return withKeyTransition(async () => {
365
+ const session = await sessionStorageManager.getActiveSession();
366
+ if (session) {
367
+ const publicKey = await client.apiKeyStamper.getPublicKey();
368
+ if (publicKey) {
369
+ try {
370
+ const authenticators = await client.getAuthenticators({
371
+ subOrganizationId: session.organizationId,
372
+ projectId,
373
+ token: session.token,
374
+ });
375
+ const sessionKey = authenticators.sessionKeys?.find((key) => {
376
+ const candidate = key.ApiKey ?? key.apiKey;
377
+ return (candidate !== undefined &&
378
+ normalizeKey(candidate) === normalizeKey(publicKey));
379
+ });
380
+ const apiKeyId = sessionKey?.TurnkeyId ?? sessionKey?.turnkeyId;
381
+ if (!apiKeyId) {
382
+ throw new Error('Current session key was not found in the authenticated key list; refusing to erase local credentials without confirmed remote revocation.');
383
+ }
384
+ await client.logout({
385
+ projectId,
386
+ organizationId: session.organizationId,
387
+ userId: session.userId,
388
+ apiKeyId,
389
+ });
390
+ }
391
+ catch (error) {
392
+ const credentialIsRejected = error instanceof request_js_1.RestRequestError && error.status === 401;
393
+ if (!options?.force && !credentialIsRejected)
394
+ return false;
395
+ }
396
+ }
397
+ }
398
+ preparedOAuthPublicKey = undefined;
399
+ let cleanupError;
400
+ try {
401
+ await client.apiKeyStamper.clear();
402
+ }
403
+ catch (error) {
404
+ cleanupError = error;
405
+ }
406
+ try {
407
+ await sessionStorageManager.clearAllSessions();
408
+ }
409
+ catch (error) {
410
+ cleanupError ??= error;
411
+ }
412
+ if (cleanupError)
413
+ throw cleanupError;
414
+ return true;
415
+ });
287
416
  },
288
417
  async toAccount() {
289
418
  const session = await sessionStorageManager.getActiveSession();
@@ -1 +1 @@
1
- {"version":3,"file":"createZeroDevWalletCore.js","sourceRoot":"","sources":["../../../src/core/createZeroDevWalletCore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createZeroDevWalletCore.js","sourceRoot":"","sources":["../../../src/core/createZeroDevWalletCore.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createZeroDevWallet = exports.normalizeTimestamp = exports.exportWallet = exports.exportPrivateKey = exports.createIframeStamper = exports.KMS_SERVER_URL = exports.zeroDevWalletTransport = exports.createClient = exports.createBaseClient = exports.zeroDevWalletActions = exports.toViemAccount = exports.signUserOperation = exports.signTypedDataV4 = exports.signTransaction = exports.signMessage = exports.sign7702Authorization = exports.registerWithOTP = exports.loginWithOTP = exports.getWhoami = exports.getUserWallet = exports.getAuthenticators = exports.authenticateWithOAuth = exports.authenticateWithEmail = void 0;
3
+ exports.createZeroDevWallet = exports.normalizeTimestamp = exports.exportWallet = exports.exportPrivateKey = exports.createIframeStamper = exports.KMS_SERVER_URL = exports.zeroDevWalletTransport = exports.createClient = exports.createBaseClient = exports.zeroDevWalletActions = exports.toViemAccount = exports.signUserOperation = exports.signTypedDataV4 = exports.signTransaction = exports.signMessage = exports.sign7702Authorization = exports.registerWithOTP = exports.logout = exports.loginWithOTP = exports.getWhoami = exports.getUserWallet = exports.getAuthenticators = exports.authenticateWithOAuth = exports.authenticateWithEmail = void 0;
4
4
  const platform_js_1 = require("./utils/platform.js");
5
5
  if ((0, platform_js_1.isReactNative)()) {
6
6
  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`.');
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "getAuthenticators", { enumerable: true, get: fun
12
12
  Object.defineProperty(exports, "getUserWallet", { enumerable: true, get: function () { return index_js_1.getUserWallet; } });
13
13
  Object.defineProperty(exports, "getWhoami", { enumerable: true, get: function () { return index_js_1.getWhoami; } });
14
14
  Object.defineProperty(exports, "loginWithOTP", { enumerable: true, get: function () { return index_js_1.loginWithOTP; } });
15
+ Object.defineProperty(exports, "logout", { enumerable: true, get: function () { return index_js_1.logout; } });
15
16
  Object.defineProperty(exports, "registerWithOTP", { enumerable: true, get: function () { return index_js_1.registerWithOTP; } });
16
17
  Object.defineProperty(exports, "sign7702Authorization", { enumerable: true, get: function () { return index_js_1.sign7702Authorization; } });
17
18
  Object.defineProperty(exports, "signMessage", { enumerable: true, get: function () { return index_js_1.signMessage; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,qDAAmD;AAEnD,IAAI,IAAA,2BAAa,GAAE,EAAE,CAAC;IAEpB,OAAO,CAAC,IAAI,CACV,wMAAwM,CACzM,CAAA;AACH,CAAC;AAqCD,+CAe2B;AAbzB,iHAAA,qBAAqB,OAAA;AACrB,iHAAA,qBAAqB,OAAA;AACrB,6GAAA,iBAAiB,OAAA;AAEjB,yGAAA,aAAa,OAAA;AACb,qGAAA,SAAS,OAAA;AACT,wGAAA,YAAY,OAAA;AACZ,2GAAA,eAAe,OAAA;AACf,iHAAA,qBAAqB,OAAA;AACrB,uGAAA,WAAW,OAAA;AACX,2GAAA,eAAe,OAAA;AACf,2GAAA,eAAe,OAAA;AACf,6GAAA,iBAAiB,OAAA;AAInB,8CAAkD;AAAzC,wGAAA,aAAa,OAAA;AAGtB,2DAAoE;AAA3D,iHAAA,oBAAoB,OAAA;AAQ7B,8CAK0B;AAJxB,4GAAA,gBAAgB,OAAA;AAChB,wGAAA,YAAY,OAAA;AAEZ,kHAAA,sBAAsB,OAAA;AAGxB,+CAA+C;AAAtC,8GAAA,cAAc,OAAA;AAMvB,gEAAiE;AAAxD,uHAAA,mBAAmB,OAAA;AAc5B,mEAA8D;AAArD,uHAAA,gBAAgB,OAAA;AACzB,2DAAsD;AAA7C,+GAAA,YAAY,OAAA;AAErB,6CAAqD;AAA5C,8GAAA,kBAAkB,OAAA;AAK3B,uEAGqC;AAFnC,6HAAA,mBAAmB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,qDAAmD;AAEnD,IAAI,IAAA,2BAAa,GAAE,EAAE,CAAC;IAEpB,OAAO,CAAC,IAAI,CACV,wMAAwM,CACzM,CAAA;AACH,CAAC;AAwCD,+CAgB2B;AAdzB,iHAAA,qBAAqB,OAAA;AACrB,iHAAA,qBAAqB,OAAA;AACrB,6GAAA,iBAAiB,OAAA;AAEjB,yGAAA,aAAa,OAAA;AACb,qGAAA,SAAS,OAAA;AACT,wGAAA,YAAY,OAAA;AACZ,kGAAA,MAAM,OAAA;AACN,2GAAA,eAAe,OAAA;AACf,iHAAA,qBAAqB,OAAA;AACrB,uGAAA,WAAW,OAAA;AACX,2GAAA,eAAe,OAAA;AACf,2GAAA,eAAe,OAAA;AACf,6GAAA,iBAAiB,OAAA;AAInB,8CAAkD;AAAzC,wGAAA,aAAa,OAAA;AAGtB,2DAAoE;AAA3D,iHAAA,oBAAoB,OAAA;AAQ7B,8CAK0B;AAJxB,4GAAA,gBAAgB,OAAA;AAChB,wGAAA,YAAY,OAAA;AAEZ,kHAAA,sBAAsB,OAAA;AAGxB,+CAA+C;AAAtC,8GAAA,cAAc,OAAA;AAMvB,gEAAiE;AAAxD,uHAAA,mBAAmB,OAAA;AAc5B,mEAA8D;AAArD,uHAAA,gBAAgB,OAAA;AACzB,2DAAsD;AAA7C,+GAAA,YAAY,OAAA;AAErB,6CAAqD;AAA5C,8GAAA,kBAAkB,OAAA;AAK3B,uEAGqC;AAFnC,6HAAA,mBAAmB,OAAA"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.normalizeTimestamp = exports.exportWallet = exports.exportPrivateKey = exports.createZeroDevWallet = exports.KMS_SERVER_URL = exports.zeroDevWalletTransport = exports.createClient = exports.createBaseClient = exports.zeroDevWalletActions = exports.toViemAccount = exports.signUserOperation = exports.signTypedDataV4 = exports.signTransaction = exports.signMessage = exports.sign7702Authorization = exports.registerWithOTP = exports.loginWithOTP = exports.getWhoami = exports.getUserWallet = exports.getAuthenticators = exports.authenticateWithOAuth = exports.authenticateWithEmail = void 0;
3
+ exports.normalizeTimestamp = exports.exportWallet = exports.exportPrivateKey = exports.createZeroDevWallet = exports.KMS_SERVER_URL = exports.zeroDevWalletTransport = exports.createClient = exports.createBaseClient = exports.zeroDevWalletActions = exports.toViemAccount = exports.signUserOperation = exports.signTypedDataV4 = exports.signTransaction = exports.signMessage = exports.sign7702Authorization = exports.registerWithOTP = exports.logout = exports.loginWithOTP = exports.getWhoami = exports.getUserWallet = exports.getAuthenticators = exports.authenticateWithOAuth = exports.authenticateWithEmail = void 0;
4
4
  const platform_js_1 = require("./utils/platform.js");
5
5
  if (!(0, platform_js_1.isReactNative)()) {
6
6
  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.');
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "getAuthenticators", { enumerable: true, get: fun
12
12
  Object.defineProperty(exports, "getUserWallet", { enumerable: true, get: function () { return index_js_1.getUserWallet; } });
13
13
  Object.defineProperty(exports, "getWhoami", { enumerable: true, get: function () { return index_js_1.getWhoami; } });
14
14
  Object.defineProperty(exports, "loginWithOTP", { enumerable: true, get: function () { return index_js_1.loginWithOTP; } });
15
+ Object.defineProperty(exports, "logout", { enumerable: true, get: function () { return index_js_1.logout; } });
15
16
  Object.defineProperty(exports, "registerWithOTP", { enumerable: true, get: function () { return index_js_1.registerWithOTP; } });
16
17
  Object.defineProperty(exports, "sign7702Authorization", { enumerable: true, get: function () { return index_js_1.sign7702Authorization; } });
17
18
  Object.defineProperty(exports, "signMessage", { enumerable: true, get: function () { return index_js_1.signMessage; } });