@oxyhq/services 5.15.2 → 5.15.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.
@@ -51,6 +51,14 @@ async function initExpoRandom() {
51
51
  return ExpoRandom;
52
52
  }
53
53
 
54
+ /**
55
+ * Convert Uint8Array to hexadecimal string
56
+ * Works in both Node.js and React Native
57
+ */
58
+ function uint8ArrayToHex(bytes) {
59
+ return Array.from(bytes).map(b => b.toString(16).padStart(2, '0')).join('');
60
+ }
61
+
54
62
  /**
55
63
  * Generate cryptographically secure random bytes
56
64
  */
@@ -62,9 +70,18 @@ async function getSecureRandomBytes(length) {
62
70
  }
63
71
 
64
72
  // 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));
73
+ // Use Function constructor to prevent Metro bundler from statically analyzing this require
74
+ // This ensures the require is only evaluated in Node.js runtime, not during Metro bundling
75
+ try {
76
+ // eslint-disable-next-line @typescript-eslint/no-implied-eval
77
+ const getCrypto = new Function('return require("crypto")');
78
+ const crypto = getCrypto();
79
+ return new Uint8Array(crypto.randomBytes(length));
80
+ } catch (error) {
81
+ // Fallback to expo-random if Node crypto fails
82
+ const Random = await initExpoRandom();
83
+ return Random.getRandomBytes(length);
84
+ }
68
85
  }
69
86
  class KeyManager {
70
87
  /**
@@ -84,7 +101,7 @@ class KeyManager {
84
101
  */
85
102
  static async generateKeyPair() {
86
103
  const randomBytes = await getSecureRandomBytes(32);
87
- const privateKeyHex = Buffer.from(randomBytes).toString('hex');
104
+ const privateKeyHex = uint8ArrayToHex(randomBytes);
88
105
  const keyPair = ec.keyFromPrivate(privateKeyHex);
89
106
  return {
90
107
  privateKey: keyPair.getPrivate('hex'),
@@ -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","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":[]}
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","uint8ArrayToHex","bytes","Array","from","map","b","toString","padStart","join","getSecureRandomBytes","length","Random","getRandomBytes","getCrypto","Function","crypto","Uint8Array","randomBytes","error","KeyManager","generateKeyPairSync","keyPair","genKeyPair","privateKey","getPrivate","publicKey","getPublic","generateKeyPair","privateKeyHex","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":";;;;;;AAOA,IAAAA,SAAA,GAAAC,OAAA;AAAoC,SAAAC,wBAAAC,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAH,uBAAA,YAAAA,CAAAC,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA,KAPpC;AACA;AACA;AACA;AACA;AACA;AAKA;AACA,IAAIkB,WAAsD,GAAG,IAAI;AACjE,IAAIC,UAA+C,GAAG,IAAI;AAE1D,MAAMC,EAAE,GAAG,IAAIC,YAAE,CAAC,WAAW,CAAC;AAE9B,MAAMC,YAAY,GAAG;EACnBC,WAAW,EAAE,0BAA0B;EACvCC,UAAU,EAAE;AACd,CAAU;;AAEV;AACA;AACA;AACA;AACA,eAAeC,eAAeA,CAAA,EAAgD;EAC5E,IAAI,CAACP,WAAW,EAAE;IAChBA,WAAW,GAAG,MAAAQ,OAAA,CAAAC,OAAA,GAAAC,IAAA,OAAA9B,uBAAA,CAAAD,OAAA,CAAa,mBAAmB,GAAC;EACjD;EACA,OAAOqB,WAAW;AACpB;;AAEA;AACA;AACA;AACA,SAASW,aAAaA,CAAA,EAAY;EAChC,OAAO,OAAOC,SAAS,KAAK,WAAW,IAAIA,SAAS,CAACC,OAAO,KAAK,aAAa;AAChF;;AAEA;AACA;AACA;AACA,SAASC,QAAQA,CAAA,EAAY;EAC3B,OAAO,OAAOC,OAAO,KAAK,WAAW,IAAIA,OAAO,CAACC,QAAQ,IAAI,IAAI,IAAID,OAAO,CAACC,QAAQ,CAACC,IAAI,IAAI,IAAI;AACpG;AAEA,eAAeC,cAAcA,CAAA,EAA0C;EACrE,IAAI,CAACjB,UAAU,EAAE;IACfA,UAAU,GAAG,MAAAO,OAAA,CAAAC,OAAA,GAAAC,IAAA,OAAA9B,uBAAA,CAAAD,OAAA,CAAa,aAAa,GAAC;EAC1C;EACA,OAAOsB,UAAU;AACnB;;AAEA;AACA;AACA;AACA;AACA,SAASkB,eAAeA,CAACC,KAAiB,EAAU;EAClD,OAAOC,KAAK,CAACC,IAAI,CAACF,KAAK,CAAC,CACrBG,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CACzCC,IAAI,CAAC,EAAE,CAAC;AACb;;AAEA;AACA;AACA;AACA,eAAeC,oBAAoBA,CAACC,MAAc,EAAuB;EACvE;EACA,IAAIlB,aAAa,CAAC,CAAC,IAAI,CAACG,QAAQ,CAAC,CAAC,EAAE;IAClC,MAAMgB,MAAM,GAAG,MAAMZ,cAAc,CAAC,CAAC;IACrC,OAAOY,MAAM,CAACC,cAAc,CAACF,MAAM,CAAC;EACtC;;EAEA;EACA;EACA;EACA,IAAI;IACF;IACA,MAAMG,SAAS,GAAG,IAAIC,QAAQ,CAAC,0BAA0B,CAAC;IAC1D,MAAMC,MAAM,GAAGF,SAAS,CAAC,CAAC;IAC1B,OAAO,IAAIG,UAAU,CAACD,MAAM,CAACE,WAAW,CAACP,MAAM,CAAC,CAAC;EACnD,CAAC,CAAC,OAAOQ,KAAK,EAAE;IACd;IACA,MAAMP,MAAM,GAAG,MAAMZ,cAAc,CAAC,CAAC;IACrC,OAAOY,MAAM,CAACC,cAAc,CAACF,MAAM,CAAC;EACtC;AACF;AAOO,MAAMS,UAAU,CAAC;EACtB;AACF;AACA;AACA;EACE,OAAOC,mBAAmBA,CAAA,EAAY;IACpC,MAAMC,OAAO,GAAGtC,EAAE,CAACuC,UAAU,CAAC,CAAC;IAC/B,OAAO;MACLC,UAAU,EAAEF,OAAO,CAACG,UAAU,CAAC,KAAK,CAAC;MACrCC,SAAS,EAAEJ,OAAO,CAACK,SAAS,CAAC,KAAK;IACpC,CAAC;EACH;;EAEA;AACF;AACA;EACE,aAAaC,eAAeA,CAAA,EAAqB;IAC/C,MAAMV,WAAW,GAAG,MAAMR,oBAAoB,CAAC,EAAE,CAAC;IAClD,MAAMmB,aAAa,GAAG5B,eAAe,CAACiB,WAAW,CAAC;IAClD,MAAMI,OAAO,GAAGtC,EAAE,CAAC8C,cAAc,CAACD,aAAa,CAAC;IAEhD,OAAO;MACLL,UAAU,EAAEF,OAAO,CAACG,UAAU,CAAC,KAAK,CAAC;MACrCC,SAAS,EAAEJ,OAAO,CAACK,SAAS,CAAC,KAAK;IACpC,CAAC;EACH;;EAEA;AACF;AACA;AACA;EACE,aAAaI,cAAcA,CAAA,EAAoB;IAC7C,MAAMC,KAAK,GAAG,MAAM3C,eAAe,CAAC,CAAC;IACrC,MAAM;MAAEmC,UAAU;MAAEE;IAAU,CAAC,GAAG,MAAMN,UAAU,CAACQ,eAAe,CAAC,CAAC;;IAEpE;IACA,MAAMI,KAAK,CAACC,YAAY,CAAC/C,YAAY,CAACC,WAAW,EAAEqC,UAAU,EAAE;MAC7DU,kBAAkB,EAAEF,KAAK,CAACG;IAC5B,CAAC,CAAC;;IAEF;IACA,MAAMH,KAAK,CAACC,YAAY,CAAC/C,YAAY,CAACE,UAAU,EAAEsC,SAAS,CAAC;IAE5D,OAAOA,SAAS;EAClB;;EAEA;AACF;AACA;EACE,aAAaU,aAAaA,CAACZ,UAAkB,EAAmB;IAC9D,MAAMQ,KAAK,GAAG,MAAM3C,eAAe,CAAC,CAAC;;IAErC;IACA,MAAMiC,OAAO,GAAGtC,EAAE,CAAC8C,cAAc,CAACN,UAAU,CAAC;IAC7C,MAAME,SAAS,GAAGJ,OAAO,CAACK,SAAS,CAAC,KAAK,CAAC;;IAE1C;IACA,MAAMK,KAAK,CAACC,YAAY,CAAC/C,YAAY,CAACC,WAAW,EAAEqC,UAAU,EAAE;MAC7DU,kBAAkB,EAAEF,KAAK,CAACG;IAC5B,CAAC,CAAC;IACF,MAAMH,KAAK,CAACC,YAAY,CAAC/C,YAAY,CAACE,UAAU,EAAEsC,SAAS,CAAC;IAE5D,OAAOA,SAAS;EAClB;;EAEA;AACF;AACA;AACA;EACE,aAAaW,aAAaA,CAAA,EAA2B;IACnD,MAAML,KAAK,GAAG,MAAM3C,eAAe,CAAC,CAAC;IACrC,OAAO2C,KAAK,CAACM,YAAY,CAACpD,YAAY,CAACC,WAAW,CAAC;EACrD;;EAEA;AACF;AACA;EACE,aAAaoD,YAAYA,CAAA,EAA2B;IAClD,MAAMP,KAAK,GAAG,MAAM3C,eAAe,CAAC,CAAC;IACrC,OAAO2C,KAAK,CAACM,YAAY,CAACpD,YAAY,CAACE,UAAU,CAAC;EACpD;;EAEA;AACF;AACA;EACE,aAAaoD,WAAWA,CAAA,EAAqB;IAC3C,MAAMhB,UAAU,GAAG,MAAMJ,UAAU,CAACiB,aAAa,CAAC,CAAC;IACnD,OAAOb,UAAU,KAAK,IAAI;EAC5B;;EAEA;AACF;AACA;AACA;EACE,aAAaiB,cAAcA,CAAA,EAAkB;IAC3C,MAAMT,KAAK,GAAG,MAAM3C,eAAe,CAAC,CAAC;IACrC,MAAM2C,KAAK,CAACU,eAAe,CAACxD,YAAY,CAACC,WAAW,CAAC;IACrD,MAAM6C,KAAK,CAACU,eAAe,CAACxD,YAAY,CAACE,UAAU,CAAC;EACtD;;EAEA;AACF;AACA;AACA;EACE,aAAauD,gBAAgBA,CAAA,EAA8B;IACzD,MAAMnB,UAAU,GAAG,MAAMJ,UAAU,CAACiB,aAAa,CAAC,CAAC;IACnD,IAAI,CAACb,UAAU,EAAE,OAAO,IAAI;IAC5B,OAAOxC,EAAE,CAAC8C,cAAc,CAACN,UAAU,CAAC;EACtC;;EAEA;AACF;AACA;EACE,OAAOoB,eAAeA,CAACpB,UAAkB,EAAU;IACjD,MAAMF,OAAO,GAAGtC,EAAE,CAAC8C,cAAc,CAACN,UAAU,CAAC;IAC7C,OAAOF,OAAO,CAACK,SAAS,CAAC,KAAK,CAAC;EACjC;;EAEA;AACF;AACA;EACE,OAAOkB,gBAAgBA,CAACnB,SAAiB,EAAW;IAClD,IAAI;MACF1C,EAAE,CAAC8D,aAAa,CAACpB,SAAS,EAAE,KAAK,CAAC;MAClC,OAAO,IAAI;IACb,CAAC,CAAC,MAAM;MACN,OAAO,KAAK;IACd;EACF;;EAEA;AACF;AACA;EACE,OAAOqB,iBAAiBA,CAACvB,UAAkB,EAAW;IACpD,IAAI;MACF,MAAMF,OAAO,GAAGtC,EAAE,CAAC8C,cAAc,CAACN,UAAU,CAAC;MAC7C;MACAF,OAAO,CAACK,SAAS,CAAC,KAAK,CAAC;MACxB,OAAO,IAAI;IACb,CAAC,CAAC,MAAM;MACN,OAAO,KAAK;IACd;EACF;;EAEA;AACF;AACA;AACA;EACE,OAAOqB,gBAAgBA,CAACtB,SAAiB,EAAU;IACjD,IAAIA,SAAS,CAACf,MAAM,IAAI,EAAE,EAAE,OAAOe,SAAS;IAC5C,OAAO,GAAGA,SAAS,CAACuB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAMvB,SAAS,CAACuB,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;EAC5D;AACF;AAACC,OAAA,CAAA9B,UAAA,GAAAA,UAAA;AAAA,IAAA+B,QAAA,GAAAD,OAAA,CAAA7E,OAAA,GAEc+C,UAAU","ignoreList":[]}
@@ -14,6 +14,19 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
14
14
  * for backing up and restoring user identities.
15
15
  */
16
16
 
17
+ /**
18
+ * Convert Buffer or Uint8Array to hexadecimal string
19
+ * Works in both Node.js and React Native
20
+ */
21
+ function toHex(data) {
22
+ if (typeof data.toString === 'function' && data.toString.length === 1) {
23
+ // It's a Buffer with toString('hex') method (Node.js)
24
+ return data.toString('hex');
25
+ }
26
+ // It's a Uint8Array or array-like (React Native/browser)
27
+ const bytes = data instanceof Uint8Array ? data : new Uint8Array(data);
28
+ return Array.from(bytes).map(b => b.toString(16).padStart(2, '0')).join('');
29
+ }
17
30
  class RecoveryPhraseService {
18
31
  /**
19
32
  * Generate a new identity with a recovery phrase
@@ -28,7 +41,8 @@ class RecoveryPhraseService {
28
41
  const seed = await bip39.mnemonicToSeed(mnemonic);
29
42
 
30
43
  // Use first 32 bytes of seed as private key
31
- const privateKeyHex = seed.subarray(0, 32).toString('hex');
44
+ const seedSlice = seed.subarray ? seed.subarray(0, 32) : seed.slice(0, 32);
45
+ const privateKeyHex = toHex(seedSlice);
32
46
 
33
47
  // Import the derived key pair
34
48
  const publicKey = await _keyManager.KeyManager.importKeyPair(privateKeyHex);
@@ -46,7 +60,8 @@ class RecoveryPhraseService {
46
60
  // Generate 256-bit entropy for 24-word mnemonic
47
61
  const mnemonic = bip39.generateMnemonic(256);
48
62
  const seed = await bip39.mnemonicToSeed(mnemonic);
49
- const privateKeyHex = seed.subarray(0, 32).toString('hex');
63
+ const seedSlice = seed.subarray ? seed.subarray(0, 32) : seed.slice(0, 32);
64
+ const privateKeyHex = toHex(seedSlice);
50
65
  const publicKey = await _keyManager.KeyManager.importKeyPair(privateKeyHex);
51
66
  return {
52
67
  phrase: mnemonic,
@@ -1 +1 @@
1
- {"version":3,"names":["bip39","_interopRequireWildcard","require","_keyManager","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","RecoveryPhraseService","generateIdentityWithRecovery","mnemonic","generateMnemonic","seed","mnemonicToSeed","privateKeyHex","subarray","toString","publicKey","KeyManager","importKeyPair","phrase","words","split","generateIdentityWithRecovery24","restoreFromPhrase","normalizedPhrase","trim","toLowerCase","validateMnemonic","Error","validatePhrase","getWordList","wordlists","english","isValidWord","word","includes","getSuggestions","partial","limit","lowerPartial","filter","startsWith","slice","derivePublicKeyFromPhrase","derivePublicKey","phraseToWords","wordsToPhrase","map","w","join","exports","_default"],"sourceRoot":"../../../src","sources":["crypto/recoveryPhrase.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["bip39","_interopRequireWildcard","require","_keyManager","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","toHex","data","toString","length","bytes","Uint8Array","Array","from","map","b","padStart","join","RecoveryPhraseService","generateIdentityWithRecovery","mnemonic","generateMnemonic","seed","mnemonicToSeed","seedSlice","subarray","slice","privateKeyHex","publicKey","KeyManager","importKeyPair","phrase","words","split","generateIdentityWithRecovery24","restoreFromPhrase","normalizedPhrase","trim","toLowerCase","validateMnemonic","Error","validatePhrase","getWordList","wordlists","english","isValidWord","word","includes","getSuggestions","partial","limit","lowerPartial","filter","startsWith","derivePublicKeyFromPhrase","derivePublicKey","phraseToWords","wordsToPhrase","w","exports","_default"],"sourceRoot":"../../../src","sources":["crypto/recoveryPhrase.ts"],"mappings":"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","ignoreList":[]}
@@ -51,9 +51,18 @@ async function sha256(message) {
51
51
  }
52
52
 
53
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');
54
+ // Use Function constructor to prevent Metro bundler from statically analyzing this require
55
+ // This ensures the require is only evaluated in Node.js runtime, not during Metro bundling
56
+ try {
57
+ // eslint-disable-next-line @typescript-eslint/no-implied-eval
58
+ const getCrypto = new Function('return require("crypto")');
59
+ const crypto = getCrypto();
60
+ return crypto.createHash('sha256').update(message).digest('hex');
61
+ } catch (error) {
62
+ // Fallback to expo-crypto if Node crypto fails
63
+ const Crypto = await initExpoCrypto();
64
+ return Crypto.digestStringAsync(Crypto.CryptoDigestAlgorithm.SHA256, message);
65
+ }
57
66
  }
58
67
  class SignatureService {
59
68
  /**
@@ -112,8 +121,10 @@ class SignatureService {
112
121
  // In React Native, use async verify instead
113
122
  throw new Error('verifySync should only be used in Node.js. Use verify() in React Native.');
114
123
  }
115
- // eslint-disable-next-line @typescript-eslint/no-var-requires
116
- const crypto = require('crypto');
124
+ // Use Function constructor to prevent Metro bundler from statically analyzing this require
125
+ // eslint-disable-next-line @typescript-eslint/no-implied-eval
126
+ const getCrypto = new Function('return require("crypto")');
127
+ const crypto = getCrypto();
117
128
  const key = ec.keyFromPublic(publicKey, 'hex');
118
129
  const messageHash = crypto.createHash('sha256').update(message).digest('hex');
119
130
  return key.verify(messageHash, signature);
@@ -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","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":[]}
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","getCrypto","Function","crypto","createHash","update","digest","error","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":[]}
@@ -48,6 +48,14 @@ async function initExpoRandom() {
48
48
  return ExpoRandom;
49
49
  }
50
50
 
51
+ /**
52
+ * Convert Uint8Array to hexadecimal string
53
+ * Works in both Node.js and React Native
54
+ */
55
+ function uint8ArrayToHex(bytes) {
56
+ return Array.from(bytes).map(b => b.toString(16).padStart(2, '0')).join('');
57
+ }
58
+
51
59
  /**
52
60
  * Generate cryptographically secure random bytes
53
61
  */
@@ -59,9 +67,18 @@ async function getSecureRandomBytes(length) {
59
67
  }
60
68
 
61
69
  // 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));
70
+ // Use Function constructor to prevent Metro bundler from statically analyzing this require
71
+ // This ensures the require is only evaluated in Node.js runtime, not during Metro bundling
72
+ try {
73
+ // eslint-disable-next-line @typescript-eslint/no-implied-eval
74
+ const getCrypto = new Function('return require("crypto")');
75
+ const crypto = getCrypto();
76
+ return new Uint8Array(crypto.randomBytes(length));
77
+ } catch (error) {
78
+ // Fallback to expo-random if Node crypto fails
79
+ const Random = await initExpoRandom();
80
+ return Random.getRandomBytes(length);
81
+ }
65
82
  }
66
83
  export class KeyManager {
67
84
  /**
@@ -81,7 +98,7 @@ export class KeyManager {
81
98
  */
82
99
  static async generateKeyPair() {
83
100
  const randomBytes = await getSecureRandomBytes(32);
84
- const privateKeyHex = Buffer.from(randomBytes).toString('hex');
101
+ const privateKeyHex = uint8ArrayToHex(randomBytes);
85
102
  const keyPair = ec.keyFromPrivate(privateKeyHex);
86
103
  return {
87
104
  privateKey: keyPair.getPrivate('hex'),
@@ -1 +1 @@
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":[]}
1
+ {"version":3,"names":["ec","EC","SecureStore","ExpoRandom","STORAGE_KEYS","PRIVATE_KEY","PUBLIC_KEY","initSecureStore","isReactNative","navigator","product","isNodeJS","process","versions","node","initExpoRandom","uint8ArrayToHex","bytes","Array","from","map","b","toString","padStart","join","getSecureRandomBytes","length","Random","getRandomBytes","getCrypto","Function","crypto","Uint8Array","randomBytes","error","KeyManager","generateKeyPairSync","keyPair","genKeyPair","privateKey","getPrivate","publicKey","getPublic","generateKeyPair","privateKeyHex","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":[]}
@@ -9,6 +9,20 @@
9
9
 
10
10
  import * as bip39 from 'bip39';
11
11
  import { KeyManager } from './keyManager';
12
+
13
+ /**
14
+ * Convert Buffer or Uint8Array to hexadecimal string
15
+ * Works in both Node.js and React Native
16
+ */
17
+ function toHex(data) {
18
+ if (typeof data.toString === 'function' && data.toString.length === 1) {
19
+ // It's a Buffer with toString('hex') method (Node.js)
20
+ return data.toString('hex');
21
+ }
22
+ // It's a Uint8Array or array-like (React Native/browser)
23
+ const bytes = data instanceof Uint8Array ? data : new Uint8Array(data);
24
+ return Array.from(bytes).map(b => b.toString(16).padStart(2, '0')).join('');
25
+ }
12
26
  export class RecoveryPhraseService {
13
27
  /**
14
28
  * Generate a new identity with a recovery phrase
@@ -23,7 +37,8 @@ export class RecoveryPhraseService {
23
37
  const seed = await bip39.mnemonicToSeed(mnemonic);
24
38
 
25
39
  // Use first 32 bytes of seed as private key
26
- const privateKeyHex = seed.subarray(0, 32).toString('hex');
40
+ const seedSlice = seed.subarray ? seed.subarray(0, 32) : seed.slice(0, 32);
41
+ const privateKeyHex = toHex(seedSlice);
27
42
 
28
43
  // Import the derived key pair
29
44
  const publicKey = await KeyManager.importKeyPair(privateKeyHex);
@@ -41,7 +56,8 @@ export class RecoveryPhraseService {
41
56
  // Generate 256-bit entropy for 24-word mnemonic
42
57
  const mnemonic = bip39.generateMnemonic(256);
43
58
  const seed = await bip39.mnemonicToSeed(mnemonic);
44
- const privateKeyHex = seed.subarray(0, 32).toString('hex');
59
+ const seedSlice = seed.subarray ? seed.subarray(0, 32) : seed.slice(0, 32);
60
+ const privateKeyHex = toHex(seedSlice);
45
61
  const publicKey = await KeyManager.importKeyPair(privateKeyHex);
46
62
  return {
47
63
  phrase: mnemonic,
@@ -1 +1 @@
1
- {"version":3,"names":["bip39","KeyManager","RecoveryPhraseService","generateIdentityWithRecovery","mnemonic","generateMnemonic","seed","mnemonicToSeed","privateKeyHex","subarray","toString","publicKey","importKeyPair","phrase","words","split","generateIdentityWithRecovery24","restoreFromPhrase","normalizedPhrase","trim","toLowerCase","validateMnemonic","Error","validatePhrase","getWordList","wordlists","english","isValidWord","word","includes","getSuggestions","partial","limit","lowerPartial","filter","startsWith","slice","derivePublicKeyFromPhrase","derivePublicKey","phraseToWords","wordsToPhrase","map","w","join"],"sourceRoot":"../../../src","sources":["crypto/recoveryPhrase.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["bip39","KeyManager","toHex","data","toString","length","bytes","Uint8Array","Array","from","map","b","padStart","join","RecoveryPhraseService","generateIdentityWithRecovery","mnemonic","generateMnemonic","seed","mnemonicToSeed","seedSlice","subarray","slice","privateKeyHex","publicKey","importKeyPair","phrase","words","split","generateIdentityWithRecovery24","restoreFromPhrase","normalizedPhrase","trim","toLowerCase","validateMnemonic","Error","validatePhrase","getWordList","wordlists","english","isValidWord","word","includes","getSuggestions","partial","limit","lowerPartial","filter","startsWith","derivePublicKeyFromPhrase","derivePublicKey","phraseToWords","wordsToPhrase","w"],"sourceRoot":"../../../src","sources":["crypto/recoveryPhrase.ts"],"mappings":"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","ignoreList":[]}
@@ -49,9 +49,18 @@ async function sha256(message) {
49
49
  }
50
50
 
51
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');
52
+ // Use Function constructor to prevent Metro bundler from statically analyzing this require
53
+ // This ensures the require is only evaluated in Node.js runtime, not during Metro bundling
54
+ try {
55
+ // eslint-disable-next-line @typescript-eslint/no-implied-eval
56
+ const getCrypto = new Function('return require("crypto")');
57
+ const crypto = getCrypto();
58
+ return crypto.createHash('sha256').update(message).digest('hex');
59
+ } catch (error) {
60
+ // Fallback to expo-crypto if Node crypto fails
61
+ const Crypto = await initExpoCrypto();
62
+ return Crypto.digestStringAsync(Crypto.CryptoDigestAlgorithm.SHA256, message);
63
+ }
55
64
  }
56
65
  export class SignatureService {
57
66
  /**
@@ -110,8 +119,10 @@ export class SignatureService {
110
119
  // In React Native, use async verify instead
111
120
  throw new Error('verifySync should only be used in Node.js. Use verify() in React Native.');
112
121
  }
113
- // eslint-disable-next-line @typescript-eslint/no-var-requires
114
- const crypto = require('crypto');
122
+ // Use Function constructor to prevent Metro bundler from statically analyzing this require
123
+ // eslint-disable-next-line @typescript-eslint/no-implied-eval
124
+ const getCrypto = new Function('return require("crypto")');
125
+ const crypto = getCrypto();
115
126
  const key = ec.keyFromPublic(publicKey, 'hex');
116
127
  const messageHash = crypto.createHash('sha256').update(message).digest('hex');
117
128
  return key.verify(messageHash, signature);
@@ -1 +1 @@
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
+ {"version":3,"names":["ec","EC","KeyManager","ExpoCrypto","isReactNative","navigator","product","isNodeJS","process","versions","node","initExpoCrypto","sha256","message","Crypto","digestStringAsync","CryptoDigestAlgorithm","SHA256","getCrypto","Function","crypto","createHash","update","digest","error","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;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"}
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;AAgF1C,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 +1 @@
1
- {"version":3,"file":"recoveryPhrase.d.ts","sourceRoot":"","sources":["../../../src/crypto/recoveryPhrase.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,qBAAqB;IAChC;;;OAGG;WACU,4BAA4B,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAqB1E;;OAEG;WACU,8BAA8B,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAe5E;;OAEG;WACU,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkB/D;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAK9C;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,MAAM,EAAE;IAI9B;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIzC;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,MAAM,EAAE;IAOnE;;;OAGG;WACU,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAavE;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE;IAI9C;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;CAG9C;AAED,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"recoveryPhrase.d.ts","sourceRoot":"","sources":["../../../src/crypto/recoveryPhrase.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqBH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,qBAAqB;IAChC;;;OAGG;WACU,4BAA4B,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAsB1E;;OAEG;WACU,8BAA8B,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAgB5E;;OAEG;WACU,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkB/D;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAK9C;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,MAAM,EAAE;IAI9B;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIzC;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,MAAM,EAAE;IAOnE;;;OAGG;WACU,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAavE;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE;IAI9C;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;CAG9C;AAED,eAAe,qBAAqB,CAAC"}
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"signatureService.d.ts","sourceRoot":"","sources":["../../../src/crypto/signatureService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiEH,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;IAkBjF;;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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxyhq/services",
3
- "version": "5.15.2",
3
+ "version": "5.15.4",
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",
@@ -51,6 +51,16 @@ async function initExpoRandom(): Promise<typeof import('expo-random')> {
51
51
  return ExpoRandom;
52
52
  }
53
53
 
54
+ /**
55
+ * Convert Uint8Array to hexadecimal string
56
+ * Works in both Node.js and React Native
57
+ */
58
+ function uint8ArrayToHex(bytes: Uint8Array): string {
59
+ return Array.from(bytes)
60
+ .map(b => b.toString(16).padStart(2, '0'))
61
+ .join('');
62
+ }
63
+
54
64
  /**
55
65
  * Generate cryptographically secure random bytes
56
66
  */
@@ -62,9 +72,18 @@ async function getSecureRandomBytes(length: number): Promise<Uint8Array> {
62
72
  }
63
73
 
64
74
  // 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));
75
+ // Use Function constructor to prevent Metro bundler from statically analyzing this require
76
+ // This ensures the require is only evaluated in Node.js runtime, not during Metro bundling
77
+ try {
78
+ // eslint-disable-next-line @typescript-eslint/no-implied-eval
79
+ const getCrypto = new Function('return require("crypto")');
80
+ const crypto = getCrypto();
81
+ return new Uint8Array(crypto.randomBytes(length));
82
+ } catch (error) {
83
+ // Fallback to expo-random if Node crypto fails
84
+ const Random = await initExpoRandom();
85
+ return Random.getRandomBytes(length);
86
+ }
68
87
  }
69
88
 
70
89
  export interface KeyPair {
@@ -90,7 +109,7 @@ export class KeyManager {
90
109
  */
91
110
  static async generateKeyPair(): Promise<KeyPair> {
92
111
  const randomBytes = await getSecureRandomBytes(32);
93
- const privateKeyHex = Buffer.from(randomBytes).toString('hex');
112
+ const privateKeyHex = uint8ArrayToHex(randomBytes);
94
113
  const keyPair = ec.keyFromPrivate(privateKeyHex);
95
114
 
96
115
  return {
@@ -8,6 +8,22 @@
8
8
  import * as bip39 from 'bip39';
9
9
  import { KeyManager } from './keyManager';
10
10
 
11
+ /**
12
+ * Convert Buffer or Uint8Array to hexadecimal string
13
+ * Works in both Node.js and React Native
14
+ */
15
+ function toHex(data: Uint8Array | Buffer | ArrayLike<number>): string {
16
+ if (typeof (data as Buffer).toString === 'function' && (data as Buffer).toString.length === 1) {
17
+ // It's a Buffer with toString('hex') method (Node.js)
18
+ return (data as Buffer).toString('hex');
19
+ }
20
+ // It's a Uint8Array or array-like (React Native/browser)
21
+ const bytes = data instanceof Uint8Array ? data : new Uint8Array(data as ArrayLike<number>);
22
+ return Array.from(bytes)
23
+ .map(b => b.toString(16).padStart(2, '0'))
24
+ .join('');
25
+ }
26
+
11
27
  export interface RecoveryPhraseResult {
12
28
  phrase: string;
13
29
  words: string[];
@@ -28,7 +44,8 @@ export class RecoveryPhraseService {
28
44
  const seed = await bip39.mnemonicToSeed(mnemonic);
29
45
 
30
46
  // Use first 32 bytes of seed as private key
31
- const privateKeyHex = seed.subarray(0, 32).toString('hex');
47
+ const seedSlice = seed.subarray ? seed.subarray(0, 32) : seed.slice(0, 32);
48
+ const privateKeyHex = toHex(seedSlice);
32
49
 
33
50
  // Import the derived key pair
34
51
  const publicKey = await KeyManager.importKeyPair(privateKeyHex);
@@ -48,7 +65,8 @@ export class RecoveryPhraseService {
48
65
  const mnemonic = bip39.generateMnemonic(256);
49
66
 
50
67
  const seed = await bip39.mnemonicToSeed(mnemonic);
51
- const privateKeyHex = seed.subarray(0, 32).toString('hex');
68
+ const seedSlice = seed.subarray ? seed.subarray(0, 32) : seed.slice(0, 32);
69
+ const privateKeyHex = toHex(seedSlice);
52
70
  const publicKey = await KeyManager.importKeyPair(privateKeyHex);
53
71
 
54
72
  return {
@@ -51,9 +51,21 @@ async function sha256(message: string): Promise<string> {
51
51
  }
52
52
 
53
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');
54
+ // Use Function constructor to prevent Metro bundler from statically analyzing this require
55
+ // This ensures the require is only evaluated in Node.js runtime, not during Metro bundling
56
+ try {
57
+ // eslint-disable-next-line @typescript-eslint/no-implied-eval
58
+ const getCrypto = new Function('return require("crypto")');
59
+ const crypto = getCrypto();
60
+ return crypto.createHash('sha256').update(message).digest('hex');
61
+ } catch (error) {
62
+ // Fallback to expo-crypto if Node crypto fails
63
+ const Crypto = await initExpoCrypto();
64
+ return Crypto.digestStringAsync(
65
+ Crypto.CryptoDigestAlgorithm.SHA256,
66
+ message
67
+ );
68
+ }
57
69
  }
58
70
 
59
71
  export interface SignedMessage {
@@ -127,8 +139,10 @@ export class SignatureService {
127
139
  // In React Native, use async verify instead
128
140
  throw new Error('verifySync should only be used in Node.js. Use verify() in React Native.');
129
141
  }
130
- // eslint-disable-next-line @typescript-eslint/no-var-requires
131
- const crypto = require('crypto');
142
+ // Use Function constructor to prevent Metro bundler from statically analyzing this require
143
+ // eslint-disable-next-line @typescript-eslint/no-implied-eval
144
+ const getCrypto = new Function('return require("crypto")');
145
+ const crypto = getCrypto();
132
146
  const key = ec.keyFromPublic(publicKey, 'hex');
133
147
  const messageHash = crypto.createHash('sha256').update(message).digest('hex');
134
148
  return key.verify(messageHash, signature);