@oxyhq/services 5.16.0 → 5.16.2

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 (190) hide show
  1. package/lib/commonjs/core/mixins/OxyServices.assets.js +15 -0
  2. package/lib/commonjs/core/mixins/OxyServices.assets.js.map +1 -1
  3. package/lib/commonjs/core/mixins/OxyServices.user.js +14 -13
  4. package/lib/commonjs/core/mixins/OxyServices.user.js.map +1 -1
  5. package/lib/commonjs/crypto/keyManager.js +164 -3
  6. package/lib/commonjs/crypto/keyManager.js.map +1 -1
  7. package/lib/commonjs/crypto/signatureService.js +26 -0
  8. package/lib/commonjs/crypto/signatureService.js.map +1 -1
  9. package/lib/commonjs/index.js.map +1 -1
  10. package/lib/commonjs/ui/components/GroupedSection.js +1 -1
  11. package/lib/commonjs/ui/components/GroupedSection.js.map +1 -1
  12. package/lib/commonjs/ui/components/OxyProvider.js +71 -24
  13. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  14. package/lib/commonjs/ui/components/profile/EditDisplayNameModal.js +1 -4
  15. package/lib/commonjs/ui/components/profile/EditDisplayNameModal.js.map +1 -1
  16. package/lib/commonjs/ui/context/OxyContext.js +177 -4
  17. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  18. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +148 -49
  19. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  20. package/lib/commonjs/ui/context/hooks/useSessionManagement.js +22 -2
  21. package/lib/commonjs/ui/context/hooks/useSessionManagement.js.map +1 -1
  22. package/lib/commonjs/ui/hooks/mutations/index.js +28 -0
  23. package/lib/commonjs/ui/hooks/mutations/index.js.map +1 -0
  24. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +314 -0
  25. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -0
  26. package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js +193 -0
  27. package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js.map +1 -0
  28. package/lib/commonjs/ui/hooks/queries/index.js +39 -0
  29. package/lib/commonjs/ui/hooks/queries/index.js.map +1 -0
  30. package/lib/commonjs/ui/hooks/queries/queryKeys.js +85 -0
  31. package/lib/commonjs/ui/hooks/queries/queryKeys.js.map +1 -0
  32. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +145 -0
  33. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -0
  34. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js +138 -0
  35. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js.map +1 -0
  36. package/lib/commonjs/ui/hooks/queryClient.js +117 -0
  37. package/lib/commonjs/ui/hooks/queryClient.js.map +1 -0
  38. package/lib/commonjs/ui/hooks/useIdentityMutations.js +111 -0
  39. package/lib/commonjs/ui/hooks/useIdentityMutations.js.map +1 -0
  40. package/lib/commonjs/ui/hooks/useProfileEditing.js +42 -58
  41. package/lib/commonjs/ui/hooks/useProfileEditing.js.map +1 -1
  42. package/lib/commonjs/ui/hooks/useQueryClient.js +20 -0
  43. package/lib/commonjs/ui/hooks/useQueryClient.js.map +1 -0
  44. package/lib/commonjs/ui/hooks/useSessionManagement.js +22 -2
  45. package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -1
  46. package/lib/commonjs/ui/screens/AccountOverviewScreen.js +43 -42
  47. package/lib/commonjs/ui/screens/AccountOverviewScreen.js.map +1 -1
  48. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +63 -58
  49. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  50. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +6 -6
  51. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  52. package/lib/commonjs/ui/stores/accountStore.js +57 -42
  53. package/lib/commonjs/ui/stores/accountStore.js.map +1 -1
  54. package/lib/commonjs/ui/stores/authStore.js +4 -25
  55. package/lib/commonjs/ui/stores/authStore.js.map +1 -1
  56. package/lib/module/core/mixins/OxyServices.assets.js +15 -0
  57. package/lib/module/core/mixins/OxyServices.assets.js.map +1 -1
  58. package/lib/module/core/mixins/OxyServices.user.js +14 -13
  59. package/lib/module/core/mixins/OxyServices.user.js.map +1 -1
  60. package/lib/module/crypto/keyManager.js +164 -3
  61. package/lib/module/crypto/keyManager.js.map +1 -1
  62. package/lib/module/crypto/signatureService.js +26 -0
  63. package/lib/module/crypto/signatureService.js.map +1 -1
  64. package/lib/module/index.js.map +1 -1
  65. package/lib/module/ui/components/GroupedSection.js +1 -1
  66. package/lib/module/ui/components/GroupedSection.js.map +1 -1
  67. package/lib/module/ui/components/OxyProvider.js +72 -25
  68. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  69. package/lib/module/ui/components/profile/EditDisplayNameModal.js +1 -4
  70. package/lib/module/ui/components/profile/EditDisplayNameModal.js.map +1 -1
  71. package/lib/module/ui/context/OxyContext.js +176 -4
  72. package/lib/module/ui/context/OxyContext.js.map +1 -1
  73. package/lib/module/ui/context/hooks/useAuthOperations.js +148 -49
  74. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  75. package/lib/module/ui/context/hooks/useSessionManagement.js +22 -2
  76. package/lib/module/ui/context/hooks/useSessionManagement.js.map +1 -1
  77. package/lib/module/ui/hooks/mutations/index.js +6 -0
  78. package/lib/module/ui/hooks/mutations/index.js.map +1 -0
  79. package/lib/module/ui/hooks/mutations/useAccountMutations.js +308 -0
  80. package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -0
  81. package/lib/module/ui/hooks/mutations/useServicesMutations.js +185 -0
  82. package/lib/module/ui/hooks/mutations/useServicesMutations.js.map +1 -0
  83. package/lib/module/ui/hooks/queries/index.js +7 -0
  84. package/lib/module/ui/hooks/queries/index.js.map +1 -0
  85. package/lib/module/ui/hooks/queries/queryKeys.js +78 -0
  86. package/lib/module/ui/hooks/queries/queryKeys.js.map +1 -0
  87. package/lib/module/ui/hooks/queries/useAccountQueries.js +136 -0
  88. package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -0
  89. package/lib/module/ui/hooks/queries/useServicesQueries.js +130 -0
  90. package/lib/module/ui/hooks/queries/useServicesQueries.js.map +1 -0
  91. package/lib/module/ui/hooks/queryClient.js +110 -0
  92. package/lib/module/ui/hooks/queryClient.js.map +1 -0
  93. package/lib/module/ui/hooks/useIdentityMutations.js +105 -0
  94. package/lib/module/ui/hooks/useIdentityMutations.js.map +1 -0
  95. package/lib/module/ui/hooks/useProfileEditing.js +43 -59
  96. package/lib/module/ui/hooks/useProfileEditing.js.map +1 -1
  97. package/lib/module/ui/hooks/useQueryClient.js +15 -0
  98. package/lib/module/ui/hooks/useQueryClient.js.map +1 -0
  99. package/lib/module/ui/hooks/useSessionManagement.js +22 -2
  100. package/lib/module/ui/hooks/useSessionManagement.js.map +1 -1
  101. package/lib/module/ui/screens/AccountOverviewScreen.js +43 -42
  102. package/lib/module/ui/screens/AccountOverviewScreen.js.map +1 -1
  103. package/lib/module/ui/screens/AccountSettingsScreen.js +63 -58
  104. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  105. package/lib/module/ui/screens/WelcomeNewUserScreen.js +6 -6
  106. package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  107. package/lib/module/ui/stores/accountStore.js +57 -42
  108. package/lib/module/ui/stores/accountStore.js.map +1 -1
  109. package/lib/module/ui/stores/authStore.js +4 -25
  110. package/lib/module/ui/stores/authStore.js.map +1 -1
  111. package/lib/typescript/core/mixins/OxyServices.assets.d.ts +7 -1
  112. package/lib/typescript/core/mixins/OxyServices.assets.d.ts.map +1 -1
  113. package/lib/typescript/core/mixins/OxyServices.user.d.ts +4 -5
  114. package/lib/typescript/core/mixins/OxyServices.user.d.ts.map +1 -1
  115. package/lib/typescript/core/mixins/index.d.ts +1 -1
  116. package/lib/typescript/core/mixins/index.d.ts.map +1 -1
  117. package/lib/typescript/crypto/keyManager.d.ts +19 -2
  118. package/lib/typescript/crypto/keyManager.d.ts.map +1 -1
  119. package/lib/typescript/crypto/signatureService.d.ts +5 -0
  120. package/lib/typescript/crypto/signatureService.d.ts.map +1 -1
  121. package/lib/typescript/index.d.ts +1 -1
  122. package/lib/typescript/index.d.ts.map +1 -1
  123. package/lib/typescript/models/interfaces.d.ts +21 -0
  124. package/lib/typescript/models/interfaces.d.ts.map +1 -1
  125. package/lib/typescript/ui/components/OxyProvider.d.ts.map +1 -1
  126. package/lib/typescript/ui/components/profile/EditDisplayNameModal.d.ts.map +1 -1
  127. package/lib/typescript/ui/context/OxyContext.d.ts +4 -0
  128. package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
  129. package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  130. package/lib/typescript/ui/context/hooks/useSessionManagement.d.ts +3 -1
  131. package/lib/typescript/ui/context/hooks/useSessionManagement.d.ts.map +1 -1
  132. package/lib/typescript/ui/hooks/mutations/index.d.ts +3 -0
  133. package/lib/typescript/ui/hooks/mutations/index.d.ts.map +1 -0
  134. package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts +25 -0
  135. package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -0
  136. package/lib/typescript/ui/hooks/mutations/useServicesMutations.d.ts +23 -0
  137. package/lib/typescript/ui/hooks/mutations/useServicesMutations.d.ts.map +1 -0
  138. package/lib/typescript/ui/hooks/queries/index.d.ts +4 -0
  139. package/lib/typescript/ui/hooks/queries/index.d.ts.map +1 -0
  140. package/lib/typescript/ui/hooks/queries/queryKeys.d.ts +56 -0
  141. package/lib/typescript/ui/hooks/queries/queryKeys.d.ts.map +1 -0
  142. package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts +41 -0
  143. package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts.map +1 -0
  144. package/lib/typescript/ui/hooks/queries/useServicesQueries.d.ts +34 -0
  145. package/lib/typescript/ui/hooks/queries/useServicesQueries.d.ts.map +1 -0
  146. package/lib/typescript/ui/hooks/queryClient.d.ts +19 -0
  147. package/lib/typescript/ui/hooks/queryClient.d.ts.map +1 -0
  148. package/lib/typescript/ui/hooks/useIdentityMutations.d.ts +29 -0
  149. package/lib/typescript/ui/hooks/useIdentityMutations.d.ts.map +1 -0
  150. package/lib/typescript/ui/hooks/useProfileEditing.d.ts.map +1 -1
  151. package/lib/typescript/ui/hooks/useQueryClient.d.ts +7 -0
  152. package/lib/typescript/ui/hooks/useQueryClient.d.ts.map +1 -0
  153. package/lib/typescript/ui/hooks/useSessionManagement.d.ts +3 -1
  154. package/lib/typescript/ui/hooks/useSessionManagement.d.ts.map +1 -1
  155. package/lib/typescript/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
  156. package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  157. package/lib/typescript/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
  158. package/lib/typescript/ui/stores/accountStore.d.ts.map +1 -1
  159. package/lib/typescript/ui/stores/authStore.d.ts +0 -4
  160. package/lib/typescript/ui/stores/authStore.d.ts.map +1 -1
  161. package/package.json +6 -5
  162. package/src/core/mixins/OxyServices.assets.ts +16 -1
  163. package/src/core/mixins/OxyServices.user.ts +17 -10
  164. package/src/crypto/keyManager.ts +177 -2
  165. package/src/crypto/signatureService.ts +30 -0
  166. package/src/index.ts +4 -1
  167. package/src/models/interfaces.ts +23 -0
  168. package/src/ui/components/GroupedSection.tsx +1 -1
  169. package/src/ui/components/OxyProvider.tsx +91 -37
  170. package/src/ui/components/profile/EditDisplayNameModal.tsx +1 -3
  171. package/src/ui/context/OxyContext.tsx +185 -2
  172. package/src/ui/context/hooks/useAuthOperations.ts +171 -58
  173. package/src/ui/context/hooks/useSessionManagement.ts +24 -1
  174. package/src/ui/hooks/mutations/index.ts +4 -0
  175. package/src/ui/hooks/mutations/useAccountMutations.ts +277 -0
  176. package/src/ui/hooks/mutations/useServicesMutations.ts +164 -0
  177. package/src/ui/hooks/queries/index.ts +5 -0
  178. package/src/ui/hooks/queries/queryKeys.ts +73 -0
  179. package/src/ui/hooks/queries/useAccountQueries.ts +126 -0
  180. package/src/ui/hooks/queries/useServicesQueries.ts +121 -0
  181. package/src/ui/hooks/queryClient.ts +112 -0
  182. package/src/ui/hooks/useIdentityMutations.ts +115 -0
  183. package/src/ui/hooks/useProfileEditing.ts +46 -60
  184. package/src/ui/hooks/useQueryClient.ts +17 -0
  185. package/src/ui/hooks/useSessionManagement.ts +24 -1
  186. package/src/ui/screens/AccountOverviewScreen.tsx +38 -46
  187. package/src/ui/screens/AccountSettingsScreen.tsx +54 -54
  188. package/src/ui/screens/WelcomeNewUserScreen.tsx +13 -12
  189. package/src/ui/stores/accountStore.ts +54 -43
  190. package/src/ui/stores/authStore.ts +3 -17
@@ -0,0 +1,314 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useUploadAvatar = exports.useUpdateProfile = exports.useUpdateAccountSettings = void 0;
7
+ var _reactQuery = require("@tanstack/react-query");
8
+ var _queryKeys = require("../queries/queryKeys");
9
+ var _OxyContext = require("../../context/OxyContext");
10
+ var _sonner = require("../../../lib/sonner");
11
+ /**
12
+ * Update user profile with optimistic updates and offline queue support
13
+ */
14
+ const useUpdateProfile = () => {
15
+ const {
16
+ oxyServices,
17
+ activeSessionId,
18
+ user,
19
+ syncIdentity
20
+ } = (0, _OxyContext.useOxy)();
21
+ const queryClient = (0, _reactQuery.useQueryClient)();
22
+ return (0, _reactQuery.useMutation)({
23
+ mutationFn: async updates => {
24
+ // Ensure we have a valid token before making the request
25
+ if (!oxyServices.hasValidToken() && activeSessionId) {
26
+ try {
27
+ // Try to get token for the session
28
+ await oxyServices.getTokenBySession(activeSessionId);
29
+ } catch (tokenError) {
30
+ // If getting token fails, might be an offline session - try syncing
31
+ const errorMessage = tokenError instanceof Error ? tokenError.message : String(tokenError);
32
+ if (errorMessage.includes('AUTH_REQUIRED_OFFLINE_SESSION') || errorMessage.includes('offline')) {
33
+ try {
34
+ await syncIdentity();
35
+ // Retry getting token after sync
36
+ await oxyServices.getTokenBySession(activeSessionId);
37
+ } catch (syncError) {
38
+ throw new Error('Session needs to be synced. Please try again.');
39
+ }
40
+ } else {
41
+ throw tokenError;
42
+ }
43
+ }
44
+ }
45
+ try {
46
+ return await oxyServices.updateProfile(updates);
47
+ } catch (error) {
48
+ const errorMessage = error?.message || '';
49
+ const status = error?.status || error?.response?.status;
50
+
51
+ // Handle authentication errors
52
+ if (status === 401 || errorMessage.includes('Authentication required') || errorMessage.includes('Invalid or missing authorization header')) {
53
+ // Try to sync session and get token
54
+ if (activeSessionId) {
55
+ try {
56
+ await syncIdentity();
57
+ await oxyServices.getTokenBySession(activeSessionId);
58
+ // Retry the update after getting token
59
+ return await oxyServices.updateProfile(updates);
60
+ } catch (retryError) {
61
+ throw new Error('Authentication failed. Please sign in again.');
62
+ }
63
+ } else {
64
+ throw new Error('No active session. Please sign in.');
65
+ }
66
+ }
67
+
68
+ // TanStack Query will automatically retry on network errors
69
+ throw error;
70
+ }
71
+ },
72
+ // Optimistic update
73
+ onMutate: async updates => {
74
+ // Cancel outgoing refetches
75
+ await queryClient.cancelQueries({
76
+ queryKey: _queryKeys.queryKeys.accounts.current()
77
+ });
78
+
79
+ // Snapshot previous value
80
+ const previousUser = queryClient.getQueryData(_queryKeys.queryKeys.accounts.current());
81
+
82
+ // Optimistically update
83
+ if (previousUser) {
84
+ queryClient.setQueryData(_queryKeys.queryKeys.accounts.current(), {
85
+ ...previousUser,
86
+ ...updates
87
+ });
88
+
89
+ // Also update profile query if sessionId is available
90
+ if (activeSessionId) {
91
+ queryClient.setQueryData(_queryKeys.queryKeys.users.profile(activeSessionId), {
92
+ ...previousUser,
93
+ ...updates
94
+ });
95
+ }
96
+ }
97
+ return {
98
+ previousUser
99
+ };
100
+ },
101
+ // On error, rollback
102
+ onError: (error, updates, context) => {
103
+ if (context?.previousUser) {
104
+ queryClient.setQueryData(_queryKeys.queryKeys.accounts.current(), context.previousUser);
105
+ if (activeSessionId) {
106
+ queryClient.setQueryData(_queryKeys.queryKeys.users.profile(activeSessionId), context.previousUser);
107
+ }
108
+ }
109
+ _sonner.toast.error(error instanceof Error ? error.message : 'Failed to update profile');
110
+ },
111
+ // On success, invalidate and refetch
112
+ onSuccess: data => {
113
+ // Update cache with server response
114
+ queryClient.setQueryData(_queryKeys.queryKeys.accounts.current(), data);
115
+ if (activeSessionId) {
116
+ queryClient.setQueryData(_queryKeys.queryKeys.users.profile(activeSessionId), data);
117
+ }
118
+
119
+ // Invalidate related queries
120
+ (0, _queryKeys.invalidateUserQueries)(queryClient);
121
+ },
122
+ // Always refetch after error or success
123
+ onSettled: () => {
124
+ queryClient.invalidateQueries({
125
+ queryKey: _queryKeys.queryKeys.accounts.current()
126
+ });
127
+ if (activeSessionId) {
128
+ queryClient.invalidateQueries({
129
+ queryKey: _queryKeys.queryKeys.users.profile(activeSessionId)
130
+ });
131
+ }
132
+ }
133
+ });
134
+ };
135
+
136
+ /**
137
+ * Upload avatar with progress tracking and offline queue support
138
+ */
139
+ exports.useUpdateProfile = useUpdateProfile;
140
+ const useUploadAvatar = () => {
141
+ const {
142
+ oxyServices,
143
+ activeSessionId,
144
+ syncIdentity
145
+ } = (0, _OxyContext.useOxy)();
146
+ const queryClient = (0, _reactQuery.useQueryClient)();
147
+ return (0, _reactQuery.useMutation)({
148
+ mutationFn: async file => {
149
+ // Ensure we have a valid token before making the request
150
+ if (!oxyServices.hasValidToken() && activeSessionId) {
151
+ try {
152
+ await oxyServices.getTokenBySession(activeSessionId);
153
+ } catch (tokenError) {
154
+ const errorMessage = tokenError instanceof Error ? tokenError.message : String(tokenError);
155
+ if (errorMessage.includes('AUTH_REQUIRED_OFFLINE_SESSION') || errorMessage.includes('offline')) {
156
+ try {
157
+ await syncIdentity();
158
+ await oxyServices.getTokenBySession(activeSessionId);
159
+ } catch (syncError) {
160
+ throw new Error('Session needs to be synced. Please try again.');
161
+ }
162
+ } else {
163
+ throw tokenError;
164
+ }
165
+ }
166
+ }
167
+ try {
168
+ // Upload file first
169
+ const uploadResult = await oxyServices.assetUpload(file, 'public');
170
+ const fileId = uploadResult?.file?.id || uploadResult?.id || uploadResult;
171
+ if (!fileId || typeof fileId !== 'string') {
172
+ throw new Error('Failed to get file ID from upload result');
173
+ }
174
+
175
+ // Update profile with file ID
176
+ return await oxyServices.updateProfile({
177
+ avatar: fileId
178
+ });
179
+ } catch (error) {
180
+ const errorMessage = error?.message || '';
181
+ const status = error?.status || error?.response?.status;
182
+
183
+ // Handle authentication errors
184
+ if (status === 401 || errorMessage.includes('Authentication required') || errorMessage.includes('Invalid or missing authorization header')) {
185
+ if (activeSessionId) {
186
+ try {
187
+ await syncIdentity();
188
+ await oxyServices.getTokenBySession(activeSessionId);
189
+ // Retry upload
190
+ const uploadResult = await oxyServices.assetUpload(file, 'public');
191
+ const fileId = uploadResult?.file?.id || uploadResult?.id || uploadResult;
192
+ if (!fileId || typeof fileId !== 'string') {
193
+ throw new Error('Failed to get file ID from upload result');
194
+ }
195
+ return await oxyServices.updateProfile({
196
+ avatar: fileId
197
+ });
198
+ } catch (retryError) {
199
+ throw new Error('Authentication failed. Please sign in again.');
200
+ }
201
+ } else {
202
+ throw new Error('No active session. Please sign in.');
203
+ }
204
+ }
205
+
206
+ // TanStack Query will automatically retry on network errors
207
+ throw error;
208
+ }
209
+ },
210
+ onMutate: async file => {
211
+ await queryClient.cancelQueries({
212
+ queryKey: _queryKeys.queryKeys.accounts.current()
213
+ });
214
+ const previousUser = queryClient.getQueryData(_queryKeys.queryKeys.accounts.current());
215
+
216
+ // Optimistically set a temporary avatar (using file URI as placeholder)
217
+ if (previousUser) {
218
+ const optimisticUser = {
219
+ ...previousUser,
220
+ avatar: file.uri // Temporary, will be replaced with fileId
221
+ };
222
+ queryClient.setQueryData(_queryKeys.queryKeys.accounts.current(), optimisticUser);
223
+ if (activeSessionId) {
224
+ queryClient.setQueryData(_queryKeys.queryKeys.users.profile(activeSessionId), optimisticUser);
225
+ }
226
+ }
227
+ return {
228
+ previousUser
229
+ };
230
+ },
231
+ onError: (error, file, context) => {
232
+ if (context?.previousUser) {
233
+ queryClient.setQueryData(_queryKeys.queryKeys.accounts.current(), context.previousUser);
234
+ if (activeSessionId) {
235
+ queryClient.setQueryData(_queryKeys.queryKeys.users.profile(activeSessionId), context.previousUser);
236
+ }
237
+ }
238
+ _sonner.toast.error(error instanceof Error ? error.message : 'Failed to upload avatar');
239
+ },
240
+ onSuccess: data => {
241
+ queryClient.setQueryData(_queryKeys.queryKeys.accounts.current(), data);
242
+ if (activeSessionId) {
243
+ queryClient.setQueryData(_queryKeys.queryKeys.users.profile(activeSessionId), data);
244
+ }
245
+ (0, _queryKeys.invalidateUserQueries)(queryClient);
246
+ _sonner.toast.success('Avatar updated successfully');
247
+ },
248
+ onSettled: () => {
249
+ queryClient.invalidateQueries({
250
+ queryKey: _queryKeys.queryKeys.accounts.current()
251
+ });
252
+ if (activeSessionId) {
253
+ queryClient.invalidateQueries({
254
+ queryKey: _queryKeys.queryKeys.users.profile(activeSessionId)
255
+ });
256
+ }
257
+ }
258
+ });
259
+ };
260
+
261
+ /**
262
+ * Update account settings
263
+ */
264
+ exports.useUploadAvatar = useUploadAvatar;
265
+ const useUpdateAccountSettings = () => {
266
+ const {
267
+ oxyServices,
268
+ activeSessionId
269
+ } = (0, _OxyContext.useOxy)();
270
+ const queryClient = (0, _reactQuery.useQueryClient)();
271
+ return (0, _reactQuery.useMutation)({
272
+ mutationFn: async settings => {
273
+ return await oxyServices.updateProfile({
274
+ privacySettings: settings
275
+ });
276
+ },
277
+ onMutate: async settings => {
278
+ await queryClient.cancelQueries({
279
+ queryKey: _queryKeys.queryKeys.accounts.settings()
280
+ });
281
+ const previousUser = queryClient.getQueryData(_queryKeys.queryKeys.accounts.current());
282
+ if (previousUser) {
283
+ queryClient.setQueryData(_queryKeys.queryKeys.accounts.current(), {
284
+ ...previousUser,
285
+ privacySettings: {
286
+ ...previousUser.privacySettings,
287
+ ...settings
288
+ }
289
+ });
290
+ }
291
+ return {
292
+ previousUser
293
+ };
294
+ },
295
+ onError: (error, settings, context) => {
296
+ if (context?.previousUser) {
297
+ queryClient.setQueryData(_queryKeys.queryKeys.accounts.current(), context.previousUser);
298
+ }
299
+ _sonner.toast.error(error instanceof Error ? error.message : 'Failed to update settings');
300
+ },
301
+ onSuccess: data => {
302
+ queryClient.setQueryData(_queryKeys.queryKeys.accounts.current(), data);
303
+ (0, _queryKeys.invalidateAccountQueries)(queryClient);
304
+ _sonner.toast.success('Settings updated successfully');
305
+ },
306
+ onSettled: () => {
307
+ queryClient.invalidateQueries({
308
+ queryKey: _queryKeys.queryKeys.accounts.settings()
309
+ });
310
+ }
311
+ });
312
+ };
313
+ exports.useUpdateAccountSettings = useUpdateAccountSettings;
314
+ //# sourceMappingURL=useAccountMutations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactQuery","require","_queryKeys","_OxyContext","_sonner","useUpdateProfile","oxyServices","activeSessionId","user","syncIdentity","useOxy","queryClient","useQueryClient","useMutation","mutationFn","updates","hasValidToken","getTokenBySession","tokenError","errorMessage","Error","message","String","includes","syncError","updateProfile","error","status","response","retryError","onMutate","cancelQueries","queryKey","queryKeys","accounts","current","previousUser","getQueryData","setQueryData","users","profile","onError","context","toast","onSuccess","data","invalidateUserQueries","onSettled","invalidateQueries","exports","useUploadAvatar","file","uploadResult","assetUpload","fileId","id","avatar","optimisticUser","uri","success","useUpdateAccountSettings","settings","privacySettings","invalidateAccountQueries"],"sourceRoot":"../../../../../src","sources":["ui/hooks/mutations/useAccountMutations.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,193 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useUpdateDeviceName = exports.useSwitchSession = exports.useRemoveDevice = exports.useLogoutSession = exports.useLogoutAll = void 0;
7
+ var _reactQuery = require("@tanstack/react-query");
8
+ var _queryKeys = require("../queries/queryKeys");
9
+ var _OxyContext = require("../../context/OxyContext");
10
+ var _sonner = require("../../../lib/sonner");
11
+ /**
12
+ * Switch active session
13
+ */
14
+ const useSwitchSession = () => {
15
+ const {
16
+ switchSession,
17
+ activeSessionId
18
+ } = (0, _OxyContext.useOxy)();
19
+ const queryClient = (0, _reactQuery.useQueryClient)();
20
+ return (0, _reactQuery.useMutation)({
21
+ mutationFn: async sessionId => {
22
+ return await switchSession(sessionId);
23
+ },
24
+ onSuccess: user => {
25
+ // Invalidate all session queries
26
+ (0, _queryKeys.invalidateSessionQueries)(queryClient);
27
+
28
+ // Update current user query
29
+ queryClient.setQueryData(_queryKeys.queryKeys.accounts.current(), user);
30
+
31
+ // Invalidate account queries
32
+ queryClient.invalidateQueries({
33
+ queryKey: _queryKeys.queryKeys.accounts.all
34
+ });
35
+ },
36
+ onError: error => {
37
+ _sonner.toast.error(error instanceof Error ? error.message : 'Failed to switch session');
38
+ }
39
+ });
40
+ };
41
+
42
+ /**
43
+ * Logout from a session
44
+ */
45
+ exports.useSwitchSession = useSwitchSession;
46
+ const useLogoutSession = () => {
47
+ const {
48
+ oxyServices,
49
+ activeSessionId,
50
+ sessions
51
+ } = (0, _OxyContext.useOxy)();
52
+ const queryClient = (0, _reactQuery.useQueryClient)();
53
+ return (0, _reactQuery.useMutation)({
54
+ mutationFn: async targetSessionId => {
55
+ if (!activeSessionId) {
56
+ throw new Error('No active session');
57
+ }
58
+ const sessionToLogout = targetSessionId || activeSessionId;
59
+ await oxyServices.logoutSession(activeSessionId, sessionToLogout);
60
+ return sessionToLogout;
61
+ },
62
+ onMutate: async targetSessionId => {
63
+ // Cancel outgoing queries
64
+ await queryClient.cancelQueries({
65
+ queryKey: _queryKeys.queryKeys.sessions.all
66
+ });
67
+
68
+ // Snapshot previous sessions
69
+ const previousSessions = queryClient.getQueryData(_queryKeys.queryKeys.sessions.list());
70
+
71
+ // Optimistically remove session
72
+ if (previousSessions) {
73
+ const sessionToLogout = targetSessionId || activeSessionId;
74
+ const updatedSessions = previousSessions.filter(s => s.sessionId !== sessionToLogout);
75
+ queryClient.setQueryData(_queryKeys.queryKeys.sessions.list(), updatedSessions);
76
+ }
77
+ return {
78
+ previousSessions
79
+ };
80
+ },
81
+ onError: (error, targetSessionId, context) => {
82
+ // Rollback on error
83
+ if (context?.previousSessions) {
84
+ queryClient.setQueryData(_queryKeys.queryKeys.sessions.list(), context.previousSessions);
85
+ }
86
+ _sonner.toast.error(error instanceof Error ? error.message : 'Failed to logout');
87
+ },
88
+ onSuccess: () => {
89
+ // Invalidate all session queries
90
+ (0, _queryKeys.invalidateSessionQueries)(queryClient);
91
+ },
92
+ onSettled: () => {
93
+ queryClient.invalidateQueries({
94
+ queryKey: _queryKeys.queryKeys.sessions.all
95
+ });
96
+ }
97
+ });
98
+ };
99
+
100
+ /**
101
+ * Logout from all sessions
102
+ */
103
+ exports.useLogoutSession = useLogoutSession;
104
+ const useLogoutAll = () => {
105
+ const {
106
+ oxyServices,
107
+ activeSessionId,
108
+ clearSessionState
109
+ } = (0, _OxyContext.useOxy)();
110
+ const queryClient = (0, _reactQuery.useQueryClient)();
111
+ return (0, _reactQuery.useMutation)({
112
+ mutationFn: async () => {
113
+ if (!activeSessionId) {
114
+ throw new Error('No active session');
115
+ }
116
+ await oxyServices.logoutAllSessions(activeSessionId);
117
+ await clearSessionState();
118
+ },
119
+ onSuccess: () => {
120
+ // Clear all queries
121
+ queryClient.clear();
122
+ _sonner.toast.success('Logged out from all sessions');
123
+ },
124
+ onError: error => {
125
+ _sonner.toast.error(error instanceof Error ? error.message : 'Failed to logout from all sessions');
126
+ }
127
+ });
128
+ };
129
+
130
+ /**
131
+ * Update device name
132
+ */
133
+ exports.useLogoutAll = useLogoutAll;
134
+ const useUpdateDeviceName = () => {
135
+ const {
136
+ oxyServices,
137
+ activeSessionId
138
+ } = (0, _OxyContext.useOxy)();
139
+ const queryClient = (0, _reactQuery.useQueryClient)();
140
+ return (0, _reactQuery.useMutation)({
141
+ mutationFn: async deviceName => {
142
+ if (!activeSessionId) {
143
+ throw new Error('No active session');
144
+ }
145
+ return await oxyServices.updateDeviceName(activeSessionId, deviceName);
146
+ },
147
+ onSuccess: () => {
148
+ // Invalidate device and session queries
149
+ queryClient.invalidateQueries({
150
+ queryKey: _queryKeys.queryKeys.devices.all
151
+ });
152
+ queryClient.invalidateQueries({
153
+ queryKey: _queryKeys.queryKeys.sessions.all
154
+ });
155
+ _sonner.toast.success('Device name updated');
156
+ },
157
+ onError: error => {
158
+ _sonner.toast.error(error instanceof Error ? error.message : 'Failed to update device name');
159
+ }
160
+ });
161
+ };
162
+
163
+ /**
164
+ * Remove a device
165
+ */
166
+ exports.useUpdateDeviceName = useUpdateDeviceName;
167
+ const useRemoveDevice = () => {
168
+ const {
169
+ oxyServices
170
+ } = (0, _OxyContext.useOxy)();
171
+ const queryClient = (0, _reactQuery.useQueryClient)();
172
+ return (0, _reactQuery.useMutation)({
173
+ mutationFn: async deviceId => {
174
+ await oxyServices.removeDevice(deviceId);
175
+ return deviceId;
176
+ },
177
+ onSuccess: () => {
178
+ // Invalidate device queries
179
+ queryClient.invalidateQueries({
180
+ queryKey: _queryKeys.queryKeys.devices.all
181
+ });
182
+ queryClient.invalidateQueries({
183
+ queryKey: _queryKeys.queryKeys.sessions.all
184
+ });
185
+ _sonner.toast.success('Device removed');
186
+ },
187
+ onError: error => {
188
+ _sonner.toast.error(error instanceof Error ? error.message : 'Failed to remove device');
189
+ }
190
+ });
191
+ };
192
+ exports.useRemoveDevice = useRemoveDevice;
193
+ //# sourceMappingURL=useServicesMutations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactQuery","require","_queryKeys","_OxyContext","_sonner","useSwitchSession","switchSession","activeSessionId","useOxy","queryClient","useQueryClient","useMutation","mutationFn","sessionId","onSuccess","user","invalidateSessionQueries","setQueryData","queryKeys","accounts","current","invalidateQueries","queryKey","all","onError","error","toast","Error","message","exports","useLogoutSession","oxyServices","sessions","targetSessionId","sessionToLogout","logoutSession","onMutate","cancelQueries","previousSessions","getQueryData","list","updatedSessions","filter","s","context","onSettled","useLogoutAll","clearSessionState","logoutAllSessions","clear","success","useUpdateDeviceName","deviceName","updateDeviceName","devices","useRemoveDevice","deviceId","removeDevice"],"sourceRoot":"../../../../../src","sources":["ui/hooks/mutations/useServicesMutations.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _useAccountQueries = require("./useAccountQueries");
7
+ Object.keys(_useAccountQueries).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _useAccountQueries[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _useAccountQueries[key];
14
+ }
15
+ });
16
+ });
17
+ var _useServicesQueries = require("./useServicesQueries");
18
+ Object.keys(_useServicesQueries).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _useServicesQueries[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _useServicesQueries[key];
25
+ }
26
+ });
27
+ });
28
+ var _queryKeys = require("./queryKeys");
29
+ Object.keys(_queryKeys).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _queryKeys[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function () {
35
+ return _queryKeys[key];
36
+ }
37
+ });
38
+ });
39
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_useAccountQueries","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_useServicesQueries","_queryKeys"],"sourceRoot":"../../../../../src","sources":["ui/hooks/queries/index.ts"],"mappings":";;;;;AACA,IAAAA,kBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,kBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,kBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,kBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,mBAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,mBAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,mBAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,mBAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,UAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,UAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,UAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,UAAA,CAAAN,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.queryKeys = exports.invalidateUserQueries = exports.invalidateSessionQueries = exports.invalidateAccountQueries = void 0;
7
+ /**
8
+ * Centralized query keys for TanStack Query
9
+ *
10
+ * Following best practices:
11
+ * - Use arrays for hierarchical keys
12
+ * - Include all parameters in the key
13
+ * - Use consistent naming conventions
14
+ */
15
+
16
+ const queryKeys = exports.queryKeys = {
17
+ // Account queries
18
+ accounts: {
19
+ all: ['accounts'],
20
+ lists: () => [...queryKeys.accounts.all, 'list'],
21
+ list: sessionIds => [...queryKeys.accounts.lists(), sessionIds],
22
+ details: () => [...queryKeys.accounts.all, 'detail'],
23
+ detail: sessionId => [...queryKeys.accounts.details(), sessionId],
24
+ current: () => [...queryKeys.accounts.all, 'current'],
25
+ settings: () => [...queryKeys.accounts.all, 'settings']
26
+ },
27
+ // User queries
28
+ users: {
29
+ all: ['users'],
30
+ lists: () => [...queryKeys.users.all, 'list'],
31
+ list: userIds => [...queryKeys.users.lists(), userIds],
32
+ details: () => [...queryKeys.users.all, 'detail'],
33
+ detail: userId => [...queryKeys.users.details(), userId],
34
+ profile: sessionId => [...queryKeys.users.details(), sessionId, 'profile']
35
+ },
36
+ // Session queries
37
+ sessions: {
38
+ all: ['sessions'],
39
+ lists: () => [...queryKeys.sessions.all, 'list'],
40
+ list: userId => [...queryKeys.sessions.lists(), userId],
41
+ details: () => [...queryKeys.sessions.all, 'detail'],
42
+ detail: sessionId => [...queryKeys.sessions.details(), sessionId],
43
+ active: () => [...queryKeys.sessions.all, 'active'],
44
+ device: deviceId => [...queryKeys.sessions.all, 'device', deviceId]
45
+ },
46
+ // Device queries
47
+ devices: {
48
+ all: ['devices'],
49
+ lists: () => [...queryKeys.devices.all, 'list'],
50
+ list: userId => [...queryKeys.devices.lists(), userId],
51
+ details: () => [...queryKeys.devices.all, 'detail'],
52
+ detail: deviceId => [...queryKeys.devices.details(), deviceId]
53
+ }
54
+ };
55
+
56
+ /**
57
+ * Helper to invalidate all account-related queries
58
+ */
59
+ const invalidateAccountQueries = queryClient => {
60
+ queryClient.invalidateQueries({
61
+ queryKey: queryKeys.accounts.all
62
+ });
63
+ };
64
+
65
+ /**
66
+ * Helper to invalidate all user-related queries
67
+ */
68
+ exports.invalidateAccountQueries = invalidateAccountQueries;
69
+ const invalidateUserQueries = queryClient => {
70
+ queryClient.invalidateQueries({
71
+ queryKey: queryKeys.users.all
72
+ });
73
+ };
74
+
75
+ /**
76
+ * Helper to invalidate all session-related queries
77
+ */
78
+ exports.invalidateUserQueries = invalidateUserQueries;
79
+ const invalidateSessionQueries = queryClient => {
80
+ queryClient.invalidateQueries({
81
+ queryKey: queryKeys.sessions.all
82
+ });
83
+ };
84
+ exports.invalidateSessionQueries = invalidateSessionQueries;
85
+ //# sourceMappingURL=queryKeys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["queryKeys","exports","accounts","all","lists","list","sessionIds","details","detail","sessionId","current","settings","users","userIds","userId","profile","sessions","active","device","deviceId","devices","invalidateAccountQueries","queryClient","invalidateQueries","queryKey","invalidateUserQueries","invalidateSessionQueries"],"sourceRoot":"../../../../../src","sources":["ui/hooks/queries/queryKeys.ts"],"mappings":"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","ignoreList":[]}