@varity-labs/ui-kit 2.0.0-beta.7 → 2.0.0-beta.9
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 +1 -1
- package/dist/components/Dashboard/DashboardHeader.js +4 -4
- package/dist/components/Dashboard/DashboardHeader.js.map +1 -1
- package/dist/components/Dashboard/DashboardLayout.d.ts +3 -3
- package/dist/components/Dashboard/DashboardLayout.d.ts.map +1 -1
- package/dist/components/Dashboard/DashboardLayout.js +1 -1
- package/dist/providers/PrivyStack.d.ts +21 -49
- package/dist/providers/PrivyStack.d.ts.map +1 -1
- package/dist/providers/PrivyStack.js +16 -46
- package/dist/providers/PrivyStack.js.map +1 -1
- package/dist/providers/WalletSyncProvider.d.ts +17 -24
- package/dist/providers/WalletSyncProvider.d.ts.map +1 -1
- package/dist/providers/WalletSyncProvider.js +16 -27
- package/dist/providers/WalletSyncProvider.js.map +1 -1
- package/package.json +21 -20
- package/dist/components/Analytics/__tests__/DataTable.test.d.ts +0 -2
- package/dist/components/Analytics/__tests__/DataTable.test.d.ts.map +0 -1
- package/dist/components/Analytics/__tests__/DataTable.test.js +0 -113
- package/dist/components/Analytics/__tests__/DataTable.test.js.map +0 -1
- package/dist/components/Dashboard/__tests__/EmptyState.test.d.ts +0 -2
- package/dist/components/Dashboard/__tests__/EmptyState.test.d.ts.map +0 -1
- package/dist/components/Dashboard/__tests__/EmptyState.test.js +0 -81
- package/dist/components/Dashboard/__tests__/EmptyState.test.js.map +0 -1
- package/dist/components/Dashboard/__tests__/KPICard.test.d.ts +0 -2
- package/dist/components/Dashboard/__tests__/KPICard.test.d.ts.map +0 -1
- package/dist/components/Dashboard/__tests__/KPICard.test.js +0 -78
- package/dist/components/Dashboard/__tests__/KPICard.test.js.map +0 -1
- package/dist/components/Privy/__tests__/InitScreens.test.d.ts +0 -2
- package/dist/components/Privy/__tests__/InitScreens.test.d.ts.map +0 -1
- package/dist/components/Privy/__tests__/InitScreens.test.js +0 -74
- package/dist/components/Privy/__tests__/InitScreens.test.js.map +0 -1
- package/dist/core/VarityClient.d.ts +0 -76
- package/dist/core/VarityClient.d.ts.map +0 -1
- package/dist/core/VarityClient.js +0 -99
- package/dist/core/VarityClient.js.map +0 -1
- package/dist/core/config.d.ts +0 -136
- package/dist/core/config.d.ts.map +0 -1
- package/dist/core/config.js +0 -156
- package/dist/core/config.js.map +0 -1
- package/dist/hooks/useAnalytics.d.ts +0 -94
- package/dist/hooks/useAnalytics.d.ts.map +0 -1
- package/dist/hooks/useAnalytics.js +0 -116
- package/dist/hooks/useAnalytics.js.map +0 -1
- package/dist/hooks/useAuth.d.ts +0 -71
- package/dist/hooks/useAuth.d.ts.map +0 -1
- package/dist/hooks/useAuth.js +0 -198
- package/dist/hooks/useAuth.js.map +0 -1
- package/dist/hooks/useDashboard.d.ts +0 -110
- package/dist/hooks/useDashboard.d.ts.map +0 -1
- package/dist/hooks/useDashboard.js +0 -201
- package/dist/hooks/useDashboard.js.map +0 -1
- package/dist/hooks/useVarityAPI.d.ts +0 -88
- package/dist/hooks/useVarityAPI.d.ts.map +0 -1
- package/dist/hooks/useVarityAPI.js +0 -138
- package/dist/hooks/useVarityAPI.js.map +0 -1
- package/dist/hooks/useWalletAuth.d.ts +0 -108
- package/dist/hooks/useWalletAuth.d.ts.map +0 -1
- package/dist/hooks/useWalletAuth.js +0 -415
- package/dist/hooks/useWalletAuth.js.map +0 -1
- package/dist/modules/cache/index.d.ts +0 -12
- package/dist/modules/cache/index.d.ts.map +0 -1
- package/dist/modules/cache/index.js +0 -13
- package/dist/modules/cache/index.js.map +0 -1
- package/dist/types/api-extensions.d.ts +0 -92
- package/dist/types/api-extensions.d.ts.map +0 -1
- package/dist/types/api-extensions.js +0 -7
- package/dist/types/api-extensions.js.map +0 -1
|
@@ -1,415 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Wallet Authentication Hook
|
|
3
|
-
*
|
|
4
|
-
* Provides wallet-based authentication with session management.
|
|
5
|
-
* Integrates with Privy for seamless authentication and backend session tokens.
|
|
6
|
-
*
|
|
7
|
-
* This hook handles:
|
|
8
|
-
* - Wallet signature authentication
|
|
9
|
-
* - Session token management
|
|
10
|
-
* - Auto-login when Privy authenticates
|
|
11
|
-
* - Session refresh and expiration handling
|
|
12
|
-
* - Multi-device session management
|
|
13
|
-
*
|
|
14
|
-
* @packageDocumentation
|
|
15
|
-
*/
|
|
16
|
-
import { useState, useEffect, useCallback } from 'react';
|
|
17
|
-
import { usePrivy, useWallets } from '@privy-io/react-auth';
|
|
18
|
-
import { useActiveAccount } from 'thirdweb/react';
|
|
19
|
-
/**
|
|
20
|
-
* useWalletAuth - Wallet-based authentication with session management
|
|
21
|
-
*
|
|
22
|
-
* This hook provides complete wallet authentication functionality:
|
|
23
|
-
* - Signs in using wallet signature (EIP-191)
|
|
24
|
-
* - Manages session tokens with auto-refresh
|
|
25
|
-
* - Handles multi-device sessions
|
|
26
|
-
* - Integrates with Privy for embedded wallets
|
|
27
|
-
*
|
|
28
|
-
* @example
|
|
29
|
-
* ```tsx
|
|
30
|
-
* import { useWalletAuth } from '@varity-labs/ui-kit';
|
|
31
|
-
*
|
|
32
|
-
* function MyComponent() {
|
|
33
|
-
* const {
|
|
34
|
-
* isAuthenticated,
|
|
35
|
-
* walletAddress,
|
|
36
|
-
* login,
|
|
37
|
-
* logout,
|
|
38
|
-
* authFetch,
|
|
39
|
-
* } = useWalletAuth({
|
|
40
|
-
* apiBaseUrl: 'https://api.example.com',
|
|
41
|
-
* });
|
|
42
|
-
*
|
|
43
|
-
* if (!isAuthenticated) {
|
|
44
|
-
* return <button onClick={login}>Sign In</button>;
|
|
45
|
-
* }
|
|
46
|
-
*
|
|
47
|
-
* const fetchData = async () => {
|
|
48
|
-
* // authFetch automatically includes session token
|
|
49
|
-
* const response = await authFetch('/api/v1/data');
|
|
50
|
-
* return response.json();
|
|
51
|
-
* };
|
|
52
|
-
*
|
|
53
|
-
* return <p>Connected: {walletAddress}</p>;
|
|
54
|
-
* }
|
|
55
|
-
* ```
|
|
56
|
-
*/
|
|
57
|
-
export function useWalletAuth(config = {}) {
|
|
58
|
-
const { apiBaseUrl = process.env.NEXT_PUBLIC_API_URL ||
|
|
59
|
-
process.env.NEXT_PUBLIC_BACKEND_URL ||
|
|
60
|
-
'http://localhost:8000', autoLogin = true, refreshIntervalMinutes = 30, onSessionChange, onAuthError, } = config;
|
|
61
|
-
const { authenticated, ready } = usePrivy();
|
|
62
|
-
const { wallets } = useWallets();
|
|
63
|
-
const activeAccount = useActiveAccount();
|
|
64
|
-
const [sessionToken, setSessionToken] = useState(null);
|
|
65
|
-
const [walletAddress, setWalletAddress] = useState(null);
|
|
66
|
-
const [isAuthenticating, setIsAuthenticating] = useState(false);
|
|
67
|
-
const [authError, setAuthError] = useState(null);
|
|
68
|
-
const [sessions, setSessions] = useState([]);
|
|
69
|
-
// Get wallet address from Privy or thirdweb
|
|
70
|
-
const address = wallets?.[0]?.address || activeAccount?.address;
|
|
71
|
-
/**
|
|
72
|
-
* Verify session is still valid
|
|
73
|
-
*/
|
|
74
|
-
const verifySession = useCallback(async (token) => {
|
|
75
|
-
try {
|
|
76
|
-
const response = await fetch(`${apiBaseUrl}/api/v1/wallet/auth/session`, {
|
|
77
|
-
headers: {
|
|
78
|
-
'X-Session-Token': token,
|
|
79
|
-
},
|
|
80
|
-
});
|
|
81
|
-
return response.status === 200;
|
|
82
|
-
}
|
|
83
|
-
catch {
|
|
84
|
-
return false;
|
|
85
|
-
}
|
|
86
|
-
}, [apiBaseUrl]);
|
|
87
|
-
// Load session from localStorage on mount
|
|
88
|
-
useEffect(() => {
|
|
89
|
-
const storedToken = localStorage.getItem('wallet_session_token');
|
|
90
|
-
const storedAddress = localStorage.getItem('wallet_address');
|
|
91
|
-
if (storedToken && storedAddress) {
|
|
92
|
-
setSessionToken(storedToken);
|
|
93
|
-
setWalletAddress(storedAddress);
|
|
94
|
-
// Verify session is still valid
|
|
95
|
-
verifySession(storedToken).catch(() => {
|
|
96
|
-
// Session invalid, clear storage
|
|
97
|
-
localStorage.removeItem('wallet_session_token');
|
|
98
|
-
localStorage.removeItem('wallet_address');
|
|
99
|
-
setSessionToken(null);
|
|
100
|
-
setWalletAddress(null);
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
}, [verifySession]);
|
|
104
|
-
/**
|
|
105
|
-
* Sign message with wallet
|
|
106
|
-
*/
|
|
107
|
-
const signMessage = useCallback(async (message) => {
|
|
108
|
-
// Try Privy wallet first
|
|
109
|
-
const privyWallet = wallets?.[0];
|
|
110
|
-
if (privyWallet && 'signMessage' in privyWallet) {
|
|
111
|
-
try {
|
|
112
|
-
// Privy wallets support signMessage directly
|
|
113
|
-
const signature = await privyWallet.signMessage(message);
|
|
114
|
-
return signature;
|
|
115
|
-
}
|
|
116
|
-
catch (error) {
|
|
117
|
-
console.error('Privy wallet signing failed', error);
|
|
118
|
-
throw error;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
// Fall back to thirdweb active account
|
|
122
|
-
if (activeAccount && 'signMessage' in activeAccount) {
|
|
123
|
-
try {
|
|
124
|
-
const signature = await activeAccount.signMessage({ message });
|
|
125
|
-
return signature;
|
|
126
|
-
}
|
|
127
|
-
catch (error) {
|
|
128
|
-
console.error('Thirdweb wallet signing failed', error);
|
|
129
|
-
throw error;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
throw new Error('No wallet available for signing');
|
|
133
|
-
}, [wallets, activeAccount]);
|
|
134
|
-
/**
|
|
135
|
-
* Login with wallet signature
|
|
136
|
-
*/
|
|
137
|
-
const login = useCallback(async () => {
|
|
138
|
-
if (!address) {
|
|
139
|
-
const error = 'No wallet connected';
|
|
140
|
-
setAuthError(error);
|
|
141
|
-
onAuthError?.(error);
|
|
142
|
-
return;
|
|
143
|
-
}
|
|
144
|
-
setIsAuthenticating(true);
|
|
145
|
-
setAuthError(null);
|
|
146
|
-
try {
|
|
147
|
-
// Step 1: Get authentication message
|
|
148
|
-
const messageResponse = await fetch(`${apiBaseUrl}/api/v1/wallet/auth/message`, {
|
|
149
|
-
method: 'POST',
|
|
150
|
-
headers: { 'Content-Type': 'application/json' },
|
|
151
|
-
body: JSON.stringify({ wallet_address: address }),
|
|
152
|
-
});
|
|
153
|
-
if (!messageResponse.ok) {
|
|
154
|
-
throw new Error('Failed to get authentication message');
|
|
155
|
-
}
|
|
156
|
-
const { message, nonce } = await messageResponse.json();
|
|
157
|
-
// Step 2: Sign message with wallet
|
|
158
|
-
const signature = await signMessage(message);
|
|
159
|
-
// Step 3: Login with signature
|
|
160
|
-
const loginResponse = await fetch(`${apiBaseUrl}/api/v1/wallet/auth/login`, {
|
|
161
|
-
method: 'POST',
|
|
162
|
-
headers: { 'Content-Type': 'application/json' },
|
|
163
|
-
body: JSON.stringify({
|
|
164
|
-
wallet_address: address,
|
|
165
|
-
signature,
|
|
166
|
-
message,
|
|
167
|
-
nonce,
|
|
168
|
-
user_agent: typeof navigator !== 'undefined' ? navigator.userAgent : 'unknown',
|
|
169
|
-
}),
|
|
170
|
-
});
|
|
171
|
-
if (!loginResponse.ok) {
|
|
172
|
-
const errorData = await loginResponse.json().catch(() => ({}));
|
|
173
|
-
throw new Error(errorData.detail?.message || errorData.detail || 'Authentication failed');
|
|
174
|
-
}
|
|
175
|
-
const session = await loginResponse.json();
|
|
176
|
-
// Store session
|
|
177
|
-
setSessionToken(session.sessionToken);
|
|
178
|
-
setWalletAddress(session.walletAddress);
|
|
179
|
-
localStorage.setItem('wallet_session_token', session.sessionToken);
|
|
180
|
-
localStorage.setItem('wallet_address', session.walletAddress);
|
|
181
|
-
onSessionChange?.(session);
|
|
182
|
-
console.log('Wallet authentication successful');
|
|
183
|
-
}
|
|
184
|
-
catch (error) {
|
|
185
|
-
console.error('Wallet authentication failed', error);
|
|
186
|
-
const errorMessage = error instanceof Error ? error.message : 'Authentication failed';
|
|
187
|
-
setAuthError(errorMessage);
|
|
188
|
-
onAuthError?.(errorMessage);
|
|
189
|
-
// Clear any existing session
|
|
190
|
-
setSessionToken(null);
|
|
191
|
-
setWalletAddress(null);
|
|
192
|
-
localStorage.removeItem('wallet_session_token');
|
|
193
|
-
localStorage.removeItem('wallet_address');
|
|
194
|
-
}
|
|
195
|
-
finally {
|
|
196
|
-
setIsAuthenticating(false);
|
|
197
|
-
}
|
|
198
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
199
|
-
}, [address, apiBaseUrl, onSessionChange, onAuthError, signMessage]);
|
|
200
|
-
/**
|
|
201
|
-
* Logout and invalidate session
|
|
202
|
-
*/
|
|
203
|
-
const logout = useCallback(async () => {
|
|
204
|
-
if (!sessionToken)
|
|
205
|
-
return;
|
|
206
|
-
try {
|
|
207
|
-
await fetch(`${apiBaseUrl}/api/v1/wallet/auth/logout`, {
|
|
208
|
-
method: 'POST',
|
|
209
|
-
headers: {
|
|
210
|
-
'X-Session-Token': sessionToken,
|
|
211
|
-
},
|
|
212
|
-
});
|
|
213
|
-
console.log('Logged out successfully');
|
|
214
|
-
}
|
|
215
|
-
catch (error) {
|
|
216
|
-
console.error('Logout failed', error);
|
|
217
|
-
}
|
|
218
|
-
finally {
|
|
219
|
-
// Clear session regardless of API success
|
|
220
|
-
setSessionToken(null);
|
|
221
|
-
setWalletAddress(null);
|
|
222
|
-
localStorage.removeItem('wallet_session_token');
|
|
223
|
-
localStorage.removeItem('wallet_address');
|
|
224
|
-
onSessionChange?.(null);
|
|
225
|
-
}
|
|
226
|
-
}, [sessionToken, apiBaseUrl, onSessionChange]);
|
|
227
|
-
/**
|
|
228
|
-
* Refresh session expiration
|
|
229
|
-
*/
|
|
230
|
-
const refreshSession = useCallback(async () => {
|
|
231
|
-
if (!sessionToken)
|
|
232
|
-
return;
|
|
233
|
-
try {
|
|
234
|
-
const response = await fetch(`${apiBaseUrl}/api/v1/wallet/auth/refresh`, {
|
|
235
|
-
method: 'POST',
|
|
236
|
-
headers: {
|
|
237
|
-
'X-Session-Token': sessionToken,
|
|
238
|
-
},
|
|
239
|
-
});
|
|
240
|
-
if (!response.ok) {
|
|
241
|
-
throw new Error('Session refresh failed');
|
|
242
|
-
}
|
|
243
|
-
const session = await response.json();
|
|
244
|
-
console.log('Session refreshed', { expiresAt: new Date(session.expiresAt * 1000) });
|
|
245
|
-
}
|
|
246
|
-
catch (error) {
|
|
247
|
-
console.error('Session refresh failed', error);
|
|
248
|
-
// Session might be expired, logout
|
|
249
|
-
await logout();
|
|
250
|
-
}
|
|
251
|
-
}, [sessionToken, apiBaseUrl, logout]);
|
|
252
|
-
/**
|
|
253
|
-
* Get all active sessions
|
|
254
|
-
*/
|
|
255
|
-
const getSessions = useCallback(async () => {
|
|
256
|
-
if (!sessionToken)
|
|
257
|
-
return;
|
|
258
|
-
try {
|
|
259
|
-
const response = await fetch(`${apiBaseUrl}/api/v1/wallet/auth/sessions`, {
|
|
260
|
-
headers: {
|
|
261
|
-
'X-Session-Token': sessionToken,
|
|
262
|
-
},
|
|
263
|
-
});
|
|
264
|
-
if (!response.ok) {
|
|
265
|
-
throw new Error('Failed to get sessions');
|
|
266
|
-
}
|
|
267
|
-
const sessionsData = await response.json();
|
|
268
|
-
setSessions(sessionsData);
|
|
269
|
-
}
|
|
270
|
-
catch (error) {
|
|
271
|
-
console.error('Failed to get sessions', error);
|
|
272
|
-
}
|
|
273
|
-
}, [sessionToken, apiBaseUrl]);
|
|
274
|
-
/**
|
|
275
|
-
* Logout from specific session
|
|
276
|
-
*/
|
|
277
|
-
const logoutFromSession = useCallback(async (targetSessionToken) => {
|
|
278
|
-
if (!sessionToken)
|
|
279
|
-
return;
|
|
280
|
-
try {
|
|
281
|
-
await fetch(`${apiBaseUrl}/api/v1/wallet/auth/sessions/${targetSessionToken}`, {
|
|
282
|
-
method: 'DELETE',
|
|
283
|
-
headers: {
|
|
284
|
-
'X-Session-Token': sessionToken,
|
|
285
|
-
},
|
|
286
|
-
});
|
|
287
|
-
console.log('Session invalidated');
|
|
288
|
-
// If we logged out our own session, clear local state
|
|
289
|
-
if (targetSessionToken === sessionToken) {
|
|
290
|
-
await logout();
|
|
291
|
-
}
|
|
292
|
-
else {
|
|
293
|
-
// Refresh sessions list
|
|
294
|
-
await getSessions();
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
catch (error) {
|
|
298
|
-
console.error('Failed to invalidate session', error);
|
|
299
|
-
}
|
|
300
|
-
}, [sessionToken, apiBaseUrl, logout, getSessions]);
|
|
301
|
-
/**
|
|
302
|
-
* Logout from all devices
|
|
303
|
-
*/
|
|
304
|
-
const logoutFromAllDevices = useCallback(async () => {
|
|
305
|
-
if (!sessionToken)
|
|
306
|
-
return;
|
|
307
|
-
try {
|
|
308
|
-
await fetch(`${apiBaseUrl}/api/v1/wallet/auth/sessions`, {
|
|
309
|
-
method: 'DELETE',
|
|
310
|
-
headers: {
|
|
311
|
-
'X-Session-Token': sessionToken,
|
|
312
|
-
},
|
|
313
|
-
});
|
|
314
|
-
console.log('Logged out from all devices');
|
|
315
|
-
// Clear local session
|
|
316
|
-
await logout();
|
|
317
|
-
}
|
|
318
|
-
catch (error) {
|
|
319
|
-
console.error('Failed to logout from all devices', error);
|
|
320
|
-
}
|
|
321
|
-
}, [sessionToken, apiBaseUrl, logout]);
|
|
322
|
-
/**
|
|
323
|
-
* Add additional wallet to session (multi-wallet support)
|
|
324
|
-
*/
|
|
325
|
-
const addWallet = useCallback(async (newWalletAddress) => {
|
|
326
|
-
if (!sessionToken)
|
|
327
|
-
return;
|
|
328
|
-
try {
|
|
329
|
-
// Get authentication message for new wallet
|
|
330
|
-
const messageResponse = await fetch(`${apiBaseUrl}/api/v1/wallet/auth/message`, {
|
|
331
|
-
method: 'POST',
|
|
332
|
-
headers: { 'Content-Type': 'application/json' },
|
|
333
|
-
body: JSON.stringify({ wallet_address: newWalletAddress }),
|
|
334
|
-
});
|
|
335
|
-
if (!messageResponse.ok) {
|
|
336
|
-
throw new Error('Failed to get authentication message');
|
|
337
|
-
}
|
|
338
|
-
const { message, nonce } = await messageResponse.json();
|
|
339
|
-
// Sign message with new wallet
|
|
340
|
-
const signature = await signMessage(message);
|
|
341
|
-
// Add wallet to session
|
|
342
|
-
const response = await fetch(`${apiBaseUrl}/api/v1/wallet/auth/add-wallet`, {
|
|
343
|
-
method: 'POST',
|
|
344
|
-
headers: {
|
|
345
|
-
'Content-Type': 'application/json',
|
|
346
|
-
'X-Session-Token': sessionToken,
|
|
347
|
-
},
|
|
348
|
-
body: JSON.stringify({
|
|
349
|
-
new_wallet_address: newWalletAddress,
|
|
350
|
-
signature,
|
|
351
|
-
message,
|
|
352
|
-
nonce,
|
|
353
|
-
}),
|
|
354
|
-
});
|
|
355
|
-
if (!response.ok) {
|
|
356
|
-
throw new Error('Failed to add wallet');
|
|
357
|
-
}
|
|
358
|
-
console.log('Wallet added successfully');
|
|
359
|
-
}
|
|
360
|
-
catch (error) {
|
|
361
|
-
console.error('Failed to add wallet', error);
|
|
362
|
-
throw error;
|
|
363
|
-
}
|
|
364
|
-
},
|
|
365
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
366
|
-
[sessionToken, apiBaseUrl, signMessage]);
|
|
367
|
-
/**
|
|
368
|
-
* Fetch with auth headers
|
|
369
|
-
*/
|
|
370
|
-
const authFetch = useCallback(async (input, init) => {
|
|
371
|
-
const headers = new Headers(init?.headers);
|
|
372
|
-
if (sessionToken) {
|
|
373
|
-
headers.set('X-Session-Token', sessionToken);
|
|
374
|
-
}
|
|
375
|
-
return fetch(input, { ...init, headers });
|
|
376
|
-
}, [sessionToken]);
|
|
377
|
-
// Auto-login when Privy authenticates
|
|
378
|
-
useEffect(() => {
|
|
379
|
-
if (autoLogin && ready && authenticated && address && !sessionToken && !isAuthenticating) {
|
|
380
|
-
console.log('Auto-logging in with wallet', { address });
|
|
381
|
-
login().catch((e) => console.error('Auto-login failed', e));
|
|
382
|
-
}
|
|
383
|
-
}, [autoLogin, ready, authenticated, address, sessionToken, isAuthenticating, login]);
|
|
384
|
-
// Auto-refresh session
|
|
385
|
-
useEffect(() => {
|
|
386
|
-
if (!sessionToken)
|
|
387
|
-
return;
|
|
388
|
-
const intervalId = setInterval(() => {
|
|
389
|
-
refreshSession().catch((e) => console.error('Auto-refresh failed', e));
|
|
390
|
-
}, refreshIntervalMinutes * 60 * 1000);
|
|
391
|
-
return () => clearInterval(intervalId);
|
|
392
|
-
}, [sessionToken, refreshSession, refreshIntervalMinutes]);
|
|
393
|
-
return {
|
|
394
|
-
// Authentication state
|
|
395
|
-
isAuthenticated: !!sessionToken && !!walletAddress,
|
|
396
|
-
sessionToken,
|
|
397
|
-
walletAddress,
|
|
398
|
-
isAuthenticating,
|
|
399
|
-
authError,
|
|
400
|
-
// Session management
|
|
401
|
-
sessions,
|
|
402
|
-
// Actions
|
|
403
|
-
login,
|
|
404
|
-
logout,
|
|
405
|
-
refreshSession,
|
|
406
|
-
getSessions,
|
|
407
|
-
logoutFromSession,
|
|
408
|
-
logoutFromAllDevices,
|
|
409
|
-
addWallet,
|
|
410
|
-
// Utility
|
|
411
|
-
authFetch,
|
|
412
|
-
};
|
|
413
|
-
}
|
|
414
|
-
export default useWalletAuth;
|
|
415
|
-
//# sourceMappingURL=useWalletAuth.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useWalletAuth.js","sourceRoot":"","sources":["../../src/hooks/useWalletAuth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cache Module Client (stub)
|
|
3
|
-
*
|
|
4
|
-
* Placeholder for the cache module API client.
|
|
5
|
-
* Used internally by VarityClient but not yet exported from the package.
|
|
6
|
-
*/
|
|
7
|
-
import { HTTPClient } from '../../utils/http';
|
|
8
|
-
export declare class CacheClient {
|
|
9
|
-
private http;
|
|
10
|
-
constructor(http: HTTPClient);
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/cache/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,qBAAa,WAAW;IACV,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;CACrC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cache Module Client (stub)
|
|
3
|
-
*
|
|
4
|
-
* Placeholder for the cache module API client.
|
|
5
|
-
* Used internally by VarityClient but not yet exported from the package.
|
|
6
|
-
*/
|
|
7
|
-
export class CacheClient {
|
|
8
|
-
http;
|
|
9
|
-
constructor(http) {
|
|
10
|
-
this.http = http;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/cache/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,OAAO,WAAW;IACF;IAApB,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;CACzC"}
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* API Type Extensions for Varity UI Kit
|
|
3
|
-
*
|
|
4
|
-
* Extends base API types with additional properties used by UI hooks
|
|
5
|
-
*/
|
|
6
|
-
import { Metadata, JSONValue, JSONObject } from '@varity-labs/types';
|
|
7
|
-
export interface UserProfile {
|
|
8
|
-
address: string;
|
|
9
|
-
name?: string;
|
|
10
|
-
email?: string;
|
|
11
|
-
avatarUrl?: string;
|
|
12
|
-
metadata?: Metadata;
|
|
13
|
-
}
|
|
14
|
-
export interface LoginResponse {
|
|
15
|
-
token: string;
|
|
16
|
-
address: string;
|
|
17
|
-
name?: string;
|
|
18
|
-
email?: string;
|
|
19
|
-
avatarUrl?: string;
|
|
20
|
-
metadata?: Metadata;
|
|
21
|
-
}
|
|
22
|
-
export interface KPIResult {
|
|
23
|
-
kpis: Array<{
|
|
24
|
-
id: string;
|
|
25
|
-
label: string;
|
|
26
|
-
value: number | string;
|
|
27
|
-
unit?: string;
|
|
28
|
-
trend?: 'up' | 'down' | 'neutral';
|
|
29
|
-
trendValue?: number;
|
|
30
|
-
}>;
|
|
31
|
-
metrics?: Record<string, number | string>;
|
|
32
|
-
}
|
|
33
|
-
export interface TrendDataPoint {
|
|
34
|
-
date: string;
|
|
35
|
-
value: number;
|
|
36
|
-
metadata?: Metadata;
|
|
37
|
-
}
|
|
38
|
-
export interface TrendResponse {
|
|
39
|
-
data: TrendDataPoint[];
|
|
40
|
-
}
|
|
41
|
-
export type AnalyticsPeriod = 'current_day' | 'current_week' | 'current_month' | 'current_year' | 'custom';
|
|
42
|
-
export interface DashboardWidget {
|
|
43
|
-
id: string;
|
|
44
|
-
type: string;
|
|
45
|
-
title?: string;
|
|
46
|
-
config: JSONObject;
|
|
47
|
-
position?: {
|
|
48
|
-
x: number;
|
|
49
|
-
y: number;
|
|
50
|
-
width: number;
|
|
51
|
-
height: number;
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
export interface AnalyticsClient {
|
|
55
|
-
getKPIs(params: {
|
|
56
|
-
period: AnalyticsPeriod;
|
|
57
|
-
}): Promise<KPIResult>;
|
|
58
|
-
getTrends(params: {
|
|
59
|
-
startDate: string;
|
|
60
|
-
endDate: string;
|
|
61
|
-
}): Promise<TrendResponse>;
|
|
62
|
-
getData(config: JSONObject): Promise<JSONValue>;
|
|
63
|
-
trackEvent(params: {
|
|
64
|
-
event: string;
|
|
65
|
-
properties: Record<string, JSONValue>;
|
|
66
|
-
timestamp: string;
|
|
67
|
-
}): Promise<void>;
|
|
68
|
-
}
|
|
69
|
-
export interface DashboardConfig {
|
|
70
|
-
id: string;
|
|
71
|
-
title: string;
|
|
72
|
-
description?: string;
|
|
73
|
-
widgets: DashboardWidget[];
|
|
74
|
-
layout?: string;
|
|
75
|
-
theme?: string;
|
|
76
|
-
}
|
|
77
|
-
export interface DashboardClient {
|
|
78
|
-
get(id: string): Promise<DashboardConfig>;
|
|
79
|
-
save(config: DashboardConfig): Promise<void>;
|
|
80
|
-
}
|
|
81
|
-
export interface AuthClient {
|
|
82
|
-
me(): Promise<UserProfile>;
|
|
83
|
-
login(message: string, signature: string): Promise<LoginResponse>;
|
|
84
|
-
logout(): Promise<void>;
|
|
85
|
-
}
|
|
86
|
-
export interface ExtendedVarityClient {
|
|
87
|
-
auth: AuthClient;
|
|
88
|
-
analytics: AnalyticsClient;
|
|
89
|
-
dashboard: DashboardClient;
|
|
90
|
-
setAPIKey(token: string): void;
|
|
91
|
-
}
|
|
92
|
-
//# sourceMappingURL=api-extensions.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api-extensions.d.ts","sourceRoot":"","sources":["../../src/types/api-extensions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api-extensions.js","sourceRoot":"","sources":["../../src/types/api-extensions.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|