@oxyhq/services 5.15.0 → 5.15.2

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.
@@ -30,6 +30,20 @@ async function initSecureStore() {
30
30
  }
31
31
  return SecureStore;
32
32
  }
33
+
34
+ /**
35
+ * Check if we're in a React Native environment
36
+ */
37
+ function isReactNative() {
38
+ return typeof navigator !== 'undefined' && navigator.product === 'ReactNative';
39
+ }
40
+
41
+ /**
42
+ * Check if we're in a Node.js environment
43
+ */
44
+ function isNodeJS() {
45
+ return typeof process !== 'undefined' && process.versions != null && process.versions.node != null;
46
+ }
33
47
  async function initExpoRandom() {
34
48
  if (!ExpoRandom) {
35
49
  ExpoRandom = await Promise.resolve().then(() => _interopRequireWildcard(require('expo-random')));
@@ -41,14 +55,16 @@ async function initExpoRandom() {
41
55
  * Generate cryptographically secure random bytes
42
56
  */
43
57
  async function getSecureRandomBytes(length) {
44
- try {
58
+ // In React Native, always use expo-random
59
+ if (isReactNative() || !isNodeJS()) {
45
60
  const Random = await initExpoRandom();
46
61
  return Random.getRandomBytes(length);
47
- } catch {
48
- // Fallback for Node.js environment
49
- const crypto = await Promise.resolve().then(() => _interopRequireWildcard(require('crypto')));
50
- return new Uint8Array(crypto.randomBytes(length));
51
62
  }
63
+
64
+ // In Node.js, use Node's crypto module
65
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
66
+ const crypto = require('crypto');
67
+ return new Uint8Array(crypto.randomBytes(length));
52
68
  }
53
69
  class KeyManager {
54
70
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["_elliptic","require","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SecureStore","ExpoRandom","ec","EC","STORAGE_KEYS","PRIVATE_KEY","PUBLIC_KEY","initSecureStore","Promise","resolve","then","initExpoRandom","getSecureRandomBytes","length","Random","getRandomBytes","crypto","Uint8Array","randomBytes","KeyManager","generateKeyPairSync","keyPair","genKeyPair","privateKey","getPrivate","publicKey","getPublic","generateKeyPair","privateKeyHex","Buffer","from","toString","keyFromPrivate","createIdentity","store","setItemAsync","keychainAccessible","WHEN_UNLOCKED_THIS_DEVICE_ONLY","importKeyPair","getPrivateKey","getItemAsync","getPublicKey","hasIdentity","deleteIdentity","deleteItemAsync","getKeyPairObject","derivePublicKey","isValidPublicKey","keyFromPublic","isValidPrivateKey","shortenPublicKey","slice","exports","_default"],"sourceRoot":"../../../src","sources":["crypto/keyManager.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_elliptic","require","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SecureStore","ExpoRandom","ec","EC","STORAGE_KEYS","PRIVATE_KEY","PUBLIC_KEY","initSecureStore","Promise","resolve","then","isReactNative","navigator","product","isNodeJS","process","versions","node","initExpoRandom","getSecureRandomBytes","length","Random","getRandomBytes","crypto","Uint8Array","randomBytes","KeyManager","generateKeyPairSync","keyPair","genKeyPair","privateKey","getPrivate","publicKey","getPublic","generateKeyPair","privateKeyHex","Buffer","from","toString","keyFromPrivate","createIdentity","store","setItemAsync","keychainAccessible","WHEN_UNLOCKED_THIS_DEVICE_ONLY","importKeyPair","getPrivateKey","getItemAsync","getPublicKey","hasIdentity","deleteIdentity","deleteItemAsync","getKeyPairObject","derivePublicKey","isValidPublicKey","keyFromPublic","isValidPrivateKey","shortenPublicKey","slice","exports","_default"],"sourceRoot":"../../../src","sources":["crypto/keyManager.ts"],"mappings":"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","ignoreList":[]}
@@ -16,6 +16,20 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
16
16
  let ExpoCrypto = null;
17
17
  const ec = new _elliptic.ec('secp256k1');
18
18
 
19
+ /**
20
+ * Check if we're in a React Native environment
21
+ */
22
+ function isReactNative() {
23
+ return typeof navigator !== 'undefined' && navigator.product === 'ReactNative';
24
+ }
25
+
26
+ /**
27
+ * Check if we're in a Node.js environment
28
+ */
29
+ function isNodeJS() {
30
+ return typeof process !== 'undefined' && process.versions != null && process.versions.node != null;
31
+ }
32
+
19
33
  /**
20
34
  * Initialize expo-crypto module
21
35
  */
@@ -30,14 +44,16 @@ async function initExpoCrypto() {
30
44
  * Compute SHA-256 hash of a string
31
45
  */
32
46
  async function sha256(message) {
33
- try {
47
+ // In React Native, always use expo-crypto
48
+ if (isReactNative() || !isNodeJS()) {
34
49
  const Crypto = await initExpoCrypto();
35
50
  return Crypto.digestStringAsync(Crypto.CryptoDigestAlgorithm.SHA256, message);
36
- } catch {
37
- // Fallback for Node.js environment
38
- const crypto = await Promise.resolve().then(() => _interopRequireWildcard(require('crypto')));
39
- return crypto.createHash('sha256').update(message).digest('hex');
40
51
  }
52
+
53
+ // In Node.js, use Node's crypto module
54
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
55
+ const crypto = require('crypto');
56
+ return crypto.createHash('sha256').update(message).digest('hex');
41
57
  }
42
58
  class SignatureService {
43
59
  /**
@@ -88,9 +104,14 @@ class SignatureService {
88
104
  /**
89
105
  * Synchronous verification (for Node.js backend)
90
106
  * Uses crypto module directly for hashing
107
+ * Note: This method should only be used in Node.js environments
91
108
  */
92
109
  static verifySync(message, signature, publicKey) {
93
110
  try {
111
+ if (!isNodeJS()) {
112
+ // In React Native, use async verify instead
113
+ throw new Error('verifySync should only be used in Node.js. Use verify() in React Native.');
114
+ }
94
115
  // eslint-disable-next-line @typescript-eslint/no-var-requires
95
116
  const crypto = require('crypto');
96
117
  const key = ec.keyFromPublic(publicKey, 'hex');
@@ -1 +1 @@
1
- {"version":3,"names":["_elliptic","require","_keyManager","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ExpoCrypto","ec","EC","initExpoCrypto","Promise","resolve","then","sha256","message","Crypto","digestStringAsync","CryptoDigestAlgorithm","SHA256","crypto","createHash","update","digest","SignatureService","hashMessage","sign","keyPair","KeyManager","getKeyPairObject","Error","messageHash","signature","toDER","signWithKey","privateKey","keyFromPrivate","verify","publicKey","key","keyFromPublic","verifySync","createSignedMessage","getPublicKey","timestamp","Date","now","messageWithTimestamp","verifySignedMessage","signedMessage","maxAgeMs","signChallenge","challenge","verifyChallengeResponse","originalChallenge","response","createRegistrationSignature","username","email","signRequestData","data","sortedKeys","keys","sort","canonicalParts","map","JSON","stringify","canonicalString","join","exports","_default"],"sourceRoot":"../../../src","sources":["crypto/signatureService.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_elliptic","require","_keyManager","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ExpoCrypto","ec","EC","isReactNative","navigator","product","isNodeJS","process","versions","node","initExpoCrypto","Promise","resolve","then","sha256","message","Crypto","digestStringAsync","CryptoDigestAlgorithm","SHA256","crypto","createHash","update","digest","SignatureService","hashMessage","sign","keyPair","KeyManager","getKeyPairObject","Error","messageHash","signature","toDER","signWithKey","privateKey","keyFromPrivate","verify","publicKey","key","keyFromPublic","verifySync","createSignedMessage","getPublicKey","timestamp","Date","now","messageWithTimestamp","verifySignedMessage","signedMessage","maxAgeMs","signChallenge","challenge","verifyChallengeResponse","originalChallenge","response","createRegistrationSignature","username","email","signRequestData","data","sortedKeys","keys","sort","canonicalParts","map","JSON","stringify","canonicalString","join","exports","_default"],"sourceRoot":"../../../src","sources":["crypto/signatureService.ts"],"mappings":"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","ignoreList":[]}
@@ -27,6 +27,20 @@ async function initSecureStore() {
27
27
  }
28
28
  return SecureStore;
29
29
  }
30
+
31
+ /**
32
+ * Check if we're in a React Native environment
33
+ */
34
+ function isReactNative() {
35
+ return typeof navigator !== 'undefined' && navigator.product === 'ReactNative';
36
+ }
37
+
38
+ /**
39
+ * Check if we're in a Node.js environment
40
+ */
41
+ function isNodeJS() {
42
+ return typeof process !== 'undefined' && process.versions != null && process.versions.node != null;
43
+ }
30
44
  async function initExpoRandom() {
31
45
  if (!ExpoRandom) {
32
46
  ExpoRandom = await import('expo-random');
@@ -38,14 +52,16 @@ async function initExpoRandom() {
38
52
  * Generate cryptographically secure random bytes
39
53
  */
40
54
  async function getSecureRandomBytes(length) {
41
- try {
55
+ // In React Native, always use expo-random
56
+ if (isReactNative() || !isNodeJS()) {
42
57
  const Random = await initExpoRandom();
43
58
  return Random.getRandomBytes(length);
44
- } catch {
45
- // Fallback for Node.js environment
46
- const crypto = await import('crypto');
47
- return new Uint8Array(crypto.randomBytes(length));
48
59
  }
60
+
61
+ // In Node.js, use Node's crypto module
62
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
63
+ const crypto = require('crypto');
64
+ return new Uint8Array(crypto.randomBytes(length));
49
65
  }
50
66
  export class KeyManager {
51
67
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["ec","EC","SecureStore","ExpoRandom","STORAGE_KEYS","PRIVATE_KEY","PUBLIC_KEY","initSecureStore","initExpoRandom","getSecureRandomBytes","length","Random","getRandomBytes","crypto","Uint8Array","randomBytes","KeyManager","generateKeyPairSync","keyPair","genKeyPair","privateKey","getPrivate","publicKey","getPublic","generateKeyPair","privateKeyHex","Buffer","from","toString","keyFromPrivate","createIdentity","store","setItemAsync","keychainAccessible","WHEN_UNLOCKED_THIS_DEVICE_ONLY","importKeyPair","getPrivateKey","getItemAsync","getPublicKey","hasIdentity","deleteIdentity","deleteItemAsync","getKeyPairObject","derivePublicKey","isValidPublicKey","keyFromPublic","isValidPrivateKey","shortenPublicKey","slice"],"sourceRoot":"../../../src","sources":["crypto/keyManager.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["ec","EC","SecureStore","ExpoRandom","STORAGE_KEYS","PRIVATE_KEY","PUBLIC_KEY","initSecureStore","isReactNative","navigator","product","isNodeJS","process","versions","node","initExpoRandom","getSecureRandomBytes","length","Random","getRandomBytes","crypto","require","Uint8Array","randomBytes","KeyManager","generateKeyPairSync","keyPair","genKeyPair","privateKey","getPrivate","publicKey","getPublic","generateKeyPair","privateKeyHex","Buffer","from","toString","keyFromPrivate","createIdentity","store","setItemAsync","keychainAccessible","WHEN_UNLOCKED_THIS_DEVICE_ONLY","importKeyPair","getPrivateKey","getItemAsync","getPublicKey","hasIdentity","deleteIdentity","deleteItemAsync","getKeyPairObject","derivePublicKey","isValidPublicKey","keyFromPublic","isValidPrivateKey","shortenPublicKey","slice"],"sourceRoot":"../../../src","sources":["crypto/keyManager.ts"],"mappings":"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","ignoreList":[]}
@@ -14,6 +14,20 @@ import { KeyManager } from './keyManager';
14
14
  let ExpoCrypto = null;
15
15
  const ec = new EC('secp256k1');
16
16
 
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
+
17
31
  /**
18
32
  * Initialize expo-crypto module
19
33
  */
@@ -28,14 +42,16 @@ async function initExpoCrypto() {
28
42
  * Compute SHA-256 hash of a string
29
43
  */
30
44
  async function sha256(message) {
31
- try {
45
+ // In React Native, always use expo-crypto
46
+ if (isReactNative() || !isNodeJS()) {
32
47
  const Crypto = await initExpoCrypto();
33
48
  return Crypto.digestStringAsync(Crypto.CryptoDigestAlgorithm.SHA256, message);
34
- } catch {
35
- // Fallback for Node.js environment
36
- const crypto = await import('crypto');
37
- return crypto.createHash('sha256').update(message).digest('hex');
38
49
  }
50
+
51
+ // In Node.js, use Node's crypto module
52
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
53
+ const crypto = require('crypto');
54
+ return crypto.createHash('sha256').update(message).digest('hex');
39
55
  }
40
56
  export class SignatureService {
41
57
  /**
@@ -86,9 +102,14 @@ export class SignatureService {
86
102
  /**
87
103
  * Synchronous verification (for Node.js backend)
88
104
  * Uses crypto module directly for hashing
105
+ * Note: This method should only be used in Node.js environments
89
106
  */
90
107
  static verifySync(message, signature, publicKey) {
91
108
  try {
109
+ if (!isNodeJS()) {
110
+ // In React Native, use async verify instead
111
+ throw new Error('verifySync should only be used in Node.js. Use verify() in React Native.');
112
+ }
92
113
  // eslint-disable-next-line @typescript-eslint/no-var-requires
93
114
  const crypto = require('crypto');
94
115
  const key = ec.keyFromPublic(publicKey, 'hex');
@@ -1 +1 @@
1
- {"version":3,"names":["ec","EC","KeyManager","ExpoCrypto","initExpoCrypto","sha256","message","Crypto","digestStringAsync","CryptoDigestAlgorithm","SHA256","crypto","createHash","update","digest","SignatureService","hashMessage","sign","keyPair","getKeyPairObject","Error","messageHash","signature","toDER","signWithKey","privateKey","keyFromPrivate","verify","publicKey","key","keyFromPublic","verifySync","require","createSignedMessage","getPublicKey","timestamp","Date","now","messageWithTimestamp","verifySignedMessage","signedMessage","maxAgeMs","signChallenge","challenge","verifyChallengeResponse","originalChallenge","response","createRegistrationSignature","username","email","signRequestData","data","sortedKeys","Object","keys","sort","canonicalParts","map","JSON","stringify","canonicalString","join"],"sourceRoot":"../../../src","sources":["crypto/signatureService.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,EAAE,IAAIC,EAAE,QAAQ,UAAU;AACnC,SAASC,UAAU,QAAQ,cAAc;;AAEzC;AACA,IAAIC,UAA+C,GAAG,IAAI;AAE1D,MAAMH,EAAE,GAAG,IAAIC,EAAE,CAAC,WAAW,CAAC;;AAE9B;AACA;AACA;AACA,eAAeG,cAAcA,CAAA,EAA0C;EACrE,IAAI,CAACD,UAAU,EAAE;IACfA,UAAU,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC;EAC1C;EACA,OAAOA,UAAU;AACnB;;AAEA;AACA;AACA;AACA,eAAeE,MAAMA,CAACC,OAAe,EAAmB;EACtD,IAAI;IACF,MAAMC,MAAM,GAAG,MAAMH,cAAc,CAAC,CAAC;IACrC,OAAOG,MAAM,CAACC,iBAAiB,CAC7BD,MAAM,CAACE,qBAAqB,CAACC,MAAM,EACnCJ,OACF,CAAC;EACH,CAAC,CAAC,MAAM;IACN;IACA,MAAMK,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC;IACrC,OAAOA,MAAM,CAACC,UAAU,CAAC,QAAQ,CAAC,CAACC,MAAM,CAACP,OAAO,CAAC,CAACQ,MAAM,CAAC,KAAK,CAAC;EAClE;AACF;AAeA,OAAO,MAAMC,gBAAgB,CAAC;EAC5B;AACF;AACA;EACE,aAAaC,WAAWA,CAACV,OAAe,EAAmB;IACzD,OAAOD,MAAM,CAACC,OAAO,CAAC;EACxB;;EAEA;AACF;AACA;AACA;EACE,aAAaW,IAAIA,CAACX,OAAe,EAAmB;IAClD,MAAMY,OAAO,GAAG,MAAMhB,UAAU,CAACiB,gBAAgB,CAAC,CAAC;IACnD,IAAI,CAACD,OAAO,EAAE;MACZ,MAAM,IAAIE,KAAK,CAAC,+DAA+D,CAAC;IAClF;IAEA,MAAMC,WAAW,GAAG,MAAMhB,MAAM,CAACC,OAAO,CAAC;IACzC,MAAMgB,SAAS,GAAGJ,OAAO,CAACD,IAAI,CAACI,WAAW,CAAC;IAC3C,OAAOC,SAAS,CAACC,KAAK,CAAC,KAAK,CAAC;EAC/B;;EAEA;AACF;AACA;AACA;EACE,aAAaC,WAAWA,CAAClB,OAAe,EAAEmB,UAAkB,EAAmB;IAC7E,MAAMP,OAAO,GAAGlB,EAAE,CAAC0B,cAAc,CAACD,UAAU,CAAC;IAC7C,MAAMJ,WAAW,GAAG,MAAMhB,MAAM,CAACC,OAAO,CAAC;IACzC,MAAMgB,SAAS,GAAGJ,OAAO,CAACD,IAAI,CAACI,WAAW,CAAC;IAC3C,OAAOC,SAAS,CAACC,KAAK,CAAC,KAAK,CAAC;EAC/B;;EAEA;AACF;AACA;EACE,aAAaI,MAAMA,CAACrB,OAAe,EAAEgB,SAAiB,EAAEM,SAAiB,EAAoB;IAC3F,IAAI;MACF,MAAMC,GAAG,GAAG7B,EAAE,CAAC8B,aAAa,CAACF,SAAS,EAAE,KAAK,CAAC;MAC9C,MAAMP,WAAW,GAAG,MAAMhB,MAAM,CAACC,OAAO,CAAC;MACzC,OAAOuB,GAAG,CAACF,MAAM,CAACN,WAAW,EAAEC,SAAS,CAAC;IAC3C,CAAC,CAAC,MAAM;MACN,OAAO,KAAK;IACd;EACF;;EAEA;AACF;AACA;AACA;EACE,OAAOS,UAAUA,CAACzB,OAAe,EAAEgB,SAAiB,EAAEM,SAAiB,EAAW;IAChF,IAAI;MACF;MACA,MAAMjB,MAAM,GAAGqB,OAAO,CAAC,QAAQ,CAAC;MAChC,MAAMH,GAAG,GAAG7B,EAAE,CAAC8B,aAAa,CAACF,SAAS,EAAE,KAAK,CAAC;MAC9C,MAAMP,WAAW,GAAGV,MAAM,CAACC,UAAU,CAAC,QAAQ,CAAC,CAACC,MAAM,CAACP,OAAO,CAAC,CAACQ,MAAM,CAAC,KAAK,CAAC;MAC7E,OAAOe,GAAG,CAACF,MAAM,CAACN,WAAW,EAAEC,SAAS,CAAC;IAC3C,CAAC,CAAC,MAAM;MACN,OAAO,KAAK;IACd;EACF;;EAEA;AACF;AACA;EACE,aAAaW,mBAAmBA,CAAC3B,OAAe,EAA0B;IACxE,MAAMsB,SAAS,GAAG,MAAM1B,UAAU,CAACgC,YAAY,CAAC,CAAC;IACjD,IAAI,CAACN,SAAS,EAAE;MACd,MAAM,IAAIR,KAAK,CAAC,+DAA+D,CAAC;IAClF;IAEA,MAAMe,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;IAC5B,MAAMC,oBAAoB,GAAG,GAAGhC,OAAO,IAAI6B,SAAS,EAAE;IACtD,MAAMb,SAAS,GAAG,MAAMP,gBAAgB,CAACE,IAAI,CAACqB,oBAAoB,CAAC;IAEnE,OAAO;MACLhC,OAAO;MACPgB,SAAS;MACTM,SAAS;MACTO;IACF,CAAC;EACH;;EAEA;AACF;AACA;AACA;EACE,aAAaI,mBAAmBA,CAC9BC,aAA4B,EAC5BC,QAAgB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;EAAA,EACf;IAClB,MAAM;MAAEnC,OAAO;MAAEgB,SAAS;MAAEM,SAAS;MAAEO;IAAU,CAAC,GAAGK,aAAa;;IAElE;IACA,MAAMH,GAAG,GAAGD,IAAI,CAACC,GAAG,CAAC,CAAC;IACtB,IAAIA,GAAG,GAAGF,SAAS,GAAGM,QAAQ,EAAE;MAC9B,OAAO,KAAK;IACd;;IAEA;IACA,MAAMH,oBAAoB,GAAG,GAAGhC,OAAO,IAAI6B,SAAS,EAAE;IACtD,OAAOpB,gBAAgB,CAACY,MAAM,CAACW,oBAAoB,EAAEhB,SAAS,EAAEM,SAAS,CAAC;EAC5E;;EAEA;AACF;AACA;AACA;EACE,aAAac,aAAaA,CAACC,SAAiB,EAA0B;IACpE,MAAMf,SAAS,GAAG,MAAM1B,UAAU,CAACgC,YAAY,CAAC,CAAC;IACjD,IAAI,CAACN,SAAS,EAAE;MACd,MAAM,IAAIR,KAAK,CAAC,+DAA+D,CAAC;IAClF;IAEA,MAAMe,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;IAC5B,MAAM/B,OAAO,GAAG,QAAQsB,SAAS,IAAIe,SAAS,IAAIR,SAAS,EAAE;IAC7D,MAAMb,SAAS,GAAG,MAAMP,gBAAgB,CAACE,IAAI,CAACX,OAAO,CAAC;IAEtD,OAAO;MACLqC,SAAS,EAAErB,SAAS;MACpBM,SAAS;MACTO;IACF,CAAC;EACH;;EAEA;AACF;AACA;EACE,aAAaS,uBAAuBA,CAClCC,iBAAyB,EACzBC,QAAuB,EACvBL,QAAgB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,EACd;IAClB,MAAM;MAAEE,SAAS,EAAErB,SAAS;MAAEM,SAAS;MAAEO;IAAU,CAAC,GAAGW,QAAQ;;IAE/D;IACA,MAAMT,GAAG,GAAGD,IAAI,CAACC,GAAG,CAAC,CAAC;IACtB,IAAIA,GAAG,GAAGF,SAAS,GAAGM,QAAQ,EAAE;MAC9B,OAAO,KAAK;IACd;IAEA,MAAMnC,OAAO,GAAG,QAAQsB,SAAS,IAAIiB,iBAAiB,IAAIV,SAAS,EAAE;IACrE,OAAOpB,gBAAgB,CAACY,MAAM,CAACrB,OAAO,EAAEgB,SAAS,EAAEM,SAAS,CAAC;EAC/D;;EAEA;AACF;AACA;AACA;EACE,aAAamB,2BAA2BA,CACtCC,QAAgB,EAChBC,KAAc,EACwD;IACtE,MAAMrB,SAAS,GAAG,MAAM1B,UAAU,CAACgC,YAAY,CAAC,CAAC;IACjD,IAAI,CAACN,SAAS,EAAE;MACd,MAAM,IAAIR,KAAK,CAAC,+DAA+D,CAAC;IAClF;IAEA,MAAMe,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;IAC5B,MAAM/B,OAAO,GAAG,YAAYsB,SAAS,IAAIoB,QAAQ,IAAIC,KAAK,IAAI,EAAE,IAAId,SAAS,EAAE;IAC/E,MAAMb,SAAS,GAAG,MAAMP,gBAAgB,CAACE,IAAI,CAACX,OAAO,CAAC;IAEtD,OAAO;MACLgB,SAAS;MACTM,SAAS;MACTO;IACF,CAAC;EACH;;EAEA;AACF;AACA;AACA;EACE,aAAae,eAAeA,CAACC,IAA6B,EAIvD;IACD,MAAMvB,SAAS,GAAG,MAAM1B,UAAU,CAACgC,YAAY,CAAC,CAAC;IACjD,IAAI,CAACN,SAAS,EAAE;MACd,MAAM,IAAIR,KAAK,CAAC,+DAA+D,CAAC;IAClF;IAEA,MAAMe,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;;IAE5B;IACA,MAAMe,UAAU,GAAGC,MAAM,CAACC,IAAI,CAACH,IAAI,CAAC,CAACI,IAAI,CAAC,CAAC;IAC3C,MAAMC,cAAc,GAAGJ,UAAU,CAACK,GAAG,CAAC5B,GAAG,IAAI,GAAGA,GAAG,IAAI6B,IAAI,CAACC,SAAS,CAACR,IAAI,CAACtB,GAAG,CAAC,CAAC,EAAE,CAAC;IACnF,MAAM+B,eAAe,GAAGJ,cAAc,CAACK,IAAI,CAAC,GAAG,CAAC;IAEhD,MAAMvD,OAAO,GAAG,WAAWsB,SAAS,IAAIO,SAAS,IAAIyB,eAAe,EAAE;IACtE,MAAMtC,SAAS,GAAG,MAAMP,gBAAgB,CAACE,IAAI,CAACX,OAAO,CAAC;IAEtD,OAAO;MACLgB,SAAS;MACTM,SAAS;MACTO;IACF,CAAC;EACH;AACF;AAEA,eAAepB,gBAAgB","ignoreList":[]}
1
+ {"version":3,"names":["ec","EC","KeyManager","ExpoCrypto","isReactNative","navigator","product","isNodeJS","process","versions","node","initExpoCrypto","sha256","message","Crypto","digestStringAsync","CryptoDigestAlgorithm","SHA256","crypto","require","createHash","update","digest","SignatureService","hashMessage","sign","keyPair","getKeyPairObject","Error","messageHash","signature","toDER","signWithKey","privateKey","keyFromPrivate","verify","publicKey","key","keyFromPublic","verifySync","createSignedMessage","getPublicKey","timestamp","Date","now","messageWithTimestamp","verifySignedMessage","signedMessage","maxAgeMs","signChallenge","challenge","verifyChallengeResponse","originalChallenge","response","createRegistrationSignature","username","email","signRequestData","data","sortedKeys","Object","keys","sort","canonicalParts","map","JSON","stringify","canonicalString","join"],"sourceRoot":"../../../src","sources":["crypto/signatureService.ts"],"mappings":"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","ignoreList":[]}
@@ -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;AA6C1C,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,UAAU;IACrB;;;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;IAe9C;;OAEG;WACU,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgB/D;;;OAGG;WACU,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKpD;;OAEG;WACU,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKnD;;OAEG;WACU,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAK5C;;;OAGG;WACU,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5C;;;OAGG;WACU,gBAAgB,IAAI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAM1D;;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;AA6D1C,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,UAAU;IACrB;;;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;IAe9C;;OAEG;WACU,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgB/D;;;OAGG;WACU,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKpD;;OAEG;WACU,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKnD;;OAEG;WACU,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAK5C;;;OAGG;WACU,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5C;;;OAGG;WACU,gBAAgB,IAAI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAM1D;;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"}
@@ -37,6 +37,7 @@ export declare class SignatureService {
37
37
  /**
38
38
  * Synchronous verification (for Node.js backend)
39
39
  * Uses crypto module directly for hashing
40
+ * Note: This method should only be used in Node.js environments
40
41
  */
41
42
  static verifySync(message: string, signature: string, publicKey: string): boolean;
42
43
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"signatureService.d.ts","sourceRoot":"","sources":["../../../src/crypto/signatureService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqCH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,gBAAgB;IAC3B;;OAEG;WACU,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1D;;;OAGG;WACU,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAWnD;;;OAGG;WACU,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO9E;;OAEG;WACU,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAU5F;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAYjF;;OAEG;WACU,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAkBzE;;;OAGG;WACU,mBAAmB,CAC9B,aAAa,EAAE,aAAa,EAC5B,QAAQ,GAAE,MAAsB,GAC/B,OAAO,CAAC,OAAO,CAAC;IAcnB;;;OAGG;WACU,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAiBrE;;OAEG;WACU,uBAAuB,CAClC,iBAAiB,EAAE,MAAM,EACzB,QAAQ,EAAE,aAAa,EACvB,QAAQ,GAAE,MAAsB,GAC/B,OAAO,CAAC,OAAO,CAAC;IAanB;;;OAGG;WACU,2BAA2B,CACtC,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAiBvE;;;OAGG;WACU,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;QACnE,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CAsBH;AAED,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"signatureService.d.ts","sourceRoot":"","sources":["../../../src/crypto/signatureService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqDH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,gBAAgB;IAC3B;;OAEG;WACU,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1D;;;OAGG;WACU,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAWnD;;;OAGG;WACU,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO9E;;OAEG;WACU,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAU5F;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAgBjF;;OAEG;WACU,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAkBzE;;;OAGG;WACU,mBAAmB,CAC9B,aAAa,EAAE,aAAa,EAC5B,QAAQ,GAAE,MAAsB,GAC/B,OAAO,CAAC,OAAO,CAAC;IAcnB;;;OAGG;WACU,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAiBrE;;OAEG;WACU,uBAAuB,CAClC,iBAAiB,EAAE,MAAM,EACzB,QAAQ,EAAE,aAAa,EACvB,QAAQ,GAAE,MAAsB,GAC/B,OAAO,CAAC,OAAO,CAAC;IAanB;;;OAGG;WACU,2BAA2B,CACtC,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAiBvE;;;OAGG;WACU,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;QACnE,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CAsBH;AAED,eAAe,gBAAgB,CAAC"}
@@ -26,3 +26,4 @@ declare module 'bip39' {
26
26
  export function mnemonicToSeedHex(mnemonic: string, passphrase?: string): Promise<string>;
27
27
  export function mnemonicToSeedHexSync(mnemonic: string, passphrase?: string): string;
28
28
  }
29
+
@@ -16,3 +16,4 @@ declare module 'color' {
16
16
  function color(color: string | Color | undefined, model?: string): Color;
17
17
  export default color;
18
18
  }
19
+
@@ -58,3 +58,4 @@ declare module 'elliptic' {
58
58
 
59
59
  export const ec: ECConstructor;
60
60
  }
61
+
@@ -26,3 +26,4 @@ declare module 'expo-crypto' {
26
26
  export function getRandomUUID(): string;
27
27
  export function getRandomUUIDAsync(): Promise<string>;
28
28
  }
29
+
@@ -6,3 +6,4 @@ declare module 'expo-random' {
6
6
  export function getRandomBytes(byteCount: number): Uint8Array;
7
7
  export function getRandomBytesAsync(byteCount: number): Promise<Uint8Array>;
8
8
  }
9
+
@@ -18,3 +18,4 @@ declare module 'expo-secure-store' {
18
18
  export async function deleteItemAsync(key: string, options?: SecureStoreOptions): Promise<void>;
19
19
  export async function isAvailableAsync(): Promise<boolean>;
20
20
  }
21
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxyhq/services",
3
- "version": "5.15.0",
3
+ "version": "5.15.2",
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,3 +18,4 @@ export {
18
18
 
19
19
  // Re-export for convenience
20
20
  export { KeyManager as default } from './keyManager';
21
+
@@ -30,6 +30,20 @@ async function initSecureStore(): Promise<typeof import('expo-secure-store')> {
30
30
  return SecureStore;
31
31
  }
32
32
 
33
+ /**
34
+ * Check if we're in a React Native environment
35
+ */
36
+ function isReactNative(): boolean {
37
+ return typeof navigator !== 'undefined' && navigator.product === 'ReactNative';
38
+ }
39
+
40
+ /**
41
+ * Check if we're in a Node.js environment
42
+ */
43
+ function isNodeJS(): boolean {
44
+ return typeof process !== 'undefined' && process.versions != null && process.versions.node != null;
45
+ }
46
+
33
47
  async function initExpoRandom(): Promise<typeof import('expo-random')> {
34
48
  if (!ExpoRandom) {
35
49
  ExpoRandom = await import('expo-random');
@@ -41,14 +55,16 @@ async function initExpoRandom(): Promise<typeof import('expo-random')> {
41
55
  * Generate cryptographically secure random bytes
42
56
  */
43
57
  async function getSecureRandomBytes(length: number): Promise<Uint8Array> {
44
- try {
58
+ // In React Native, always use expo-random
59
+ if (isReactNative() || !isNodeJS()) {
45
60
  const Random = await initExpoRandom();
46
61
  return Random.getRandomBytes(length);
47
- } catch {
48
- // Fallback for Node.js environment
49
- const crypto = await import('crypto');
50
- return new Uint8Array(crypto.randomBytes(length));
51
62
  }
63
+
64
+ // In Node.js, use Node's crypto module
65
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
66
+ const crypto = require('crypto');
67
+ return new Uint8Array(crypto.randomBytes(length));
52
68
  }
53
69
 
54
70
  export interface KeyPair {
@@ -211,3 +227,4 @@ export class KeyManager {
211
227
  }
212
228
 
213
229
  export default KeyManager;
230
+
@@ -144,3 +144,4 @@ export class RecoveryPhraseService {
144
144
  }
145
145
 
146
146
  export default RecoveryPhraseService;
147
+
@@ -13,6 +13,20 @@ let ExpoCrypto: typeof import('expo-crypto') | null = null;
13
13
 
14
14
  const ec = new EC('secp256k1');
15
15
 
16
+ /**
17
+ * Check if we're in a React Native environment
18
+ */
19
+ function isReactNative(): boolean {
20
+ return typeof navigator !== 'undefined' && navigator.product === 'ReactNative';
21
+ }
22
+
23
+ /**
24
+ * Check if we're in a Node.js environment
25
+ */
26
+ function isNodeJS(): boolean {
27
+ return typeof process !== 'undefined' && process.versions != null && process.versions.node != null;
28
+ }
29
+
16
30
  /**
17
31
  * Initialize expo-crypto module
18
32
  */
@@ -27,17 +41,19 @@ async function initExpoCrypto(): Promise<typeof import('expo-crypto')> {
27
41
  * Compute SHA-256 hash of a string
28
42
  */
29
43
  async function sha256(message: string): Promise<string> {
30
- try {
44
+ // In React Native, always use expo-crypto
45
+ if (isReactNative() || !isNodeJS()) {
31
46
  const Crypto = await initExpoCrypto();
32
47
  return Crypto.digestStringAsync(
33
48
  Crypto.CryptoDigestAlgorithm.SHA256,
34
49
  message
35
50
  );
36
- } catch {
37
- // Fallback for Node.js environment
38
- const crypto = await import('crypto');
39
- return crypto.createHash('sha256').update(message).digest('hex');
40
51
  }
52
+
53
+ // In Node.js, use Node's crypto module
54
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
55
+ const crypto = require('crypto');
56
+ return crypto.createHash('sha256').update(message).digest('hex');
41
57
  }
42
58
 
43
59
  export interface SignedMessage {
@@ -103,9 +119,14 @@ export class SignatureService {
103
119
  /**
104
120
  * Synchronous verification (for Node.js backend)
105
121
  * Uses crypto module directly for hashing
122
+ * Note: This method should only be used in Node.js environments
106
123
  */
107
124
  static verifySync(message: string, signature: string, publicKey: string): boolean {
108
125
  try {
126
+ if (!isNodeJS()) {
127
+ // In React Native, use async verify instead
128
+ throw new Error('verifySync should only be used in Node.js. Use verify() in React Native.');
129
+ }
109
130
  // eslint-disable-next-line @typescript-eslint/no-var-requires
110
131
  const crypto = require('crypto');
111
132
  const key = ec.keyFromPublic(publicKey, 'hex');
@@ -256,3 +277,4 @@ export class SignatureService {
256
277
  }
257
278
 
258
279
  export default SignatureService;
280
+
@@ -26,3 +26,4 @@ declare module 'bip39' {
26
26
  export function mnemonicToSeedHex(mnemonic: string, passphrase?: string): Promise<string>;
27
27
  export function mnemonicToSeedHexSync(mnemonic: string, passphrase?: string): string;
28
28
  }
29
+
@@ -16,3 +16,4 @@ declare module 'color' {
16
16
  function color(color: string | Color | undefined, model?: string): Color;
17
17
  export default color;
18
18
  }
19
+
@@ -58,3 +58,4 @@ declare module 'elliptic' {
58
58
 
59
59
  export const ec: ECConstructor;
60
60
  }
61
+
@@ -26,3 +26,4 @@ declare module 'expo-crypto' {
26
26
  export function getRandomUUID(): string;
27
27
  export function getRandomUUIDAsync(): Promise<string>;
28
28
  }
29
+
@@ -6,3 +6,4 @@ declare module 'expo-random' {
6
6
  export function getRandomBytes(byteCount: number): Uint8Array;
7
7
  export function getRandomBytesAsync(byteCount: number): Promise<Uint8Array>;
8
8
  }
9
+
@@ -18,3 +18,4 @@ declare module 'expo-secure-store' {
18
18
  export async function deleteItemAsync(key: string, options?: SecureStoreOptions): Promise<void>;
19
19
  export async function isAvailableAsync(): Promise<boolean>;
20
20
  }
21
+
@@ -400,3 +400,4 @@ const styles = StyleSheet.create({
400
400
  });
401
401
 
402
402
  export default OxyAuthScreen;
403
+