@oxyhq/services 5.2.2 → 5.2.4
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/core/index.js +117 -0
- package/lib/commonjs/core/index.js.map +1 -1
- package/lib/commonjs/models/secureSession.js +2 -0
- package/lib/commonjs/models/secureSession.js.map +1 -0
- package/lib/commonjs/ui/context/LegacyOxyContext.js +643 -0
- package/lib/commonjs/ui/context/LegacyOxyContext.js.map +1 -0
- package/lib/commonjs/ui/context/OxyContext.js +215 -450
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/context/SecureOxyContext.js +408 -0
- package/lib/commonjs/ui/context/SecureOxyContext.js.map +1 -0
- package/lib/commonjs/ui/screens/AccountCenterScreen.js +3 -3
- package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +31 -30
- package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AppInfoScreen.js +4 -4
- package/lib/commonjs/ui/screens/AppInfoScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/SessionManagementScreen.js +34 -34
- package/lib/commonjs/ui/screens/SessionManagementScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/SignInScreen.js +2 -2
- package/lib/commonjs/ui/screens/SignInScreen.js.map +1 -1
- package/lib/module/core/index.js +117 -0
- package/lib/module/core/index.js.map +1 -1
- package/lib/module/models/secureSession.js +2 -0
- package/lib/module/models/secureSession.js.map +1 -0
- package/lib/module/ui/context/LegacyOxyContext.js +639 -0
- package/lib/module/ui/context/LegacyOxyContext.js.map +1 -0
- package/lib/module/ui/context/OxyContext.js +214 -450
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/context/SecureOxyContext.js +403 -0
- package/lib/module/ui/context/SecureOxyContext.js.map +1 -0
- package/lib/module/ui/screens/AccountCenterScreen.js +3 -3
- package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -1
- package/lib/module/ui/screens/AccountSwitcherScreen.js +31 -30
- package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -1
- package/lib/module/ui/screens/AppInfoScreen.js +4 -4
- package/lib/module/ui/screens/AppInfoScreen.js.map +1 -1
- package/lib/module/ui/screens/SessionManagementScreen.js +34 -34
- package/lib/module/ui/screens/SessionManagementScreen.js.map +1 -1
- package/lib/module/ui/screens/SignInScreen.js +2 -2
- package/lib/module/ui/screens/SignInScreen.js.map +1 -1
- package/lib/typescript/core/index.d.ts +51 -0
- package/lib/typescript/core/index.d.ts.map +1 -1
- package/lib/typescript/models/secureSession.d.ts +25 -0
- package/lib/typescript/models/secureSession.d.ts.map +1 -0
- package/lib/typescript/ui/context/LegacyOxyContext.d.ts +40 -0
- package/lib/typescript/ui/context/LegacyOxyContext.d.ts.map +1 -0
- package/lib/typescript/ui/context/OxyContext.d.ts +11 -12
- package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/ui/context/SecureOxyContext.d.ts +39 -0
- package/lib/typescript/ui/context/SecureOxyContext.d.ts.map +1 -0
- package/lib/typescript/ui/screens/AccountSwitcherScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/SessionManagementScreen.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/core/index.ts +117 -0
- package/src/index.ts +2 -2
- package/src/models/secureSession.ts +27 -0
- package/src/ui/context/LegacyOxyContext.tsx +735 -0
- package/src/ui/context/OxyContext.tsx +412 -674
- package/src/ui/context/SecureOxyContext.tsx +473 -0
- package/src/ui/screens/AccountCenterScreen.tsx +4 -4
- package/src/ui/screens/AccountSwitcherScreen.tsx +36 -34
- package/src/ui/screens/AppInfoScreen.tsx +3 -3
- package/src/ui/screens/SessionManagementScreen.tsx +31 -35
- package/src/ui/screens/SignInScreen.tsx +2 -2
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { OxyConfig, User, LoginResponse, Notification, Wallet, Transaction, TransferFundsRequest, PurchaseRequest, WithdrawalRequest, TransactionResponse, KarmaRule, KarmaHistory, KarmaLeaderboardEntry, KarmaAwardRequest, PaymentMethod, PaymentRequest, PaymentResponse, AnalyticsData, FollowerDetails, ContentViewer, FileMetadata, FileUploadResponse, FileListResponse, FileUpdateRequest, FileDeleteResponse } from '../models/interfaces';
|
|
2
|
+
import { SecureLoginResponse } from '../models/secureSession';
|
|
2
3
|
/**
|
|
3
4
|
* Default cloud URL for Oxy services, cloud is where the user files are. (e.g. images, videos, etc.). Not the API.
|
|
4
5
|
*/
|
|
@@ -417,6 +418,56 @@ export declare class OxyServices {
|
|
|
417
418
|
* @returns Array of file metadata and pagination info
|
|
418
419
|
*/
|
|
419
420
|
listUserFiles(userId: string, limit?: number, offset?: number, filters?: Record<string, any>): Promise<FileListResponse>;
|
|
421
|
+
/**
|
|
422
|
+
* Secure login that returns only session data (no tokens stored locally)
|
|
423
|
+
* @param username - User's username or email
|
|
424
|
+
* @param password - User's password
|
|
425
|
+
* @param deviceName - Optional device name for session tracking
|
|
426
|
+
* @returns Secure login response with session data
|
|
427
|
+
*/
|
|
428
|
+
secureLogin(username: string, password: string, deviceName?: string): Promise<SecureLoginResponse>;
|
|
429
|
+
/**
|
|
430
|
+
* Get full user data by session ID
|
|
431
|
+
* @param sessionId - The session ID
|
|
432
|
+
* @returns Full user data
|
|
433
|
+
*/
|
|
434
|
+
getUserBySession(sessionId: string): Promise<User>;
|
|
435
|
+
/**
|
|
436
|
+
* Get access token by session ID (for API calls)
|
|
437
|
+
* @param sessionId - The session ID
|
|
438
|
+
* @returns Access token and expiry info
|
|
439
|
+
*/
|
|
440
|
+
getTokenBySession(sessionId: string): Promise<{
|
|
441
|
+
accessToken: string;
|
|
442
|
+
expiresAt: string;
|
|
443
|
+
}>;
|
|
444
|
+
/**
|
|
445
|
+
* Get all active sessions for current user
|
|
446
|
+
* @param sessionId - Current session ID
|
|
447
|
+
* @returns Array of user sessions
|
|
448
|
+
*/
|
|
449
|
+
getSessionsBySessionId(sessionId: string): Promise<any[]>;
|
|
450
|
+
/**
|
|
451
|
+
* Logout specific session
|
|
452
|
+
* @param sessionId - Current session ID
|
|
453
|
+
* @param targetSessionId - Optional target session to logout (defaults to current)
|
|
454
|
+
*/
|
|
455
|
+
logoutSecureSession(sessionId: string, targetSessionId?: string): Promise<void>;
|
|
456
|
+
/**
|
|
457
|
+
* Logout all sessions for current user
|
|
458
|
+
* @param sessionId - Current session ID
|
|
459
|
+
*/
|
|
460
|
+
logoutAllSecureSessions(sessionId: string): Promise<void>;
|
|
461
|
+
/**
|
|
462
|
+
* Validate session
|
|
463
|
+
* @param sessionId - The session ID to validate
|
|
464
|
+
* @returns Session validation status
|
|
465
|
+
*/
|
|
466
|
+
validateSession(sessionId: string): Promise<{
|
|
467
|
+
valid: boolean;
|
|
468
|
+
expiresAt: string;
|
|
469
|
+
lastActivity: string;
|
|
470
|
+
}>;
|
|
420
471
|
/**
|
|
421
472
|
* Centralized error handling
|
|
422
473
|
* @private
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,SAAS,EACT,IAAI,EACJ,aAAa,EACb,YAAY,EACZ,MAAM,EACN,WAAW,EACX,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,SAAS,EACT,YAAY,EACZ,qBAAqB,EACrB,iBAAiB,EAEjB,aAAa,EACb,cAAc,EACd,eAAe,EACf,aAAa,EACb,eAAe,EACf,aAAa,EAEb,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export interface SecureClientSession {
|
|
2
|
+
sessionId: string;
|
|
3
|
+
deviceId: string;
|
|
4
|
+
expiresAt: string;
|
|
5
|
+
lastActive: string;
|
|
6
|
+
}
|
|
7
|
+
export interface SecureStorageKeys {
|
|
8
|
+
sessions: string;
|
|
9
|
+
activeSessionId: string;
|
|
10
|
+
}
|
|
11
|
+
export interface MinimalUserData {
|
|
12
|
+
id: string;
|
|
13
|
+
username: string;
|
|
14
|
+
avatar?: {
|
|
15
|
+
id?: string;
|
|
16
|
+
url?: string;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export interface SecureLoginResponse {
|
|
20
|
+
sessionId: string;
|
|
21
|
+
deviceId: string;
|
|
22
|
+
expiresAt: string;
|
|
23
|
+
user: MinimalUserData;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=secureSession.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secureSession.d.ts","sourceRoot":"","sources":["../../../src/models/secureSession.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE;QACP,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,eAAe,CAAC;CACvB"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
2
|
+
import { OxyServices } from '../../core';
|
|
3
|
+
import { User } from '../../models/interfaces';
|
|
4
|
+
export interface AuthenticatedUser extends User {
|
|
5
|
+
accessToken: string;
|
|
6
|
+
refreshToken?: string;
|
|
7
|
+
sessionId?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface LegacyOxyContextState {
|
|
10
|
+
user: User | null;
|
|
11
|
+
users: AuthenticatedUser[];
|
|
12
|
+
isAuthenticated: boolean;
|
|
13
|
+
isLoading: boolean;
|
|
14
|
+
error: string | null;
|
|
15
|
+
login: (username: string, password: string) => Promise<User>;
|
|
16
|
+
logout: (userId?: string) => Promise<void>;
|
|
17
|
+
logoutAll: () => Promise<void>;
|
|
18
|
+
signUp: (username: string, email: string, password: string) => Promise<User>;
|
|
19
|
+
switchUser: (userId: string) => Promise<void>;
|
|
20
|
+
removeUser: (userId: string) => Promise<void>;
|
|
21
|
+
getUserSessions: (userId?: string) => Promise<any[]>;
|
|
22
|
+
logoutSession: (sessionId: string, userId?: string) => Promise<void>;
|
|
23
|
+
oxyServices: OxyServices;
|
|
24
|
+
bottomSheetRef?: React.RefObject<any>;
|
|
25
|
+
showBottomSheet?: (screenOrConfig?: string | {
|
|
26
|
+
screen: string;
|
|
27
|
+
props?: Record<string, any>;
|
|
28
|
+
}) => void;
|
|
29
|
+
hideBottomSheet?: () => void;
|
|
30
|
+
}
|
|
31
|
+
export interface LegacyOxyContextProviderProps {
|
|
32
|
+
children: ReactNode;
|
|
33
|
+
oxyServices: OxyServices;
|
|
34
|
+
storageKeyPrefix?: string;
|
|
35
|
+
onAuthStateChange?: (user: User | null) => void;
|
|
36
|
+
bottomSheetRef?: React.RefObject<any>;
|
|
37
|
+
}
|
|
38
|
+
export declare const LegacyOxyContextProvider: React.FC<LegacyOxyContextProviderProps>;
|
|
39
|
+
export declare const useLegacyOxy: () => LegacyOxyContextState;
|
|
40
|
+
//# sourceMappingURL=LegacyOxyContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LegacyOxyContext.d.ts","sourceRoot":"","sources":["../../../../src/ui/context/LegacyOxyContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAA+D,SAAS,EAAW,MAAM,OAAO,CAAC;AAC/G,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,IAAI,EAAiB,MAAM,yBAAyB,CAAC;AAG9D,MAAM,WAAW,iBAAkB,SAAQ,IAAI;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAGD,MAAM,WAAW,qBAAqB;IAElC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAGrB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAG7E,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,eAAe,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACrD,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAGrE,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAGtC,eAAe,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,KAAK,IAAI,CAAC;IACtG,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;CAChC;AAMD,MAAM,WAAW,6BAA6B;IAC1C,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IAChD,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;CACzC;AAoED,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAAC,6BAA6B,CA8lB5E,CAAC;AAGF,eAAO,MAAM,YAAY,6BAMxB,CAAC"}
|
|
@@ -1,25 +1,22 @@
|
|
|
1
1
|
import React, { ReactNode } from 'react';
|
|
2
2
|
import { OxyServices } from '../../core';
|
|
3
3
|
import { User } from '../../models/interfaces';
|
|
4
|
-
|
|
5
|
-
accessToken: string;
|
|
6
|
-
refreshToken?: string;
|
|
7
|
-
sessionId?: string;
|
|
8
|
-
}
|
|
4
|
+
import { SecureClientSession, MinimalUserData } from '../../models/secureSession';
|
|
9
5
|
export interface OxyContextState {
|
|
10
6
|
user: User | null;
|
|
11
|
-
|
|
7
|
+
minimalUser: MinimalUserData | null;
|
|
8
|
+
sessions: SecureClientSession[];
|
|
9
|
+
activeSessionId: string | null;
|
|
12
10
|
isAuthenticated: boolean;
|
|
13
11
|
isLoading: boolean;
|
|
14
12
|
error: string | null;
|
|
15
|
-
login: (username: string, password: string) => Promise<User>;
|
|
16
|
-
logout: (
|
|
13
|
+
login: (username: string, password: string, deviceName?: string) => Promise<User>;
|
|
14
|
+
logout: (targetSessionId?: string) => Promise<void>;
|
|
17
15
|
logoutAll: () => Promise<void>;
|
|
18
16
|
signUp: (username: string, email: string, password: string) => Promise<User>;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
logoutSession: (sessionId: string, userId?: string) => Promise<void>;
|
|
17
|
+
switchSession: (sessionId: string) => Promise<void>;
|
|
18
|
+
removeSession: (sessionId: string) => Promise<void>;
|
|
19
|
+
refreshSessions: () => Promise<void>;
|
|
23
20
|
oxyServices: OxyServices;
|
|
24
21
|
bottomSheetRef?: React.RefObject<any>;
|
|
25
22
|
showBottomSheet?: (screenOrConfig?: string | {
|
|
@@ -28,6 +25,7 @@ export interface OxyContextState {
|
|
|
28
25
|
}) => void;
|
|
29
26
|
hideBottomSheet?: () => void;
|
|
30
27
|
}
|
|
28
|
+
declare const OxyContext: React.Context<OxyContextState | null>;
|
|
31
29
|
export interface OxyContextProviderProps {
|
|
32
30
|
children: ReactNode;
|
|
33
31
|
oxyServices: OxyServices;
|
|
@@ -37,4 +35,5 @@ export interface OxyContextProviderProps {
|
|
|
37
35
|
}
|
|
38
36
|
export declare const OxyContextProvider: React.FC<OxyContextProviderProps>;
|
|
39
37
|
export declare const useOxy: () => OxyContextState;
|
|
38
|
+
export default OxyContext;
|
|
40
39
|
//# sourceMappingURL=OxyContext.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OxyContext.d.ts","sourceRoot":"","sources":["../../../../src/ui/context/OxyContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAA+D,SAAS,
|
|
1
|
+
{"version":3,"file":"OxyContext.d.ts","sourceRoot":"","sources":["../../../../src/ui/context/OxyContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAA+D,SAAS,EAAW,MAAM,OAAO,CAAC;AAC/G,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAuB,mBAAmB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAGvG,MAAM,WAAW,eAAe;IAE9B,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,WAAW,EAAE,eAAe,GAAG,IAAI,CAAC;IACpC,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAGrB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClF,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAG7E,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAGrC,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAGtC,eAAe,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,KAAK,IAAI,CAAC;IACtG,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;CAC9B;AAGD,QAAA,MAAM,UAAU,uCAA8C,CAAC;AAG/D,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IAChD,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;CACvC;AA6DD,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAkWhE,CAAC;AAGF,eAAO,MAAM,MAAM,QAAO,eAMzB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
2
|
+
import { OxyServices } from '../../core';
|
|
3
|
+
import { User } from '../../models/interfaces';
|
|
4
|
+
import { SecureClientSession, MinimalUserData } from '../../models/secureSession';
|
|
5
|
+
export interface SecureOxyContextState {
|
|
6
|
+
user: User | null;
|
|
7
|
+
minimalUser: MinimalUserData | null;
|
|
8
|
+
sessions: SecureClientSession[];
|
|
9
|
+
activeSessionId: string | null;
|
|
10
|
+
isAuthenticated: boolean;
|
|
11
|
+
isLoading: boolean;
|
|
12
|
+
error: string | null;
|
|
13
|
+
secureLogin: (username: string, password: string, deviceName?: string) => Promise<User>;
|
|
14
|
+
logout: (targetSessionId?: string) => Promise<void>;
|
|
15
|
+
logoutAll: () => Promise<void>;
|
|
16
|
+
signUp: (username: string, email: string, password: string) => Promise<User>;
|
|
17
|
+
switchSession: (sessionId: string) => Promise<void>;
|
|
18
|
+
removeSession: (sessionId: string) => Promise<void>;
|
|
19
|
+
refreshSessions: () => Promise<void>;
|
|
20
|
+
oxyServices: OxyServices;
|
|
21
|
+
bottomSheetRef?: React.RefObject<any>;
|
|
22
|
+
showBottomSheet?: (screenOrConfig?: string | {
|
|
23
|
+
screen: string;
|
|
24
|
+
props?: Record<string, any>;
|
|
25
|
+
}) => void;
|
|
26
|
+
hideBottomSheet?: () => void;
|
|
27
|
+
}
|
|
28
|
+
declare const SecureOxyContext: React.Context<SecureOxyContextState | null>;
|
|
29
|
+
export interface SecureOxyContextProviderProps {
|
|
30
|
+
children: ReactNode;
|
|
31
|
+
oxyServices: OxyServices;
|
|
32
|
+
storageKeyPrefix?: string;
|
|
33
|
+
onAuthStateChange?: (user: User | null) => void;
|
|
34
|
+
bottomSheetRef?: React.RefObject<any>;
|
|
35
|
+
}
|
|
36
|
+
export declare const SecureOxyContextProvider: React.FC<SecureOxyContextProviderProps>;
|
|
37
|
+
export declare const useSecureOxyContext: () => SecureOxyContextState;
|
|
38
|
+
export default SecureOxyContext;
|
|
39
|
+
//# sourceMappingURL=SecureOxyContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SecureOxyContext.d.ts","sourceRoot":"","sources":["../../../../src/ui/context/SecureOxyContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAA+D,SAAS,EAAW,MAAM,OAAO,CAAC;AAC/G,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAuB,mBAAmB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAGvG,MAAM,WAAW,qBAAqB;IAEpC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,WAAW,EAAE,eAAe,GAAG,IAAI,CAAC;IACpC,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAGrB,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxF,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAG7E,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAGrC,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAGtC,eAAe,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,KAAK,IAAI,CAAC;IACtG,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;CAC9B;AAGD,QAAA,MAAM,gBAAgB,6CAAoD,CAAC;AAG3E,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IAChD,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;CACvC;AA6DD,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAAC,6BAA6B,CAkW5E,CAAC;AAGF,eAAO,MAAM,mBAAmB,QAAO,qBAMtC,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountSwitcherScreen.d.ts","sourceRoot":"","sources":["../../../../src/ui/screens/AccountSwitcherScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAWnD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"AccountSwitcherScreen.d.ts","sourceRoot":"","sources":["../../../../src/ui/screens/AccountSwitcherScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAWnD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAKtD,QAAA,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAgOpD,CAAC;AA6IF,eAAe,qBAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionManagementScreen.d.ts","sourceRoot":"","sources":["../../../../src/ui/screens/SessionManagementScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAYnD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAiBtD,QAAA,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,
|
|
1
|
+
{"version":3,"file":"SessionManagementScreen.d.ts","sourceRoot":"","sources":["../../../../src/ui/screens/SessionManagementScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAYnD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAiBtD,QAAA,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA4TtD,CAAC;AAiIF,eAAe,uBAAuB,CAAC"}
|
package/package.json
CHANGED
package/src/core/index.ts
CHANGED
|
@@ -40,6 +40,9 @@ import {
|
|
|
40
40
|
FileDeleteResponse
|
|
41
41
|
} from '../models/interfaces';
|
|
42
42
|
|
|
43
|
+
// Import secure session types
|
|
44
|
+
import { SecureLoginResponse, SecureClientSession } from '../models/secureSession';
|
|
45
|
+
|
|
43
46
|
/**
|
|
44
47
|
* Default cloud URL for Oxy services, cloud is where the user files are. (e.g. images, videos, etc.). Not the API.
|
|
45
48
|
*/
|
|
@@ -1020,6 +1023,120 @@ export class OxyServices {
|
|
|
1020
1023
|
}
|
|
1021
1024
|
}
|
|
1022
1025
|
|
|
1026
|
+
/**
|
|
1027
|
+
* Secure login that returns only session data (no tokens stored locally)
|
|
1028
|
+
* @param username - User's username or email
|
|
1029
|
+
* @param password - User's password
|
|
1030
|
+
* @param deviceName - Optional device name for session tracking
|
|
1031
|
+
* @returns Secure login response with session data
|
|
1032
|
+
*/
|
|
1033
|
+
async secureLogin(username: string, password: string, deviceName?: string): Promise<SecureLoginResponse> {
|
|
1034
|
+
try {
|
|
1035
|
+
const res = await this.client.post('/secure-session/login', {
|
|
1036
|
+
username,
|
|
1037
|
+
password,
|
|
1038
|
+
deviceName
|
|
1039
|
+
});
|
|
1040
|
+
return res.data;
|
|
1041
|
+
} catch (error) {
|
|
1042
|
+
throw this.handleError(error);
|
|
1043
|
+
}
|
|
1044
|
+
}
|
|
1045
|
+
|
|
1046
|
+
/**
|
|
1047
|
+
* Get full user data by session ID
|
|
1048
|
+
* @param sessionId - The session ID
|
|
1049
|
+
* @returns Full user data
|
|
1050
|
+
*/
|
|
1051
|
+
async getUserBySession(sessionId: string): Promise<User> {
|
|
1052
|
+
try {
|
|
1053
|
+
const res = await this.client.get(`/secure-session/user/${sessionId}`);
|
|
1054
|
+
return res.data.user;
|
|
1055
|
+
} catch (error) {
|
|
1056
|
+
throw this.handleError(error);
|
|
1057
|
+
}
|
|
1058
|
+
}
|
|
1059
|
+
|
|
1060
|
+
/**
|
|
1061
|
+
* Get access token by session ID (for API calls)
|
|
1062
|
+
* @param sessionId - The session ID
|
|
1063
|
+
* @returns Access token and expiry info
|
|
1064
|
+
*/
|
|
1065
|
+
async getTokenBySession(sessionId: string): Promise<{ accessToken: string; expiresAt: string }> {
|
|
1066
|
+
try {
|
|
1067
|
+
const res = await this.client.get(`/secure-session/token/${sessionId}`);
|
|
1068
|
+
// Set the token for subsequent API calls
|
|
1069
|
+
this.accessToken = res.data.accessToken;
|
|
1070
|
+
return res.data;
|
|
1071
|
+
} catch (error) {
|
|
1072
|
+
throw this.handleError(error);
|
|
1073
|
+
}
|
|
1074
|
+
}
|
|
1075
|
+
|
|
1076
|
+
/**
|
|
1077
|
+
* Get all active sessions for current user
|
|
1078
|
+
* @param sessionId - Current session ID
|
|
1079
|
+
* @returns Array of user sessions
|
|
1080
|
+
*/
|
|
1081
|
+
async getSessionsBySessionId(sessionId: string): Promise<any[]> {
|
|
1082
|
+
try {
|
|
1083
|
+
const res = await this.client.get(`/secure-session/sessions/${sessionId}`);
|
|
1084
|
+
return res.data.sessions;
|
|
1085
|
+
} catch (error) {
|
|
1086
|
+
throw this.handleError(error);
|
|
1087
|
+
}
|
|
1088
|
+
}
|
|
1089
|
+
|
|
1090
|
+
/**
|
|
1091
|
+
* Logout specific session
|
|
1092
|
+
* @param sessionId - Current session ID
|
|
1093
|
+
* @param targetSessionId - Optional target session to logout (defaults to current)
|
|
1094
|
+
*/
|
|
1095
|
+
async logoutSecureSession(sessionId: string, targetSessionId?: string): Promise<void> {
|
|
1096
|
+
try {
|
|
1097
|
+
await this.client.post(`/secure-session/logout/${sessionId}`, {
|
|
1098
|
+
targetSessionId
|
|
1099
|
+
});
|
|
1100
|
+
|
|
1101
|
+
// If we're logging out the current session, clear the access token
|
|
1102
|
+
if (!targetSessionId || targetSessionId === sessionId) {
|
|
1103
|
+
this.accessToken = null;
|
|
1104
|
+
this.refreshToken = null;
|
|
1105
|
+
}
|
|
1106
|
+
} catch (error) {
|
|
1107
|
+
throw this.handleError(error);
|
|
1108
|
+
}
|
|
1109
|
+
}
|
|
1110
|
+
|
|
1111
|
+
/**
|
|
1112
|
+
* Logout all sessions for current user
|
|
1113
|
+
* @param sessionId - Current session ID
|
|
1114
|
+
*/
|
|
1115
|
+
async logoutAllSecureSessions(sessionId: string): Promise<void> {
|
|
1116
|
+
try {
|
|
1117
|
+
await this.client.post(`/secure-session/logout-all/${sessionId}`);
|
|
1118
|
+
// Clear tokens since all sessions are logged out
|
|
1119
|
+
this.accessToken = null;
|
|
1120
|
+
this.refreshToken = null;
|
|
1121
|
+
} catch (error) {
|
|
1122
|
+
throw this.handleError(error);
|
|
1123
|
+
}
|
|
1124
|
+
}
|
|
1125
|
+
|
|
1126
|
+
/**
|
|
1127
|
+
* Validate session
|
|
1128
|
+
* @param sessionId - The session ID to validate
|
|
1129
|
+
* @returns Session validation status
|
|
1130
|
+
*/
|
|
1131
|
+
async validateSession(sessionId: string): Promise<{ valid: boolean; expiresAt: string; lastActivity: string }> {
|
|
1132
|
+
try {
|
|
1133
|
+
const res = await this.client.get(`/secure-session/validate/${sessionId}`);
|
|
1134
|
+
return res.data;
|
|
1135
|
+
} catch (error) {
|
|
1136
|
+
throw this.handleError(error);
|
|
1137
|
+
}
|
|
1138
|
+
}
|
|
1139
|
+
|
|
1023
1140
|
/**
|
|
1024
1141
|
* Centralized error handling
|
|
1025
1142
|
* @private
|
package/src/index.ts
CHANGED
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
// Context and Hooks
|
|
12
12
|
OxyProvider,
|
|
13
13
|
OxyContextProvider,
|
|
14
|
-
useOxy,
|
|
14
|
+
useOxy,
|
|
15
15
|
|
|
16
16
|
// Screens
|
|
17
17
|
SignInScreen,
|
|
@@ -45,7 +45,7 @@ export {
|
|
|
45
45
|
// Context and Hooks
|
|
46
46
|
OxyProvider,
|
|
47
47
|
OxyContextProvider,
|
|
48
|
-
useOxy,
|
|
48
|
+
useOxy,
|
|
49
49
|
|
|
50
50
|
// Screens
|
|
51
51
|
SignInScreen,
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface SecureClientSession {
|
|
2
|
+
sessionId: string;
|
|
3
|
+
deviceId: string;
|
|
4
|
+
expiresAt: string;
|
|
5
|
+
lastActive: string;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export interface SecureStorageKeys {
|
|
9
|
+
sessions: string; // Array of SecureClientSession objects
|
|
10
|
+
activeSessionId: string; // ID of currently active session
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export interface MinimalUserData {
|
|
14
|
+
id: string;
|
|
15
|
+
username: string;
|
|
16
|
+
avatar?: {
|
|
17
|
+
id?: string;
|
|
18
|
+
url?: string;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface SecureLoginResponse {
|
|
23
|
+
sessionId: string;
|
|
24
|
+
deviceId: string;
|
|
25
|
+
expiresAt: string;
|
|
26
|
+
user: MinimalUserData;
|
|
27
|
+
}
|