Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
2
22_23-J 16
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
22_23-J 16
22_23-J 16
Commits
53a2c0c0
Commit
53a2c0c0
authored
May 17, 2023
by
Ishini Kiridena
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
View NFT completed
parent
0d28b306
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
905 additions
and
5 deletions
+905
-5
ExpressBackend/route/patient-routes/nft-route.js
ExpressBackend/route/patient-routes/nft-route.js
+2
-2
ExpressBackend/route/practitioner-routes/get-asset-details-router.js
...end/route/practitioner-routes/get-asset-details-router.js
+29
-0
ExpressBackend/route/practitioner-routes/get-sent-nft-route.js
...ssBackend/route/practitioner-routes/get-sent-nft-route.js
+29
-0
ExpressBackend/server.js
ExpressBackend/server.js
+6
-0
emma-frontend/App.js
emma-frontend/App.js
+4
-0
emma-frontend/components/practitionerscreens/mainViewWithMenu.js
...ontend/components/practitionerscreens/mainViewWithMenu.js
+5
-1
emma-frontend/components/practitionerscreens/nft-view.js
emma-frontend/components/practitionerscreens/nft-view.js
+67
-0
emma-frontend/components/practitionerscreens/recievedNfts.js
emma-frontend/components/practitionerscreens/recievedNfts.js
+72
-0
emma-frontend/package-lock.json
emma-frontend/package-lock.json
+647
-1
emma-frontend/package.json
emma-frontend/package.json
+6
-1
emma-frontend/services/decryptByAssetKey.js
emma-frontend/services/decryptByAssetKey.js
+19
-0
emma-frontend/services/decryptByRsaKey.js
emma-frontend/services/decryptByRsaKey.js
+19
-0
No files found.
ExpressBackend/route/patient-routes/nft-route.js
View file @
53a2c0c0
...
...
@@ -312,7 +312,7 @@ router.post("/", async (req, res) => {
//add AES key and Asset code to DB
const
assetObj
=
new
AssetKey
({
assetcode
:
decryptedAssetCode
,
key
:
encodedA
esKey
,
key
:
a
esKey
,
});
try
{
...
...
@@ -426,7 +426,7 @@ router.post("/", async (req, res) => {
//add to the AssetKeyFullInfoDB
const
assetFullObj
=
new
AssetKeyFullInfo
({
assetcode
:
decryptedAssetCode
,
key
:
encodedA
esKey
,
key
:
a
esKey
,
cid
:
ipfsContentCID
,
to
:
decryptedPractitionerKey
,
});
...
...
ExpressBackend/route/practitioner-routes/get-asset-details-router.js
0 → 100644
View file @
53a2c0c0
const
express
=
require
(
"
express
"
);
const
router
=
express
.
Router
();
const
AssetKeyFullInfo
=
require
(
"
../../model/stellar/assetKeyFull
"
);
router
.
get
(
"
/:assetcode
"
,
async
(
req
,
res
)
=>
{
const
assetCode
=
req
.
params
.
assetcode
;
try
{
const
assetData
=
await
AssetKeyFullInfo
.
findOne
({
assetcode
:
assetCode
,
});
res
.
status
(
200
).
json
({
data
:
assetData
,
});
console
.
log
(
"
/getassetdata - Getting asset data successful
"
);
}
catch
(
errorWhenGettingThePatients
)
{
console
.
log
(
"
Getting asset data failed: ERROR :
"
,
errorWhenGettingThePatients
);
console
.
log
(
"
/getassetdata - Getting asset data failed
"
);
res
.
status
(
500
).
json
({
error
:
"
Getting asset data failed: ERROR :
"
,
errorWhenGettingThePatients
,
});
}
});
module
.
exports
=
router
;
ExpressBackend/route/practitioner-routes/get-sent-nft-route.js
0 → 100644
View file @
53a2c0c0
const
express
=
require
(
"
express
"
);
const
router
=
express
.
Router
();
const
NFTRequest
=
require
(
"
./../../model/stellar/nftRequests
"
);
router
.
get
(
"
/:practitionerKey
"
,
async
(
req
,
res
)
=>
{
const
practitionerKey
=
req
.
params
.
practitionerKey
;
try
{
const
nftData
=
await
NFTRequest
.
find
({
requesterpk
:
practitionerKey
,
});
res
.
status
(
200
).
json
({
data
:
nftData
,
});
console
.
log
(
"
/sentnft - Getting sent NFTs completed
"
);
}
catch
(
errorWhenGettingThePatients
)
{
console
.
log
(
"
Getting sent NFTs failed: ERROR :
"
,
errorWhenGettingThePatients
);
console
.
log
(
"
/sentnft - Getting sent NFTs failed
"
);
res
.
status
(
500
).
json
({
error
:
"
Getting sent NFTs failed: ERROR :
"
,
errorWhenGettingThePatients
,
});
}
});
module
.
exports
=
router
;
ExpressBackend/server.js
View file @
53a2c0c0
...
...
@@ -66,6 +66,12 @@ app.use("/practitioner/treatingPatients", treatingPatients);
const
assetCodes
=
require
(
"
./route/practitioner-routes/get-assetcode-practitioner-route
"
);
app
.
use
(
"
/practitioner/getassetcode
"
,
assetCodes
);
const
sentNfts
=
require
(
"
./route/practitioner-routes/get-sent-nft-route
"
);
app
.
use
(
"
/practitioner/sentnft
"
,
sentNfts
);
const
assetData
=
require
(
"
./route/practitioner-routes/get-asset-details-router
"
);
app
.
use
(
"
/practitioner/getassetdata
"
,
assetData
);
app
.
listen
(
process
.
env
.
SERVER_PORT
,
()
=>
console
.
log
(
"
Server started on port
"
+
process
.
env
.
SERVER_PORT
)
);
emma-frontend/App.js
View file @
53a2c0c0
...
...
@@ -24,6 +24,8 @@ import PatientRequests from "./components/practitionerscreens/patientRequestsVie
import
PatientLogin
from
"
./components/patientscreens/registration/login
"
;
import
PractitionerLogin
from
"
./components/practitionerscreens/login
"
;
import
TreatingPatients
from
"
./components/practitionerscreens/treatingPatients
"
;
import
ReceivedNFT
from
"
./components/practitionerscreens/recievedNfts
"
;
import
NftView
from
"
./components/practitionerscreens/nft-view
"
;
const
Stack
=
createStackNavigator
();
...
...
@@ -132,6 +134,8 @@ export default function App() {
component
=
{
PractitionerLogin
}
/
>
<
Stack
.
Screen
name
=
"
TreatingPatients
"
component
=
{
TreatingPatients
}
/
>
<
Stack
.
Screen
name
=
"
ReceivedNFT
"
component
=
{
ReceivedNFT
}
/
>
<
Stack
.
Screen
name
=
"
NftView
"
component
=
{
NftView
}
/
>
<
/Stack.Navigator
>
)
:
(
<
SplashScreenComponent
/>
...
...
emma-frontend/components/practitionerscreens/mainViewWithMenu.js
View file @
53a2c0c0
...
...
@@ -10,6 +10,10 @@ export default function PractitionerMainView({ navigation }) {
navigation
.
navigate
(
"
TreatingPatients
"
);
};
const
handleView
=
()
=>
{
navigation
.
navigate
(
"
ReceivedNFT
"
);
};
return
(
<
View
style
=
{
styles
.
container
}
>
<
View
style
=
{
styles
.
buttonContainer
}
>
...
...
@@ -19,7 +23,7 @@ export default function PractitionerMainView({ navigation }) {
<
Button
title
=
"
Request EHRs
"
onPress
=
{()
=>
handleRequesting
()}
/
>
<
/View
>
<
View
style
=
{
styles
.
buttonContainer
}
>
<
Button
title
=
"
Others
"
onPress
=
{()
=>
handleButtonPress
(
"
Others
"
)}
/
>
<
Button
title
=
"
View NFTs
"
onPress
=
{()
=>
handleView
(
)}
/
>
<
/View
>
<
/View
>
);
...
...
emma-frontend/components/practitionerscreens/nft-view.js
0 → 100644
View file @
53a2c0c0
import
{
useEffect
,
useState
}
from
"
react
"
;
import
{
LOCALBACKEND
}
from
"
../../env
"
;
import
AsyncStorage
from
"
@react-native-async-storage/async-storage
"
;
import
RSADecrypt
from
"
../../services/decryptByRsaKey
"
;
import
DecryptWithAssetKey
from
"
../../services/decryptByAssetKey
"
;
import
{
WebView
}
from
"
react-native-webview
"
;
import
{
View
,
Text
,
useWindowDimensions
,
ScrollView
}
from
"
react-native
"
;
import
RenderHTML
from
"
react-native-render-html
"
;
export
default
function
NftView
({
navigation
,
route
})
{
const
[
data
,
setData
]
=
useState
({});
const
[
aesKey
,
setAesKey
]
=
useState
(
""
);
const
[
cid
,
setCid
]
=
useState
(
""
);
const
[
ipfsContent
,
setIpfsContent
]
=
useState
(
""
);
const
[
decryptedContent
,
setDecrypted
]
=
useState
(
""
);
const
{
width
}
=
useWindowDimensions
();
useEffect
(()
=>
{
fetchRequests
();
},
[]);
const
fetchRequests
=
async
()
=>
{
console
.
log
(
"
Asset code
"
,
assetCode
);
const
assetCode
=
route
.
params
.
assetcode
;
try
{
const
assetUrl
=
LOCALBACKEND
+
`/practitioner/getassetdata/
${
assetCode
}
`
;
console
.
log
(
assetUrl
);
const
response
=
await
fetch
(
assetUrl
);
const
json
=
await
response
.
json
();
setData
(
json
.
data
);
setAesKey
(
data
.
key
);
setCid
(
data
.
cid
);
console
.
log
(
json
.
data
);
//get the content from the IPFS
const
ipfsContentCID
=
json
.
data
.
cid
;
const
ipfsUrl
=
"
https://ipfs.io/ipfs/
"
+
ipfsContentCID
;
console
.
log
(
ipfsUrl
);
try
{
const
ipfsResponse
=
await
fetch
(
ipfsUrl
);
const
ipfsText
=
await
ipfsResponse
.
text
();
setIpfsContent
(
ipfsText
);
console
.
log
(
ipfsText
);
const
decryptedIpfsContent
=
DecryptWithAssetKey
(
json
.
data
.
key
,
ipfsText
);
setDecrypted
(
decryptedIpfsContent
);
console
.
log
(
decryptedIpfsContent
);
}
catch
(
errorWhenGGettingIPFSContent
)
{
console
.
error
(
"
Error when getting IPFS content :
"
,
errorWhenGGettingIPFSContent
);
}
}
catch
(
errorWhenGettingNftDetails
)
{
console
.
log
(
"
Error when getting NFT details
"
);
}
};
return
(
<
ScrollView
>
<
RenderHTML
contentWidth
=
{
width
}
source
=
{{
html
:
decryptedContent
}}
/
>
<
/ScrollView
>
);
}
emma-frontend/components/practitionerscreens/recievedNfts.js
0 → 100644
View file @
53a2c0c0
import
{
useEffect
,
useState
}
from
"
react
"
;
import
{
LOCALBACKEND
}
from
"
../../env
"
;
import
{
Button
,
StyleSheet
,
View
,
Text
}
from
"
react-native
"
;
import
AsyncStorage
from
"
@react-native-async-storage/async-storage
"
;
import
EncryptWithServerKey
from
"
../../services/encryptByServerKey
"
;
export
default
function
ReceivedNFT
({
navigation
})
{
const
[
data
,
setData
]
=
useState
([]);
useEffect
(()
=>
{
fetchRequests
();
},
[]);
const
fetchRequests
=
async
()
=>
{
//get key from async storage
try
{
const
practitionerKey
=
await
AsyncStorage
.
getItem
(
"
practitionerStellarPublicKey
"
);
try
{
const
requestUrl
=
LOCALBACKEND
+
`/practitioner/sentnft/
${
practitionerKey
}
`
;
console
.
log
(
requestUrl
);
const
response
=
await
fetch
(
requestUrl
);
const
json
=
await
response
.
json
();
setData
(
json
.
data
);
}
catch
(
errorFetchingRequests
)
{
console
.
log
(
"
Error when fetching request data :
"
,
errorFetchingRequests
);
}
}
catch
(
errorWhenGettingKey
)
{
console
.
log
(
"
Error when getting the public key from the async storage :
"
,
errorWhenGettingKey
);
}
};
const
renderItem
=
(
item
)
=>
{
return
(
<
View
key
=
{
item
.
_id
}
>
<
Text
>
Key
:
{
item
.
assetcode
}
<
/Text
>
<
Button
title
=
"
View NFT
"
onPress
=
{()
=>
handleViewNFT
(
item
)}
><
/Button
>
<
/View
>
);
};
const
handleViewNFT
=
async
(
item
)
=>
{
//route the NFT view ui with the item object
navigation
.
navigate
(
"
NftView
"
,
item
);
};
return
(
<
View
style
=
{
styles
.
container
}
>
{
data
.
map
((
item
)
=>
renderItem
(
item
))}
<
/View
>
);
}
const
styles
=
StyleSheet
.
create
({
container
:
{
flex
:
1
,
justifyContent
:
"
center
"
,
alignItems
:
"
center
"
,
},
text
:
{
fontSize
:
24
,
fontWeight
:
"
bold
"
,
},
});
emma-frontend/package-lock.json
View file @
53a2c0c0
...
...
@@ -15,13 +15,18 @@
"@react-navigation/native"
:
"^6.1.6"
,
"@react-navigation/stack"
:
"^6.3.16"
,
"expo"
:
"~48.0.15"
,
"expo-crypto"
:
"~12.2.1"
,
"expo-status-bar"
:
"~1.4.4"
,
"react"
:
"18.2.0"
,
"react-native"
:
"0.71.8"
,
"react-native-base64"
:
"^0.2.1"
,
"react-native-crypto-js"
:
"^1.0.0"
,
"react-native-datepicker"
:
"^1.7.2"
,
"react-native-render-html"
:
"^6.3.4"
,
"react-native-rsa-native"
:
"^2.0.5"
,
"react-native-simple-radio-button"
:
"^2.7.4"
,
"react-native-toast-message"
:
"^2.1.6"
"react-native-toast-message"
:
"^2.1.6"
,
"react-native-webview"
:
"11.26.0"
},
"devDependencies"
:
{
"@babel/core"
:
"^7.20.0"
...
...
@@ -3381,6 +3386,53 @@
"resolved"
:
"https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz"
,
"integrity"
:
"sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
},
"node_modules/@jsamr/counter-style"
:
{
"version"
:
"2.0.2"
,
"resolved"
:
"https://registry.npmjs.org/@jsamr/counter-style/-/counter-style-2.0.2.tgz"
,
"integrity"
:
"sha512-2mXudGVtSzVxWEA7B9jZLKjoXUeUFYDDtFrQoC0IFX9/Dszz4t1vZOmafi3JSw/FxD+udMQ+4TAFR8Qs0J3URQ=="
},
"node_modules/@jsamr/react-native-li"
:
{
"version"
:
"2.3.1"
,
"resolved"
:
"https://registry.npmjs.org/@jsamr/react-native-li/-/react-native-li-2.3.1.tgz"
,
"integrity"
:
"sha512-Qbo4NEj48SQ4k8FZJHFE2fgZDKTWaUGmVxcIQh3msg5JezLdTMMHuRRDYctfdHI6L0FZGObmEv3haWbIvmol8w=="
,
"peerDependencies"
:
{
"@jsamr/counter-style"
:
"^1.0.0 || ^2.0.0"
,
"react"
:
"*"
,
"react-native"
:
"*"
}
},
"node_modules/@native-html/css-processor"
:
{
"version"
:
"1.11.0"
,
"resolved"
:
"https://registry.npmjs.org/@native-html/css-processor/-/css-processor-1.11.0.tgz"
,
"integrity"
:
"sha512-NnhBEbJX5M2gBGltPKOetiLlKhNf3OHdRafc8//e2ZQxXN8JaSW/Hy8cm94pnIckQxwaMKxrtaNT3x4ZcffoNQ=="
,
"dependencies"
:
{
"css-to-react-native"
:
"^3.0.0"
,
"csstype"
:
"^3.0.8"
},
"peerDependencies"
:
{
"@types/react"
:
"*"
,
"@types/react-native"
:
"*"
}
},
"node_modules/@native-html/transient-render-engine"
:
{
"version"
:
"11.2.3"
,
"resolved"
:
"https://registry.npmjs.org/@native-html/transient-render-engine/-/transient-render-engine-11.2.3.tgz"
,
"integrity"
:
"sha512-zXwgA3gPUEmFs3I3syfnvDvS6WiUHXEE6jY09OBzK+trq7wkweOSFWIoyXiGkbXrozGYG0KY90YgPyr8Tg8Uyg=="
,
"dependencies"
:
{
"@native-html/css-processor"
:
"1.11.0"
,
"@types/ramda"
:
"^0.27.44"
,
"csstype"
:
"^3.0.9"
,
"domelementtype"
:
"^2.2.0"
,
"domhandler"
:
"^4.2.2"
,
"domutils"
:
"^2.8.0"
,
"htmlparser2"
:
"^7.1.2"
,
"ramda"
:
"^0.27.2"
},
"peerDependencies"
:
{
"@types/react-native"
:
"*"
,
"react-native"
:
"^*"
}
},
"node_modules/@nodelib/fs.scandir"
:
{
"version"
:
"2.1.5"
,
"resolved"
:
"https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz"
,
...
...
@@ -4676,6 +4728,20 @@
"resolved"
:
"https://registry.npmjs.org/@react-native/polyfills/-/polyfills-2.0.0.tgz"
,
"integrity"
:
"sha512-K0aGNn1TjalKj+65D7ycc1//H9roAQ51GJVk5ZJQFb2teECGmzd86bYDC0aYdbRf7gtovescq4Zt6FR0tgXiHQ=="
},
"node_modules/@react-native/virtualized-lists"
:
{
"version"
:
"0.72.4"
,
"resolved"
:
"https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.72.4.tgz"
,
"integrity"
:
"sha512-2t8WBVACkKEadtsiGYJaYTix575J/5VQJyqnyL7iDIsd3iG7ODjfMDsTGsVyAA2Av/xeVIuVQRUX0ZzV3cucug=="
,
"peer"
:
true
,
"dependencies"
:
{
"invariant"
:
"^2.2.4"
,
"nullthrows"
:
"^1.1.1"
},
"peerDependencies"
:
{
"react-native"
:
"*"
,
"react-test-renderer"
:
"18.2.0"
}
},
"node_modules/@react-navigation/core"
:
{
"version"
:
"6.4.8"
,
"resolved"
:
"https://registry.npmjs.org/@react-navigation/core/-/core-6.4.8.tgz"
,
...
...
@@ -4870,11 +4936,57 @@
"resolved"
:
"https://registry.npmjs.org/@types/node/-/node-18.16.3.tgz"
,
"integrity"
:
"sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q=="
},
"node_modules/@types/prop-types"
:
{
"version"
:
"15.7.5"
,
"resolved"
:
"https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz"
,
"integrity"
:
"sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w=="
,
"peer"
:
true
},
"node_modules/@types/ramda"
:
{
"version"
:
"0.27.66"
,
"resolved"
:
"https://registry.npmjs.org/@types/ramda/-/ramda-0.27.66.tgz"
,
"integrity"
:
"sha512-i2YW+E2U6NfMt3dp0RxNcejox+bxJUNDjB7BpYuRuoHIzv5juPHkJkNgcUOu+YSQEmaWu8cnAo/8r63C0NnuVA=="
,
"dependencies"
:
{
"ts-toolbelt"
:
"^6.15.1"
}
},
"node_modules/@types/react"
:
{
"version"
:
"18.2.6"
,
"resolved"
:
"https://registry.npmjs.org/@types/react/-/react-18.2.6.tgz"
,
"integrity"
:
"sha512-wRZClXn//zxCFW+ye/D2qY65UsYP1Fpex2YXorHc8awoNamkMZSvBxwxdYVInsHOZZd2Ppq8isnSzJL5Mpf8OA=="
,
"peer"
:
true
,
"dependencies"
:
{
"@types/prop-types"
:
"*"
,
"@types/scheduler"
:
"*"
,
"csstype"
:
"^3.0.2"
}
},
"node_modules/@types/react-native"
:
{
"version"
:
"0.72.0"
,
"resolved"
:
"https://registry.npmjs.org/@types/react-native/-/react-native-0.72.0.tgz"
,
"integrity"
:
"sha512-g1PJXUQ0SnYTimfTeN9dRqj8VfzvgJjt/eakEH7+tlm/ZiEPiL9xCool4iKmqalthwtM0/BkGhjwrKnJyg1JDA=="
,
"peer"
:
true
,
"dependencies"
:
{
"@react-native/virtualized-lists"
:
"^0.72.4"
,
"@types/react"
:
"*"
}
},
"node_modules/@types/scheduler"
:
{
"version"
:
"0.16.3"
,
"resolved"
:
"https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz"
,
"integrity"
:
"sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ=="
,
"peer"
:
true
},
"node_modules/@types/stack-utils"
:
{
"version"
:
"2.0.1"
,
"resolved"
:
"https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz"
,
"integrity"
:
"sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
},
"node_modules/@types/urijs"
:
{
"version"
:
"1.19.19"
,
"resolved"
:
"https://registry.npmjs.org/@types/urijs/-/urijs-1.19.19.tgz"
,
"integrity"
:
"sha512-FDJNkyhmKLw7uEvTxx5tSXfPeQpO0iy73Ry+PmYZJvQy0QIWX8a7kJ4kLWRf+EbTPJEPDSgPXHaM7pzr5lmvCg=="
},
"node_modules/@types/yargs"
:
{
"version"
:
"15.0.15"
,
"resolved"
:
"https://registry.npmjs.org/@types/yargs/-/yargs-15.0.15.tgz"
,
...
...
@@ -5700,6 +5812,14 @@
"url"
:
"https://github.com/sponsors/sindresorhus"
}
},
"node_modules/camelize"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz"
,
"integrity"
:
"sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ=="
,
"funding"
:
{
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/caniuse-lite"
:
{
"version"
:
"1.0.30001482"
,
"resolved"
:
"https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001482.tgz"
,
...
...
@@ -5732,6 +5852,24 @@
"node"
:
">=4"
}
},
"node_modules/character-entities-html4"
:
{
"version"
:
"1.1.4"
,
"resolved"
:
"https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.4.tgz"
,
"integrity"
:
"sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g=="
,
"funding"
:
{
"type"
:
"github"
,
"url"
:
"https://github.com/sponsors/wooorm"
}
},
"node_modules/character-entities-legacy"
:
{
"version"
:
"1.1.4"
,
"resolved"
:
"https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz"
,
"integrity"
:
"sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA=="
,
"funding"
:
{
"type"
:
"github"
,
"url"
:
"https://github.com/sponsors/wooorm"
}
},
"node_modules/charenc"
:
{
"version"
:
"0.0.2"
,
"resolved"
:
"https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz"
,
...
...
@@ -6277,6 +6415,29 @@
"node"
:
">=8"
}
},
"node_modules/css-color-keywords"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz"
,
"integrity"
:
"sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg=="
,
"engines"
:
{
"node"
:
">=4"
}
},
"node_modules/css-to-react-native"
:
{
"version"
:
"3.2.0"
,
"resolved"
:
"https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz"
,
"integrity"
:
"sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ=="
,
"dependencies"
:
{
"camelize"
:
"^1.0.0"
,
"css-color-keywords"
:
"^1.0.0"
,
"postcss-value-parser"
:
"^4.0.2"
}
},
"node_modules/csstype"
:
{
"version"
:
"3.1.2"
,
"resolved"
:
"https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz"
,
"integrity"
:
"sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
},
"node_modules/dag-map"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/dag-map/-/dag-map-1.0.2.tgz"
,
...
...
@@ -6472,6 +6633,57 @@
"node"
:
">=8"
}
},
"node_modules/dom-serializer"
:
{
"version"
:
"1.4.1"
,
"resolved"
:
"https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz"
,
"integrity"
:
"sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag=="
,
"dependencies"
:
{
"domelementtype"
:
"^2.0.1"
,
"domhandler"
:
"^4.2.0"
,
"entities"
:
"^2.0.0"
},
"funding"
:
{
"url"
:
"https://github.com/cheeriojs/dom-serializer?sponsor=1"
}
},
"node_modules/domelementtype"
:
{
"version"
:
"2.3.0"
,
"resolved"
:
"https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz"
,
"integrity"
:
"sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="
,
"funding"
:
[
{
"type"
:
"github"
,
"url"
:
"https://github.com/sponsors/fb55"
}
]
},
"node_modules/domhandler"
:
{
"version"
:
"4.3.1"
,
"resolved"
:
"https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz"
,
"integrity"
:
"sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ=="
,
"dependencies"
:
{
"domelementtype"
:
"^2.2.0"
},
"engines"
:
{
"node"
:
">= 4"
},
"funding"
:
{
"url"
:
"https://github.com/fb55/domhandler?sponsor=1"
}
},
"node_modules/domutils"
:
{
"version"
:
"2.8.0"
,
"resolved"
:
"https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz"
,
"integrity"
:
"sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A=="
,
"dependencies"
:
{
"dom-serializer"
:
"^1.0.1"
,
"domelementtype"
:
"^2.2.0"
,
"domhandler"
:
"^4.2.0"
},
"funding"
:
{
"url"
:
"https://github.com/fb55/domutils?sponsor=1"
}
},
"node_modules/ee-first"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
,
...
...
@@ -6503,6 +6715,14 @@
"once"
:
"^1.4.0"
}
},
"node_modules/entities"
:
{
"version"
:
"2.2.0"
,
"resolved"
:
"https://registry.npmjs.org/entities/-/entities-2.2.0.tgz"
,
"integrity"
:
"sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A=="
,
"funding"
:
{
"url"
:
"https://github.com/fb55/entities?sponsor=1"
}
},
"node_modules/env-editor"
:
{
"version"
:
"0.4.2"
,
"resolved"
:
"https://registry.npmjs.org/env-editor/-/env-editor-0.4.2.tgz"
,
...
...
@@ -6825,6 +7045,17 @@
"expo"
:
"*"
}
},
"node_modules/expo-crypto"
:
{
"version"
:
"12.2.2"
,
"resolved"
:
"https://registry.npmjs.org/expo-crypto/-/expo-crypto-12.2.2.tgz"
,
"integrity"
:
"sha512-83SZju/l0UL4n+Dgt+T1csiySa0gwCeE6BKKHzlO+4lJ6B8xXZ5ypu97ttWATBsqcpF/bj1RmYPbfbKsZ+4ixA=="
,
"dependencies"
:
{
"base64-js"
:
"^1.3.0"
},
"peerDependencies"
:
{
"expo"
:
"*"
}
},
"node_modules/expo-file-system"
:
{
"version"
:
"15.2.2"
,
"resolved"
:
"https://registry.npmjs.org/expo-file-system/-/expo-file-system-15.2.2.tgz"
,
...
...
@@ -7664,6 +7895,35 @@
"resolved"
:
"https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"
,
"integrity"
:
"sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
},
"node_modules/htmlparser2"
:
{
"version"
:
"7.2.0"
,
"resolved"
:
"https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz"
,
"integrity"
:
"sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog=="
,
"funding"
:
[
"https://github.com/fb55/htmlparser2?sponsor=1"
,
{
"type"
:
"github"
,
"url"
:
"https://github.com/sponsors/fb55"
}
],
"dependencies"
:
{
"domelementtype"
:
"^2.0.1"
,
"domhandler"
:
"^4.2.2"
,
"domutils"
:
"^2.8.0"
,
"entities"
:
"^3.0.1"
}
},
"node_modules/htmlparser2/node_modules/entities"
:
{
"version"
:
"3.0.1"
,
"resolved"
:
"https://registry.npmjs.org/entities/-/entities-3.0.1.tgz"
,
"integrity"
:
"sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q=="
,
"engines"
:
{
"node"
:
">=0.12"
},
"funding"
:
{
"url"
:
"https://github.com/fb55/entities?sponsor=1"
}
},
"node_modules/http-errors"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz"
,
...
...
@@ -10966,6 +11226,11 @@
"node"
:
">=0.10.0"
}
},
"node_modules/postcss-value-parser"
:
{
"version"
:
"4.2.0"
,
"resolved"
:
"https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz"
,
"integrity"
:
"sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
},
"node_modules/pretty-bytes"
:
{
"version"
:
"5.6.0"
,
"resolved"
:
"https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz"
,
...
...
@@ -11146,6 +11411,11 @@
}
]
},
"node_modules/ramda"
:
{
"version"
:
"0.27.2"
,
"resolved"
:
"https://registry.npmjs.org/ramda/-/ramda-0.27.2.tgz"
,
"integrity"
:
"sha512-SbiLPU40JuJniHexQSAgad32hfwd+DRUdwF2PlVuI5RZD0/vahUco7R8vD86J/tcEKKF9vZrUVwgtmGCqlCKyA=="
},
"node_modules/range-parser"
:
{
"version"
:
"1.2.1"
,
"resolved"
:
"https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz"
,
...
...
@@ -11289,6 +11559,11 @@
"react"
:
"18.2.0"
}
},
"node_modules/react-native-base64"
:
{
"version"
:
"0.2.1"
,
"resolved"
:
"https://registry.npmjs.org/react-native-base64/-/react-native-base64-0.2.1.tgz"
,
"integrity"
:
"sha512-eHgt/MA8y5ZF0aHfZ1aTPcIkDWxza9AaEk4GcpIX+ZYfZ04RcaNahO+527KR7J44/mD3efYfM23O2C1N44ByWA=="
},
"node_modules/react-native-codegen"
:
{
"version"
:
"0.71.5"
,
"resolved"
:
"https://registry.npmjs.org/react-native-codegen/-/react-native-codegen-0.71.5.tgz"
,
...
...
@@ -11363,6 +11638,31 @@
"integrity"
:
"sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="
,
"peer"
:
true
},
"node_modules/react-native-render-html"
:
{
"version"
:
"6.3.4"
,
"resolved"
:
"https://registry.npmjs.org/react-native-render-html/-/react-native-render-html-6.3.4.tgz"
,
"integrity"
:
"sha512-H2jSMzZjidE+Wo3qCWPUMU1nm98Vs2SGCvQCz/i6xf0P3Y9uVtG/b0sDbG/cYFir2mSYBYCIlS1Dv0WC1LjYig=="
,
"dependencies"
:
{
"@jsamr/counter-style"
:
"^2.0.1"
,
"@jsamr/react-native-li"
:
"^2.3.0"
,
"@native-html/transient-render-engine"
:
"11.2.3"
,
"@types/ramda"
:
"^0.27.40"
,
"@types/urijs"
:
"^1.19.15"
,
"prop-types"
:
"^15.5.7"
,
"ramda"
:
"^0.27.2"
,
"stringify-entities"
:
"^3.1.0"
,
"urijs"
:
"^1.19.6"
},
"peerDependencies"
:
{
"react"
:
"*"
,
"react-native"
:
"*"
}
},
"node_modules/react-native-rsa-native"
:
{
"version"
:
"2.0.5"
,
"resolved"
:
"https://registry.npmjs.org/react-native-rsa-native/-/react-native-rsa-native-2.0.5.tgz"
,
"integrity"
:
"sha512-gwwvFSwGW5WKrpDyBQ/eTf1UrVABeAvMcT4YWemzPSUo6aHZs1kbBm2rXmwN5okhUzJsry5zjjz/qdx5GXRugQ=="
},
"node_modules/react-native-safe-area-context"
:
{
"version"
:
"4.5.2"
,
"resolved"
:
"https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.5.2.tgz"
,
...
...
@@ -11401,6 +11701,27 @@
"react-native"
:
"*"
}
},
"node_modules/react-native-webview"
:
{
"version"
:
"11.26.0"
,
"resolved"
:
"https://registry.npmjs.org/react-native-webview/-/react-native-webview-11.26.0.tgz"
,
"integrity"
:
"sha512-4T4CKRm8xlaQDz9h/bCMPGAvtkesrhkRWqCX9FDJEzBToaVUIsV0ZOqtC4w/JSnCtFKKYiaC1ReJtCGv+4mFeQ=="
,
"dependencies"
:
{
"escape-string-regexp"
:
"2.0.0"
,
"invariant"
:
"2.2.4"
},
"peerDependencies"
:
{
"react"
:
"*"
,
"react-native"
:
"*"
}
},
"node_modules/react-native-webview/node_modules/escape-string-regexp"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz"
,
"integrity"
:
"sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="
,
"engines"
:
{
"node"
:
">=8"
}
},
"node_modules/react-native/node_modules/promise"
:
{
"version"
:
"8.3.0"
,
"resolved"
:
"https://registry.npmjs.org/promise/-/promise-8.3.0.tgz"
,
...
...
@@ -11437,6 +11758,26 @@
"react"
:
"^16.0.0 || ^17.0.0 || ^18.0.0"
}
},
"node_modules/react-test-renderer"
:
{
"version"
:
"18.2.0"
,
"resolved"
:
"https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-18.2.0.tgz"
,
"integrity"
:
"sha512-JWD+aQ0lh2gvh4NM3bBM42Kx+XybOxCpgYK7F8ugAlpaTSnWsX+39Z4XkOykGZAHrjwwTZT3x3KxswVWxHPUqA=="
,
"peer"
:
true
,
"dependencies"
:
{
"react-is"
:
"^18.2.0"
,
"react-shallow-renderer"
:
"^16.15.0"
,
"scheduler"
:
"^0.23.0"
},
"peerDependencies"
:
{
"react"
:
"^18.2.0"
}
},
"node_modules/react-test-renderer/node_modules/react-is"
:
{
"version"
:
"18.2.0"
,
"resolved"
:
"https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz"
,
"integrity"
:
"sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
,
"peer"
:
true
},
"node_modules/readable-stream"
:
{
"version"
:
"2.3.8"
,
"resolved"
:
"https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz"
,
...
...
@@ -12489,6 +12830,20 @@
"node"
:
">=8"
}
},
"node_modules/stringify-entities"
:
{
"version"
:
"3.1.0"
,
"resolved"
:
"https://registry.npmjs.org/stringify-entities/-/stringify-entities-3.1.0.tgz"
,
"integrity"
:
"sha512-3FP+jGMmMV/ffZs86MoghGqAoqXAdxLrJP4GUdrDN1aIScYih5tuIO3eF4To5AJZ79KDZ8Fpdy7QJnK8SsL1Vg=="
,
"dependencies"
:
{
"character-entities-html4"
:
"^1.0.0"
,
"character-entities-legacy"
:
"^1.0.0"
,
"xtend"
:
"^4.0.0"
},
"funding"
:
{
"type"
:
"github"
,
"url"
:
"https://github.com/sponsors/wooorm"
}
},
"node_modules/strip-ansi"
:
{
"version"
:
"5.2.0"
,
"resolved"
:
"https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz"
,
...
...
@@ -12931,6 +13286,11 @@
"resolved"
:
"https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz"
,
"integrity"
:
"sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="
},
"node_modules/ts-toolbelt"
:
{
"version"
:
"6.15.5"
,
"resolved"
:
"https://registry.npmjs.org/ts-toolbelt/-/ts-toolbelt-6.15.5.tgz"
,
"integrity"
:
"sha512-FZIXf1ksVyLcfr7M317jbB67XFJhOO1YqdTcuGaq9q5jLUoTikukZ+98TPjKiP2jC5CgmYdWWYs0s2nLSU0/1A=="
},
"node_modules/tslib"
:
{
"version"
:
"2.5.0"
,
"resolved"
:
"https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz"
,
...
...
@@ -13188,6 +13548,11 @@
"browserslist"
:
">= 4.21.0"
}
},
"node_modules/urijs"
:
{
"version"
:
"1.19.11"
,
"resolved"
:
"https://registry.npmjs.org/urijs/-/urijs-1.19.11.tgz"
,
"integrity"
:
"sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ=="
},
"node_modules/urix"
:
{
"version"
:
"0.1.0"
,
"resolved"
:
"https://registry.npmjs.org/urix/-/urix-0.1.0.tgz"
,
...
...
@@ -16029,6 +16394,41 @@
}
}
},
"@jsamr/counter-style"
:
{
"version"
:
"2.0.2"
,
"resolved"
:
"https://registry.npmjs.org/@jsamr/counter-style/-/counter-style-2.0.2.tgz"
,
"integrity"
:
"sha512-2mXudGVtSzVxWEA7B9jZLKjoXUeUFYDDtFrQoC0IFX9/Dszz4t1vZOmafi3JSw/FxD+udMQ+4TAFR8Qs0J3URQ=="
},
"@jsamr/react-native-li"
:
{
"version"
:
"2.3.1"
,
"resolved"
:
"https://registry.npmjs.org/@jsamr/react-native-li/-/react-native-li-2.3.1.tgz"
,
"integrity"
:
"sha512-Qbo4NEj48SQ4k8FZJHFE2fgZDKTWaUGmVxcIQh3msg5JezLdTMMHuRRDYctfdHI6L0FZGObmEv3haWbIvmol8w=="
,
"requires"
:
{}
},
"@native-html/css-processor"
:
{
"version"
:
"1.11.0"
,
"resolved"
:
"https://registry.npmjs.org/@native-html/css-processor/-/css-processor-1.11.0.tgz"
,
"integrity"
:
"sha512-NnhBEbJX5M2gBGltPKOetiLlKhNf3OHdRafc8//e2ZQxXN8JaSW/Hy8cm94pnIckQxwaMKxrtaNT3x4ZcffoNQ=="
,
"requires"
:
{
"css-to-react-native"
:
"^3.0.0"
,
"csstype"
:
"^3.0.8"
}
},
"@native-html/transient-render-engine"
:
{
"version"
:
"11.2.3"
,
"resolved"
:
"https://registry.npmjs.org/@native-html/transient-render-engine/-/transient-render-engine-11.2.3.tgz"
,
"integrity"
:
"sha512-zXwgA3gPUEmFs3I3syfnvDvS6WiUHXEE6jY09OBzK+trq7wkweOSFWIoyXiGkbXrozGYG0KY90YgPyr8Tg8Uyg=="
,
"requires"
:
{
"@native-html/css-processor"
:
"1.11.0"
,
"@types/ramda"
:
"^0.27.44"
,
"csstype"
:
"^3.0.9"
,
"domelementtype"
:
"^2.2.0"
,
"domhandler"
:
"^4.2.2"
,
"domutils"
:
"^2.8.0"
,
"htmlparser2"
:
"^7.1.2"
,
"ramda"
:
"^0.27.2"
}
},
"@nodelib/fs.scandir"
:
{
"version"
:
"2.1.5"
,
"resolved"
:
"https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz"
,
...
...
@@ -16984,6 +17384,16 @@
"resolved"
:
"https://registry.npmjs.org/@react-native/polyfills/-/polyfills-2.0.0.tgz"
,
"integrity"
:
"sha512-K0aGNn1TjalKj+65D7ycc1//H9roAQ51GJVk5ZJQFb2teECGmzd86bYDC0aYdbRf7gtovescq4Zt6FR0tgXiHQ=="
},
"@react-native/virtualized-lists"
:
{
"version"
:
"0.72.4"
,
"resolved"
:
"https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.72.4.tgz"
,
"integrity"
:
"sha512-2t8WBVACkKEadtsiGYJaYTix575J/5VQJyqnyL7iDIsd3iG7ODjfMDsTGsVyAA2Av/xeVIuVQRUX0ZzV3cucug=="
,
"peer"
:
true
,
"requires"
:
{
"invariant"
:
"^2.2.4"
,
"nullthrows"
:
"^1.1.1"
}
},
"@react-navigation/core"
:
{
"version"
:
"6.4.8"
,
"resolved"
:
"https://registry.npmjs.org/@react-navigation/core/-/core-6.4.8.tgz"
,
...
...
@@ -17141,11 +17551,57 @@
"resolved"
:
"https://registry.npmjs.org/@types/node/-/node-18.16.3.tgz"
,
"integrity"
:
"sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q=="
},
"@types/prop-types"
:
{
"version"
:
"15.7.5"
,
"resolved"
:
"https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz"
,
"integrity"
:
"sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w=="
,
"peer"
:
true
},
"@types/ramda"
:
{
"version"
:
"0.27.66"
,
"resolved"
:
"https://registry.npmjs.org/@types/ramda/-/ramda-0.27.66.tgz"
,
"integrity"
:
"sha512-i2YW+E2U6NfMt3dp0RxNcejox+bxJUNDjB7BpYuRuoHIzv5juPHkJkNgcUOu+YSQEmaWu8cnAo/8r63C0NnuVA=="
,
"requires"
:
{
"ts-toolbelt"
:
"^6.15.1"
}
},
"@types/react"
:
{
"version"
:
"18.2.6"
,
"resolved"
:
"https://registry.npmjs.org/@types/react/-/react-18.2.6.tgz"
,
"integrity"
:
"sha512-wRZClXn//zxCFW+ye/D2qY65UsYP1Fpex2YXorHc8awoNamkMZSvBxwxdYVInsHOZZd2Ppq8isnSzJL5Mpf8OA=="
,
"peer"
:
true
,
"requires"
:
{
"@types/prop-types"
:
"*"
,
"@types/scheduler"
:
"*"
,
"csstype"
:
"^3.0.2"
}
},
"@types/react-native"
:
{
"version"
:
"0.72.0"
,
"resolved"
:
"https://registry.npmjs.org/@types/react-native/-/react-native-0.72.0.tgz"
,
"integrity"
:
"sha512-g1PJXUQ0SnYTimfTeN9dRqj8VfzvgJjt/eakEH7+tlm/ZiEPiL9xCool4iKmqalthwtM0/BkGhjwrKnJyg1JDA=="
,
"peer"
:
true
,
"requires"
:
{
"@react-native/virtualized-lists"
:
"^0.72.4"
,
"@types/react"
:
"*"
}
},
"@types/scheduler"
:
{
"version"
:
"0.16.3"
,
"resolved"
:
"https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz"
,
"integrity"
:
"sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ=="
,
"peer"
:
true
},
"@types/stack-utils"
:
{
"version"
:
"2.0.1"
,
"resolved"
:
"https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz"
,
"integrity"
:
"sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
},
"@types/urijs"
:
{
"version"
:
"1.19.19"
,
"resolved"
:
"https://registry.npmjs.org/@types/urijs/-/urijs-1.19.19.tgz"
,
"integrity"
:
"sha512-FDJNkyhmKLw7uEvTxx5tSXfPeQpO0iy73Ry+PmYZJvQy0QIWX8a7kJ4kLWRf+EbTPJEPDSgPXHaM7pzr5lmvCg=="
},
"@types/yargs"
:
{
"version"
:
"15.0.15"
,
"resolved"
:
"https://registry.npmjs.org/@types/yargs/-/yargs-15.0.15.tgz"
,
...
...
@@ -17779,6 +18235,11 @@
"resolved"
:
"https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz"
,
"integrity"
:
"sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA=="
},
"camelize"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz"
,
"integrity"
:
"sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ=="
},
"caniuse-lite"
:
{
"version"
:
"1.0.30001482"
,
"resolved"
:
"https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001482.tgz"
,
...
...
@@ -17794,6 +18255,16 @@
"supports-color"
:
"^5.3.0"
}
},
"character-entities-html4"
:
{
"version"
:
"1.1.4"
,
"resolved"
:
"https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.4.tgz"
,
"integrity"
:
"sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g=="
},
"character-entities-legacy"
:
{
"version"
:
"1.1.4"
,
"resolved"
:
"https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz"
,
"integrity"
:
"sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA=="
},
"charenc"
:
{
"version"
:
"0.0.2"
,
"resolved"
:
"https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz"
,
...
...
@@ -18222,6 +18693,26 @@
"resolved"
:
"https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz"
,
"integrity"
:
"sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA=="
},
"css-color-keywords"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz"
,
"integrity"
:
"sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg=="
},
"css-to-react-native"
:
{
"version"
:
"3.2.0"
,
"resolved"
:
"https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz"
,
"integrity"
:
"sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ=="
,
"requires"
:
{
"camelize"
:
"^1.0.0"
,
"css-color-keywords"
:
"^1.0.0"
,
"postcss-value-parser"
:
"^4.0.2"
}
},
"csstype"
:
{
"version"
:
"3.1.2"
,
"resolved"
:
"https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz"
,
"integrity"
:
"sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
},
"dag-map"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/dag-map/-/dag-map-1.0.2.tgz"
,
...
...
@@ -18361,6 +18852,39 @@
"path-type"
:
"^4.0.0"
}
},
"dom-serializer"
:
{
"version"
:
"1.4.1"
,
"resolved"
:
"https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz"
,
"integrity"
:
"sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag=="
,
"requires"
:
{
"domelementtype"
:
"^2.0.1"
,
"domhandler"
:
"^4.2.0"
,
"entities"
:
"^2.0.0"
}
},
"domelementtype"
:
{
"version"
:
"2.3.0"
,
"resolved"
:
"https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz"
,
"integrity"
:
"sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="
},
"domhandler"
:
{
"version"
:
"4.3.1"
,
"resolved"
:
"https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz"
,
"integrity"
:
"sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ=="
,
"requires"
:
{
"domelementtype"
:
"^2.2.0"
}
},
"domutils"
:
{
"version"
:
"2.8.0"
,
"resolved"
:
"https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz"
,
"integrity"
:
"sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A=="
,
"requires"
:
{
"dom-serializer"
:
"^1.0.1"
,
"domelementtype"
:
"^2.2.0"
,
"domhandler"
:
"^4.2.0"
}
},
"ee-first"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
,
...
...
@@ -18389,6 +18913,11 @@
"once"
:
"^1.4.0"
}
},
"entities"
:
{
"version"
:
"2.2.0"
,
"resolved"
:
"https://registry.npmjs.org/entities/-/entities-2.2.0.tgz"
,
"integrity"
:
"sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A=="
},
"env-editor"
:
{
"version"
:
"0.4.2"
,
"resolved"
:
"https://registry.npmjs.org/env-editor/-/env-editor-0.4.2.tgz"
,
...
...
@@ -18642,6 +19171,14 @@
"uuid"
:
"^3.3.2"
}
},
"expo-crypto"
:
{
"version"
:
"12.2.2"
,
"resolved"
:
"https://registry.npmjs.org/expo-crypto/-/expo-crypto-12.2.2.tgz"
,
"integrity"
:
"sha512-83SZju/l0UL4n+Dgt+T1csiySa0gwCeE6BKKHzlO+4lJ6B8xXZ5ypu97ttWATBsqcpF/bj1RmYPbfbKsZ+4ixA=="
,
"requires"
:
{
"base64-js"
:
"^1.3.0"
}
},
"expo-file-system"
:
{
"version"
:
"15.2.2"
,
"resolved"
:
"https://registry.npmjs.org/expo-file-system/-/expo-file-system-15.2.2.tgz"
,
...
...
@@ -19283,6 +19820,24 @@
}
}
},
"htmlparser2"
:
{
"version"
:
"7.2.0"
,
"resolved"
:
"https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz"
,
"integrity"
:
"sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog=="
,
"requires"
:
{
"domelementtype"
:
"^2.0.1"
,
"domhandler"
:
"^4.2.2"
,
"domutils"
:
"^2.8.0"
,
"entities"
:
"^3.0.1"
},
"dependencies"
:
{
"entities"
:
{
"version"
:
"3.0.1"
,
"resolved"
:
"https://registry.npmjs.org/entities/-/entities-3.0.1.tgz"
,
"integrity"
:
"sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q=="
}
}
},
"http-errors"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz"
,
...
...
@@ -21784,6 +22339,11 @@
"resolved"
:
"https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz"
,
"integrity"
:
"sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg=="
},
"postcss-value-parser"
:
{
"version"
:
"4.2.0"
,
"resolved"
:
"https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz"
,
"integrity"
:
"sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
},
"pretty-bytes"
:
{
"version"
:
"5.6.0"
,
"resolved"
:
"https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz"
,
...
...
@@ -21915,6 +22475,11 @@
"resolved"
:
"https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz"
,
"integrity"
:
"sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
},
"ramda"
:
{
"version"
:
"0.27.2"
,
"resolved"
:
"https://registry.npmjs.org/ramda/-/ramda-0.27.2.tgz"
,
"integrity"
:
"sha512-SbiLPU40JuJniHexQSAgad32hfwd+DRUdwF2PlVuI5RZD0/vahUco7R8vD86J/tcEKKF9vZrUVwgtmGCqlCKyA=="
},
"range-parser"
:
{
"version"
:
"1.2.1"
,
"resolved"
:
"https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz"
,
...
...
@@ -22038,6 +22603,11 @@
}
}
},
"react-native-base64"
:
{
"version"
:
"0.2.1"
,
"resolved"
:
"https://registry.npmjs.org/react-native-base64/-/react-native-base64-0.2.1.tgz"
,
"integrity"
:
"sha512-eHgt/MA8y5ZF0aHfZ1aTPcIkDWxza9AaEk4GcpIX+ZYfZ04RcaNahO+527KR7J44/mD3efYfM23O2C1N44ByWA=="
},
"react-native-codegen"
:
{
"version"
:
"0.71.5"
,
"resolved"
:
"https://registry.npmjs.org/react-native-codegen/-/react-native-codegen-0.71.5.tgz"
,
...
...
@@ -22100,6 +22670,27 @@
}
}
},
"react-native-render-html"
:
{
"version"
:
"6.3.4"
,
"resolved"
:
"https://registry.npmjs.org/react-native-render-html/-/react-native-render-html-6.3.4.tgz"
,
"integrity"
:
"sha512-H2jSMzZjidE+Wo3qCWPUMU1nm98Vs2SGCvQCz/i6xf0P3Y9uVtG/b0sDbG/cYFir2mSYBYCIlS1Dv0WC1LjYig=="
,
"requires"
:
{
"@jsamr/counter-style"
:
"^2.0.1"
,
"@jsamr/react-native-li"
:
"^2.3.0"
,
"@native-html/transient-render-engine"
:
"11.2.3"
,
"@types/ramda"
:
"^0.27.40"
,
"@types/urijs"
:
"^1.19.15"
,
"prop-types"
:
"^15.5.7"
,
"ramda"
:
"^0.27.2"
,
"stringify-entities"
:
"^3.1.0"
,
"urijs"
:
"^1.19.6"
}
},
"react-native-rsa-native"
:
{
"version"
:
"2.0.5"
,
"resolved"
:
"https://registry.npmjs.org/react-native-rsa-native/-/react-native-rsa-native-2.0.5.tgz"
,
"integrity"
:
"sha512-gwwvFSwGW5WKrpDyBQ/eTf1UrVABeAvMcT4YWemzPSUo6aHZs1kbBm2rXmwN5okhUzJsry5zjjz/qdx5GXRugQ=="
},
"react-native-safe-area-context"
:
{
"version"
:
"4.5.2"
,
"resolved"
:
"https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.5.2.tgz"
,
...
...
@@ -22128,6 +22719,22 @@
"integrity"
:
"sha512-VctXuq20vmRa9AE13acaNZhrLcS3FaBS2zEevS3+vhBsnVZYG0FIlWIis9tVnpnNxUb3ART+BWtwQjzSttXTng=="
,
"requires"
:
{}
},
"react-native-webview"
:
{
"version"
:
"11.26.0"
,
"resolved"
:
"https://registry.npmjs.org/react-native-webview/-/react-native-webview-11.26.0.tgz"
,
"integrity"
:
"sha512-4T4CKRm8xlaQDz9h/bCMPGAvtkesrhkRWqCX9FDJEzBToaVUIsV0ZOqtC4w/JSnCtFKKYiaC1ReJtCGv+4mFeQ=="
,
"requires"
:
{
"escape-string-regexp"
:
"2.0.0"
,
"invariant"
:
"2.2.4"
},
"dependencies"
:
{
"escape-string-regexp"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz"
,
"integrity"
:
"sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="
}
}
},
"react-refresh"
:
{
"version"
:
"0.4.3"
,
"resolved"
:
"https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.3.tgz"
,
...
...
@@ -22142,6 +22749,25 @@
"react-is"
:
"^16.12.0 || ^17.0.0 || ^18.0.0"
}
},
"react-test-renderer"
:
{
"version"
:
"18.2.0"
,
"resolved"
:
"https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-18.2.0.tgz"
,
"integrity"
:
"sha512-JWD+aQ0lh2gvh4NM3bBM42Kx+XybOxCpgYK7F8ugAlpaTSnWsX+39Z4XkOykGZAHrjwwTZT3x3KxswVWxHPUqA=="
,
"peer"
:
true
,
"requires"
:
{
"react-is"
:
"^18.2.0"
,
"react-shallow-renderer"
:
"^16.15.0"
,
"scheduler"
:
"^0.23.0"
},
"dependencies"
:
{
"react-is"
:
{
"version"
:
"18.2.0"
,
"resolved"
:
"https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz"
,
"integrity"
:
"sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
,
"peer"
:
true
}
}
},
"readable-stream"
:
{
"version"
:
"2.3.8"
,
"resolved"
:
"https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz"
,
...
...
@@ -22982,6 +23608,16 @@
}
}
},
"stringify-entities"
:
{
"version"
:
"3.1.0"
,
"resolved"
:
"https://registry.npmjs.org/stringify-entities/-/stringify-entities-3.1.0.tgz"
,
"integrity"
:
"sha512-3FP+jGMmMV/ffZs86MoghGqAoqXAdxLrJP4GUdrDN1aIScYih5tuIO3eF4To5AJZ79KDZ8Fpdy7QJnK8SsL1Vg=="
,
"requires"
:
{
"character-entities-html4"
:
"^1.0.0"
,
"character-entities-legacy"
:
"^1.0.0"
,
"xtend"
:
"^4.0.0"
}
},
"strip-ansi"
:
{
"version"
:
"5.2.0"
,
"resolved"
:
"https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz"
,
...
...
@@ -23312,6 +23948,11 @@
"resolved"
:
"https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz"
,
"integrity"
:
"sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="
},
"ts-toolbelt"
:
{
"version"
:
"6.15.5"
,
"resolved"
:
"https://registry.npmjs.org/ts-toolbelt/-/ts-toolbelt-6.15.5.tgz"
,
"integrity"
:
"sha512-FZIXf1ksVyLcfr7M317jbB67XFJhOO1YqdTcuGaq9q5jLUoTikukZ+98TPjKiP2jC5CgmYdWWYs0s2nLSU0/1A=="
},
"tslib"
:
{
"version"
:
"2.5.0"
,
"resolved"
:
"https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz"
,
...
...
@@ -23483,6 +24124,11 @@
"picocolors"
:
"^1.0.0"
}
},
"urijs"
:
{
"version"
:
"1.19.11"
,
"resolved"
:
"https://registry.npmjs.org/urijs/-/urijs-1.19.11.tgz"
,
"integrity"
:
"sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ=="
},
"urix"
:
{
"version"
:
"0.1.0"
,
"resolved"
:
"https://registry.npmjs.org/urix/-/urix-0.1.0.tgz"
,
...
...
emma-frontend/package.json
View file @
53a2c0c0
...
...
@@ -16,13 +16,18 @@
"@react-navigation/native"
:
"^6.1.6"
,
"@react-navigation/stack"
:
"^6.3.16"
,
"expo"
:
"~48.0.15"
,
"expo-crypto"
:
"~12.2.1"
,
"expo-status-bar"
:
"~1.4.4"
,
"react"
:
"18.2.0"
,
"react-native"
:
"0.71.8"
,
"react-native-base64"
:
"^0.2.1"
,
"react-native-crypto-js"
:
"^1.0.0"
,
"react-native-datepicker"
:
"^1.7.2"
,
"react-native-render-html"
:
"^6.3.4"
,
"react-native-rsa-native"
:
"^2.0.5"
,
"react-native-simple-radio-button"
:
"^2.7.4"
,
"react-native-toast-message"
:
"^2.1.6"
"react-native-toast-message"
:
"^2.1.6"
,
"react-native-webview"
:
"11.26.0"
},
"devDependencies"
:
{
"@babel/core"
:
"^7.20.0"
...
...
emma-frontend/services/decryptByAssetKey.js
0 → 100644
View file @
53a2c0c0
import
CryptoJS
from
"
react-native-crypto-js
"
;
function
DecryptWithAssetKey
(
aesKey
,
encryptedTxt
)
{
console
.
log
(
aesKey
,
encryptedTxt
);
const
key
=
CryptoJS
.
enc
.
Utf8
.
parse
(
aesKey
);
const
options
=
{
mode
:
CryptoJS
.
mode
.
CBC
,
padding
:
CryptoJS
.
pad
.
Pkcs7
,
iv
:
CryptoJS
.
enc
.
Utf8
.
parse
(
aesKey
),
};
const
decryptedBytes
=
CryptoJS
.
AES
.
decrypt
(
encryptedTxt
,
key
,
options
);
const
decryptedTxt
=
decryptedBytes
.
toString
(
CryptoJS
.
enc
.
Utf8
);
console
.
log
(
decryptedTxt
);
return
decryptedTxt
;
}
export
default
DecryptWithAssetKey
;
emma-frontend/services/decryptByRsaKey.js
0 → 100644
View file @
53a2c0c0
import
{
RSA
}
from
"
react-native-rsa-native
"
;
import
{
decode
as
base64Decode
}
from
"
react-native-base64
"
;
async
function
RSADecrypt
(
privateKey
,
encryptedString
)
{
const
encryptedBytes
=
base64Decode
(
encryptedString
);
const
ecnryptedRsaKey
=
base64Decode
(
privateKey
);
console
.
log
(
"
=====================
"
,
ecnryptedRsaKey
);
try
{
const
decryptedData
=
await
RSA
.
decrypt
(
encryptedBytes
,
{
ecnryptedRsaKey
,
});
return
decryptedData
;
}
catch
(
error
)
{
console
.
error
(
"
RSA decryption failed:
"
,
error
);
return
null
;
}
}
export
default
RSADecrypt
;
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment