@oxyhq/services 5.17.5 → 5.17.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/lib/commonjs/crypto/keyManager.js +6 -161
  2. package/lib/commonjs/crypto/keyManager.js.map +1 -1
  3. package/lib/commonjs/ui/context/OxyContext.js +20 -543
  4. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  5. package/lib/commonjs/ui/context/OxyContextBase.js.map +1 -1
  6. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +14 -331
  7. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  8. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +8 -112
  9. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  10. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +2 -27
  11. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -1
  12. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js +2 -27
  13. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js.map +1 -1
  14. package/lib/commonjs/ui/hooks/useSessionSocket.js +2 -88
  15. package/lib/commonjs/ui/hooks/useSessionSocket.js.map +1 -1
  16. package/lib/module/crypto/keyManager.js +6 -161
  17. package/lib/module/crypto/keyManager.js.map +1 -1
  18. package/lib/module/ui/context/OxyContext.js +20 -543
  19. package/lib/module/ui/context/OxyContext.js.map +1 -1
  20. package/lib/module/ui/context/OxyContextBase.js.map +1 -1
  21. package/lib/module/ui/context/hooks/useAuthOperations.js +14 -330
  22. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  23. package/lib/module/ui/hooks/mutations/useAccountMutations.js +8 -112
  24. package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  25. package/lib/module/ui/hooks/queries/useAccountQueries.js +2 -27
  26. package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -1
  27. package/lib/module/ui/hooks/queries/useServicesQueries.js +2 -27
  28. package/lib/module/ui/hooks/queries/useServicesQueries.js.map +1 -1
  29. package/lib/module/ui/hooks/useSessionSocket.js +2 -88
  30. package/lib/module/ui/hooks/useSessionSocket.js.map +1 -1
  31. package/lib/typescript/crypto/keyManager.d.ts +3 -20
  32. package/lib/typescript/crypto/keyManager.d.ts.map +1 -1
  33. package/lib/typescript/crypto/types.d.ts +4 -0
  34. package/lib/typescript/crypto/types.d.ts.map +1 -1
  35. package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
  36. package/lib/typescript/ui/context/OxyContextBase.d.ts +0 -37
  37. package/lib/typescript/ui/context/OxyContextBase.d.ts.map +1 -1
  38. package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts +1 -20
  39. package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  40. package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  41. package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
  42. package/lib/typescript/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  43. package/lib/typescript/ui/hooks/useSessionSocket.d.ts +1 -14
  44. package/lib/typescript/ui/hooks/useSessionSocket.d.ts.map +1 -1
  45. package/package.json +1 -1
  46. package/src/crypto/keyManager.ts +4 -170
  47. package/src/crypto/types.ts +4 -0
  48. package/src/ui/context/OxyContext.tsx +17 -588
  49. package/src/ui/context/OxyContextBase.tsx +2 -20
  50. package/src/ui/context/hooks/useAuthOperations.ts +22 -347
  51. package/src/ui/hooks/mutations/useAccountMutations.ts +12 -110
  52. package/src/ui/hooks/queries/useAccountQueries.ts +3 -27
  53. package/src/ui/hooks/queries/useServicesQueries.ts +3 -27
  54. package/src/ui/hooks/useSessionSocket.ts +2 -106
@@ -10,13 +10,6 @@ export interface KeyPair {
10
10
  privateKey: string;
11
11
  }
12
12
  export declare class KeyManager {
13
- private static cachedPublicKey;
14
- private static cachedHasIdentity;
15
- /**
16
- * Invalidate cached identity state
17
- * Called internally when identity is created/deleted/imported
18
- */
19
- private static invalidateCache;
20
13
  /**
21
14
  * Generate a new ECDSA secp256k1 key pair
22
15
  * Returns the keys in hexadecimal format
@@ -41,35 +34,25 @@ export declare class KeyManager {
41
34
  */
42
35
  static getPrivateKey(): Promise<string | null>;
43
36
  /**
44
- * Get the stored public key (cached for performance)
37
+ * Get the stored public key
45
38
  */
46
39
  static getPublicKey(): Promise<string | null>;
47
40
  /**
48
- * Check if an identity (key pair) exists on this device (cached for performance)
41
+ * Check if an identity (key pair) exists on this device
49
42
  */
50
43
  static hasIdentity(): Promise<boolean>;
51
44
  /**
52
45
  * Delete the stored identity (both keys)
53
46
  * Use with EXTREME caution - this is irreversible without a backup file
54
47
  * This should ONLY be called when explicitly requested by the user
55
- * @param skipBackup - If true, skip backup before deletion (default: false)
56
48
  * @param force - If true, skip confirmation checks (default: false)
57
49
  * @param userConfirmed - If true, user has explicitly confirmed deletion (default: false)
58
50
  */
59
- static deleteIdentity(skipBackup?: boolean, force?: boolean, userConfirmed?: boolean): Promise<void>;
60
- /**
61
- * Backup identity to SecureStore (separate backup storage)
62
- * This provides a recovery mechanism if primary storage fails
63
- */
64
- static backupIdentity(): Promise<boolean>;
51
+ static deleteIdentity(force?: boolean, userConfirmed?: boolean): Promise<void>;
65
52
  /**
66
53
  * Verify identity integrity - checks if keys are valid and accessible
67
54
  */
68
55
  static verifyIdentityIntegrity(): Promise<boolean>;
69
- /**
70
- * Restore identity from backup if primary storage is corrupted
71
- */
72
- static restoreIdentityFromBackup(): Promise<boolean>;
73
56
  /**
74
57
  * Get the elliptic curve key object from the stored private key
75
58
  * Used internally for signing operations
@@ -1 +1 @@
1
- {"version":3,"file":"keyManager.d.ts","sourceRoot":"","sources":["../../../src/crypto/keyManager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAyG1C,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,UAAU;IAErB,OAAO,CAAC,MAAM,CAAC,eAAe,CAAuB;IACrD,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAwB;IAExD;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAK9B;;;OAGG;IACH,MAAM,CAAC,mBAAmB,IAAI,OAAO;IAQrC;;OAEG;WACU,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAWhD;;;OAGG;WACU,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAoB9C;;OAEG;WACU,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqB/D;;;OAGG;WACU,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAiBpD;;OAEG;WACU,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA2BnD;;OAEG;WACU,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IA2B5C;;;;;;;OAOG;WACU,cAAc,CACzB,UAAU,GAAE,OAAe,EAC3B,KAAK,GAAE,OAAe,EACtB,aAAa,GAAE,OAAe,GAC7B,OAAO,CAAC,IAAI,CAAC;IAkDhB;;;OAGG;WACU,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IA6B/C;;OAEG;WACU,uBAAuB,IAAI,OAAO,CAAC,OAAO,CAAC;IA2CxD;;OAEG;WACU,yBAAyB,IAAI,OAAO,CAAC,OAAO,CAAC;IAsD1D;;;OAGG;WACU,gBAAgB,IAAI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAS1D;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAKlD;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IASnD;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAWrD;;;OAGG;IACH,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;CAInD;AAED,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"keyManager.d.ts","sourceRoot":"","sources":["../../../src/crypto/keyManager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAsG1C,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,UAAU;IAErB;;;OAGG;IACH,MAAM,CAAC,mBAAmB,IAAI,OAAO;IAQrC;;OAEG;WACU,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAWhD;;;OAGG;WACU,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAgB9C;;OAEG;WACU,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiB/D;;;OAGG;WACU,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAiBpD;;OAEG;WACU,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAgBnD;;OAEG;WACU,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAgB5C;;;;;;OAMG;WACU,cAAc,CACzB,KAAK,GAAE,OAAe,EACtB,aAAa,GAAE,OAAe,GAC7B,OAAO,CAAC,IAAI,CAAC;IAqBhB;;OAEG;WACU,uBAAuB,IAAI,OAAO,CAAC,OAAO,CAAC;IA2CxD;;;OAGG;WACU,gBAAgB,IAAI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAS1D;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAKlD;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IASnD;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAWrD;;;OAGG;IACH,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;CAInD;AAED,eAAe,UAAU,CAAC"}
@@ -14,5 +14,9 @@ export interface BackupData {
14
14
  iv: string;
15
15
  /** Public key associated with the encrypted private key */
16
16
  publicKey: string;
17
+ /** Encryption algorithm used (optional, for backward compatibility) */
18
+ algorithm?: 'xor' | 'aes-256-gcm';
19
+ /** Format version (optional, for backward compatibility) */
20
+ version?: string;
17
21
  }
18
22
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/crypto/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;CACnB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/crypto/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,SAAS,CAAC,EAAE,KAAK,GAAG,aAAa,CAAC;IAClC,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
@@ -1 +1 @@
1
- {"version":3,"file":"OxyContext.d.ts","sourceRoot":"","sources":["../../../../src/ui/context/OxyContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAoC/B,OAAO,EACL,UAAU,EACV,MAAM,EACN,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC7B,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,eAAe,EAAE,KAAK,uBAAuB,EAAE,CAAC;AAgClF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CA2hCzD,CAAC;AAEF,eAAO,MAAM,kBAAkB,mCAAc,CAAC;AAE9C,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"OxyContext.d.ts","sourceRoot":"","sources":["../../../../src/ui/context/OxyContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAoC/B,OAAO,EACL,UAAU,EACV,MAAM,EACN,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC7B,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,eAAe,EAAE,KAAK,uBAAuB,EAAE,CAAC;AAgClF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAgezD,CAAC;AAEF,eAAO,MAAM,kBAAkB,mCAAc,CAAC;AAE9C,eAAe,UAAU,CAAC"}
@@ -5,7 +5,6 @@ import type { ClientSession } from '../../models/session';
5
5
  import type { UseFollowHook } from '../hooks/useFollow.types';
6
6
  import type { useLanguageManagement } from '../hooks/useLanguageManagement';
7
7
  import type { RouteName } from '../navigation/routes';
8
- import type { BackupData } from '../../crypto';
9
8
  export interface OxyContextState {
10
9
  user: User | null;
11
10
  sessions: ClientSession[];
@@ -20,43 +19,7 @@ export interface OxyContextState {
20
19
  currentLanguageMetadata: ReturnType<typeof useLanguageManagement>['metadata'];
21
20
  currentLanguageName: string;
22
21
  currentNativeLanguageName: string;
23
- createIdentity: () => Promise<{
24
- synced: boolean;
25
- }>;
26
- importIdentity: (backupData: BackupData, password: string) => Promise<{
27
- synced: boolean;
28
- }>;
29
22
  signIn: (deviceName?: string) => Promise<User>;
30
- hasIdentity: () => Promise<boolean>;
31
- getPublicKey: () => Promise<string | null>;
32
- isIdentitySynced: () => Promise<boolean>;
33
- syncIdentity: () => Promise<User>;
34
- deleteIdentityAndClearAccount: (skipBackup?: boolean, force?: boolean, userConfirmed?: boolean) => Promise<void>;
35
- storeTransferCode: (transferId: string, code: string, sourceDeviceId: string | null, publicKey: string) => Promise<void>;
36
- getTransferCode: (transferId: string) => {
37
- code: string;
38
- sourceDeviceId: string | null;
39
- publicKey: string;
40
- timestamp: number;
41
- state: 'pending' | 'completed' | 'failed';
42
- } | null;
43
- clearTransferCode: (transferId: string) => Promise<void>;
44
- getAllPendingTransfers: () => Array<{
45
- transferId: string;
46
- data: {
47
- code: string;
48
- sourceDeviceId: string | null;
49
- publicKey: string;
50
- timestamp: number;
51
- state: 'pending' | 'completed' | 'failed';
52
- };
53
- }>;
54
- getActiveTransferId: () => string | null;
55
- updateTransferState: (transferId: string, state: 'pending' | 'completed' | 'failed') => Promise<void>;
56
- identitySyncState: {
57
- isSynced: boolean;
58
- isSyncing: boolean;
59
- };
60
23
  logout: (targetSessionId?: string) => Promise<void>;
61
24
  logoutAll: () => Promise<void>;
62
25
  switchSession: (sessionId: string) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"OxyContextBase.d.ts","sourceRoot":"","sources":["../../../../src/ui/context/OxyContextBase.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OxyContextBase.d.ts","sourceRoot":"","sources":["../../../../src/ui/context/OxyContextBase.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGtD,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,uBAAuB,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC,UAAU,CAAC,CAAC;IAC9E,mBAAmB,EAAE,MAAM,CAAC;IAC5B,yBAAyB,EAAE,MAAM,CAAC;IAIlC,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAG/C,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,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;IACrC,WAAW,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,iBAAiB,EAAE,MAAM,OAAO,CAC5B,KAAK,CAAC;QACF,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC,CACL,CAAC;IACF,uBAAuB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,mBAAmB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,eAAe,CAAC,EAAE,CAAC,cAAc,EAAE,SAAS,GAAG;QAAE,MAAM,EAAE,SAAS,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,KAAK,IAAI,CAAC;IAC/G,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAChC;AAED,eAAO,MAAM,UAAU,iDAA8C,CAAC;AAEtE,MAAM,WAAW,uBAAuB;IACpC,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IAChD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;CACvC;AAED;;;GAGG;AACH,eAAO,MAAM,MAAM,QAAO,eAMzB,CAAC"}
@@ -3,7 +3,6 @@ import type { AuthState } from '../../stores/authStore';
3
3
  import type { ClientSession } from '../../../models/session';
4
4
  import type { StorageInterface } from '../../utils/storageHelpers';
5
5
  import type { OxyServices } from '../../../core';
6
- import { type BackupData } from '../../../crypto';
7
6
  export interface UseAuthOperationsOptions {
8
7
  oxyServices: OxyServices;
9
8
  storage: StorageInterface | null;
@@ -23,37 +22,19 @@ export interface UseAuthOperationsOptions {
23
22
  loginFailure: (message: string) => void;
24
23
  logoutStore: () => void;
25
24
  setAuthState: (state: Partial<AuthState>) => void;
26
- setIdentitySynced: (synced: boolean) => void;
27
- setSyncing: (syncing: boolean) => void;
28
25
  logger?: (message: string, error?: unknown) => void;
29
26
  }
30
27
  export interface UseAuthOperationsResult {
31
- /** Create a new identity locally (offline-first) and optionally sync with server */
32
- createIdentity: () => Promise<{
33
- synced: boolean;
34
- }>;
35
- /** Import an existing identity from backup file data */
36
- importIdentity: (backupData: BackupData, password: string) => Promise<{
37
- synced: boolean;
38
- }>;
39
28
  /** Sign in with existing identity on device */
40
29
  signIn: (deviceName?: string) => Promise<User>;
41
30
  /** Logout from current session */
42
31
  logout: (targetSessionId?: string) => Promise<void>;
43
32
  /** Logout from all sessions */
44
33
  logoutAll: () => Promise<void>;
45
- /** Check if device has an identity stored */
46
- hasIdentity: () => Promise<boolean>;
47
- /** Get the public key of the stored identity */
48
- getPublicKey: () => Promise<string | null>;
49
- /** Check if identity is synced with server */
50
- isIdentitySynced: () => Promise<boolean>;
51
- /** Sync local identity with server (when online) */
52
- syncIdentity: () => Promise<User>;
53
34
  }
54
35
  /**
55
36
  * Authentication operations using public key cryptography.
56
37
  * No passwords required - identity is based on ECDSA key pairs.
57
38
  */
58
- export declare const useAuthOperations: ({ oxyServices, storage, sessions, activeSessionId, setActiveSessionId, updateSessions, saveActiveSessionId, clearSessionState, switchSession, applyLanguagePreference, onAuthStateChange, onError, loginSuccess, loginFailure, logoutStore, setAuthState, setIdentitySynced, setSyncing, logger, }: UseAuthOperationsOptions) => UseAuthOperationsResult;
39
+ export declare const useAuthOperations: ({ oxyServices, storage, sessions, activeSessionId, setActiveSessionId, updateSessions, saveActiveSessionId, clearSessionState, switchSession, applyLanguagePreference, onAuthStateChange, onError, loginSuccess, loginFailure, logoutStore, setAuthState, logger, }: UseAuthOperationsOptions) => UseAuthOperationsResult;
59
40
  //# sourceMappingURL=useAuthOperations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAuthOperations.d.ts","sourceRoot":"","sources":["../../../../../src/ui/context/hooks/useAuthOperations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useAuthOperations.d.ts","sourceRoot":"","sources":["../../../../../src/ui/context/hooks/useAuthOperations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAI7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGjD,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACjC,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACvD,cAAc,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IACnF,mBAAmB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,uBAAuB,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IAChD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IACpC,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IAClD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACrD;AAED,MAAM,WAAW,uBAAuB;IACtC,+CAA+C;IAC/C,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,kCAAkC;IAClC,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,+BAA+B;IAC/B,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAOD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,qQAkB/B,wBAAwB,KAAG,uBAmP7B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useAccountMutations.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/mutations/useAccountMutations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAUvD;;GAEG;AACH,eAAO,MAAM,gBAAgB;;EA6G5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe;SAKQ,MAAM;WAAS,MAAM;WAAS,MAAM;WAAS,MAAM;;;EAwGtF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB;;EAwCpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB;cAKoB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;aAAW,MAAM;;;;cAgI5F,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa;UAUd,IAAI;iBACG,SAAS,GAAG,QAAQ,GAAG,UAAU;eACnC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;iBACjB,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI;WAoD5C,CAAC"}
1
+ {"version":3,"file":"useAccountMutations.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/mutations/useAccountMutations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAUvD;;GAEG;AACH,eAAO,MAAM,gBAAgB;;EAqF5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe;SAKQ,MAAM;WAAS,MAAM;WAAS,MAAM;WAAS,MAAM;;;EA8EtF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB;;EAwCpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB;cAKoB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;aAAW,MAAM;;;;cAwG5F,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa;UAUd,IAAI;iBACG,SAAS,GAAG,QAAQ,GAAG,UAAU;eACnC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;iBACjB,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI;WA4B5C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useAccountQueries.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/queries/useAccountQueries.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAKvD;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,WAAW,MAAM,GAAG,IAAI,EAAE,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,gEAevF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,YAAY,MAAM,EAAE,EAAE,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,yEAepF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,gEAe7D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,gEAejF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,UAAU,MAAM,GAAG,IAAI,EAAE,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,gEAezF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,YAAY,MAAM,EAAE,EAAE,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE;;;WAevF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,SAAS,MAAM,EAAE,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,+DAmElF,CAAC"}
1
+ {"version":3,"file":"useAccountQueries.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/queries/useAccountQueries.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAKvD;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,WAAW,MAAM,GAAG,IAAI,EAAE,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,gEAevF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,YAAY,MAAM,EAAE,EAAE,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,yEAepF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,gEAe7D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,gEAejF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,UAAU,MAAM,GAAG,IAAI,EAAE,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,gEAezF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,YAAY,MAAM,EAAE,EAAE,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE;;;WAevF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,SAAS,MAAM,EAAE,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,+DA2ClF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useServicesQueries.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/queries/useServicesQueries.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAK7D;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,SAAS,MAAM,EAAE,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,2EAqB3E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,GAAI,WAAW,MAAM,GAAG,IAAI,EAAE,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,yEA6BnF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,iEAgBhE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,iEA4D7D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE;;SAY9D,CAAC"}
1
+ {"version":3,"file":"useServicesQueries.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/queries/useServicesQueries.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAK7D;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,SAAS,MAAM,EAAE,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,2EAqB3E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,GAAI,WAAW,MAAM,GAAG,IAAI,EAAE,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,yEA6BnF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,iEAgBhE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,iEAoC7D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE;;SAY9D,CAAC"}
@@ -7,22 +7,9 @@ interface UseSessionSocketProps {
7
7
  clearSessionState: () => Promise<void>;
8
8
  baseURL: string;
9
9
  getAccessToken: () => string | null;
10
- getTransferCode?: (transferId: string) => {
11
- code: string;
12
- sourceDeviceId: string | null;
13
- publicKey: string;
14
- timestamp: number;
15
- } | null;
16
10
  onRemoteSignOut?: () => void;
17
11
  onSessionRemoved?: (sessionId: string) => void;
18
- onIdentityTransferComplete?: (data: {
19
- transferId: string;
20
- sourceDeviceId: string;
21
- publicKey: string;
22
- transferCode?: string;
23
- completedAt: string;
24
- }) => void;
25
12
  }
26
- export declare function useSessionSocket({ userId, activeSessionId, currentDeviceId, refreshSessions, logout, clearSessionState, baseURL, getAccessToken, getTransferCode, onRemoteSignOut, onSessionRemoved, onIdentityTransferComplete }: UseSessionSocketProps): void;
13
+ export declare function useSessionSocket({ userId, activeSessionId, currentDeviceId, refreshSessions, logout, clearSessionState, baseURL, getAccessToken, onRemoteSignOut, onSessionRemoved }: UseSessionSocketProps): void;
27
14
  export {};
28
15
  //# sourceMappingURL=useSessionSocket.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSessionSocket.d.ts","sourceRoot":"","sources":["../../../../src/ui/hooks/useSessionSocket.ts"],"names":[],"mappings":"AAMA,UAAU,qBAAqB;IAC7B,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAClC,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC3C,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC3C,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACpC,eAAe,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACvI,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,0BAA0B,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAC5J;AAED,wBAAgB,gBAAgB,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,EAAE,qBAAqB,QAmdxP"}
1
+ {"version":3,"file":"useSessionSocket.d.ts","sourceRoot":"","sources":["../../../../src/ui/hooks/useSessionSocket.ts"],"names":[],"mappings":"AAMA,UAAU,qBAAqB;IAC7B,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAClC,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC3C,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC3C,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACpC,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD;AAED,wBAAgB,gBAAgB,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,EAAE,qBAAqB,QA6W3M"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxyhq/services",
3
- "version": "5.17.5",
3
+ "version": "5.17.8",
4
4
  "description": "Reusable OxyHQ module to handle authentication, user management, karma system, device-based session management and more 🚀",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -18,9 +18,6 @@ const ec = new EC('secp256k1');
18
18
  const STORAGE_KEYS = {
19
19
  PRIVATE_KEY: 'oxy_identity_private_key',
20
20
  PUBLIC_KEY: 'oxy_identity_public_key',
21
- BACKUP_PRIVATE_KEY: 'oxy_identity_backup_private_key',
22
- BACKUP_PUBLIC_KEY: 'oxy_identity_backup_public_key',
23
- BACKUP_TIMESTAMP: 'oxy_identity_backup_timestamp',
24
21
  } as const;
25
22
 
26
23
  /**
@@ -117,18 +114,6 @@ export interface KeyPair {
117
114
  }
118
115
 
119
116
  export class KeyManager {
120
- // In-memory cache for identity state (invalidated on identity changes)
121
- private static cachedPublicKey: string | null = null;
122
- private static cachedHasIdentity: boolean | null = null;
123
-
124
- /**
125
- * Invalidate cached identity state
126
- * Called internally when identity is created/deleted/imported
127
- */
128
- private static invalidateCache(): void {
129
- KeyManager.cachedPublicKey = null;
130
- KeyManager.cachedHasIdentity = null;
131
- }
132
117
 
133
118
  /**
134
119
  * Generate a new ECDSA secp256k1 key pair
@@ -173,10 +158,6 @@ export class KeyManager {
173
158
 
174
159
  await store.setItemAsync(STORAGE_KEYS.PUBLIC_KEY, publicKey);
175
160
 
176
- // Update cache
177
- KeyManager.cachedPublicKey = publicKey;
178
- KeyManager.cachedHasIdentity = true;
179
-
180
161
  return publicKey;
181
162
  }
182
163
 
@@ -197,10 +178,6 @@ export class KeyManager {
197
178
  });
198
179
  await store.setItemAsync(STORAGE_KEYS.PUBLIC_KEY, publicKey);
199
180
 
200
- // Update cache
201
- KeyManager.cachedPublicKey = publicKey;
202
- KeyManager.cachedHasIdentity = true;
203
-
204
181
  return publicKey;
205
182
  }
206
183
 
@@ -226,28 +203,17 @@ export class KeyManager {
226
203
  }
227
204
 
228
205
  /**
229
- * Get the stored public key (cached for performance)
206
+ * Get the stored public key
230
207
  */
231
208
  static async getPublicKey(): Promise<string | null> {
232
209
  if (isWebPlatform()) {
233
210
  return null; // Identity storage is only available on native platforms
234
211
  }
235
- if (KeyManager.cachedPublicKey !== null) {
236
- return KeyManager.cachedPublicKey;
237
- }
238
212
 
239
213
  try {
240
214
  const store = await initSecureStore();
241
- const publicKey = await store.getItemAsync(STORAGE_KEYS.PUBLIC_KEY);
242
-
243
- // Cache result (null is a valid cache value meaning no identity)
244
- KeyManager.cachedPublicKey = publicKey;
245
-
246
- return publicKey;
215
+ return await store.getItemAsync(STORAGE_KEYS.PUBLIC_KEY);
247
216
  } catch (error) {
248
- // If secure store is not available, return null (no identity)
249
- // Cache null to avoid repeated failed attempts
250
- KeyManager.cachedPublicKey = null;
251
217
  if (__DEV__) {
252
218
  console.warn('[KeyManager] Failed to access secure store:', error);
253
219
  }
@@ -256,28 +222,17 @@ export class KeyManager {
256
222
  }
257
223
 
258
224
  /**
259
- * Check if an identity (key pair) exists on this device (cached for performance)
225
+ * Check if an identity (key pair) exists on this device
260
226
  */
261
227
  static async hasIdentity(): Promise<boolean> {
262
228
  if (isWebPlatform()) {
263
229
  return false; // Identity storage is only available on native platforms
264
230
  }
265
- if (KeyManager.cachedHasIdentity !== null) {
266
- return KeyManager.cachedHasIdentity;
267
- }
268
231
 
269
232
  try {
270
233
  const privateKey = await KeyManager.getPrivateKey();
271
- const hasIdentity = privateKey !== null;
272
-
273
- // Cache result
274
- KeyManager.cachedHasIdentity = hasIdentity;
275
-
276
- return hasIdentity;
234
+ return privateKey !== null;
277
235
  } catch (error) {
278
- // If we can't check, assume no identity (safer default)
279
- // Cache false to avoid repeated failed attempts
280
- KeyManager.cachedHasIdentity = false;
281
236
  if (__DEV__) {
282
237
  console.warn('[KeyManager] Failed to check identity:', error);
283
238
  }
@@ -289,12 +244,10 @@ export class KeyManager {
289
244
  * Delete the stored identity (both keys)
290
245
  * Use with EXTREME caution - this is irreversible without a backup file
291
246
  * This should ONLY be called when explicitly requested by the user
292
- * @param skipBackup - If true, skip backup before deletion (default: false)
293
247
  * @param force - If true, skip confirmation checks (default: false)
294
248
  * @param userConfirmed - If true, user has explicitly confirmed deletion (default: false)
295
249
  */
296
250
  static async deleteIdentity(
297
- skipBackup: boolean = false,
298
251
  force: boolean = false,
299
252
  userConfirmed: boolean = false
300
253
  ): Promise<void> {
@@ -314,70 +267,8 @@ export class KeyManager {
314
267
  }
315
268
 
316
269
  const store = await initSecureStore();
317
-
318
- // ALWAYS create backup before deletion unless explicitly skipped
319
- if (!skipBackup) {
320
- try {
321
- const backupSuccess = await KeyManager.backupIdentity();
322
- if (!backupSuccess && typeof __DEV__ !== 'undefined' && __DEV__) {
323
- console.warn('[KeyManager] Failed to backup identity before deletion - proceeding anyway');
324
- }
325
- } catch (backupError) {
326
- if (typeof __DEV__ !== 'undefined' && __DEV__) {
327
- console.warn('[KeyManager] Failed to backup identity before deletion:', backupError);
328
- }
329
- }
330
- }
331
-
332
270
  await store.deleteItemAsync(STORAGE_KEYS.PRIVATE_KEY);
333
271
  await store.deleteItemAsync(STORAGE_KEYS.PUBLIC_KEY);
334
-
335
- // Invalidate cache
336
- KeyManager.invalidateCache();
337
-
338
- // Also clear backup if force deletion
339
- if (force) {
340
- try {
341
- await store.deleteItemAsync(STORAGE_KEYS.BACKUP_PRIVATE_KEY);
342
- await store.deleteItemAsync(STORAGE_KEYS.BACKUP_PUBLIC_KEY);
343
- await store.deleteItemAsync(STORAGE_KEYS.BACKUP_TIMESTAMP);
344
- } catch (error) {
345
- // Ignore backup deletion errors
346
- }
347
- }
348
- }
349
-
350
- /**
351
- * Backup identity to SecureStore (separate backup storage)
352
- * This provides a recovery mechanism if primary storage fails
353
- */
354
- static async backupIdentity(): Promise<boolean> {
355
- if (isWebPlatform()) {
356
- return false; // Identity storage is only available on native platforms
357
- }
358
- try {
359
- const store = await initSecureStore();
360
- const privateKey = await KeyManager.getPrivateKey();
361
- const publicKey = await KeyManager.getPublicKey();
362
-
363
- if (!privateKey || !publicKey) {
364
- return false; // Nothing to backup
365
- }
366
-
367
- // Store backup in SecureStore (still secure, but separate from primary storage)
368
- await store.setItemAsync(STORAGE_KEYS.BACKUP_PRIVATE_KEY, privateKey, {
369
- keychainAccessible: store.WHEN_UNLOCKED_THIS_DEVICE_ONLY,
370
- });
371
- await store.setItemAsync(STORAGE_KEYS.BACKUP_PUBLIC_KEY, publicKey);
372
- await store.setItemAsync(STORAGE_KEYS.BACKUP_TIMESTAMP, Date.now().toString());
373
-
374
- return true;
375
- } catch (error) {
376
- if (typeof __DEV__ !== 'undefined' && __DEV__) {
377
- console.error('[KeyManager] Failed to backup identity:', error);
378
- }
379
- return false;
380
- }
381
272
  }
382
273
 
383
274
  /**
@@ -426,63 +317,6 @@ export class KeyManager {
426
317
  }
427
318
  }
428
319
 
429
- /**
430
- * Restore identity from backup if primary storage is corrupted
431
- */
432
- static async restoreIdentityFromBackup(): Promise<boolean> {
433
- if (isWebPlatform()) {
434
- return false; // Identity storage is only available on native platforms
435
- }
436
- try {
437
- const store = await initSecureStore();
438
-
439
- // Check if backup exists
440
- const backupPrivateKey = await store.getItemAsync(STORAGE_KEYS.BACKUP_PRIVATE_KEY);
441
- const backupPublicKey = await store.getItemAsync(STORAGE_KEYS.BACKUP_PUBLIC_KEY);
442
-
443
- if (!backupPrivateKey || !backupPublicKey) {
444
- return false; // No backup available
445
- }
446
-
447
- // Verify backup integrity
448
- if (!KeyManager.isValidPrivateKey(backupPrivateKey)) {
449
- return false;
450
- }
451
-
452
- if (!KeyManager.isValidPublicKey(backupPublicKey)) {
453
- return false;
454
- }
455
-
456
- // Verify keys match
457
- const derivedPublicKey = KeyManager.derivePublicKey(backupPrivateKey);
458
- if (derivedPublicKey !== backupPublicKey) {
459
- return false; // Backup keys don't match
460
- }
461
-
462
- await store.setItemAsync(STORAGE_KEYS.PRIVATE_KEY, backupPrivateKey, {
463
- keychainAccessible: store.WHEN_UNLOCKED_THIS_DEVICE_ONLY,
464
- });
465
- await store.setItemAsync(STORAGE_KEYS.PUBLIC_KEY, backupPublicKey);
466
-
467
- const restored = await KeyManager.verifyIdentityIntegrity();
468
- if (restored) {
469
- // Update cache
470
- KeyManager.cachedPublicKey = backupPublicKey;
471
- KeyManager.cachedHasIdentity = true;
472
-
473
- await store.setItemAsync(STORAGE_KEYS.BACKUP_TIMESTAMP, Date.now().toString());
474
- return true;
475
- }
476
-
477
- return false;
478
- } catch (error) {
479
- if (typeof __DEV__ !== 'undefined' && __DEV__) {
480
- console.error('[KeyManager] Failed to restore identity from backup:', error);
481
- }
482
- return false;
483
- }
484
- }
485
-
486
320
  /**
487
321
  * Get the elliptic curve key object from the stored private key
488
322
  * Used internally for signing operations
@@ -15,5 +15,9 @@ export interface BackupData {
15
15
  iv: string;
16
16
  /** Public key associated with the encrypted private key */
17
17
  publicKey: string;
18
+ /** Encryption algorithm used (optional, for backward compatibility) */
19
+ algorithm?: 'xor' | 'aes-256-gcm';
20
+ /** Format version (optional, for backward compatibility) */
21
+ version?: string;
18
22
  }
19
23