@oxyhq/services 5.21.5 → 5.21.7

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 (177) hide show
  1. package/lib/commonjs/crypto/keyManager.js +67 -22
  2. package/lib/commonjs/crypto/keyManager.js.map +1 -1
  3. package/lib/commonjs/index.js +66 -0
  4. package/lib/commonjs/index.js.map +1 -1
  5. package/lib/commonjs/ui/components/BottomSheetRouter.js +100 -286
  6. package/lib/commonjs/ui/components/BottomSheetRouter.js.map +1 -1
  7. package/lib/commonjs/ui/components/GroupedItem.js +0 -3
  8. package/lib/commonjs/ui/components/GroupedItem.js.map +1 -1
  9. package/lib/commonjs/ui/components/OxyProvider.js +14 -19
  10. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  11. package/lib/commonjs/ui/components/fileManagement/AnimatedButton.js +57 -0
  12. package/lib/commonjs/ui/components/fileManagement/AnimatedButton.js.map +1 -0
  13. package/lib/commonjs/ui/components/profile/EditBioModal.js +24 -156
  14. package/lib/commonjs/ui/components/profile/EditBioModal.js.map +1 -1
  15. package/lib/commonjs/ui/components/profile/EditDisplayNameModal.js +28 -178
  16. package/lib/commonjs/ui/components/profile/EditDisplayNameModal.js.map +1 -1
  17. package/lib/commonjs/ui/components/profile/EditEmailModal.js +32 -159
  18. package/lib/commonjs/ui/components/profile/EditEmailModal.js.map +1 -1
  19. package/lib/commonjs/ui/components/profile/EditLocationModal.js +45 -227
  20. package/lib/commonjs/ui/components/profile/EditLocationModal.js.map +1 -1
  21. package/lib/commonjs/ui/components/profile/EditUsernameModal.js +30 -155
  22. package/lib/commonjs/ui/components/profile/EditUsernameModal.js.map +1 -1
  23. package/lib/commonjs/ui/hooks/mutations/mutationFactory.js +177 -0
  24. package/lib/commonjs/ui/hooks/mutations/mutationFactory.js.map +1 -0
  25. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +10 -123
  26. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  27. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +2 -32
  28. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -1
  29. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js +2 -31
  30. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js.map +1 -1
  31. package/lib/commonjs/ui/hooks/useFileFiltering.js +76 -0
  32. package/lib/commonjs/ui/hooks/useFileFiltering.js.map +1 -0
  33. package/lib/commonjs/ui/navigation/bottomSheetManager.js +43 -145
  34. package/lib/commonjs/ui/navigation/bottomSheetManager.js.map +1 -1
  35. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +0 -2
  36. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  37. package/lib/commonjs/ui/screens/FileManagementScreen.js +2 -2
  38. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
  39. package/lib/commonjs/ui/utils/authHelpers.js +164 -0
  40. package/lib/commonjs/ui/utils/authHelpers.js.map +1 -0
  41. package/lib/commonjs/ui/utils/avatarUtils.js +18 -61
  42. package/lib/commonjs/ui/utils/avatarUtils.js.map +1 -1
  43. package/lib/module/crypto/keyManager.js +67 -22
  44. package/lib/module/crypto/keyManager.js.map +1 -1
  45. package/lib/module/index.js +6 -0
  46. package/lib/module/index.js.map +1 -1
  47. package/lib/module/ui/components/BottomSheetRouter.js +102 -284
  48. package/lib/module/ui/components/BottomSheetRouter.js.map +1 -1
  49. package/lib/module/ui/components/GroupedItem.js +0 -3
  50. package/lib/module/ui/components/GroupedItem.js.map +1 -1
  51. package/lib/module/ui/components/OxyProvider.js +14 -19
  52. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  53. package/lib/module/ui/components/fileManagement/AnimatedButton.js +50 -0
  54. package/lib/module/ui/components/fileManagement/AnimatedButton.js.map +1 -0
  55. package/lib/module/ui/components/profile/EditBioModal.js +24 -156
  56. package/lib/module/ui/components/profile/EditBioModal.js.map +1 -1
  57. package/lib/module/ui/components/profile/EditDisplayNameModal.js +28 -178
  58. package/lib/module/ui/components/profile/EditDisplayNameModal.js.map +1 -1
  59. package/lib/module/ui/components/profile/EditEmailModal.js +32 -159
  60. package/lib/module/ui/components/profile/EditEmailModal.js.map +1 -1
  61. package/lib/module/ui/components/profile/EditLocationModal.js +45 -227
  62. package/lib/module/ui/components/profile/EditLocationModal.js.map +1 -1
  63. package/lib/module/ui/components/profile/EditUsernameModal.js +30 -155
  64. package/lib/module/ui/components/profile/EditUsernameModal.js.map +1 -1
  65. package/lib/module/ui/hooks/mutations/mutationFactory.js +173 -0
  66. package/lib/module/ui/hooks/mutations/mutationFactory.js.map +1 -0
  67. package/lib/module/ui/hooks/mutations/useAccountMutations.js +10 -122
  68. package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  69. package/lib/module/ui/hooks/queries/useAccountQueries.js +2 -32
  70. package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -1
  71. package/lib/module/ui/hooks/queries/useServicesQueries.js +2 -31
  72. package/lib/module/ui/hooks/queries/useServicesQueries.js.map +1 -1
  73. package/lib/module/ui/hooks/useFileFiltering.js +72 -0
  74. package/lib/module/ui/hooks/useFileFiltering.js.map +1 -0
  75. package/lib/module/ui/navigation/bottomSheetManager.js +37 -135
  76. package/lib/module/ui/navigation/bottomSheetManager.js.map +1 -1
  77. package/lib/module/ui/screens/AccountSettingsScreen.js +0 -2
  78. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  79. package/lib/module/ui/screens/FileManagementScreen.js +2 -2
  80. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  81. package/lib/module/ui/utils/authHelpers.js +154 -0
  82. package/lib/module/ui/utils/authHelpers.js.map +1 -0
  83. package/lib/module/ui/utils/avatarUtils.js +18 -61
  84. package/lib/module/ui/utils/avatarUtils.js.map +1 -1
  85. package/lib/typescript/commonjs/crypto/keyManager.d.ts.map +1 -1
  86. package/lib/typescript/commonjs/index.d.ts +6 -0
  87. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  88. package/lib/typescript/commonjs/ui/components/BottomSheetRouter.d.ts +2 -7
  89. package/lib/typescript/commonjs/ui/components/BottomSheetRouter.d.ts.map +1 -1
  90. package/lib/typescript/commonjs/ui/components/GroupedItem.d.ts.map +1 -1
  91. package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
  92. package/lib/typescript/commonjs/ui/components/fileManagement/AnimatedButton.d.ts +16 -0
  93. package/lib/typescript/commonjs/ui/components/fileManagement/AnimatedButton.d.ts.map +1 -0
  94. package/lib/typescript/commonjs/ui/components/profile/EditBioModal.d.ts.map +1 -1
  95. package/lib/typescript/commonjs/ui/components/profile/EditDisplayNameModal.d.ts.map +1 -1
  96. package/lib/typescript/commonjs/ui/components/profile/EditEmailModal.d.ts.map +1 -1
  97. package/lib/typescript/commonjs/ui/components/profile/EditLocationModal.d.ts +1 -0
  98. package/lib/typescript/commonjs/ui/components/profile/EditLocationModal.d.ts.map +1 -1
  99. package/lib/typescript/commonjs/ui/components/profile/EditUsernameModal.d.ts.map +1 -1
  100. package/lib/typescript/commonjs/ui/hooks/mutations/mutationFactory.d.ts +76 -0
  101. package/lib/typescript/commonjs/ui/hooks/mutations/mutationFactory.d.ts.map +1 -0
  102. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts +29 -4
  103. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  104. package/lib/typescript/commonjs/ui/hooks/queries/useAccountQueries.d.ts +1 -1
  105. package/lib/typescript/commonjs/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
  106. package/lib/typescript/commonjs/ui/hooks/queries/useServicesQueries.d.ts +1 -1
  107. package/lib/typescript/commonjs/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  108. package/lib/typescript/commonjs/ui/hooks/useFileFiltering.d.ts +29 -0
  109. package/lib/typescript/commonjs/ui/hooks/useFileFiltering.d.ts.map +1 -0
  110. package/lib/typescript/commonjs/ui/navigation/bottomSheetManager.d.ts +11 -60
  111. package/lib/typescript/commonjs/ui/navigation/bottomSheetManager.d.ts.map +1 -1
  112. package/lib/typescript/commonjs/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  113. package/lib/typescript/commonjs/ui/utils/authHelpers.d.ts +99 -0
  114. package/lib/typescript/commonjs/ui/utils/authHelpers.d.ts.map +1 -0
  115. package/lib/typescript/commonjs/ui/utils/avatarUtils.d.ts.map +1 -1
  116. package/lib/typescript/module/crypto/keyManager.d.ts.map +1 -1
  117. package/lib/typescript/module/index.d.ts +6 -0
  118. package/lib/typescript/module/index.d.ts.map +1 -1
  119. package/lib/typescript/module/ui/components/BottomSheetRouter.d.ts +2 -7
  120. package/lib/typescript/module/ui/components/BottomSheetRouter.d.ts.map +1 -1
  121. package/lib/typescript/module/ui/components/GroupedItem.d.ts.map +1 -1
  122. package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
  123. package/lib/typescript/module/ui/components/fileManagement/AnimatedButton.d.ts +16 -0
  124. package/lib/typescript/module/ui/components/fileManagement/AnimatedButton.d.ts.map +1 -0
  125. package/lib/typescript/module/ui/components/profile/EditBioModal.d.ts.map +1 -1
  126. package/lib/typescript/module/ui/components/profile/EditDisplayNameModal.d.ts.map +1 -1
  127. package/lib/typescript/module/ui/components/profile/EditEmailModal.d.ts.map +1 -1
  128. package/lib/typescript/module/ui/components/profile/EditLocationModal.d.ts +1 -0
  129. package/lib/typescript/module/ui/components/profile/EditLocationModal.d.ts.map +1 -1
  130. package/lib/typescript/module/ui/components/profile/EditUsernameModal.d.ts.map +1 -1
  131. package/lib/typescript/module/ui/hooks/mutations/mutationFactory.d.ts +76 -0
  132. package/lib/typescript/module/ui/hooks/mutations/mutationFactory.d.ts.map +1 -0
  133. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts +29 -4
  134. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  135. package/lib/typescript/module/ui/hooks/queries/useAccountQueries.d.ts +1 -1
  136. package/lib/typescript/module/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
  137. package/lib/typescript/module/ui/hooks/queries/useServicesQueries.d.ts +1 -1
  138. package/lib/typescript/module/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  139. package/lib/typescript/module/ui/hooks/useFileFiltering.d.ts +29 -0
  140. package/lib/typescript/module/ui/hooks/useFileFiltering.d.ts.map +1 -0
  141. package/lib/typescript/module/ui/navigation/bottomSheetManager.d.ts +11 -60
  142. package/lib/typescript/module/ui/navigation/bottomSheetManager.d.ts.map +1 -1
  143. package/lib/typescript/module/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  144. package/lib/typescript/module/ui/utils/authHelpers.d.ts +99 -0
  145. package/lib/typescript/module/ui/utils/authHelpers.d.ts.map +1 -0
  146. package/lib/typescript/module/ui/utils/avatarUtils.d.ts.map +1 -1
  147. package/package.json +2 -2
  148. package/src/crypto/keyManager.ts +23 -22
  149. package/src/index.ts +25 -0
  150. package/src/ui/components/BottomSheetRouter.tsx +97 -319
  151. package/src/ui/components/GroupedItem.tsx +0 -4
  152. package/src/ui/components/OxyProvider.tsx +13 -18
  153. package/src/ui/components/fileManagement/AnimatedButton.tsx +56 -0
  154. package/src/ui/components/profile/EditBioModal.tsx +38 -176
  155. package/src/ui/components/profile/EditDisplayNameModal.tsx +48 -195
  156. package/src/ui/components/profile/EditEmailModal.tsx +49 -180
  157. package/src/ui/components/profile/EditLocationModal.tsx +76 -263
  158. package/src/ui/components/profile/EditUsernameModal.tsx +47 -175
  159. package/src/ui/hooks/mutations/mutationFactory.ts +215 -0
  160. package/src/ui/hooks/mutations/useAccountMutations.ts +48 -136
  161. package/src/ui/hooks/queries/useAccountQueries.ts +6 -33
  162. package/src/ui/hooks/queries/useServicesQueries.ts +6 -32
  163. package/src/ui/hooks/useFileFiltering.ts +115 -0
  164. package/src/ui/navigation/bottomSheetManager.ts +43 -150
  165. package/src/ui/screens/AccountSettingsScreen.tsx +0 -2
  166. package/src/ui/screens/FileManagementScreen.tsx +2 -2
  167. package/src/ui/utils/authHelpers.ts +183 -0
  168. package/src/ui/utils/avatarUtils.ts +25 -65
  169. package/lib/commonjs/ui/hooks/use-haptic-press.js +0 -21
  170. package/lib/commonjs/ui/hooks/use-haptic-press.js.map +0 -1
  171. package/lib/module/ui/hooks/use-haptic-press.js +0 -17
  172. package/lib/module/ui/hooks/use-haptic-press.js.map +0 -1
  173. package/lib/typescript/commonjs/ui/hooks/use-haptic-press.d.ts +0 -8
  174. package/lib/typescript/commonjs/ui/hooks/use-haptic-press.d.ts.map +0 -1
  175. package/lib/typescript/module/ui/hooks/use-haptic-press.d.ts +0 -8
  176. package/lib/typescript/module/ui/hooks/use-haptic-press.d.ts.map +0 -1
  177. package/src/ui/hooks/use-haptic-press.ts +0 -15
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Authentication helper utilities to reduce code duplication across hooks and utilities.
3
+ * These functions handle common token validation and authentication error patterns.
4
+ */
5
+ import type { OxyServices } from '../../core';
6
+ /**
7
+ * Error thrown when session sync is required
8
+ */
9
+ export declare class SessionSyncRequiredError extends Error {
10
+ constructor(message?: string);
11
+ }
12
+ /**
13
+ * Error thrown when authentication fails
14
+ */
15
+ export declare class AuthenticationFailedError extends Error {
16
+ constructor(message?: string);
17
+ }
18
+ /**
19
+ * Ensures a valid token exists before making authenticated API calls.
20
+ * If no valid token exists and an active session ID is available,
21
+ * attempts to refresh the token using the session.
22
+ *
23
+ * @param oxyServices - The OxyServices instance
24
+ * @param activeSessionId - The active session ID (if available)
25
+ * @throws {SessionSyncRequiredError} If the session needs to be synced (offline session)
26
+ * @throws {Error} If token refresh fails for other reasons
27
+ *
28
+ * @example
29
+ * ```ts
30
+ * // In a mutation or query function:
31
+ * await ensureValidToken(oxyServices, activeSessionId);
32
+ * return await oxyServices.updateProfile(updates);
33
+ * ```
34
+ */
35
+ export declare function ensureValidToken(oxyServices: OxyServices, activeSessionId: string | null | undefined): Promise<void>;
36
+ /**
37
+ * Options for handling API authentication errors
38
+ */
39
+ export interface HandleApiErrorOptions {
40
+ /** Optional callback to attempt session sync and retry */
41
+ syncSession?: () => Promise<unknown>;
42
+ /** The active session ID for retry attempts */
43
+ activeSessionId?: string | null;
44
+ /** The OxyServices instance for retry attempts */
45
+ oxyServices?: OxyServices;
46
+ }
47
+ /**
48
+ * Checks if an error is an authentication error (401 or auth-related message)
49
+ *
50
+ * @param error - The error to check
51
+ * @returns True if the error is an authentication error
52
+ */
53
+ export declare function isAuthenticationError(error: unknown): boolean;
54
+ /**
55
+ * Wraps an API call with authentication error handling.
56
+ * If an authentication error occurs, it can optionally attempt to sync the session and retry.
57
+ *
58
+ * @param apiCall - The API call function to execute
59
+ * @param options - Optional error handling configuration
60
+ * @returns The result of the API call
61
+ * @throws {AuthenticationFailedError} If authentication fails and cannot be recovered
62
+ * @throws {Error} If the API call fails for non-auth reasons
63
+ *
64
+ * @example
65
+ * ```ts
66
+ * // Simple usage:
67
+ * const result = await withAuthErrorHandling(
68
+ * () => oxyServices.updateProfile(updates)
69
+ * );
70
+ *
71
+ * // With retry on auth failure:
72
+ * const result = await withAuthErrorHandling(
73
+ * () => oxyServices.updateProfile(updates),
74
+ * { syncSession, activeSessionId, oxyServices }
75
+ * );
76
+ * ```
77
+ */
78
+ export declare function withAuthErrorHandling<T>(apiCall: () => Promise<T>, options?: HandleApiErrorOptions): Promise<T>;
79
+ /**
80
+ * Combines token validation and auth error handling for a complete authenticated API call.
81
+ * This is the recommended helper for most authenticated API operations.
82
+ *
83
+ * @param oxyServices - The OxyServices instance
84
+ * @param activeSessionId - The active session ID
85
+ * @param apiCall - The API call function to execute
86
+ * @param syncSession - Optional callback to sync session on auth failure
87
+ * @returns The result of the API call
88
+ *
89
+ * @example
90
+ * ```ts
91
+ * return await authenticatedApiCall(
92
+ * oxyServices,
93
+ * activeSessionId,
94
+ * () => oxyServices.updateProfile(updates)
95
+ * );
96
+ * ```
97
+ */
98
+ export declare function authenticatedApiCall<T>(oxyServices: OxyServices, activeSessionId: string | null | undefined, apiCall: () => Promise<T>, syncSession?: () => Promise<unknown>): Promise<T>;
99
+ //# sourceMappingURL=authHelpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authHelpers.d.ts","sourceRoot":"","sources":["../../../../../src/ui/utils/authHelpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,OAAO,SAAkD;CAItE;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,KAAK;gBACtC,OAAO,SAAiD;CAIrE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACzC,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACrC,+CAA+C;IAC/C,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,kDAAkD;IAClD,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAc7D;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,qBAAqB,CAAC,CAAC,EAC3C,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACzB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,CAAC,CAAC,CAsBZ;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC1C,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACzB,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GACnC,OAAO,CAAC,CAAC,CAAC,CAQZ"}
@@ -1 +1 @@
1
- {"version":3,"file":"avatarUtils.d.ts","sourceRoot":"","sources":["../../../../../src/ui/utils/avatarUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAGpD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,WAAW,EAAE,WAAW,EACxB,WAAW,GAAE,MAAsB,GAClC,OAAO,CAAC,IAAI,CAAC,CAcf;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,WAAW,GACvB,IAAI,CAON;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,EACtB,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,MAAM,GAAG,IAAI,EAC9B,WAAW,EAAE,WAAW,EACxB,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC,CAoEf"}
1
+ {"version":3,"file":"avatarUtils.d.ts","sourceRoot":"","sources":["../../../../../src/ui/utils/avatarUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAGpD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIpD;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,WAAW,EAAE,WAAW,EACxB,WAAW,GAAE,MAAsB,GAClC,OAAO,CAAC,IAAI,CAAC,CAcf;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,WAAW,GACvB,IAAI,CAON;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,EACtB,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,MAAM,GAAG,IAAI,EAC9B,WAAW,EAAE,WAAW,EACxB,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC,CA2Bf"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxyhq/services",
3
- "version": "5.21.5",
3
+ "version": "5.21.7",
4
4
  "description": "Reusable OxyHQ module to handle authentication, user management, karma system, device-based session management and more 🚀",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -252,4 +252,4 @@
252
252
  "react-native-gesture-handler": "~2.28.0",
253
253
  "react-native-reanimated": "~4.1.1"
254
254
  }
255
- }
255
+ }
@@ -8,6 +8,7 @@
8
8
  import { ec as EC } from 'elliptic';
9
9
  import type { ECKeyPair } from 'elliptic';
10
10
  import { Platform } from 'react-native';
11
+ import { logger } from '../utils/loggerUtils';
11
12
 
12
13
  // Lazy imports for React Native specific modules
13
14
  let SecureStore: typeof import('expo-secure-store') | null = null;
@@ -243,7 +244,7 @@ export class KeyManager {
243
244
  KeyManager.cachedHasSharedIdentity = true;
244
245
 
245
246
  if (__DEV__) {
246
- console.log('[KeyManager] Shared identity created successfully');
247
+ logger.debug('Shared identity created successfully', { component: 'KeyManager' });
247
248
  }
248
249
 
249
250
  return publicKey;
@@ -282,7 +283,7 @@ export class KeyManager {
282
283
  return publicKey;
283
284
  } catch (error) {
284
285
  if (__DEV__) {
285
- console.warn('[KeyManager] Failed to get shared public key:', error);
286
+ logger.warn('Failed to get shared public key', { component: 'KeyManager' }, error);
286
287
  }
287
288
  KeyManager.cachedSharedPublicKey = null;
288
289
  return null;
@@ -317,7 +318,7 @@ export class KeyManager {
317
318
  return privateKey;
318
319
  } catch (error) {
319
320
  if (__DEV__) {
320
- console.warn('[KeyManager] Failed to get shared private key:', error);
321
+ logger.warn('Failed to get shared private key', { component: 'KeyManager' }, error);
321
322
  }
322
323
  return null;
323
324
  }
@@ -348,7 +349,7 @@ export class KeyManager {
348
349
  return hasShared;
349
350
  } catch (error) {
350
351
  if (__DEV__) {
351
- console.warn('[KeyManager] Failed to check shared identity:', error);
352
+ logger.warn('Failed to check shared identity', { component: 'KeyManager' }, error);
352
353
  }
353
354
  KeyManager.cachedHasSharedIdentity = false;
354
355
  return false;
@@ -397,7 +398,7 @@ export class KeyManager {
397
398
  KeyManager.cachedHasSharedIdentity = true;
398
399
 
399
400
  if (__DEV__) {
400
- console.log('[KeyManager] Shared identity imported successfully');
401
+ logger.debug('Shared identity imported successfully', { component: 'KeyManager' });
401
402
  }
402
403
 
403
404
  return publicKey;
@@ -436,11 +437,11 @@ export class KeyManager {
436
437
  }
437
438
 
438
439
  if (__DEV__) {
439
- console.log('[KeyManager] Shared session stored successfully');
440
+ logger.debug('Shared session stored successfully', { component: 'KeyManager' });
440
441
  }
441
442
  } catch (error) {
442
443
  if (__DEV__) {
443
- console.error('[KeyManager] Failed to store shared session:', error);
444
+ logger.error('Failed to store shared session', error, { component: 'KeyManager' });
444
445
  }
445
446
  throw error;
446
447
  }
@@ -484,7 +485,7 @@ export class KeyManager {
484
485
  return { sessionId, accessToken };
485
486
  } catch (error) {
486
487
  if (__DEV__) {
487
- console.warn('[KeyManager] Failed to get shared session:', error);
488
+ logger.warn('Failed to get shared session', { component: 'KeyManager' }, error);
488
489
  }
489
490
  return null;
490
491
  }
@@ -517,11 +518,11 @@ export class KeyManager {
517
518
  }
518
519
 
519
520
  if (__DEV__) {
520
- console.log('[KeyManager] Shared session cleared successfully');
521
+ logger.debug('Shared session cleared successfully', { component: 'KeyManager' });
521
522
  }
522
523
  } catch (error) {
523
524
  if (__DEV__) {
524
- console.error('[KeyManager] Failed to clear shared session:', error);
525
+ logger.error('Failed to clear shared session', error, { component: 'KeyManager' });
525
526
  }
526
527
  }
527
528
  }
@@ -545,7 +546,7 @@ export class KeyManager {
545
546
  const hasShared = await KeyManager.hasSharedIdentity();
546
547
  if (hasShared) {
547
548
  if (__DEV__) {
548
- console.log('[KeyManager] Shared identity already exists, skipping migration');
549
+ logger.debug('Shared identity already exists, skipping migration', { component: 'KeyManager' });
549
550
  }
550
551
  return true;
551
552
  }
@@ -554,7 +555,7 @@ export class KeyManager {
554
555
  const privateKey = await KeyManager.getPrivateKey();
555
556
  if (!privateKey) {
556
557
  if (__DEV__) {
557
- console.log('[KeyManager] No local identity to migrate');
558
+ logger.debug('No local identity to migrate', { component: 'KeyManager' });
558
559
  }
559
560
  return false;
560
561
  }
@@ -563,13 +564,13 @@ export class KeyManager {
563
564
  await KeyManager.importSharedIdentity(privateKey);
564
565
 
565
566
  if (__DEV__) {
566
- console.log('[KeyManager] Successfully migrated local identity to shared identity');
567
+ logger.debug('Successfully migrated local identity to shared identity', { component: 'KeyManager' });
567
568
  }
568
569
 
569
570
  return true;
570
571
  } catch (error) {
571
572
  if (__DEV__) {
572
- console.error('[KeyManager] Failed to migrate to shared identity:', error);
573
+ logger.error('Failed to migrate to shared identity', error, { component: 'KeyManager' });
573
574
  }
574
575
  return false;
575
576
  }
@@ -640,7 +641,7 @@ export class KeyManager {
640
641
  // If secure store is not available, return null (no identity)
641
642
  // This allows the app to continue functioning even if secure store fails to load
642
643
  if (__DEV__) {
643
- console.warn('[KeyManager] Failed to access secure store:', error);
644
+ logger.warn('Failed to access secure store', { component: 'KeyManager' }, error);
644
645
  }
645
646
  return null;
646
647
  }
@@ -670,7 +671,7 @@ export class KeyManager {
670
671
  // Cache null to avoid repeated failed attempts
671
672
  KeyManager.cachedPublicKey = null;
672
673
  if (__DEV__) {
673
- console.warn('[KeyManager] Failed to access secure store:', error);
674
+ logger.warn('Failed to access secure store', { component: 'KeyManager' }, error);
674
675
  }
675
676
  return null;
676
677
  }
@@ -700,7 +701,7 @@ export class KeyManager {
700
701
  // Cache false to avoid repeated failed attempts
701
702
  KeyManager.cachedHasIdentity = false;
702
703
  if (__DEV__) {
703
- console.warn('[KeyManager] Failed to check identity:', error);
704
+ logger.warn('Failed to check identity', { component: 'KeyManager' }, error);
704
705
  }
705
706
  return false;
706
707
  }
@@ -741,11 +742,11 @@ export class KeyManager {
741
742
  try {
742
743
  const backupSuccess = await KeyManager.backupIdentity();
743
744
  if (!backupSuccess && typeof __DEV__ !== 'undefined' && __DEV__) {
744
- console.warn('[KeyManager] Failed to backup identity before deletion - proceeding anyway');
745
+ logger.warn('Failed to backup identity before deletion - proceeding anyway', { component: 'KeyManager' });
745
746
  }
746
747
  } catch (backupError) {
747
748
  if (typeof __DEV__ !== 'undefined' && __DEV__) {
748
- console.warn('[KeyManager] Failed to backup identity before deletion:', backupError);
749
+ logger.warn('Failed to backup identity before deletion', { component: 'KeyManager' }, backupError);
749
750
  }
750
751
  }
751
752
  }
@@ -795,7 +796,7 @@ export class KeyManager {
795
796
  return true;
796
797
  } catch (error) {
797
798
  if (typeof __DEV__ !== 'undefined' && __DEV__) {
798
- console.error('[KeyManager] Failed to backup identity:', error);
799
+ logger.error('Failed to backup identity', error, { component: 'KeyManager' });
799
800
  }
800
801
  return false;
801
802
  }
@@ -841,7 +842,7 @@ export class KeyManager {
841
842
  return true;
842
843
  } catch (error) {
843
844
  if (typeof __DEV__ !== 'undefined' && __DEV__) {
844
- console.error('[KeyManager] Identity integrity check failed:', error);
845
+ logger.error('Identity integrity check failed', error, { component: 'KeyManager' });
845
846
  }
846
847
  return false;
847
848
  }
@@ -898,7 +899,7 @@ export class KeyManager {
898
899
  return false;
899
900
  } catch (error) {
900
901
  if (typeof __DEV__ !== 'undefined' && __DEV__) {
901
- console.error('[KeyManager] Failed to restore identity from backup:', error);
902
+ logger.error('Failed to restore identity from backup', error, { component: 'KeyManager' });
902
903
  }
903
904
  return false;
904
905
  }
package/src/index.ts CHANGED
@@ -183,6 +183,31 @@ export {
183
183
  useRemoveDevice,
184
184
  } from './ui/hooks/mutations';
185
185
 
186
+ // Mutation factory utilities
187
+ export {
188
+ createProfileMutation,
189
+ createGenericMutation,
190
+ } from './ui/hooks/mutations/mutationFactory';
191
+ export type {
192
+ ProfileMutationConfig,
193
+ GenericMutationConfig,
194
+ } from './ui/hooks/mutations/mutationFactory';
195
+
196
+ // Authentication helpers
197
+ export {
198
+ ensureValidToken,
199
+ withAuthErrorHandling,
200
+ authenticatedApiCall,
201
+ isAuthenticationError,
202
+ SessionSyncRequiredError,
203
+ AuthenticationFailedError,
204
+ } from './ui/utils/authHelpers';
205
+ export type { HandleApiErrorOptions } from './ui/utils/authHelpers';
206
+
207
+ // File filtering hook
208
+ export { useFileFiltering } from './ui/hooks/useFileFiltering';
209
+ export type { ViewMode, SortBy, SortOrder } from './ui/hooks/useFileFiltering';
210
+
186
211
  // UI components
187
212
  export { OxySignInButton } from './ui/components/OxySignInButton';
188
213
  export { OxyLogo, FollowButton } from './ui';