@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.
Files changed (84) hide show
  1. package/lib/commonjs/index.js +64 -0
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/ui/hooks/auth/index.js +37 -0
  4. package/lib/commonjs/ui/hooks/auth/index.js.map +1 -0
  5. package/lib/commonjs/ui/hooks/auth/useUsernameValidation.js +171 -0
  6. package/lib/commonjs/ui/hooks/auth/useUsernameValidation.js.map +1 -0
  7. package/lib/commonjs/ui/hooks/index.js +20 -0
  8. package/lib/commonjs/ui/hooks/index.js.map +1 -1
  9. package/lib/commonjs/ui/hooks/mutations/index.js +12 -0
  10. package/lib/commonjs/ui/hooks/mutations/index.js.map +1 -1
  11. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +45 -1
  12. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  13. package/lib/commonjs/ui/hooks/queries/index.js +12 -0
  14. package/lib/commonjs/ui/hooks/queries/index.js.map +1 -1
  15. package/lib/commonjs/ui/hooks/queries/queryKeys.js +3 -1
  16. package/lib/commonjs/ui/hooks/queries/queryKeys.js.map +1 -1
  17. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +43 -1
  18. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -1
  19. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +76 -97
  20. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
  21. package/lib/module/index.js +3 -3
  22. package/lib/module/index.js.map +1 -1
  23. package/lib/module/ui/hooks/auth/index.js +7 -0
  24. package/lib/module/ui/hooks/auth/index.js.map +1 -0
  25. package/lib/module/ui/hooks/auth/useUsernameValidation.js +167 -0
  26. package/lib/module/ui/hooks/auth/useUsernameValidation.js.map +1 -0
  27. package/lib/module/ui/hooks/index.js +1 -0
  28. package/lib/module/ui/hooks/index.js.map +1 -1
  29. package/lib/module/ui/hooks/mutations/index.js +1 -1
  30. package/lib/module/ui/hooks/mutations/index.js.map +1 -1
  31. package/lib/module/ui/hooks/mutations/useAccountMutations.js +42 -0
  32. package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  33. package/lib/module/ui/hooks/queries/index.js +1 -1
  34. package/lib/module/ui/hooks/queries/index.js.map +1 -1
  35. package/lib/module/ui/hooks/queries/queryKeys.js +3 -1
  36. package/lib/module/ui/hooks/queries/queryKeys.js.map +1 -1
  37. package/lib/module/ui/hooks/queries/useAccountQueries.js +40 -0
  38. package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -1
  39. package/lib/module/ui/screens/PrivacySettingsScreen.js +77 -98
  40. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  41. package/lib/typescript/index.d.ts +4 -2
  42. package/lib/typescript/index.d.ts.map +1 -1
  43. package/lib/typescript/ui/hooks/auth/index.d.ts +6 -0
  44. package/lib/typescript/ui/hooks/auth/index.d.ts.map +1 -0
  45. package/lib/typescript/ui/hooks/auth/useUsernameValidation.d.ts +32 -0
  46. package/lib/typescript/ui/hooks/auth/useUsernameValidation.d.ts.map +1 -0
  47. package/lib/typescript/ui/hooks/index.d.ts +1 -0
  48. package/lib/typescript/ui/hooks/index.d.ts.map +1 -1
  49. package/lib/typescript/ui/hooks/mutations/index.d.ts +1 -1
  50. package/lib/typescript/ui/hooks/mutations/index.d.ts.map +1 -1
  51. package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts +12 -0
  52. package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  53. package/lib/typescript/ui/hooks/queries/index.d.ts +1 -1
  54. package/lib/typescript/ui/hooks/queries/index.d.ts.map +1 -1
  55. package/lib/typescript/ui/hooks/queries/queryKeys.d.ts +2 -0
  56. package/lib/typescript/ui/hooks/queries/queryKeys.d.ts.map +1 -1
  57. package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts +12 -0
  58. package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
  59. package/lib/typescript/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  60. package/package.json +1 -1
  61. package/src/index.ts +6 -0
  62. package/src/ui/hooks/auth/index.ts +6 -0
  63. package/src/ui/hooks/auth/useUsernameValidation.ts +177 -0
  64. package/src/ui/hooks/index.ts +2 -1
  65. package/src/ui/hooks/mutations/index.ts +2 -0
  66. package/src/ui/hooks/mutations/useAccountMutations.ts +36 -0
  67. package/src/ui/hooks/queries/index.ts +2 -0
  68. package/src/ui/hooks/queries/queryKeys.ts +2 -0
  69. package/src/ui/hooks/queries/useAccountQueries.ts +34 -0
  70. package/src/ui/screens/PrivacySettingsScreen.tsx +67 -101
  71. package/lib/commonjs/ui/context/hooks/useSessionManagement.js +0 -281
  72. package/lib/commonjs/ui/context/hooks/useSessionManagement.js.map +0 -1
  73. package/lib/commonjs/ui/context/hooks/useStorage.js +0 -79
  74. package/lib/commonjs/ui/context/hooks/useStorage.js.map +0 -1
  75. package/lib/module/ui/context/hooks/useSessionManagement.js +0 -276
  76. package/lib/module/ui/context/hooks/useSessionManagement.js.map +0 -1
  77. package/lib/module/ui/context/hooks/useStorage.js +0 -74
  78. package/lib/module/ui/context/hooks/useStorage.js.map +0 -1
  79. package/lib/typescript/ui/context/hooks/useSessionManagement.d.ts +0 -41
  80. package/lib/typescript/ui/context/hooks/useSessionManagement.d.ts.map +0 -1
  81. package/lib/typescript/ui/context/hooks/useStorage.d.ts +0 -22
  82. package/lib/typescript/ui/context/hooks/useStorage.d.ts.map +0 -1
  83. package/src/ui/context/hooks/useSessionManagement.ts +0 -401
  84. 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":"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","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"}