@explorins/pers-sdk-react-native 1.5.27 → 1.5.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -8,31 +8,10 @@ var reactNative = require('react-native');
8
8
  require('@ethereumjs/tx');
9
9
  require('@ethereumjs/util');
10
10
  require('@ethereumjs/common');
11
- var Keychain = require('react-native-keychain');
12
11
  var AsyncStorage = require('@react-native-async-storage/async-storage');
13
- var crypto$1 = require('react-native-quick-crypto');
14
12
  var jsxRuntime = require('react/jsx-runtime');
15
13
  var react = require('react');
16
14
 
17
- function _interopNamespaceDefault(e) {
18
- var n = Object.create(null);
19
- if (e) {
20
- Object.keys(e).forEach(function (k) {
21
- if (k !== 'default') {
22
- var d = Object.getOwnPropertyDescriptor(e, k);
23
- Object.defineProperty(n, k, d.get ? d : {
24
- enumerable: true,
25
- get: function () { return e[k]; }
26
- });
27
- }
28
- });
29
- }
30
- n.default = e;
31
- return Object.freeze(n);
32
- }
33
-
34
- var Keychain__namespace = /*#__PURE__*/_interopNamespaceDefault(Keychain);
35
-
36
15
  var buffer = {};
37
16
 
38
17
  var base64Js = {};
@@ -32065,6 +32044,16 @@ class PersSDK {
32065
32044
  }
32066
32045
  }
32067
32046
 
32047
+ // Conditionally require Keychain to avoid Web bundler errors
32048
+ let Keychain;
32049
+ if (reactNative.Platform.OS !== 'web') {
32050
+ try {
32051
+ Keychain = require('react-native-keychain');
32052
+ }
32053
+ catch (e) {
32054
+ console.warn('ReactNativeSecureStorage: Failed to load react-native-keychain', e);
32055
+ }
32056
+ }
32068
32057
  /**
32069
32058
  * Secure Storage implementation for React Native
32070
32059
  * Uses Keychain/Keystore for sensitive data and AsyncStorage for non-sensitive data.
@@ -32090,7 +32079,7 @@ class ReactNativeSecureStorage {
32090
32079
  if (this.SECURE_KEYS.has(key)) {
32091
32080
  // Store in Keychain/Keystore
32092
32081
  // Service name acts as the key identifier in simple usage
32093
- await Keychain__namespace.setGenericPassword(prefixedKey, stringValue, { service: prefixedKey });
32082
+ await Keychain.setGenericPassword(prefixedKey, stringValue, { service: prefixedKey });
32094
32083
  }
32095
32084
  else {
32096
32085
  // Store standard config/metadata in AsyncStorage
@@ -32101,7 +32090,7 @@ class ReactNativeSecureStorage {
32101
32090
  const prefixedKey = this.getKeyName(key);
32102
32091
  if (this.SECURE_KEYS.has(key)) {
32103
32092
  try {
32104
- const credentials = await Keychain__namespace.getGenericPassword({ service: prefixedKey });
32093
+ const credentials = await Keychain.getGenericPassword({ service: prefixedKey });
32105
32094
  if (credentials) {
32106
32095
  return this.tryParse(credentials.password);
32107
32096
  }
@@ -32126,7 +32115,7 @@ class ReactNativeSecureStorage {
32126
32115
  async remove(key) {
32127
32116
  const prefixedKey = this.getKeyName(key);
32128
32117
  if (this.SECURE_KEYS.has(key)) {
32129
- await Keychain__namespace.resetGenericPassword({ service: prefixedKey });
32118
+ await Keychain.resetGenericPassword({ service: prefixedKey });
32130
32119
  }
32131
32120
  else {
32132
32121
  await AsyncStorage.removeItem(prefixedKey);
@@ -32135,7 +32124,7 @@ class ReactNativeSecureStorage {
32135
32124
  async clear() {
32136
32125
  // Clear all known secure keys
32137
32126
  for (const key of this.SECURE_KEYS) {
32138
- await Keychain__namespace.resetGenericPassword({ service: this.getKeyName(key) });
32127
+ await Keychain.resetGenericPassword({ service: this.getKeyName(key) });
32139
32128
  }
32140
32129
  // Clear AsyncStorage keys related to PERS
32141
32130
  try {
@@ -32315,6 +32304,23 @@ class AsyncStorageTokenStorage {
32315
32304
  }
32316
32305
  }
32317
32306
 
32307
+ // Conditionally require quick-crypto for Native platforms only
32308
+ let crypto$1;
32309
+ if (reactNative.Platform.OS !== 'web') {
32310
+ try {
32311
+ crypto$1 = require('react-native-quick-crypto').default || require('react-native-quick-crypto');
32312
+ }
32313
+ catch (e) {
32314
+ console.warn('ReactNativeDPoPProvider: Failed to load react-native-quick-crypto', e);
32315
+ }
32316
+ }
32317
+ else {
32318
+ // on Web, we shouldn't be using this provider anyway (Core SDK has WebDPoPProvider)
32319
+ // But to be safe, we can mock or throw
32320
+ crypto$1 = {
32321
+ generateKeyPair: () => { throw new Error('ReactNativeDPoPProvider not supported on Web'); }
32322
+ };
32323
+ }
32318
32324
  class ReactNativeDPoPProvider {
32319
32325
  /**
32320
32326
  * Generates a new key pair (ES256 recommended)