@onairos/react-native 3.1.16 → 3.1.18
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/README.md +404 -0
- package/lib/commonjs/assets/images/Checkbox.svg +3 -3
- package/lib/commonjs/assets/images/EnochE.svg +19 -19
- package/lib/commonjs/assets/images/Personalityprofile.svg +3 -3
- package/lib/commonjs/assets/images/Personalitytraits.svg +3 -3
- package/lib/commonjs/assets/images/Userpreferences.svg +3 -3
- package/lib/commonjs/assets/images/arrow.svg +20 -20
- package/lib/commonjs/assets/images/basicproficon.svg +43 -43
- package/lib/commonjs/assets/images/basicprofile.svg +3 -3
- package/lib/commonjs/assets/images/checkmark.svg +4 -4
- package/lib/commonjs/assets/images/contentanalysis.svg +3 -3
- package/lib/commonjs/assets/images/contenticon.svg +23 -23
- package/lib/commonjs/assets/images/personalityicon.svg +18 -18
- package/lib/commonjs/assets/images/x-close.svg +3 -3
- package/lib/commonjs/components/ModalSheet.js +8 -2
- package/lib/commonjs/components/ModalSheet.js.map +1 -1
- package/lib/commonjs/components/OnairosButton.js +290 -0
- package/lib/commonjs/components/OnairosButton.js.map +1 -0
- package/lib/commonjs/components/OnairosSignInButton.js +32 -8
- package/lib/commonjs/components/OnairosSignInButton.js.map +1 -1
- package/lib/commonjs/components/UniversalOnboarding.js +4 -4
- package/lib/commonjs/components/WelcomeScreen.js +29 -13
- package/lib/commonjs/components/WelcomeScreen.js.map +1 -1
- package/lib/commonjs/config/api.js +2 -2
- package/lib/commonjs/hooks/useConnections.js +6 -6
- package/lib/commonjs/hooks/useUserConnections.js +10 -10
- package/lib/commonjs/index.js +13 -6
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/services/apiClient.js +35 -35
- package/lib/commonjs/services/apiKeyService.js +99 -99
- package/lib/commonjs/services/authService.js +82 -82
- package/lib/commonjs/services/biometricPinService.js +10 -10
- package/lib/commonjs/services/connectedAccountsService.js +32 -32
- package/lib/commonjs/services/googleAuthService.js +15 -15
- package/lib/commonjs/services/imageCompressionService.js +15 -15
- package/lib/commonjs/services/jwtStorageService.js +59 -59
- package/lib/commonjs/services/mobileTrainingService.js +14 -14
- package/lib/commonjs/services/pinEncryptionService.js +10 -10
- package/lib/commonjs/services/pinStorageUtils.js +15 -15
- package/lib/commonjs/services/platformAuthService.js +47 -47
- package/lib/commonjs/services/storageService.js +31 -31
- package/lib/commonjs/services/trainingApiHelpers.js +33 -33
- package/lib/commonjs/services/userConnectionsService.js +24 -24
- package/lib/commonjs/utils/Portal.js +4 -4
- package/lib/commonjs/utils/api.js +24 -24
- package/lib/commonjs/utils/auth.js +18 -18
- package/lib/commonjs/utils/crypto.js +13 -13
- package/lib/commonjs/utils/encryption.js +12 -12
- package/lib/commonjs/utils/eventUtils.js +52 -52
- package/lib/commonjs/utils/programmaticFlow.js +16 -16
- package/lib/commonjs/utils/retryHelper.js +27 -27
- package/lib/module/assets/images/Checkbox.svg +3 -3
- package/lib/module/assets/images/EnochE.svg +19 -19
- package/lib/module/assets/images/Personalityprofile.svg +3 -3
- package/lib/module/assets/images/Personalitytraits.svg +3 -3
- package/lib/module/assets/images/Userpreferences.svg +3 -3
- package/lib/module/assets/images/arrow.svg +20 -20
- package/lib/module/assets/images/basicproficon.svg +43 -43
- package/lib/module/assets/images/basicprofile.svg +3 -3
- package/lib/module/assets/images/checkmark.svg +4 -4
- package/lib/module/assets/images/contentanalysis.svg +3 -3
- package/lib/module/assets/images/contenticon.svg +23 -23
- package/lib/module/assets/images/personalityicon.svg +18 -18
- package/lib/module/assets/images/x-close.svg +3 -3
- package/lib/module/components/ModalSheet.js +7 -2
- package/lib/module/components/ModalSheet.js.map +1 -1
- package/lib/module/components/OnairosButton.js +282 -0
- package/lib/module/components/OnairosButton.js.map +1 -0
- package/lib/module/components/OnairosSignInButton.js +32 -8
- package/lib/module/components/OnairosSignInButton.js.map +1 -1
- package/lib/module/components/UniversalOnboarding.js +4 -4
- package/lib/module/components/WelcomeScreen.js +25 -10
- package/lib/module/components/WelcomeScreen.js.map +1 -1
- package/lib/module/config/api.js +2 -2
- package/lib/module/hooks/useConnections.js +6 -6
- package/lib/module/hooks/useUserConnections.js +10 -10
- package/lib/module/index.js +11 -11
- package/lib/module/index.js.map +1 -1
- package/lib/module/services/apiClient.js +35 -35
- package/lib/module/services/apiKeyService.js +99 -99
- package/lib/module/services/authService.js +82 -82
- package/lib/module/services/biometricPinService.js +10 -10
- package/lib/module/services/connectedAccountsService.js +32 -32
- package/lib/module/services/googleAuthService.js +15 -15
- package/lib/module/services/imageCompressionService.js +15 -15
- package/lib/module/services/jwtStorageService.js +59 -59
- package/lib/module/services/mobileTrainingService.js +14 -14
- package/lib/module/services/pinEncryptionService.js +10 -10
- package/lib/module/services/pinStorageUtils.js +15 -15
- package/lib/module/services/platformAuthService.js +47 -47
- package/lib/module/services/storageService.js +31 -31
- package/lib/module/services/trainingApiHelpers.js +33 -33
- package/lib/module/services/userConnectionsService.js +24 -24
- package/lib/module/utils/Portal.js +4 -4
- package/lib/module/utils/api.js +24 -24
- package/lib/module/utils/auth.js +18 -18
- package/lib/module/utils/crypto.js +13 -13
- package/lib/module/utils/encryption.js +12 -12
- package/lib/module/utils/eventUtils.js +52 -52
- package/lib/module/utils/programmaticFlow.js +16 -16
- package/lib/module/utils/retryHelper.js +27 -27
- package/lib/typescript/components/ModalSheet.d.ts.map +1 -1
- package/lib/typescript/components/OnairosButton.d.ts +37 -0
- package/lib/typescript/components/OnairosButton.d.ts.map +1 -0
- package/lib/typescript/components/OnairosSignInButton.d.ts.map +1 -1
- package/lib/typescript/components/WelcomeScreen.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +3 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/package.json +145 -163
- package/src/api/index.ts +151 -151
- package/src/assets/images/Checkbox.svg +3 -3
- package/src/assets/images/EnochE.svg +19 -19
- package/src/assets/images/Personalityprofile.svg +3 -3
- package/src/assets/images/Personalitytraits.svg +3 -3
- package/src/assets/images/Userpreferences.svg +3 -3
- package/src/assets/images/arrow.svg +20 -20
- package/src/assets/images/basicproficon.svg +43 -43
- package/src/assets/images/basicprofile.svg +3 -3
- package/src/assets/images/checkmark.svg +4 -4
- package/src/assets/images/contentanalysis.svg +3 -3
- package/src/assets/images/contenticon.svg +23 -23
- package/src/assets/images/personalityicon.svg +18 -18
- package/src/assets/images/x-close.svg +3 -3
- package/src/components/BodyText.tsx +33 -33
- package/src/components/BrandMark.tsx +62 -62
- package/src/components/CodeInput.tsx +32 -32
- package/src/components/DataRequestScreen.tsx +355 -355
- package/src/components/EmailInput.tsx +31 -31
- package/src/components/EmailVerificationModal.tsx +363 -363
- package/src/components/ExistingUserDataConfirmation.tsx +506 -506
- package/src/components/GoogleButton.tsx +55 -55
- package/src/components/HeadingGroup.tsx +49 -49
- package/src/components/ModalHeader.tsx +125 -125
- package/src/components/ModalSheet.tsx +59 -57
- package/src/components/Onairos.tsx +422 -422
- package/src/components/OnairosButton.tsx +339 -0
- package/src/components/OnairosSignInButton.tsx +31 -9
- package/src/components/Overlay.tsx +506 -506
- package/src/components/PersonaImage.tsx +79 -79
- package/src/components/PersonaLoadingScreen.tsx +201 -201
- package/src/components/PersonalizationConsentScreen.tsx +410 -410
- package/src/components/PinCreationScreen.tsx +492 -492
- package/src/components/PinInput.tsx +555 -555
- package/src/components/PlatformConnectorsStep.tsx +891 -891
- package/src/components/PlatformList.tsx +144 -144
- package/src/components/PlatformToggle.tsx +226 -226
- package/src/components/PrimaryButton.tsx +213 -213
- package/src/components/SignInMatchAnimation.tsx +225 -225
- package/src/components/SignInStep.tsx +217 -217
- package/src/components/TrainingModal.tsx +1047 -1047
- package/src/components/UniversalOnboarding.tsx +2887 -2887
- package/src/components/VerificationStep.tsx +198 -198
- package/src/components/WelcomeScreen.tsx +490 -473
- package/src/components/icons/Basicproficon.tsx +30 -30
- package/src/components/icons/Basicprofile.tsx +17 -17
- package/src/components/icons/Checkbox.tsx +17 -17
- package/src/components/icons/Checkmark.tsx +24 -24
- package/src/components/icons/Contentanalysis.tsx +17 -17
- package/src/components/icons/Contenticon.tsx +30 -30
- package/src/components/icons/EnochE.tsx +39 -39
- package/src/components/icons/Personalityicon.tsx +22 -22
- package/src/components/icons/Personalityprofile.tsx +17 -17
- package/src/components/icons/Personalitytraits.tsx +17 -17
- package/src/components/icons/Userpreferences.tsx +17 -17
- package/src/components/icons/index.ts +12 -12
- package/src/components/onboarding/OAuthWebView.tsx +232 -232
- package/src/config/api.ts +25 -25
- package/src/context/AuthContext.tsx +393 -393
- package/src/hooks/useConnectedAccounts.ts +138 -138
- package/src/hooks/useConnections.ts +161 -161
- package/src/hooks/useCredentials.ts +174 -174
- package/src/hooks/useUserConnections.ts +165 -165
- package/src/index.js +14 -0
- package/src/index.ts +99 -96
- package/src/services/apiClient.ts +336 -336
- package/src/services/apiKeyService.ts +919 -919
- package/src/services/authService.ts +1008 -1008
- package/src/services/biometricPinService.ts +192 -192
- package/src/services/connectedAccountsService.ts +289 -289
- package/src/services/googleAuthService.ts +279 -279
- package/src/services/imageCompressionService.ts +302 -302
- package/src/services/jwtStorageService.ts +256 -256
- package/src/services/mobileTrainingService.ts +203 -203
- package/src/services/pinEncryptionService.ts +75 -75
- package/src/services/pinStorageUtils.ts +96 -96
- package/src/services/platformAuthService.ts +1346 -1346
- package/src/services/storageService.ts +451 -451
- package/src/services/trainingApiHelpers.ts +66 -66
- package/src/services/userConnectionsService.ts +556 -556
- package/src/services/youtubeMigrationService.ts +453 -453
- package/src/theme/index.ts +239 -239
- package/src/types/ambient.d.ts +28 -28
- package/src/types/index.ts +265 -265
- package/src/types/node-fix.d.ts +18 -18
- package/src/types/node-override.d.ts +23 -23
- package/src/types/opacity.d.ts +15 -15
- package/src/types/types.d.ts +17 -17
- package/src/utils/Portal.tsx +82 -82
- package/src/utils/api.js +111 -111
- package/src/utils/auth.js +103 -103
- package/src/utils/crypto.js +59 -59
- package/src/utils/encryption.ts +68 -68
- package/src/utils/eventUtils.ts +302 -302
- package/src/utils/haptics.ts +58 -58
- package/src/utils/imagePreloader.ts +2 -2
- package/src/utils/programmaticFlow.ts +112 -112
- package/src/utils/retryHelper.ts +274 -274
package/src/utils/crypto.js
CHANGED
|
@@ -1,60 +1,60 @@
|
|
|
1
|
-
import { RSA } from 'react-native-rsa-native';
|
|
2
|
-
import { sha256 as cryptoSha256 } from 'react-native-crypto-js';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Encrypt data using RSA
|
|
6
|
-
* @param {string} publicKey - The RSA public key
|
|
7
|
-
* @param {string} data - The data to encrypt
|
|
8
|
-
* @returns {Promise<string>} - The encrypted data
|
|
9
|
-
*/
|
|
10
|
-
export const rsaEncrypt = async (publicKey, data) => {
|
|
11
|
-
try {
|
|
12
|
-
// Clean the public key format
|
|
13
|
-
const cleanedKey = publicKey
|
|
14
|
-
.replace(/\\n/g, '')
|
|
15
|
-
.replace(/^\s+|\s+$/g, '')
|
|
16
|
-
.replace('-----BEGIN PUBLIC KEY-----', '')
|
|
17
|
-
.replace('-----END PUBLIC KEY-----', '')
|
|
18
|
-
.trim();
|
|
19
|
-
|
|
20
|
-
// Format the key properly for the library
|
|
21
|
-
const formattedKey = `-----BEGIN PUBLIC KEY-----\n${cleanedKey}\n-----END PUBLIC KEY-----`;
|
|
22
|
-
|
|
23
|
-
// Encrypt the data
|
|
24
|
-
const encrypted = await RSA.encrypt(data, formattedKey);
|
|
25
|
-
return encrypted;
|
|
26
|
-
} catch (error) {
|
|
27
|
-
console.error('RSA encryption failed:', error);
|
|
28
|
-
throw error;
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Hash data using SHA-256
|
|
34
|
-
* @param {string} data - The data to hash
|
|
35
|
-
* @returns {string} - The hashed data
|
|
36
|
-
*/
|
|
37
|
-
export const sha256 = (data) => {
|
|
38
|
-
return cryptoSha256(data).toString();
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Convert a base64 string to a buffer
|
|
43
|
-
* @param {string} base64String - The base64 string to convert
|
|
44
|
-
* @returns {ArrayBuffer} - The converted buffer
|
|
45
|
-
*/
|
|
46
|
-
export const base64ToBuffer = (base64String) => {
|
|
47
|
-
try {
|
|
48
|
-
const binaryString = Buffer.from(base64String, 'base64').toString('binary');
|
|
49
|
-
const bytes = new Uint8Array(binaryString.length);
|
|
50
|
-
|
|
51
|
-
for (let i = 0; i < binaryString.length; i++) {
|
|
52
|
-
bytes[i] = binaryString.charCodeAt(i);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
return bytes.buffer;
|
|
56
|
-
} catch (error) {
|
|
57
|
-
console.error('Error converting base64 to buffer:', error);
|
|
58
|
-
throw error;
|
|
59
|
-
}
|
|
1
|
+
import { RSA } from 'react-native-rsa-native';
|
|
2
|
+
import { sha256 as cryptoSha256 } from 'react-native-crypto-js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Encrypt data using RSA
|
|
6
|
+
* @param {string} publicKey - The RSA public key
|
|
7
|
+
* @param {string} data - The data to encrypt
|
|
8
|
+
* @returns {Promise<string>} - The encrypted data
|
|
9
|
+
*/
|
|
10
|
+
export const rsaEncrypt = async (publicKey, data) => {
|
|
11
|
+
try {
|
|
12
|
+
// Clean the public key format
|
|
13
|
+
const cleanedKey = publicKey
|
|
14
|
+
.replace(/\\n/g, '')
|
|
15
|
+
.replace(/^\s+|\s+$/g, '')
|
|
16
|
+
.replace('-----BEGIN PUBLIC KEY-----', '')
|
|
17
|
+
.replace('-----END PUBLIC KEY-----', '')
|
|
18
|
+
.trim();
|
|
19
|
+
|
|
20
|
+
// Format the key properly for the library
|
|
21
|
+
const formattedKey = `-----BEGIN PUBLIC KEY-----\n${cleanedKey}\n-----END PUBLIC KEY-----`;
|
|
22
|
+
|
|
23
|
+
// Encrypt the data
|
|
24
|
+
const encrypted = await RSA.encrypt(data, formattedKey);
|
|
25
|
+
return encrypted;
|
|
26
|
+
} catch (error) {
|
|
27
|
+
console.error('RSA encryption failed:', error);
|
|
28
|
+
throw error;
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Hash data using SHA-256
|
|
34
|
+
* @param {string} data - The data to hash
|
|
35
|
+
* @returns {string} - The hashed data
|
|
36
|
+
*/
|
|
37
|
+
export const sha256 = (data) => {
|
|
38
|
+
return cryptoSha256(data).toString();
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Convert a base64 string to a buffer
|
|
43
|
+
* @param {string} base64String - The base64 string to convert
|
|
44
|
+
* @returns {ArrayBuffer} - The converted buffer
|
|
45
|
+
*/
|
|
46
|
+
export const base64ToBuffer = (base64String) => {
|
|
47
|
+
try {
|
|
48
|
+
const binaryString = Buffer.from(base64String, 'base64').toString('binary');
|
|
49
|
+
const bytes = new Uint8Array(binaryString.length);
|
|
50
|
+
|
|
51
|
+
for (let i = 0; i < binaryString.length; i++) {
|
|
52
|
+
bytes[i] = binaryString.charCodeAt(i);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return bytes.buffer;
|
|
56
|
+
} catch (error) {
|
|
57
|
+
console.error('Error converting base64 to buffer:', error);
|
|
58
|
+
throw error;
|
|
59
|
+
}
|
|
60
60
|
};
|
package/src/utils/encryption.ts
CHANGED
|
@@ -1,69 +1,69 @@
|
|
|
1
|
-
import { onairosApi } from '../api';
|
|
2
|
-
import RSA from 'react-native-rsa-native';
|
|
3
|
-
import { ApiResponse } from '../types';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Encrypt a model key using RSA with a public key
|
|
7
|
-
* @param publicKey The public key to encrypt with
|
|
8
|
-
* @param modelKey The model key to encrypt
|
|
9
|
-
* @returns The encrypted model key
|
|
10
|
-
*/
|
|
11
|
-
export const encryptModelKey = (publicKey: string, modelKey: string): string => {
|
|
12
|
-
try {
|
|
13
|
-
console.log('Encrypting model key');
|
|
14
|
-
|
|
15
|
-
if (!publicKey || !modelKey) {
|
|
16
|
-
throw new Error('Public key or model key is missing');
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
// In a production environment, this would use RSA encryption
|
|
20
|
-
// For now, we'll use a mock implementation
|
|
21
|
-
// return RSA.encrypt(modelKey, publicKey);
|
|
22
|
-
|
|
23
|
-
// Return a fake encrypted value
|
|
24
|
-
return `encrypted_${modelKey}_${Date.now()}`;
|
|
25
|
-
} catch (error) {
|
|
26
|
-
console.error('Error encrypting model key:', error);
|
|
27
|
-
throw error;
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Get the server's public key
|
|
33
|
-
* @returns The server's public key
|
|
34
|
-
*/
|
|
35
|
-
export const getServerPublicKey = async (): Promise<string> => {
|
|
36
|
-
try {
|
|
37
|
-
// Use the API without generics to prevent TypeScript errors
|
|
38
|
-
const response = await onairosApi.get('public/getPublicKey');
|
|
39
|
-
|
|
40
|
-
// Check for the public key in the response data
|
|
41
|
-
if (response?.data?.data?.publicKey) {
|
|
42
|
-
return response.data.data.publicKey;
|
|
43
|
-
} else if (response?.data?.publicKey) {
|
|
44
|
-
return response.data.publicKey;
|
|
45
|
-
} else {
|
|
46
|
-
throw new Error('No public key found in response');
|
|
47
|
-
}
|
|
48
|
-
} catch (error) {
|
|
49
|
-
console.error('Error getting server public key:', error);
|
|
50
|
-
// For testing, return a mock public key
|
|
51
|
-
return 'mock_public_key_for_testing';
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Hash a string using SHA-256
|
|
57
|
-
* @param input The string to hash
|
|
58
|
-
* @returns The hashed string
|
|
59
|
-
*/
|
|
60
|
-
export const hashString = async (input: string): Promise<string> => {
|
|
61
|
-
try {
|
|
62
|
-
// In a production environment, this would use a proper hashing function
|
|
63
|
-
// For now, we'll return a mock hash
|
|
64
|
-
return `hash_${input.replace(/\s+/g, '_')}_${Date.now()}`;
|
|
65
|
-
} catch (error) {
|
|
66
|
-
console.error('Error hashing string:', error);
|
|
67
|
-
return `fallback_hash_${Date.now()}`;
|
|
68
|
-
}
|
|
1
|
+
import { onairosApi } from '../api';
|
|
2
|
+
import RSA from 'react-native-rsa-native';
|
|
3
|
+
import { ApiResponse } from '../types';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Encrypt a model key using RSA with a public key
|
|
7
|
+
* @param publicKey The public key to encrypt with
|
|
8
|
+
* @param modelKey The model key to encrypt
|
|
9
|
+
* @returns The encrypted model key
|
|
10
|
+
*/
|
|
11
|
+
export const encryptModelKey = (publicKey: string, modelKey: string): string => {
|
|
12
|
+
try {
|
|
13
|
+
console.log('Encrypting model key');
|
|
14
|
+
|
|
15
|
+
if (!publicKey || !modelKey) {
|
|
16
|
+
throw new Error('Public key or model key is missing');
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// In a production environment, this would use RSA encryption
|
|
20
|
+
// For now, we'll use a mock implementation
|
|
21
|
+
// return RSA.encrypt(modelKey, publicKey);
|
|
22
|
+
|
|
23
|
+
// Return a fake encrypted value
|
|
24
|
+
return `encrypted_${modelKey}_${Date.now()}`;
|
|
25
|
+
} catch (error) {
|
|
26
|
+
console.error('Error encrypting model key:', error);
|
|
27
|
+
throw error;
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Get the server's public key
|
|
33
|
+
* @returns The server's public key
|
|
34
|
+
*/
|
|
35
|
+
export const getServerPublicKey = async (): Promise<string> => {
|
|
36
|
+
try {
|
|
37
|
+
// Use the API without generics to prevent TypeScript errors
|
|
38
|
+
const response = await onairosApi.get('public/getPublicKey');
|
|
39
|
+
|
|
40
|
+
// Check for the public key in the response data
|
|
41
|
+
if (response?.data?.data?.publicKey) {
|
|
42
|
+
return response.data.data.publicKey;
|
|
43
|
+
} else if (response?.data?.publicKey) {
|
|
44
|
+
return response.data.publicKey;
|
|
45
|
+
} else {
|
|
46
|
+
throw new Error('No public key found in response');
|
|
47
|
+
}
|
|
48
|
+
} catch (error) {
|
|
49
|
+
console.error('Error getting server public key:', error);
|
|
50
|
+
// For testing, return a mock public key
|
|
51
|
+
return 'mock_public_key_for_testing';
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Hash a string using SHA-256
|
|
57
|
+
* @param input The string to hash
|
|
58
|
+
* @returns The hashed string
|
|
59
|
+
*/
|
|
60
|
+
export const hashString = async (input: string): Promise<string> => {
|
|
61
|
+
try {
|
|
62
|
+
// In a production environment, this would use a proper hashing function
|
|
63
|
+
// For now, we'll return a mock hash
|
|
64
|
+
return `hash_${input.replace(/\s+/g, '_')}_${Date.now()}`;
|
|
65
|
+
} catch (error) {
|
|
66
|
+
console.error('Error hashing string:', error);
|
|
67
|
+
return `fallback_hash_${Date.now()}`;
|
|
68
|
+
}
|
|
69
69
|
};
|