@oxyhq/services 5.16.40 → 5.16.42

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 (267) hide show
  1. package/lib/commonjs/adapters/expo/crypto.js +56 -0
  2. package/lib/commonjs/adapters/expo/crypto.js.map +1 -0
  3. package/lib/commonjs/adapters/expo/fetch.js +30 -0
  4. package/lib/commonjs/adapters/expo/fetch.js.map +1 -0
  5. package/lib/commonjs/adapters/expo/index.js +48 -0
  6. package/lib/commonjs/adapters/expo/index.js.map +1 -0
  7. package/lib/commonjs/adapters/expo/storage.js +201 -0
  8. package/lib/commonjs/adapters/expo/storage.js.map +1 -0
  9. package/lib/commonjs/adapters/index.js +50 -0
  10. package/lib/commonjs/adapters/index.js.map +1 -0
  11. package/lib/commonjs/adapters/node/crypto.js +40 -0
  12. package/lib/commonjs/adapters/node/crypto.js.map +1 -0
  13. package/lib/commonjs/adapters/node/fetch.js +62 -0
  14. package/lib/commonjs/adapters/node/fetch.js.map +1 -0
  15. package/lib/commonjs/adapters/node/index.js +34 -0
  16. package/lib/commonjs/adapters/node/index.js.map +1 -0
  17. package/lib/commonjs/adapters/node/storage.js +163 -0
  18. package/lib/commonjs/adapters/node/storage.js.map +1 -0
  19. package/lib/commonjs/core/identity-session/DeviceManager.js +237 -0
  20. package/lib/commonjs/core/identity-session/DeviceManager.js.map +1 -0
  21. package/lib/commonjs/core/identity-session/INTEGRATION_GUIDE.md +287 -0
  22. package/lib/commonjs/core/identity-session/IdentityManager.js +400 -0
  23. package/lib/commonjs/core/identity-session/IdentityManager.js.map +1 -0
  24. package/lib/commonjs/core/identity-session/IdentitySessionCore.js +394 -0
  25. package/lib/commonjs/core/identity-session/IdentitySessionCore.js.map +1 -0
  26. package/lib/commonjs/core/identity-session/RefreshManager.js +137 -0
  27. package/lib/commonjs/core/identity-session/RefreshManager.js.map +1 -0
  28. package/lib/commonjs/core/identity-session/SessionManager.js +427 -0
  29. package/lib/commonjs/core/identity-session/SessionManager.js.map +1 -0
  30. package/lib/commonjs/core/identity-session/createIdentitySessionCore.js +24 -0
  31. package/lib/commonjs/core/identity-session/createIdentitySessionCore.js.map +1 -0
  32. package/lib/commonjs/core/identity-session/errors.js +176 -0
  33. package/lib/commonjs/core/identity-session/errors.js.map +1 -0
  34. package/lib/commonjs/core/identity-session/index.js +80 -0
  35. package/lib/commonjs/core/identity-session/index.js.map +1 -0
  36. package/lib/commonjs/core/identity-session/types.js +2 -0
  37. package/lib/commonjs/core/identity-session/types.js.map +1 -0
  38. package/lib/commonjs/core/index.js +2 -21
  39. package/lib/commonjs/core/index.js.map +1 -1
  40. package/lib/commonjs/index.js +58 -8
  41. package/lib/commonjs/index.js.map +1 -1
  42. package/lib/commonjs/models/interfaces.js +7 -0
  43. package/lib/commonjs/models/interfaces.js.map +1 -1
  44. package/lib/commonjs/ui/context/OxyContext.js +434 -820
  45. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  46. package/lib/commonjs/ui/hooks/useAvatarPicker.js +52 -0
  47. package/lib/commonjs/ui/hooks/useAvatarPicker.js.map +1 -0
  48. package/lib/commonjs/ui/hooks/useIdentityTransfer.js +125 -0
  49. package/lib/commonjs/ui/hooks/useIdentityTransfer.js.map +1 -0
  50. package/lib/commonjs/ui/hooks/useTransferCodesPersistence.js +81 -0
  51. package/lib/commonjs/ui/hooks/useTransferCodesPersistence.js.map +1 -0
  52. package/lib/commonjs/ui/screens/AccountCenterScreen.js +7 -2
  53. package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -1
  54. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +12 -5
  55. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  56. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +2 -2
  57. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -1
  58. package/lib/commonjs/ui/screens/ProfileScreen.js +6 -6
  59. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  60. package/lib/commonjs/ui/utils/sessionHelpers.js +7 -1
  61. package/lib/commonjs/ui/utils/sessionHelpers.js.map +1 -1
  62. package/lib/commonjs/utils/index.js +0 -7
  63. package/lib/commonjs/utils/index.js.map +1 -1
  64. package/lib/commonjs/utils/sessionUtils.js +8 -1
  65. package/lib/commonjs/utils/sessionUtils.js.map +1 -1
  66. package/lib/module/adapters/expo/crypto.js +51 -0
  67. package/lib/module/adapters/expo/crypto.js.map +1 -0
  68. package/lib/module/adapters/expo/fetch.js +26 -0
  69. package/lib/module/adapters/expo/fetch.js.map +1 -0
  70. package/lib/module/adapters/expo/index.js +45 -0
  71. package/lib/module/adapters/expo/index.js.map +1 -0
  72. package/lib/module/adapters/expo/storage.js +198 -0
  73. package/lib/module/adapters/expo/storage.js.map +1 -0
  74. package/lib/module/adapters/index.js +47 -0
  75. package/lib/module/adapters/index.js.map +1 -0
  76. package/lib/module/adapters/node/crypto.js +36 -0
  77. package/lib/module/adapters/node/crypto.js.map +1 -0
  78. package/lib/module/adapters/node/fetch.js +57 -0
  79. package/lib/module/adapters/node/fetch.js.map +1 -0
  80. package/lib/module/adapters/node/index.js +31 -0
  81. package/lib/module/adapters/node/index.js.map +1 -0
  82. package/lib/module/adapters/node/storage.js +159 -0
  83. package/lib/module/adapters/node/storage.js.map +1 -0
  84. package/lib/module/core/identity-session/DeviceManager.js +232 -0
  85. package/lib/module/core/identity-session/DeviceManager.js.map +1 -0
  86. package/lib/module/core/identity-session/INTEGRATION_GUIDE.md +287 -0
  87. package/lib/module/core/identity-session/IdentityManager.js +395 -0
  88. package/lib/module/core/identity-session/IdentityManager.js.map +1 -0
  89. package/lib/module/core/identity-session/IdentitySessionCore.js +390 -0
  90. package/lib/module/core/identity-session/IdentitySessionCore.js.map +1 -0
  91. package/lib/module/core/identity-session/RefreshManager.js +132 -0
  92. package/lib/module/core/identity-session/RefreshManager.js.map +1 -0
  93. package/lib/module/core/identity-session/SessionManager.js +422 -0
  94. package/lib/module/core/identity-session/SessionManager.js.map +1 -0
  95. package/lib/module/core/identity-session/createIdentitySessionCore.js +21 -0
  96. package/lib/module/core/identity-session/createIdentitySessionCore.js.map +1 -0
  97. package/lib/module/core/identity-session/errors.js +170 -0
  98. package/lib/module/core/identity-session/errors.js.map +1 -0
  99. package/lib/module/core/identity-session/index.js +17 -0
  100. package/lib/module/core/identity-session/index.js.map +1 -0
  101. package/lib/module/core/identity-session/types.js +2 -0
  102. package/lib/module/core/identity-session/types.js.map +1 -0
  103. package/lib/module/core/index.js +2 -3
  104. package/lib/module/core/index.js.map +1 -1
  105. package/lib/module/index.js +12 -2
  106. package/lib/module/index.js.map +1 -1
  107. package/lib/module/models/interfaces.js +7 -0
  108. package/lib/module/models/interfaces.js.map +1 -1
  109. package/lib/module/ui/context/OxyContext.js +436 -822
  110. package/lib/module/ui/context/OxyContext.js.map +1 -1
  111. package/lib/module/ui/hooks/useAvatarPicker.js +48 -0
  112. package/lib/module/ui/hooks/useAvatarPicker.js.map +1 -0
  113. package/lib/module/ui/hooks/useIdentityTransfer.js +121 -0
  114. package/lib/module/ui/hooks/useIdentityTransfer.js.map +1 -0
  115. package/lib/module/ui/hooks/useTransferCodesPersistence.js +77 -0
  116. package/lib/module/ui/hooks/useTransferCodesPersistence.js.map +1 -0
  117. package/lib/module/ui/screens/AccountCenterScreen.js +7 -2
  118. package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -1
  119. package/lib/module/ui/screens/AccountSettingsScreen.js +12 -5
  120. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  121. package/lib/module/ui/screens/AccountSwitcherScreen.js +2 -2
  122. package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -1
  123. package/lib/module/ui/screens/ProfileScreen.js +6 -6
  124. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  125. package/lib/module/ui/utils/sessionHelpers.js +7 -1
  126. package/lib/module/ui/utils/sessionHelpers.js.map +1 -1
  127. package/lib/module/utils/index.js +2 -1
  128. package/lib/module/utils/index.js.map +1 -1
  129. package/lib/module/utils/sessionUtils.js +8 -1
  130. package/lib/module/utils/sessionUtils.js.map +1 -1
  131. package/lib/typescript/adapters/expo/crypto.d.ts +17 -0
  132. package/lib/typescript/adapters/expo/crypto.d.ts.map +1 -0
  133. package/lib/typescript/adapters/expo/fetch.d.ts +16 -0
  134. package/lib/typescript/adapters/expo/fetch.d.ts.map +1 -0
  135. package/lib/typescript/adapters/expo/index.d.ts +23 -0
  136. package/lib/typescript/adapters/expo/index.d.ts.map +1 -0
  137. package/lib/typescript/adapters/expo/storage.d.ts +23 -0
  138. package/lib/typescript/adapters/expo/storage.d.ts.map +1 -0
  139. package/lib/typescript/adapters/index.d.ts +19 -0
  140. package/lib/typescript/adapters/index.d.ts.map +1 -0
  141. package/lib/typescript/adapters/node/crypto.d.ts +17 -0
  142. package/lib/typescript/adapters/node/crypto.d.ts.map +1 -0
  143. package/lib/typescript/adapters/node/fetch.d.ts +16 -0
  144. package/lib/typescript/adapters/node/fetch.d.ts.map +1 -0
  145. package/lib/typescript/adapters/node/index.d.ts +23 -0
  146. package/lib/typescript/adapters/node/index.d.ts.map +1 -0
  147. package/lib/typescript/adapters/node/storage.d.ts +23 -0
  148. package/lib/typescript/adapters/node/storage.d.ts.map +1 -0
  149. package/lib/typescript/core/identity-session/DeviceManager.d.ts +64 -0
  150. package/lib/typescript/core/identity-session/DeviceManager.d.ts.map +1 -0
  151. package/lib/typescript/core/identity-session/IdentityManager.d.ts +88 -0
  152. package/lib/typescript/core/identity-session/IdentityManager.d.ts.map +1 -0
  153. package/lib/typescript/core/identity-session/IdentitySessionCore.d.ts +141 -0
  154. package/lib/typescript/core/identity-session/IdentitySessionCore.d.ts.map +1 -0
  155. package/lib/typescript/core/identity-session/RefreshManager.d.ts +36 -0
  156. package/lib/typescript/core/identity-session/RefreshManager.d.ts.map +1 -0
  157. package/lib/typescript/core/identity-session/SessionManager.d.ts +104 -0
  158. package/lib/typescript/core/identity-session/SessionManager.d.ts.map +1 -0
  159. package/lib/typescript/core/identity-session/createIdentitySessionCore.d.ts +11 -0
  160. package/lib/typescript/core/identity-session/createIdentitySessionCore.d.ts.map +1 -0
  161. package/lib/typescript/core/identity-session/errors.d.ts +63 -0
  162. package/lib/typescript/core/identity-session/errors.d.ts.map +1 -0
  163. package/lib/typescript/core/identity-session/index.d.ts +14 -0
  164. package/lib/typescript/core/identity-session/index.d.ts.map +1 -0
  165. package/lib/typescript/core/identity-session/types.d.ts +196 -0
  166. package/lib/typescript/core/identity-session/types.d.ts.map +1 -0
  167. package/lib/typescript/core/index.d.ts +1 -3
  168. package/lib/typescript/core/index.d.ts.map +1 -1
  169. package/lib/typescript/core/mixins/index.d.ts +2 -2
  170. package/lib/typescript/index.d.ts +3 -2
  171. package/lib/typescript/index.d.ts.map +1 -1
  172. package/lib/typescript/models/interfaces.d.ts +5 -36
  173. package/lib/typescript/models/interfaces.d.ts.map +1 -1
  174. package/lib/typescript/models/session.d.ts +3 -16
  175. package/lib/typescript/models/session.d.ts.map +1 -1
  176. package/lib/typescript/ui/context/OxyContext.d.ts +2 -25
  177. package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
  178. package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts +7 -8
  179. package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  180. package/lib/typescript/ui/hooks/mutations/useServicesMutations.d.ts +1 -1
  181. package/lib/typescript/ui/hooks/mutations/useServicesMutations.d.ts.map +1 -1
  182. package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts +5 -5
  183. package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
  184. package/lib/typescript/ui/hooks/useAvatarPicker.d.ts +18 -0
  185. package/lib/typescript/ui/hooks/useAvatarPicker.d.ts.map +1 -0
  186. package/lib/typescript/ui/hooks/useIdentityTransfer.d.ts +24 -0
  187. package/lib/typescript/ui/hooks/useIdentityTransfer.d.ts.map +1 -0
  188. package/lib/typescript/ui/hooks/useTransferCodesPersistence.d.ts +6 -0
  189. package/lib/typescript/ui/hooks/useTransferCodesPersistence.d.ts.map +1 -0
  190. package/lib/typescript/ui/screens/AccountCenterScreen.d.ts.map +1 -1
  191. package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  192. package/lib/typescript/ui/utils/sessionHelpers.d.ts +1 -0
  193. package/lib/typescript/ui/utils/sessionHelpers.d.ts.map +1 -1
  194. package/lib/typescript/utils/index.d.ts +0 -2
  195. package/lib/typescript/utils/index.d.ts.map +1 -1
  196. package/lib/typescript/utils/sessionUtils.d.ts.map +1 -1
  197. package/package.json +1 -1
  198. package/src/adapters/expo/crypto.ts +55 -0
  199. package/src/adapters/expo/fetch.ts +28 -0
  200. package/src/adapters/expo/index.ts +51 -0
  201. package/src/adapters/expo/storage.ts +228 -0
  202. package/src/adapters/index.ts +47 -0
  203. package/src/adapters/node/crypto.ts +39 -0
  204. package/src/adapters/node/fetch.ts +59 -0
  205. package/src/adapters/node/index.ts +37 -0
  206. package/src/adapters/node/storage.ts +170 -0
  207. package/src/core/identity-session/DeviceManager.ts +273 -0
  208. package/src/core/identity-session/INTEGRATION_GUIDE.md +287 -0
  209. package/src/core/identity-session/IdentityManager.ts +474 -0
  210. package/src/core/identity-session/IdentitySessionCore.ts +464 -0
  211. package/src/core/identity-session/RefreshManager.ts +189 -0
  212. package/src/core/identity-session/SessionManager.ts +500 -0
  213. package/src/core/identity-session/createIdentitySessionCore.ts +19 -0
  214. package/src/core/identity-session/errors.ts +197 -0
  215. package/src/core/identity-session/index.ts +15 -0
  216. package/src/core/identity-session/types.ts +188 -0
  217. package/src/core/index.ts +3 -4
  218. package/src/index.ts +28 -3
  219. package/src/models/interfaces.ts +12 -39
  220. package/src/models/session.ts +6 -16
  221. package/src/ui/context/OxyContext.tsx +442 -871
  222. package/src/ui/hooks/auth/index.ts +1 -0
  223. package/src/ui/hooks/useAvatarPicker.ts +62 -0
  224. package/src/ui/hooks/useIdentityTransfer.ts +135 -0
  225. package/src/ui/hooks/useTransferCodesPersistence.ts +80 -0
  226. package/src/ui/screens/AccountCenterScreen.tsx +7 -2
  227. package/src/ui/screens/AccountSettingsScreen.tsx +15 -8
  228. package/src/ui/screens/AccountSwitcherScreen.tsx +2 -2
  229. package/src/ui/screens/ProfileScreen.tsx +10 -10
  230. package/src/ui/utils/sessionHelpers.ts +7 -0
  231. package/src/utils/index.ts +1 -2
  232. package/src/utils/sessionUtils.ts +8 -0
  233. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +0 -732
  234. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +0 -1
  235. package/lib/commonjs/ui/context/hooks/useDeviceManagement.js +0 -73
  236. package/lib/commonjs/ui/context/hooks/useDeviceManagement.js.map +0 -1
  237. package/lib/commonjs/ui/hooks/useDeviceManagement.js +0 -73
  238. package/lib/commonjs/ui/hooks/useDeviceManagement.js.map +0 -1
  239. package/lib/commonjs/ui/hooks/useSessionManagement.js +0 -281
  240. package/lib/commonjs/ui/hooks/useSessionManagement.js.map +0 -1
  241. package/lib/commonjs/utils/deviceManager.js +0 -177
  242. package/lib/commonjs/utils/deviceManager.js.map +0 -1
  243. package/lib/module/ui/context/hooks/useAuthOperations.js +0 -726
  244. package/lib/module/ui/context/hooks/useAuthOperations.js.map +0 -1
  245. package/lib/module/ui/context/hooks/useDeviceManagement.js +0 -68
  246. package/lib/module/ui/context/hooks/useDeviceManagement.js.map +0 -1
  247. package/lib/module/ui/hooks/useDeviceManagement.js +0 -68
  248. package/lib/module/ui/hooks/useDeviceManagement.js.map +0 -1
  249. package/lib/module/ui/hooks/useSessionManagement.js +0 -276
  250. package/lib/module/ui/hooks/useSessionManagement.js.map +0 -1
  251. package/lib/module/utils/deviceManager.js +0 -171
  252. package/lib/module/utils/deviceManager.js.map +0 -1
  253. package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts +0 -59
  254. package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts.map +0 -1
  255. package/lib/typescript/ui/context/hooks/useDeviceManagement.d.ts +0 -27
  256. package/lib/typescript/ui/context/hooks/useDeviceManagement.d.ts.map +0 -1
  257. package/lib/typescript/ui/hooks/useDeviceManagement.d.ts +0 -27
  258. package/lib/typescript/ui/hooks/useDeviceManagement.d.ts.map +0 -1
  259. package/lib/typescript/ui/hooks/useSessionManagement.d.ts +0 -41
  260. package/lib/typescript/ui/hooks/useSessionManagement.d.ts.map +0 -1
  261. package/lib/typescript/utils/deviceManager.d.ts +0 -66
  262. package/lib/typescript/utils/deviceManager.d.ts.map +0 -1
  263. package/src/ui/context/hooks/useAuthOperations.ts +0 -801
  264. package/src/ui/context/hooks/useDeviceManagement.ts +0 -108
  265. package/src/ui/hooks/useDeviceManagement.ts +0 -108
  266. package/src/ui/hooks/useSessionManagement.ts +0 -401
  267. package/src/utils/deviceManager.ts +0 -198
@@ -0,0 +1,422 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Session Manager
5
+ *
6
+ * Manages user sessions (Native + Web)
7
+ * Handles session creation, storage, refresh, and invalidation.
8
+ */
9
+
10
+ import { jwtDecode } from 'jwt-decode';
11
+ import { createIdentitySessionError, IdentitySessionErrorCodes } from './errors';
12
+ const SESSION_STORAGE_KEY = 'oxy_sessions';
13
+ const ACTIVE_SESSION_ID_KEY = 'oxy_active_session_id';
14
+ const TOKEN_STORAGE_KEY = 'oxy_tokens';
15
+ /**
16
+ * Session Manager Class
17
+ */
18
+ export class SessionManager {
19
+ baseURL = null;
20
+ cachedSessions = null;
21
+ cachedActiveSessionId = null;
22
+ tokenStore = {
23
+ accessToken: null,
24
+ refreshToken: null
25
+ };
26
+ constructor(adapter, deviceManager, refreshManager, baseURL) {
27
+ this.adapter = adapter;
28
+ this.deviceManager = deviceManager;
29
+ this.refreshManager = refreshManager;
30
+ this.baseURL = baseURL || null;
31
+ if (baseURL) {
32
+ this.refreshManager.setBaseURL(baseURL);
33
+ }
34
+ }
35
+
36
+ /**
37
+ * Set base URL for API requests
38
+ */
39
+ setBaseURL(baseURL) {
40
+ this.baseURL = baseURL;
41
+ this.refreshManager.setBaseURL(baseURL);
42
+ }
43
+
44
+ /**
45
+ * Invalidate cached sessions
46
+ */
47
+ invalidateCache() {
48
+ this.cachedSessions = null;
49
+ this.cachedActiveSessionId = null;
50
+ }
51
+
52
+ /**
53
+ * Load tokens from storage
54
+ */
55
+ async loadTokens() {
56
+ try {
57
+ const stored = await this.adapter.storage.get(TOKEN_STORAGE_KEY);
58
+ if (stored) {
59
+ this.tokenStore = JSON.parse(stored);
60
+ }
61
+ } catch (error) {
62
+ console.warn('[SessionManager] Failed to load tokens:', error);
63
+ }
64
+ }
65
+
66
+ /**
67
+ * Save tokens to storage
68
+ */
69
+ async saveTokens() {
70
+ try {
71
+ await this.adapter.storage.set(TOKEN_STORAGE_KEY, JSON.stringify(this.tokenStore));
72
+ } catch (error) {
73
+ console.warn('[SessionManager] Failed to save tokens:', error);
74
+ }
75
+ }
76
+
77
+ /**
78
+ * Get access token
79
+ */
80
+ getAccessToken() {
81
+ return this.tokenStore.accessToken;
82
+ }
83
+
84
+ /**
85
+ * Get refresh token
86
+ */
87
+ getRefreshToken() {
88
+ return this.tokenStore.refreshToken;
89
+ }
90
+
91
+ /**
92
+ * Set tokens
93
+ */
94
+ async setTokens(accessToken, refreshToken) {
95
+ this.tokenStore.accessToken = accessToken;
96
+ if (refreshToken) {
97
+ this.tokenStore.refreshToken = refreshToken;
98
+ }
99
+ await this.saveTokens();
100
+ }
101
+
102
+ /**
103
+ * Clear tokens
104
+ */
105
+ async clearTokens() {
106
+ this.tokenStore.accessToken = null;
107
+ this.tokenStore.refreshToken = null;
108
+ await this.saveTokens();
109
+ }
110
+
111
+ /**
112
+ * Load sessions from storage
113
+ */
114
+ async loadSessions() {
115
+ if (this.cachedSessions) {
116
+ return this.cachedSessions;
117
+ }
118
+ try {
119
+ const stored = await this.adapter.storage.get(SESSION_STORAGE_KEY);
120
+ if (stored) {
121
+ this.cachedSessions = JSON.parse(stored);
122
+ return this.cachedSessions || [];
123
+ }
124
+ } catch (error) {
125
+ console.warn('[SessionManager] Failed to load sessions:', error);
126
+ }
127
+ this.cachedSessions = [];
128
+ return [];
129
+ }
130
+
131
+ /**
132
+ * Save sessions to storage
133
+ */
134
+ async saveSessions(sessions) {
135
+ try {
136
+ await this.adapter.storage.set(SESSION_STORAGE_KEY, JSON.stringify(sessions));
137
+ this.cachedSessions = sessions;
138
+ } catch (error) {
139
+ console.warn('[SessionManager] Failed to save sessions:', error);
140
+ }
141
+ }
142
+
143
+ /**
144
+ * Get active session ID
145
+ */
146
+ async getActiveSessionId() {
147
+ if (this.cachedActiveSessionId !== null) {
148
+ return this.cachedActiveSessionId;
149
+ }
150
+ try {
151
+ const stored = await this.adapter.storage.get(ACTIVE_SESSION_ID_KEY);
152
+ this.cachedActiveSessionId = stored;
153
+ return stored;
154
+ } catch (error) {
155
+ console.warn('[SessionManager] Failed to load active session ID:', error);
156
+ return null;
157
+ }
158
+ }
159
+
160
+ /**
161
+ * Set active session ID
162
+ */
163
+ async setActiveSessionId(sessionId) {
164
+ try {
165
+ if (sessionId) {
166
+ await this.adapter.storage.set(ACTIVE_SESSION_ID_KEY, sessionId);
167
+ } else {
168
+ await this.adapter.storage.remove(ACTIVE_SESSION_ID_KEY);
169
+ }
170
+ this.cachedActiveSessionId = sessionId;
171
+ } catch (error) {
172
+ console.warn('[SessionManager] Failed to save active session ID:', error);
173
+ }
174
+ }
175
+
176
+ /**
177
+ * Get all sessions
178
+ */
179
+ async getAllSessions() {
180
+ return await this.loadSessions();
181
+ }
182
+
183
+ /**
184
+ * Get current session
185
+ */
186
+ async getSession() {
187
+ await this.loadTokens();
188
+ const accessToken = this.getAccessToken();
189
+ if (!accessToken) {
190
+ return null;
191
+ }
192
+ try {
193
+ const decoded = jwtDecode(accessToken);
194
+ const sessionId = decoded.sessionId;
195
+ const userId = decoded.userId;
196
+ if (!sessionId || !userId) {
197
+ return null;
198
+ }
199
+ const sessions = await this.loadSessions();
200
+ const session = sessions.find(s => s.sessionId === sessionId);
201
+ if (session) {
202
+ return session;
203
+ }
204
+
205
+ // Create session from token if not found in storage
206
+ const device = await this.deviceManager.getCurrentDevice();
207
+ if (!device) {
208
+ return null;
209
+ }
210
+ const deviceInfo = await this.deviceManager.getDeviceInfo();
211
+ return {
212
+ sessionId,
213
+ userId,
214
+ deviceId: device.deviceId,
215
+ expiresAt: decoded.exp ? new Date(decoded.exp * 1000).toISOString() : new Date(Date.now() + 3600000).toISOString(),
216
+ lastActive: new Date().toISOString(),
217
+ deviceInfo,
218
+ isCurrent: true,
219
+ accessToken
220
+ };
221
+ } catch (error) {
222
+ console.warn('[SessionManager] Failed to decode token:', error);
223
+ return null;
224
+ }
225
+ }
226
+
227
+ /**
228
+ * Create a new session (sign in)
229
+ */
230
+ async createSession(publicKey, signature, timestamp, deviceName) {
231
+ if (!this.baseURL) {
232
+ throw createIdentitySessionError(IdentitySessionErrorCodes.SESSION_CREATION_FAILED, 'Base URL not set for session creation');
233
+ }
234
+ const device = await this.deviceManager.getCurrentDevice();
235
+ if (!device) {
236
+ throw createIdentitySessionError(IdentitySessionErrorCodes.DEVICE_NOT_FOUND, 'Device not found');
237
+ }
238
+
239
+ // Update device name if provided
240
+ if (deviceName) {
241
+ await this.deviceManager.updateDeviceName(deviceName);
242
+ }
243
+ const deviceInfo = await this.deviceManager.getDeviceInfo();
244
+ try {
245
+ const response = await this.adapter.fetch.fetch(`${this.baseURL}/api/auth/login`, {
246
+ method: 'POST',
247
+ headers: {
248
+ 'Content-Type': 'application/json',
249
+ 'Accept': 'application/json'
250
+ },
251
+ body: JSON.stringify({
252
+ publicKey,
253
+ signature,
254
+ timestamp,
255
+ deviceId: device.deviceId,
256
+ deviceInfo
257
+ })
258
+ });
259
+ if (!response.ok) {
260
+ const errorData = await response.json().catch(() => ({}));
261
+ throw createIdentitySessionError(IdentitySessionErrorCodes.SESSION_CREATION_FAILED, errorData.message || `Login failed: ${response.status}`, response.status);
262
+ }
263
+ const data = await response.json();
264
+ const {
265
+ accessToken,
266
+ refreshToken,
267
+ user,
268
+ sessionId,
269
+ deviceId,
270
+ expiresAt
271
+ } = data;
272
+ if (!accessToken || !sessionId) {
273
+ throw createIdentitySessionError(IdentitySessionErrorCodes.SESSION_CREATION_FAILED, 'Invalid response from login endpoint');
274
+ }
275
+
276
+ // Set tokens
277
+ await this.setTokens(accessToken, refreshToken);
278
+
279
+ // Create session object
280
+ const session = {
281
+ sessionId,
282
+ userId: user.id || user._id,
283
+ // MongoDB ObjectId
284
+ deviceId: deviceId || device.deviceId,
285
+ expiresAt: expiresAt || new Date(Date.now() + 3600000).toISOString(),
286
+ lastActive: new Date().toISOString(),
287
+ deviceInfo,
288
+ isCurrent: true,
289
+ accessToken,
290
+ refreshToken
291
+ };
292
+
293
+ // Save session
294
+ const sessions = await this.loadSessions();
295
+ const existingIndex = sessions.findIndex(s => s.sessionId === sessionId);
296
+ if (existingIndex >= 0) {
297
+ sessions[existingIndex] = session;
298
+ } else {
299
+ sessions.push(session);
300
+ }
301
+
302
+ // Mark all other sessions as not current
303
+ sessions.forEach(s => {
304
+ if (s.sessionId !== sessionId) {
305
+ s.isCurrent = false;
306
+ }
307
+ });
308
+ await this.saveSessions(sessions);
309
+ await this.setActiveSessionId(sessionId);
310
+ return session;
311
+ } catch (error) {
312
+ if (error instanceof Error && error.name === 'IdentitySessionError') {
313
+ throw error;
314
+ }
315
+ throw createIdentitySessionError(IdentitySessionErrorCodes.SESSION_CREATION_FAILED, `Failed to create session: ${error instanceof Error ? error.message : String(error)}`);
316
+ }
317
+ }
318
+
319
+ /**
320
+ * Refresh current session
321
+ */
322
+ async refreshSession() {
323
+ const session = await this.getSession();
324
+ if (!session) {
325
+ throw createIdentitySessionError(IdentitySessionErrorCodes.SESSION_NOT_FOUND, 'No active session to refresh');
326
+ }
327
+
328
+ // Refresh token first
329
+ await this.refreshManager.refreshTokenIfNeeded(() => this.getAccessToken(), (accessToken, refreshToken) => this.setTokens(accessToken, refreshToken), () => this.clearTokens());
330
+
331
+ // Get updated session
332
+ const refreshedSession = await this.getSession();
333
+ if (!refreshedSession) {
334
+ throw createIdentitySessionError(IdentitySessionErrorCodes.SESSION_REFRESH_FAILED, 'Session not found after refresh');
335
+ }
336
+
337
+ // Update session in storage
338
+ const sessions = await this.loadSessions();
339
+ const index = sessions.findIndex(s => s.sessionId === refreshedSession.sessionId);
340
+ if (index >= 0) {
341
+ sessions[index] = refreshedSession;
342
+ await this.saveSessions(sessions);
343
+ }
344
+ return refreshedSession;
345
+ }
346
+
347
+ /**
348
+ * Invalidate a session
349
+ */
350
+ async invalidateSession(sessionId) {
351
+ const targetSessionId = sessionId || (await this.getActiveSessionId());
352
+ if (!targetSessionId) {
353
+ return;
354
+ }
355
+ if (!this.baseURL) {
356
+ // Just clear local storage if no base URL
357
+ await this.clearLocalSession(targetSessionId);
358
+ return;
359
+ }
360
+ try {
361
+ await this.adapter.fetch.fetch(`${this.baseURL}/api/session/${targetSessionId}/logout`, {
362
+ method: 'POST',
363
+ headers: {
364
+ 'Accept': 'application/json'
365
+ }
366
+ });
367
+ } catch (error) {
368
+ // Continue with local cleanup even if API call fails
369
+ console.warn('[SessionManager] Failed to invalidate session on server:', error);
370
+ }
371
+ await this.clearLocalSession(targetSessionId);
372
+ }
373
+
374
+ /**
375
+ * Clear local session data
376
+ */
377
+ async clearLocalSession(sessionId) {
378
+ const sessions = await this.loadSessions();
379
+ const filtered = sessions.filter(s => s.sessionId !== sessionId);
380
+ await this.saveSessions(filtered);
381
+
382
+ // If this was the active session, clear it
383
+ const activeSessionId = await this.getActiveSessionId();
384
+ if (activeSessionId === sessionId) {
385
+ await this.setActiveSessionId(null);
386
+ await this.clearTokens();
387
+ }
388
+ }
389
+
390
+ /**
391
+ * Invalidate all sessions
392
+ */
393
+ async invalidateAllSessions() {
394
+ const sessions = await this.loadSessions();
395
+ if (this.baseURL) {
396
+ // Try to invalidate all sessions on server
397
+ await Promise.allSettled(sessions.map(session => this.adapter.fetch.fetch(`${this.baseURL}/api/session/${session.sessionId}/logout`, {
398
+ method: 'POST',
399
+ headers: {
400
+ 'Accept': 'application/json'
401
+ }
402
+ }).catch(() => {
403
+ // Ignore individual failures
404
+ })));
405
+ }
406
+
407
+ // Clear all local session data
408
+ await this.saveSessions([]);
409
+ await this.setActiveSessionId(null);
410
+ await this.clearTokens();
411
+ this.invalidateCache();
412
+ }
413
+
414
+ /**
415
+ * Initialize - load tokens and sessions from storage
416
+ */
417
+ async initialize() {
418
+ await this.loadTokens();
419
+ await this.loadSessions();
420
+ }
421
+ }
422
+ //# sourceMappingURL=SessionManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["jwtDecode","createIdentitySessionError","IdentitySessionErrorCodes","SESSION_STORAGE_KEY","ACTIVE_SESSION_ID_KEY","TOKEN_STORAGE_KEY","SessionManager","baseURL","cachedSessions","cachedActiveSessionId","tokenStore","accessToken","refreshToken","constructor","adapter","deviceManager","refreshManager","setBaseURL","invalidateCache","loadTokens","stored","storage","get","JSON","parse","error","console","warn","saveTokens","set","stringify","getAccessToken","getRefreshToken","setTokens","clearTokens","loadSessions","saveSessions","sessions","getActiveSessionId","setActiveSessionId","sessionId","remove","getAllSessions","getSession","decoded","userId","session","find","s","device","getCurrentDevice","deviceInfo","getDeviceInfo","deviceId","expiresAt","exp","Date","toISOString","now","lastActive","isCurrent","createSession","publicKey","signature","timestamp","deviceName","SESSION_CREATION_FAILED","DEVICE_NOT_FOUND","updateDeviceName","response","fetch","method","headers","body","ok","errorData","json","catch","message","status","data","user","id","_id","existingIndex","findIndex","push","forEach","Error","name","String","refreshSession","SESSION_NOT_FOUND","refreshTokenIfNeeded","refreshedSession","SESSION_REFRESH_FAILED","index","invalidateSession","targetSessionId","clearLocalSession","filtered","filter","activeSessionId","invalidateAllSessions","Promise","allSettled","map","initialize"],"sourceRoot":"../../../../src","sources":["core/identity-session/SessionManager.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Create Identity Session Core
5
+ *
6
+ * Factory function to create and initialize IdentitySessionCore
7
+ */
8
+
9
+ import { createPlatformAdapter } from '../../adapters';
10
+ import { IdentitySessionCore } from './IdentitySessionCore';
11
+
12
+ /**
13
+ * Create and initialize IdentitySessionCore
14
+ */
15
+ export async function createIdentitySessionCore(baseURL) {
16
+ const adapter = await createPlatformAdapter();
17
+ const core = new IdentitySessionCore(adapter, baseURL);
18
+ await core.initialize();
19
+ return core;
20
+ }
21
+ //# sourceMappingURL=createIdentitySessionCore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createPlatformAdapter","IdentitySessionCore","createIdentitySessionCore","baseURL","adapter","core","initialize"],"sourceRoot":"../../../../src","sources":["core/identity-session/createIdentitySessionCore.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAEA,SAASA,qBAAqB,QAAQ,gBAAgB;AACtD,SAASC,mBAAmB,QAAQ,uBAAuB;;AAE3D;AACA;AACA;AACA,OAAO,eAAeC,yBAAyBA,CAACC,OAAgB,EAAgC;EAC9F,MAAMC,OAAO,GAAG,MAAMJ,qBAAqB,CAAC,CAAC;EAC7C,MAAMK,IAAI,GAAG,IAAIJ,mBAAmB,CAACG,OAAO,EAAED,OAAO,CAAC;EACtD,MAAME,IAAI,CAACC,UAAU,CAAC,CAAC;EACvB,OAAOD,IAAI;AACb","ignoreList":[]}
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Identity and Session Error Codes
5
+ *
6
+ * Aligned with backend error codes for consistency across the ecosystem
7
+ */
8
+
9
+ export const IdentitySessionErrorCodes = {
10
+ // Authentication errors
11
+ UNAUTHORIZED: 'UNAUTHORIZED',
12
+ FORBIDDEN: 'FORBIDDEN',
13
+ INVALID_TOKEN: 'INVALID_TOKEN',
14
+ MISSING_TOKEN: 'MISSING_TOKEN',
15
+ TOKEN_EXPIRED: 'TOKEN_EXPIRED',
16
+ TOKEN_NOT_YET_VALID: 'TOKEN_NOT_YET_VALID',
17
+ INVALID_SIGNATURE: 'INVALID_SIGNATURE',
18
+ MALFORMED_TOKEN: 'MALFORMED_TOKEN',
19
+ INVALID_SESSION: 'INVALID_SESSION',
20
+ // Identity errors
21
+ IDENTITY_NOT_FOUND: 'IDENTITY_NOT_FOUND',
22
+ IDENTITY_ALREADY_EXISTS: 'IDENTITY_ALREADY_EXISTS',
23
+ IDENTITY_NOT_AVAILABLE_ON_WEB: 'IDENTITY_NOT_AVAILABLE_ON_WEB',
24
+ IDENTITY_NOT_SYNCED: 'IDENTITY_NOT_SYNCED',
25
+ INVALID_PUBLIC_KEY: 'INVALID_PUBLIC_KEY',
26
+ INVALID_PRIVATE_KEY: 'INVALID_PRIVATE_KEY',
27
+ IDENTITY_CREATION_FAILED: 'IDENTITY_CREATION_FAILED',
28
+ IDENTITY_IMPORT_FAILED: 'IDENTITY_IMPORT_FAILED',
29
+ IDENTITY_DELETE_FAILED: 'IDENTITY_DELETE_FAILED',
30
+ BACKUP_DECRYPTION_FAILED: 'BACKUP_DECRYPTION_FAILED',
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
+ // Device errors
38
+ DEVICE_NOT_FOUND: 'DEVICE_NOT_FOUND',
39
+ DEVICE_CREATION_FAILED: 'DEVICE_CREATION_FAILED',
40
+ // Validation errors
41
+ VALIDATION_ERROR: 'VALIDATION_ERROR',
42
+ BAD_REQUEST: 'BAD_REQUEST',
43
+ MISSING_PARAMETER: 'MISSING_PARAMETER',
44
+ INVALID_FORMAT: 'INVALID_FORMAT',
45
+ // Resource errors
46
+ NOT_FOUND: 'NOT_FOUND',
47
+ ALREADY_EXISTS: 'ALREADY_EXISTS',
48
+ CONFLICT: 'CONFLICT',
49
+ // Server errors
50
+ INTERNAL_ERROR: 'INTERNAL_ERROR',
51
+ SERVICE_UNAVAILABLE: 'SERVICE_UNAVAILABLE',
52
+ TIMEOUT: 'TIMEOUT',
53
+ // Network errors
54
+ NETWORK_ERROR: 'NETWORK_ERROR',
55
+ CONNECTION_FAILED: 'CONNECTION_FAILED',
56
+ // Storage errors
57
+ STORAGE_ERROR: 'STORAGE_ERROR',
58
+ STORAGE_NOT_AVAILABLE: 'STORAGE_NOT_AVAILABLE',
59
+ SECURE_STORAGE_NOT_AVAILABLE: 'SECURE_STORAGE_NOT_AVAILABLE',
60
+ // Unknown
61
+ UNKNOWN_ERROR: 'UNKNOWN_ERROR'
62
+ };
63
+ /**
64
+ * IdentitySessionError - Custom error class for identity and session operations
65
+ */
66
+ export class IdentitySessionError extends Error {
67
+ constructor(message, code = IdentitySessionErrorCodes.UNKNOWN_ERROR, statusCode = 500) {
68
+ super(message);
69
+ this.name = 'IdentitySessionError';
70
+ this.code = code;
71
+ this.statusCode = statusCode;
72
+ Object.setPrototypeOf(this, IdentitySessionError.prototype);
73
+ }
74
+ }
75
+
76
+ /**
77
+ * Create error from code
78
+ */
79
+ export function createIdentitySessionError(code, message, statusCode) {
80
+ const defaultMessages = {
81
+ [IdentitySessionErrorCodes.UNAUTHORIZED]: 'Unauthorized',
82
+ [IdentitySessionErrorCodes.FORBIDDEN]: 'Forbidden',
83
+ [IdentitySessionErrorCodes.INVALID_TOKEN]: 'Invalid token',
84
+ [IdentitySessionErrorCodes.MISSING_TOKEN]: 'Missing token',
85
+ [IdentitySessionErrorCodes.TOKEN_EXPIRED]: 'Token has expired',
86
+ [IdentitySessionErrorCodes.TOKEN_NOT_YET_VALID]: 'Token not yet valid',
87
+ [IdentitySessionErrorCodes.INVALID_SIGNATURE]: 'Token signature is invalid',
88
+ [IdentitySessionErrorCodes.MALFORMED_TOKEN]: 'Token format is invalid',
89
+ [IdentitySessionErrorCodes.INVALID_SESSION]: 'Invalid session',
90
+ [IdentitySessionErrorCodes.IDENTITY_NOT_FOUND]: 'Identity not found',
91
+ [IdentitySessionErrorCodes.IDENTITY_ALREADY_EXISTS]: 'Identity already exists',
92
+ [IdentitySessionErrorCodes.IDENTITY_NOT_AVAILABLE_ON_WEB]: 'Identity operations are only available on native platforms',
93
+ [IdentitySessionErrorCodes.IDENTITY_NOT_SYNCED]: 'Identity not synced with server',
94
+ [IdentitySessionErrorCodes.INVALID_PUBLIC_KEY]: 'Invalid public key',
95
+ [IdentitySessionErrorCodes.INVALID_PRIVATE_KEY]: 'Invalid private key',
96
+ [IdentitySessionErrorCodes.IDENTITY_CREATION_FAILED]: 'Failed to create identity',
97
+ [IdentitySessionErrorCodes.IDENTITY_IMPORT_FAILED]: 'Failed to import identity',
98
+ [IdentitySessionErrorCodes.IDENTITY_DELETE_FAILED]: 'Failed to delete identity',
99
+ [IdentitySessionErrorCodes.BACKUP_DECRYPTION_FAILED]: 'Failed to decrypt backup',
100
+ [IdentitySessionErrorCodes.SESSION_NOT_FOUND]: 'Session not found',
101
+ [IdentitySessionErrorCodes.SESSION_EXPIRED]: 'Session expired',
102
+ [IdentitySessionErrorCodes.SESSION_INVALID]: 'Session invalid',
103
+ [IdentitySessionErrorCodes.SESSION_CREATION_FAILED]: 'Failed to create session',
104
+ [IdentitySessionErrorCodes.SESSION_REFRESH_FAILED]: 'Failed to refresh session',
105
+ [IdentitySessionErrorCodes.DEVICE_NOT_FOUND]: 'Device not found',
106
+ [IdentitySessionErrorCodes.DEVICE_CREATION_FAILED]: 'Failed to create device',
107
+ [IdentitySessionErrorCodes.VALIDATION_ERROR]: 'Validation error',
108
+ [IdentitySessionErrorCodes.BAD_REQUEST]: 'Bad request',
109
+ [IdentitySessionErrorCodes.MISSING_PARAMETER]: 'Missing required parameter',
110
+ [IdentitySessionErrorCodes.INVALID_FORMAT]: 'Invalid format',
111
+ [IdentitySessionErrorCodes.NOT_FOUND]: 'Resource not found',
112
+ [IdentitySessionErrorCodes.ALREADY_EXISTS]: 'Resource already exists',
113
+ [IdentitySessionErrorCodes.CONFLICT]: 'Conflict',
114
+ [IdentitySessionErrorCodes.INTERNAL_ERROR]: 'Internal server error',
115
+ [IdentitySessionErrorCodes.SERVICE_UNAVAILABLE]: 'Service unavailable',
116
+ [IdentitySessionErrorCodes.TIMEOUT]: 'Request timeout',
117
+ [IdentitySessionErrorCodes.NETWORK_ERROR]: 'Network error',
118
+ [IdentitySessionErrorCodes.CONNECTION_FAILED]: 'Connection failed',
119
+ [IdentitySessionErrorCodes.STORAGE_ERROR]: 'Storage error',
120
+ [IdentitySessionErrorCodes.STORAGE_NOT_AVAILABLE]: 'Storage not available',
121
+ [IdentitySessionErrorCodes.SECURE_STORAGE_NOT_AVAILABLE]: 'Secure storage not available',
122
+ [IdentitySessionErrorCodes.UNKNOWN_ERROR]: 'Unknown error'
123
+ };
124
+ const defaultStatusCodes = {
125
+ [IdentitySessionErrorCodes.UNAUTHORIZED]: 401,
126
+ [IdentitySessionErrorCodes.FORBIDDEN]: 403,
127
+ [IdentitySessionErrorCodes.INVALID_TOKEN]: 401,
128
+ [IdentitySessionErrorCodes.MISSING_TOKEN]: 401,
129
+ [IdentitySessionErrorCodes.TOKEN_EXPIRED]: 401,
130
+ [IdentitySessionErrorCodes.TOKEN_NOT_YET_VALID]: 401,
131
+ [IdentitySessionErrorCodes.INVALID_SIGNATURE]: 401,
132
+ [IdentitySessionErrorCodes.MALFORMED_TOKEN]: 401,
133
+ [IdentitySessionErrorCodes.INVALID_SESSION]: 401,
134
+ [IdentitySessionErrorCodes.IDENTITY_NOT_FOUND]: 404,
135
+ [IdentitySessionErrorCodes.IDENTITY_ALREADY_EXISTS]: 409,
136
+ [IdentitySessionErrorCodes.IDENTITY_NOT_AVAILABLE_ON_WEB]: 400,
137
+ [IdentitySessionErrorCodes.IDENTITY_NOT_SYNCED]: 400,
138
+ [IdentitySessionErrorCodes.INVALID_PUBLIC_KEY]: 400,
139
+ [IdentitySessionErrorCodes.INVALID_PRIVATE_KEY]: 400,
140
+ [IdentitySessionErrorCodes.IDENTITY_CREATION_FAILED]: 500,
141
+ [IdentitySessionErrorCodes.IDENTITY_IMPORT_FAILED]: 500,
142
+ [IdentitySessionErrorCodes.IDENTITY_DELETE_FAILED]: 500,
143
+ [IdentitySessionErrorCodes.BACKUP_DECRYPTION_FAILED]: 400,
144
+ [IdentitySessionErrorCodes.SESSION_NOT_FOUND]: 404,
145
+ [IdentitySessionErrorCodes.SESSION_EXPIRED]: 401,
146
+ [IdentitySessionErrorCodes.SESSION_INVALID]: 401,
147
+ [IdentitySessionErrorCodes.SESSION_CREATION_FAILED]: 500,
148
+ [IdentitySessionErrorCodes.SESSION_REFRESH_FAILED]: 500,
149
+ [IdentitySessionErrorCodes.DEVICE_NOT_FOUND]: 404,
150
+ [IdentitySessionErrorCodes.DEVICE_CREATION_FAILED]: 500,
151
+ [IdentitySessionErrorCodes.VALIDATION_ERROR]: 400,
152
+ [IdentitySessionErrorCodes.BAD_REQUEST]: 400,
153
+ [IdentitySessionErrorCodes.MISSING_PARAMETER]: 400,
154
+ [IdentitySessionErrorCodes.INVALID_FORMAT]: 400,
155
+ [IdentitySessionErrorCodes.NOT_FOUND]: 404,
156
+ [IdentitySessionErrorCodes.ALREADY_EXISTS]: 409,
157
+ [IdentitySessionErrorCodes.CONFLICT]: 409,
158
+ [IdentitySessionErrorCodes.INTERNAL_ERROR]: 500,
159
+ [IdentitySessionErrorCodes.SERVICE_UNAVAILABLE]: 503,
160
+ [IdentitySessionErrorCodes.TIMEOUT]: 408,
161
+ [IdentitySessionErrorCodes.NETWORK_ERROR]: 503,
162
+ [IdentitySessionErrorCodes.CONNECTION_FAILED]: 503,
163
+ [IdentitySessionErrorCodes.STORAGE_ERROR]: 500,
164
+ [IdentitySessionErrorCodes.STORAGE_NOT_AVAILABLE]: 503,
165
+ [IdentitySessionErrorCodes.SECURE_STORAGE_NOT_AVAILABLE]: 503,
166
+ [IdentitySessionErrorCodes.UNKNOWN_ERROR]: 500
167
+ };
168
+ return new IdentitySessionError(message || defaultMessages[code], code, statusCode || defaultStatusCodes[code]);
169
+ }
170
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["IdentitySessionErrorCodes","UNAUTHORIZED","FORBIDDEN","INVALID_TOKEN","MISSING_TOKEN","TOKEN_EXPIRED","TOKEN_NOT_YET_VALID","INVALID_SIGNATURE","MALFORMED_TOKEN","INVALID_SESSION","IDENTITY_NOT_FOUND","IDENTITY_ALREADY_EXISTS","IDENTITY_NOT_AVAILABLE_ON_WEB","IDENTITY_NOT_SYNCED","INVALID_PUBLIC_KEY","INVALID_PRIVATE_KEY","IDENTITY_CREATION_FAILED","IDENTITY_IMPORT_FAILED","IDENTITY_DELETE_FAILED","BACKUP_DECRYPTION_FAILED","SESSION_NOT_FOUND","SESSION_EXPIRED","SESSION_INVALID","SESSION_CREATION_FAILED","SESSION_REFRESH_FAILED","DEVICE_NOT_FOUND","DEVICE_CREATION_FAILED","VALIDATION_ERROR","BAD_REQUEST","MISSING_PARAMETER","INVALID_FORMAT","NOT_FOUND","ALREADY_EXISTS","CONFLICT","INTERNAL_ERROR","SERVICE_UNAVAILABLE","TIMEOUT","NETWORK_ERROR","CONNECTION_FAILED","STORAGE_ERROR","STORAGE_NOT_AVAILABLE","SECURE_STORAGE_NOT_AVAILABLE","UNKNOWN_ERROR","IdentitySessionError","Error","constructor","message","code","statusCode","name","Object","setPrototypeOf","prototype","createIdentitySessionError","defaultMessages","defaultStatusCodes"],"sourceRoot":"../../../../src","sources":["core/identity-session/errors.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Identity Session Core
5
+ *
6
+ * Main entry point for identity and session management
7
+ */
8
+
9
+ export { IdentitySessionCore } from './IdentitySessionCore';
10
+ export { IdentityManager } from './IdentityManager';
11
+ export { SessionManager } from './SessionManager';
12
+ export { DeviceManager } from './DeviceManager';
13
+ export { RefreshManager } from './RefreshManager';
14
+ export { createIdentitySessionCore } from './createIdentitySessionCore';
15
+ export * from './types';
16
+ export * from './errors';
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["IdentitySessionCore","IdentityManager","SessionManager","DeviceManager","RefreshManager","createIdentitySessionCore"],"sourceRoot":"../../../../src","sources":["core/identity-session/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAEA,SAASA,mBAAmB,QAAQ,uBAAuB;AAC3D,SAASC,eAAe,QAAQ,mBAAmB;AACnD,SAASC,cAAc,QAAQ,kBAAkB;AACjD,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,cAAc,QAAQ,kBAAkB;AACjD,SAASC,yBAAyB,QAAQ,6BAA6B;AACvE,cAAc,SAAS;AACvB,cAAc,UAAU","ignoreList":[]}