@oxyhq/services 5.16.1 → 5.16.3

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 (175) hide show
  1. package/lib/commonjs/core/mixins/OxyServices.user.js +14 -13
  2. package/lib/commonjs/core/mixins/OxyServices.user.js.map +1 -1
  3. package/lib/commonjs/crypto/keyManager.js +164 -3
  4. package/lib/commonjs/crypto/keyManager.js.map +1 -1
  5. package/lib/commonjs/crypto/signatureService.js +26 -0
  6. package/lib/commonjs/crypto/signatureService.js.map +1 -1
  7. package/lib/commonjs/ui/components/GroupedSection.js +1 -1
  8. package/lib/commonjs/ui/components/GroupedSection.js.map +1 -1
  9. package/lib/commonjs/ui/components/OxyProvider.js +71 -24
  10. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  11. package/lib/commonjs/ui/components/profile/EditDisplayNameModal.js +1 -4
  12. package/lib/commonjs/ui/components/profile/EditDisplayNameModal.js.map +1 -1
  13. package/lib/commonjs/ui/context/OxyContext.js +175 -4
  14. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  15. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +148 -49
  16. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  17. package/lib/commonjs/ui/context/hooks/useSessionManagement.js +22 -2
  18. package/lib/commonjs/ui/context/hooks/useSessionManagement.js.map +1 -1
  19. package/lib/commonjs/ui/hooks/mutations/index.js +28 -0
  20. package/lib/commonjs/ui/hooks/mutations/index.js.map +1 -0
  21. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +314 -0
  22. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -0
  23. package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js +193 -0
  24. package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js.map +1 -0
  25. package/lib/commonjs/ui/hooks/queries/index.js +39 -0
  26. package/lib/commonjs/ui/hooks/queries/index.js.map +1 -0
  27. package/lib/commonjs/ui/hooks/queries/queryKeys.js +85 -0
  28. package/lib/commonjs/ui/hooks/queries/queryKeys.js.map +1 -0
  29. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +145 -0
  30. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -0
  31. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js +138 -0
  32. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js.map +1 -0
  33. package/lib/commonjs/ui/hooks/queryClient.js +117 -0
  34. package/lib/commonjs/ui/hooks/queryClient.js.map +1 -0
  35. package/lib/commonjs/ui/hooks/useIdentityMutations.js +111 -0
  36. package/lib/commonjs/ui/hooks/useIdentityMutations.js.map +1 -0
  37. package/lib/commonjs/ui/hooks/useProfileEditing.js +42 -58
  38. package/lib/commonjs/ui/hooks/useProfileEditing.js.map +1 -1
  39. package/lib/commonjs/ui/hooks/useQueryClient.js +20 -0
  40. package/lib/commonjs/ui/hooks/useQueryClient.js.map +1 -0
  41. package/lib/commonjs/ui/hooks/useSessionManagement.js +22 -2
  42. package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -1
  43. package/lib/commonjs/ui/screens/AccountOverviewScreen.js +43 -42
  44. package/lib/commonjs/ui/screens/AccountOverviewScreen.js.map +1 -1
  45. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +63 -58
  46. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  47. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +6 -6
  48. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  49. package/lib/commonjs/ui/stores/accountStore.js +57 -42
  50. package/lib/commonjs/ui/stores/accountStore.js.map +1 -1
  51. package/lib/commonjs/ui/stores/authStore.js +4 -25
  52. package/lib/commonjs/ui/stores/authStore.js.map +1 -1
  53. package/lib/module/core/mixins/OxyServices.user.js +14 -13
  54. package/lib/module/core/mixins/OxyServices.user.js.map +1 -1
  55. package/lib/module/crypto/keyManager.js +164 -3
  56. package/lib/module/crypto/keyManager.js.map +1 -1
  57. package/lib/module/crypto/signatureService.js +26 -0
  58. package/lib/module/crypto/signatureService.js.map +1 -1
  59. package/lib/module/ui/components/GroupedSection.js +1 -1
  60. package/lib/module/ui/components/GroupedSection.js.map +1 -1
  61. package/lib/module/ui/components/OxyProvider.js +72 -25
  62. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  63. package/lib/module/ui/components/profile/EditDisplayNameModal.js +1 -4
  64. package/lib/module/ui/components/profile/EditDisplayNameModal.js.map +1 -1
  65. package/lib/module/ui/context/OxyContext.js +174 -4
  66. package/lib/module/ui/context/OxyContext.js.map +1 -1
  67. package/lib/module/ui/context/hooks/useAuthOperations.js +148 -49
  68. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  69. package/lib/module/ui/context/hooks/useSessionManagement.js +22 -2
  70. package/lib/module/ui/context/hooks/useSessionManagement.js.map +1 -1
  71. package/lib/module/ui/hooks/mutations/index.js +6 -0
  72. package/lib/module/ui/hooks/mutations/index.js.map +1 -0
  73. package/lib/module/ui/hooks/mutations/useAccountMutations.js +308 -0
  74. package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -0
  75. package/lib/module/ui/hooks/mutations/useServicesMutations.js +185 -0
  76. package/lib/module/ui/hooks/mutations/useServicesMutations.js.map +1 -0
  77. package/lib/module/ui/hooks/queries/index.js +7 -0
  78. package/lib/module/ui/hooks/queries/index.js.map +1 -0
  79. package/lib/module/ui/hooks/queries/queryKeys.js +78 -0
  80. package/lib/module/ui/hooks/queries/queryKeys.js.map +1 -0
  81. package/lib/module/ui/hooks/queries/useAccountQueries.js +136 -0
  82. package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -0
  83. package/lib/module/ui/hooks/queries/useServicesQueries.js +130 -0
  84. package/lib/module/ui/hooks/queries/useServicesQueries.js.map +1 -0
  85. package/lib/module/ui/hooks/queryClient.js +110 -0
  86. package/lib/module/ui/hooks/queryClient.js.map +1 -0
  87. package/lib/module/ui/hooks/useIdentityMutations.js +105 -0
  88. package/lib/module/ui/hooks/useIdentityMutations.js.map +1 -0
  89. package/lib/module/ui/hooks/useProfileEditing.js +43 -59
  90. package/lib/module/ui/hooks/useProfileEditing.js.map +1 -1
  91. package/lib/module/ui/hooks/useQueryClient.js +15 -0
  92. package/lib/module/ui/hooks/useQueryClient.js.map +1 -0
  93. package/lib/module/ui/hooks/useSessionManagement.js +22 -2
  94. package/lib/module/ui/hooks/useSessionManagement.js.map +1 -1
  95. package/lib/module/ui/screens/AccountOverviewScreen.js +43 -42
  96. package/lib/module/ui/screens/AccountOverviewScreen.js.map +1 -1
  97. package/lib/module/ui/screens/AccountSettingsScreen.js +63 -58
  98. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  99. package/lib/module/ui/screens/WelcomeNewUserScreen.js +6 -6
  100. package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  101. package/lib/module/ui/stores/accountStore.js +57 -42
  102. package/lib/module/ui/stores/accountStore.js.map +1 -1
  103. package/lib/module/ui/stores/authStore.js +4 -25
  104. package/lib/module/ui/stores/authStore.js.map +1 -1
  105. package/lib/typescript/core/mixins/OxyServices.user.d.ts +4 -5
  106. package/lib/typescript/core/mixins/OxyServices.user.d.ts.map +1 -1
  107. package/lib/typescript/core/mixins/index.d.ts +0 -1
  108. package/lib/typescript/core/mixins/index.d.ts.map +1 -1
  109. package/lib/typescript/crypto/keyManager.d.ts +19 -2
  110. package/lib/typescript/crypto/keyManager.d.ts.map +1 -1
  111. package/lib/typescript/crypto/signatureService.d.ts +5 -0
  112. package/lib/typescript/crypto/signatureService.d.ts.map +1 -1
  113. package/lib/typescript/ui/components/OxyProvider.d.ts.map +1 -1
  114. package/lib/typescript/ui/components/profile/EditDisplayNameModal.d.ts.map +1 -1
  115. package/lib/typescript/ui/context/OxyContext.d.ts +4 -0
  116. package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
  117. package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  118. package/lib/typescript/ui/context/hooks/useSessionManagement.d.ts +3 -1
  119. package/lib/typescript/ui/context/hooks/useSessionManagement.d.ts.map +1 -1
  120. package/lib/typescript/ui/hooks/mutations/index.d.ts +3 -0
  121. package/lib/typescript/ui/hooks/mutations/index.d.ts.map +1 -0
  122. package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts +25 -0
  123. package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -0
  124. package/lib/typescript/ui/hooks/mutations/useServicesMutations.d.ts +23 -0
  125. package/lib/typescript/ui/hooks/mutations/useServicesMutations.d.ts.map +1 -0
  126. package/lib/typescript/ui/hooks/queries/index.d.ts +4 -0
  127. package/lib/typescript/ui/hooks/queries/index.d.ts.map +1 -0
  128. package/lib/typescript/ui/hooks/queries/queryKeys.d.ts +56 -0
  129. package/lib/typescript/ui/hooks/queries/queryKeys.d.ts.map +1 -0
  130. package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts +41 -0
  131. package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts.map +1 -0
  132. package/lib/typescript/ui/hooks/queries/useServicesQueries.d.ts +34 -0
  133. package/lib/typescript/ui/hooks/queries/useServicesQueries.d.ts.map +1 -0
  134. package/lib/typescript/ui/hooks/queryClient.d.ts +19 -0
  135. package/lib/typescript/ui/hooks/queryClient.d.ts.map +1 -0
  136. package/lib/typescript/ui/hooks/useIdentityMutations.d.ts +29 -0
  137. package/lib/typescript/ui/hooks/useIdentityMutations.d.ts.map +1 -0
  138. package/lib/typescript/ui/hooks/useProfileEditing.d.ts.map +1 -1
  139. package/lib/typescript/ui/hooks/useQueryClient.d.ts +7 -0
  140. package/lib/typescript/ui/hooks/useQueryClient.d.ts.map +1 -0
  141. package/lib/typescript/ui/hooks/useSessionManagement.d.ts +3 -1
  142. package/lib/typescript/ui/hooks/useSessionManagement.d.ts.map +1 -1
  143. package/lib/typescript/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
  144. package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  145. package/lib/typescript/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
  146. package/lib/typescript/ui/stores/accountStore.d.ts.map +1 -1
  147. package/lib/typescript/ui/stores/authStore.d.ts +0 -4
  148. package/lib/typescript/ui/stores/authStore.d.ts.map +1 -1
  149. package/package.json +5 -4
  150. package/src/core/mixins/OxyServices.user.ts +17 -10
  151. package/src/crypto/keyManager.ts +177 -2
  152. package/src/crypto/signatureService.ts +30 -0
  153. package/src/ui/components/GroupedSection.tsx +1 -1
  154. package/src/ui/components/OxyProvider.tsx +91 -37
  155. package/src/ui/components/profile/EditDisplayNameModal.tsx +1 -3
  156. package/src/ui/context/OxyContext.tsx +185 -2
  157. package/src/ui/context/hooks/useAuthOperations.ts +171 -58
  158. package/src/ui/context/hooks/useSessionManagement.ts +24 -1
  159. package/src/ui/hooks/mutations/index.ts +4 -0
  160. package/src/ui/hooks/mutations/useAccountMutations.ts +277 -0
  161. package/src/ui/hooks/mutations/useServicesMutations.ts +164 -0
  162. package/src/ui/hooks/queries/index.ts +5 -0
  163. package/src/ui/hooks/queries/queryKeys.ts +73 -0
  164. package/src/ui/hooks/queries/useAccountQueries.ts +126 -0
  165. package/src/ui/hooks/queries/useServicesQueries.ts +121 -0
  166. package/src/ui/hooks/queryClient.ts +112 -0
  167. package/src/ui/hooks/useIdentityMutations.ts +115 -0
  168. package/src/ui/hooks/useProfileEditing.ts +46 -60
  169. package/src/ui/hooks/useQueryClient.ts +17 -0
  170. package/src/ui/hooks/useSessionManagement.ts +24 -1
  171. package/src/ui/screens/AccountOverviewScreen.tsx +38 -46
  172. package/src/ui/screens/AccountSettingsScreen.tsx +54 -54
  173. package/src/ui/screens/WelcomeNewUserScreen.tsx +13 -12
  174. package/src/ui/stores/accountStore.ts +54 -43
  175. package/src/ui/stores/authStore.ts +3 -17
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createQueryClient = exports.createPersistenceAdapter = exports.clearQueryCache = void 0;
7
+ var _reactQuery = require("@tanstack/react-query");
8
+ const QUERY_CACHE_KEY = 'oxy_query_cache';
9
+ const QUERY_CACHE_VERSION = '1';
10
+
11
+ /**
12
+ * Custom persistence adapter for TanStack Query using our StorageInterface
13
+ */
14
+ const createPersistenceAdapter = storage => {
15
+ return {
16
+ persistClient: async client => {
17
+ try {
18
+ const serialized = JSON.stringify({
19
+ clientState: client,
20
+ timestamp: Date.now(),
21
+ version: QUERY_CACHE_VERSION
22
+ });
23
+ await storage.setItem(QUERY_CACHE_KEY, serialized);
24
+ } catch (error) {
25
+ if (__DEV__) {
26
+ console.warn('[QueryClient] Failed to persist cache:', error);
27
+ }
28
+ }
29
+ },
30
+ restoreClient: async () => {
31
+ try {
32
+ const cached = await storage.getItem(QUERY_CACHE_KEY);
33
+ if (!cached) return undefined;
34
+ const parsed = JSON.parse(cached);
35
+
36
+ // Check version compatibility
37
+ if (parsed.version !== QUERY_CACHE_VERSION) {
38
+ // Clear old cache on version mismatch
39
+ await storage.removeItem(QUERY_CACHE_KEY);
40
+ return undefined;
41
+ }
42
+
43
+ // Check if cache is too old (30 days)
44
+ const maxAge = 30 * 24 * 60 * 60 * 1000;
45
+ if (parsed.timestamp && Date.now() - parsed.timestamp > maxAge) {
46
+ await storage.removeItem(QUERY_CACHE_KEY);
47
+ return undefined;
48
+ }
49
+ return parsed.clientState;
50
+ } catch (error) {
51
+ if (__DEV__) {
52
+ console.warn('[QueryClient] Failed to restore cache:', error);
53
+ }
54
+ return undefined;
55
+ }
56
+ },
57
+ removeClient: async () => {
58
+ try {
59
+ await storage.removeItem(QUERY_CACHE_KEY);
60
+ } catch (error) {
61
+ if (__DEV__) {
62
+ console.warn('[QueryClient] Failed to remove cache:', error);
63
+ }
64
+ }
65
+ }
66
+ };
67
+ };
68
+
69
+ /**
70
+ * Create a QueryClient with offline-first configuration
71
+ */
72
+ exports.createPersistenceAdapter = createPersistenceAdapter;
73
+ const createQueryClient = storage => {
74
+ const client = new _reactQuery.QueryClient({
75
+ defaultOptions: {
76
+ queries: {
77
+ // Data is fresh for 5 minutes
78
+ staleTime: 5 * 60 * 1000,
79
+ // Keep unused data in cache for 30 minutes
80
+ gcTime: 30 * 60 * 1000,
81
+ // Retry 3 times with exponential backoff
82
+ retry: 3,
83
+ retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),
84
+ // Refetch on reconnect
85
+ refetchOnReconnect: true,
86
+ // Don't refetch on window focus (better for mobile)
87
+ refetchOnWindowFocus: false,
88
+ // Offline-first: use cache when offline
89
+ networkMode: 'offlineFirst'
90
+ },
91
+ mutations: {
92
+ // Retry once for mutations
93
+ retry: 1,
94
+ // Offline-first: queue mutations when offline
95
+ networkMode: 'offlineFirst'
96
+ }
97
+ }
98
+ });
99
+
100
+ // Note: Persistence is handled by TanStack Query's built-in persistence
101
+ // For now, we rely on the query client's default behavior with networkMode: 'offlineFirst'
102
+ // The cache will be available in memory and queries will use cached data when offline
103
+ // Full persistence to AsyncStorage can be added later with @tanstack/react-query-persist-client if needed
104
+
105
+ return client;
106
+ };
107
+
108
+ /**
109
+ * Clear persisted query cache
110
+ */
111
+ exports.createQueryClient = createQueryClient;
112
+ const clearQueryCache = async storage => {
113
+ const adapter = createPersistenceAdapter(storage);
114
+ await adapter.removeClient();
115
+ };
116
+ exports.clearQueryCache = clearQueryCache;
117
+ //# sourceMappingURL=queryClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactQuery","require","QUERY_CACHE_KEY","QUERY_CACHE_VERSION","createPersistenceAdapter","storage","persistClient","client","serialized","JSON","stringify","clientState","timestamp","Date","now","version","setItem","error","__DEV__","console","warn","restoreClient","cached","getItem","undefined","parsed","parse","removeItem","maxAge","removeClient","exports","createQueryClient","QueryClient","defaultOptions","queries","staleTime","gcTime","retry","retryDelay","attemptIndex","Math","min","refetchOnReconnect","refetchOnWindowFocus","networkMode","mutations","clearQueryCache","adapter"],"sourceRoot":"../../../../src","sources":["ui/hooks/queryClient.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useCreateIdentity = useCreateIdentity;
7
+ exports.useImportIdentity = useImportIdentity;
8
+ exports.useSyncIdentity = useSyncIdentity;
9
+ var _reactQuery = require("@tanstack/react-query");
10
+ /**
11
+ * TanStack Query mutations for identity operations
12
+ * Provides offline-first mutations for identity creation, import, and sync
13
+ * Never deletes identity on errors - preserves user data
14
+ */
15
+
16
+ /**
17
+ * Hook for creating a new identity with offline support
18
+ * Never deletes identity on error - preserves user data
19
+ */
20
+ function useCreateIdentity(createIdentityFn) {
21
+ const queryClient = (0, _reactQuery.useQueryClient)();
22
+ return (0, _reactQuery.useMutation)({
23
+ mutationFn: createIdentityFn,
24
+ onSuccess: data => {
25
+ // Invalidate user queries to refetch after identity creation
26
+ queryClient.invalidateQueries({
27
+ queryKey: ['user']
28
+ });
29
+ queryClient.invalidateQueries({
30
+ queryKey: ['identity']
31
+ });
32
+ },
33
+ onError: error => {
34
+ // Never delete identity on error - just log it
35
+ // User can recover using recovery phrase
36
+ if (__DEV__) {
37
+ console.warn('[useCreateIdentity] Identity creation error (identity may still exist):', error);
38
+ }
39
+ },
40
+ retry: false,
41
+ // Don't retry identity creation
42
+ networkMode: 'offlineFirst'
43
+ });
44
+ }
45
+
46
+ /**
47
+ * Hook for importing an identity from recovery phrase
48
+ * Never deletes identity on error - preserves user data
49
+ */
50
+ function useImportIdentity(importIdentityFn) {
51
+ const queryClient = (0, _reactQuery.useQueryClient)();
52
+ return (0, _reactQuery.useMutation)({
53
+ mutationFn: importIdentityFn,
54
+ onSuccess: data => {
55
+ queryClient.invalidateQueries({
56
+ queryKey: ['user']
57
+ });
58
+ queryClient.invalidateQueries({
59
+ queryKey: ['identity']
60
+ });
61
+ },
62
+ onError: error => {
63
+ // Never delete identity on error - just log it
64
+ if (__DEV__) {
65
+ console.warn('[useImportIdentity] Identity import error (identity may still exist):', error);
66
+ }
67
+ },
68
+ retry: false,
69
+ networkMode: 'offlineFirst'
70
+ });
71
+ }
72
+
73
+ /**
74
+ * Hook for syncing identity with server
75
+ * Never deletes identity on error - only logs and allows retry
76
+ */
77
+ function useSyncIdentity(syncIdentityFn) {
78
+ const queryClient = (0, _reactQuery.useQueryClient)();
79
+ return (0, _reactQuery.useMutation)({
80
+ mutationFn: syncIdentityFn,
81
+ onSuccess: user => {
82
+ // Update user cache
83
+ queryClient.setQueryData(['user', 'current'], user);
84
+ queryClient.invalidateQueries({
85
+ queryKey: ['user']
86
+ });
87
+ queryClient.invalidateQueries({
88
+ queryKey: ['identity']
89
+ });
90
+ },
91
+ onError: error => {
92
+ // Never delete identity on error - just log it
93
+ // User can retry sync later or use recovery phrase
94
+ if (__DEV__) {
95
+ console.warn('[useSyncIdentity] Sync failed, but identity is preserved:', error);
96
+ }
97
+ },
98
+ retry: (failureCount, error) => {
99
+ // Retry up to 2 times for sync operations
100
+ // Don't retry if it's a network error - user can retry when online
101
+ const errorMessage = error instanceof Error ? error.message : String(error);
102
+ const isNetworkError = errorMessage.includes('Network') || errorMessage.includes('Failed to fetch') || error?.code === 'NETWORK_ERROR';
103
+ if (isNetworkError) {
104
+ return false; // Don't retry network errors - user will retry when online
105
+ }
106
+ return failureCount < 2;
107
+ },
108
+ networkMode: 'offlineFirst'
109
+ });
110
+ }
111
+ //# sourceMappingURL=useIdentityMutations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactQuery","require","useCreateIdentity","createIdentityFn","queryClient","useQueryClient","useMutation","mutationFn","onSuccess","data","invalidateQueries","queryKey","onError","error","__DEV__","console","warn","retry","networkMode","useImportIdentity","importIdentityFn","useSyncIdentity","syncIdentityFn","user","setQueryData","failureCount","errorMessage","Error","message","String","isNetworkError","includes","code"],"sourceRoot":"../../../../src","sources":["ui/hooks/useIdentityMutations.ts"],"mappings":"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","ignoreList":[]}
@@ -5,83 +5,67 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.useProfileEditing = void 0;
7
7
  var _react = require("react");
8
- var _OxyContext = require("../context/OxyContext");
9
- var _authStore = require("../stores/authStore");
10
- var _sonner = require("../../lib/sonner");
11
8
  var _useI18n = require("./useI18n");
9
+ var _useAccountMutations = require("./mutations/useAccountMutations");
10
+ var _authStore = require("../stores/authStore");
12
11
  /**
13
12
  * Hook for managing profile editing operations
14
13
  * Provides functions to update profile fields and handle saving
15
14
  */
16
15
  const useProfileEditing = () => {
17
- const {
18
- oxyServices,
19
- activeSessionId
20
- } = (0, _OxyContext.useOxy)();
21
- const updateUser = (0, _authStore.useAuthStore)(state => state.updateUser);
22
16
  const {
23
17
  t
24
18
  } = (0, _useI18n.useI18n)();
25
- const [isSaving, setIsSaving] = (0, _react.useState)(false);
19
+ const updateProfileMutation = (0, _useAccountMutations.useUpdateProfile)();
26
20
 
27
21
  /**
28
- * Save profile updates to the server
22
+ * Save profile updates to the server using TanStack Query
29
23
  */
30
24
  const saveProfile = (0, _react.useCallback)(async updates => {
31
- if (!oxyServices) {
32
- _sonner.toast.error(t('editProfile.toasts.serviceUnavailable') || 'Service not available');
33
- return false;
25
+ // Prepare update object
26
+ const updateData = {};
27
+ if (updates.username !== undefined) {
28
+ updateData.username = updates.username;
34
29
  }
35
- try {
36
- setIsSaving(true);
37
-
38
- // Prepare update object
39
- const updateData = {};
40
- if (updates.username !== undefined) {
41
- updateData.username = updates.username;
42
- }
43
- if (updates.email !== undefined) {
44
- updateData.email = updates.email;
45
- }
46
- if (updates.bio !== undefined) {
47
- updateData.bio = updates.bio;
48
- }
49
- if (updates.location !== undefined || updates.locations !== undefined) {
50
- updateData.location = updates.locations && updates.locations.length > 0 ? updates.locations[0].name : updates.location || '';
51
- if (updates.locations) {
52
- updateData.locations = updates.locations;
53
- }
54
- }
55
- if (updates.links !== undefined) {
56
- updateData.links = updates.links;
57
- }
58
- if (updates.linksMetadata !== undefined) {
59
- updateData.linksMetadata = updates.linksMetadata;
60
- }
61
- if (updates.avatar !== undefined) {
62
- updateData.avatar = updates.avatar;
30
+ if (updates.email !== undefined) {
31
+ updateData.email = updates.email;
32
+ }
33
+ if (updates.bio !== undefined) {
34
+ updateData.bio = updates.bio;
35
+ }
36
+ if (updates.location !== undefined || updates.locations !== undefined) {
37
+ updateData.location = updates.locations && updates.locations.length > 0 ? updates.locations[0].name : updates.location || '';
38
+ if (updates.locations) {
39
+ updateData.locations = updates.locations;
63
40
  }
41
+ }
42
+ if (updates.links !== undefined) {
43
+ updateData.links = updates.links;
44
+ }
45
+ if (updates.linksMetadata !== undefined) {
46
+ updateData.linksMetadata = updates.linksMetadata;
47
+ }
48
+ if (updates.avatar !== undefined) {
49
+ updateData.avatar = updates.avatar;
50
+ }
64
51
 
65
- // Handle name field
66
- if (updates.displayName !== undefined || updates.lastName !== undefined) {
67
- const currentUser = _authStore.useAuthStore.getState().user;
68
- const currentName = currentUser?.name;
69
- updateData.name = {
70
- first: updates.displayName ?? (typeof currentName === 'object' ? currentName?.first : '') ?? '',
71
- last: updates.lastName ?? (typeof currentName === 'object' ? currentName?.last : '') ?? ''
72
- };
73
- }
74
- await updateUser(updateData, oxyServices);
75
- _sonner.toast.success(t('editProfile.toasts.profileUpdated') || 'Profile updated successfully');
52
+ // Handle name field
53
+ if (updates.displayName !== undefined || updates.lastName !== undefined) {
54
+ const currentUser = _authStore.useAuthStore.getState().user;
55
+ const currentName = currentUser?.name;
56
+ updateData.name = {
57
+ first: updates.displayName ?? (typeof currentName === 'object' ? currentName?.first : '') ?? '',
58
+ last: updates.lastName ?? (typeof currentName === 'object' ? currentName?.last : '') ?? ''
59
+ };
60
+ }
61
+ try {
62
+ await updateProfileMutation.mutateAsync(updateData);
76
63
  return true;
77
64
  } catch (error) {
78
- console.error('Failed to update profile:', error);
79
- _sonner.toast.error(error?.message || t('editProfile.toasts.updateFailed') || 'Failed to update profile');
65
+ // Error toast is handled by the mutation
80
66
  return false;
81
- } finally {
82
- setIsSaving(false);
83
67
  }
84
- }, [oxyServices, updateUser, t]);
68
+ }, [updateProfileMutation, t]);
85
69
 
86
70
  /**
87
71
  * Update a single profile field
@@ -116,7 +100,7 @@ const useProfileEditing = () => {
116
100
  return {
117
101
  saveProfile,
118
102
  updateField,
119
- isSaving
103
+ isSaving: updateProfileMutation.isPending
120
104
  };
121
105
  };
122
106
  exports.useProfileEditing = useProfileEditing;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_OxyContext","_authStore","_sonner","_useI18n","useProfileEditing","oxyServices","activeSessionId","useOxy","updateUser","useAuthStore","state","t","useI18n","isSaving","setIsSaving","useState","saveProfile","useCallback","updates","toast","error","updateData","username","undefined","email","bio","location","locations","length","name","links","linksMetadata","avatar","displayName","lastName","currentUser","getState","user","currentName","first","last","success","console","message","updateField","field","value","map","link","url","exports"],"sourceRoot":"../../../../src","sources":["ui/hooks/useProfileEditing.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_useI18n","_useAccountMutations","_authStore","useProfileEditing","t","useI18n","updateProfileMutation","useUpdateProfile","saveProfile","useCallback","updates","updateData","username","undefined","email","bio","location","locations","length","name","links","linksMetadata","avatar","displayName","lastName","currentUser","useAuthStore","getState","user","currentName","first","last","mutateAsync","error","updateField","field","value","map","link","url","isSaving","isPending","exports"],"sourceRoot":"../../../../src","sources":["ui/hooks/useProfileEditing.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useQueryClient = void 0;
7
+ var _reactQuery = require("@tanstack/react-query");
8
+ /**
9
+ * Custom hook to access the QueryClient
10
+ * Provides type safety and ensures client is available
11
+ */
12
+ const useQueryClient = () => {
13
+ const queryClient = (0, _reactQuery.useQueryClient)();
14
+ if (!queryClient) {
15
+ throw new Error('QueryClient is not available. Make sure OxyProvider is wrapping your app.');
16
+ }
17
+ return queryClient;
18
+ };
19
+ exports.useQueryClient = useQueryClient;
20
+ //# sourceMappingURL=useQueryClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactQuery","require","useQueryClient","queryClient","useTanStackQueryClient","Error","exports"],"sourceRoot":"../../../../src","sources":["ui/hooks/useQueryClient.ts"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAGA;AACA;AACA;AACA;AACO,MAAMC,cAAc,GAAGA,CAAA,KAAmB;EAC/C,MAAMC,WAAW,GAAG,IAAAC,0BAAsB,EAAC,CAAC;EAE5C,IAAI,CAACD,WAAW,EAAE;IAChB,MAAM,IAAIE,KAAK,CAAC,2EAA2E,CAAC;EAC9F;EAEA,OAAOF,WAAW;AACpB,CAAC;AAACG,OAAA,CAAAJ,cAAA,GAAAA,cAAA","ignoreList":[]}
@@ -9,6 +9,7 @@ var _sessionUtils = require("../../utils/sessionUtils");
9
9
  var _sessionHelpers = require("../utils/sessionHelpers");
10
10
  var _storageHelpers = require("../utils/storageHelpers");
11
11
  var _errorHandlers = require("../utils/errorHandlers");
12
+ var _queryClient = require("./queryClient.js");
12
13
  const DEFAULT_SAVE_ERROR_MESSAGE = 'Failed to save session data';
13
14
  const CLEAR_STORAGE_ERROR = 'Failed to clear storage';
14
15
 
@@ -28,7 +29,8 @@ const useSessionManagement = ({
28
29
  onError,
29
30
  setAuthError,
30
31
  logger,
31
- setTokenReady
32
+ setTokenReady,
33
+ queryClient
32
34
  }) => {
33
35
  const [sessions, setSessions] = (0, _react.useState)([]);
34
36
  const [activeSessionId, setActiveSessionId] = (0, _react.useState)(null);
@@ -94,6 +96,8 @@ const useSessionManagement = ({
94
96
  try {
95
97
  await storage.removeItem(storageKeys.activeSessionId);
96
98
  await storage.removeItem(storageKeys.sessionIds);
99
+ // Clear identity sync state
100
+ await storage.removeItem('oxy_identity_synced').catch(() => {});
97
101
  } catch (error) {
98
102
  (0, _errorHandlers.handleAuthError)(error, {
99
103
  defaultMessage: CLEAR_STORAGE_ERROR,
@@ -108,9 +112,25 @@ const useSessionManagement = ({
108
112
  setSessions([]);
109
113
  setActiveSessionId(null);
110
114
  logoutStore();
115
+
116
+ // Clear TanStack Query cache (in-memory)
117
+ if (queryClient) {
118
+ queryClient.clear();
119
+ }
120
+
121
+ // Clear persisted query cache
122
+ if (storage) {
123
+ try {
124
+ await (0, _queryClient.clearQueryCache)(storage);
125
+ } catch (error) {
126
+ if (logger) {
127
+ logger('Failed to clear persisted query cache', error);
128
+ }
129
+ }
130
+ }
111
131
  await clearSessionStorage();
112
132
  onAuthStateChange?.(null);
113
- }, [clearSessionStorage, logoutStore, onAuthStateChange]);
133
+ }, [clearSessionStorage, logoutStore, onAuthStateChange, queryClient, storage, logger]);
114
134
  const activateSession = (0, _react.useCallback)(async (sessionId, user) => {
115
135
  await oxyServices.getTokenBySession(sessionId);
116
136
  setTokenReady?.(true);
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_sessionUtils","_sessionHelpers","_storageHelpers","_errorHandlers","DEFAULT_SAVE_ERROR_MESSAGE","CLEAR_STORAGE_ERROR","useSessionManagement","oxyServices","storage","storageKeyPrefix","loginSuccess","logoutStore","applyLanguagePreference","onAuthStateChange","onError","setAuthError","logger","setTokenReady","sessions","setSessions","useState","activeSessionId","setActiveSessionId","refreshInFlightRef","useRef","removedSessionsRef","Set","lastRefreshRef","storageKeys","useMemo","getStorageKeys","saveSessionIds","useCallback","sessionIds","uniqueIds","Array","from","setItem","JSON","stringify","error","__DEV__","console","warn","updateSessions","incoming","options","prevSessions","processed","merge","mergeSessions","normalizeAndSortSessions","map","session","sessionId","sessionsArraysEqual","saveActiveSessionId","handleAuthError","defaultMessage","code","removeActiveSessionId","removeItem","clearSessionStorage","clearSessionState","activateSession","user","getTokenBySession","trackRemovedSession","current","add","setTimeout","delete","findReplacementSession","length","validationResults","validateSessionBatch","maxConcurrency","validSession","find","result","valid","validation","validateSession","useHeaderValidation","switchSession","Error","deviceSessions","fetchSessionsWithFallback","fallbackUserId","id","invalidSession","isInvalidSessionError","filter","otherSessionIds","has","replacementUser","refreshSessions","activeUserId","now","Date","refreshPromise","otherSessions","isRefreshInFlight","Boolean","exports"],"sourceRoot":"../../../../src","sources":["ui/hooks/useSessionManagement.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_sessionUtils","_sessionHelpers","_storageHelpers","_errorHandlers","_queryClient","DEFAULT_SAVE_ERROR_MESSAGE","CLEAR_STORAGE_ERROR","useSessionManagement","oxyServices","storage","storageKeyPrefix","loginSuccess","logoutStore","applyLanguagePreference","onAuthStateChange","onError","setAuthError","logger","setTokenReady","queryClient","sessions","setSessions","useState","activeSessionId","setActiveSessionId","refreshInFlightRef","useRef","removedSessionsRef","Set","lastRefreshRef","storageKeys","useMemo","getStorageKeys","saveSessionIds","useCallback","sessionIds","uniqueIds","Array","from","setItem","JSON","stringify","error","__DEV__","console","warn","updateSessions","incoming","options","prevSessions","processed","merge","mergeSessions","normalizeAndSortSessions","map","session","sessionId","sessionsArraysEqual","saveActiveSessionId","handleAuthError","defaultMessage","code","removeActiveSessionId","removeItem","clearSessionStorage","catch","clearSessionState","clear","clearQueryCache","activateSession","user","getTokenBySession","trackRemovedSession","current","add","setTimeout","delete","findReplacementSession","length","validationResults","validateSessionBatch","maxConcurrency","validSession","find","result","valid","validation","validateSession","useHeaderValidation","switchSession","Error","deviceSessions","fetchSessionsWithFallback","fallbackUserId","id","invalidSession","isInvalidSessionError","filter","otherSessionIds","has","replacementUser","refreshSessions","activeUserId","now","Date","refreshPromise","otherSessions","isRefreshInFlight","Boolean","exports"],"sourceRoot":"../../../../src","sources":["ui/hooks/useSessionManagement.ts"],"mappings":"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","ignoreList":[]}
@@ -19,6 +19,7 @@ var _userUtils = require("../utils/user-utils");
19
19
  var _useColorScheme = require("../hooks/use-color-scheme");
20
20
  var _themeUtils = require("../utils/themeUtils");
21
21
  var _OxyContext = require("../context/OxyContext");
22
+ var _useAccountQueries = require("../hooks/queries/useAccountQueries");
22
23
  var _spacing = require("../constants/spacing");
23
24
  var _jsxRuntime = require("react/jsx-runtime");
24
25
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -121,49 +122,49 @@ const AccountOverviewScreen = ({
121
122
  // Memoize additional accounts filtering to prevent recalculation on every render
122
123
  const additionalAccounts = (0, _react.useMemo)(() => (sessions || []).filter(session => session.sessionId !== activeSessionId && session.userId !== user?.id), [sessions, activeSessionId, user?.id]);
123
124
 
124
- // Load user profiles for additional accounts
125
+ // Load user profiles for additional accounts using TanStack Query
126
+ const sessionIds = additionalAccounts.map(s => s.sessionId);
127
+ const {
128
+ data: usersData,
129
+ isLoading: isLoadingUsers
130
+ } = (0, _useAccountQueries.useUsersBySessions)(sessionIds, {
131
+ enabled: additionalAccounts.length > 0
132
+ });
125
133
  _react.default.useEffect(() => {
126
- const loadAdditionalAccountsData = async () => {
127
- if (!oxyServices || additionalAccounts.length === 0) {
128
- setAdditionalAccountsData([]);
129
- return;
130
- }
131
- setLoadingAdditionalAccounts(true);
132
- try {
133
- const accountsData = await Promise.all(additionalAccounts.map(async session => {
134
- try {
135
- const userProfile = await oxyServices.getUserBySession(session.sessionId);
136
- return {
137
- id: session.sessionId,
138
- sessionId: session.sessionId,
139
- username: userProfile.username,
140
- email: userProfile.email,
141
- name: userProfile.name,
142
- avatar: userProfile.avatar,
143
- userProfile
144
- };
145
- } catch (error) {
146
- console.error(`Failed to load profile for session ${session.sessionId}:`, error);
147
- return {
148
- id: session.sessionId,
149
- sessionId: session.sessionId,
150
- username: 'Unknown User',
151
- email: 'No email available',
152
- avatar: null,
153
- userProfile: null
154
- };
155
- }
156
- }));
157
- setAdditionalAccountsData(accountsData);
158
- } catch (error) {
159
- console.error('Failed to load additional accounts:', error);
160
- setAdditionalAccountsData([]);
161
- } finally {
162
- setLoadingAdditionalAccounts(false);
163
- }
164
- };
165
- loadAdditionalAccountsData();
166
- }, [sessions, activeSessionId, user?.id, oxyServices]);
134
+ if (usersData && usersData.length > 0) {
135
+ const accountsData = usersData.map(({
136
+ sessionId,
137
+ user: userProfile
138
+ }) => {
139
+ if (!userProfile) {
140
+ return {
141
+ id: sessionId,
142
+ sessionId,
143
+ username: 'Unknown User',
144
+ email: 'No email available',
145
+ avatar: null,
146
+ userProfile: null
147
+ };
148
+ }
149
+ return {
150
+ id: sessionId,
151
+ sessionId,
152
+ username: userProfile.username,
153
+ email: userProfile.email,
154
+ name: userProfile.name,
155
+ avatar: userProfile.avatar,
156
+ userProfile
157
+ };
158
+ });
159
+ setAdditionalAccountsData(accountsData);
160
+ setLoadingAdditionalAccounts(false);
161
+ } else if (additionalAccounts.length === 0) {
162
+ setAdditionalAccountsData([]);
163
+ setLoadingAdditionalAccounts(false);
164
+ } else if (!isLoadingUsers) {
165
+ setLoadingAdditionalAccounts(false);
166
+ }
167
+ }, [usersData, additionalAccounts.length, isLoadingUsers]);
167
168
 
168
169
  // Feature settings (with mock values)
169
170
  const features = {