@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,163 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createNodeStorageAdapter = createNodeStorageAdapter;
7
+ var fs = _interopRequireWildcard(require("fs/promises"));
8
+ var path = _interopRequireWildcard(require("path"));
9
+ var os = _interopRequireWildcard(require("os"));
10
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
11
+ /**
12
+ * Node.js Storage Adapter
13
+ *
14
+ * Uses filesystem for storage
15
+ */
16
+
17
+ /**
18
+ * Storage Adapter Interface
19
+ */
20
+
21
+ /**
22
+ * Get storage directory
23
+ */
24
+ function getStorageDir() {
25
+ const homeDir = os.homedir();
26
+ return path.join(homeDir, '.oxy', 'storage');
27
+ }
28
+
29
+ /**
30
+ * Get secure storage directory
31
+ */
32
+ function getSecureStorageDir() {
33
+ const homeDir = os.homedir();
34
+ return path.join(homeDir, '.oxy', 'secure');
35
+ }
36
+
37
+ /**
38
+ * Ensure directory exists
39
+ */
40
+ async function ensureDir(dirPath) {
41
+ try {
42
+ await fs.mkdir(dirPath, {
43
+ recursive: true
44
+ });
45
+ } catch (error) {
46
+ // Ignore if already exists
47
+ if (error.code !== 'EEXIST') {
48
+ throw error;
49
+ }
50
+ }
51
+ }
52
+
53
+ /**
54
+ * Get file path for a key
55
+ */
56
+ function getFilePath(key, secure = false) {
57
+ const baseDir = secure ? getSecureStorageDir() : getStorageDir();
58
+ // Sanitize key to prevent directory traversal
59
+ const sanitizedKey = key.replace(/[^a-zA-Z0-9_-]/g, '_');
60
+ return path.join(baseDir, `${sanitizedKey}.json`);
61
+ }
62
+
63
+ /**
64
+ * Create Node Storage Adapter
65
+ */
66
+ async function createNodeStorageAdapter() {
67
+ // Ensure directories exist
68
+ await ensureDir(getStorageDir());
69
+ await ensureDir(getSecureStorageDir());
70
+ return {
71
+ // Secure storage
72
+ async secureGet(key) {
73
+ try {
74
+ const filePath = getFilePath(key, true);
75
+ const data = await fs.readFile(filePath, 'utf-8');
76
+ const parsed = JSON.parse(data);
77
+ return parsed.value || null;
78
+ } catch (error) {
79
+ if (error.code === 'ENOENT') {
80
+ return null;
81
+ }
82
+ console.warn('[NodeStorage] Failed to get secure item:', error);
83
+ return null;
84
+ }
85
+ },
86
+ async secureSet(key, value) {
87
+ try {
88
+ const filePath = getFilePath(key, true);
89
+ const data = JSON.stringify({
90
+ value,
91
+ timestamp: Date.now()
92
+ });
93
+ await fs.writeFile(filePath, data, {
94
+ mode: 0o600
95
+ }); // Read/write for owner only
96
+ } catch (error) {
97
+ console.warn('[NodeStorage] Failed to set secure item:', error);
98
+ throw error;
99
+ }
100
+ },
101
+ async secureDelete(key) {
102
+ try {
103
+ const filePath = getFilePath(key, true);
104
+ await fs.unlink(filePath);
105
+ } catch (error) {
106
+ if (error.code !== 'ENOENT') {
107
+ console.warn('[NodeStorage] Failed to delete secure item:', error);
108
+ }
109
+ }
110
+ },
111
+ isSecureStorageAvailable() {
112
+ return true;
113
+ },
114
+ // Regular storage
115
+ async get(key) {
116
+ try {
117
+ const filePath = getFilePath(key, false);
118
+ const data = await fs.readFile(filePath, 'utf-8');
119
+ const parsed = JSON.parse(data);
120
+ return parsed.value || null;
121
+ } catch (error) {
122
+ if (error.code === 'ENOENT') {
123
+ return null;
124
+ }
125
+ console.warn('[NodeStorage] Failed to get item:', error);
126
+ return null;
127
+ }
128
+ },
129
+ async set(key, value) {
130
+ try {
131
+ const filePath = getFilePath(key, false);
132
+ const data = JSON.stringify({
133
+ value,
134
+ timestamp: Date.now()
135
+ });
136
+ await fs.writeFile(filePath, data);
137
+ } catch (error) {
138
+ console.warn('[NodeStorage] Failed to set item:', error);
139
+ throw error;
140
+ }
141
+ },
142
+ async remove(key) {
143
+ try {
144
+ const filePath = getFilePath(key, false);
145
+ await fs.unlink(filePath);
146
+ } catch (error) {
147
+ if (error.code !== 'ENOENT') {
148
+ console.warn('[NodeStorage] Failed to remove item:', error);
149
+ }
150
+ }
151
+ },
152
+ async clear() {
153
+ try {
154
+ const storageDir = getStorageDir();
155
+ const files = await fs.readdir(storageDir);
156
+ await Promise.all(files.map(file => fs.unlink(path.join(storageDir, file))));
157
+ } catch (error) {
158
+ console.warn('[NodeStorage] Failed to clear storage:', error);
159
+ }
160
+ }
161
+ };
162
+ }
163
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["fs","_interopRequireWildcard","require","path","os","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","getStorageDir","homeDir","homedir","join","getSecureStorageDir","ensureDir","dirPath","mkdir","recursive","error","code","getFilePath","key","secure","baseDir","sanitizedKey","replace","createNodeStorageAdapter","secureGet","filePath","data","readFile","parsed","JSON","parse","value","console","warn","secureSet","stringify","timestamp","Date","now","writeFile","mode","secureDelete","unlink","isSecureStorageAvailable","remove","clear","storageDir","files","readdir","Promise","all","map","file"],"sourceRoot":"../../../../src","sources":["adapters/node/storage.ts"],"mappings":";;;;;;AAMA,IAAAA,EAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,IAAA,GAAAF,uBAAA,CAAAC,OAAA;AACA,IAAAE,EAAA,GAAAH,uBAAA,CAAAC,OAAA;AAAyB,SAAAD,wBAAAI,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAN,uBAAA,YAAAA,CAAAI,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AARzB;AACA;AACA;AACA;AACA;;AAMA;AACA;AACA;;AAeA;AACA;AACA;AACA,SAASkB,aAAaA,CAAA,EAAW;EAC/B,MAAMC,OAAO,GAAGrB,EAAE,CAACsB,OAAO,CAAC,CAAC;EAC5B,OAAOvB,IAAI,CAACwB,IAAI,CAACF,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC;AAC9C;;AAEA;AACA;AACA;AACA,SAASG,mBAAmBA,CAAA,EAAW;EACrC,MAAMH,OAAO,GAAGrB,EAAE,CAACsB,OAAO,CAAC,CAAC;EAC5B,OAAOvB,IAAI,CAACwB,IAAI,CAACF,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC;AAC7C;;AAEA;AACA;AACA;AACA,eAAeI,SAASA,CAACC,OAAe,EAAiB;EACvD,IAAI;IACF,MAAM9B,EAAE,CAAC+B,KAAK,CAACD,OAAO,EAAE;MAAEE,SAAS,EAAE;IAAK,CAAC,CAAC;EAC9C,CAAC,CAAC,OAAOC,KAAK,EAAE;IACd;IACA,IAAKA,KAAK,CAA2BC,IAAI,KAAK,QAAQ,EAAE;MACtD,MAAMD,KAAK;IACb;EACF;AACF;;AAEA;AACA;AACA;AACA,SAASE,WAAWA,CAACC,GAAW,EAAEC,MAAe,GAAG,KAAK,EAAU;EACjE,MAAMC,OAAO,GAAGD,MAAM,GAAGT,mBAAmB,CAAC,CAAC,GAAGJ,aAAa,CAAC,CAAC;EAChE;EACA,MAAMe,YAAY,GAAGH,GAAG,CAACI,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC;EACxD,OAAOrC,IAAI,CAACwB,IAAI,CAACW,OAAO,EAAE,GAAGC,YAAY,OAAO,CAAC;AACnD;;AAEA;AACA;AACA;AACO,eAAeE,wBAAwBA,CAAA,EAA4B;EACxE;EACA,MAAMZ,SAAS,CAACL,aAAa,CAAC,CAAC,CAAC;EAChC,MAAMK,SAAS,CAACD,mBAAmB,CAAC,CAAC,CAAC;EAEtC,OAAO;IACL;IACA,MAAMc,SAASA,CAACN,GAAW,EAA0B;MACnD,IAAI;QACF,MAAMO,QAAQ,GAAGR,WAAW,CAACC,GAAG,EAAE,IAAI,CAAC;QACvC,MAAMQ,IAAI,GAAG,MAAM5C,EAAE,CAAC6C,QAAQ,CAACF,QAAQ,EAAE,OAAO,CAAC;QACjD,MAAMG,MAAM,GAAGC,IAAI,CAACC,KAAK,CAACJ,IAAI,CAAC;QAC/B,OAAOE,MAAM,CAACG,KAAK,IAAI,IAAI;MAC7B,CAAC,CAAC,OAAOhB,KAAK,EAAE;QACd,IAAKA,KAAK,CAA2BC,IAAI,KAAK,QAAQ,EAAE;UACtD,OAAO,IAAI;QACb;QACAgB,OAAO,CAACC,IAAI,CAAC,0CAA0C,EAAElB,KAAK,CAAC;QAC/D,OAAO,IAAI;MACb;IACF,CAAC;IAED,MAAMmB,SAASA,CAAChB,GAAW,EAAEa,KAAa,EAAiB;MACzD,IAAI;QACF,MAAMN,QAAQ,GAAGR,WAAW,CAACC,GAAG,EAAE,IAAI,CAAC;QACvC,MAAMQ,IAAI,GAAGG,IAAI,CAACM,SAAS,CAAC;UAAEJ,KAAK;UAAEK,SAAS,EAAEC,IAAI,CAACC,GAAG,CAAC;QAAE,CAAC,CAAC;QAC7D,MAAMxD,EAAE,CAACyD,SAAS,CAACd,QAAQ,EAAEC,IAAI,EAAE;UAAEc,IAAI,EAAE;QAAM,CAAC,CAAC,CAAC,CAAC;MACvD,CAAC,CAAC,OAAOzB,KAAK,EAAE;QACdiB,OAAO,CAACC,IAAI,CAAC,0CAA0C,EAAElB,KAAK,CAAC;QAC/D,MAAMA,KAAK;MACb;IACF,CAAC;IAED,MAAM0B,YAAYA,CAACvB,GAAW,EAAiB;MAC7C,IAAI;QACF,MAAMO,QAAQ,GAAGR,WAAW,CAACC,GAAG,EAAE,IAAI,CAAC;QACvC,MAAMpC,EAAE,CAAC4D,MAAM,CAACjB,QAAQ,CAAC;MAC3B,CAAC,CAAC,OAAOV,KAAK,EAAE;QACd,IAAKA,KAAK,CAA2BC,IAAI,KAAK,QAAQ,EAAE;UACtDgB,OAAO,CAACC,IAAI,CAAC,6CAA6C,EAAElB,KAAK,CAAC;QACpE;MACF;IACF,CAAC;IAED4B,wBAAwBA,CAAA,EAAY;MAClC,OAAO,IAAI;IACb,CAAC;IAED;IACA,MAAM5C,GAAGA,CAACmB,GAAW,EAA0B;MAC7C,IAAI;QACF,MAAMO,QAAQ,GAAGR,WAAW,CAACC,GAAG,EAAE,KAAK,CAAC;QACxC,MAAMQ,IAAI,GAAG,MAAM5C,EAAE,CAAC6C,QAAQ,CAACF,QAAQ,EAAE,OAAO,CAAC;QACjD,MAAMG,MAAM,GAAGC,IAAI,CAACC,KAAK,CAACJ,IAAI,CAAC;QAC/B,OAAOE,MAAM,CAACG,KAAK,IAAI,IAAI;MAC7B,CAAC,CAAC,OAAOhB,KAAK,EAAE;QACd,IAAKA,KAAK,CAA2BC,IAAI,KAAK,QAAQ,EAAE;UACtD,OAAO,IAAI;QACb;QACAgB,OAAO,CAACC,IAAI,CAAC,mCAAmC,EAAElB,KAAK,CAAC;QACxD,OAAO,IAAI;MACb;IACF,CAAC;IAED,MAAMf,GAAGA,CAACkB,GAAW,EAAEa,KAAa,EAAiB;MACnD,IAAI;QACF,MAAMN,QAAQ,GAAGR,WAAW,CAACC,GAAG,EAAE,KAAK,CAAC;QACxC,MAAMQ,IAAI,GAAGG,IAAI,CAACM,SAAS,CAAC;UAAEJ,KAAK;UAAEK,SAAS,EAAEC,IAAI,CAACC,GAAG,CAAC;QAAE,CAAC,CAAC;QAC7D,MAAMxD,EAAE,CAACyD,SAAS,CAACd,QAAQ,EAAEC,IAAI,CAAC;MACpC,CAAC,CAAC,OAAOX,KAAK,EAAE;QACdiB,OAAO,CAACC,IAAI,CAAC,mCAAmC,EAAElB,KAAK,CAAC;QACxD,MAAMA,KAAK;MACb;IACF,CAAC;IAED,MAAM6B,MAAMA,CAAC1B,GAAW,EAAiB;MACvC,IAAI;QACF,MAAMO,QAAQ,GAAGR,WAAW,CAACC,GAAG,EAAE,KAAK,CAAC;QACxC,MAAMpC,EAAE,CAAC4D,MAAM,CAACjB,QAAQ,CAAC;MAC3B,CAAC,CAAC,OAAOV,KAAK,EAAE;QACd,IAAKA,KAAK,CAA2BC,IAAI,KAAK,QAAQ,EAAE;UACtDgB,OAAO,CAACC,IAAI,CAAC,sCAAsC,EAAElB,KAAK,CAAC;QAC7D;MACF;IACF,CAAC;IAED,MAAM8B,KAAKA,CAAA,EAAkB;MAC3B,IAAI;QACF,MAAMC,UAAU,GAAGxC,aAAa,CAAC,CAAC;QAClC,MAAMyC,KAAK,GAAG,MAAMjE,EAAE,CAACkE,OAAO,CAACF,UAAU,CAAC;QAC1C,MAAMG,OAAO,CAACC,GAAG,CACfH,KAAK,CAACI,GAAG,CAACC,IAAI,IAAItE,EAAE,CAAC4D,MAAM,CAACzD,IAAI,CAACwB,IAAI,CAACqC,UAAU,EAAEM,IAAI,CAAC,CAAC,CAC1D,CAAC;MACH,CAAC,CAAC,OAAOrC,KAAK,EAAE;QACdiB,OAAO,CAACC,IAAI,CAAC,wCAAwC,EAAElB,KAAK,CAAC;MAC/D;IACF;EACF,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,237 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.DeviceManager = void 0;
7
+ var _errors = require("./errors");
8
+ /**
9
+ * Device Manager
10
+ *
11
+ * Manages device identification and device sessions (Native + Web)
12
+ */
13
+
14
+ const DEVICE_STORAGE_KEY = 'oxy_device_info';
15
+ /**
16
+ * Device Manager Class
17
+ */
18
+ class DeviceManager {
19
+ cachedDevice = null;
20
+ constructor(adapter) {
21
+ this.adapter = adapter;
22
+ }
23
+
24
+ /**
25
+ * Invalidate cached device
26
+ */
27
+ invalidateCache() {
28
+ this.cachedDevice = null;
29
+ }
30
+
31
+ /**
32
+ * Get device fingerprint
33
+ */
34
+ getDeviceFingerprint() {
35
+ const fingerprint = {
36
+ userAgent: typeof navigator !== 'undefined' ? navigator.userAgent : 'unknown',
37
+ platform: typeof navigator !== 'undefined' ? navigator.platform : 'unknown',
38
+ language: typeof navigator !== 'undefined' ? navigator.language : undefined,
39
+ timezone: typeof Intl !== 'undefined' ? Intl.DateTimeFormat().resolvedOptions().timeZone : undefined
40
+ };
41
+
42
+ // Add screen info if available
43
+ if (typeof screen !== 'undefined') {
44
+ fingerprint.screen = {
45
+ width: screen.width,
46
+ height: screen.height,
47
+ colorDepth: screen.colorDepth
48
+ };
49
+ }
50
+ return fingerprint;
51
+ }
52
+
53
+ /**
54
+ * Generate a unique device ID
55
+ */
56
+ async generateDeviceId() {
57
+ const randomBytes = await this.adapter.crypto.getRandomBytes(32);
58
+ return Array.from(randomBytes, byte => byte.toString(16).padStart(2, '0')).join('');
59
+ }
60
+
61
+ /**
62
+ * Get a user-friendly device name based on platform
63
+ */
64
+ getDefaultDeviceName() {
65
+ const fingerprint = this.getDeviceFingerprint();
66
+ const platform = (fingerprint.platform || '').toLowerCase();
67
+ const userAgent = (fingerprint.userAgent || '').toLowerCase();
68
+ if (platform.includes('win')) return 'Windows Computer';
69
+ if (platform.includes('mac')) return 'Mac Computer';
70
+ if (platform.includes('linux')) return 'Linux Computer';
71
+ if (userAgent.includes('iphone')) return 'iPhone';
72
+ if (userAgent.includes('ipad')) return 'iPad';
73
+ if (userAgent.includes('android')) return 'Android Device';
74
+ if (this.adapter.platform === 'web') return 'Web Browser';
75
+ return 'Unknown Device';
76
+ }
77
+
78
+ /**
79
+ * Get stored device info or create new one
80
+ */
81
+ async getCurrentDevice() {
82
+ if (this.cachedDevice) {
83
+ return this.cachedDevice;
84
+ }
85
+ try {
86
+ const stored = await this.adapter.storage.get(DEVICE_STORAGE_KEY);
87
+ if (stored) {
88
+ const deviceInfo = JSON.parse(stored);
89
+
90
+ // Update last used timestamp
91
+ deviceInfo.lastUsed = new Date().toISOString();
92
+ await this.saveDeviceInfo(deviceInfo);
93
+ const device = {
94
+ deviceId: deviceInfo.deviceId,
95
+ deviceName: deviceInfo.deviceName,
96
+ deviceType: this.getDeviceType(),
97
+ platform: this.adapter.platform === 'native' ? 'ios' : 'web',
98
+ // Simplified
99
+ fingerprint: deviceInfo.fingerprint,
100
+ createdAt: deviceInfo.createdAt,
101
+ updatedAt: deviceInfo.lastUsed
102
+ };
103
+ this.cachedDevice = device;
104
+ return device;
105
+ }
106
+
107
+ // Create new device info
108
+ return await this.createNewDevice();
109
+ } catch (error) {
110
+ console.error('[DeviceManager] Error getting device info:', error);
111
+ return await this.createNewDevice();
112
+ }
113
+ }
114
+
115
+ /**
116
+ * Create new device info and store it
117
+ */
118
+ async createNewDevice() {
119
+ const deviceId = await this.generateDeviceId();
120
+ const fingerprint = JSON.stringify(this.getDeviceFingerprint());
121
+ const now = new Date().toISOString();
122
+ const device = {
123
+ deviceId,
124
+ deviceName: this.getDefaultDeviceName(),
125
+ deviceType: this.getDeviceType(),
126
+ platform: this.adapter.platform === 'native' ? 'ios' : 'web',
127
+ // Simplified
128
+ fingerprint,
129
+ createdAt: now,
130
+ updatedAt: now
131
+ };
132
+ const deviceInfo = {
133
+ deviceId,
134
+ deviceName: device.deviceName,
135
+ fingerprint,
136
+ createdAt: now,
137
+ lastUsed: now
138
+ };
139
+ await this.saveDeviceInfo(deviceInfo);
140
+ this.cachedDevice = device;
141
+ return device;
142
+ }
143
+
144
+ /**
145
+ * Get device type
146
+ */
147
+ getDeviceType() {
148
+ if (this.adapter.platform === 'web') {
149
+ return 'desktop'; // Simplified - could detect mobile web
150
+ }
151
+ // For native, would need Platform.OS detection
152
+ return 'mobile';
153
+ }
154
+
155
+ /**
156
+ * Save device info to storage
157
+ */
158
+ async saveDeviceInfo(deviceInfo) {
159
+ try {
160
+ await this.adapter.storage.set(DEVICE_STORAGE_KEY, JSON.stringify(deviceInfo));
161
+ } catch (error) {
162
+ console.error('[DeviceManager] Error saving device info:', error);
163
+ throw (0, _errors.createIdentitySessionError)(_errors.IdentitySessionErrorCodes.DEVICE_CREATION_FAILED, `Failed to save device info: ${error instanceof Error ? error.message : String(error)}`);
164
+ }
165
+ }
166
+
167
+ /**
168
+ * Update device name
169
+ */
170
+ async updateDeviceName(deviceName) {
171
+ const device = await this.getCurrentDevice();
172
+ if (!device) {
173
+ throw (0, _errors.createIdentitySessionError)(_errors.IdentitySessionErrorCodes.DEVICE_NOT_FOUND, 'Device not found');
174
+ }
175
+ device.deviceName = deviceName;
176
+ device.updatedAt = new Date().toISOString();
177
+ const deviceInfo = {
178
+ deviceId: device.deviceId,
179
+ deviceName: device.deviceName,
180
+ fingerprint: device.fingerprint,
181
+ createdAt: device.createdAt || new Date().toISOString(),
182
+ lastUsed: device.updatedAt
183
+ };
184
+ await this.saveDeviceInfo(deviceInfo);
185
+ this.cachedDevice = device;
186
+ return device;
187
+ }
188
+
189
+ /**
190
+ * Get device info for session creation
191
+ */
192
+ async getDeviceInfo() {
193
+ const device = await this.getCurrentDevice();
194
+ if (!device) {
195
+ throw (0, _errors.createIdentitySessionError)(_errors.IdentitySessionErrorCodes.DEVICE_NOT_FOUND, 'Device not found');
196
+ }
197
+ const fingerprint = this.getDeviceFingerprint();
198
+ return {
199
+ deviceName: device.deviceName,
200
+ deviceType: device.deviceType,
201
+ platform: device.platform,
202
+ browser: typeof navigator !== 'undefined' ? this.getBrowserName() : undefined,
203
+ os: typeof navigator !== 'undefined' ? navigator.platform : undefined,
204
+ lastActive: new Date().toISOString(),
205
+ userAgent: fingerprint.userAgent,
206
+ fingerprint: device.fingerprint
207
+ };
208
+ }
209
+
210
+ /**
211
+ * Get browser name from user agent
212
+ */
213
+ getBrowserName() {
214
+ if (typeof navigator === 'undefined') return undefined;
215
+ const ua = navigator.userAgent.toLowerCase();
216
+ if (ua.includes('chrome')) return 'Chrome';
217
+ if (ua.includes('firefox')) return 'Firefox';
218
+ if (ua.includes('safari') && !ua.includes('chrome')) return 'Safari';
219
+ if (ua.includes('edge')) return 'Edge';
220
+ if (ua.includes('opera')) return 'Opera';
221
+ return undefined;
222
+ }
223
+
224
+ /**
225
+ * Clear stored device info
226
+ */
227
+ async clearDeviceInfo() {
228
+ try {
229
+ await this.adapter.storage.remove(DEVICE_STORAGE_KEY);
230
+ this.invalidateCache();
231
+ } catch (error) {
232
+ console.error('[DeviceManager] Error clearing device info:', error);
233
+ }
234
+ }
235
+ }
236
+ exports.DeviceManager = DeviceManager;
237
+ //# sourceMappingURL=DeviceManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_errors","require","DEVICE_STORAGE_KEY","DeviceManager","cachedDevice","constructor","adapter","invalidateCache","getDeviceFingerprint","fingerprint","userAgent","navigator","platform","language","undefined","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","screen","width","height","colorDepth","generateDeviceId","randomBytes","crypto","getRandomBytes","Array","from","byte","toString","padStart","join","getDefaultDeviceName","toLowerCase","includes","getCurrentDevice","stored","storage","get","deviceInfo","JSON","parse","lastUsed","Date","toISOString","saveDeviceInfo","device","deviceId","deviceName","deviceType","getDeviceType","createdAt","updatedAt","createNewDevice","error","console","stringify","now","set","createIdentitySessionError","IdentitySessionErrorCodes","DEVICE_CREATION_FAILED","Error","message","String","updateDeviceName","DEVICE_NOT_FOUND","getDeviceInfo","browser","getBrowserName","os","lastActive","ua","clearDeviceInfo","remove","exports"],"sourceRoot":"../../../../src","sources":["core/identity-session/DeviceManager.ts"],"mappings":"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","ignoreList":[]}