diff --git a/app/App.tsx b/app/App.tsx index fb9255435..2526e7cb6 100644 --- a/app/App.tsx +++ b/app/App.tsx @@ -4,14 +4,10 @@ import { ScrollView, StatusBar, StyleSheet, - Text, useColorScheme, - View, - Button, NativeModules, DeviceEventEmitter, TextInput, - ActivityIndicator, } from 'react-native'; import { @@ -21,6 +17,26 @@ import { LearnMoreLinks, ReloadInstructions, } from 'react-native/Libraries/NewAppScreen'; +import { + Text, + GluestackUIProvider, + Checkbox, + CheckboxIndicator, + CheckboxIcon, + CheckIcon, + CheckboxLabel, + Input, + InputField, + ButtonText, + ButtonIcon, + Button, + Spinner, + View, + ButtonSpinner, +} from "@gluestack-ui/themed" +import { config } from "@gluestack-ui/config" // Optional if you want to use default theme + + // @ts-ignore import PassportReader from 'react-native-passport-reader'; import {checkInputs, getFirstName} from './utils/checks'; @@ -32,15 +48,25 @@ import { LOCAL_IP, } from '@env'; import {DataHash, PassportData} from './types/passportData'; -import {arraysAreEqual, bytesToBigDecimal, dataHashesObjToArray, formatAndConcatenateDataHashes, formatMrz, splitToWords} from './utils/utils'; +import {arraysAreEqual, bytesToBigDecimal, dataHashesObjToArray, formatAndConcatenateDataHashes, formatDuration, formatMrz, formatProof, splitToWords} from './utils/utils'; import {hash, toUnsignedByte} from './utils/computeEContent'; console.log('DEFAULT_PNUMBER', DEFAULT_PNUMBER); console.log('LOCAL_IP', LOCAL_IP); -const CACHE_DATA_IN_LOCAL_SERVER = true; +const CACHE_DATA_IN_LOCAL_SERVER = false; const SKIP_SCAN = false; +const attributeToPosition = { + issuing_state: [2, 5], + name: [5, 44], + passport_number: [44, 52], + nationality: [54, 57], + date_of_birth: [57, 63], + gender: [64, 65], + expiry_date: [65, 71], +} + function App(): JSX.Element { const isDarkMode = useColorScheme() === 'dark'; const [passportNumber, setPassportNumber] = useState(DEFAULT_PNUMBER ?? ''); @@ -49,9 +75,34 @@ function App(): JSX.Element { const [address, setAddress] = useState(DEFAULT_ADDRESS ?? ''); const [passportData, setPassportData] = useState(null); const [step, setStep] = useState('enterDetails'); - const [result, setResult] = useState(''); + const [testResult, setTestResult] = useState(null); + const [error, setError] = useState(null); + + const [generatingProof, setGeneratingProof] = useState(false); + + const [proofTime, setProofTime] = useState(0); + const [totalTime, setTotalTime] = useState(0); const [proofResult, setProofResult] = useState(''); + const [minting, setMinting] = useState(false); + + const [disclosure, setDisclosure] = useState({ + issuing_state: false, + name: false, + passport_number: false, + nationality: false, + date_of_birth: false, + gender: false, + expiry_date: false, + }); + + const handleDisclosureChange = (field: keyof typeof disclosure) => { + setDisclosure( + {...disclosure, + [field]: !disclosure[field] + }); + }; + const backgroundStyle = { backgroundColor: isDarkMode ? Colors.darker : Colors.lighter, }; @@ -84,7 +135,10 @@ function App(): JSX.Element { async function handleResponse(response: any) { const { mrz, + signatureAlgorithm, modulus, + curveName, + publicKeyQ, dataGroupHashes, eContent, encryptedDigest, @@ -92,14 +146,20 @@ function App(): JSX.Element { const passportData: PassportData = { mrz: mrz.replace(/\n/g, ''), - modulus: modulus, + signatureAlgorithm: signatureAlgorithm, + pubKey: { + modulus: modulus, + curveName: curveName, + publicKeyQ: publicKeyQ, + }, dataGroupHashes: dataHashesObjToArray(JSON.parse(dataGroupHashes)), eContent: JSON.parse(eContent), encryptedDigest: JSON.parse(encryptedDigest), }; console.log('mrz', passportData.mrz); - console.log('modulus', passportData.modulus); + console.log('signatureAlgorithm', passportData.signatureAlgorithm); + console.log('pubKey', passportData.pubKey); console.log('dataGroupHashes', passportData.dataGroupHashes); console.log('eContent', passportData.eContent); console.log('encryptedDigest', passportData.encryptedDigest); @@ -153,6 +213,9 @@ function App(): JSX.Element { return; } + setGeneratingProof(true) + await new Promise(resolve => setTimeout(resolve, 10)); + // 1. TODO check signature to make sure the proof will work // 2. Format all the data as inputs for the circuit @@ -163,11 +226,27 @@ function App(): JSX.Element { passportData.dataGroupHashes as DataHash[], ); - const reveal_bitmap = Array.from({ length: 88 }, (_, i) => (i >= 16 && i <= 22) ? '1' : '0'); + + const reveal_bitmap = Array.from({ length: 88 }, (_) => '0'); + + for(const attribute in disclosure) { + if (disclosure[attribute as keyof typeof disclosure]) { + const [start, end] = attributeToPosition[attribute as keyof typeof attributeToPosition]; + for(let i = start; i <= end; i++) { + reveal_bitmap[i] = '1'; + } + } + } + + if (!passportData.pubKey.modulus) { + console.log('ECDSA not supported for proof right now.'); + setError('ECDSA not supported for proof right now.'); + return; + } const inputs = { mrz: Array.from(formattedMrz).map(byte => String(byte)), - reveal_bitmap: Array.from(reveal_bitmap).map(byte => String(byte)), + reveal_bitmap: reveal_bitmap.map(byte => String(byte)), dataHashes: Array.from(concatenatedDataHashes.map(toUnsignedByte)).map(byte => String(byte)), eContentBytes: Array.from(passportData.eContent.map(toUnsignedByte)).map(byte => String(byte)), signature: splitToWords( @@ -176,7 +255,7 @@ function App(): JSX.Element { BigInt(32) ), pubkey: splitToWords( - BigInt(passportData.modulus), + BigInt(passportData.pubKey.modulus), BigInt(64), BigInt(32) ), @@ -187,35 +266,42 @@ function App(): JSX.Element { const start = Date.now(); NativeModules.RNPassportReader.provePassport(inputs, (err: any, res: any) => { const end = Date.now(); + setGeneratingProof(false) + setStep('proofGenerated'); + if (err) { console.error(err); - setProofResult( - "res:" + err.toString() + ' time elapsed: ' + (end - start) + 'ms', - ); - } else { - console.log(res); - setProofResult( - "res:" + res.toString() + ' time elapsed: ' + (end - start) + 'ms', + setError( + "err: " + err.toString(), ); + return } + console.log("res", res); + const parsedResponse = JSON.parse(res); + console.log('parsedResponse', parsedResponse); + console.log('parsedResponse.duration', parsedResponse.duration); + + const deserializedProof = JSON.parse(parsedResponse.serialized_proof); + console.log('deserializedProof', deserializedProof); + + const proofFormattedForSolidity = formatProof(deserializedProof); + console.log('proofFormattedForSolidity', proofFormattedForSolidity); + + setProofTime(parsedResponse.duration); + setTotalTime(end - start); + + setProofResult(JSON.stringify(proofFormattedForSolidity)); + + // les outputs publics vont être postés on-chain comment ? }); }; const handleMint = () => { + setMinting(true) + // 5. Format the proof and publicInputs as calldata for the verifier contract // 6. Call the verifier contract with the calldata - }; - const callRustLib = async () => { - NativeModules.RNPassportReader.callRustLib((err: any, res: any) => { - if (err) { - console.error(err); - setResult(err.toString()); - } else { - console.log(res); // Should log "5" - setResult(res.toString()); - } - }); }; const proveRust = async () => { @@ -236,91 +322,230 @@ function App(): JSX.Element { }); }; - const handleNative = async () => { - const value = await NativeModules.PassportReader.scanPassport('', '', ''); - console.log(`native tells us ${value}`); - }; - return ( - - - - + + + - {step === 'enterDetails' ? ( - - Enter Your Passport Details - - - - + + ) : null} + {step === 'scanning' ? ( + + Put your phone on your passport + + + ) : null} + {step === 'scanCompleted' && passportData ? ( + + + Hi {getFirstName(passportData.mrz)} + + + + What do you want to disclose ? + + {Object.keys(disclosure).map((key) => { + const keyy = key as keyof typeof disclosure; + const indexes = attributeToPosition[keyy]; + const keyFormatted = keyy.replace(/_/g, ' ').split(' ').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(' '); + const mrzAttribute = passportData.mrz.slice(indexes[0], indexes[1]) + const mrzAttributeFormatted = mrzAttribute.replace(/ + + + {keyFormatted}:{" "} + + + {mrzAttributeFormatted} + + + handleDisclosureChange(keyy)} + size="lg" + aria-label={key} + > + + + + + + ) + })} + + Enter your address or ens + + + + + {generatingProof ? + + : + } + + ) : null} + {step === 'proofGenerated' ? ( + + Zero-knowledge proof generated + + + Proof: + + + {proofResult} + + + + Proof Duration: {formatDuration(proofTime)} + + + Total Duration: {formatDuration(totalTime)} + + + + {generatingProof ? + + : + } + + ) : null} + + + Test functions + + + {testResult && {testResult}} + + + {proofResult && {proofResult}} + {error && {error}} + + + + + ); } @@ -342,17 +567,11 @@ const styles = StyleSheet.create({ fontWeight: '700', }, header: { - fontSize: 24, + fontSize: 22, fontWeight: 'bold', textAlign: 'center', marginTop: 20, }, - input: { - height: 40, - margin: 12, - borderWidth: 1, - padding: 10, - }, }); export default App; diff --git a/app/android/react-native-passport-reader/android/src/main/java/io/tradle/nfc/RNPassportReaderModule.kt b/app/android/react-native-passport-reader/android/src/main/java/io/tradle/nfc/RNPassportReaderModule.kt index 4767a3d3b..637d85de8 100644 --- a/app/android/react-native-passport-reader/android/src/main/java/io/tradle/nfc/RNPassportReaderModule.kt +++ b/app/android/react-native-passport-reader/android/src/main/java/io/tradle/nfc/RNPassportReaderModule.kt @@ -45,6 +45,9 @@ import org.bouncycastle.asn1.ASN1Primitive import org.bouncycastle.asn1.ASN1Sequence import org.bouncycastle.asn1.ASN1Set import org.bouncycastle.asn1.x509.Certificate +import org.bouncycastle.jce.spec.ECNamedCurveSpec +import org.bouncycastle.jce.interfaces.ECPublicKey + import org.jmrtd.BACKey import org.jmrtd.BACKeySpec @@ -507,15 +510,40 @@ class RNPassportReaderModule(private val reactContext: ReactApplicationContext) val eContentAsn1InputStream = ASN1InputStream(sodFile.eContent.inputStream()) val eContentDecomposed: ASN1Primitive = eContentAsn1InputStream.readObject() - val rsaPublicKey = sodFile.docSigningCertificate.publicKey as RSAPublicKey val passport = Arguments.createMap() passport.putString("mrz", mrzInfo.toString()) - passport.putString("modulus", rsaPublicKey.modulus.toString()) + passport.putString("signatureAlgorithm", sodFile.docSigningCertificate.sigAlgName) // this one is new + + val publicKey = sodFile.docSigningCertificate.publicKey + if (publicKey is RSAPublicKey) { + passport.putString("modulus", publicKey.modulus.toString()) + } else if (publicKey is ECPublicKey) { + // Handle the elliptic curve public key case + + val w = publicKey.getW() + passport.putString("publicKeyW", w.toString()) + + val ecParams = publicKey.getParams() + passport.putInt("cofactor", ecParams.getCofactor()) + passport.putString("curve", ecParams.getCurve().toString()) + passport.putString("generator", ecParams.getGenerator().toString()) + passport.putString("order", ecParams.getOrder().toString()) + if (ecParams is ECNamedCurveSpec) { + passport.putString("curveName", ecParams.getName()) + } + + // Old one, probably wrong: + // passport.putString("curveName", (publicKey.parameters as ECNamedCurveSpec).name) + // // passport.putString("curveName", (publicKey.parameters.algorithm)) or maybe this + // passport.putString("publicKeyQ", publicKey.q.toString()) + } + passport.putString("dataGroupHashes", gson.toJson(sodFile.dataGroupHashes)) passport.putString("eContent", gson.toJson(sodFile.eContent)) passport.putString("encryptedDigest", gson.toJson(sodFile.encryptedDigest)) - + + // Another way to get signing time is to get into signedData.signerInfos, then search for the ICO identifier 1.2.840.113549.1.9.5 // passport.putString("signerInfos", gson.toJson(signedData.signerInfos)) @@ -581,7 +609,7 @@ class RNPassportReaderModule(private val reactContext: ReactApplicationContext) signature: List, pubkey: List, address: String - ): Int + ): String @ReactMethod fun provePassport(inputs: ReadableMap, callback: Callback) { @@ -594,9 +622,11 @@ class RNPassportReaderModule(private val reactContext: ReactApplicationContext) val signature = inputs.getArray("signature")?.toArrayList()?.map { it as String } ?: listOf() val pubkey = inputs.getArray("pubkey")?.toArrayList()?.map { it as String } ?: listOf() val address = inputs.getString("address") ?: "" - + val resultFromProof = provePassport(mrz, reveal_bitmap, data_hashes, e_content_bytes, signature, pubkey, address) + Log.d(TAG, "resultFromProof: " + resultFromProof.toString()) + // Return the result to JavaScript through the callback callback.invoke(null, resultFromProof) } diff --git a/app/ark-circom-passport/Cargo.lock b/app/ark-circom-passport/Cargo.lock index 6f53bf99d..5e5678bc2 100644 --- a/app/ark-circom-passport/Cargo.lock +++ b/app/ark-circom-passport/Cargo.lock @@ -282,11 +282,15 @@ dependencies = [ "ark-bn254", "ark-circom", "ark-crypto-primitives", + "ark-ec", "ark-groth16", "ark-std", "color-eyre", "jni", "log", + "serde", + "serde_derive", + "serde_json", ] [[package]] diff --git a/app/ark-circom-passport/Cargo.toml b/app/ark-circom-passport/Cargo.toml index 3edb42028..cb3e84b8a 100644 --- a/app/ark-circom-passport/Cargo.toml +++ b/app/ark-circom-passport/Cargo.toml @@ -16,7 +16,11 @@ ark-bn254 = { version = "=0.4.0" } ark-groth16 = { version = "=0.4.0", default-features = false, features = ["parallel"] } ark-std = { version = "=0.4.0", default-features = false, features = ["parallel"] } ark-crypto-primitives = { version = "=0.4.0" } +ark-ec = { version = "=0.4.1" } color-eyre = "=0.6.2" jni = "0.18" # Choose the version that best fits your needs log = "0.4" -android_logger = "0.8" \ No newline at end of file +android_logger = "0.8" +serde = "1.0" +serde_json = "1.0" +serde_derive = "1.0" diff --git a/app/ark-circom-passport/src/passport.rs b/app/ark-circom-passport/src/passport.rs index b13aaa4cf..dd6c2328b 100644 --- a/app/ark-circom-passport/src/passport.rs +++ b/app/ark-circom-passport/src/passport.rs @@ -5,7 +5,9 @@ use std::os::raw::c_int; use ark_bn254::Bn254; use ark_crypto_primitives::snark::SNARK; -use ark_groth16::Groth16; +use ark_groth16::{Groth16, Proof}; +// use ark_ff::QuadExtField; +use ark_ec::AffineRepr; use std::time::Instant; use std::convert::TryInto; @@ -15,21 +17,38 @@ type GrothBn = Groth16; extern crate jni; use jni::objects::{JClass, JObject, JValue, JString}; use jni::JNIEnv; +use jni::sys::jobject; +use jni::sys::jstring; use log::Level; use android_logger::Config; +extern crate serde; +extern crate serde_json; +use serde_json::json; +#[macro_use] +extern crate serde_derive; + + #[no_mangle] pub extern "C" fn Java_io_tradle_nfc_RNPassportReaderModule_callRustCode( env: JNIEnv, _: JClass, -) -> jni::sys::jstring { +) -> jstring { android_logger::init_once(Config::default().with_min_level(Level::Trace)); log::warn!("log before imports"); - let current_dir = std::env::current_dir().unwrap(); - let path_str = current_dir.to_str().unwrap(); - let output = env.new_string(path_str).expect("Couldn't create java string!"); + let my_int: c_int = -1; + let my_str: String = "no_proof".to_string(); + + let combined = json!({ + "my_int": my_int, + "my_str": my_str + }); + + let combined_str = combined.to_string(); + let output = env.new_string(combined_str).expect("Couldn't create java string!"); + output.into_inner() } @@ -62,7 +81,7 @@ pub extern "C" fn Java_io_tradle_nfc_RNPassportReaderModule_provePassport( signature: JObject, pubkey: JObject, address: JString, -) -> c_int { +) -> jstring { log::warn!("formatting inputsaaaa..."); fn run_proof( @@ -74,7 +93,7 @@ pub extern "C" fn Java_io_tradle_nfc_RNPassportReaderModule_provePassport( pubkey: JObject, address: JString, env: JNIEnv - ) -> Result> { + ) -> Result> { android_logger::init_once(Config::default().with_min_level(Level::Trace)); log::warn!("formatting inputs..."); @@ -138,6 +157,11 @@ pub extern "C" fn Java_io_tradle_nfc_RNPassportReaderModule_provePassport( let start1 = Instant::now(); let proof = GrothBn::prove(¶ms, circom, &mut rng)?; + + let proof_str = proof_to_proof_str(&proof); + + let serialized_proof = serde_json::to_string(&proof_str).unwrap(); + let duration1 = start1.elapsed(); println!("proof generated. Took: {:?}", duration1); @@ -151,7 +175,15 @@ pub extern "C" fn Java_io_tradle_nfc_RNPassportReaderModule_provePassport( assert!(verified); - Ok(duration1.as_millis()) + let combined = json!({ + "duration": duration1.as_millis(), + "serialized_proof": serialized_proof + }); + + let combined_str = combined.to_string(); + let output = env.new_string(combined_str).expect("Couldn't create java string!"); + + Ok(output.into_inner()) } match run_proof( @@ -164,8 +196,8 @@ pub extern "C" fn Java_io_tradle_nfc_RNPassportReaderModule_provePassport( address, env ) { - Ok(elapsed_millis) => elapsed_millis as i32, // Assuming the elapsed time will fit in an i32 - Err(_) => -1, // return -1 or some other error code when there's an error + Ok(output) => output, + Err(_) => env.new_string("error").expect("Couldn't create java string!").into_inner(), } } @@ -182,6 +214,29 @@ fn java_arraylist_to_rust_vec(env: &JNIEnv, java_list: JObject) -> Result) -> ProofStr { + let a_xy = proof.a.xy().unwrap(); + let b_xy = proof.b.xy().unwrap(); + let c_xy = proof.c.xy().unwrap(); + + let b_c0_c0 = b_xy.0.c0.to_string(); + let b_c0_c1 = b_xy.0.c1.to_string(); + let b_c1_c0 = b_xy.1.c0.to_string(); + let b_c1_c1 = b_xy.1.c1.to_string(); + + ProofStr { + a: (a_xy.0.to_string(), a_xy.1.to_string()), + b: ((b_c0_c0, b_c0_c1), (b_c1_c0, b_c1_c1)), + c: (c_xy.0.to_string(), c_xy.1.to_string()), + } +} diff --git a/app/countries.md b/app/countries.md new file mode 100644 index 000000000..285cf055b --- /dev/null +++ b/app/countries.md @@ -0,0 +1,30 @@ +Working: +- France +- Guy from ETH Global Paris (Moldavia ? Bulgaria ?) +- Malaysia + +Crashing: +- Thailand +- Britain + + + E FATAL EXCEPTION: main + Process: com.awesomeproject, PID: 14479 + java.lang.ClassCastException: org.bouncycastle.jcajce.provider.asymmetric.ec.BCECPublicKey cannot be cast to java.security.interfaces.RSAPublicKey + at io.tradle.nfc.RNPassportReaderModule$ReadTask.onPostExecute(RNPassportReaderModule.kt:510) + at io.tradle.nfc.RNPassportReaderModule$ReadTask.onPostExecute(RNPassportReaderModule.kt:238) + at android.os.AsyncTask.finish(AsyncTask.java:771) + at android.os.AsyncTask.access$900(AsyncTask.java:199) + at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:788) + at android.os.Handler.dispatchMessage(Handler.java:106) + at android.os.Looper.loopOnce(Looper.java:226) + at android.os.Looper.loop(Looper.java:313) + at android.app.ActivityThread.main(ActivityThread.java:8751) + at java.lang.reflect.Method.invoke(Native Method) + at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571) + at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135) +2023-10-31 16:41:37.052 625-625 SurfaceFlinger pid-625 E Attempt to update InputPolicyFlags without permission ACCESS_SURFACE_FLINGER +2023-10-31 16:41:37.069 625-625 SurfaceFlinger pid-625 E Attempt to update InputPolicyFlags without permission ACCESS_SURFACE_FLINGER +2023-10-31 16:41:37.088 625-625 SurfaceFlinger pid-625 E Attempt to update InputPolicyFlags without permission ACCESS_SURFACE_FLINGER +2023-10-31 16:41:37.102 625-625 SurfaceFlinger pid-625 E Attempt to update InputPolicyFlags without permission ACCESS_SURFACE_FLINGER +2023-10-31 16:41:37.108 1377-2420 TaskStackL...erAbstract pid-1377 E onTaskSnapshotChanged calle \ No newline at end of file diff --git a/app/package.json b/app/package.json index c02d48c26..8ec90c0d3 100644 --- a/app/package.json +++ b/app/package.json @@ -1,5 +1,5 @@ { - "name": "AwesomeProject", + "name": "proof-of-passport", "version": "0.0.1", "private": true, "scripts": { @@ -10,6 +10,9 @@ "test": "jest" }, "dependencies": { + "@gluestack-style/react": "^1.0.12", + "@gluestack-ui/config": "^1.0.3", + "@gluestack-ui/themed": "^1.0.11", "body-parser": "^1.20.2", "buffer": "^6.0.3", "crypto-js": "^4.1.1", @@ -19,7 +22,8 @@ "pvutils": "^1.1.3", "react": "18.2.0", "react-native": "0.72.3", - "react-native-passport-reader": "^1.0.3" + "react-native-passport-reader": "^1.0.3", + "react-native-svg": "13.4.0" }, "devDependencies": { "@babel/core": "^7.20.0", diff --git a/app/types/passportData.ts b/app/types/passportData.ts index 53c9c0414..2d4d49b92 100644 --- a/app/types/passportData.ts +++ b/app/types/passportData.ts @@ -20,7 +20,8 @@ export type DataHash = [number, number[]]; export type PassportData = { mrz: string; - modulus: string; + signatureAlgorithm: string; + pubKey: {modulus?: string, curveName?: string, publicKeyQ?: string}; dataGroupHashes: DataHash[]; eContent: number[]; encryptedDigest: number[]; diff --git a/app/utils/checks.ts b/app/utils/checks.ts index 9604d4bc2..e644c50a8 100644 --- a/app/utils/checks.ts +++ b/app/utils/checks.ts @@ -18,5 +18,6 @@ export function checkInputs( export function getFirstName(mrz: string): string { const names = mrz.split("<<"); const firstName = names[1].split("<")[0].trim(); - return firstName || "Unknown"; + const capitalized = firstName.charAt(0) + firstName.slice(1).toLowerCase(); + return capitalized || "Unknown"; } \ No newline at end of file diff --git a/app/utils/utils.ts b/app/utils/utils.ts index 63c2679f7..109194455 100644 --- a/app/utils/utils.ts +++ b/app/utils/utils.ts @@ -195,4 +195,40 @@ export function bytesToBigDecimal(arr: number[]): string { export function hexToDecimal(hex: string): string { return BigInt(`0x${hex}`).toString(); +} + +export function formatDuration(durationInMs: number) { + const durationInSeconds = durationInMs / 1000; + const minutes = Math.floor((durationInSeconds % 3600) / 60); + const seconds = Math.floor(durationInSeconds % 60); + + return minutes > 0 ? `${minutes}m ${seconds}s` : `${seconds}s`; +} + +export function formatProof(proof: any) { + const formattedProof: { [key: string]: any } = {}; + + for (const key in proof) { + if (Object.hasOwnProperty.call(proof, key)) { + const element = proof[key]; + + if (key === 'b') { + // Special formatting for 'b' + formattedProof[key] = element.map((complex: string) => { + const matches = complex.match(/QuadExtField\(([^)]+)\)/); + if (matches && matches[1]) { + return matches[1].split(' + ').map(num => { + return num.replace(' * u', '').trim(); + }); + } + return []; + }); + } else { + // Direct copy for 'a' and 'c' + formattedProof[key] = [...element]; + } + } + } + + return formattedProof; } \ No newline at end of file diff --git a/app/yarn.lock b/app/yarn.lock index 9b80a7c20..d93f84246 100644 --- a/app/yarn.lock +++ b/app/yarn.lock @@ -1121,6 +1121,13 @@ dependencies: regenerator-runtime "^0.13.11" +"@babel/runtime@^7.8.7": + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.2.tgz#062b0ac103261d68a966c4c7baf2ae3e62ec3885" + integrity sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg== + dependencies: + regenerator-runtime "^0.14.0" + "@babel/template@^7.0.0", "@babel/template@^7.22.5", "@babel/template@^7.3.3": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" @@ -1192,6 +1199,442 @@ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.44.0.tgz#961a5903c74139390478bdc808bcde3fc45ab7af" integrity sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw== +"@expo/html-elements@latest": + version "0.5.1" + resolved "https://registry.yarnpkg.com/@expo/html-elements/-/html-elements-0.5.1.tgz#94f86afb1a57f95dbd45fb8326b985683cde3c93" + integrity sha512-BDAVI3ayykNykAeAc3B2USSiA244te2WAJDYske/AtDnm/AWZM/DE9lCwSkysuu7uOMcNp78LM2L/v6TwvxqZQ== + +"@formatjs/ecma402-abstract@1.17.2": + version "1.17.2" + resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.17.2.tgz#d197c6e26b9fd96ff7ba3b3a0cc2f25f1f2dcac3" + integrity sha512-k2mTh0m+IV1HRdU0xXM617tSQTi53tVR2muvYOsBeYcUgEAyxV1FOC7Qj279th3fBVQ+Dj6muvNJZcHSPNdbKg== + dependencies: + "@formatjs/intl-localematcher" "0.4.2" + tslib "^2.4.0" + +"@formatjs/fast-memoize@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@formatjs/fast-memoize/-/fast-memoize-2.2.0.tgz#33bd616d2e486c3e8ef4e68c99648c196887802b" + integrity sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA== + dependencies: + tslib "^2.4.0" + +"@formatjs/icu-messageformat-parser@2.7.0": + version "2.7.0" + resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.7.0.tgz#9b13f2710a3b4efddfeb544480f684f27a53483b" + integrity sha512-7uqC4C2RqOaBQtcjqXsSpGRYVn+ckjhNga5T/otFh6MgxRrCJQqvjfbrGLpX1Lcbxdm5WH3Z2WZqt1+Tm/cn/Q== + dependencies: + "@formatjs/ecma402-abstract" "1.17.2" + "@formatjs/icu-skeleton-parser" "1.6.2" + tslib "^2.4.0" + +"@formatjs/icu-skeleton-parser@1.6.2": + version "1.6.2" + resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.6.2.tgz#00303034dc08583973c8aa67b96534c49c0bad8d" + integrity sha512-VtB9Slo4ZL6QgtDFJ8Injvscf0xiDd4bIV93SOJTBjUF4xe2nAWOoSjLEtqIG+hlIs1sNrVKAaFo3nuTI4r5ZA== + dependencies: + "@formatjs/ecma402-abstract" "1.17.2" + tslib "^2.4.0" + +"@formatjs/intl-localematcher@0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@formatjs/intl-localematcher/-/intl-localematcher-0.4.2.tgz#7e6e596dbaf2f0c5a7c22da5a01d5c55f4c37e9a" + integrity sha512-BGdtJFmaNJy5An/Zan4OId/yR9Ih1OojFjcduX/xOvq798OgWSyDtd6Qd5jqJXwJs1ipe4Fxu9+cshic5Ox2tA== + dependencies: + tslib "^2.4.0" + +"@gluestack-style/animation-resolver@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@gluestack-style/animation-resolver/-/animation-resolver-1.0.2.tgz#c889d82dbe99d6280c7c074fcd21e68b232a74ef" + integrity sha512-eWHm092eP4Z0DH4C1sxPkivBou89ZEG6zBUDEHtQsrW9xf9XN8wunda+ahsTvV2HkI8SsZ2sl/M38HkrKrcmtw== + +"@gluestack-style/legend-motion-animation-driver@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@gluestack-style/legend-motion-animation-driver/-/legend-motion-animation-driver-1.0.2.tgz#051c26b0d501e03b12e4dbfe01b292eee5c29c8f" + integrity sha512-rB5HIhVzpgPQ9C1JJvY30a1bP0sQRWWFgUHVaiefH8dA/XRAQpmAIMF48JDctrvoBi/tKp5xN10mLE5CtnDRHg== + +"@gluestack-style/react@^1.0.12": + version "1.0.12" + resolved "https://registry.yarnpkg.com/@gluestack-style/react/-/react-1.0.12.tgz#00aff3fb03c20bd488f687076bf445cac97efb13" + integrity sha512-hI6y1P4k0ukg7vdJscnVilg6AdQJTdPrtnrRRSG4gdusrjuSP+PUycAnkgTgotCX6L8VS8JS0Ju/ii3JMt0Gtg== + dependencies: + inline-style-prefixer "^6.0.1" + normalize-css-color "^1.0.2" + +"@gluestack-ui/actionsheet@^0.2.30": + version "0.2.30" + resolved "https://registry.yarnpkg.com/@gluestack-ui/actionsheet/-/actionsheet-0.2.30.tgz#9fa902bc5f91f81a24035d7d478bc3e0b0fa3c69" + integrity sha512-+Bw8j+O3FOekdME53kWSaxuX8kssfQJjrWSr+v/OJGOYDGzZzEOZvZHwV1FO0HBFmR/rdcedzPdV9gQ38bh9Mg== + dependencies: + "@gluestack-ui/hooks" "^0.1.7" + "@gluestack-ui/overlay" "^0.1.12" + "@gluestack-ui/transitions" "^0.1.10" + "@gluestack-ui/utils" "^0.1.12" + "@react-native-aria/dialog" "^0.0.3" + "@react-native-aria/focus" "^0.2.9" + "@react-native-aria/interactions" "^0.2.11" + +"@gluestack-ui/alert-dialog@^0.1.23": + version "0.1.23" + resolved "https://registry.yarnpkg.com/@gluestack-ui/alert-dialog/-/alert-dialog-0.1.23.tgz#d69f1f04cbd437278e254d63e44617fe5069831b" + integrity sha512-RHscqdGP2oaT0uAh8jed3z/trlMZIECa59kCFfp963M2a8CUxxRwzkn2iP1L3eS0WZ1gwMjJquEV8x9Kfy5cmw== + dependencies: + "@gluestack-ui/hooks" "^0.1.7" + "@gluestack-ui/overlay" "^0.1.12" + "@gluestack-ui/utils" "^0.1.12" + "@react-native-aria/dialog" "^0.0.3" + "@react-native-aria/focus" "^0.2.9" + "@react-native-aria/interactions" "^0.2.11" + +"@gluestack-ui/alert@^0.1.12": + version "0.1.12" + resolved "https://registry.yarnpkg.com/@gluestack-ui/alert/-/alert-0.1.12.tgz#ef7efd7c978809da55cb7dc07c5f3db33b6b6aec" + integrity sha512-oiJfxryKh7+WKKx9PjIX088wgIQTXD9llC52h5HiK1dPUJiswjgGKbFHZbX7uoh9VMiXthBoUvzOIVMv0i5feA== + +"@gluestack-ui/avatar@^0.1.15": + version "0.1.15" + resolved "https://registry.yarnpkg.com/@gluestack-ui/avatar/-/avatar-0.1.15.tgz#a12a4d9afe7314c084fcc82eb9740eb186cc0a60" + integrity sha512-ohbgt4FVQ3yzdZrUsEx39LSxyLUqVoj1FIapENNqmCkXqk+wwDwcyEhALInu7JOsuzPAXpUuv4b478XNsYUCTg== + dependencies: + "@gluestack-ui/utils" "^0.1.12" + +"@gluestack-ui/button@^0.1.33": + version "0.1.33" + resolved "https://registry.yarnpkg.com/@gluestack-ui/button/-/button-0.1.33.tgz#fbfe2bc9fbdb866fc2ac3f8d4158b3425cd878c7" + integrity sha512-qB+Jc6ZVJLMhVn99tbnnjGSpNkC1jJMpWEN0DI7UtV+YjAHwO3fyb+wNFovS683cY1F3Rj8FsZSUT1gIlSvelQ== + dependencies: + "@gluestack-ui/utils" "0.1.12" + "@react-native-aria/focus" "^0.2.9" + "@react-native-aria/interactions" "^0.2.11" + +"@gluestack-ui/checkbox@^0.1.22": + version "0.1.22" + resolved "https://registry.yarnpkg.com/@gluestack-ui/checkbox/-/checkbox-0.1.22.tgz#8c339bf69c13bcfdc8a8613ca3bd934b85f05ba4" + integrity sha512-wpSyV5rcy4V2k8nLgkAkX0ltGgeSL7eMMKM7s508FZ5/5PcIc2FjUG6PD+Ixw7A4x8ZSjTJU4AcQq0rX8Hog+Q== + dependencies: + "@gluestack-ui/form-control" "^0.1.14" + "@gluestack-ui/utils" "^0.1.12" + "@react-aria/visually-hidden" "^3.8.6" + "@react-native-aria/checkbox" "^0.2.6" + "@react-native-aria/focus" "^0.2.9" + "@react-native-aria/interactions" "^0.2.11" + "@react-native-aria/utils" "^0.2.10" + "@react-stately/checkbox" "^3.4.2" + +"@gluestack-ui/config@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@gluestack-ui/config/-/config-1.0.1.tgz#c748f579be6930e0cdd67e0edfac01fbe84f2b67" + integrity sha512-QyrxfkYn8QPiYjefjgwaMNbo8ojL7k0838F3G96DDJbWsl6RBG8PjhT6DiAmRhDe7k4zzixKKlaRHFfXHEo3FA== + +"@gluestack-ui/config@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@gluestack-ui/config/-/config-1.0.3.tgz#27cb2d6dc9a738146fa47937d2b41e7217ef55d2" + integrity sha512-cP07ZOGDhwZKsTBdCUTa88O4KbRbAKArXyZcgTMZnoNJ5477psE9O9ClPd7xuPwJ/pLgh7NNCC1cAOMIpR0zpQ== + +"@gluestack-ui/divider@^0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@gluestack-ui/divider/-/divider-0.1.8.tgz#114584279aebc8bf6b718d039c521330051d8e44" + integrity sha512-l+OQ1XD5qI20ghxKbpi+pqntRtd0mtkmhfXYLODbjt2eec3U9kpV1xawXpfN/TFd45WWZTpEQ616sOQqFLo3RA== + +"@gluestack-ui/fab@^0.1.17": + version "0.1.17" + resolved "https://registry.yarnpkg.com/@gluestack-ui/fab/-/fab-0.1.17.tgz#c6411a73938cc2be13fa147b83c45f78e244bcf6" + integrity sha512-nNa7+Oe8C1WUoztzXv7xBTU50p3IS1oSctImm1KqbdpJamvrKgbzLGlklZ7WZOM0/+Qh1rXBC8g+Nr41WP3mTQ== + dependencies: + "@gluestack-ui/utils" "^0.1.12" + "@react-native-aria/focus" "^0.2.9" + "@react-native-aria/interactions" "^0.2.11" + +"@gluestack-ui/form-control@^0.1.14", "@gluestack-ui/form-control@^0.1.15": + version "0.1.15" + resolved "https://registry.yarnpkg.com/@gluestack-ui/form-control/-/form-control-0.1.15.tgz#94da19379f55b723187e98cc87081147ac39f7e2" + integrity sha512-UEfGDY9doieEHpmkWri7nVnFrEcMHCPuy5pUSD8vXeAx4Vfg+vBfaeuPxGmlzhstAYo5zaBUhKEoVLfBs01BPQ== + dependencies: + "@gluestack-ui/utils" "^0.1.12" + "@react-native-aria/focus" "^0.2.9" + +"@gluestack-ui/hooks@^0.1.7": + version "0.1.10" + resolved "https://registry.yarnpkg.com/@gluestack-ui/hooks/-/hooks-0.1.10.tgz#96cb9277fe65ce37bd7204662f53267cc8829fae" + integrity sha512-/FCvXn/YeKztXgaad38xeHqApEqqFaFPFQdGrNdcM2b8GfMb55wwEyOVGs3qEhpZIFlfLPw3gC/ZdWMdBdsZ8Q== + +"@gluestack-ui/icon@^0.1.18": + version "0.1.18" + resolved "https://registry.yarnpkg.com/@gluestack-ui/icon/-/icon-0.1.18.tgz#db97760a8616a54f5a8924f1c189046aa02c1e98" + integrity sha512-X35k3U2JHilpH24dPi5rxlniQWf+xIVLqhzHy4khLP08WZpBOzkKLTdnbmP76iArev5urXJtZtzs2eOJ8/Ow3A== + dependencies: + "@gluestack-ui/provider" "^0.1.6" + "@gluestack-ui/utils" "^0.1.12" + "@react-native-aria/focus" "^0.2.9" + +"@gluestack-ui/image@^0.1.6": + version "0.1.6" + resolved "https://registry.yarnpkg.com/@gluestack-ui/image/-/image-0.1.6.tgz#dfda76b984e7eeedf41f9ce8b7c84c18a565211c" + integrity sha512-b6WK1tCnlA1Es040H1k5WZsIlzzmoXNaapQ5j2EuX5dOrZOopBuiFLFqAEPiMdqUr8RjUC4nomBHm6taqP389A== + dependencies: + "@gluestack-ui/utils" "^0.1.12" + "@react-native-aria/focus" "^0.2.9" + "@react-native-aria/interactions" "^0.2.11" + +"@gluestack-ui/input@^0.1.23": + version "0.1.23" + resolved "https://registry.yarnpkg.com/@gluestack-ui/input/-/input-0.1.23.tgz#69580f67c6d7927ee6957e552d628999c42b87e6" + integrity sha512-tfPk6uXWJG8aiT8sqg+zp91IxOd+8GrQYwUdl5PZwrW+6Xk9siAHBjYYVO6lQCvFrFSqcj3JQeuL0CZWrdoFrg== + dependencies: + "@gluestack-ui/form-control" "^0.1.14" + "@gluestack-ui/utils" "^0.1.12" + "@react-native-aria/focus" "^0.2.9" + "@react-native-aria/interactions" "^0.2.11" + +"@gluestack-ui/linear-gradient@^0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@gluestack-ui/linear-gradient/-/linear-gradient-0.1.2.tgz#5eea2673339456723f1003b4c456e3387498b83a" + integrity sha512-bdZ8Y38odGJm0gYdOcafZkszmivuhgA5CLAAkb1ZcW+b4E+kvhDBFtD4WHXEZILPF3xVQtTDffmhAl4SVpBjRw== + dependencies: + expo-linear-gradient "12.3.0" + +"@gluestack-ui/link@^0.1.15": + version "0.1.15" + resolved "https://registry.yarnpkg.com/@gluestack-ui/link/-/link-0.1.15.tgz#c4db78400f6963ffea3622f9f735183b9c9d84f7" + integrity sha512-Kz5ZZRrjIy7Zo3CvW4Be734NQAPgkTCJwig/lxG1J/0JWe3wcbEwOI6kCiZScA1LQt40WIsHbO0XrZSYihcQTg== + dependencies: + "@gluestack-ui/utils" "^0.1.12" + "@react-native-aria/focus" "^0.2.9" + "@react-native-aria/interactions" "^0.2.11" + +"@gluestack-ui/menu@^0.2.25": + version "0.2.25" + resolved "https://registry.yarnpkg.com/@gluestack-ui/menu/-/menu-0.2.25.tgz#35588f37ff3d70d38e218a7ca4b8015d16475b65" + integrity sha512-9PkgDW1KMGdRAoS1LbYv6uSH62TT7MysxUNOxl9NTxLTHWGEDWLkLPKO3iS5Q0xTcNq3Xv7LMTB3McacJTIcXA== + dependencies: + "@gluestack-ui/hooks" "^0.1.7" + "@gluestack-ui/overlay" "^0.1.12" + "@gluestack-ui/utils" "^0.1.12" + "@react-native-aria/focus" "^0.2.9" + "@react-native-aria/interactions" "^0.2.11" + "@react-native-aria/menu" "^0.2.9" + "@react-native-aria/overlays" "^0.3.10" + "@react-stately/utils" "^3.6.0" + react-stately "^3.21.0" + +"@gluestack-ui/modal@^0.1.27": + version "0.1.27" + resolved "https://registry.yarnpkg.com/@gluestack-ui/modal/-/modal-0.1.27.tgz#3c7f3bc4ce11cadc9018e097ce65e7e9a0c7f8ec" + integrity sha512-0wKIpBthU+rvS51wNm8x7TbzDYCqvrI65EQOAhZhnY9+/Y/jLIeAikh7bW1C9B+8DaVKhpOlFcWvTOHwvGDwew== + dependencies: + "@gluestack-ui/hooks" "^0.1.7" + "@gluestack-ui/overlay" "^0.1.12" + "@gluestack-ui/utils" "^0.1.12" + "@react-native-aria/dialog" "^0.0.3" + "@react-native-aria/focus" "^0.2.9" + "@react-native-aria/interactions" "^0.2.11" + "@react-native-aria/overlays" "^0.3.10" + +"@gluestack-ui/overlay@^0.1.12", "@gluestack-ui/overlay@^0.1.7": + version "0.1.12" + resolved "https://registry.yarnpkg.com/@gluestack-ui/overlay/-/overlay-0.1.12.tgz#b8d373875e0cf8e1bbc244dfafdcbb76525fa424" + integrity sha512-rENETe40IRIrFW7rQKBsVotJ0J7DxTmY4xZGyMM/dct6TXnnZa2vIE+mqOK0CQs3cEIWypvDrQrJ0mHWHK1xig== + dependencies: + "@react-native-aria/focus" "^0.2.9" + "@react-native-aria/interactions" "^0.2.11" + "@react-native-aria/overlays" "^0.3.10" + +"@gluestack-ui/popover@^0.1.27": + version "0.1.27" + resolved "https://registry.yarnpkg.com/@gluestack-ui/popover/-/popover-0.1.27.tgz#8bc282f9385c45b05af42e0306b7f58d4fda977d" + integrity sha512-KRJKXzUftyibeQIhWglT3ZHp2QOMbvENGQp3utNwxROu3CimZT2foVSjIezJNvLEpDETTNvADGIP39kqHHQrOA== + dependencies: + "@gluestack-ui/hooks" "^0.1.7" + "@gluestack-ui/overlay" "^0.1.12" + "@gluestack-ui/utils" "^0.1.12" + "@react-native-aria/dialog" "^0.0.3" + "@react-native-aria/focus" "^0.2.9" + "@react-native-aria/interactions" "^0.2.11" + "@react-native-aria/overlays" "^0.3.10" + +"@gluestack-ui/pressable@^0.1.13": + version "0.1.13" + resolved "https://registry.yarnpkg.com/@gluestack-ui/pressable/-/pressable-0.1.13.tgz#594d2a1162c10bb87f6334c23f11390d5fe7e172" + integrity sha512-9Wp6v/EG3a0IFQcfG7jnz7vnkvh88SGFFG82qUdMRU4fnZkgWjv5M2mmePnERzDSyxQT6cFjRCDYa7Xk9EVSrw== + dependencies: + "@gluestack-ui/utils" "^0.1.12" + "@react-native-aria/focus" "^0.2.9" + "@react-native-aria/interactions" "^0.2.11" + +"@gluestack-ui/progress@^0.1.12": + version "0.1.12" + resolved "https://registry.yarnpkg.com/@gluestack-ui/progress/-/progress-0.1.12.tgz#a57c80941ac8d02ecb48cce2c64a4e86a687c3e1" + integrity sha512-i0bXUW+FT5G4SS/XqIFz9F+Vea5RPFsgM8T5v2lF4mNlAlBrStCez1RIEzUJjJ5tn36c858iQ6BkSeZXt6PW/w== + dependencies: + "@gluestack-ui/utils" "^0.1.12" + +"@gluestack-ui/provider@^0.1.10", "@gluestack-ui/provider@^0.1.6": + version "0.1.10" + resolved "https://registry.yarnpkg.com/@gluestack-ui/provider/-/provider-0.1.10.tgz#552c4da52f99cb300ef10cde5f830e27a52189b4" + integrity sha512-zAfwQM3AUETLL8Br1GUAsnOdn1RhF/Acd33DawbfFSH9GS/RXtgAgt/Fkh7ANirIxCAYmg5z8G9EN+egIbyuwA== + dependencies: + "@react-native-aria/interactions" "^0.2.10" + tsconfig "7" + typescript "^4.9.4" + +"@gluestack-ui/radio@^0.1.23": + version "0.1.23" + resolved "https://registry.yarnpkg.com/@gluestack-ui/radio/-/radio-0.1.23.tgz#7a0f0e35a7a3bf501d4a673198d7087aa42cf6ab" + integrity sha512-yKX/1eSGs5c4+YH12oo+siRjBRbQCR4XfQa7kWoZTz0h8qkgOVHoDfp/2uTQKryeyfbJm0ZbFt5PZleW6ORXxA== + dependencies: + "@gluestack-ui/form-control" "^0.1.14" + "@gluestack-ui/utils" "^0.1.12" + "@react-aria/visually-hidden" "^3.7.0" + "@react-native-aria/focus" "^0.2.9" + "@react-native-aria/interactions" "^0.2.11" + "@react-native-aria/radio" "^0.2.7" + "@react-stately/radio" "^3.8.1" + +"@gluestack-ui/react-native-aria@^0.1.5": + version "0.1.5" + resolved "https://registry.yarnpkg.com/@gluestack-ui/react-native-aria/-/react-native-aria-0.1.5.tgz#604b6ca22364841d644f6b2911f8f5b776a7cea9" + integrity sha512-6IaE4fcBaGMu3kSDKAoo1wE5qXcoKDX5YA14zzYzXN2d67/K9NYSjpoo/GbxDWZVl45X6Z9QLS/SBP7SmsPO+Q== + dependencies: + "@react-native-aria/focus" "^0.2.7" + +"@gluestack-ui/select@^0.1.19": + version "0.1.19" + resolved "https://registry.yarnpkg.com/@gluestack-ui/select/-/select-0.1.19.tgz#9305f38739d1c8152b16667437b89168cff8aaf8" + integrity sha512-R4HlLLlx8H/oa9kyXp/DGTFppmaBJ4NbvrnS7bHznjn3zixoE24K1DLbmmgO0KxIurSAPNk/M75nCImk7m9vPA== + dependencies: + "@gluestack-ui/form-control" "^0.1.14" + "@gluestack-ui/hooks" "^0.1.7" + "@gluestack-ui/utils" "^0.1.12" + "@react-native-aria/focus" "^0.2.9" + +"@gluestack-ui/slider@^0.1.17": + version "0.1.17" + resolved "https://registry.yarnpkg.com/@gluestack-ui/slider/-/slider-0.1.17.tgz#b6c004ff5cc3ed2d818363bdf64d25531fd97c61" + integrity sha512-7BiUcNmdErOG3NODbegEyYGpX3trvJ3FfUnwpWNeB/K8E3hZbEcXGNlrhEOBDmBhDuL9JXKgbb78WNTdBzDVcA== + dependencies: + "@gluestack-ui/form-control" "^0.1.14" + "@gluestack-ui/hooks" "^0.1.7" + "@gluestack-ui/utils" "^0.1.12" + "@react-aria/visually-hidden" "^3.8.1" + "@react-native-aria/interactions" "^0.2.11" + "@react-native-aria/slider" "^0.2.9" + "@react-stately/slider" "^3.2.4" + +"@gluestack-ui/spinner@^0.1.14": + version "0.1.14" + resolved "https://registry.yarnpkg.com/@gluestack-ui/spinner/-/spinner-0.1.14.tgz#b0afb1e310b409b343d6f59f9127642a97ce224b" + integrity sha512-6uLUvyJMhYR/sIMU/purfaYPqaKiLqnBi0n0LiWRsJNGDgENqdWVHMJpGTdWaFuCLxumZ7xnp0wG2KAdG9UyyQ== + +"@gluestack-ui/switch@^0.1.17": + version "0.1.17" + resolved "https://registry.yarnpkg.com/@gluestack-ui/switch/-/switch-0.1.17.tgz#b14d2a66f6a2b12f985bae981cca0afd2b14a69e" + integrity sha512-4Kwrlr0fmyHlwevCTawlivR/cxcGfEY+cr+5IM3rCcRlzR55+UbWKlY+F/W2jJ34mbREyQ5MQL29IN95t4Wo/A== + dependencies: + "@gluestack-ui/form-control" "^0.1.14" + "@gluestack-ui/utils" "^0.1.12" + "@react-native-aria/focus" "^0.2.9" + "@react-native-aria/interactions" "^0.2.11" + "@react-stately/toggle" "^3.4.4" + +"@gluestack-ui/tabs@^0.1.14": + version "0.1.14" + resolved "https://registry.yarnpkg.com/@gluestack-ui/tabs/-/tabs-0.1.14.tgz#5bcb5cc659927cde08f8e32497830257ed5cba4f" + integrity sha512-QIAf+ACVFIBm5khxMPNwo4hGtr+uOdc18ygeyHmCOQaCBAhQN9zyscDg5PjBDNasHk7I9WJf5sVr2A4ZzRXybg== + dependencies: + "@gluestack-ui/utils" "^0.1.12" + "@react-native-aria/focus" "^0.2.9" + "@react-native-aria/interactions" "^0.2.11" + +"@gluestack-ui/textarea@^0.1.18": + version "0.1.18" + resolved "https://registry.yarnpkg.com/@gluestack-ui/textarea/-/textarea-0.1.18.tgz#2991c770e6311105a0287dff392b50066243fa6a" + integrity sha512-DIDvkKGj+GgKZqugu3QttTU2bZU/XFrbcLwj9lyqYJXzG/g8UsGVnU5errVXYB1L+UgFSdxSZ8SDedknXgEFNQ== + dependencies: + "@gluestack-ui/form-control" "^0.1.14" + "@gluestack-ui/utils" "^0.1.12" + "@react-native-aria/focus" "^0.2.9" + +"@gluestack-ui/themed@^1.0.11": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@gluestack-ui/themed/-/themed-1.0.11.tgz#4457f2a8104840890fbe233a5f667d0e08b0d744" + integrity sha512-iAuGIAD/6aYVMDwTlxl3t0giKXAqc+ix4VIv3XOc0ry2isZO5aE7mE+CHq2i9boE9F9RjzVrsAyeE85qH1Ssbg== + dependencies: + "@expo/html-elements" latest + "@gluestack-style/animation-resolver" "^1.0.2" + "@gluestack-style/legend-motion-animation-driver" "^1.0.2" + "@gluestack-ui/actionsheet" "^0.2.30" + "@gluestack-ui/alert" "^0.1.12" + "@gluestack-ui/alert-dialog" "^0.1.23" + "@gluestack-ui/avatar" "^0.1.15" + "@gluestack-ui/button" "^0.1.33" + "@gluestack-ui/checkbox" "^0.1.22" + "@gluestack-ui/config" "1.0.1" + "@gluestack-ui/divider" "^0.1.8" + "@gluestack-ui/fab" "^0.1.17" + "@gluestack-ui/form-control" "^0.1.15" + "@gluestack-ui/icon" "^0.1.18" + "@gluestack-ui/image" "^0.1.6" + "@gluestack-ui/input" "^0.1.23" + "@gluestack-ui/linear-gradient" "^0.1.2" + "@gluestack-ui/link" "^0.1.15" + "@gluestack-ui/menu" "^0.2.25" + "@gluestack-ui/modal" "^0.1.27" + "@gluestack-ui/overlay" "^0.1.12" + "@gluestack-ui/popover" "^0.1.27" + "@gluestack-ui/pressable" "^0.1.13" + "@gluestack-ui/progress" "^0.1.12" + "@gluestack-ui/provider" "^0.1.10" + "@gluestack-ui/radio" "^0.1.23" + "@gluestack-ui/select" "^0.1.19" + "@gluestack-ui/slider" "^0.1.17" + "@gluestack-ui/spinner" "^0.1.14" + "@gluestack-ui/switch" "^0.1.17" + "@gluestack-ui/tabs" "^0.1.14" + "@gluestack-ui/textarea" "^0.1.18" + "@gluestack-ui/toast" "^0.1.20" + "@gluestack-ui/tooltip" "^0.1.24" + "@legendapp/motion" latest + +"@gluestack-ui/toast@^0.1.20": + version "0.1.20" + resolved "https://registry.yarnpkg.com/@gluestack-ui/toast/-/toast-0.1.20.tgz#863453f75d2e941000204a9524161bfd2500e320" + integrity sha512-DRgihksQmbZ1/4UbCcCX3NwWsegIvIHwSpQv7dqJcjC7F50cBwcoMKbMOSQt/g4PhtIeMjr146tQFlY3u3V41A== + dependencies: + "@gluestack-ui/hooks" "^0.1.7" + "@gluestack-ui/overlay" "^0.1.12" + "@gluestack-ui/transitions" "^0.1.10" + "@gluestack-ui/utils" "^0.1.12" + "@react-native-aria/focus" "^0.2.9" + +"@gluestack-ui/tooltip@^0.1.24": + version "0.1.24" + resolved "https://registry.yarnpkg.com/@gluestack-ui/tooltip/-/tooltip-0.1.24.tgz#ce6eda8ca70c54b1a8265bbb3dfb4582dc524686" + integrity sha512-wINcseB6UXMlU8OWSgc08XnFPoXfzkB4WaH3/uVhTwbsl/Nio3lx4fs2pr4AUXghA/vwSJEmpXcYlUOm0cHSLA== + dependencies: + "@gluestack-ui/hooks" "^0.1.7" + "@gluestack-ui/overlay" "^0.1.12" + "@gluestack-ui/utils" "^0.1.12" + "@react-native-aria/focus" "^0.2.9" + "@react-native-aria/interactions" "^0.2.11" + "@react-native-aria/overlays" "^0.3.10" + +"@gluestack-ui/transitions@^0.1.10": + version "0.1.10" + resolved "https://registry.yarnpkg.com/@gluestack-ui/transitions/-/transitions-0.1.10.tgz#53e563dc0030bac020437ec3493e1bcda5373bab" + integrity sha512-oOwYAmbebAowDCDZyRdGwhK2of46b642OZQxBBkln/BX7YEvY4PhQIfup0HUCG9YA5IzlQnw0iwqREbaVNKIgA== + dependencies: + "@gluestack-ui/overlay" "^0.1.7" + "@gluestack-ui/react-native-aria" "^0.1.5" + "@gluestack-ui/utils" "^0.1.9" + "@react-native-aria/focus" "^0.2.7" + +"@gluestack-ui/utils@0.1.12", "@gluestack-ui/utils@^0.1.12", "@gluestack-ui/utils@^0.1.9": + version "0.1.12" + resolved "https://registry.yarnpkg.com/@gluestack-ui/utils/-/utils-0.1.12.tgz#0bb3400c9315fb6c0fd1bc697b20d80f82cd3899" + integrity sha512-OhOkljhr7foCUJP//8LwMN3EX4/pniFWmQpk1yDJMQL9DaTJbP7s3HsnTM7UzH2kp9DR1Utoz9Y9WscH3ajLpQ== + dependencies: + "@react-native-aria/focus" "^0.2.9" + "@hapi/hoek@^9.0.0": version "9.3.0" resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" @@ -1223,6 +1666,35 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== +"@internationalized/date@^3.5.0": + version "3.5.0" + resolved "https://registry.yarnpkg.com/@internationalized/date/-/date-3.5.0.tgz#67f1dd62355f05140cc80e324842e9bfb4553abe" + integrity sha512-nw0Q+oRkizBWMioseI8+2TeUPEyopJVz5YxoYVzR0W1v+2YytiYah7s/ot35F149q/xAg4F1gT/6eTd+tsUpFQ== + dependencies: + "@swc/helpers" "^0.5.0" + +"@internationalized/message@^3.1.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@internationalized/message/-/message-3.1.1.tgz#0f29c5a239b5dcd457b55f21dcd38d1a44a1236a" + integrity sha512-ZgHxf5HAPIaR0th+w0RUD62yF6vxitjlprSxmLJ1tam7FOekqRSDELMg4Cr/DdszG5YLsp5BG3FgHgqquQZbqw== + dependencies: + "@swc/helpers" "^0.5.0" + intl-messageformat "^10.1.0" + +"@internationalized/number@^3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@internationalized/number/-/number-3.3.0.tgz#92233d130a0591085f93be86a9e6356cfa0e2de2" + integrity sha512-PuxgnKE5NJMOGKUcX1QROo8jq7sW7UWLrL5B6Rfe8BdWgU/be04cVvLyCeALD46vvbAv3d1mUvyHav/Q9a237g== + dependencies: + "@swc/helpers" "^0.5.0" + +"@internationalized/string@^3.1.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@internationalized/string/-/string-3.1.1.tgz#2ab7372d58bbb7ffd3de62fc2a311e4690186981" + integrity sha512-fvSr6YRoVPgONiVIUhgCmIAlifMVCeej/snPZVzbzRPxGpHl3o1GRe+d/qh92D8KhgOciruDUH8I5mjdfdjzfA== + dependencies: + "@swc/helpers" "^0.5.0" + "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" @@ -1505,6 +1977,18 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" +"@legendapp/motion@latest": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@legendapp/motion/-/motion-2.2.1.tgz#aca8f7667cd32c490e97c9c2bc5a7b7b5f67bc88" + integrity sha512-kh9+05qHvBLPT+qR2XE+KzP5KgqLqaqE0aZ19xu5yxKp8X+JH7d9SHPj6W5yo5ttSzaPx0IqApYMtHDVk73FvQ== + dependencies: + "@legendapp/tools" "2.0.1" + +"@legendapp/tools@2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@legendapp/tools/-/tools-2.0.1.tgz#995fe6cb3e2398b939f645505aa8e1abc84bd07f" + integrity sha512-Kxt0HWvWElRK6oybHRzcYxdgaKGwuaiRNreS7usW7QuHXRIHaH4yMcW2YNRG4DHE5fpefv+Bno/BohQcCE4FaA== + "@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": version "5.1.1-v1" resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129" @@ -1533,6 +2017,314 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@react-aria/checkbox@^3.2.1": + version "3.11.2" + resolved "https://registry.yarnpkg.com/@react-aria/checkbox/-/checkbox-3.11.2.tgz#9e1045edf282298cb8337fd3fd1d953c6cf5f667" + integrity sha512-8cgXxpc7IMJ9buw+Rbhr1xc66zNp2ePuFpjw3uWyH7S3IJEd2f5kXUDNWLXQRADJso95UlajRlJQiG4QIObEnA== + dependencies: + "@react-aria/label" "^3.7.2" + "@react-aria/toggle" "^3.8.2" + "@react-aria/utils" "^3.21.1" + "@react-stately/checkbox" "^3.5.1" + "@react-stately/toggle" "^3.6.3" + "@react-types/checkbox" "^3.5.2" + "@react-types/shared" "^3.21.0" + "@swc/helpers" "^0.5.0" + +"@react-aria/dialog@*": + version "3.5.7" + resolved "https://registry.yarnpkg.com/@react-aria/dialog/-/dialog-3.5.7.tgz#e57eca98e95114d618d583f5cc5400bdcf1190b0" + integrity sha512-IKeBaIQBl+WYkhytyE0eISW4ApOEvCJZuw9Xq7gjlKFBlF4X6ffo8souv12KpaznK6/fp1vtEXMmy1AfejiT8Q== + dependencies: + "@react-aria/focus" "^3.14.3" + "@react-aria/overlays" "^3.18.1" + "@react-aria/utils" "^3.21.1" + "@react-stately/overlays" "^3.6.3" + "@react-types/dialog" "^3.5.6" + "@react-types/shared" "^3.21.0" + "@swc/helpers" "^0.5.0" + +"@react-aria/focus@^3.14.3", "@react-aria/focus@^3.2.3": + version "3.14.3" + resolved "https://registry.yarnpkg.com/@react-aria/focus/-/focus-3.14.3.tgz#5e66dbf47e1d92aebf67d52b3b08d1631591f5b6" + integrity sha512-gvO/frZ7SxyfyHJYC+kRsUXnXct8hGHKlG1TwbkzCCXim9XIPKDgRzfNGuFfj0i8ZpR9xmsjOBUkHZny0uekFA== + dependencies: + "@react-aria/interactions" "^3.19.1" + "@react-aria/utils" "^3.21.1" + "@react-types/shared" "^3.21.0" + "@swc/helpers" "^0.5.0" + clsx "^1.1.1" + +"@react-aria/i18n@^3.8.4": + version "3.8.4" + resolved "https://registry.yarnpkg.com/@react-aria/i18n/-/i18n-3.8.4.tgz#e7ecd3edcaa66ceaf9ebb1034395e021685163af" + integrity sha512-YlTJn7YJlUxds/T5dNtme551qc118NoDQhK+IgGpzcmPQ3xSnwBAQP4Zwc7wCpAU+xEwnNcsGw+L1wJd49He/A== + dependencies: + "@internationalized/date" "^3.5.0" + "@internationalized/message" "^3.1.1" + "@internationalized/number" "^3.3.0" + "@internationalized/string" "^3.1.1" + "@react-aria/ssr" "^3.8.0" + "@react-aria/utils" "^3.21.1" + "@react-types/shared" "^3.21.0" + "@swc/helpers" "^0.5.0" + +"@react-aria/interactions@^3.19.1", "@react-aria/interactions@^3.3.2": + version "3.19.1" + resolved "https://registry.yarnpkg.com/@react-aria/interactions/-/interactions-3.19.1.tgz#b17b1f9dc84624d4222c7fa0a4fa6b4c14fe125a" + integrity sha512-2QFOvq/rJfMGEezmtYcGcJmfaD16kHKcSTLFrZ8aeBK6hYFddGVZJZk+dXf+G7iNaffa8rMt6uwzVe/malJPBA== + dependencies: + "@react-aria/ssr" "^3.8.0" + "@react-aria/utils" "^3.21.1" + "@react-types/shared" "^3.21.0" + "@swc/helpers" "^0.5.0" + +"@react-aria/label@^3.1.1", "@react-aria/label@^3.7.2": + version "3.7.2" + resolved "https://registry.yarnpkg.com/@react-aria/label/-/label-3.7.2.tgz#6563495cad2af9262e722514e88406baede48852" + integrity sha512-rS0xQy+4RH1+JLESzLZd9H285McjNNf2kKwBhzU0CW3akjlu7gqaMKEJhX9MlpPDIVOUc2oEObGdU3UMmqa8ew== + dependencies: + "@react-aria/utils" "^3.21.1" + "@react-types/label" "^3.8.1" + "@react-types/shared" "^3.21.0" + "@swc/helpers" "^0.5.0" + +"@react-aria/menu@^3.1.3": + version "3.11.1" + resolved "https://registry.yarnpkg.com/@react-aria/menu/-/menu-3.11.1.tgz#fb31c5533d5106c41ed73c14516ecbf74742976a" + integrity sha512-1eVVDrGnSExaL7e8IiaM9ndWTjT23rsnQGUK3p66R1Ojs8Q5rPBuJpP74rsmIpYiKOCr8WyZunjm5Fjv5KfA5Q== + dependencies: + "@react-aria/focus" "^3.14.3" + "@react-aria/i18n" "^3.8.4" + "@react-aria/interactions" "^3.19.1" + "@react-aria/overlays" "^3.18.1" + "@react-aria/selection" "^3.17.1" + "@react-aria/utils" "^3.21.1" + "@react-stately/collections" "^3.10.2" + "@react-stately/menu" "^3.5.6" + "@react-stately/tree" "^3.7.3" + "@react-types/button" "^3.9.0" + "@react-types/menu" "^3.9.5" + "@react-types/shared" "^3.21.0" + "@swc/helpers" "^0.5.0" + +"@react-aria/overlays@^3.18.1", "@react-aria/overlays@^3.7.0": + version "3.18.1" + resolved "https://registry.yarnpkg.com/@react-aria/overlays/-/overlays-3.18.1.tgz#b53093b2e1004feff155c81730e0101179cd6c47" + integrity sha512-C74eZbTp3OA/gXy9/+4iPrZiz7g27Zy6Q1+plbg5QTLpsFLBt2Ypy9jTTANNRZfW7a5NW/Bnw9WIRjCdtTBRXw== + dependencies: + "@react-aria/focus" "^3.14.3" + "@react-aria/i18n" "^3.8.4" + "@react-aria/interactions" "^3.19.1" + "@react-aria/ssr" "^3.8.0" + "@react-aria/utils" "^3.21.1" + "@react-aria/visually-hidden" "^3.8.6" + "@react-stately/overlays" "^3.6.3" + "@react-types/button" "^3.9.0" + "@react-types/overlays" "^3.8.3" + "@react-types/shared" "^3.21.0" + "@swc/helpers" "^0.5.0" + +"@react-aria/radio@^3.1.2": + version "3.8.2" + resolved "https://registry.yarnpkg.com/@react-aria/radio/-/radio-3.8.2.tgz#318fb1bbdc67131181c03002a5d8458405239b85" + integrity sha512-j8yyGjboTgoBEQWlnJbQVvegKiUeQEUvU/kZ7ZAdj+eAL3BqfO6FO7yt6WzK7ZIBzjGS9YbesaUa3hwIjDi3LA== + dependencies: + "@react-aria/focus" "^3.14.3" + "@react-aria/i18n" "^3.8.4" + "@react-aria/interactions" "^3.19.1" + "@react-aria/label" "^3.7.2" + "@react-aria/utils" "^3.21.1" + "@react-stately/radio" "^3.9.1" + "@react-types/radio" "^3.5.2" + "@react-types/shared" "^3.21.0" + "@swc/helpers" "^0.5.0" + +"@react-aria/selection@^3.17.1", "@react-aria/selection@^3.3.1": + version "3.17.1" + resolved "https://registry.yarnpkg.com/@react-aria/selection/-/selection-3.17.1.tgz#12df277b8806fd26093e16f6a2734bd1e6fbb3e2" + integrity sha512-g5gkSc/M+zJiVgWbUpKN095ea0D4fxdluH9ZcXxN4AAvcrVfEJyAnMmWOIKRebN8xR0KPfNRnKB7E6jld2tbuQ== + dependencies: + "@react-aria/focus" "^3.14.3" + "@react-aria/i18n" "^3.8.4" + "@react-aria/interactions" "^3.19.1" + "@react-aria/utils" "^3.21.1" + "@react-stately/collections" "^3.10.2" + "@react-stately/selection" "^3.14.0" + "@react-types/shared" "^3.21.0" + "@swc/helpers" "^0.5.0" + +"@react-aria/slider@^3.0.1": + version "3.7.2" + resolved "https://registry.yarnpkg.com/@react-aria/slider/-/slider-3.7.2.tgz#e122bbf945c5ae0f72be1c8977ef9be957c4bdbf" + integrity sha512-io7yJm2jS0gK1ILE9kjClh9zylKsOLbRy748CyD66LDV0ZIjj2D/uZF6BtfKq7Zhc2OsMvDB9+e2IkrszKe8uw== + dependencies: + "@react-aria/focus" "^3.14.3" + "@react-aria/i18n" "^3.8.4" + "@react-aria/interactions" "^3.19.1" + "@react-aria/label" "^3.7.2" + "@react-aria/utils" "^3.21.1" + "@react-stately/radio" "^3.9.1" + "@react-stately/slider" "^3.4.4" + "@react-types/radio" "^3.5.2" + "@react-types/shared" "^3.21.0" + "@react-types/slider" "^3.6.2" + "@swc/helpers" "^0.5.0" + +"@react-aria/ssr@^3.0.1", "@react-aria/ssr@^3.8.0": + version "3.8.0" + resolved "https://registry.yarnpkg.com/@react-aria/ssr/-/ssr-3.8.0.tgz#e7f467ac42f72504682724304ce221f785d70d49" + integrity sha512-Y54xs483rglN5DxbwfCPHxnkvZ+gZ0LbSYmR72LyWPGft8hN/lrl1VRS1EW2SMjnkEWlj+Km2mwvA3kEHDUA0A== + dependencies: + "@swc/helpers" "^0.5.0" + +"@react-aria/toggle@^3.8.2": + version "3.8.2" + resolved "https://registry.yarnpkg.com/@react-aria/toggle/-/toggle-3.8.2.tgz#4336f0d70e33347c7bcf43f3ec4e617ce449127b" + integrity sha512-0+RmlOQtyRmU+Dd9qM9od4DPpITC7jqA+n3aZn732XtCsosz5gPGbhFuLbSdWRZ42FQgqo7pZQWaDRZpJPkipA== + dependencies: + "@react-aria/focus" "^3.14.3" + "@react-aria/interactions" "^3.19.1" + "@react-aria/utils" "^3.21.1" + "@react-stately/toggle" "^3.6.3" + "@react-types/checkbox" "^3.5.2" + "@react-types/shared" "^3.21.0" + "@react-types/switch" "^3.4.2" + "@swc/helpers" "^0.5.0" + +"@react-aria/utils@^3.21.1", "@react-aria/utils@^3.3.0", "@react-aria/utils@^3.6.0": + version "3.21.1" + resolved "https://registry.yarnpkg.com/@react-aria/utils/-/utils-3.21.1.tgz#35f5d545757ea38f05a0d2f5492f13217ebb03ce" + integrity sha512-tySfyWHXOhd/b6JSrSOl7krngEXN3N6pi1hCAXObRu3+MZlaZOMDf/j18aoteaIF2Jpv8HMWUJUJtQKGmBJGRA== + dependencies: + "@react-aria/ssr" "^3.8.0" + "@react-stately/utils" "^3.8.0" + "@react-types/shared" "^3.21.0" + "@swc/helpers" "^0.5.0" + clsx "^1.1.1" + +"@react-aria/visually-hidden@^3.7.0", "@react-aria/visually-hidden@^3.8.1", "@react-aria/visually-hidden@^3.8.6": + version "3.8.6" + resolved "https://registry.yarnpkg.com/@react-aria/visually-hidden/-/visually-hidden-3.8.6.tgz#9b149851ac41e9c72c7819f8d4ad47ddfb45b863" + integrity sha512-6DmS/JLbK9KgU/ClK1WjwOyvpn8HtwYn+uisMLdP7HlCm692peYOkXDR1jqYbHL4GlyLCD0JLI+/xGdVh5aR/w== + dependencies: + "@react-aria/interactions" "^3.19.1" + "@react-aria/utils" "^3.21.1" + "@react-types/shared" "^3.21.0" + "@swc/helpers" "^0.5.0" + clsx "^1.1.1" + +"@react-native-aria/checkbox@^0.2.6": + version "0.2.6" + resolved "https://registry.yarnpkg.com/@react-native-aria/checkbox/-/checkbox-0.2.6.tgz#80298eb1983e58d834fb9573e9082561368d60fa" + integrity sha512-is8riNMjLkdcpajcU928FwZMf6ZYmfT5+CEJH6NYmY/BoeYHri+w8UYqPIGi5+9//5nQAkpjopJx9Z7+jkEJlw== + dependencies: + "@react-aria/checkbox" "^3.2.1" + "@react-aria/utils" "^3.6.0" + "@react-native-aria/toggle" "^0.2.6" + "@react-native-aria/utils" "^0.2.10" + "@react-stately/toggle" "^3.2.1" + +"@react-native-aria/dialog@^0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@react-native-aria/dialog/-/dialog-0.0.3.tgz#62388983268f6a6c3a5cfa06c3eaccb996112009" + integrity sha512-EXDS2IfB6n8LlelfMZjMntuHC7e6iRTWLxrYIyHm5d2gdmRVD37dris03Zsw/iMBhb/Z8ZYKQ/O5APioN6Uovg== + dependencies: + "@react-aria/dialog" "*" + "@react-native-aria/utils" "*" + "@react-types/dialog" "*" + "@react-types/shared" "*" + +"@react-native-aria/focus@^0.2.7", "@react-native-aria/focus@^0.2.9": + version "0.2.9" + resolved "https://registry.yarnpkg.com/@react-native-aria/focus/-/focus-0.2.9.tgz#bdfa84f9711843df771877ac436ee3b4f8878b74" + integrity sha512-zVgOIzKwnsyyurUxlZnzUKB2ekK/cmK64sQJIKKUlkJKVxd2EAFf7Sjz/NVEoMhTODN3qGRASTv9bMk/pBzzVA== + dependencies: + "@react-aria/focus" "^3.2.3" + +"@react-native-aria/interactions@^0.2.10", "@react-native-aria/interactions@^0.2.11": + version "0.2.11" + resolved "https://registry.yarnpkg.com/@react-native-aria/interactions/-/interactions-0.2.11.tgz#033ed9675d67add72deaf6eeae02b005d0785276" + integrity sha512-qfdkD3DwYQm8UurvGLfdLFXPlU2QFdjYA0WWcDCKZD3R++rkpnFthExdws7kmsF1riKTaYcIN/R1MPTM4KZrsA== + dependencies: + "@react-aria/interactions" "^3.3.2" + "@react-aria/utils" "^3.6.0" + "@react-native-aria/utils" "^0.2.10" + +"@react-native-aria/menu@^0.2.9": + version "0.2.9" + resolved "https://registry.yarnpkg.com/@react-native-aria/menu/-/menu-0.2.9.tgz#363765807b5cfe4695e810752142f16f6ec0b7de" + integrity sha512-Sac2wGHhrH032bmtqoz0gWqAnLV7DXteuJMIMbBL+wP1UE+m5ns1APZB6BOLfH0A62SDgAiboco1/fZOicT/Dg== + dependencies: + "@react-aria/interactions" "^3.3.2" + "@react-aria/menu" "^3.1.3" + "@react-aria/selection" "^3.3.1" + "@react-aria/utils" "^3.6.0" + "@react-native-aria/interactions" "^0.2.11" + "@react-native-aria/overlays" "^0.3.10" + "@react-native-aria/utils" "^0.2.10" + "@react-stately/collections" "^3.3.0" + "@react-stately/menu" "^3.2.1" + "@react-stately/tree" "^3.1.2" + "@react-types/menu" "^3.1.1" + +"@react-native-aria/overlays@^0.3.10": + version "0.3.10" + resolved "https://registry.yarnpkg.com/@react-native-aria/overlays/-/overlays-0.3.10.tgz#8123935f67acb3ab86b7cd3e947c0ba756f28dd3" + integrity sha512-x4+b+RblNe0hwlPFR6qzcmNixqB5/1b5xcN33IP6/BR6F04zHlsmWpHT5PT1qiYQPXLekqw6HGiWp3MC3ItsOw== + dependencies: + "@react-aria/interactions" "^3.3.2" + "@react-aria/overlays" "^3.7.0" + "@react-native-aria/utils" "^0.2.10" + "@react-stately/overlays" "^3.1.1" + "@react-types/overlays" "^3.4.0" + dom-helpers "^5.0.0" + +"@react-native-aria/radio@^0.2.7": + version "0.2.7" + resolved "https://registry.yarnpkg.com/@react-native-aria/radio/-/radio-0.2.7.tgz#162d59b75c18d01871973d5d8e28a965fd584346" + integrity sha512-wps3AtqPLL7UniS7ubkrP/qSZiaXC6elMVNA9Wr2ngyLjHJQb31an3MocDyD2tijLlH4zO+ExzOS7iz7wEYrJw== + dependencies: + "@react-aria/radio" "^3.1.2" + "@react-aria/utils" "^3.6.0" + "@react-native-aria/interactions" "^0.2.11" + "@react-native-aria/utils" "^0.2.10" + "@react-stately/radio" "^3.2.1" + "@react-types/radio" "^3.1.1" + +"@react-native-aria/slider@^0.2.9": + version "0.2.9" + resolved "https://registry.yarnpkg.com/@react-native-aria/slider/-/slider-0.2.9.tgz#58c6aba74cbd03e4b3155bfee058552f6d4f7fc3" + integrity sha512-pyCiOy3L7SpzFHYsdGR054trfVMKizi/x10s5spzjXhMAEmYCuP5dEIo43DSz+ZieGGEk/cdvURxjVEwsgHznA== + dependencies: + "@react-aria/focus" "^3.2.3" + "@react-aria/interactions" "^3.3.2" + "@react-aria/label" "^3.1.1" + "@react-aria/slider" "^3.0.1" + "@react-aria/utils" "^3.6.0" + "@react-native-aria/utils" "^0.2.10" + "@react-stately/slider" "^3.0.1" + +"@react-native-aria/toggle@^0.2.6": + version "0.2.6" + resolved "https://registry.yarnpkg.com/@react-native-aria/toggle/-/toggle-0.2.6.tgz#916832079a551d57bbc5842a09884700a2925579" + integrity sha512-uqsoh3ISY3yVh6HBH6jklrZ9eZgLqZ2A8s3XhxLGZIZV3SbhSP0LwwjTOqRIMXK12lvHixWneObD0GpR4i7v+g== + dependencies: + "@react-aria/focus" "^3.2.3" + "@react-aria/utils" "^3.6.0" + "@react-native-aria/interactions" "^0.2.11" + "@react-native-aria/utils" "^0.2.10" + "@react-stately/toggle" "^3.2.1" + "@react-types/checkbox" "^3.2.1" + +"@react-native-aria/utils@*", "@react-native-aria/utils@^0.2.10": + version "0.2.10" + resolved "https://registry.yarnpkg.com/@react-native-aria/utils/-/utils-0.2.10.tgz#818c8940fb97850c0aff6ac4ae3004ccb1dff432" + integrity sha512-jaXMt9NEuLtOIWeHzOupVROVcNT9aZHhvHDMzoXzmWZ47/FUrAykXtilCpOiKTxYbcwuWKCvpDVjd/syoPyuYQ== + dependencies: + "@react-aria/ssr" "^3.0.1" + "@react-aria/utils" "^3.3.0" + "@react-native-community/cli-clean@11.3.5": version "11.3.5" resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-11.3.5.tgz#07c8a01e433ea6c6e32eb647908be48952888cdd" @@ -1774,6 +2566,416 @@ invariant "^2.2.4" nullthrows "^1.1.1" +"@react-stately/calendar@^3.4.1": + version "3.4.1" + resolved "https://registry.yarnpkg.com/@react-stately/calendar/-/calendar-3.4.1.tgz#8982ca015c81f35154a23fb26a514a08f9b041a5" + integrity sha512-XKCdrXNA7/ukZ842EeDZfLqYUQDv/x5RoAVkzTbp++3U/MLM1XZXsqj+5xVlQfJiWpQzM9L6ySjxzzgepJDeuw== + dependencies: + "@internationalized/date" "^3.5.0" + "@react-stately/utils" "^3.8.0" + "@react-types/calendar" "^3.4.1" + "@react-types/datepicker" "^3.6.1" + "@react-types/shared" "^3.21.0" + "@swc/helpers" "^0.5.0" + +"@react-stately/checkbox@^3.4.2", "@react-stately/checkbox@^3.5.1": + version "3.5.1" + resolved "https://registry.yarnpkg.com/@react-stately/checkbox/-/checkbox-3.5.1.tgz#a6f6ad01852aded85f4baa7c3e97e44d2c47a607" + integrity sha512-j+EbHpZgS8J2LbysbVDK3vQAJc7YZHOjHRX20auEzVmulAFKwkRpevo/R5gEL4EpOz4bRyu+BH/jbssHXG+Ezw== + dependencies: + "@react-stately/toggle" "^3.6.3" + "@react-stately/utils" "^3.8.0" + "@react-types/checkbox" "^3.5.2" + "@react-types/shared" "^3.21.0" + "@swc/helpers" "^0.5.0" + +"@react-stately/collections@^3.10.2", "@react-stately/collections@^3.3.0": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@react-stately/collections/-/collections-3.10.2.tgz#c739d9d596ecb744be15fde6f064ad85dd6145db" + integrity sha512-h+LzCa1gWhVRWVH8uR+ZxsKmFSx7kW3RIlcjWjhfyc59BzXCuojsOJKTTAyPVFP/3kOdJeltw8g/reV1Cw/x6Q== + dependencies: + "@react-types/shared" "^3.21.0" + "@swc/helpers" "^0.5.0" + +"@react-stately/combobox@^3.7.1": + version "3.7.1" + resolved "https://registry.yarnpkg.com/@react-stately/combobox/-/combobox-3.7.1.tgz#d101280d406469479ba954cabd872188634033c4" + integrity sha512-JMKsbhCgP8HpwRjHLBmJILzyU9WzWykjXyP4QF/ifmkzGRjC/s46+Ieq+WonjVaLNGCoi6XqhYn2x2RyACSbsQ== + dependencies: + "@react-stately/collections" "^3.10.2" + "@react-stately/list" "^3.10.0" + "@react-stately/menu" "^3.5.6" + "@react-stately/select" "^3.5.5" + "@react-stately/utils" "^3.8.0" + "@react-types/combobox" "^3.8.1" + "@react-types/shared" "^3.21.0" + "@swc/helpers" "^0.5.0" + +"@react-stately/data@^3.10.3": + version "3.10.3" + resolved "https://registry.yarnpkg.com/@react-stately/data/-/data-3.10.3.tgz#4cdbb0f29489e6f74d2ae7ae032930336695eaa0" + integrity sha512-cC9mxCZU4N9GbdOB4g2/J8+W+860GvBd874to0ObSc/XOR4VbuIsxAFIabW5UwmJV+XaqqK4TUBG0C6YScXeWQ== + dependencies: + "@react-types/shared" "^3.21.0" + "@swc/helpers" "^0.5.0" + +"@react-stately/datepicker@^3.8.0": + version "3.8.0" + resolved "https://registry.yarnpkg.com/@react-stately/datepicker/-/datepicker-3.8.0.tgz#f87eefb4c5dec937b9d5eb101dd4407457ecd0e7" + integrity sha512-6YDSmkrRafYCWhRHks8Z2tZavM1rqSOy8GY8VYjYMCVTFpRuhPK9TQaFv2BdzZL/vJ6OGThxqoglcEwywZVq2g== + dependencies: + "@internationalized/date" "^3.5.0" + "@internationalized/string" "^3.1.1" + "@react-stately/overlays" "^3.6.3" + "@react-stately/utils" "^3.8.0" + "@react-types/datepicker" "^3.6.1" + "@react-types/shared" "^3.21.0" + "@swc/helpers" "^0.5.0" + +"@react-stately/dnd@^3.2.5": + version "3.2.5" + resolved "https://registry.yarnpkg.com/@react-stately/dnd/-/dnd-3.2.5.tgz#e18c9708133071df911792e85ef6edd2508b3a71" + integrity sha512-f9S+ycjAMEaz9HqGxkx4jsqo/ZS8kh0o97rxSKpGFKPZ02UMFWCr9lJI1p3hVGukiMahrmsNtoQXAvMcFAZyQQ== + dependencies: + "@react-stately/selection" "^3.14.0" + "@react-types/shared" "^3.21.0" + "@swc/helpers" "^0.5.0" + +"@react-stately/flags@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@react-stately/flags/-/flags-3.0.0.tgz#c5a73965f8c90e8bf5981adddb4bdbb0ba2f5690" + integrity sha512-e3i2ItHbIa0eEwmSXAnPdD7K8syW76JjGe8ENxwFJPW/H1Pu9RJfjkCb/Mq0WSPN/TpxBb54+I9TgrGhbCoZ9w== + dependencies: + "@swc/helpers" "^0.4.14" + +"@react-stately/grid@^3.8.2": + version "3.8.2" + resolved "https://registry.yarnpkg.com/@react-stately/grid/-/grid-3.8.2.tgz#b2bd8614489a46ad7d0de13551507afd68d95de2" + integrity sha512-CB5QpYjXFatuXZodj3r0vIiqTysUe6DURZdJu6RKG2Elx19n2k49fKyx7P7CTKD2sPBOMSSX4edWuTzpL8Tl+A== + dependencies: + "@react-stately/collections" "^3.10.2" + "@react-stately/selection" "^3.14.0" + "@react-types/grid" "^3.2.2" + "@react-types/shared" "^3.21.0" + "@swc/helpers" "^0.5.0" + +"@react-stately/list@^3.10.0": + version "3.10.0" + resolved "https://registry.yarnpkg.com/@react-stately/list/-/list-3.10.0.tgz#6b2c66778b687d8c197809059f102029a9bb5079" + integrity sha512-Yspumiln2fvzoO8AND8jNAIfBu1XPaYioeeDmsB5Vrya2EvOkzEGsauQSNBJ6Vhee1fQqpnmzH1HB0jfIKUfzg== + dependencies: + "@react-stately/collections" "^3.10.2" + "@react-stately/selection" "^3.14.0" + "@react-stately/utils" "^3.8.0" + "@react-types/shared" "^3.21.0" + "@swc/helpers" "^0.5.0" + +"@react-stately/menu@^3.2.1", "@react-stately/menu@^3.5.6": + version "3.5.6" + resolved "https://registry.yarnpkg.com/@react-stately/menu/-/menu-3.5.6.tgz#21861b7cfba579d69272509aef8197d3fad7463a" + integrity sha512-Cm82SVda1qP71Fcz8ohIn3JYKmKCuSUIFr1WsEo/YwDPkX0x9+ev6rmphHTsxDdkCLcYHSTQL6e2KL0wAg50zA== + dependencies: + "@react-stately/overlays" "^3.6.3" + "@react-stately/utils" "^3.8.0" + "@react-types/menu" "^3.9.5" + "@react-types/shared" "^3.21.0" + "@swc/helpers" "^0.5.0" + +"@react-stately/numberfield@^3.6.2": + version "3.6.2" + resolved "https://registry.yarnpkg.com/@react-stately/numberfield/-/numberfield-3.6.2.tgz#2102d956239721fbf629891d2de46920416492fc" + integrity sha512-li/SO3BU3RGySRNlXhPRKr161GJyNbQe6kjnj+0BFTS/ST9nxCgxFK4llHf+S+I/shNI6+0U2nAjE85QOv4emQ== + dependencies: + "@internationalized/number" "^3.3.0" + "@react-stately/utils" "^3.8.0" + "@react-types/numberfield" "^3.6.1" + "@react-types/shared" "^3.21.0" + "@swc/helpers" "^0.5.0" + +"@react-stately/overlays@^3.1.1", "@react-stately/overlays@^3.6.3": + version "3.6.3" + resolved "https://registry.yarnpkg.com/@react-stately/overlays/-/overlays-3.6.3.tgz#cdfe5edb1ed6ad84fc1022af931586489cb23552" + integrity sha512-K3eIiYAdAGTepYqNf2pVb+lPqLoVudXwmxPhyOSZXzjgpynD6tR3E9QfWQtkMazBuU73PnNX7zkH4l87r2AmTg== + dependencies: + "@react-stately/utils" "^3.8.0" + "@react-types/overlays" "^3.8.3" + "@swc/helpers" "^0.5.0" + +"@react-stately/radio@^3.2.1", "@react-stately/radio@^3.8.1", "@react-stately/radio@^3.9.1": + version "3.9.1" + resolved "https://registry.yarnpkg.com/@react-stately/radio/-/radio-3.9.1.tgz#c43c88e2bff23d3059b0ea22191337a1d644fe0c" + integrity sha512-DrQPHiP9pz1uQbBP/NDFdO8uOZigPbvuAWPUNK7Gq6kye5lW+RsS97IUnYJePNTSMvhiAVz/aleBt05Gr/PZmg== + dependencies: + "@react-stately/utils" "^3.8.0" + "@react-types/radio" "^3.5.2" + "@react-types/shared" "^3.21.0" + "@swc/helpers" "^0.5.0" + +"@react-stately/searchfield@^3.4.6": + version "3.4.6" + resolved "https://registry.yarnpkg.com/@react-stately/searchfield/-/searchfield-3.4.6.tgz#8d2a394fc20fec559d669e5d63c0a4d7588cb4a0" + integrity sha512-DeVacER0MD35gzQjrYpX/e3k8rjKF82W0OooTkRjeQ2U48femZkQpmp3O+j10foQx2LLaxqt9PSW7QS0Ww1bCA== + dependencies: + "@react-stately/utils" "^3.8.0" + "@react-types/searchfield" "^3.5.1" + "@react-types/shared" "^3.21.0" + "@swc/helpers" "^0.5.0" + +"@react-stately/select@^3.5.5": + version "3.5.5" + resolved "https://registry.yarnpkg.com/@react-stately/select/-/select-3.5.5.tgz#e0b6dc9635bf46632efeba552e7ff3641c2f581f" + integrity sha512-nDkvFeAZbN7dK/Ty+mk1h4LZYYaoPpkwrG49wa67DTHkCc8Zk2+UEjhKPwOK20th4vfJKHzKjVa0Dtq4DIj0rw== + dependencies: + "@react-stately/collections" "^3.10.2" + "@react-stately/list" "^3.10.0" + "@react-stately/menu" "^3.5.6" + "@react-stately/selection" "^3.14.0" + "@react-stately/utils" "^3.8.0" + "@react-types/select" "^3.8.4" + "@react-types/shared" "^3.21.0" + "@swc/helpers" "^0.5.0" + +"@react-stately/selection@^3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@react-stately/selection/-/selection-3.14.0.tgz#26a574bf2e35657db1988974df8bd2747b09f5c6" + integrity sha512-E5rNH+gVGDJQDSnPO30ynu6jZ0Z0++VPUbM5Bu3P/bZ3+TgoTtDDvlONba3fspgSBDfdnHpsuG9eqYnDtEAyYA== + dependencies: + "@react-stately/collections" "^3.10.2" + "@react-stately/utils" "^3.8.0" + "@react-types/shared" "^3.21.0" + "@swc/helpers" "^0.5.0" + +"@react-stately/slider@^3.0.1", "@react-stately/slider@^3.2.4", "@react-stately/slider@^3.4.4": + version "3.4.4" + resolved "https://registry.yarnpkg.com/@react-stately/slider/-/slider-3.4.4.tgz#36a3f171077fb0e5bd7af7accdc228f5fd2fbe32" + integrity sha512-tFexbtN50zSo6e1Gi8K9MBfqgOo1eemF/VvFbde3PP9nG+ODcxEIajaYDPlMUuFw5cemJuoKo3+G5NBBn2/AjQ== + dependencies: + "@react-aria/i18n" "^3.8.4" + "@react-aria/utils" "^3.21.1" + "@react-stately/utils" "^3.8.0" + "@react-types/shared" "^3.21.0" + "@react-types/slider" "^3.6.2" + "@swc/helpers" "^0.5.0" + +"@react-stately/table@^3.11.2": + version "3.11.2" + resolved "https://registry.yarnpkg.com/@react-stately/table/-/table-3.11.2.tgz#df78442355f3dd086042ad4bf6473a2aaf31f6c1" + integrity sha512-EVgksPAsnEoqeT+5ej4aGJdu9kAu3LCDqQfnmif2P/R1BP5eDU1Kv0N/mV/90Xp546g7kuZ1wS2if/hWDXEA5g== + dependencies: + "@react-stately/collections" "^3.10.2" + "@react-stately/flags" "^3.0.0" + "@react-stately/grid" "^3.8.2" + "@react-stately/selection" "^3.14.0" + "@react-stately/utils" "^3.8.0" + "@react-types/grid" "^3.2.2" + "@react-types/shared" "^3.21.0" + "@react-types/table" "^3.9.0" + "@swc/helpers" "^0.5.0" + +"@react-stately/tabs@^3.6.1": + version "3.6.1" + resolved "https://registry.yarnpkg.com/@react-stately/tabs/-/tabs-3.6.1.tgz#61c010c82ba0d6fde7804245742e0569d6b9eafd" + integrity sha512-akGmejEaXg2RMZuWbRZ0W1MLr515e0uV0iVZefKBlcHtD/mK9K9Bo2XxBScf0TIhaPJ6Qa2w2k2+V7RmT7r8Ag== + dependencies: + "@react-stately/list" "^3.10.0" + "@react-stately/utils" "^3.8.0" + "@react-types/shared" "^3.21.0" + "@react-types/tabs" "^3.3.3" + "@swc/helpers" "^0.5.0" + +"@react-stately/toggle@^3.2.1", "@react-stately/toggle@^3.4.4", "@react-stately/toggle@^3.6.3": + version "3.6.3" + resolved "https://registry.yarnpkg.com/@react-stately/toggle/-/toggle-3.6.3.tgz#4de25fd458890e37f6c363d058b018e5f11a9882" + integrity sha512-4kIMTjRjtaapFk4NVmBoFDUYfkmyqDaYAmHpRyEIHTDpBYn0xpxZL/MHv9WuLYa4MjJLRp0MeicuWiZ4ai7f6Q== + dependencies: + "@react-stately/utils" "^3.8.0" + "@react-types/checkbox" "^3.5.2" + "@react-types/shared" "^3.21.0" + "@swc/helpers" "^0.5.0" + +"@react-stately/tooltip@^3.4.5": + version "3.4.5" + resolved "https://registry.yarnpkg.com/@react-stately/tooltip/-/tooltip-3.4.5.tgz#9ba147485d7d7123da91bb417d3722351e90394d" + integrity sha512-VrwQcjnrNddSulh+Zql8P8cORRnWqSPkHPqQwD/Ly91Rva3gUIy+VwnYeThbGDxRzlUv1wfN+UQraEcrgwSZ/Q== + dependencies: + "@react-stately/overlays" "^3.6.3" + "@react-stately/utils" "^3.8.0" + "@react-types/tooltip" "^3.4.5" + "@swc/helpers" "^0.5.0" + +"@react-stately/tree@^3.1.2", "@react-stately/tree@^3.7.3": + version "3.7.3" + resolved "https://registry.yarnpkg.com/@react-stately/tree/-/tree-3.7.3.tgz#d0b3da5db553e64e8f3def5bae45f765f62a3fd8" + integrity sha512-wB/68qetgCYTe7OMqbTFmtWRrEqVdIH2VlACPCsMlECr3lW9TrrbrOwlHIJfLhkxWvY3kSCoKcOJ5KTiJC9LGA== + dependencies: + "@react-stately/collections" "^3.10.2" + "@react-stately/selection" "^3.14.0" + "@react-stately/utils" "^3.8.0" + "@react-types/shared" "^3.21.0" + "@swc/helpers" "^0.5.0" + +"@react-stately/utils@^3.6.0", "@react-stately/utils@^3.8.0": + version "3.8.0" + resolved "https://registry.yarnpkg.com/@react-stately/utils/-/utils-3.8.0.tgz#88a45742c58bde804f6cbecb20ea3833915cfdf0" + integrity sha512-wCIoFDbt/uwNkWIBF+xV+21k8Z8Sj5qGO3uptTcVmjYcZngOaGGyB4NkiuZhmhG70Pkv+yVrRwoC1+4oav9cCg== + dependencies: + "@swc/helpers" "^0.5.0" + +"@react-types/button@^3.9.0": + version "3.9.0" + resolved "https://registry.yarnpkg.com/@react-types/button/-/button-3.9.0.tgz#66df80cafaa98aaa34c331e927d21fdf4a0bdc4a" + integrity sha512-YhbchUDB7yL88ZFA0Zqod6qOMdzCLD5yVRmhWymk0yNLvB7EB1XX4c5sRANalfZSFP0RpCTlkjB05Hzp4+xOYg== + dependencies: + "@react-types/shared" "^3.21.0" + +"@react-types/calendar@^3.4.1": + version "3.4.1" + resolved "https://registry.yarnpkg.com/@react-types/calendar/-/calendar-3.4.1.tgz#fa12696b3aae5247b3b1dcf747cbc2c5d5d7c30c" + integrity sha512-tiCkHi6IQtYcVoAESG79eUBWDXoo8NImo+Mj8WAWpo1lOA3SV1W2PpeXkoRNqtloilQ0aYcmsaJJUhciQG4ndg== + dependencies: + "@internationalized/date" "^3.5.0" + "@react-types/shared" "^3.21.0" + +"@react-types/checkbox@^3.2.1", "@react-types/checkbox@^3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@react-types/checkbox/-/checkbox-3.5.2.tgz#f463befdd37bc2c9e5c6febd62e53131e8983fa4" + integrity sha512-iRQrbY8vRRya3bt3i7sHAifhP/ozfkly1/TItkRK5MNPRNPRDKns55D8ZFkRMj4NSyKQpjVt1zzlBXrnSOxWdQ== + dependencies: + "@react-types/shared" "^3.21.0" + +"@react-types/combobox@^3.8.1": + version "3.8.1" + resolved "https://registry.yarnpkg.com/@react-types/combobox/-/combobox-3.8.1.tgz#ac9c7abcdde708b09fae78b0dd6d88993f6a8177" + integrity sha512-F910tk8K5qE0TksJ9LRGcJIpaPzpsCnFxT6E9oJH3ssK4N8qZL8QfT9tIKo2XWhK9Uxb/tIZOGQwA8Cn7TyZrA== + dependencies: + "@react-types/shared" "^3.21.0" + +"@react-types/datepicker@^3.6.1": + version "3.6.1" + resolved "https://registry.yarnpkg.com/@react-types/datepicker/-/datepicker-3.6.1.tgz#07debffdd611da13f6926266687c22b92624b7ab" + integrity sha512-/M+0e9hL9w98f5k4EoxeH2UfPsUPoS6fvmFsmwUZJcDiw7wP510XngnDLy9GOHj9xgqagZ20S79cxcEuTq7U6g== + dependencies: + "@internationalized/date" "^3.5.0" + "@react-types/calendar" "^3.4.1" + "@react-types/overlays" "^3.8.3" + "@react-types/shared" "^3.21.0" + +"@react-types/dialog@*", "@react-types/dialog@^3.5.6": + version "3.5.6" + resolved "https://registry.yarnpkg.com/@react-types/dialog/-/dialog-3.5.6.tgz#e874f0896d595e5a7f5924165b0db78e5f62fe9d" + integrity sha512-lwwaAgoi4xe4eEJxBns+cBIRstIPTKWWddMkp51r7Teeh2uKs1Wki7N+Acb9CfT6JQTQDqtVJm6K76rcqNBVwg== + dependencies: + "@react-types/overlays" "^3.8.3" + "@react-types/shared" "^3.21.0" + +"@react-types/grid@^3.2.2": + version "3.2.2" + resolved "https://registry.yarnpkg.com/@react-types/grid/-/grid-3.2.2.tgz#9434d8ed0a80a64e38b2c95f8bbccfa794fd3888" + integrity sha512-R4USOpn1xfsWVGwZsakRlIdsBA10XNCnAUcRXQTn2JmzLjDCtcln6uYo9IFob080lQuvjkSw3j4zkw7Yo4Qepg== + dependencies: + "@react-types/shared" "^3.21.0" + +"@react-types/label@^3.8.1": + version "3.8.1" + resolved "https://registry.yarnpkg.com/@react-types/label/-/label-3.8.1.tgz#b076a0fb955051307bfa3fed7e18ce0dc76d8c7b" + integrity sha512-fA6zMTF2TmfU7H8JBJi0pNd8t5Ak4gO+ZA3cZBysf8r3EmdAsgr3LLqFaGTnZzPH1Fux6c7ARI3qjVpyNiejZQ== + dependencies: + "@react-types/shared" "^3.21.0" + +"@react-types/menu@^3.1.1", "@react-types/menu@^3.9.5": + version "3.9.5" + resolved "https://registry.yarnpkg.com/@react-types/menu/-/menu-3.9.5.tgz#9f67aebda9f491f0e94e2de7a15898c6cabf0772" + integrity sha512-KB5lJM0p9PxwpVlHV9sRdpjh+sqINeHrJgGizy/cQI9bj26nupiEgamSD14dULNI6BFT9DkgKCsobBtE04DDKQ== + dependencies: + "@react-types/overlays" "^3.8.3" + "@react-types/shared" "^3.21.0" + +"@react-types/numberfield@^3.6.1": + version "3.6.1" + resolved "https://registry.yarnpkg.com/@react-types/numberfield/-/numberfield-3.6.1.tgz#da13f9086181a64a7e2e39f500584bdca20097b3" + integrity sha512-jdMCN0mQ7eZkPrCKYkkG+jSjcG2VQ5P7mR9tTaCQeQK1wo+tF/8LWD+6n6dU7hH/qlU9sxVEg3U3kJ9sgNK+Hw== + dependencies: + "@react-types/shared" "^3.21.0" + +"@react-types/overlays@^3.4.0", "@react-types/overlays@^3.8.3": + version "3.8.3" + resolved "https://registry.yarnpkg.com/@react-types/overlays/-/overlays-3.8.3.tgz#47132f08ae3a115273036d98b9441a51d4a4ab09" + integrity sha512-TrCG2I2+V+TD0PGi3CqfnyU5jEzcelSGgYJQvVxsl5Vv3ri7naBLIsOjF9x66tPxhINLCPUtOze/WYRAexp8aw== + dependencies: + "@react-types/shared" "^3.21.0" + +"@react-types/radio@^3.1.1", "@react-types/radio@^3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@react-types/radio/-/radio-3.5.2.tgz#399e220e2529b2e7c93aa117d39adcca6dc24d1f" + integrity sha512-crYQ+97abd5v0Iw9X+Tt+E7KWdm5ckr4g0+Iy8byV1g6MyiBOsNtq9QT99TOzyWJPqqD8T9qZfAOk49wK7KEDg== + dependencies: + "@react-types/shared" "^3.21.0" + +"@react-types/searchfield@^3.5.1": + version "3.5.1" + resolved "https://registry.yarnpkg.com/@react-types/searchfield/-/searchfield-3.5.1.tgz#9e8d9b4ff16749a821cbba20e0069f5d77a8b9f2" + integrity sha512-+v9fo50JrZOfFzbdgJsW39hyTFv1gVH458nx82aidYJzQocFJniiAEl0ZhhRzbE8RijyjLleKIAY+klPeFmEaQ== + dependencies: + "@react-types/shared" "^3.21.0" + "@react-types/textfield" "^3.8.1" + +"@react-types/select@^3.8.4": + version "3.8.4" + resolved "https://registry.yarnpkg.com/@react-types/select/-/select-3.8.4.tgz#564e6d89095d736ed580a733dd8baa7fadab05bc" + integrity sha512-jHBaLiAHTcYPz52kuJpypBbR0WAA+YCZHy2HH+W8711HuTqePZCEp6QAWHK9Fw0qwSZQ052jYaWvOsgEZZ6ojQ== + dependencies: + "@react-types/shared" "^3.21.0" + +"@react-types/shared@*", "@react-types/shared@^3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@react-types/shared/-/shared-3.21.0.tgz#1af41fdf7dfbdbd33bbc1210617c43ed0d4ef20c" + integrity sha512-wJA2cUF8dP4LkuNUt9Vh2kkfiQb2NLnV2pPXxVnKJZ7d4x2/7VPccN+LYPnH8m0X3+rt50cxWuPKQmjxSsCFOg== + +"@react-types/slider@^3.6.2": + version "3.6.2" + resolved "https://registry.yarnpkg.com/@react-types/slider/-/slider-3.6.2.tgz#b401bbbd473b62edc394ac3c41ed6df329d111d4" + integrity sha512-LSvna1gpOvBxOBI5I/CYEtkAshWYwPlxE9F/jCaxCa9Q7E9xZp1hFFGY87iQ1A3vQM5SCa5PFStwOvXO7rA55w== + dependencies: + "@react-types/shared" "^3.21.0" + +"@react-types/switch@^3.4.2": + version "3.4.2" + resolved "https://registry.yarnpkg.com/@react-types/switch/-/switch-3.4.2.tgz#8c0a8f8dfcaae29ccd9409a2beaac0d31a131027" + integrity sha512-OQWpawikWhF+ET1/kE0/JeJVr6gHjkR72p/idTsT7RUJySBcehhAscbIA8iWzVWJvdFCVF2hG7uzBAJTeDMr9A== + dependencies: + "@react-types/checkbox" "^3.5.2" + "@react-types/shared" "^3.21.0" + +"@react-types/table@^3.9.0": + version "3.9.0" + resolved "https://registry.yarnpkg.com/@react-types/table/-/table-3.9.0.tgz#0053ce5b78f2214afaf7e38cdd96a57eecbd2ff9" + integrity sha512-WOLxZ3tzLA4gxRxvnsZhnnQDbh4Qe/johpHNk4coSOFOP5W8PbunPacXnbvdPkSx6rqrOIzCnYcZCtgk4gDQmg== + dependencies: + "@react-types/grid" "^3.2.2" + "@react-types/shared" "^3.21.0" + +"@react-types/tabs@^3.3.3": + version "3.3.3" + resolved "https://registry.yarnpkg.com/@react-types/tabs/-/tabs-3.3.3.tgz#8601d9cd03c6aa4cca1227df667ae8cedb58839c" + integrity sha512-Zc4g5TIwJpKS5fiT9m4dypbCr1xqtauL4wqM76fGERCAZy0FwXTH/yjzHJDYKyWFJrQNWtJ0KAhJR/ZqKDVnIw== + dependencies: + "@react-types/shared" "^3.21.0" + +"@react-types/textfield@^3.8.1": + version "3.8.1" + resolved "https://registry.yarnpkg.com/@react-types/textfield/-/textfield-3.8.1.tgz#433c82d8f696ed77b1d5e71aadc40cbe378b536c" + integrity sha512-p8Xmew9kzJd+tCM7h9LyebZHpv7SH1IE1Nu13hLCOV5cZ/tVVVCwjNGLMv4MtUpSn++H42YLJgAW9Uif+a+RHg== + dependencies: + "@react-types/shared" "^3.21.0" + +"@react-types/tooltip@^3.4.5": + version "3.4.5" + resolved "https://registry.yarnpkg.com/@react-types/tooltip/-/tooltip-3.4.5.tgz#f1edf9940bc3cde89ae9d49fda815e16f253dfd5" + integrity sha512-pv87Vlu+Pn1Titw199y5aiSuXF/GHX+fBCihi9BeePqtwYm505e/Si01BNh5ejCeXXOS4JIMuXwmGGzGVdGk6Q== + dependencies: + "@react-types/overlays" "^3.8.3" + "@react-types/shared" "^3.21.0" + "@sideway/address@^4.1.3": version "4.1.4" resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0" @@ -1810,6 +3012,21 @@ dependencies: "@sinonjs/commons" "^3.0.0" +"@swc/helpers@^0.4.14": + version "0.4.36" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.4.36.tgz#fcfff76ed52c214f357e8e9d3f37b568908072d9" + integrity sha512-5lxnyLEYFskErRPenYItLRSge5DjrJngYKdVjRSrWfza9G6KkgHEXi0vUZiyUeMU5JfXH1YnvXZzSp8ul88o2Q== + dependencies: + legacy-swc-helpers "npm:@swc/helpers@=0.4.14" + tslib "^2.4.0" + +"@swc/helpers@^0.5.0": + version "0.5.3" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.3.tgz#98c6da1e196f5f08f977658b80d6bd941b5f294f" + integrity sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A== + dependencies: + tslib "^2.4.0" + "@tsconfig/react-native@^3.0.0": version "3.0.2" resolved "https://registry.yarnpkg.com/@tsconfig/react-native/-/react-native-3.0.2.tgz#f7db242eee4820f5a3d0edcc86c920bb7d9ec0f2" @@ -2014,6 +3231,16 @@ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== +"@types/strip-bom@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/strip-bom/-/strip-bom-3.0.0.tgz#14a8ec3956c2e81edb7520790aecf21c290aebd2" + integrity sha512-xevGOReSYGM7g/kUBZzPqCrR/KYAo+F0yiPc85WFTJa0MSLtyFTVTU6cJu/aV4mid7IffDIWqo69THF2o4JiEQ== + +"@types/strip-json-comments@0.0.30": + version "0.0.30" + resolved "https://registry.yarnpkg.com/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz#9aa30c04db212a9a0649d6ae6fd50accc40748a1" + integrity sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ== + "@types/yargs-parser@*": version "21.0.0" resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" @@ -2527,6 +3754,11 @@ body-parser@^1.20.2: type-is "~1.6.18" unpipe "1.0.0" +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -2718,6 +3950,11 @@ clone@^1.0.2: resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== +clsx@^1.1.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" + integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== + co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" @@ -2885,6 +4122,37 @@ crypto-js@^4.1.1: resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.1.1.tgz#9e485bcf03521041bd85844786b83fb7619736cf" integrity sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw== +css-in-js-utils@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/css-in-js-utils/-/css-in-js-utils-3.1.0.tgz#640ae6a33646d401fc720c54fc61c42cd76ae2bb" + integrity sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A== + dependencies: + hyphenate-style-name "^1.0.3" + +css-select@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" + integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== + dependencies: + boolbase "^1.0.0" + css-what "^6.1.0" + domhandler "^5.0.2" + domutils "^3.0.1" + nth-check "^2.0.1" + +css-tree@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== + dependencies: + mdn-data "2.0.14" + source-map "^0.6.1" + +css-what@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + csstype@^3.0.2: version "3.1.2" resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" @@ -2999,6 +4267,44 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" +dom-helpers@^5.0.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902" + integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA== + dependencies: + "@babel/runtime" "^7.8.7" + csstype "^3.0.2" + +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" + +domelementtype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== + dependencies: + domelementtype "^2.3.0" + +domutils@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e" + integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA== + dependencies: + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + dotenv@^16.3.1: version "16.3.1" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.3.1.tgz#369034de7d7e5b120972693352a3bf112172cc3e" @@ -3029,6 +4335,11 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== +entities@^4.2.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + envinfo@^7.7.2: version "7.10.0" resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.10.0.tgz#55146e3909cc5fe63c22da63fb15b05aeac35b13" @@ -3379,6 +4690,11 @@ expect@^29.6.2: jest-message-util "^29.6.2" jest-util "^29.6.2" +expo-linear-gradient@12.3.0: + version "12.3.0" + resolved "https://registry.yarnpkg.com/expo-linear-gradient/-/expo-linear-gradient-12.3.0.tgz#7abd8fedbf0138c86805aebbdfbbf5e5fa865f19" + integrity sha512-f9e+Oxe5z7fNQarTBZXilMyswlkbYWQHONVfq8MqmiEnW3h9XsxxmVJLG8uVQSQPUsbW+x1UUT/tnU6mkMWeLg== + express@^4.18.2: version "4.18.2" resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" @@ -3447,6 +4763,11 @@ fast-levenshtein@^2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== +fast-loops@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/fast-loops/-/fast-loops-1.1.3.tgz#ce96adb86d07e7bf9b4822ab9c6fac9964981f75" + integrity sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g== + fast-xml-parser@^4.0.12: version "4.2.6" resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.2.6.tgz#30ad37b014c16e31eec0e01fbf90a85cedb4eacf" @@ -3822,6 +5143,11 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== +hyphenate-style-name@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz#691879af8e220aea5750e8827db4ef62a54e361d" + integrity sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ== + iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -3888,6 +5214,14 @@ inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== +inline-style-prefixer@^6.0.1: + version "6.0.4" + resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-6.0.4.tgz#4290ed453ab0e4441583284ad86e41ad88384f44" + integrity sha512-FwXmZC2zbeeS7NzGjJ6pAiqRhXR0ugUShSNb6GApMl6da0/XGc4MOJsoWAywia52EEWbXNSy0pzkwz/+Y+swSg== + dependencies: + css-in-js-utils "^3.1.0" + fast-loops "^1.1.3" + internal-slot@^1.0.3, internal-slot@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" @@ -3897,6 +5231,16 @@ internal-slot@^1.0.3, internal-slot@^1.0.5: has "^1.0.3" side-channel "^1.0.4" +intl-messageformat@^10.1.0: + version "10.5.4" + resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-10.5.4.tgz#7b212b083f1b354d7e282518e78057e025134af9" + integrity sha512-z+hrFdiJ/heRYlzegrdFYqU1m/KOMOVMqNilIArj+PbsuU8TNE7v4TWdQgSoxlxbT4AcZH3Op3/Fu15QTp+W1w== + dependencies: + "@formatjs/ecma402-abstract" "1.17.2" + "@formatjs/fast-memoize" "2.2.0" + "@formatjs/icu-messageformat-parser" "2.7.0" + tslib "^2.4.0" + invariant@*, invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" @@ -4665,6 +6009,13 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== +"legacy-swc-helpers@npm:@swc/helpers@=0.4.14": + version "0.4.14" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.4.14.tgz#1352ac6d95e3617ccb7c1498ff019654f1e12a74" + integrity sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw== + dependencies: + tslib "^2.4.0" + leven@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" @@ -4785,6 +6136,11 @@ makeerror@1.0.12: dependencies: tmpl "1.0.5" +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" @@ -5214,6 +6570,11 @@ node-stream-zip@^1.9.1: resolved "https://registry.yarnpkg.com/node-stream-zip/-/node-stream-zip-1.15.0.tgz#158adb88ed8004c6c49a396b50a6a5de3bca33ea" integrity sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw== +normalize-css-color@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/normalize-css-color/-/normalize-css-color-1.0.2.tgz#02991e97cccec6623fe573afbbf0de6a1f3e9f8d" + integrity sha512-jPJ/V7Cp1UytdidsPqviKEElFQJs22hUUgK5BOPHTwOonNCk7/2qOxhhqzEajmFrWJowADFfOFh1V+aWkRfy+w== + normalize-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" @@ -5226,6 +6587,13 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + nullthrows@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1" @@ -5669,6 +7037,14 @@ react-native-passport-reader@^1.0.3: resolved "https://registry.yarnpkg.com/react-native-passport-reader/-/react-native-passport-reader-1.0.3.tgz#3242bbdb3c1ade4c050a8632cca6f11fe0edc648" integrity sha512-v6ZENSrYVXHYkaUs5dkgDXCPJazA4QIJeG4pT/GZ3ZW5+f2ZoqXLenIw38dY1gBy/+/IoRM2YnzSlR+lF9x7Aw== +react-native-svg@13.4.0: + version "13.4.0" + resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-13.4.0.tgz#82399ba0956c454144618aa581e2d748dd3f010a" + integrity sha512-B3TwK+H0+JuRhYPzF21AgqMt4fjhCwDZ9QUtwNstT5XcslJBXC0FoTkdZo8IEb1Sv4suSqhZwlAY6lwOv3tHag== + dependencies: + css-select "^5.1.0" + css-tree "^1.1.3" + react-native@0.72.3: version "0.72.3" resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.72.3.tgz#f8d85ec81c9f3592d091ec8e9ac1694956a72765" @@ -5724,6 +7100,34 @@ react-shallow-renderer@^16.15.0: object-assign "^4.1.1" react-is "^16.12.0 || ^17.0.0 || ^18.0.0" +react-stately@^3.21.0: + version "3.27.1" + resolved "https://registry.yarnpkg.com/react-stately/-/react-stately-3.27.1.tgz#b24992bd72da1b1632bf4f4232d87ce6913a19bd" + integrity sha512-qHhivqOpyATaWwoj3xl3IqqoEnib+dsl2vYlOz92CT5Ntm6lprF7KO+LkxdkS0SnUckdGewFM1NjCmbK7wPJgw== + dependencies: + "@react-stately/calendar" "^3.4.1" + "@react-stately/checkbox" "^3.5.1" + "@react-stately/collections" "^3.10.2" + "@react-stately/combobox" "^3.7.1" + "@react-stately/data" "^3.10.3" + "@react-stately/datepicker" "^3.8.0" + "@react-stately/dnd" "^3.2.5" + "@react-stately/list" "^3.10.0" + "@react-stately/menu" "^3.5.6" + "@react-stately/numberfield" "^3.6.2" + "@react-stately/overlays" "^3.6.3" + "@react-stately/radio" "^3.9.1" + "@react-stately/searchfield" "^3.4.6" + "@react-stately/select" "^3.5.5" + "@react-stately/selection" "^3.14.0" + "@react-stately/slider" "^3.4.4" + "@react-stately/table" "^3.11.2" + "@react-stately/tabs" "^3.6.1" + "@react-stately/toggle" "^3.6.3" + "@react-stately/tooltip" "^3.4.5" + "@react-stately/tree" "^3.7.3" + "@react-types/shared" "^3.21.0" + react-test-renderer@18.2.0: version "18.2.0" resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-18.2.0.tgz#1dd912bd908ff26da5b9fca4fd1c489b9523d37e" @@ -5794,6 +7198,11 @@ regenerator-runtime@^0.13.11, regenerator-runtime@^0.13.2: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== +regenerator-runtime@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" + integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== + regenerator-transform@^0.15.1: version "0.15.1" resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" @@ -6240,6 +7649,11 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + strip-bom@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" @@ -6250,6 +7664,11 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== +strip-json-comments@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" @@ -6362,6 +7781,16 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== +tsconfig@7: + version "7.0.0" + resolved "https://registry.yarnpkg.com/tsconfig/-/tsconfig-7.0.0.tgz#84538875a4dc216e5c4a5432b3a4dec3d54e91b7" + integrity sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw== + dependencies: + "@types/strip-bom" "^3.0.0" + "@types/strip-json-comments" "0.0.30" + strip-bom "^3.0.0" + strip-json-comments "^2.0.0" + tslib@^1.8.1: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" @@ -6372,6 +7801,11 @@ tslib@^2.0.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.1.tgz#fd8c9a0ff42590b25703c0acb3de3d3f4ede0410" integrity sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig== +tslib@^2.4.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" @@ -6458,6 +7892,11 @@ typescript@4.8.4: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.4.tgz#c464abca159669597be5f96b8943500b238e60e6" integrity sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ== +typescript@^4.9.4: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + uglify-es@^3.1.9: version "3.3.9" resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677" diff --git a/circuits/test/passport.test.ts b/circuits/test/passport.test.ts index d1bd22510..991ded0bb 100644 --- a/circuits/test/passport.test.ts +++ b/circuits/test/passport.test.ts @@ -129,15 +129,15 @@ describe('Circuit tests', function () { )).to.be.rejected; }) - it('should support selective disclosure', async function () { + it.only('should support selective disclosure', async function () { const attributeToPosition = { - issuing_state: [2, 4], - name: [5, 43], + issuing_state: [2, 5], + name: [5, 44], passport_number: [44, 52], - nationality: [54, 56], + nationality: [54, 57], date_of_birth: [57, 63], - gender: [65], - expiry_date: [66, 72], + gender: [64, 65], + expiry_date: [65, 71], } const attributeToReveal = { @@ -146,7 +146,7 @@ describe('Circuit tests', function () { passport_number: false, nationality: true, date_of_birth: false, - gender:false, + gender: false, expiry_date: false, } @@ -173,9 +173,10 @@ describe('Circuit tests', function () { ) console.log('proof done'); + console.log('proof:', proof); const revealChars = publicSignals.slice(0, 88).map((byte: string) => String.fromCharCode(parseInt(byte, 10))) - // console.log('revealChars', revealChars) + console.log('revealChars', revealChars) for(let i = 0; i < revealChars.length; i++) { if (bitmap[i] == '1') { @@ -197,7 +198,7 @@ describe('Circuit tests', function () { } }); - // console.log('reveal', reveal) + console.log('reveal', reveal) const vKey = JSON.parse(fs.readFileSync("build/verification_key.json")); const verified = await groth16.verify(