@oxyhq/services 5.16.29 → 5.16.30
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/lib/commonjs/index.js +64 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/ui/hooks/auth/index.js +37 -0
- package/lib/commonjs/ui/hooks/auth/index.js.map +1 -0
- package/lib/commonjs/ui/hooks/auth/useUsernameValidation.js +171 -0
- package/lib/commonjs/ui/hooks/auth/useUsernameValidation.js.map +1 -0
- package/lib/commonjs/ui/hooks/index.js +20 -0
- package/lib/commonjs/ui/hooks/index.js.map +1 -1
- package/lib/commonjs/ui/hooks/mutations/index.js +12 -0
- package/lib/commonjs/ui/hooks/mutations/index.js.map +1 -1
- package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +45 -1
- package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
- package/lib/commonjs/ui/hooks/queries/index.js +12 -0
- package/lib/commonjs/ui/hooks/queries/index.js.map +1 -1
- package/lib/commonjs/ui/hooks/queries/queryKeys.js +3 -1
- package/lib/commonjs/ui/hooks/queries/queryKeys.js.map +1 -1
- package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +43 -1
- package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -1
- package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +76 -97
- package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
- package/lib/module/index.js +3 -3
- package/lib/module/index.js.map +1 -1
- package/lib/module/ui/hooks/auth/index.js +7 -0
- package/lib/module/ui/hooks/auth/index.js.map +1 -0
- package/lib/module/ui/hooks/auth/useUsernameValidation.js +167 -0
- package/lib/module/ui/hooks/auth/useUsernameValidation.js.map +1 -0
- package/lib/module/ui/hooks/index.js +1 -0
- package/lib/module/ui/hooks/index.js.map +1 -1
- package/lib/module/ui/hooks/mutations/index.js +1 -1
- package/lib/module/ui/hooks/mutations/index.js.map +1 -1
- package/lib/module/ui/hooks/mutations/useAccountMutations.js +42 -0
- package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
- package/lib/module/ui/hooks/queries/index.js +1 -1
- package/lib/module/ui/hooks/queries/index.js.map +1 -1
- package/lib/module/ui/hooks/queries/queryKeys.js +3 -1
- package/lib/module/ui/hooks/queries/queryKeys.js.map +1 -1
- package/lib/module/ui/hooks/queries/useAccountQueries.js +40 -0
- package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -1
- package/lib/module/ui/screens/PrivacySettingsScreen.js +77 -98
- package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
- package/lib/typescript/index.d.ts +4 -2
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/auth/index.d.ts +6 -0
- package/lib/typescript/ui/hooks/auth/index.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/auth/useUsernameValidation.d.ts +32 -0
- package/lib/typescript/ui/hooks/auth/useUsernameValidation.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/index.d.ts +1 -0
- package/lib/typescript/ui/hooks/index.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/mutations/index.d.ts +1 -1
- package/lib/typescript/ui/hooks/mutations/index.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts +12 -0
- package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/queries/index.d.ts +1 -1
- package/lib/typescript/ui/hooks/queries/index.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/queries/queryKeys.d.ts +2 -0
- package/lib/typescript/ui/hooks/queries/queryKeys.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts +12 -0
- package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
- package/lib/typescript/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +6 -0
- package/src/ui/hooks/auth/index.ts +6 -0
- package/src/ui/hooks/auth/useUsernameValidation.ts +177 -0
- package/src/ui/hooks/index.ts +2 -1
- package/src/ui/hooks/mutations/index.ts +2 -0
- package/src/ui/hooks/mutations/useAccountMutations.ts +36 -0
- package/src/ui/hooks/queries/index.ts +2 -0
- package/src/ui/hooks/queries/queryKeys.ts +2 -0
- package/src/ui/hooks/queries/useAccountQueries.ts +34 -0
- package/src/ui/screens/PrivacySettingsScreen.tsx +67 -101
- package/lib/commonjs/ui/context/hooks/useSessionManagement.js +0 -281
- package/lib/commonjs/ui/context/hooks/useSessionManagement.js.map +0 -1
- package/lib/commonjs/ui/context/hooks/useStorage.js +0 -79
- package/lib/commonjs/ui/context/hooks/useStorage.js.map +0 -1
- package/lib/module/ui/context/hooks/useSessionManagement.js +0 -276
- package/lib/module/ui/context/hooks/useSessionManagement.js.map +0 -1
- package/lib/module/ui/context/hooks/useStorage.js +0 -74
- package/lib/module/ui/context/hooks/useStorage.js.map +0 -1
- package/lib/typescript/ui/context/hooks/useSessionManagement.d.ts +0 -41
- package/lib/typescript/ui/context/hooks/useSessionManagement.d.ts.map +0 -1
- package/lib/typescript/ui/context/hooks/useStorage.d.ts +0 -22
- package/lib/typescript/ui/context/hooks/useStorage.d.ts.map +0 -1
- package/src/ui/context/hooks/useSessionManagement.ts +0 -401
- package/src/ui/context/hooks/useStorage.ts +0 -104
|
@@ -1,276 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { useCallback, useMemo, useRef, useState } from 'react';
|
|
4
|
-
import { mergeSessions, normalizeAndSortSessions, sessionsArraysEqual } from '../../../utils/sessionUtils';
|
|
5
|
-
import { fetchSessionsWithFallback, validateSessionBatch } from '../../utils/sessionHelpers';
|
|
6
|
-
import { getStorageKeys } from '../../utils/storageHelpers';
|
|
7
|
-
import { handleAuthError, isInvalidSessionError } from '../../utils/errorHandlers';
|
|
8
|
-
import { clearQueryCache } from '../../hooks/queryClient';
|
|
9
|
-
const DEFAULT_SAVE_ERROR_MESSAGE = 'Failed to save session data';
|
|
10
|
-
const CLEAR_STORAGE_ERROR = 'Failed to clear storage';
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Manage session state, persistence, and high-level multi-session operations.
|
|
14
|
-
*
|
|
15
|
-
* @param options - Session management configuration
|
|
16
|
-
*/
|
|
17
|
-
export const useSessionManagement = ({
|
|
18
|
-
oxyServices,
|
|
19
|
-
storage,
|
|
20
|
-
storageKeyPrefix,
|
|
21
|
-
loginSuccess,
|
|
22
|
-
logoutStore,
|
|
23
|
-
applyLanguagePreference,
|
|
24
|
-
onAuthStateChange,
|
|
25
|
-
onError,
|
|
26
|
-
setAuthError,
|
|
27
|
-
logger,
|
|
28
|
-
setTokenReady,
|
|
29
|
-
queryClient
|
|
30
|
-
}) => {
|
|
31
|
-
const [sessions, setSessions] = useState([]);
|
|
32
|
-
const [activeSessionId, setActiveSessionId] = useState(null);
|
|
33
|
-
const refreshInFlightRef = useRef(null);
|
|
34
|
-
const removedSessionsRef = useRef(new Set());
|
|
35
|
-
const lastRefreshRef = useRef(0);
|
|
36
|
-
const storageKeys = useMemo(() => getStorageKeys(storageKeyPrefix), [storageKeyPrefix]);
|
|
37
|
-
const saveSessionIds = useCallback(async sessionIds => {
|
|
38
|
-
if (!storage) return;
|
|
39
|
-
try {
|
|
40
|
-
const uniqueIds = Array.from(new Set(sessionIds));
|
|
41
|
-
await storage.setItem(storageKeys.sessionIds, JSON.stringify(uniqueIds));
|
|
42
|
-
} catch (error) {
|
|
43
|
-
if (logger) {
|
|
44
|
-
logger(DEFAULT_SAVE_ERROR_MESSAGE, error);
|
|
45
|
-
} else if (__DEV__) {
|
|
46
|
-
console.warn('Failed to save session IDs:', error);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}, [logger, storage, storageKeys.sessionIds]);
|
|
50
|
-
const updateSessions = useCallback((incoming, options = {}) => {
|
|
51
|
-
setSessions(prevSessions => {
|
|
52
|
-
const processed = options.merge ? mergeSessions(prevSessions, incoming, activeSessionId, false) : normalizeAndSortSessions(incoming, activeSessionId, false);
|
|
53
|
-
if (storage) {
|
|
54
|
-
void saveSessionIds(processed.map(session => session.sessionId));
|
|
55
|
-
}
|
|
56
|
-
if (sessionsArraysEqual(prevSessions, processed)) {
|
|
57
|
-
return prevSessions;
|
|
58
|
-
}
|
|
59
|
-
return processed;
|
|
60
|
-
});
|
|
61
|
-
}, [activeSessionId, saveSessionIds, storage]);
|
|
62
|
-
const saveActiveSessionId = useCallback(async sessionId => {
|
|
63
|
-
if (!storage) return;
|
|
64
|
-
try {
|
|
65
|
-
await storage.setItem(storageKeys.activeSessionId, sessionId);
|
|
66
|
-
} catch (error) {
|
|
67
|
-
handleAuthError(error, {
|
|
68
|
-
defaultMessage: DEFAULT_SAVE_ERROR_MESSAGE,
|
|
69
|
-
code: 'SESSION_PERSISTENCE_ERROR',
|
|
70
|
-
onError,
|
|
71
|
-
setAuthError,
|
|
72
|
-
logger
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
}, [logger, onError, setAuthError, storage, storageKeys.activeSessionId]);
|
|
76
|
-
const removeActiveSessionId = useCallback(async () => {
|
|
77
|
-
if (!storage) return;
|
|
78
|
-
try {
|
|
79
|
-
await storage.removeItem(storageKeys.activeSessionId);
|
|
80
|
-
} catch (error) {
|
|
81
|
-
handleAuthError(error, {
|
|
82
|
-
defaultMessage: DEFAULT_SAVE_ERROR_MESSAGE,
|
|
83
|
-
code: 'SESSION_PERSISTENCE_ERROR',
|
|
84
|
-
onError,
|
|
85
|
-
setAuthError,
|
|
86
|
-
logger
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
}, [logger, onError, setAuthError, storage, storageKeys.activeSessionId]);
|
|
90
|
-
const clearSessionStorage = useCallback(async () => {
|
|
91
|
-
if (!storage) return;
|
|
92
|
-
try {
|
|
93
|
-
await storage.removeItem(storageKeys.activeSessionId);
|
|
94
|
-
await storage.removeItem(storageKeys.sessionIds);
|
|
95
|
-
// Clear identity sync state
|
|
96
|
-
await storage.removeItem('oxy_identity_synced').catch(() => {});
|
|
97
|
-
} catch (error) {
|
|
98
|
-
handleAuthError(error, {
|
|
99
|
-
defaultMessage: CLEAR_STORAGE_ERROR,
|
|
100
|
-
code: 'STORAGE_ERROR',
|
|
101
|
-
onError,
|
|
102
|
-
setAuthError,
|
|
103
|
-
logger
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
}, [logger, onError, setAuthError, storage, storageKeys.activeSessionId, storageKeys.sessionIds]);
|
|
107
|
-
const clearSessionState = useCallback(async () => {
|
|
108
|
-
setSessions([]);
|
|
109
|
-
setActiveSessionId(null);
|
|
110
|
-
logoutStore();
|
|
111
|
-
|
|
112
|
-
// Clear TanStack Query cache (in-memory)
|
|
113
|
-
if (queryClient) {
|
|
114
|
-
queryClient.clear();
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
// Clear persisted query cache
|
|
118
|
-
if (storage) {
|
|
119
|
-
try {
|
|
120
|
-
await clearQueryCache(storage);
|
|
121
|
-
} catch (error) {
|
|
122
|
-
if (logger) {
|
|
123
|
-
logger('Failed to clear persisted query cache', error);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
await clearSessionStorage();
|
|
128
|
-
onAuthStateChange?.(null);
|
|
129
|
-
}, [clearSessionStorage, logoutStore, onAuthStateChange, queryClient, storage, logger]);
|
|
130
|
-
const activateSession = useCallback(async (sessionId, user) => {
|
|
131
|
-
await oxyServices.getTokenBySession(sessionId);
|
|
132
|
-
setTokenReady?.(true);
|
|
133
|
-
setActiveSessionId(sessionId);
|
|
134
|
-
loginSuccess(user);
|
|
135
|
-
await saveActiveSessionId(sessionId);
|
|
136
|
-
await applyLanguagePreference(user);
|
|
137
|
-
onAuthStateChange?.(user);
|
|
138
|
-
}, [applyLanguagePreference, loginSuccess, onAuthStateChange, oxyServices, saveActiveSessionId, setTokenReady]);
|
|
139
|
-
const trackRemovedSession = useCallback(sessionId => {
|
|
140
|
-
removedSessionsRef.current.add(sessionId);
|
|
141
|
-
setTimeout(() => {
|
|
142
|
-
removedSessionsRef.current.delete(sessionId);
|
|
143
|
-
}, 5000);
|
|
144
|
-
}, []);
|
|
145
|
-
const findReplacementSession = useCallback(async sessionIds => {
|
|
146
|
-
if (!sessionIds.length) {
|
|
147
|
-
return null;
|
|
148
|
-
}
|
|
149
|
-
const validationResults = await validateSessionBatch(oxyServices, sessionIds, {
|
|
150
|
-
maxConcurrency: 3
|
|
151
|
-
});
|
|
152
|
-
const validSession = validationResults.find(result => result.valid);
|
|
153
|
-
if (!validSession) {
|
|
154
|
-
return null;
|
|
155
|
-
}
|
|
156
|
-
const validation = await oxyServices.validateSession(validSession.sessionId, {
|
|
157
|
-
useHeaderValidation: true
|
|
158
|
-
});
|
|
159
|
-
if (!validation?.valid || !validation.user) {
|
|
160
|
-
return null;
|
|
161
|
-
}
|
|
162
|
-
const user = validation.user;
|
|
163
|
-
await activateSession(validSession.sessionId, user);
|
|
164
|
-
return user;
|
|
165
|
-
}, [activateSession, oxyServices]);
|
|
166
|
-
const switchSession = useCallback(async sessionId => {
|
|
167
|
-
try {
|
|
168
|
-
const validation = await oxyServices.validateSession(sessionId, {
|
|
169
|
-
useHeaderValidation: true
|
|
170
|
-
});
|
|
171
|
-
if (!validation?.valid) {
|
|
172
|
-
throw new Error('Session is invalid or expired');
|
|
173
|
-
}
|
|
174
|
-
if (!validation.user) {
|
|
175
|
-
throw new Error('User data not available from session validation');
|
|
176
|
-
}
|
|
177
|
-
const user = validation.user;
|
|
178
|
-
await activateSession(sessionId, user);
|
|
179
|
-
try {
|
|
180
|
-
const deviceSessions = await fetchSessionsWithFallback(oxyServices, sessionId, {
|
|
181
|
-
fallbackUserId: user.id,
|
|
182
|
-
logger
|
|
183
|
-
});
|
|
184
|
-
updateSessions(deviceSessions, {
|
|
185
|
-
merge: true
|
|
186
|
-
});
|
|
187
|
-
} catch (error) {
|
|
188
|
-
if (__DEV__) {
|
|
189
|
-
console.warn('Failed to synchronize sessions after switch:', error);
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
return user;
|
|
193
|
-
} catch (error) {
|
|
194
|
-
const invalidSession = isInvalidSessionError(error);
|
|
195
|
-
if (invalidSession) {
|
|
196
|
-
updateSessions(sessions.filter(session => session.sessionId !== sessionId), {
|
|
197
|
-
merge: false
|
|
198
|
-
});
|
|
199
|
-
if (sessionId === activeSessionId) {
|
|
200
|
-
const otherSessionIds = sessions.filter(session => session.sessionId !== sessionId && !removedSessionsRef.current.has(session.sessionId)).map(session => session.sessionId);
|
|
201
|
-
const replacementUser = await findReplacementSession(otherSessionIds);
|
|
202
|
-
if (replacementUser) {
|
|
203
|
-
return replacementUser;
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
handleAuthError(error, {
|
|
208
|
-
defaultMessage: 'Failed to switch session',
|
|
209
|
-
code: invalidSession ? 'INVALID_SESSION' : 'SESSION_SWITCH_ERROR',
|
|
210
|
-
onError,
|
|
211
|
-
setAuthError,
|
|
212
|
-
logger
|
|
213
|
-
});
|
|
214
|
-
throw error instanceof Error ? error : new Error('Failed to switch session');
|
|
215
|
-
}
|
|
216
|
-
}, [activateSession, activeSessionId, findReplacementSession, logger, loginSuccess, onError, oxyServices, sessions, setAuthError, updateSessions]);
|
|
217
|
-
const refreshSessions = useCallback(async activeUserId => {
|
|
218
|
-
if (!activeSessionId) return;
|
|
219
|
-
if (refreshInFlightRef.current) {
|
|
220
|
-
await refreshInFlightRef.current;
|
|
221
|
-
return;
|
|
222
|
-
}
|
|
223
|
-
const now = Date.now();
|
|
224
|
-
if (now - lastRefreshRef.current < 500) {
|
|
225
|
-
return;
|
|
226
|
-
}
|
|
227
|
-
lastRefreshRef.current = now;
|
|
228
|
-
const refreshPromise = (async () => {
|
|
229
|
-
try {
|
|
230
|
-
const deviceSessions = await fetchSessionsWithFallback(oxyServices, activeSessionId, {
|
|
231
|
-
fallbackUserId: activeUserId,
|
|
232
|
-
logger
|
|
233
|
-
});
|
|
234
|
-
updateSessions(deviceSessions, {
|
|
235
|
-
merge: true
|
|
236
|
-
});
|
|
237
|
-
} catch (error) {
|
|
238
|
-
if (isInvalidSessionError(error)) {
|
|
239
|
-
const otherSessions = sessions.filter(session => session.sessionId !== activeSessionId && !removedSessionsRef.current.has(session.sessionId)).map(session => session.sessionId);
|
|
240
|
-
const replacementUser = await findReplacementSession(otherSessions);
|
|
241
|
-
if (!replacementUser) {
|
|
242
|
-
await clearSessionState();
|
|
243
|
-
}
|
|
244
|
-
return;
|
|
245
|
-
}
|
|
246
|
-
handleAuthError(error, {
|
|
247
|
-
defaultMessage: 'Failed to refresh sessions',
|
|
248
|
-
code: 'SESSION_REFRESH_ERROR',
|
|
249
|
-
onError,
|
|
250
|
-
setAuthError,
|
|
251
|
-
logger
|
|
252
|
-
});
|
|
253
|
-
} finally {
|
|
254
|
-
refreshInFlightRef.current = null;
|
|
255
|
-
lastRefreshRef.current = Date.now();
|
|
256
|
-
}
|
|
257
|
-
})();
|
|
258
|
-
refreshInFlightRef.current = refreshPromise;
|
|
259
|
-
await refreshPromise;
|
|
260
|
-
}, [activeSessionId, clearSessionState, findReplacementSession, logger, onError, oxyServices, sessions, setAuthError, updateSessions]);
|
|
261
|
-
const isRefreshInFlight = Boolean(refreshInFlightRef.current);
|
|
262
|
-
return {
|
|
263
|
-
sessions,
|
|
264
|
-
activeSessionId,
|
|
265
|
-
setActiveSessionId,
|
|
266
|
-
updateSessions,
|
|
267
|
-
switchSession,
|
|
268
|
-
refreshSessions,
|
|
269
|
-
clearSessionState,
|
|
270
|
-
saveActiveSessionId,
|
|
271
|
-
trackRemovedSession,
|
|
272
|
-
storageKeys,
|
|
273
|
-
isRefreshInFlight
|
|
274
|
-
};
|
|
275
|
-
};
|
|
276
|
-
//# sourceMappingURL=useSessionManagement.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useMemo","useRef","useState","mergeSessions","normalizeAndSortSessions","sessionsArraysEqual","fetchSessionsWithFallback","validateSessionBatch","getStorageKeys","handleAuthError","isInvalidSessionError","clearQueryCache","DEFAULT_SAVE_ERROR_MESSAGE","CLEAR_STORAGE_ERROR","useSessionManagement","oxyServices","storage","storageKeyPrefix","loginSuccess","logoutStore","applyLanguagePreference","onAuthStateChange","onError","setAuthError","logger","setTokenReady","queryClient","sessions","setSessions","activeSessionId","setActiveSessionId","refreshInFlightRef","removedSessionsRef","Set","lastRefreshRef","storageKeys","saveSessionIds","sessionIds","uniqueIds","Array","from","setItem","JSON","stringify","error","__DEV__","console","warn","updateSessions","incoming","options","prevSessions","processed","merge","map","session","sessionId","saveActiveSessionId","defaultMessage","code","removeActiveSessionId","removeItem","clearSessionStorage","catch","clearSessionState","clear","activateSession","user","getTokenBySession","trackRemovedSession","current","add","setTimeout","delete","findReplacementSession","length","validationResults","maxConcurrency","validSession","find","result","valid","validation","validateSession","useHeaderValidation","switchSession","Error","deviceSessions","fallbackUserId","id","invalidSession","filter","otherSessionIds","has","replacementUser","refreshSessions","activeUserId","now","Date","refreshPromise","otherSessions","isRefreshInFlight","Boolean"],"sourceRoot":"../../../../../src","sources":["ui/context/hooks/useSessionManagement.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAG9D,SAASC,aAAa,EAAEC,wBAAwB,EAAEC,mBAAmB,QAAQ,6BAA6B;AAC1G,SAASC,yBAAyB,EAAuBC,oBAAoB,QAAQ,4BAA4B;AACjH,SAASC,cAAc,QAA+B,4BAA4B;AAClF,SAASC,eAAe,EAAEC,qBAAqB,QAAQ,2BAA2B;AAGlF,SAASC,eAAe,QAAQ,yBAAyB;AA+BzD,MAAMC,0BAA0B,GAAG,6BAA6B;AAChE,MAAMC,mBAAmB,GAAG,yBAAyB;;AAErD;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,oBAAoB,GAAGA,CAAC;EACnCC,WAAW;EACXC,OAAO;EACPC,gBAAgB;EAChBC,YAAY;EACZC,WAAW;EACXC,uBAAuB;EACvBC,iBAAiB;EACjBC,OAAO;EACPC,YAAY;EACZC,MAAM;EACNC,aAAa;EACbC;AAC2B,CAAC,KAAiC;EAC7D,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAG1B,QAAQ,CAAkB,EAAE,CAAC;EAC7D,MAAM,CAAC2B,eAAe,EAAEC,kBAAkB,CAAC,GAAG5B,QAAQ,CAAgB,IAAI,CAAC;EAE3E,MAAM6B,kBAAkB,GAAG9B,MAAM,CAAuB,IAAI,CAAC;EAC7D,MAAM+B,kBAAkB,GAAG/B,MAAM,CAAc,IAAIgC,GAAG,CAAC,CAAC,CAAC;EACzD,MAAMC,cAAc,GAAGjC,MAAM,CAAS,CAAC,CAAC;EAExC,MAAMkC,WAAW,GAAGnC,OAAO,CAAC,MAAMQ,cAAc,CAACS,gBAAgB,CAAC,EAAE,CAACA,gBAAgB,CAAC,CAAC;EAEvF,MAAMmB,cAAc,GAAGrC,WAAW,CAChC,MAAOsC,UAAoB,IAAoB;IAC7C,IAAI,CAACrB,OAAO,EAAE;IACd,IAAI;MACF,MAAMsB,SAAS,GAAGC,KAAK,CAACC,IAAI,CAAC,IAAIP,GAAG,CAACI,UAAU,CAAC,CAAC;MACjD,MAAMrB,OAAO,CAACyB,OAAO,CAACN,WAAW,CAACE,UAAU,EAAEK,IAAI,CAACC,SAAS,CAACL,SAAS,CAAC,CAAC;IAC1E,CAAC,CAAC,OAAOM,KAAK,EAAE;MACd,IAAIpB,MAAM,EAAE;QACVA,MAAM,CAACZ,0BAA0B,EAAEgC,KAAK,CAAC;MAC3C,CAAC,MAAM,IAAIC,OAAO,EAAE;QAClBC,OAAO,CAACC,IAAI,CAAC,6BAA6B,EAAEH,KAAK,CAAC;MACpD;IACF;EACF,CAAC,EACD,CAACpB,MAAM,EAAER,OAAO,EAAEmB,WAAW,CAACE,UAAU,CAC1C,CAAC;EAED,MAAMW,cAAc,GAAGjD,WAAW,CAChC,CAACkD,QAAyB,EAAEC,OAA4B,GAAG,CAAC,CAAC,KAAW;IACtEtB,WAAW,CAAEuB,YAAY,IAAK;MAC5B,MAAMC,SAAS,GAAGF,OAAO,CAACG,KAAK,GAC3BlD,aAAa,CAACgD,YAAY,EAAEF,QAAQ,EAAEpB,eAAe,EAAE,KAAK,CAAC,GAC7DzB,wBAAwB,CAAC6C,QAAQ,EAAEpB,eAAe,EAAE,KAAK,CAAC;MAE9D,IAAIb,OAAO,EAAE;QACX,KAAKoB,cAAc,CAACgB,SAAS,CAACE,GAAG,CAAEC,OAAO,IAAKA,OAAO,CAACC,SAAS,CAAC,CAAC;MACpE;MAEA,IAAInD,mBAAmB,CAAC8C,YAAY,EAAEC,SAAS,CAAC,EAAE;QAChD,OAAOD,YAAY;MACrB;MACA,OAAOC,SAAS;IAClB,CAAC,CAAC;EACJ,CAAC,EACD,CAACvB,eAAe,EAAEO,cAAc,EAAEpB,OAAO,CAC3C,CAAC;EAED,MAAMyC,mBAAmB,GAAG1D,WAAW,CACrC,MAAOyD,SAAiB,IAAoB;IAC1C,IAAI,CAACxC,OAAO,EAAE;IACd,IAAI;MACF,MAAMA,OAAO,CAACyB,OAAO,CAACN,WAAW,CAACN,eAAe,EAAE2B,SAAS,CAAC;IAC/D,CAAC,CAAC,OAAOZ,KAAK,EAAE;MACdnC,eAAe,CAACmC,KAAK,EAAE;QACrBc,cAAc,EAAE9C,0BAA0B;QAC1C+C,IAAI,EAAE,2BAA2B;QACjCrC,OAAO;QACPC,YAAY;QACZC;MACF,CAAC,CAAC;IACJ;EACF,CAAC,EACD,CAACA,MAAM,EAAEF,OAAO,EAAEC,YAAY,EAAEP,OAAO,EAAEmB,WAAW,CAACN,eAAe,CACtE,CAAC;EAED,MAAM+B,qBAAqB,GAAG7D,WAAW,CAAC,YAA2B;IACnE,IAAI,CAACiB,OAAO,EAAE;IACd,IAAI;MACF,MAAMA,OAAO,CAAC6C,UAAU,CAAC1B,WAAW,CAACN,eAAe,CAAC;IACvD,CAAC,CAAC,OAAOe,KAAK,EAAE;MACdnC,eAAe,CAACmC,KAAK,EAAE;QACrBc,cAAc,EAAE9C,0BAA0B;QAC1C+C,IAAI,EAAE,2BAA2B;QACjCrC,OAAO;QACPC,YAAY;QACZC;MACF,CAAC,CAAC;IACJ;EACF,CAAC,EAAE,CAACA,MAAM,EAAEF,OAAO,EAAEC,YAAY,EAAEP,OAAO,EAAEmB,WAAW,CAACN,eAAe,CAAC,CAAC;EAEzE,MAAMiC,mBAAmB,GAAG/D,WAAW,CAAC,YAA2B;IACjE,IAAI,CAACiB,OAAO,EAAE;IACd,IAAI;MACF,MAAMA,OAAO,CAAC6C,UAAU,CAAC1B,WAAW,CAACN,eAAe,CAAC;MACrD,MAAMb,OAAO,CAAC6C,UAAU,CAAC1B,WAAW,CAACE,UAAU,CAAC;MAChD;MACA,MAAMrB,OAAO,CAAC6C,UAAU,CAAC,qBAAqB,CAAC,CAACE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACjE,CAAC,CAAC,OAAOnB,KAAK,EAAE;MACdnC,eAAe,CAACmC,KAAK,EAAE;QACrBc,cAAc,EAAE7C,mBAAmB;QACnC8C,IAAI,EAAE,eAAe;QACrBrC,OAAO;QACPC,YAAY;QACZC;MACF,CAAC,CAAC;IACJ;EACF,CAAC,EAAE,CAACA,MAAM,EAAEF,OAAO,EAAEC,YAAY,EAAEP,OAAO,EAAEmB,WAAW,CAACN,eAAe,EAAEM,WAAW,CAACE,UAAU,CAAC,CAAC;EAEjG,MAAM2B,iBAAiB,GAAGjE,WAAW,CAAC,YAA2B;IAC/D6B,WAAW,CAAC,EAAE,CAAC;IACfE,kBAAkB,CAAC,IAAI,CAAC;IACxBX,WAAW,CAAC,CAAC;;IAEb;IACA,IAAIO,WAAW,EAAE;MACfA,WAAW,CAACuC,KAAK,CAAC,CAAC;IACrB;;IAEA;IACA,IAAIjD,OAAO,EAAE;MACX,IAAI;QACF,MAAML,eAAe,CAACK,OAAO,CAAC;MAChC,CAAC,CAAC,OAAO4B,KAAK,EAAE;QACd,IAAIpB,MAAM,EAAE;UACVA,MAAM,CAAC,uCAAuC,EAAEoB,KAAK,CAAC;QACxD;MACF;IACF;IAEA,MAAMkB,mBAAmB,CAAC,CAAC;IAC3BzC,iBAAiB,GAAG,IAAI,CAAC;EAC3B,CAAC,EAAE,CAACyC,mBAAmB,EAAE3C,WAAW,EAAEE,iBAAiB,EAAEK,WAAW,EAAEV,OAAO,EAAEQ,MAAM,CAAC,CAAC;EAEvF,MAAM0C,eAAe,GAAGnE,WAAW,CACjC,OAAOyD,SAAiB,EAAEW,IAAU,KAAoB;IACtD,MAAMpD,WAAW,CAACqD,iBAAiB,CAACZ,SAAS,CAAC;IAC9C/B,aAAa,GAAG,IAAI,CAAC;IACrBK,kBAAkB,CAAC0B,SAAS,CAAC;IAC7BtC,YAAY,CAACiD,IAAI,CAAC;IAClB,MAAMV,mBAAmB,CAACD,SAAS,CAAC;IACpC,MAAMpC,uBAAuB,CAAC+C,IAAI,CAAC;IACnC9C,iBAAiB,GAAG8C,IAAI,CAAC;EAC3B,CAAC,EACD,CACE/C,uBAAuB,EACvBF,YAAY,EACZG,iBAAiB,EACjBN,WAAW,EACX0C,mBAAmB,EACnBhC,aAAa,CAEjB,CAAC;EAED,MAAM4C,mBAAmB,GAAGtE,WAAW,CAAEyD,SAAiB,IAAK;IAC7DxB,kBAAkB,CAACsC,OAAO,CAACC,GAAG,CAACf,SAAS,CAAC;IACzCgB,UAAU,CAAC,MAAM;MACfxC,kBAAkB,CAACsC,OAAO,CAACG,MAAM,CAACjB,SAAS,CAAC;IAC9C,CAAC,EAAE,IAAI,CAAC;EACV,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMkB,sBAAsB,GAAG3E,WAAW,CACxC,MAAOsC,UAAoB,IAA2B;IACpD,IAAI,CAACA,UAAU,CAACsC,MAAM,EAAE;MACtB,OAAO,IAAI;IACb;IAEA,MAAMC,iBAAiB,GAAG,MAAMrE,oBAAoB,CAACQ,WAAW,EAAEsB,UAAU,EAAE;MAC5EwC,cAAc,EAAE;IAClB,CAAC,CAAC;IAEF,MAAMC,YAAY,GAAGF,iBAAiB,CAACG,IAAI,CAAEC,MAAM,IAAKA,MAAM,CAACC,KAAK,CAAC;IACrE,IAAI,CAACH,YAAY,EAAE;MACjB,OAAO,IAAI;IACb;IAEA,MAAMI,UAAU,GAAG,MAAMnE,WAAW,CAACoE,eAAe,CAACL,YAAY,CAACtB,SAAS,EAAE;MAC3E4B,mBAAmB,EAAE;IACvB,CAAC,CAAC;IAEF,IAAI,CAACF,UAAU,EAAED,KAAK,IAAI,CAACC,UAAU,CAACf,IAAI,EAAE;MAC1C,OAAO,IAAI;IACb;IAEA,MAAMA,IAAI,GAAGe,UAAU,CAACf,IAAY;IACpC,MAAMD,eAAe,CAACY,YAAY,CAACtB,SAAS,EAAEW,IAAI,CAAC;IACnD,OAAOA,IAAI;EACb,CAAC,EACD,CAACD,eAAe,EAAEnD,WAAW,CAC/B,CAAC;EAED,MAAMsE,aAAa,GAAGtF,WAAW,CAC/B,MAAOyD,SAAiB,IAAoB;IAC1C,IAAI;MACF,MAAM0B,UAAU,GAAG,MAAMnE,WAAW,CAACoE,eAAe,CAAC3B,SAAS,EAAE;QAAE4B,mBAAmB,EAAE;MAAK,CAAC,CAAC;MAC9F,IAAI,CAACF,UAAU,EAAED,KAAK,EAAE;QACtB,MAAM,IAAIK,KAAK,CAAC,+BAA+B,CAAC;MAClD;MAEA,IAAI,CAACJ,UAAU,CAACf,IAAI,EAAE;QACpB,MAAM,IAAImB,KAAK,CAAC,iDAAiD,CAAC;MACpE;MAEA,MAAMnB,IAAI,GAAGe,UAAU,CAACf,IAAY;MACpC,MAAMD,eAAe,CAACV,SAAS,EAAEW,IAAI,CAAC;MAEtC,IAAI;QACF,MAAMoB,cAAc,GAAG,MAAMjF,yBAAyB,CAACS,WAAW,EAAEyC,SAAS,EAAE;UAC7EgC,cAAc,EAAErB,IAAI,CAACsB,EAAE;UACvBjE;QACF,CAAC,CAAC;QACFwB,cAAc,CAACuC,cAAc,EAAE;UAAElC,KAAK,EAAE;QAAK,CAAC,CAAC;MACjD,CAAC,CAAC,OAAOT,KAAK,EAAE;QACd,IAAIC,OAAO,EAAE;UACXC,OAAO,CAACC,IAAI,CAAC,8CAA8C,EAAEH,KAAK,CAAC;QACrE;MACF;MAEA,OAAOuB,IAAI;IACb,CAAC,CAAC,OAAOvB,KAAK,EAAE;MACd,MAAM8C,cAAc,GAAGhF,qBAAqB,CAACkC,KAAK,CAAC;MAEnD,IAAI8C,cAAc,EAAE;QAClB1C,cAAc,CAACrB,QAAQ,CAACgE,MAAM,CAAEpC,OAAO,IAAKA,OAAO,CAACC,SAAS,KAAKA,SAAS,CAAC,EAAE;UAC5EH,KAAK,EAAE;QACT,CAAC,CAAC;QACF,IAAIG,SAAS,KAAK3B,eAAe,EAAE;UACjC,MAAM+D,eAAe,GAAGjE,QAAQ,CAC7BgE,MAAM,CACJpC,OAAO,IACNA,OAAO,CAACC,SAAS,KAAKA,SAAS,IAAI,CAACxB,kBAAkB,CAACsC,OAAO,CAACuB,GAAG,CAACtC,OAAO,CAACC,SAAS,CACxF,CAAC,CACAF,GAAG,CAAEC,OAAO,IAAKA,OAAO,CAACC,SAAS,CAAC;UAEtC,MAAMsC,eAAe,GAAG,MAAMpB,sBAAsB,CAACkB,eAAe,CAAC;UACrE,IAAIE,eAAe,EAAE;YACnB,OAAOA,eAAe;UACxB;QACF;MACF;MAEArF,eAAe,CAACmC,KAAK,EAAE;QACrBc,cAAc,EAAE,0BAA0B;QAC1CC,IAAI,EAAE+B,cAAc,GAAG,iBAAiB,GAAG,sBAAsB;QACjEpE,OAAO;QACPC,YAAY;QACZC;MACF,CAAC,CAAC;MACF,MAAMoB,KAAK,YAAY0C,KAAK,GAAG1C,KAAK,GAAG,IAAI0C,KAAK,CAAC,0BAA0B,CAAC;IAC9E;EACF,CAAC,EACD,CACEpB,eAAe,EACfrC,eAAe,EACf6C,sBAAsB,EACtBlD,MAAM,EACNN,YAAY,EACZI,OAAO,EACPP,WAAW,EACXY,QAAQ,EACRJ,YAAY,EACZyB,cAAc,CAElB,CAAC;EAED,MAAM+C,eAAe,GAAGhG,WAAW,CACjC,MAAOiG,YAAqB,IAAoB;IAC9C,IAAI,CAACnE,eAAe,EAAE;IAEtB,IAAIE,kBAAkB,CAACuC,OAAO,EAAE;MAC9B,MAAMvC,kBAAkB,CAACuC,OAAO;MAChC;IACF;IAEA,MAAM2B,GAAG,GAAGC,IAAI,CAACD,GAAG,CAAC,CAAC;IACtB,IAAIA,GAAG,GAAG/D,cAAc,CAACoC,OAAO,GAAG,GAAG,EAAE;MACtC;IACF;IACApC,cAAc,CAACoC,OAAO,GAAG2B,GAAG;IAE5B,MAAME,cAAc,GAAG,CAAC,YAAY;MAClC,IAAI;QACF,MAAMZ,cAAc,GAAG,MAAMjF,yBAAyB,CAACS,WAAW,EAAEc,eAAe,EAAE;UACnF2D,cAAc,EAAEQ,YAAY;UAC5BxE;QACF,CAAC,CAAC;QACFwB,cAAc,CAACuC,cAAc,EAAE;UAAElC,KAAK,EAAE;QAAK,CAAC,CAAC;MACjD,CAAC,CAAC,OAAOT,KAAK,EAAE;QACd,IAAIlC,qBAAqB,CAACkC,KAAK,CAAC,EAAE;UAChC,MAAMwD,aAAa,GAAGzE,QAAQ,CAC3BgE,MAAM,CACJpC,OAAO,IACNA,OAAO,CAACC,SAAS,KAAK3B,eAAe,IACrC,CAACG,kBAAkB,CAACsC,OAAO,CAACuB,GAAG,CAACtC,OAAO,CAACC,SAAS,CACrD,CAAC,CACAF,GAAG,CAAEC,OAAO,IAAKA,OAAO,CAACC,SAAS,CAAC;UAEtC,MAAMsC,eAAe,GAAG,MAAMpB,sBAAsB,CAAC0B,aAAa,CAAC;UACnE,IAAI,CAACN,eAAe,EAAE;YACpB,MAAM9B,iBAAiB,CAAC,CAAC;UAC3B;UACA;QACF;QAEAvD,eAAe,CAACmC,KAAK,EAAE;UACrBc,cAAc,EAAE,4BAA4B;UAC5CC,IAAI,EAAE,uBAAuB;UAC7BrC,OAAO;UACPC,YAAY;UACZC;QACF,CAAC,CAAC;MACJ,CAAC,SAAS;QACRO,kBAAkB,CAACuC,OAAO,GAAG,IAAI;QACjCpC,cAAc,CAACoC,OAAO,GAAG4B,IAAI,CAACD,GAAG,CAAC,CAAC;MACrC;IACF,CAAC,EAAE,CAAC;IAEJlE,kBAAkB,CAACuC,OAAO,GAAG6B,cAAc;IAC3C,MAAMA,cAAc;EACtB,CAAC,EACD,CACEtE,eAAe,EACfmC,iBAAiB,EACjBU,sBAAsB,EACtBlD,MAAM,EACNF,OAAO,EACPP,WAAW,EACXY,QAAQ,EACRJ,YAAY,EACZyB,cAAc,CAElB,CAAC;EAED,MAAMqD,iBAAiB,GAAGC,OAAO,CAACvE,kBAAkB,CAACuC,OAAO,CAAC;EAE7D,OAAO;IACL3C,QAAQ;IACRE,eAAe;IACfC,kBAAkB;IAClBkB,cAAc;IACdqC,aAAa;IACbU,eAAe;IACf/B,iBAAiB;IACjBP,mBAAmB;IACnBY,mBAAmB;IACnBlC,WAAW;IACXkE;EACF,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
4
|
-
import { createPlatformStorage } from '../../utils/storageHelpers';
|
|
5
|
-
import { extractErrorMessage } from '../../utils/errorHandlers';
|
|
6
|
-
const DEFAULT_ERROR_CODE = 'STORAGE_INIT_ERROR';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* React hook that exposes a platform-agnostic storage reference.
|
|
10
|
-
* Handles initialization, error propagation, and lazy re-initialization.
|
|
11
|
-
*
|
|
12
|
-
* @param options - Optional configuration for error reporting and logging
|
|
13
|
-
*/
|
|
14
|
-
export const useStorage = ({
|
|
15
|
-
onError,
|
|
16
|
-
logger,
|
|
17
|
-
errorCode = DEFAULT_ERROR_CODE
|
|
18
|
-
} = {}) => {
|
|
19
|
-
const [storage, setStorage] = useState(null);
|
|
20
|
-
const [error, setError] = useState(null);
|
|
21
|
-
const initializingRef = useRef(null);
|
|
22
|
-
const notifyError = useCallback(err => {
|
|
23
|
-
const message = extractErrorMessage(err, 'Failed to initialize storage');
|
|
24
|
-
setError(message);
|
|
25
|
-
if (logger) {
|
|
26
|
-
logger(message, err);
|
|
27
|
-
}
|
|
28
|
-
onError?.({
|
|
29
|
-
message,
|
|
30
|
-
code: errorCode,
|
|
31
|
-
status: 500
|
|
32
|
-
});
|
|
33
|
-
}, [errorCode, logger, onError]);
|
|
34
|
-
const createStorageInstance = useCallback(async () => {
|
|
35
|
-
try {
|
|
36
|
-
const platformStorage = await createPlatformStorage();
|
|
37
|
-
setStorage(platformStorage);
|
|
38
|
-
setError(null);
|
|
39
|
-
return platformStorage;
|
|
40
|
-
} catch (err) {
|
|
41
|
-
notifyError(err);
|
|
42
|
-
setStorage(null);
|
|
43
|
-
return null;
|
|
44
|
-
}
|
|
45
|
-
}, [notifyError]);
|
|
46
|
-
const refresh = useCallback(async () => {
|
|
47
|
-
if (!initializingRef.current) {
|
|
48
|
-
initializingRef.current = createStorageInstance().finally(() => {
|
|
49
|
-
initializingRef.current = null;
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
return initializingRef.current;
|
|
53
|
-
}, [createStorageInstance]);
|
|
54
|
-
useEffect(() => {
|
|
55
|
-
refresh().catch(err => {
|
|
56
|
-
notifyError(err);
|
|
57
|
-
});
|
|
58
|
-
}, [refresh, notifyError]);
|
|
59
|
-
const withStorage = useCallback(async callback => {
|
|
60
|
-
const resolvedStorage = storage ?? (await refresh());
|
|
61
|
-
if (!resolvedStorage) {
|
|
62
|
-
return null;
|
|
63
|
-
}
|
|
64
|
-
return callback(resolvedStorage);
|
|
65
|
-
}, [refresh, storage]);
|
|
66
|
-
return {
|
|
67
|
-
storage,
|
|
68
|
-
isReady: Boolean(storage) && !error,
|
|
69
|
-
error,
|
|
70
|
-
refresh,
|
|
71
|
-
withStorage
|
|
72
|
-
};
|
|
73
|
-
};
|
|
74
|
-
//# sourceMappingURL=useStorage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useRef","useState","createPlatformStorage","extractErrorMessage","DEFAULT_ERROR_CODE","useStorage","onError","logger","errorCode","storage","setStorage","error","setError","initializingRef","notifyError","err","message","code","status","createStorageInstance","platformStorage","refresh","current","finally","catch","withStorage","callback","resolvedStorage","isReady","Boolean"],"sourceRoot":"../../../../../src","sources":["ui/context/hooks/useStorage.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAEhE,SAASC,qBAAqB,QAA+B,4BAA4B;AACzF,SAASC,mBAAmB,QAAQ,2BAA2B;AAgB/D,MAAMC,kBAAkB,GAAG,oBAAoB;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,UAAU,GAAGA,CAAC;EACzBC,OAAO;EACPC,MAAM;EACNC,SAAS,GAAGJ;AACK,CAAC,GAAG,CAAC,CAAC,KAAuB;EAC9C,MAAM,CAACK,OAAO,EAAEC,UAAU,CAAC,GAAGT,QAAQ,CAA0B,IAAI,CAAC;EACrE,MAAM,CAACU,KAAK,EAAEC,QAAQ,CAAC,GAAGX,QAAQ,CAAgB,IAAI,CAAC;EACvD,MAAMY,eAAe,GAAGb,MAAM,CAA0C,IAAI,CAAC;EAE7E,MAAMc,WAAW,GAAGhB,WAAW,CAC5BiB,GAAY,IAAK;IAChB,MAAMC,OAAO,GAAGb,mBAAmB,CAACY,GAAG,EAAE,8BAA8B,CAAC;IACxEH,QAAQ,CAACI,OAAO,CAAC;IAEjB,IAAIT,MAAM,EAAE;MACVA,MAAM,CAACS,OAAO,EAAED,GAAG,CAAC;IACtB;IAEAT,OAAO,GAAG;MACRU,OAAO;MACPC,IAAI,EAAET,SAAS;MACfU,MAAM,EAAE;IACV,CAAC,CAAC;EACJ,CAAC,EACD,CAACV,SAAS,EAAED,MAAM,EAAED,OAAO,CAC7B,CAAC;EAED,MAAMa,qBAAqB,GAAGrB,WAAW,CAAC,YAA8C;IACtF,IAAI;MACF,MAAMsB,eAAe,GAAG,MAAMlB,qBAAqB,CAAC,CAAC;MACrDQ,UAAU,CAACU,eAAe,CAAC;MAC3BR,QAAQ,CAAC,IAAI,CAAC;MACd,OAAOQ,eAAe;IACxB,CAAC,CAAC,OAAOL,GAAG,EAAE;MACZD,WAAW,CAACC,GAAG,CAAC;MAChBL,UAAU,CAAC,IAAI,CAAC;MAChB,OAAO,IAAI;IACb;EACF,CAAC,EAAE,CAACI,WAAW,CAAC,CAAC;EAEjB,MAAMO,OAAO,GAAGvB,WAAW,CAAC,YAA8C;IACxE,IAAI,CAACe,eAAe,CAACS,OAAO,EAAE;MAC5BT,eAAe,CAACS,OAAO,GAAGH,qBAAqB,CAAC,CAAC,CAACI,OAAO,CAAC,MAAM;QAC9DV,eAAe,CAACS,OAAO,GAAG,IAAI;MAChC,CAAC,CAAC;IACJ;IAEA,OAAOT,eAAe,CAACS,OAAO;EAChC,CAAC,EAAE,CAACH,qBAAqB,CAAC,CAAC;EAE3BpB,SAAS,CAAC,MAAM;IACdsB,OAAO,CAAC,CAAC,CAACG,KAAK,CAAET,GAAG,IAAK;MACvBD,WAAW,CAACC,GAAG,CAAC;IAClB,CAAC,CAAC;EACJ,CAAC,EAAE,CAACM,OAAO,EAAEP,WAAW,CAAC,CAAC;EAE1B,MAAMW,WAAW,GAAG3B,WAAW,CAC7B,MAAW4B,QAA2D,IAAwB;IAC5F,MAAMC,eAAe,GAAGlB,OAAO,KAAK,MAAMY,OAAO,CAAC,CAAC,CAAC;IACpD,IAAI,CAACM,eAAe,EAAE;MACpB,OAAO,IAAI;IACb;IACA,OAAOD,QAAQ,CAACC,eAAe,CAAC;EAClC,CAAC,EACD,CAACN,OAAO,EAAEZ,OAAO,CACnB,CAAC;EAED,OAAO;IACLA,OAAO;IACPmB,OAAO,EAAEC,OAAO,CAACpB,OAAO,CAAC,IAAI,CAACE,KAAK;IACnCA,KAAK;IACLU,OAAO;IACPI;EACF,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import type { ApiError, User } from '../../../models/interfaces';
|
|
2
|
-
import type { ClientSession } from '../../../models/session';
|
|
3
|
-
import { getStorageKeys, type StorageInterface } from '../../utils/storageHelpers';
|
|
4
|
-
import type { OxyServices } from '../../../core';
|
|
5
|
-
import type { QueryClient } from '@tanstack/react-query';
|
|
6
|
-
export interface UseSessionManagementOptions {
|
|
7
|
-
oxyServices: OxyServices;
|
|
8
|
-
storage: StorageInterface | null;
|
|
9
|
-
storageKeyPrefix?: string;
|
|
10
|
-
loginSuccess: (user: User) => void;
|
|
11
|
-
logoutStore: () => void;
|
|
12
|
-
applyLanguagePreference: (user: User) => Promise<void>;
|
|
13
|
-
onAuthStateChange?: (user: User | null) => void;
|
|
14
|
-
onError?: (error: ApiError) => void;
|
|
15
|
-
setAuthError?: (message: string | null) => void;
|
|
16
|
-
logger?: (message: string, error?: unknown) => void;
|
|
17
|
-
setTokenReady?: (ready: boolean) => void;
|
|
18
|
-
queryClient?: QueryClient | null;
|
|
19
|
-
}
|
|
20
|
-
export interface UseSessionManagementResult {
|
|
21
|
-
sessions: ClientSession[];
|
|
22
|
-
activeSessionId: string | null;
|
|
23
|
-
setActiveSessionId: (sessionId: string | null) => void;
|
|
24
|
-
updateSessions: (incoming: ClientSession[], options?: {
|
|
25
|
-
merge?: boolean;
|
|
26
|
-
}) => void;
|
|
27
|
-
switchSession: (sessionId: string) => Promise<User>;
|
|
28
|
-
refreshSessions: (activeUserId?: string) => Promise<void>;
|
|
29
|
-
clearSessionState: () => Promise<void>;
|
|
30
|
-
saveActiveSessionId: (sessionId: string) => Promise<void>;
|
|
31
|
-
trackRemovedSession: (sessionId: string) => void;
|
|
32
|
-
storageKeys: ReturnType<typeof getStorageKeys>;
|
|
33
|
-
isRefreshInFlight: boolean;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Manage session state, persistence, and high-level multi-session operations.
|
|
37
|
-
*
|
|
38
|
-
* @param options - Session management configuration
|
|
39
|
-
*/
|
|
40
|
-
export declare const useSessionManagement: ({ oxyServices, storage, storageKeyPrefix, loginSuccess, logoutStore, applyLanguagePreference, onAuthStateChange, onError, setAuthError, logger, setTokenReady, queryClient, }: UseSessionManagementOptions) => UseSessionManagementResult;
|
|
41
|
-
//# sourceMappingURL=useSessionManagement.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useSessionManagement.d.ts","sourceRoot":"","sources":["../../../../../src/ui/context/hooks/useSessionManagement.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAEnF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGzD,MAAM,WAAW,2BAA2B;IAC1C,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACnC,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,uBAAuB,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IAChD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IACpC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAChD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACpD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACvD,cAAc,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IACnF,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,eAAe,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,mBAAmB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,mBAAmB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,WAAW,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;IAC/C,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAKD;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAI,+KAalC,2BAA2B,KAAG,0BAiVhC,CAAC"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type { ApiError } from '../../../models/interfaces';
|
|
2
|
-
import { type StorageInterface } from '../../utils/storageHelpers';
|
|
3
|
-
export interface UseStorageOptions {
|
|
4
|
-
onError?: (error: ApiError) => void;
|
|
5
|
-
logger?: (message: string, error?: unknown) => void;
|
|
6
|
-
errorCode?: string;
|
|
7
|
-
}
|
|
8
|
-
export interface UseStorageResult {
|
|
9
|
-
storage: StorageInterface | null;
|
|
10
|
-
isReady: boolean;
|
|
11
|
-
error: string | null;
|
|
12
|
-
refresh: () => Promise<StorageInterface | null>;
|
|
13
|
-
withStorage: <T>(callback: (storage: StorageInterface) => Promise<T>) => Promise<T | null>;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* React hook that exposes a platform-agnostic storage reference.
|
|
17
|
-
* Handles initialization, error propagation, and lazy re-initialization.
|
|
18
|
-
*
|
|
19
|
-
* @param options - Optional configuration for error reporting and logging
|
|
20
|
-
*/
|
|
21
|
-
export declare const useStorage: ({ onError, logger, errorCode, }?: UseStorageOptions) => UseStorageResult;
|
|
22
|
-
//# sourceMappingURL=useStorage.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useStorage.d.ts","sourceRoot":"","sources":["../../../../../src/ui/context/hooks/useStorage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAyB,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAG1F,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IACpC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAChD,WAAW,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;CAC5F;AAID;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GAAI,kCAIxB,iBAAsB,KAAG,gBAsE3B,CAAC"}
|