@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 +31 -25
- package/dist/index.js.map +1 -1
- package/dist/providers/rn-dpop-provider.d.ts.map +1 -1
- package/dist/providers/rn-dpop-provider.js +18 -1
- package/dist/storage/rn-secure-storage.d.ts.map +1 -1
- package/dist/storage/rn-secure-storage.js +11 -1
- package/package.json +1 -1
- package/src/providers/rn-dpop-provider.ts +17 -1
- package/src/storage/rn-secure-storage.ts +11 -1
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
|
|
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
|
|
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
|
|
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
|
|
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)
|