@oxyhq/services 5.16.32 → 5.16.34
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/README.md +26 -8
- package/lib/commonjs/core/OxyServices.base.js.map +1 -1
- package/lib/commonjs/core/mixins/OxyServices.user.js.map +1 -1
- package/lib/commonjs/core/mixins/OxyServices.utility.js.map +1 -1
- package/lib/commonjs/core/services/AuthService.js +156 -0
- package/lib/commonjs/core/services/AuthService.js.map +1 -0
- package/lib/commonjs/core/services/SessionService.js +1 -2
- package/lib/commonjs/core/services/SessionService.js.map +1 -1
- package/lib/commonjs/core/services/SessionTransportService.js +64 -0
- package/lib/commonjs/core/services/SessionTransportService.js.map +1 -0
- package/lib/commonjs/core/services/TokenService.js +9 -17
- package/lib/commonjs/core/services/TokenService.js.map +1 -1
- package/lib/commonjs/core/services/UserService.js +123 -0
- package/lib/commonjs/core/services/UserService.js.map +1 -0
- package/lib/commonjs/core/services/index.js +34 -0
- package/lib/commonjs/core/services/index.js.map +1 -0
- package/lib/commonjs/crypto/index.js.map +1 -1
- package/lib/commonjs/crypto/keyManager.js +5 -2
- package/lib/commonjs/crypto/keyManager.js.map +1 -1
- package/lib/commonjs/crypto/signatureService.js +36 -121
- package/lib/commonjs/crypto/signatureService.js.map +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/models/interfaces.js +11 -11
- package/lib/commonjs/models/interfaces.js.map +1 -1
- package/lib/commonjs/ui/context/OxyContext.js +4 -40
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js +14 -25
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/commonjs/ui/context/hooks/useLanguageManagement.js.map +1 -1
- package/lib/commonjs/ui/hooks/queries/useServicesQueries.js +4 -12
- package/lib/commonjs/ui/hooks/queries/useServicesQueries.js.map +1 -1
- package/lib/commonjs/ui/hooks/useLanguageManagement.js.map +1 -1
- package/lib/commonjs/ui/hooks/useSessionManagement.js +0 -8
- package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -1
- package/lib/commonjs/ui/index.js +2 -0
- package/lib/commonjs/ui/index.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/OxyAuthScreen.js +9 -13
- package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -1
- package/lib/commonjs/ui/utils/sessionHelpers.js +11 -26
- package/lib/commonjs/ui/utils/sessionHelpers.js.map +1 -1
- package/lib/commonjs/utils/sessionUtils.js +1 -8
- package/lib/commonjs/utils/sessionUtils.js.map +1 -1
- package/lib/module/core/OxyServices.base.js.map +1 -1
- package/lib/module/core/mixins/OxyServices.user.js.map +1 -1
- package/lib/module/core/mixins/OxyServices.utility.js.map +1 -1
- package/lib/module/core/services/AuthService.js +151 -0
- package/lib/module/core/services/AuthService.js.map +1 -0
- package/lib/module/core/services/SessionService.js +1 -2
- package/lib/module/core/services/SessionService.js.map +1 -1
- package/lib/module/core/services/SessionTransportService.js +59 -0
- package/lib/module/core/services/SessionTransportService.js.map +1 -0
- package/lib/module/core/services/TokenService.js +9 -17
- package/lib/module/core/services/TokenService.js.map +1 -1
- package/lib/module/core/services/UserService.js +118 -0
- package/lib/module/core/services/UserService.js.map +1 -0
- package/lib/module/core/services/index.js +16 -0
- package/lib/module/core/services/index.js.map +1 -0
- package/lib/module/crypto/index.js +9 -0
- package/lib/module/crypto/index.js.map +1 -1
- package/lib/module/crypto/keyManager.js +5 -2
- package/lib/module/crypto/keyManager.js.map +1 -1
- package/lib/module/crypto/signatureService.js +36 -122
- package/lib/module/crypto/signatureService.js.map +1 -1
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/models/interfaces.js +11 -11
- package/lib/module/models/interfaces.js.map +1 -1
- package/lib/module/ui/context/OxyContext.js +4 -40
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/context/hooks/useAuthOperations.js +14 -25
- package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/module/ui/context/hooks/useLanguageManagement.js.map +1 -1
- package/lib/module/ui/hooks/queries/useServicesQueries.js +5 -13
- package/lib/module/ui/hooks/queries/useServicesQueries.js.map +1 -1
- package/lib/module/ui/hooks/useLanguageManagement.js.map +1 -1
- package/lib/module/ui/hooks/useSessionManagement.js +0 -8
- package/lib/module/ui/hooks/useSessionManagement.js.map +1 -1
- package/lib/module/ui/index.js +1 -0
- package/lib/module/ui/index.js.map +1 -1
- package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/module/ui/screens/OxyAuthScreen.js +7 -9
- package/lib/module/ui/screens/OxyAuthScreen.js.map +1 -1
- package/lib/module/ui/utils/sessionHelpers.js +11 -26
- package/lib/module/ui/utils/sessionHelpers.js.map +1 -1
- package/lib/module/utils/sessionUtils.js +1 -8
- package/lib/module/utils/sessionUtils.js.map +1 -1
- package/lib/typescript/core/OxyServices.base.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.analytics.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.assets.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.auth.d.ts +1 -1
- package/lib/typescript/core/mixins/OxyServices.auth.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.developer.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.devices.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.karma.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.language.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.location.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.payment.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.privacy.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.security.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.user.d.ts +2 -1
- package/lib/typescript/core/mixins/OxyServices.user.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.utility.d.ts.map +1 -1
- package/lib/typescript/core/mixins/index.d.ts +13 -13
- package/lib/typescript/core/mixins/index.d.ts.map +1 -1
- package/lib/typescript/core/services/AuthService.d.ts +50 -0
- package/lib/typescript/core/services/AuthService.d.ts.map +1 -0
- package/lib/typescript/core/services/SessionService.d.ts +3 -5
- package/lib/typescript/core/services/SessionService.d.ts.map +1 -1
- package/lib/typescript/core/services/SessionTransportService.d.ts +31 -0
- package/lib/typescript/core/services/SessionTransportService.d.ts.map +1 -0
- package/lib/typescript/core/services/TokenService.d.ts +3 -8
- package/lib/typescript/core/services/TokenService.d.ts.map +1 -1
- package/lib/typescript/core/services/UserService.d.ts +39 -0
- package/lib/typescript/core/services/UserService.d.ts.map +1 -0
- package/lib/typescript/core/services/index.d.ts +13 -0
- package/lib/typescript/core/services/index.d.ts.map +1 -0
- package/lib/typescript/crypto/index.d.ts +9 -0
- package/lib/typescript/crypto/index.d.ts.map +1 -1
- package/lib/typescript/crypto/keyManager.d.ts.map +1 -1
- package/lib/typescript/crypto/signatureService.d.ts +10 -13
- package/lib/typescript/crypto/signatureService.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +1 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/models/interfaces.d.ts +15 -69
- package/lib/typescript/models/interfaces.d.ts.map +1 -1
- package/lib/typescript/models/session.d.ts +2 -4
- package/lib/typescript/models/session.d.ts.map +1 -1
- package/lib/typescript/ui/context/OxyContext.d.ts +2 -1
- package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts +2 -1
- package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
- package/lib/typescript/ui/context/hooks/useLanguageManagement.d.ts +2 -1
- package/lib/typescript/ui/context/hooks/useLanguageManagement.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts +1 -1
- package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts +1 -1
- package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/useLanguageManagement.d.ts +2 -1
- package/lib/typescript/ui/hooks/useLanguageManagement.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/useSessionManagement.d.ts +2 -1
- package/lib/typescript/ui/hooks/useSessionManagement.d.ts.map +1 -1
- package/lib/typescript/ui/index.d.ts +1 -1
- package/lib/typescript/ui/index.d.ts.map +1 -1
- package/lib/typescript/ui/screens/OxyAuthScreen.d.ts.map +1 -1
- package/lib/typescript/ui/stores/authStore.d.ts +1 -1
- package/lib/typescript/ui/stores/authStore.d.ts.map +1 -1
- package/lib/typescript/ui/utils/avatarUtils.d.ts +1 -1
- package/lib/typescript/ui/utils/avatarUtils.d.ts.map +1 -1
- package/lib/typescript/ui/utils/sessionHelpers.d.ts +2 -6
- package/lib/typescript/ui/utils/sessionHelpers.d.ts.map +1 -1
- package/lib/typescript/utils/sessionUtils.d.ts.map +1 -1
- package/package.json +2 -1
- package/src/core/OxyServices.base.ts +2 -1
- package/src/core/mixins/OxyServices.auth.ts +1 -1
- package/src/core/mixins/OxyServices.user.ts +2 -1
- package/src/core/mixins/OxyServices.utility.ts +2 -1
- package/src/core/services/AuthService.ts +153 -0
- package/src/core/services/SessionService.ts +3 -5
- package/src/core/services/SessionTransportService.ts +69 -0
- package/src/core/services/TokenService.ts +10 -18
- package/src/core/services/UserService.ts +125 -0
- package/src/core/services/index.ts +14 -0
- package/src/crypto/index.ts +9 -0
- package/src/crypto/keyManager.ts +3 -2
- package/src/crypto/signatureService.ts +44 -142
- package/src/index.ts +1 -2
- package/src/models/interfaces.ts +21 -74
- package/src/models/session.ts +3 -5
- package/src/ui/context/OxyContext.tsx +22 -57
- package/src/ui/context/hooks/useAuthOperations.ts +17 -24
- package/src/ui/context/hooks/useLanguageManagement.ts +2 -1
- package/src/ui/hooks/auth/index.ts +0 -1
- package/src/ui/hooks/mutations/useAccountMutations.ts +1 -1
- package/src/ui/hooks/mutations/useServicesMutations.ts +1 -1
- package/src/ui/hooks/queries/useAccountQueries.ts +1 -1
- package/src/ui/hooks/queries/useServicesQueries.ts +3 -8
- package/src/ui/hooks/useLanguageManagement.ts +2 -1
- package/src/ui/hooks/useSessionManagement.ts +3 -9
- package/src/ui/index.ts +2 -1
- package/src/ui/screens/AccountSettingsScreen.tsx +6 -6
- package/src/ui/screens/AccountSwitcherScreen.tsx +1 -1
- package/src/ui/screens/OxyAuthScreen.tsx +5 -9
- package/src/ui/screens/ProfileScreen.tsx +1 -1
- package/src/ui/stores/authStore.ts +1 -1
- package/src/ui/types/navigation.ts +1 -1
- package/src/ui/utils/avatarUtils.ts +1 -1
- package/src/ui/utils/sessionHelpers.ts +15 -32
- package/src/utils/sessionUtils.ts +1 -8
|
@@ -10,14 +10,14 @@
|
|
|
10
10
|
* - Single storage location (no duplication)
|
|
11
11
|
* - Automatic token refresh when expiring soon
|
|
12
12
|
* - Type-safe token payload handling
|
|
13
|
-
* -
|
|
13
|
+
* - userId is always MongoDB ObjectId, never publicKey
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
16
|
import { jwtDecode } from 'jwt-decode';
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
19
|
* AccessTokenPayload - Matches the token payload structure from API
|
|
20
|
-
*
|
|
20
|
+
* userId is always MongoDB ObjectId (24 hex characters), never publicKey
|
|
21
21
|
*/
|
|
22
22
|
|
|
23
23
|
/**
|
|
@@ -100,28 +100,20 @@ class TokenService {
|
|
|
100
100
|
}
|
|
101
101
|
|
|
102
102
|
/**
|
|
103
|
-
* Get
|
|
104
|
-
* Returns
|
|
103
|
+
* Get userId from current access token
|
|
104
|
+
* Returns MongoDB ObjectId (never publicKey)
|
|
105
105
|
*/
|
|
106
|
-
|
|
106
|
+
getUserIdFromToken() {
|
|
107
107
|
const token = this.tokenStore.accessToken;
|
|
108
108
|
if (!token) return null;
|
|
109
109
|
try {
|
|
110
110
|
const decoded = jwtDecode(token);
|
|
111
|
-
return decoded.
|
|
111
|
+
return decoded.userId || null;
|
|
112
112
|
} catch {
|
|
113
113
|
return null;
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
116
|
|
|
117
|
-
/**
|
|
118
|
-
* @deprecated Use getPublicKeyFromToken() instead. This method is kept for backward compatibility.
|
|
119
|
-
* Get userId from current access token (returns publicKey, not MongoDB ObjectId)
|
|
120
|
-
*/
|
|
121
|
-
getUserIdFromToken() {
|
|
122
|
-
return this.getPublicKeyFromToken();
|
|
123
|
-
}
|
|
124
|
-
|
|
125
117
|
/**
|
|
126
118
|
* Refresh access token if expiring soon
|
|
127
119
|
* Returns promise that resolves when token is refreshed (or already valid)
|
|
@@ -180,10 +172,10 @@ class TokenService {
|
|
|
180
172
|
throw new Error('No access token in refresh response');
|
|
181
173
|
}
|
|
182
174
|
|
|
183
|
-
// Validate new token has
|
|
175
|
+
// Validate new token has correct userId format (ObjectId)
|
|
184
176
|
const newDecoded = jwtDecode(newToken);
|
|
185
|
-
if (
|
|
186
|
-
throw new Error(
|
|
177
|
+
if (newDecoded.userId && !/^[0-9a-fA-F]{24}$/.test(newDecoded.userId)) {
|
|
178
|
+
throw new Error(`Invalid userId format in refreshed token: ${newDecoded.userId.substring(0, 20)}...`);
|
|
187
179
|
}
|
|
188
180
|
this.setTokens(newToken);
|
|
189
181
|
} catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["jwtDecode","TokenService","tokenStore","accessToken","refreshToken","refreshPromise","baseURL","constructor","getInstance","instance","initialize","getAccessToken","getRefreshToken","setTokens","clearTokens","hasAccessToken","isTokenExpiringSoon","token","decoded","exp","currentTime","Math","floor","Date","now","
|
|
1
|
+
{"version":3,"names":["jwtDecode","TokenService","tokenStore","accessToken","refreshToken","refreshPromise","baseURL","constructor","getInstance","instance","initialize","getAccessToken","getRefreshToken","setTokens","clearTokens","hasAccessToken","isTokenExpiringSoon","token","decoded","exp","currentTime","Math","floor","Date","now","getUserIdFromToken","userId","refreshTokenIfNeeded","_performRefresh","Error","sessionId","refreshUrl","response","fetch","method","headers","signal","AbortSignal","timeout","ok","status","newToken","json","newDecoded","test","substring","error","getAuthHeader","catch","tokenService"],"sourceRoot":"../../../../src","sources":["core/services/TokenService.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* User Service
|
|
5
|
+
*
|
|
6
|
+
* Handles user profile operations (no key handling):
|
|
7
|
+
* - Profile fetch/update
|
|
8
|
+
* - Profile search
|
|
9
|
+
* - User recommendations
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import { HttpService } from '../HttpService';
|
|
13
|
+
export class UserService {
|
|
14
|
+
constructor(config) {
|
|
15
|
+
this.httpService = new HttpService(config);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Get user profile by ID
|
|
20
|
+
*/
|
|
21
|
+
async getUserById(userId) {
|
|
22
|
+
try {
|
|
23
|
+
return await this.httpService.request({
|
|
24
|
+
method: 'GET',
|
|
25
|
+
url: `/api/profiles/${userId}`,
|
|
26
|
+
cache: true,
|
|
27
|
+
cacheTTL: 5 * 60 * 1000
|
|
28
|
+
});
|
|
29
|
+
} catch (error) {
|
|
30
|
+
throw error;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Get profile by username
|
|
36
|
+
*/
|
|
37
|
+
async getProfileByUsername(username) {
|
|
38
|
+
try {
|
|
39
|
+
return await this.httpService.request({
|
|
40
|
+
method: 'GET',
|
|
41
|
+
url: `/api/profiles/username/${username}`,
|
|
42
|
+
cache: true,
|
|
43
|
+
cacheTTL: 5 * 60 * 1000
|
|
44
|
+
});
|
|
45
|
+
} catch (error) {
|
|
46
|
+
throw error;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Search user profiles
|
|
52
|
+
*/
|
|
53
|
+
async searchProfiles(query, pagination) {
|
|
54
|
+
try {
|
|
55
|
+
const params = new URLSearchParams();
|
|
56
|
+
params.set('query', query);
|
|
57
|
+
if (pagination?.limit) params.set('limit', pagination.limit.toString());
|
|
58
|
+
if (pagination?.offset) params.set('offset', pagination.offset.toString());
|
|
59
|
+
const response = await this.httpService.request({
|
|
60
|
+
method: 'GET',
|
|
61
|
+
url: `/api/profiles/search?${params.toString()}`,
|
|
62
|
+
cache: true,
|
|
63
|
+
cacheTTL: 2 * 60 * 1000
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
// Handle response format
|
|
67
|
+
if (Array.isArray(response)) {
|
|
68
|
+
const limit = pagination?.limit ?? response.length;
|
|
69
|
+
const paginationInfo = {
|
|
70
|
+
total: response.length,
|
|
71
|
+
limit,
|
|
72
|
+
offset: pagination?.offset ?? 0,
|
|
73
|
+
hasMore: limit > 0 && response.length === limit
|
|
74
|
+
};
|
|
75
|
+
return {
|
|
76
|
+
data: response,
|
|
77
|
+
pagination: paginationInfo
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
return response;
|
|
81
|
+
} catch (error) {
|
|
82
|
+
throw error;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Get profile recommendations
|
|
88
|
+
*/
|
|
89
|
+
async getProfileRecommendations() {
|
|
90
|
+
try {
|
|
91
|
+
return await this.httpService.request({
|
|
92
|
+
method: 'GET',
|
|
93
|
+
url: '/api/profiles/recommendations',
|
|
94
|
+
cache: true,
|
|
95
|
+
cacheTTL: 5 * 60 * 1000
|
|
96
|
+
});
|
|
97
|
+
} catch (error) {
|
|
98
|
+
throw error;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Update user profile
|
|
104
|
+
*/
|
|
105
|
+
async updateProfile(updates) {
|
|
106
|
+
try {
|
|
107
|
+
return await this.httpService.request({
|
|
108
|
+
method: 'PATCH',
|
|
109
|
+
url: '/api/profiles/me',
|
|
110
|
+
data: updates,
|
|
111
|
+
cache: false
|
|
112
|
+
});
|
|
113
|
+
} catch (error) {
|
|
114
|
+
throw error;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=UserService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["HttpService","UserService","constructor","config","httpService","getUserById","userId","request","method","url","cache","cacheTTL","error","getProfileByUsername","username","searchProfiles","query","pagination","params","URLSearchParams","set","limit","toString","offset","response","Array","isArray","length","paginationInfo","total","hasMore","data","getProfileRecommendations","updateProfile","updates"],"sourceRoot":"../../../../src","sources":["core/services/UserService.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Focused Services
|
|
5
|
+
*
|
|
6
|
+
* Single-responsibility services replacing the mixin pattern:
|
|
7
|
+
* - AuthService: Authentication, challenges, registration
|
|
8
|
+
* - SessionService: Session management (already exists)
|
|
9
|
+
* - UserService: User profile operations
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
export { AuthService } from './AuthService';
|
|
13
|
+
export { sessionService } from './SessionService';
|
|
14
|
+
export { UserService } from './UserService';
|
|
15
|
+
export { tokenService } from './TokenService';
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["AuthService","sessionService","UserService","tokenService"],"sourceRoot":"../../../../src","sources":["core/services/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,WAAW,QAAQ,eAAe;AAC3C,SAASC,cAAc,QAAQ,kBAAkB;AACjD,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,YAAY,QAAQ,gBAAgB","ignoreList":[]}
|
|
@@ -5,6 +5,15 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Provides cryptographic identity management for the Oxy ecosystem.
|
|
7
7
|
* Handles key generation, secure storage, and digital signatures.
|
|
8
|
+
*
|
|
9
|
+
* ⚠️ IMPORTANT: KeyManager is primarily intended for use in the Oxy Accounts app.
|
|
10
|
+
* While it's exported here for convenience, third-party applications should NOT
|
|
11
|
+
* generate or store user identities. The Accounts app is the identity wallet.
|
|
12
|
+
*
|
|
13
|
+
* For third-party apps:
|
|
14
|
+
* - Use SignatureService for signing operations (but keys come from Accounts app)
|
|
15
|
+
* - Do NOT call KeyManager.createIdentity() or KeyManager.importKeyPair()
|
|
16
|
+
* - The Oxy Accounts app handles all identity generation and key storage
|
|
8
17
|
*/
|
|
9
18
|
|
|
10
19
|
// Import polyfills first - this ensures Buffer is available for crypto libraries
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["KeyManager","SignatureService","default"],"sourceRoot":"../../../src","sources":["crypto/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO,YAAY;AAEnB,SAASA,UAAU,QAAsB,cAAc;AACvD,SACEC,gBAAgB,QAGX,oBAAoB;AAG3B;AACA,SAASD,UAAU,IAAIE,OAAO,QAAQ,cAAc","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["KeyManager","SignatureService","default"],"sourceRoot":"../../../src","sources":["crypto/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO,YAAY;AAEnB,SAASA,UAAU,QAAsB,cAAc;AACvD,SACEC,gBAAgB,QAGX,oBAAoB;AAG3B;AACA,SAASD,UAAU,IAAIE,OAAO,QAAQ,cAAc","ignoreList":[]}
|
|
@@ -503,8 +503,11 @@ export class KeyManager {
|
|
|
503
503
|
* Format: first 8 chars...last 8 chars
|
|
504
504
|
*/
|
|
505
505
|
static shortenPublicKey(publicKey) {
|
|
506
|
-
|
|
507
|
-
|
|
506
|
+
// Use shared utility
|
|
507
|
+
const {
|
|
508
|
+
shortenPublicKey
|
|
509
|
+
} = require('@oxyhq/shared');
|
|
510
|
+
return shortenPublicKey(publicKey);
|
|
508
511
|
}
|
|
509
512
|
}
|
|
510
513
|
export default KeyManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ec","EC","Platform","SecureStore","ExpoCrypto","STORAGE_KEYS","PRIVATE_KEY","PUBLIC_KEY","BACKUP_PRIVATE_KEY","BACKUP_PUBLIC_KEY","BACKUP_TIMESTAMP","initSecureStore","error","errorMessage","Error","message","String","isReactNative","navigator","product","isNodeJS","process","versions","node","isWebPlatform","OS","window","initExpoCrypto","uint8ArrayToHex","bytes","Array","from","map","b","toString","padStart","join","getSecureRandomBytes","length","Crypto","getRandomBytes","getCrypto","Function","crypto","Uint8Array","randomBytes","KeyManager","cachedPublicKey","cachedHasIdentity","invalidateCache","generateKeyPairSync","keyPair","genKeyPair","privateKey","getPrivate","publicKey","getPublic","generateKeyPair","privateKeyHex","keyFromPrivate","createIdentity","store","setItemAsync","keychainAccessible","WHEN_UNLOCKED_THIS_DEVICE_ONLY","importKeyPair","getPrivateKey","getItemAsync","__DEV__","console","warn","getPublicKey","hasIdentity","deleteIdentity","skipBackup","force","userConfirmed","backupSuccess","backupIdentity","backupError","deleteItemAsync","Date","now","verifyIdentityIntegrity","isValidPrivateKey","isValidPublicKey","derivedPublicKey","derivePublicKey","getKeyPairObject","restoreIdentityFromBackup","backupPrivateKey","backupPublicKey","restored","keyFromPublic","shortenPublicKey","slice"],"sourceRoot":"../../../src","sources":["crypto/keyManager.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["ec","EC","Platform","SecureStore","ExpoCrypto","STORAGE_KEYS","PRIVATE_KEY","PUBLIC_KEY","BACKUP_PRIVATE_KEY","BACKUP_PUBLIC_KEY","BACKUP_TIMESTAMP","initSecureStore","error","errorMessage","Error","message","String","isReactNative","navigator","product","isNodeJS","process","versions","node","isWebPlatform","OS","window","initExpoCrypto","uint8ArrayToHex","bytes","Array","from","map","b","toString","padStart","join","getSecureRandomBytes","length","Crypto","getRandomBytes","getCrypto","Function","crypto","Uint8Array","randomBytes","KeyManager","cachedPublicKey","cachedHasIdentity","invalidateCache","generateKeyPairSync","keyPair","genKeyPair","privateKey","getPrivate","publicKey","getPublic","generateKeyPair","privateKeyHex","keyFromPrivate","createIdentity","store","setItemAsync","keychainAccessible","WHEN_UNLOCKED_THIS_DEVICE_ONLY","importKeyPair","getPrivateKey","getItemAsync","__DEV__","console","warn","getPublicKey","hasIdentity","deleteIdentity","skipBackup","force","userConfirmed","backupSuccess","backupIdentity","backupError","deleteItemAsync","Date","now","verifyIdentityIntegrity","isValidPrivateKey","isValidPublicKey","derivedPublicKey","derivePublicKey","getKeyPairObject","restoreIdentityFromBackup","backupPrivateKey","backupPublicKey","restored","keyFromPublic","shortenPublicKey","require"],"sourceRoot":"../../../src","sources":["crypto/keyManager.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,95 +5,36 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Handles signing and verification of messages using ECDSA secp256k1.
|
|
7
7
|
* Used for authenticating requests and proving identity ownership.
|
|
8
|
+
*
|
|
9
|
+
* Note: This service handles SIGNING (requires private key access via KeyManager).
|
|
10
|
+
* For VERIFICATION, use @oxyhq/shared SignatureService instead.
|
|
8
11
|
*/
|
|
9
12
|
|
|
10
13
|
import { ec as EC } from 'elliptic';
|
|
11
14
|
import { KeyManager } from './keyManager';
|
|
12
|
-
|
|
13
|
-
// Lazy import for expo-crypto
|
|
14
|
-
let ExpoCrypto = null;
|
|
15
|
+
import { buildAuthMessage, buildRegistrationMessage, buildRequestMessage, getCryptoAdapter } from '@oxyhq/shared';
|
|
15
16
|
const ec = new EC('secp256k1');
|
|
16
17
|
|
|
17
|
-
|
|
18
|
-
* Check if we're in a React Native environment
|
|
19
|
-
*/
|
|
20
|
-
function isReactNative() {
|
|
21
|
-
return typeof navigator !== 'undefined' && navigator.product === 'ReactNative';
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Check if we're in a Node.js environment
|
|
26
|
-
*/
|
|
27
|
-
function isNodeJS() {
|
|
28
|
-
return typeof process !== 'undefined' && process.versions != null && process.versions.node != null;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Initialize expo-crypto module
|
|
33
|
-
*/
|
|
34
|
-
async function initExpoCrypto() {
|
|
35
|
-
if (!ExpoCrypto) {
|
|
36
|
-
ExpoCrypto = await import('expo-crypto');
|
|
37
|
-
}
|
|
38
|
-
return ExpoCrypto;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Compute SHA-256 hash of a string
|
|
43
|
-
*/
|
|
44
|
-
async function sha256(message) {
|
|
45
|
-
// In React Native, always use expo-crypto
|
|
46
|
-
if (isReactNative() || !isNodeJS()) {
|
|
47
|
-
const Crypto = await initExpoCrypto();
|
|
48
|
-
return Crypto.digestStringAsync(Crypto.CryptoDigestAlgorithm.SHA256, message);
|
|
49
|
-
}
|
|
18
|
+
// Re-export shared types
|
|
50
19
|
|
|
51
|
-
// In Node.js, use Node's crypto module
|
|
52
|
-
// Use Function constructor to prevent Metro bundler from statically analyzing this require
|
|
53
|
-
// This ensures the require is only evaluated in Node.js runtime, not during Metro bundling
|
|
54
|
-
try {
|
|
55
|
-
// eslint-disable-next-line @typescript-eslint/no-implied-eval
|
|
56
|
-
const getCrypto = new Function('return require("crypto")');
|
|
57
|
-
const crypto = getCrypto();
|
|
58
|
-
return crypto.createHash('sha256').update(message).digest('hex');
|
|
59
|
-
} catch (error) {
|
|
60
|
-
// Fallback to expo-crypto if Node crypto fails
|
|
61
|
-
const Crypto = await initExpoCrypto();
|
|
62
|
-
return Crypto.digestStringAsync(Crypto.CryptoDigestAlgorithm.SHA256, message);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
20
|
export class SignatureService {
|
|
66
21
|
/**
|
|
67
22
|
* Generate a random challenge string (for offline use)
|
|
68
|
-
* Uses
|
|
23
|
+
* Uses shared crypto adapter
|
|
69
24
|
*/
|
|
70
25
|
static async generateChallenge() {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
const randomBytes = await Crypto.getRandomBytesAsync(32);
|
|
75
|
-
return Array.from(randomBytes).map(b => b.toString(16).padStart(2, '0')).join('');
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
// Node.js fallback
|
|
79
|
-
try {
|
|
80
|
-
// eslint-disable-next-line @typescript-eslint/no-implied-eval
|
|
81
|
-
const getCrypto = new Function('return require("crypto")');
|
|
82
|
-
const crypto = getCrypto();
|
|
83
|
-
return crypto.randomBytes(32).toString('hex');
|
|
84
|
-
} catch (error) {
|
|
85
|
-
// Fallback to expo-crypto if Node crypto fails
|
|
86
|
-
const Crypto = await initExpoCrypto();
|
|
87
|
-
const randomBytes = await Crypto.getRandomBytesAsync(32);
|
|
88
|
-
return Array.from(randomBytes).map(b => b.toString(16).padStart(2, '0')).join('');
|
|
89
|
-
}
|
|
26
|
+
const adapter = await getCryptoAdapter();
|
|
27
|
+
const randomBytes = await adapter.randomBytes(32);
|
|
28
|
+
return Array.from(randomBytes).map(b => b.toString(16).padStart(2, '0')).join('');
|
|
90
29
|
}
|
|
91
30
|
|
|
92
31
|
/**
|
|
93
32
|
* Hash a message using SHA-256
|
|
33
|
+
* Uses shared crypto adapter
|
|
94
34
|
*/
|
|
95
35
|
static async hashMessage(message) {
|
|
96
|
-
|
|
36
|
+
const adapter = await getCryptoAdapter();
|
|
37
|
+
return adapter.sha256(message);
|
|
97
38
|
}
|
|
98
39
|
|
|
99
40
|
/**
|
|
@@ -105,7 +46,8 @@ export class SignatureService {
|
|
|
105
46
|
if (!keyPair) {
|
|
106
47
|
throw new Error('No identity found. Please create or import an identity first.');
|
|
107
48
|
}
|
|
108
|
-
const
|
|
49
|
+
const adapter = await getCryptoAdapter();
|
|
50
|
+
const messageHash = await adapter.sha256(message);
|
|
109
51
|
const signature = keyPair.sign(messageHash);
|
|
110
52
|
return signature.toDER('hex');
|
|
111
53
|
}
|
|
@@ -116,45 +58,21 @@ export class SignatureService {
|
|
|
116
58
|
*/
|
|
117
59
|
static async signWithKey(message, privateKey) {
|
|
118
60
|
const keyPair = ec.keyFromPrivate(privateKey);
|
|
119
|
-
const
|
|
61
|
+
const adapter = await getCryptoAdapter();
|
|
62
|
+
const messageHash = await adapter.sha256(message);
|
|
120
63
|
const signature = keyPair.sign(messageHash);
|
|
121
64
|
return signature.toDER('hex');
|
|
122
65
|
}
|
|
123
66
|
|
|
124
67
|
/**
|
|
125
68
|
* Verify a signature against a message and public key
|
|
69
|
+
* Uses shared SignatureService for verification
|
|
126
70
|
*/
|
|
127
71
|
static async verify(message, signature, publicKey) {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
} catch {
|
|
133
|
-
return false;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
/**
|
|
138
|
-
* Synchronous verification (for Node.js backend)
|
|
139
|
-
* Uses crypto module directly for hashing
|
|
140
|
-
* Note: This method should only be used in Node.js environments
|
|
141
|
-
*/
|
|
142
|
-
static verifySync(message, signature, publicKey) {
|
|
143
|
-
try {
|
|
144
|
-
if (!isNodeJS()) {
|
|
145
|
-
// In React Native, use async verify instead
|
|
146
|
-
throw new Error('verifySync should only be used in Node.js. Use verify() in React Native.');
|
|
147
|
-
}
|
|
148
|
-
// Use Function constructor to prevent Metro bundler from statically analyzing this require
|
|
149
|
-
// eslint-disable-next-line @typescript-eslint/no-implied-eval
|
|
150
|
-
const getCrypto = new Function('return require("crypto")');
|
|
151
|
-
const crypto = getCrypto();
|
|
152
|
-
const key = ec.keyFromPublic(publicKey, 'hex');
|
|
153
|
-
const messageHash = crypto.createHash('sha256').update(message).digest('hex');
|
|
154
|
-
return key.verify(messageHash, signature);
|
|
155
|
-
} catch {
|
|
156
|
-
return false;
|
|
157
|
-
}
|
|
72
|
+
const {
|
|
73
|
+
SignatureService: SharedSignatureService
|
|
74
|
+
} = await import('@oxyhq/shared');
|
|
75
|
+
return SharedSignatureService.verify(message, signature, publicKey);
|
|
158
76
|
}
|
|
159
77
|
|
|
160
78
|
/**
|
|
@@ -179,9 +97,14 @@ export class SignatureService {
|
|
|
179
97
|
/**
|
|
180
98
|
* Verify a signed message object
|
|
181
99
|
* Checks both signature validity and timestamp freshness
|
|
100
|
+
* Uses shared SignatureService for verification
|
|
182
101
|
*/
|
|
183
102
|
static async verifySignedMessage(signedMessage, maxAgeMs = 5 * 60 * 1000 // 5 minutes default
|
|
184
103
|
) {
|
|
104
|
+
const {
|
|
105
|
+
SignatureService: SharedSignatureService,
|
|
106
|
+
isTimestampFresh
|
|
107
|
+
} = await import('@oxyhq/shared');
|
|
185
108
|
const {
|
|
186
109
|
message,
|
|
187
110
|
signature,
|
|
@@ -190,14 +113,13 @@ export class SignatureService {
|
|
|
190
113
|
} = signedMessage;
|
|
191
114
|
|
|
192
115
|
// Check timestamp freshness
|
|
193
|
-
|
|
194
|
-
if (now - timestamp > maxAgeMs) {
|
|
116
|
+
if (!isTimestampFresh(timestamp, maxAgeMs)) {
|
|
195
117
|
return false;
|
|
196
118
|
}
|
|
197
119
|
|
|
198
120
|
// Verify signature
|
|
199
121
|
const messageWithTimestamp = `${message}:${timestamp}`;
|
|
200
|
-
return
|
|
122
|
+
return SharedSignatureService.verify(messageWithTimestamp, signature, publicKey);
|
|
201
123
|
}
|
|
202
124
|
|
|
203
125
|
/**
|
|
@@ -210,7 +132,7 @@ export class SignatureService {
|
|
|
210
132
|
throw new Error('No identity found. Please create or import an identity first.');
|
|
211
133
|
}
|
|
212
134
|
const timestamp = Date.now();
|
|
213
|
-
const message =
|
|
135
|
+
const message = buildAuthMessage(publicKey, challenge, timestamp);
|
|
214
136
|
const signature = await SignatureService.sign(message);
|
|
215
137
|
return {
|
|
216
138
|
challenge: signature,
|
|
@@ -221,21 +143,18 @@ export class SignatureService {
|
|
|
221
143
|
|
|
222
144
|
/**
|
|
223
145
|
* Verify a challenge response
|
|
146
|
+
* Uses shared SignatureService for verification
|
|
224
147
|
*/
|
|
225
148
|
static async verifyChallengeResponse(originalChallenge, response, maxAgeMs = 5 * 60 * 1000) {
|
|
149
|
+
const {
|
|
150
|
+
SignatureService: SharedSignatureService
|
|
151
|
+
} = await import('@oxyhq/shared');
|
|
226
152
|
const {
|
|
227
153
|
challenge: signature,
|
|
228
154
|
publicKey,
|
|
229
155
|
timestamp
|
|
230
156
|
} = response;
|
|
231
|
-
|
|
232
|
-
// Check timestamp freshness
|
|
233
|
-
const now = Date.now();
|
|
234
|
-
if (now - timestamp > maxAgeMs) {
|
|
235
|
-
return false;
|
|
236
|
-
}
|
|
237
|
-
const message = `auth:${publicKey}:${originalChallenge}:${timestamp}`;
|
|
238
|
-
return SignatureService.verify(message, signature, publicKey);
|
|
157
|
+
return SharedSignatureService.verifyChallengeResponse(publicKey, originalChallenge, signature, timestamp, maxAgeMs);
|
|
239
158
|
}
|
|
240
159
|
|
|
241
160
|
/**
|
|
@@ -249,7 +168,7 @@ export class SignatureService {
|
|
|
249
168
|
throw new Error('No identity found. Please create or import an identity first.');
|
|
250
169
|
}
|
|
251
170
|
const timestamp = Date.now();
|
|
252
|
-
const message =
|
|
171
|
+
const message = buildRegistrationMessage(publicKey, timestamp);
|
|
253
172
|
const signature = await SignatureService.sign(message);
|
|
254
173
|
return {
|
|
255
174
|
signature,
|
|
@@ -268,12 +187,7 @@ export class SignatureService {
|
|
|
268
187
|
throw new Error('No identity found. Please create or import an identity first.');
|
|
269
188
|
}
|
|
270
189
|
const timestamp = Date.now();
|
|
271
|
-
|
|
272
|
-
// Create canonical string representation
|
|
273
|
-
const sortedKeys = Object.keys(data).sort();
|
|
274
|
-
const canonicalParts = sortedKeys.map(key => `${key}:${JSON.stringify(data[key])}`);
|
|
275
|
-
const canonicalString = canonicalParts.join('|');
|
|
276
|
-
const message = `request:${publicKey}:${timestamp}:${canonicalString}`;
|
|
190
|
+
const message = buildRequestMessage(publicKey, timestamp, data);
|
|
277
191
|
const signature = await SignatureService.sign(message);
|
|
278
192
|
return {
|
|
279
193
|
signature,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ec","EC","KeyManager","
|
|
1
|
+
{"version":3,"names":["ec","EC","KeyManager","buildAuthMessage","buildRegistrationMessage","buildRequestMessage","getCryptoAdapter","SignatureService","generateChallenge","adapter","randomBytes","Array","from","map","b","toString","padStart","join","hashMessage","message","sha256","sign","keyPair","getKeyPairObject","Error","messageHash","signature","toDER","signWithKey","privateKey","keyFromPrivate","verify","publicKey","SharedSignatureService","createSignedMessage","getPublicKey","timestamp","Date","now","messageWithTimestamp","verifySignedMessage","signedMessage","maxAgeMs","isTimestampFresh","signChallenge","challenge","verifyChallengeResponse","originalChallenge","response","createRegistrationSignature","signRequestData","data"],"sourceRoot":"../../../src","sources":["crypto/signatureService.ts"],"mappings":"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","ignoreList":[]}
|