@oxyhq/services 5.16.40 → 5.16.41
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.
- package/lib/commonjs/adapters/expo/crypto.js +56 -0
- package/lib/commonjs/adapters/expo/crypto.js.map +1 -0
- package/lib/commonjs/adapters/expo/fetch.js +30 -0
- package/lib/commonjs/adapters/expo/fetch.js.map +1 -0
- package/lib/commonjs/adapters/expo/index.js +48 -0
- package/lib/commonjs/adapters/expo/index.js.map +1 -0
- package/lib/commonjs/adapters/expo/storage.js +201 -0
- package/lib/commonjs/adapters/expo/storage.js.map +1 -0
- package/lib/commonjs/adapters/index.js +41 -0
- package/lib/commonjs/adapters/index.js.map +1 -0
- package/lib/commonjs/adapters/node/crypto.js +40 -0
- package/lib/commonjs/adapters/node/crypto.js.map +1 -0
- package/lib/commonjs/adapters/node/fetch.js +62 -0
- package/lib/commonjs/adapters/node/fetch.js.map +1 -0
- package/lib/commonjs/adapters/node/index.js +34 -0
- package/lib/commonjs/adapters/node/index.js.map +1 -0
- package/lib/commonjs/adapters/node/storage.js +163 -0
- package/lib/commonjs/adapters/node/storage.js.map +1 -0
- package/lib/commonjs/core/identity-session/DeviceManager.js +237 -0
- package/lib/commonjs/core/identity-session/DeviceManager.js.map +1 -0
- package/lib/commonjs/core/identity-session/INTEGRATION_GUIDE.md +287 -0
- package/lib/commonjs/core/identity-session/IdentityManager.js +400 -0
- package/lib/commonjs/core/identity-session/IdentityManager.js.map +1 -0
- package/lib/commonjs/core/identity-session/IdentitySessionCore.js +394 -0
- package/lib/commonjs/core/identity-session/IdentitySessionCore.js.map +1 -0
- package/lib/commonjs/core/identity-session/RefreshManager.js +137 -0
- package/lib/commonjs/core/identity-session/RefreshManager.js.map +1 -0
- package/lib/commonjs/core/identity-session/SessionManager.js +427 -0
- package/lib/commonjs/core/identity-session/SessionManager.js.map +1 -0
- package/lib/commonjs/core/identity-session/createIdentitySessionCore.js +24 -0
- package/lib/commonjs/core/identity-session/createIdentitySessionCore.js.map +1 -0
- package/lib/commonjs/core/identity-session/errors.js +176 -0
- package/lib/commonjs/core/identity-session/errors.js.map +1 -0
- package/lib/commonjs/core/identity-session/index.js +80 -0
- package/lib/commonjs/core/identity-session/index.js.map +1 -0
- package/lib/commonjs/core/identity-session/types.js +2 -0
- package/lib/commonjs/core/identity-session/types.js.map +1 -0
- package/lib/commonjs/core/index.js +2 -21
- package/lib/commonjs/core/index.js.map +1 -1
- package/lib/commonjs/index.js +58 -8
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/models/interfaces.js +7 -0
- package/lib/commonjs/models/interfaces.js.map +1 -1
- package/lib/commonjs/ui/context/OxyContext.js +434 -820
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/hooks/useAvatarPicker.js +52 -0
- package/lib/commonjs/ui/hooks/useAvatarPicker.js.map +1 -0
- package/lib/commonjs/ui/hooks/useIdentityTransfer.js +125 -0
- package/lib/commonjs/ui/hooks/useIdentityTransfer.js.map +1 -0
- package/lib/commonjs/ui/hooks/useTransferCodesPersistence.js +81 -0
- package/lib/commonjs/ui/hooks/useTransferCodesPersistence.js.map +1 -0
- package/lib/commonjs/ui/screens/AccountCenterScreen.js +7 -2
- package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js +12 -5
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +2 -2
- package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/ProfileScreen.js +6 -6
- package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
- package/lib/commonjs/ui/utils/sessionHelpers.js +7 -1
- package/lib/commonjs/ui/utils/sessionHelpers.js.map +1 -1
- package/lib/commonjs/utils/index.js +0 -7
- package/lib/commonjs/utils/index.js.map +1 -1
- package/lib/commonjs/utils/sessionUtils.js +8 -1
- package/lib/commonjs/utils/sessionUtils.js.map +1 -1
- package/lib/module/adapters/expo/crypto.js +51 -0
- package/lib/module/adapters/expo/crypto.js.map +1 -0
- package/lib/module/adapters/expo/fetch.js +26 -0
- package/lib/module/adapters/expo/fetch.js.map +1 -0
- package/lib/module/adapters/expo/index.js +45 -0
- package/lib/module/adapters/expo/index.js.map +1 -0
- package/lib/module/adapters/expo/storage.js +198 -0
- package/lib/module/adapters/expo/storage.js.map +1 -0
- package/lib/module/adapters/index.js +38 -0
- package/lib/module/adapters/index.js.map +1 -0
- package/lib/module/adapters/node/crypto.js +36 -0
- package/lib/module/adapters/node/crypto.js.map +1 -0
- package/lib/module/adapters/node/fetch.js +57 -0
- package/lib/module/adapters/node/fetch.js.map +1 -0
- package/lib/module/adapters/node/index.js +31 -0
- package/lib/module/adapters/node/index.js.map +1 -0
- package/lib/module/adapters/node/storage.js +159 -0
- package/lib/module/adapters/node/storage.js.map +1 -0
- package/lib/module/core/identity-session/DeviceManager.js +232 -0
- package/lib/module/core/identity-session/DeviceManager.js.map +1 -0
- package/lib/module/core/identity-session/INTEGRATION_GUIDE.md +287 -0
- package/lib/module/core/identity-session/IdentityManager.js +395 -0
- package/lib/module/core/identity-session/IdentityManager.js.map +1 -0
- package/lib/module/core/identity-session/IdentitySessionCore.js +390 -0
- package/lib/module/core/identity-session/IdentitySessionCore.js.map +1 -0
- package/lib/module/core/identity-session/RefreshManager.js +132 -0
- package/lib/module/core/identity-session/RefreshManager.js.map +1 -0
- package/lib/module/core/identity-session/SessionManager.js +422 -0
- package/lib/module/core/identity-session/SessionManager.js.map +1 -0
- package/lib/module/core/identity-session/createIdentitySessionCore.js +21 -0
- package/lib/module/core/identity-session/createIdentitySessionCore.js.map +1 -0
- package/lib/module/core/identity-session/errors.js +170 -0
- package/lib/module/core/identity-session/errors.js.map +1 -0
- package/lib/module/core/identity-session/index.js +17 -0
- package/lib/module/core/identity-session/index.js.map +1 -0
- package/lib/module/core/identity-session/types.js +2 -0
- package/lib/module/core/identity-session/types.js.map +1 -0
- package/lib/module/core/index.js +2 -3
- package/lib/module/core/index.js.map +1 -1
- package/lib/module/index.js +12 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/models/interfaces.js +7 -0
- package/lib/module/models/interfaces.js.map +1 -1
- package/lib/module/ui/context/OxyContext.js +436 -822
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/hooks/useAvatarPicker.js +48 -0
- package/lib/module/ui/hooks/useAvatarPicker.js.map +1 -0
- package/lib/module/ui/hooks/useIdentityTransfer.js +121 -0
- package/lib/module/ui/hooks/useIdentityTransfer.js.map +1 -0
- package/lib/module/ui/hooks/useTransferCodesPersistence.js +77 -0
- package/lib/module/ui/hooks/useTransferCodesPersistence.js.map +1 -0
- package/lib/module/ui/screens/AccountCenterScreen.js +7 -2
- package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -1
- package/lib/module/ui/screens/AccountSettingsScreen.js +12 -5
- package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/module/ui/screens/AccountSwitcherScreen.js +2 -2
- package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -1
- package/lib/module/ui/screens/ProfileScreen.js +6 -6
- package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
- package/lib/module/ui/utils/sessionHelpers.js +7 -1
- package/lib/module/ui/utils/sessionHelpers.js.map +1 -1
- package/lib/module/utils/index.js +2 -1
- package/lib/module/utils/index.js.map +1 -1
- package/lib/module/utils/sessionUtils.js +8 -1
- package/lib/module/utils/sessionUtils.js.map +1 -1
- package/lib/typescript/adapters/expo/crypto.d.ts +17 -0
- package/lib/typescript/adapters/expo/crypto.d.ts.map +1 -0
- package/lib/typescript/adapters/expo/fetch.d.ts +16 -0
- package/lib/typescript/adapters/expo/fetch.d.ts.map +1 -0
- package/lib/typescript/adapters/expo/index.d.ts +23 -0
- package/lib/typescript/adapters/expo/index.d.ts.map +1 -0
- package/lib/typescript/adapters/expo/storage.d.ts +23 -0
- package/lib/typescript/adapters/expo/storage.d.ts.map +1 -0
- package/lib/typescript/adapters/index.d.ts +13 -0
- package/lib/typescript/adapters/index.d.ts.map +1 -0
- package/lib/typescript/adapters/node/crypto.d.ts +17 -0
- package/lib/typescript/adapters/node/crypto.d.ts.map +1 -0
- package/lib/typescript/adapters/node/fetch.d.ts +16 -0
- package/lib/typescript/adapters/node/fetch.d.ts.map +1 -0
- package/lib/typescript/adapters/node/index.d.ts +23 -0
- package/lib/typescript/adapters/node/index.d.ts.map +1 -0
- package/lib/typescript/adapters/node/storage.d.ts +23 -0
- package/lib/typescript/adapters/node/storage.d.ts.map +1 -0
- package/lib/typescript/core/identity-session/DeviceManager.d.ts +64 -0
- package/lib/typescript/core/identity-session/DeviceManager.d.ts.map +1 -0
- package/lib/typescript/core/identity-session/IdentityManager.d.ts +88 -0
- package/lib/typescript/core/identity-session/IdentityManager.d.ts.map +1 -0
- package/lib/typescript/core/identity-session/IdentitySessionCore.d.ts +141 -0
- package/lib/typescript/core/identity-session/IdentitySessionCore.d.ts.map +1 -0
- package/lib/typescript/core/identity-session/RefreshManager.d.ts +36 -0
- package/lib/typescript/core/identity-session/RefreshManager.d.ts.map +1 -0
- package/lib/typescript/core/identity-session/SessionManager.d.ts +104 -0
- package/lib/typescript/core/identity-session/SessionManager.d.ts.map +1 -0
- package/lib/typescript/core/identity-session/createIdentitySessionCore.d.ts +11 -0
- package/lib/typescript/core/identity-session/createIdentitySessionCore.d.ts.map +1 -0
- package/lib/typescript/core/identity-session/errors.d.ts +63 -0
- package/lib/typescript/core/identity-session/errors.d.ts.map +1 -0
- package/lib/typescript/core/identity-session/index.d.ts +14 -0
- package/lib/typescript/core/identity-session/index.d.ts.map +1 -0
- package/lib/typescript/core/identity-session/types.d.ts +196 -0
- package/lib/typescript/core/identity-session/types.d.ts.map +1 -0
- package/lib/typescript/core/index.d.ts +1 -3
- package/lib/typescript/core/index.d.ts.map +1 -1
- package/lib/typescript/core/mixins/index.d.ts +2 -2
- package/lib/typescript/index.d.ts +3 -2
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/models/interfaces.d.ts +5 -36
- package/lib/typescript/models/interfaces.d.ts.map +1 -1
- package/lib/typescript/models/session.d.ts +3 -16
- package/lib/typescript/models/session.d.ts.map +1 -1
- package/lib/typescript/ui/context/OxyContext.d.ts +2 -25
- package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts +7 -8
- package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/mutations/useServicesMutations.d.ts +1 -1
- package/lib/typescript/ui/hooks/mutations/useServicesMutations.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts +5 -5
- package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/useAvatarPicker.d.ts +18 -0
- package/lib/typescript/ui/hooks/useAvatarPicker.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/useIdentityTransfer.d.ts +24 -0
- package/lib/typescript/ui/hooks/useIdentityTransfer.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/useTransferCodesPersistence.d.ts +6 -0
- package/lib/typescript/ui/hooks/useTransferCodesPersistence.d.ts.map +1 -0
- package/lib/typescript/ui/screens/AccountCenterScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
- package/lib/typescript/ui/utils/sessionHelpers.d.ts +1 -0
- package/lib/typescript/ui/utils/sessionHelpers.d.ts.map +1 -1
- package/lib/typescript/utils/index.d.ts +0 -2
- package/lib/typescript/utils/index.d.ts.map +1 -1
- package/lib/typescript/utils/sessionUtils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/adapters/expo/crypto.ts +55 -0
- package/src/adapters/expo/fetch.ts +28 -0
- package/src/adapters/expo/index.ts +51 -0
- package/src/adapters/expo/storage.ts +228 -0
- package/src/adapters/index.ts +40 -0
- package/src/adapters/node/crypto.ts +39 -0
- package/src/adapters/node/fetch.ts +59 -0
- package/src/adapters/node/index.ts +37 -0
- package/src/adapters/node/storage.ts +170 -0
- package/src/core/identity-session/DeviceManager.ts +273 -0
- package/src/core/identity-session/INTEGRATION_GUIDE.md +287 -0
- package/src/core/identity-session/IdentityManager.ts +474 -0
- package/src/core/identity-session/IdentitySessionCore.ts +464 -0
- package/src/core/identity-session/RefreshManager.ts +189 -0
- package/src/core/identity-session/SessionManager.ts +500 -0
- package/src/core/identity-session/createIdentitySessionCore.ts +19 -0
- package/src/core/identity-session/errors.ts +197 -0
- package/src/core/identity-session/index.ts +15 -0
- package/src/core/identity-session/types.ts +188 -0
- package/src/core/index.ts +3 -4
- package/src/index.ts +28 -3
- package/src/models/interfaces.ts +12 -39
- package/src/models/session.ts +6 -16
- package/src/ui/context/OxyContext.tsx +442 -871
- package/src/ui/hooks/auth/index.ts +1 -0
- package/src/ui/hooks/useAvatarPicker.ts +62 -0
- package/src/ui/hooks/useIdentityTransfer.ts +135 -0
- package/src/ui/hooks/useTransferCodesPersistence.ts +80 -0
- package/src/ui/screens/AccountCenterScreen.tsx +7 -2
- package/src/ui/screens/AccountSettingsScreen.tsx +15 -8
- package/src/ui/screens/AccountSwitcherScreen.tsx +2 -2
- package/src/ui/screens/ProfileScreen.tsx +10 -10
- package/src/ui/utils/sessionHelpers.ts +7 -0
- package/src/utils/index.ts +1 -2
- package/src/utils/sessionUtils.ts +8 -0
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js +0 -732
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +0 -1
- package/lib/commonjs/ui/context/hooks/useDeviceManagement.js +0 -73
- package/lib/commonjs/ui/context/hooks/useDeviceManagement.js.map +0 -1
- package/lib/commonjs/ui/hooks/useDeviceManagement.js +0 -73
- package/lib/commonjs/ui/hooks/useDeviceManagement.js.map +0 -1
- package/lib/commonjs/ui/hooks/useSessionManagement.js +0 -281
- package/lib/commonjs/ui/hooks/useSessionManagement.js.map +0 -1
- package/lib/commonjs/utils/deviceManager.js +0 -177
- package/lib/commonjs/utils/deviceManager.js.map +0 -1
- package/lib/module/ui/context/hooks/useAuthOperations.js +0 -726
- package/lib/module/ui/context/hooks/useAuthOperations.js.map +0 -1
- package/lib/module/ui/context/hooks/useDeviceManagement.js +0 -68
- package/lib/module/ui/context/hooks/useDeviceManagement.js.map +0 -1
- package/lib/module/ui/hooks/useDeviceManagement.js +0 -68
- package/lib/module/ui/hooks/useDeviceManagement.js.map +0 -1
- package/lib/module/ui/hooks/useSessionManagement.js +0 -276
- package/lib/module/ui/hooks/useSessionManagement.js.map +0 -1
- package/lib/module/utils/deviceManager.js +0 -171
- package/lib/module/utils/deviceManager.js.map +0 -1
- package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts +0 -59
- package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts.map +0 -1
- package/lib/typescript/ui/context/hooks/useDeviceManagement.d.ts +0 -27
- package/lib/typescript/ui/context/hooks/useDeviceManagement.d.ts.map +0 -1
- package/lib/typescript/ui/hooks/useDeviceManagement.d.ts +0 -27
- package/lib/typescript/ui/hooks/useDeviceManagement.d.ts.map +0 -1
- package/lib/typescript/ui/hooks/useSessionManagement.d.ts +0 -41
- package/lib/typescript/ui/hooks/useSessionManagement.d.ts.map +0 -1
- package/lib/typescript/utils/deviceManager.d.ts +0 -66
- package/lib/typescript/utils/deviceManager.d.ts.map +0 -1
- package/src/ui/context/hooks/useAuthOperations.ts +0 -801
- package/src/ui/context/hooks/useDeviceManagement.ts +0 -108
- package/src/ui/hooks/useDeviceManagement.ts +0 -108
- package/src/ui/hooks/useSessionManagement.ts +0 -401
- 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":[]}
|