@oxyhq/services 5.16.44 → 5.17.0

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 (506) hide show
  1. package/README.md +29 -10
  2. package/lib/commonjs/core/OxyServices.js +1 -1
  3. package/lib/commonjs/core/index.js +20 -15
  4. package/lib/commonjs/core/index.js.map +1 -1
  5. package/lib/commonjs/core/mixins/OxyServices.auth.js +36 -53
  6. package/lib/commonjs/core/mixins/OxyServices.auth.js.map +1 -1
  7. package/lib/commonjs/core/mixins/OxyServices.user.js +10 -17
  8. package/lib/commonjs/core/mixins/OxyServices.user.js.map +1 -1
  9. package/lib/commonjs/core/services/TokenService.js +27 -13
  10. package/lib/commonjs/core/services/TokenService.js.map +1 -1
  11. package/lib/commonjs/crypto/index.js +0 -16
  12. package/lib/commonjs/crypto/index.js.map +1 -1
  13. package/lib/commonjs/crypto/keyManager.js +21 -22
  14. package/lib/commonjs/crypto/keyManager.js.map +1 -1
  15. package/lib/commonjs/crypto/polyfill.js +1 -10
  16. package/lib/commonjs/crypto/polyfill.js.map +1 -1
  17. package/lib/commonjs/crypto/signatureService.js +18 -32
  18. package/lib/commonjs/crypto/signatureService.js.map +1 -1
  19. package/lib/commonjs/index.js +13 -134
  20. package/lib/commonjs/index.js.map +1 -1
  21. package/lib/commonjs/models/interfaces.js +0 -7
  22. package/lib/commonjs/models/interfaces.js.map +1 -1
  23. package/lib/commonjs/node/index.js +1 -10
  24. package/lib/commonjs/node/index.js.map +1 -1
  25. package/lib/commonjs/ui/components/BottomSheetRouter.js +1 -9
  26. package/lib/commonjs/ui/components/BottomSheetRouter.js.map +1 -1
  27. package/lib/commonjs/ui/context/OxyContext.js +779 -450
  28. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  29. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +551 -0
  30. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -0
  31. package/lib/commonjs/ui/context/hooks/useDeviceManagement.js +73 -0
  32. package/lib/commonjs/ui/context/hooks/useDeviceManagement.js.map +1 -0
  33. package/lib/commonjs/ui/context/hooks/useStorage.js +79 -0
  34. package/lib/commonjs/ui/context/hooks/useStorage.js.map +1 -0
  35. package/lib/commonjs/ui/hooks/index.js +0 -20
  36. package/lib/commonjs/ui/hooks/index.js.map +1 -1
  37. package/lib/commonjs/ui/hooks/mutations/index.js +0 -12
  38. package/lib/commonjs/ui/hooks/mutations/index.js.map +1 -1
  39. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +23 -74
  40. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  41. package/lib/commonjs/ui/hooks/queries/index.js +0 -12
  42. package/lib/commonjs/ui/hooks/queries/index.js.map +1 -1
  43. package/lib/commonjs/ui/hooks/queries/queryKeys.js +1 -3
  44. package/lib/commonjs/ui/hooks/queries/queryKeys.js.map +1 -1
  45. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +28 -64
  46. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -1
  47. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js +6 -4
  48. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js.map +1 -1
  49. package/lib/commonjs/ui/hooks/useDeviceManagement.js +73 -0
  50. package/lib/commonjs/ui/hooks/useDeviceManagement.js.map +1 -0
  51. package/lib/commonjs/ui/hooks/useProfileEditing.js +5 -3
  52. package/lib/commonjs/ui/hooks/useProfileEditing.js.map +1 -1
  53. package/lib/commonjs/ui/hooks/useSessionManagement.js +284 -0
  54. package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -0
  55. package/lib/commonjs/ui/index.js +2 -10
  56. package/lib/commonjs/ui/index.js.map +1 -1
  57. package/lib/commonjs/ui/navigation/routes.js +1 -5
  58. package/lib/commonjs/ui/navigation/routes.js.map +1 -1
  59. package/lib/commonjs/ui/screens/AccountCenterScreen.js +4 -9
  60. package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -1
  61. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +19 -37
  62. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  63. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +5 -5
  64. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -1
  65. package/lib/commonjs/ui/screens/OxyAuthScreen.js +15 -2
  66. package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -1
  67. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +97 -76
  68. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
  69. package/lib/commonjs/ui/screens/ProfileScreen.js +6 -6
  70. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  71. package/lib/commonjs/ui/stores/authStore.js +6 -54
  72. package/lib/commonjs/ui/stores/authStore.js.map +1 -1
  73. package/lib/commonjs/ui/styles/spacing.js +2 -54
  74. package/lib/commonjs/ui/styles/spacing.js.map +1 -1
  75. package/lib/commonjs/ui/utils/avatarUtils.js +12 -9
  76. package/lib/commonjs/ui/utils/avatarUtils.js.map +1 -1
  77. package/lib/commonjs/ui/utils/sessionHelpers.js +1 -7
  78. package/lib/commonjs/ui/utils/sessionHelpers.js.map +1 -1
  79. package/lib/commonjs/utils/deviceManager.js +177 -0
  80. package/lib/commonjs/utils/deviceManager.js.map +1 -0
  81. package/lib/commonjs/utils/errorUtils.js +0 -13
  82. package/lib/commonjs/utils/errorUtils.js.map +1 -1
  83. package/lib/commonjs/utils/index.js +7 -0
  84. package/lib/commonjs/utils/index.js.map +1 -1
  85. package/lib/commonjs/utils/sessionUtils.js +1 -8
  86. package/lib/commonjs/utils/sessionUtils.js.map +1 -1
  87. package/lib/commonjs/utils/validationUtils.js +1 -15
  88. package/lib/commonjs/utils/validationUtils.js.map +1 -1
  89. package/lib/module/core/OxyServices.js +1 -1
  90. package/lib/module/core/index.js +4 -6
  91. package/lib/module/core/index.js.map +1 -1
  92. package/lib/module/core/mixins/OxyServices.auth.js +36 -53
  93. package/lib/module/core/mixins/OxyServices.auth.js.map +1 -1
  94. package/lib/module/core/mixins/OxyServices.user.js +10 -17
  95. package/lib/module/core/mixins/OxyServices.user.js.map +1 -1
  96. package/lib/module/core/services/TokenService.js +27 -13
  97. package/lib/module/core/services/TokenService.js.map +1 -1
  98. package/lib/module/crypto/index.js +0 -3
  99. package/lib/module/crypto/index.js.map +1 -1
  100. package/lib/module/crypto/keyManager.js +21 -22
  101. package/lib/module/crypto/keyManager.js.map +1 -1
  102. package/lib/module/crypto/polyfill.js +1 -2
  103. package/lib/module/crypto/polyfill.js.map +1 -1
  104. package/lib/module/crypto/signatureService.js +18 -32
  105. package/lib/module/crypto/signatureService.js.map +1 -1
  106. package/lib/module/index.js +7 -19
  107. package/lib/module/index.js.map +1 -1
  108. package/lib/module/models/interfaces.js +0 -7
  109. package/lib/module/models/interfaces.js.map +1 -1
  110. package/lib/module/node/index.js +0 -3
  111. package/lib/module/node/index.js.map +1 -1
  112. package/lib/module/ui/components/BottomSheetRouter.js +2 -6
  113. package/lib/module/ui/components/BottomSheetRouter.js.map +1 -1
  114. package/lib/module/ui/context/OxyContext.js +779 -450
  115. package/lib/module/ui/context/OxyContext.js.map +1 -1
  116. package/lib/module/ui/context/hooks/useAuthOperations.js +545 -0
  117. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -0
  118. package/lib/module/ui/context/hooks/useDeviceManagement.js +68 -0
  119. package/lib/module/ui/context/hooks/useDeviceManagement.js.map +1 -0
  120. package/lib/module/ui/context/hooks/useStorage.js +74 -0
  121. package/lib/module/ui/context/hooks/useStorage.js.map +1 -0
  122. package/lib/module/ui/hooks/index.js +0 -1
  123. package/lib/module/ui/hooks/index.js.map +1 -1
  124. package/lib/module/ui/hooks/mutations/index.js +1 -1
  125. package/lib/module/ui/hooks/mutations/index.js.map +1 -1
  126. package/lib/module/ui/hooks/mutations/useAccountMutations.js +21 -71
  127. package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  128. package/lib/module/ui/hooks/queries/index.js +1 -1
  129. package/lib/module/ui/hooks/queries/index.js.map +1 -1
  130. package/lib/module/ui/hooks/queries/queryKeys.js +1 -3
  131. package/lib/module/ui/hooks/queries/queryKeys.js.map +1 -1
  132. package/lib/module/ui/hooks/queries/useAccountQueries.js +27 -61
  133. package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -1
  134. package/lib/module/ui/hooks/queries/useServicesQueries.js +6 -4
  135. package/lib/module/ui/hooks/queries/useServicesQueries.js.map +1 -1
  136. package/lib/module/ui/hooks/useDeviceManagement.js +68 -0
  137. package/lib/module/ui/hooks/useDeviceManagement.js.map +1 -0
  138. package/lib/module/ui/hooks/useProfileEditing.js +5 -3
  139. package/lib/module/ui/hooks/useProfileEditing.js.map +1 -1
  140. package/lib/module/ui/hooks/useSessionManagement.js +279 -0
  141. package/lib/module/ui/hooks/useSessionManagement.js.map +1 -0
  142. package/lib/module/ui/index.js +1 -2
  143. package/lib/module/ui/index.js.map +1 -1
  144. package/lib/module/ui/navigation/routes.js +1 -5
  145. package/lib/module/ui/navigation/routes.js.map +1 -1
  146. package/lib/module/ui/screens/AccountCenterScreen.js +4 -9
  147. package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -1
  148. package/lib/module/ui/screens/AccountSettingsScreen.js +19 -37
  149. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  150. package/lib/module/ui/screens/AccountSwitcherScreen.js +5 -5
  151. package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -1
  152. package/lib/module/ui/screens/OxyAuthScreen.js +15 -2
  153. package/lib/module/ui/screens/OxyAuthScreen.js.map +1 -1
  154. package/lib/module/ui/screens/PrivacySettingsScreen.js +98 -77
  155. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  156. package/lib/module/ui/screens/ProfileScreen.js +6 -6
  157. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  158. package/lib/module/ui/stores/authStore.js +6 -54
  159. package/lib/module/ui/stores/authStore.js.map +1 -1
  160. package/lib/module/ui/styles/spacing.js +2 -6
  161. package/lib/module/ui/styles/spacing.js.map +1 -1
  162. package/lib/module/ui/utils/avatarUtils.js +12 -9
  163. package/lib/module/ui/utils/avatarUtils.js.map +1 -1
  164. package/lib/module/ui/utils/sessionHelpers.js +1 -7
  165. package/lib/module/ui/utils/sessionHelpers.js.map +1 -1
  166. package/lib/module/utils/deviceManager.js +171 -0
  167. package/lib/module/utils/deviceManager.js.map +1 -0
  168. package/lib/module/utils/errorUtils.js +0 -7
  169. package/lib/module/utils/errorUtils.js.map +1 -1
  170. package/lib/module/utils/index.js +1 -2
  171. package/lib/module/utils/index.js.map +1 -1
  172. package/lib/module/utils/sessionUtils.js +1 -8
  173. package/lib/module/utils/sessionUtils.js.map +1 -1
  174. package/lib/module/utils/validationUtils.js +0 -13
  175. package/lib/module/utils/validationUtils.js.map +1 -1
  176. package/lib/typescript/core/OxyServices.d.ts +1 -1
  177. package/lib/typescript/core/index.d.ts +3 -3
  178. package/lib/typescript/core/index.d.ts.map +1 -1
  179. package/lib/typescript/core/mixins/OxyServices.auth.d.ts +21 -44
  180. package/lib/typescript/core/mixins/OxyServices.auth.d.ts.map +1 -1
  181. package/lib/typescript/core/mixins/OxyServices.user.d.ts +1 -0
  182. package/lib/typescript/core/mixins/OxyServices.user.d.ts.map +1 -1
  183. package/lib/typescript/core/mixins/index.d.ts +8 -15
  184. package/lib/typescript/core/mixins/index.d.ts.map +1 -1
  185. package/lib/typescript/core/services/TokenService.d.ts.map +1 -1
  186. package/lib/typescript/crypto/index.d.ts +0 -1
  187. package/lib/typescript/crypto/index.d.ts.map +1 -1
  188. package/lib/typescript/crypto/keyManager.d.ts +2 -15
  189. package/lib/typescript/crypto/keyManager.d.ts.map +1 -1
  190. package/lib/typescript/crypto/polyfill.d.ts +1 -2
  191. package/lib/typescript/crypto/polyfill.d.ts.map +1 -1
  192. package/lib/typescript/crypto/signatureService.d.ts +0 -13
  193. package/lib/typescript/crypto/signatureService.d.ts.map +1 -1
  194. package/lib/typescript/index.d.ts +7 -12
  195. package/lib/typescript/index.d.ts.map +1 -1
  196. package/lib/typescript/models/interfaces.d.ts +36 -5
  197. package/lib/typescript/models/interfaces.d.ts.map +1 -1
  198. package/lib/typescript/models/session.d.ts +18 -3
  199. package/lib/typescript/models/session.d.ts.map +1 -1
  200. package/lib/typescript/node/index.d.ts +0 -1
  201. package/lib/typescript/node/index.d.ts.map +1 -1
  202. package/lib/typescript/ui/components/BottomSheetRouter.d.ts +0 -5
  203. package/lib/typescript/ui/components/BottomSheetRouter.d.ts.map +1 -1
  204. package/lib/typescript/ui/components/TextField/Addons/Outline.d.ts +2 -2
  205. package/lib/typescript/ui/components/TextField/helpers.d.ts +2 -2
  206. package/lib/typescript/ui/components/TextField/types.d.ts +0 -1
  207. package/lib/typescript/ui/components/TextField/types.d.ts.map +1 -1
  208. package/lib/typescript/ui/context/OxyContext.d.ts +28 -5
  209. package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
  210. package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts +59 -0
  211. package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts.map +1 -0
  212. package/lib/typescript/ui/context/hooks/useDeviceManagement.d.ts +27 -0
  213. package/lib/typescript/ui/context/hooks/useDeviceManagement.d.ts.map +1 -0
  214. package/lib/typescript/ui/context/hooks/useStorage.d.ts +22 -0
  215. package/lib/typescript/ui/context/hooks/useStorage.d.ts.map +1 -0
  216. package/lib/typescript/ui/hooks/index.d.ts +0 -1
  217. package/lib/typescript/ui/hooks/index.d.ts.map +1 -1
  218. package/lib/typescript/ui/hooks/mutations/index.d.ts +1 -1
  219. package/lib/typescript/ui/hooks/mutations/index.d.ts.map +1 -1
  220. package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts +8 -19
  221. package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  222. package/lib/typescript/ui/hooks/mutations/useServicesMutations.d.ts +1 -1
  223. package/lib/typescript/ui/hooks/mutations/useServicesMutations.d.ts.map +1 -1
  224. package/lib/typescript/ui/hooks/queries/index.d.ts +1 -1
  225. package/lib/typescript/ui/hooks/queries/index.d.ts.map +1 -1
  226. package/lib/typescript/ui/hooks/queries/queryKeys.d.ts +0 -2
  227. package/lib/typescript/ui/hooks/queries/queryKeys.d.ts.map +1 -1
  228. package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts +5 -17
  229. package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
  230. package/lib/typescript/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  231. package/lib/typescript/ui/hooks/useDeviceManagement.d.ts +27 -0
  232. package/lib/typescript/ui/hooks/useDeviceManagement.d.ts.map +1 -0
  233. package/lib/typescript/ui/hooks/useProfileEditing.d.ts.map +1 -1
  234. package/lib/typescript/ui/hooks/useSessionManagement.d.ts +41 -0
  235. package/lib/typescript/ui/hooks/useSessionManagement.d.ts.map +1 -0
  236. package/lib/typescript/ui/index.d.ts +0 -1
  237. package/lib/typescript/ui/index.d.ts.map +1 -1
  238. package/lib/typescript/ui/navigation/routes.d.ts +1 -1
  239. package/lib/typescript/ui/navigation/routes.d.ts.map +1 -1
  240. package/lib/typescript/ui/screens/AccountCenterScreen.d.ts.map +1 -1
  241. package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  242. package/lib/typescript/ui/screens/OxyAuthScreen.d.ts.map +1 -1
  243. package/lib/typescript/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  244. package/lib/typescript/ui/stores/authStore.d.ts +1 -8
  245. package/lib/typescript/ui/stores/authStore.d.ts.map +1 -1
  246. package/lib/typescript/ui/styles/spacing.d.ts +0 -5
  247. package/lib/typescript/ui/styles/spacing.d.ts.map +1 -1
  248. package/lib/typescript/ui/utils/avatarUtils.d.ts +4 -1
  249. package/lib/typescript/ui/utils/avatarUtils.d.ts.map +1 -1
  250. package/lib/typescript/ui/utils/sessionHelpers.d.ts +0 -1
  251. package/lib/typescript/ui/utils/sessionHelpers.d.ts.map +1 -1
  252. package/lib/typescript/utils/deviceManager.d.ts +66 -0
  253. package/lib/typescript/utils/deviceManager.d.ts.map +1 -0
  254. package/lib/typescript/utils/errorUtils.d.ts +0 -6
  255. package/lib/typescript/utils/errorUtils.d.ts.map +1 -1
  256. package/lib/typescript/utils/index.d.ts +2 -0
  257. package/lib/typescript/utils/index.d.ts.map +1 -1
  258. package/lib/typescript/utils/sessionUtils.d.ts.map +1 -1
  259. package/lib/typescript/utils/validationUtils.d.ts +0 -8
  260. package/lib/typescript/utils/validationUtils.d.ts.map +1 -1
  261. package/package.json +1 -6
  262. package/src/core/OxyServices.ts +1 -1
  263. package/src/core/index.ts +5 -8
  264. package/src/core/mixins/OxyServices.auth.ts +44 -87
  265. package/src/core/mixins/OxyServices.user.ts +10 -18
  266. package/src/core/services/TokenService.ts +27 -16
  267. package/src/crypto/index.ts +1 -3
  268. package/src/crypto/keyManager.ts +21 -30
  269. package/src/crypto/polyfill.ts +1 -2
  270. package/src/crypto/signatureService.ts +19 -43
  271. package/src/index.ts +6 -41
  272. package/src/models/interfaces.ts +39 -12
  273. package/src/models/session.ts +19 -7
  274. package/src/node/index.ts +0 -3
  275. package/src/ui/components/BottomSheetRouter.tsx +1 -6
  276. package/src/ui/components/TextField/Addons/Outline.tsx +2 -2
  277. package/src/ui/components/TextField/helpers.tsx +2 -2
  278. package/src/ui/components/TextField/types.tsx +1 -1
  279. package/src/ui/context/OxyContext.tsx +831 -463
  280. package/src/ui/context/hooks/useAuthOperations.ts +620 -0
  281. package/src/ui/context/hooks/useDeviceManagement.ts +108 -0
  282. package/src/ui/context/hooks/useStorage.ts +104 -0
  283. package/src/ui/hooks/index.ts +1 -2
  284. package/src/ui/hooks/mutations/index.ts +0 -2
  285. package/src/ui/hooks/mutations/useAccountMutations.ts +20 -66
  286. package/src/ui/hooks/queries/index.ts +0 -2
  287. package/src/ui/hooks/queries/queryKeys.ts +0 -2
  288. package/src/ui/hooks/queries/useAccountQueries.ts +19 -53
  289. package/src/ui/hooks/queries/useServicesQueries.ts +5 -5
  290. package/src/ui/hooks/useDeviceManagement.ts +108 -0
  291. package/src/ui/hooks/useProfileEditing.ts +3 -3
  292. package/src/ui/hooks/useSessionManagement.ts +405 -0
  293. package/src/ui/index.ts +1 -2
  294. package/src/ui/navigation/routes.ts +2 -6
  295. package/src/ui/screens/AccountCenterScreen.tsx +4 -9
  296. package/src/ui/screens/AccountSettingsScreen.tsx +31 -49
  297. package/src/ui/screens/AccountSwitcherScreen.tsx +5 -5
  298. package/src/ui/screens/OxyAuthScreen.tsx +19 -4
  299. package/src/ui/screens/PrivacySettingsScreen.tsx +101 -67
  300. package/src/ui/screens/ProfileScreen.tsx +10 -10
  301. package/src/ui/stores/authStore.ts +8 -48
  302. package/src/ui/styles/spacing.ts +2 -15
  303. package/src/ui/utils/avatarUtils.ts +21 -19
  304. package/src/ui/utils/sessionHelpers.ts +0 -7
  305. package/src/utils/__tests__/validationUtils.test.ts +1 -16
  306. package/src/utils/deviceManager.ts +198 -0
  307. package/src/utils/errorUtils.ts +1 -8
  308. package/src/utils/index.ts +2 -1
  309. package/src/utils/sessionUtils.ts +0 -8
  310. package/src/utils/validationUtils.ts +0 -12
  311. package/lib/commonjs/adapters/expo/crypto.js +0 -56
  312. package/lib/commonjs/adapters/expo/crypto.js.map +0 -1
  313. package/lib/commonjs/adapters/expo/fetch.js +0 -30
  314. package/lib/commonjs/adapters/expo/fetch.js.map +0 -1
  315. package/lib/commonjs/adapters/expo/index.js +0 -48
  316. package/lib/commonjs/adapters/expo/index.js.map +0 -1
  317. package/lib/commonjs/adapters/expo/storage.js +0 -201
  318. package/lib/commonjs/adapters/expo/storage.js.map +0 -1
  319. package/lib/commonjs/adapters/index.js +0 -48
  320. package/lib/commonjs/adapters/index.js.map +0 -1
  321. package/lib/commonjs/adapters/node/crypto.js +0 -40
  322. package/lib/commonjs/adapters/node/crypto.js.map +0 -1
  323. package/lib/commonjs/adapters/node/fetch.js +0 -62
  324. package/lib/commonjs/adapters/node/fetch.js.map +0 -1
  325. package/lib/commonjs/adapters/node/index.js +0 -34
  326. package/lib/commonjs/adapters/node/index.js.map +0 -1
  327. package/lib/commonjs/adapters/node/storage.js +0 -163
  328. package/lib/commonjs/adapters/node/storage.js.map +0 -1
  329. package/lib/commonjs/core/identity-session/DeviceManager.js +0 -237
  330. package/lib/commonjs/core/identity-session/DeviceManager.js.map +0 -1
  331. package/lib/commonjs/core/identity-session/INTEGRATION_GUIDE.md +0 -287
  332. package/lib/commonjs/core/identity-session/IdentityManager.js +0 -400
  333. package/lib/commonjs/core/identity-session/IdentityManager.js.map +0 -1
  334. package/lib/commonjs/core/identity-session/IdentitySessionCore.js +0 -394
  335. package/lib/commonjs/core/identity-session/IdentitySessionCore.js.map +0 -1
  336. package/lib/commonjs/core/identity-session/RefreshManager.js +0 -137
  337. package/lib/commonjs/core/identity-session/RefreshManager.js.map +0 -1
  338. package/lib/commonjs/core/identity-session/SessionManager.js +0 -427
  339. package/lib/commonjs/core/identity-session/SessionManager.js.map +0 -1
  340. package/lib/commonjs/core/identity-session/createIdentitySessionCore.js +0 -24
  341. package/lib/commonjs/core/identity-session/createIdentitySessionCore.js.map +0 -1
  342. package/lib/commonjs/core/identity-session/errors.js +0 -176
  343. package/lib/commonjs/core/identity-session/errors.js.map +0 -1
  344. package/lib/commonjs/core/identity-session/index.js +0 -80
  345. package/lib/commonjs/core/identity-session/index.js.map +0 -1
  346. package/lib/commonjs/core/identity-session/types.js +0 -2
  347. package/lib/commonjs/core/identity-session/types.js.map +0 -1
  348. package/lib/commonjs/crypto/README.md +0 -142
  349. package/lib/commonjs/crypto/core.js +0 -147
  350. package/lib/commonjs/crypto/core.js.map +0 -1
  351. package/lib/commonjs/node/signatureService.js +0 -107
  352. package/lib/commonjs/node/signatureService.js.map +0 -1
  353. package/lib/commonjs/ui/hooks/auth/index.js +0 -37
  354. package/lib/commonjs/ui/hooks/auth/index.js.map +0 -1
  355. package/lib/commonjs/ui/hooks/auth/useUsernameValidation.js +0 -171
  356. package/lib/commonjs/ui/hooks/auth/useUsernameValidation.js.map +0 -1
  357. package/lib/commonjs/ui/hooks/useAvatarPicker.js +0 -52
  358. package/lib/commonjs/ui/hooks/useAvatarPicker.js.map +0 -1
  359. package/lib/commonjs/ui/hooks/useIdentityTransfer.js +0 -125
  360. package/lib/commonjs/ui/hooks/useIdentityTransfer.js.map +0 -1
  361. package/lib/commonjs/ui/hooks/useTransferCodesPersistence.js +0 -81
  362. package/lib/commonjs/ui/hooks/useTransferCodesPersistence.js.map +0 -1
  363. package/lib/commonjs/ui/hooks/useTransferQueries.js +0 -85
  364. package/lib/commonjs/ui/hooks/useTransferQueries.js.map +0 -1
  365. package/lib/commonjs/ui/stores/transferStore.js +0 -157
  366. package/lib/commonjs/ui/stores/transferStore.js.map +0 -1
  367. package/lib/module/adapters/expo/crypto.js +0 -51
  368. package/lib/module/adapters/expo/crypto.js.map +0 -1
  369. package/lib/module/adapters/expo/fetch.js +0 -26
  370. package/lib/module/adapters/expo/fetch.js.map +0 -1
  371. package/lib/module/adapters/expo/index.js +0 -45
  372. package/lib/module/adapters/expo/index.js.map +0 -1
  373. package/lib/module/adapters/expo/storage.js +0 -198
  374. package/lib/module/adapters/expo/storage.js.map +0 -1
  375. package/lib/module/adapters/index.js +0 -45
  376. package/lib/module/adapters/index.js.map +0 -1
  377. package/lib/module/adapters/node/crypto.js +0 -36
  378. package/lib/module/adapters/node/crypto.js.map +0 -1
  379. package/lib/module/adapters/node/fetch.js +0 -57
  380. package/lib/module/adapters/node/fetch.js.map +0 -1
  381. package/lib/module/adapters/node/index.js +0 -31
  382. package/lib/module/adapters/node/index.js.map +0 -1
  383. package/lib/module/adapters/node/storage.js +0 -159
  384. package/lib/module/adapters/node/storage.js.map +0 -1
  385. package/lib/module/core/identity-session/DeviceManager.js +0 -232
  386. package/lib/module/core/identity-session/DeviceManager.js.map +0 -1
  387. package/lib/module/core/identity-session/INTEGRATION_GUIDE.md +0 -287
  388. package/lib/module/core/identity-session/IdentityManager.js +0 -395
  389. package/lib/module/core/identity-session/IdentityManager.js.map +0 -1
  390. package/lib/module/core/identity-session/IdentitySessionCore.js +0 -390
  391. package/lib/module/core/identity-session/IdentitySessionCore.js.map +0 -1
  392. package/lib/module/core/identity-session/RefreshManager.js +0 -132
  393. package/lib/module/core/identity-session/RefreshManager.js.map +0 -1
  394. package/lib/module/core/identity-session/SessionManager.js +0 -422
  395. package/lib/module/core/identity-session/SessionManager.js.map +0 -1
  396. package/lib/module/core/identity-session/createIdentitySessionCore.js +0 -21
  397. package/lib/module/core/identity-session/createIdentitySessionCore.js.map +0 -1
  398. package/lib/module/core/identity-session/errors.js +0 -170
  399. package/lib/module/core/identity-session/errors.js.map +0 -1
  400. package/lib/module/core/identity-session/index.js +0 -17
  401. package/lib/module/core/identity-session/index.js.map +0 -1
  402. package/lib/module/core/identity-session/types.js +0 -2
  403. package/lib/module/core/identity-session/types.js.map +0 -1
  404. package/lib/module/crypto/README.md +0 -142
  405. package/lib/module/crypto/core.js +0 -133
  406. package/lib/module/crypto/core.js.map +0 -1
  407. package/lib/module/node/signatureService.js +0 -101
  408. package/lib/module/node/signatureService.js.map +0 -1
  409. package/lib/module/ui/hooks/auth/index.js +0 -7
  410. package/lib/module/ui/hooks/auth/index.js.map +0 -1
  411. package/lib/module/ui/hooks/auth/useUsernameValidation.js +0 -167
  412. package/lib/module/ui/hooks/auth/useUsernameValidation.js.map +0 -1
  413. package/lib/module/ui/hooks/useAvatarPicker.js +0 -48
  414. package/lib/module/ui/hooks/useAvatarPicker.js.map +0 -1
  415. package/lib/module/ui/hooks/useIdentityTransfer.js +0 -121
  416. package/lib/module/ui/hooks/useIdentityTransfer.js.map +0 -1
  417. package/lib/module/ui/hooks/useTransferCodesPersistence.js +0 -77
  418. package/lib/module/ui/hooks/useTransferCodesPersistence.js.map +0 -1
  419. package/lib/module/ui/hooks/useTransferQueries.js +0 -80
  420. package/lib/module/ui/hooks/useTransferQueries.js.map +0 -1
  421. package/lib/module/ui/stores/transferStore.js +0 -152
  422. package/lib/module/ui/stores/transferStore.js.map +0 -1
  423. package/lib/typescript/adapters/expo/crypto.d.ts +0 -17
  424. package/lib/typescript/adapters/expo/crypto.d.ts.map +0 -1
  425. package/lib/typescript/adapters/expo/fetch.d.ts +0 -16
  426. package/lib/typescript/adapters/expo/fetch.d.ts.map +0 -1
  427. package/lib/typescript/adapters/expo/index.d.ts +0 -23
  428. package/lib/typescript/adapters/expo/index.d.ts.map +0 -1
  429. package/lib/typescript/adapters/expo/storage.d.ts +0 -23
  430. package/lib/typescript/adapters/expo/storage.d.ts.map +0 -1
  431. package/lib/typescript/adapters/index.d.ts +0 -17
  432. package/lib/typescript/adapters/index.d.ts.map +0 -1
  433. package/lib/typescript/adapters/node/crypto.d.ts +0 -17
  434. package/lib/typescript/adapters/node/crypto.d.ts.map +0 -1
  435. package/lib/typescript/adapters/node/fetch.d.ts +0 -16
  436. package/lib/typescript/adapters/node/fetch.d.ts.map +0 -1
  437. package/lib/typescript/adapters/node/index.d.ts +0 -23
  438. package/lib/typescript/adapters/node/index.d.ts.map +0 -1
  439. package/lib/typescript/adapters/node/storage.d.ts +0 -23
  440. package/lib/typescript/adapters/node/storage.d.ts.map +0 -1
  441. package/lib/typescript/core/identity-session/DeviceManager.d.ts +0 -64
  442. package/lib/typescript/core/identity-session/DeviceManager.d.ts.map +0 -1
  443. package/lib/typescript/core/identity-session/IdentityManager.d.ts +0 -88
  444. package/lib/typescript/core/identity-session/IdentityManager.d.ts.map +0 -1
  445. package/lib/typescript/core/identity-session/IdentitySessionCore.d.ts +0 -141
  446. package/lib/typescript/core/identity-session/IdentitySessionCore.d.ts.map +0 -1
  447. package/lib/typescript/core/identity-session/RefreshManager.d.ts +0 -36
  448. package/lib/typescript/core/identity-session/RefreshManager.d.ts.map +0 -1
  449. package/lib/typescript/core/identity-session/SessionManager.d.ts +0 -104
  450. package/lib/typescript/core/identity-session/SessionManager.d.ts.map +0 -1
  451. package/lib/typescript/core/identity-session/createIdentitySessionCore.d.ts +0 -11
  452. package/lib/typescript/core/identity-session/createIdentitySessionCore.d.ts.map +0 -1
  453. package/lib/typescript/core/identity-session/errors.d.ts +0 -63
  454. package/lib/typescript/core/identity-session/errors.d.ts.map +0 -1
  455. package/lib/typescript/core/identity-session/index.d.ts +0 -14
  456. package/lib/typescript/core/identity-session/index.d.ts.map +0 -1
  457. package/lib/typescript/core/identity-session/types.d.ts +0 -196
  458. package/lib/typescript/core/identity-session/types.d.ts.map +0 -1
  459. package/lib/typescript/crypto/core.d.ts +0 -56
  460. package/lib/typescript/crypto/core.d.ts.map +0 -1
  461. package/lib/typescript/node/signatureService.d.ts +0 -55
  462. package/lib/typescript/node/signatureService.d.ts.map +0 -1
  463. package/lib/typescript/ui/hooks/auth/index.d.ts +0 -6
  464. package/lib/typescript/ui/hooks/auth/index.d.ts.map +0 -1
  465. package/lib/typescript/ui/hooks/auth/useUsernameValidation.d.ts +0 -32
  466. package/lib/typescript/ui/hooks/auth/useUsernameValidation.d.ts.map +0 -1
  467. package/lib/typescript/ui/hooks/useAvatarPicker.d.ts +0 -18
  468. package/lib/typescript/ui/hooks/useAvatarPicker.d.ts.map +0 -1
  469. package/lib/typescript/ui/hooks/useIdentityTransfer.d.ts +0 -24
  470. package/lib/typescript/ui/hooks/useIdentityTransfer.d.ts.map +0 -1
  471. package/lib/typescript/ui/hooks/useTransferCodesPersistence.d.ts +0 -6
  472. package/lib/typescript/ui/hooks/useTransferCodesPersistence.d.ts.map +0 -1
  473. package/lib/typescript/ui/hooks/useTransferQueries.d.ts +0 -26
  474. package/lib/typescript/ui/hooks/useTransferQueries.d.ts.map +0 -1
  475. package/lib/typescript/ui/stores/transferStore.d.ts +0 -36
  476. package/lib/typescript/ui/stores/transferStore.d.ts.map +0 -1
  477. package/src/adapters/expo/crypto.ts +0 -55
  478. package/src/adapters/expo/fetch.ts +0 -28
  479. package/src/adapters/expo/index.ts +0 -51
  480. package/src/adapters/expo/storage.ts +0 -228
  481. package/src/adapters/index.ts +0 -48
  482. package/src/adapters/node/crypto.ts +0 -39
  483. package/src/adapters/node/fetch.ts +0 -59
  484. package/src/adapters/node/index.ts +0 -37
  485. package/src/adapters/node/storage.ts +0 -170
  486. package/src/core/identity-session/DeviceManager.ts +0 -273
  487. package/src/core/identity-session/INTEGRATION_GUIDE.md +0 -287
  488. package/src/core/identity-session/IdentityManager.ts +0 -474
  489. package/src/core/identity-session/IdentitySessionCore.ts +0 -464
  490. package/src/core/identity-session/RefreshManager.ts +0 -189
  491. package/src/core/identity-session/SessionManager.ts +0 -500
  492. package/src/core/identity-session/createIdentitySessionCore.ts +0 -19
  493. package/src/core/identity-session/errors.ts +0 -197
  494. package/src/core/identity-session/index.ts +0 -15
  495. package/src/core/identity-session/types.ts +0 -188
  496. package/src/crypto/README.md +0 -142
  497. package/src/crypto/__tests__/core.test.ts +0 -203
  498. package/src/crypto/core.ts +0 -142
  499. package/src/node/signatureService.ts +0 -126
  500. package/src/ui/hooks/auth/index.ts +0 -9
  501. package/src/ui/hooks/auth/useUsernameValidation.ts +0 -177
  502. package/src/ui/hooks/useAvatarPicker.ts +0 -62
  503. package/src/ui/hooks/useIdentityTransfer.ts +0 -135
  504. package/src/ui/hooks/useTransferCodesPersistence.ts +0 -80
  505. package/src/ui/hooks/useTransferQueries.ts +0 -102
  506. package/src/ui/stores/transferStore.ts +0 -201
@@ -1,197 +0,0 @@
1
- /**
2
- * Identity and Session Error Codes
3
- *
4
- * Aligned with backend error codes for consistency across the ecosystem
5
- */
6
-
7
- export const IdentitySessionErrorCodes = {
8
- // Authentication errors
9
- UNAUTHORIZED: 'UNAUTHORIZED',
10
- FORBIDDEN: 'FORBIDDEN',
11
- INVALID_TOKEN: 'INVALID_TOKEN',
12
- MISSING_TOKEN: 'MISSING_TOKEN',
13
- TOKEN_EXPIRED: 'TOKEN_EXPIRED',
14
- TOKEN_NOT_YET_VALID: 'TOKEN_NOT_YET_VALID',
15
- INVALID_SIGNATURE: 'INVALID_SIGNATURE',
16
- MALFORMED_TOKEN: 'MALFORMED_TOKEN',
17
- INVALID_SESSION: 'INVALID_SESSION',
18
-
19
- // Identity errors
20
- IDENTITY_NOT_FOUND: 'IDENTITY_NOT_FOUND',
21
- IDENTITY_ALREADY_EXISTS: 'IDENTITY_ALREADY_EXISTS',
22
- IDENTITY_NOT_AVAILABLE_ON_WEB: 'IDENTITY_NOT_AVAILABLE_ON_WEB',
23
- IDENTITY_NOT_SYNCED: 'IDENTITY_NOT_SYNCED',
24
- INVALID_PUBLIC_KEY: 'INVALID_PUBLIC_KEY',
25
- INVALID_PRIVATE_KEY: 'INVALID_PRIVATE_KEY',
26
- IDENTITY_CREATION_FAILED: 'IDENTITY_CREATION_FAILED',
27
- IDENTITY_IMPORT_FAILED: 'IDENTITY_IMPORT_FAILED',
28
- IDENTITY_DELETE_FAILED: 'IDENTITY_DELETE_FAILED',
29
- BACKUP_DECRYPTION_FAILED: 'BACKUP_DECRYPTION_FAILED',
30
-
31
- // Session errors
32
- SESSION_NOT_FOUND: 'SESSION_NOT_FOUND',
33
- SESSION_EXPIRED: 'SESSION_EXPIRED',
34
- SESSION_INVALID: 'SESSION_INVALID',
35
- SESSION_CREATION_FAILED: 'SESSION_CREATION_FAILED',
36
- SESSION_REFRESH_FAILED: 'SESSION_REFRESH_FAILED',
37
-
38
- // Device errors
39
- DEVICE_NOT_FOUND: 'DEVICE_NOT_FOUND',
40
- DEVICE_CREATION_FAILED: 'DEVICE_CREATION_FAILED',
41
-
42
- // Validation errors
43
- VALIDATION_ERROR: 'VALIDATION_ERROR',
44
- BAD_REQUEST: 'BAD_REQUEST',
45
- MISSING_PARAMETER: 'MISSING_PARAMETER',
46
- INVALID_FORMAT: 'INVALID_FORMAT',
47
-
48
- // Resource errors
49
- NOT_FOUND: 'NOT_FOUND',
50
- ALREADY_EXISTS: 'ALREADY_EXISTS',
51
- CONFLICT: 'CONFLICT',
52
-
53
- // Server errors
54
- INTERNAL_ERROR: 'INTERNAL_ERROR',
55
- SERVICE_UNAVAILABLE: 'SERVICE_UNAVAILABLE',
56
- TIMEOUT: 'TIMEOUT',
57
-
58
- // Network errors
59
- NETWORK_ERROR: 'NETWORK_ERROR',
60
- CONNECTION_FAILED: 'CONNECTION_FAILED',
61
-
62
- // Storage errors
63
- STORAGE_ERROR: 'STORAGE_ERROR',
64
- STORAGE_NOT_AVAILABLE: 'STORAGE_NOT_AVAILABLE',
65
- SECURE_STORAGE_NOT_AVAILABLE: 'SECURE_STORAGE_NOT_AVAILABLE',
66
-
67
- // Unknown
68
- UNKNOWN_ERROR: 'UNKNOWN_ERROR',
69
- } as const;
70
-
71
- export type IdentitySessionErrorCode = typeof IdentitySessionErrorCodes[keyof typeof IdentitySessionErrorCodes];
72
-
73
- /**
74
- * IdentitySessionError - Custom error class for identity and session operations
75
- */
76
- export class IdentitySessionError extends Error {
77
- public readonly code: IdentitySessionErrorCode;
78
- public readonly statusCode: number;
79
-
80
- constructor(
81
- message: string,
82
- code: IdentitySessionErrorCode = IdentitySessionErrorCodes.UNKNOWN_ERROR,
83
- statusCode: number = 500
84
- ) {
85
- super(message);
86
- this.name = 'IdentitySessionError';
87
- this.code = code;
88
- this.statusCode = statusCode;
89
- Object.setPrototypeOf(this, IdentitySessionError.prototype);
90
- }
91
- }
92
-
93
- /**
94
- * Create error from code
95
- */
96
- export function createIdentitySessionError(
97
- code: IdentitySessionErrorCode,
98
- message?: string,
99
- statusCode?: number
100
- ): IdentitySessionError {
101
- const defaultMessages: Record<IdentitySessionErrorCode, string> = {
102
- [IdentitySessionErrorCodes.UNAUTHORIZED]: 'Unauthorized',
103
- [IdentitySessionErrorCodes.FORBIDDEN]: 'Forbidden',
104
- [IdentitySessionErrorCodes.INVALID_TOKEN]: 'Invalid token',
105
- [IdentitySessionErrorCodes.MISSING_TOKEN]: 'Missing token',
106
- [IdentitySessionErrorCodes.TOKEN_EXPIRED]: 'Token has expired',
107
- [IdentitySessionErrorCodes.TOKEN_NOT_YET_VALID]: 'Token not yet valid',
108
- [IdentitySessionErrorCodes.INVALID_SIGNATURE]: 'Token signature is invalid',
109
- [IdentitySessionErrorCodes.MALFORMED_TOKEN]: 'Token format is invalid',
110
- [IdentitySessionErrorCodes.INVALID_SESSION]: 'Invalid session',
111
- [IdentitySessionErrorCodes.IDENTITY_NOT_FOUND]: 'Identity not found',
112
- [IdentitySessionErrorCodes.IDENTITY_ALREADY_EXISTS]: 'Identity already exists',
113
- [IdentitySessionErrorCodes.IDENTITY_NOT_AVAILABLE_ON_WEB]: 'Identity operations are only available on native platforms',
114
- [IdentitySessionErrorCodes.IDENTITY_NOT_SYNCED]: 'Identity not synced with server',
115
- [IdentitySessionErrorCodes.INVALID_PUBLIC_KEY]: 'Invalid public key',
116
- [IdentitySessionErrorCodes.INVALID_PRIVATE_KEY]: 'Invalid private key',
117
- [IdentitySessionErrorCodes.IDENTITY_CREATION_FAILED]: 'Failed to create identity',
118
- [IdentitySessionErrorCodes.IDENTITY_IMPORT_FAILED]: 'Failed to import identity',
119
- [IdentitySessionErrorCodes.IDENTITY_DELETE_FAILED]: 'Failed to delete identity',
120
- [IdentitySessionErrorCodes.BACKUP_DECRYPTION_FAILED]: 'Failed to decrypt backup',
121
- [IdentitySessionErrorCodes.SESSION_NOT_FOUND]: 'Session not found',
122
- [IdentitySessionErrorCodes.SESSION_EXPIRED]: 'Session expired',
123
- [IdentitySessionErrorCodes.SESSION_INVALID]: 'Session invalid',
124
- [IdentitySessionErrorCodes.SESSION_CREATION_FAILED]: 'Failed to create session',
125
- [IdentitySessionErrorCodes.SESSION_REFRESH_FAILED]: 'Failed to refresh session',
126
- [IdentitySessionErrorCodes.DEVICE_NOT_FOUND]: 'Device not found',
127
- [IdentitySessionErrorCodes.DEVICE_CREATION_FAILED]: 'Failed to create device',
128
- [IdentitySessionErrorCodes.VALIDATION_ERROR]: 'Validation error',
129
- [IdentitySessionErrorCodes.BAD_REQUEST]: 'Bad request',
130
- [IdentitySessionErrorCodes.MISSING_PARAMETER]: 'Missing required parameter',
131
- [IdentitySessionErrorCodes.INVALID_FORMAT]: 'Invalid format',
132
- [IdentitySessionErrorCodes.NOT_FOUND]: 'Resource not found',
133
- [IdentitySessionErrorCodes.ALREADY_EXISTS]: 'Resource already exists',
134
- [IdentitySessionErrorCodes.CONFLICT]: 'Conflict',
135
- [IdentitySessionErrorCodes.INTERNAL_ERROR]: 'Internal server error',
136
- [IdentitySessionErrorCodes.SERVICE_UNAVAILABLE]: 'Service unavailable',
137
- [IdentitySessionErrorCodes.TIMEOUT]: 'Request timeout',
138
- [IdentitySessionErrorCodes.NETWORK_ERROR]: 'Network error',
139
- [IdentitySessionErrorCodes.CONNECTION_FAILED]: 'Connection failed',
140
- [IdentitySessionErrorCodes.STORAGE_ERROR]: 'Storage error',
141
- [IdentitySessionErrorCodes.STORAGE_NOT_AVAILABLE]: 'Storage not available',
142
- [IdentitySessionErrorCodes.SECURE_STORAGE_NOT_AVAILABLE]: 'Secure storage not available',
143
- [IdentitySessionErrorCodes.UNKNOWN_ERROR]: 'Unknown error',
144
- };
145
-
146
- const defaultStatusCodes: Record<IdentitySessionErrorCode, number> = {
147
- [IdentitySessionErrorCodes.UNAUTHORIZED]: 401,
148
- [IdentitySessionErrorCodes.FORBIDDEN]: 403,
149
- [IdentitySessionErrorCodes.INVALID_TOKEN]: 401,
150
- [IdentitySessionErrorCodes.MISSING_TOKEN]: 401,
151
- [IdentitySessionErrorCodes.TOKEN_EXPIRED]: 401,
152
- [IdentitySessionErrorCodes.TOKEN_NOT_YET_VALID]: 401,
153
- [IdentitySessionErrorCodes.INVALID_SIGNATURE]: 401,
154
- [IdentitySessionErrorCodes.MALFORMED_TOKEN]: 401,
155
- [IdentitySessionErrorCodes.INVALID_SESSION]: 401,
156
- [IdentitySessionErrorCodes.IDENTITY_NOT_FOUND]: 404,
157
- [IdentitySessionErrorCodes.IDENTITY_ALREADY_EXISTS]: 409,
158
- [IdentitySessionErrorCodes.IDENTITY_NOT_AVAILABLE_ON_WEB]: 400,
159
- [IdentitySessionErrorCodes.IDENTITY_NOT_SYNCED]: 400,
160
- [IdentitySessionErrorCodes.INVALID_PUBLIC_KEY]: 400,
161
- [IdentitySessionErrorCodes.INVALID_PRIVATE_KEY]: 400,
162
- [IdentitySessionErrorCodes.IDENTITY_CREATION_FAILED]: 500,
163
- [IdentitySessionErrorCodes.IDENTITY_IMPORT_FAILED]: 500,
164
- [IdentitySessionErrorCodes.IDENTITY_DELETE_FAILED]: 500,
165
- [IdentitySessionErrorCodes.BACKUP_DECRYPTION_FAILED]: 400,
166
- [IdentitySessionErrorCodes.SESSION_NOT_FOUND]: 404,
167
- [IdentitySessionErrorCodes.SESSION_EXPIRED]: 401,
168
- [IdentitySessionErrorCodes.SESSION_INVALID]: 401,
169
- [IdentitySessionErrorCodes.SESSION_CREATION_FAILED]: 500,
170
- [IdentitySessionErrorCodes.SESSION_REFRESH_FAILED]: 500,
171
- [IdentitySessionErrorCodes.DEVICE_NOT_FOUND]: 404,
172
- [IdentitySessionErrorCodes.DEVICE_CREATION_FAILED]: 500,
173
- [IdentitySessionErrorCodes.VALIDATION_ERROR]: 400,
174
- [IdentitySessionErrorCodes.BAD_REQUEST]: 400,
175
- [IdentitySessionErrorCodes.MISSING_PARAMETER]: 400,
176
- [IdentitySessionErrorCodes.INVALID_FORMAT]: 400,
177
- [IdentitySessionErrorCodes.NOT_FOUND]: 404,
178
- [IdentitySessionErrorCodes.ALREADY_EXISTS]: 409,
179
- [IdentitySessionErrorCodes.CONFLICT]: 409,
180
- [IdentitySessionErrorCodes.INTERNAL_ERROR]: 500,
181
- [IdentitySessionErrorCodes.SERVICE_UNAVAILABLE]: 503,
182
- [IdentitySessionErrorCodes.TIMEOUT]: 408,
183
- [IdentitySessionErrorCodes.NETWORK_ERROR]: 503,
184
- [IdentitySessionErrorCodes.CONNECTION_FAILED]: 503,
185
- [IdentitySessionErrorCodes.STORAGE_ERROR]: 500,
186
- [IdentitySessionErrorCodes.STORAGE_NOT_AVAILABLE]: 503,
187
- [IdentitySessionErrorCodes.SECURE_STORAGE_NOT_AVAILABLE]: 503,
188
- [IdentitySessionErrorCodes.UNKNOWN_ERROR]: 500,
189
- };
190
-
191
- return new IdentitySessionError(
192
- message || defaultMessages[code],
193
- code,
194
- statusCode || defaultStatusCodes[code]
195
- );
196
- }
197
-
@@ -1,15 +0,0 @@
1
- /**
2
- * Identity Session Core
3
- *
4
- * Main entry point for identity and session management
5
- */
6
-
7
- export { IdentitySessionCore } from './IdentitySessionCore';
8
- export { IdentityManager } from './IdentityManager';
9
- export { SessionManager } from './SessionManager';
10
- export { DeviceManager } from './DeviceManager';
11
- export { RefreshManager } from './RefreshManager';
12
- export { createIdentitySessionCore } from './createIdentitySessionCore';
13
- export * from './types';
14
- export * from './errors';
15
-
@@ -1,188 +0,0 @@
1
- /**
2
- * Core Identity and Session Types
3
- *
4
- * These types are aligned with backend models (IUser, ISession) to ensure
5
- * consistency across the entire ecosystem.
6
- */
7
-
8
- /**
9
- * Identity - Aligned with IUser from backend
10
- * Represents a user's cryptographic identity
11
- */
12
- export interface Identity {
13
- id: string; // MongoDB ObjectId (24 hex chars) - PRIMARY IDENTIFIER
14
- publicKey: string; // ECDSA secp256k1 public key (130 hex chars) - LOOKUP KEY
15
- username?: string;
16
- email?: string;
17
- avatar?: string; // file id
18
- verified?: boolean;
19
- language?: string;
20
- privacySettings?: {
21
- isPrivateAccount?: boolean;
22
- hideOnlineStatus?: boolean;
23
- hideLastSeen?: boolean;
24
- profileVisibility?: boolean;
25
- loginAlerts?: boolean;
26
- blockScreenshots?: boolean;
27
- login?: boolean;
28
- biometricLogin?: boolean;
29
- showActivity?: boolean;
30
- allowTagging?: boolean;
31
- allowMentions?: boolean;
32
- hideReadReceipts?: boolean;
33
- allowDirectMessages?: boolean;
34
- dataSharing?: boolean;
35
- locationSharing?: boolean;
36
- analyticsSharing?: boolean;
37
- sensitiveContent?: boolean;
38
- autoFilter?: boolean;
39
- muteKeywords?: boolean;
40
- [key: string]: unknown;
41
- };
42
- name?: {
43
- first?: string;
44
- last?: string;
45
- full?: string; // virtual, not stored in DB
46
- [key: string]: unknown;
47
- };
48
- bio?: string;
49
- description?: string;
50
- locations?: Array<{
51
- id: string;
52
- name: string;
53
- label?: string;
54
- type?: 'home' | 'work' | 'school' | 'other';
55
- address?: {
56
- street?: string;
57
- streetNumber?: string;
58
- streetDetails?: string;
59
- postalCode?: string;
60
- city?: string;
61
- state?: string;
62
- country?: string;
63
- formattedAddress?: string;
64
- };
65
- coordinates?: {
66
- lat: number;
67
- lon: number;
68
- };
69
- metadata?: {
70
- placeId?: string;
71
- osmId?: string;
72
- osmType?: string;
73
- countryCode?: string;
74
- timezone?: string;
75
- };
76
- createdAt?: string;
77
- updatedAt?: string;
78
- }>;
79
- links?: string[];
80
- linksMetadata?: Array<{
81
- url: string;
82
- title: string;
83
- description: string;
84
- image?: string;
85
- }>;
86
- _count?: {
87
- followers?: number;
88
- following?: number;
89
- };
90
- accountExpiresAfterInactivityDays?: number | null;
91
- createdAt?: string;
92
- updatedAt?: string;
93
- [key: string]: unknown;
94
- }
95
-
96
- /**
97
- * Session - Aligned with ISession from backend
98
- * Represents an active user session
99
- */
100
- export interface Session {
101
- sessionId: string; // UUID
102
- userId: string; // MongoDB ObjectId (never publicKey)
103
- deviceId: string;
104
- expiresAt: string; // ISO date string
105
- lastActive: string; // ISO date string
106
- deviceInfo: DeviceInfo;
107
- isActive?: boolean;
108
- accessToken?: string;
109
- refreshToken?: string;
110
- isCurrent?: boolean;
111
- }
112
-
113
- /**
114
- * DeviceInfo - Aligned with ISession.deviceInfo
115
- */
116
- export interface DeviceInfo {
117
- deviceName?: string;
118
- deviceType: string; // mobile, desktop, tablet, etc.
119
- platform: string; // ios, android, web, etc.
120
- browser?: string;
121
- os?: string;
122
- lastActive: string; // ISO date string
123
- ipAddress?: string;
124
- userAgent?: string;
125
- location?: string;
126
- fingerprint?: string;
127
- }
128
-
129
- /**
130
- * Device - Represents device information
131
- */
132
- export interface Device {
133
- deviceId: string;
134
- deviceName?: string;
135
- deviceType: string;
136
- platform: string;
137
- browser?: string;
138
- os?: string;
139
- fingerprint?: string;
140
- createdAt?: string;
141
- updatedAt?: string;
142
- }
143
-
144
- /**
145
- * DeviceSession - Aligned with backend device session model
146
- */
147
- export interface DeviceSession {
148
- deviceId: string;
149
- deviceName?: string;
150
- deviceType: string;
151
- platform: string;
152
- browser?: string;
153
- os?: string;
154
- lastActive: string;
155
- fingerprint?: string;
156
- createdAt?: string;
157
- updatedAt?: string;
158
- }
159
-
160
- /**
161
- * BackupData - Encrypted backup data for identity
162
- */
163
- export interface BackupData {
164
- encrypted: string; // Base64-encoded encrypted private key
165
- salt: string; // Hex-encoded salt used for key derivation
166
- iv: string; // Hex-encoded initialization vector
167
- publicKey: string; // Public key associated with the encrypted private key
168
- }
169
-
170
- /**
171
- * IdentitySessionEvent - Events emitted by the core
172
- */
173
- export type IdentitySessionEvent =
174
- | { type: 'identity:created'; identity: Identity }
175
- | { type: 'identity:imported'; identity: Identity }
176
- | { type: 'identity:deleted' }
177
- | { type: 'identity:synced'; identity: Identity }
178
- | { type: 'session:created'; session: Session }
179
- | { type: 'session:refreshed'; session: Session }
180
- | { type: 'session:invalidated'; sessionId: string }
181
- | { type: 'session:all-invalidated' }
182
- | { type: 'device:changed'; device: Device };
183
-
184
- /**
185
- * Platform type
186
- */
187
- export type Platform = 'native' | 'web' | 'node';
188
-
@@ -1,142 +0,0 @@
1
- # Oxy Crypto Module
2
-
3
- This module provides cryptographic operations for the Oxy ecosystem, supporting both React Native and Node.js environments.
4
-
5
- ## Architecture
6
-
7
- The crypto module is organized into several layers:
8
-
9
- ### Core Layer (`core.ts`)
10
- Platform-agnostic cryptographic functions that work everywhere:
11
- - Signature verification using elliptic curve cryptography
12
- - Public/private key validation
13
- - Message formatting (auth, registration, requests)
14
- - Utility functions (shortenPublicKey, derivePublicKey, etc.)
15
-
16
- ### Platform-Specific Implementations
17
-
18
- #### React Native (`signatureService.ts`, `keyManager.ts`)
19
- - **KeyManager**: Manages ECDSA key pairs with secure storage via Expo SecureStore
20
- - ⚠️ **For Oxy Accounts app only** - Not intended for third-party apps
21
- - Handles key generation, import, backup, and secure retrieval
22
- - Private keys never leave the device
23
-
24
- - **SignatureService**: Provides async signing and verification
25
- - Uses `expo-crypto` for hashing in React Native
26
- - Falls back to Node.js crypto when available
27
- - Suitable for both React Native and Node.js environments
28
-
29
- #### Node.js (`node/signatureService.ts`)
30
- - Optimized synchronous signature operations for backend
31
- - Uses Node's `crypto` module directly for better performance
32
- - Exports same API as React Native version for consistency
33
-
34
- ## Usage
35
-
36
- ### In React Native / Accounts App
37
-
38
- ```typescript
39
- import { KeyManager, SignatureService } from '@oxyhq/services/crypto';
40
-
41
- // Create identity (Accounts app only)
42
- const publicKey = await KeyManager.createIdentity();
43
-
44
- // Sign a challenge
45
- const signature = await SignatureService.sign(message);
46
-
47
- // Verify a signature
48
- const isValid = await SignatureService.verify(message, signature, publicKey);
49
- ```
50
-
51
- ### In Node.js Backend
52
-
53
- ```typescript
54
- import { SignatureService } from '@oxyhq/services/node';
55
-
56
- // Generate challenge
57
- const challenge = SignatureService.generateChallenge();
58
-
59
- // Verify signature (synchronous)
60
- const isValid = SignatureService.verifyChallengeResponse(
61
- publicKey,
62
- challenge,
63
- signature,
64
- timestamp
65
- );
66
- ```
67
-
68
- ### In Third-Party Apps (Services SDK)
69
-
70
- Third-party apps should **not** use KeyManager directly. Instead, use the authentication flows provided by the OxyServices class:
71
-
72
- ```typescript
73
- import { OxyServices } from '@oxyhq/services';
74
-
75
- const oxy = new OxyServices({ baseURL: 'https://api.oxy.so' });
76
-
77
- // Request authentication (shows QR code / deep link)
78
- // User approves in Oxy Accounts app
79
- // Returns session when approved
80
- const session = await oxy.requestAuth({ appId: 'my-app' });
81
- ```
82
-
83
- ## Security Considerations
84
-
85
- ### Message Formats
86
- All signed messages follow specific formats to prevent replay attacks:
87
-
88
- - **Authentication**: `auth:{publicKey}:{challenge}:{timestamp}`
89
- - **Registration**: `oxy:register:{publicKey}:{timestamp}`
90
- - **API Requests**: `request:{publicKey}:{timestamp}:{canonicalData}`
91
-
92
- Timestamps must be within 5 minutes to be valid.
93
-
94
- ### Key Storage
95
- - Private keys are stored in device secure storage (iOS Keychain, Android Keystore)
96
- - Never transmitted or exposed outside the device
97
- - Only the Oxy Accounts app has access to private keys
98
-
99
- ### Backup Encryption
100
- ⚠️ **Current Implementation**: The backup encryption currently uses a custom XOR scheme with key stretching. This is functional but not optimal.
101
-
102
- 📋 **Planned Improvement**: Migrate to standard AES-256-GCM encryption for better security and interoperability.
103
-
104
- ## Separation of Concerns
105
-
106
- ### Oxy Accounts App
107
- - Owns and manages the user's private key
108
- - Handles identity creation, backup, and recovery
109
- - Signs authentication challenges
110
- - Uses `KeyManager` and `SignatureService`
111
-
112
- ### Services SDK / Third-Party Apps
113
- - Does NOT generate or store private keys
114
- - Displays QR codes and deep links for authentication
115
- - Polls server for authentication status
116
- - Uses `OxyServices` class for API communication
117
-
118
- ### API Backend
119
- - Generates challenges
120
- - Verifies signatures using public keys
121
- - Manages sessions and user data
122
- - Uses `SignatureService` from `@oxyhq/services/node`
123
-
124
- ## Migration from Old Signature Service
125
-
126
- The API previously had a duplicate `signature.service.ts` file. This has been replaced with a re-export from `@oxyhq/services/node` to ensure consistency and eliminate duplication.
127
-
128
- If you're maintaining code that imports from the old location, it will continue to work as the file now re-exports from the shared module.
129
-
130
- ## Testing
131
-
132
- When making changes to crypto code:
133
- 1. Test in both React Native and Node.js environments
134
- 2. Verify signatures created in one environment can be verified in another
135
- 3. Check that timestamps are properly validated
136
- 4. Ensure message formats match exactly between client and server
137
-
138
- ## Further Reading
139
-
140
- - [Public Key Authentication Guide](../docs/PUBLIC_KEY_AUTHENTICATION.md)
141
- - [ECDSA on secp256k1](https://en.bitcoin.it/wiki/Secp256k1)
142
- - [Expo SecureStore Documentation](https://docs.expo.dev/versions/latest/sdk/securestore/)