├── Rust-Backend ├── .gitignore ├── Cargo.lock ├── Cargo.toml └── src │ ├── data_preprocess.rs │ ├── main.rs │ ├── sol_connect.rs │ ├── study.csv │ ├── traning_example.rs │ └── wallet-keypair.json └── data_save_program ├── .gitignore ├── .prettierignore ├── Anchor.toml ├── Cargo.lock ├── Cargo.toml ├── client └── client.ts ├── migrations └── deploy.ts ├── package-lock.json ├── package.json ├── programs └── hello-anchor │ ├── Cargo.toml │ ├── Xargo.toml │ └── src │ └── lib.rs ├── tests └── anchor.ts └── tsconfig.json /Rust-Backend/.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /Rust-Backend/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "rust-backend" 3 | version = "0.1.0" 4 | edition = "2021" 5 | # respository = "https://github.com/Noban130/rust-backend" 6 | 7 | [dependencies] 8 | linfa = { version = "0.7"} 9 | linfa-linear = "0.7" 10 | csv = "1.1" 11 | tokio = {version = "1", features = ["full"]} 12 | rand = "0.8" 13 | ndarray = "0.16.1" 14 | anchor-client = { version = "0.30.1 ", features = ["async"] } 15 | base64 = "0.22.1" 16 | bincode = "1.3.3" 17 | borsh = "1.4.0" 18 | serde_json = "1.0.117" 19 | solana-address-lookup-table-program = "1.18.15" 20 | solana-client = "1.18.9" 21 | solana-sdk = "1.18.9" 22 | solana-transaction-status = "1.18.15" 23 | solana-program-client = "0.1.0" 24 | -------------------------------------------------------------------------------- /Rust-Backend/src/data_preprocess.rs: -------------------------------------------------------------------------------- 1 | use rand::seq::SliceRandom; 2 | use rand::Rng; 3 | // use std::error::Error; 4 | 5 | pub fn split_data_randomly( 6 | x: Vec, 7 | y: Vec, 8 | min_chunk_size: usize, 9 | max_chunk_size: usize 10 | ) -> Vec<(Vec, Vec)> { 11 | let mut rng = rand::thread_rng(); 12 | 13 | // Combine x and y into a tuple vector and shuffle 14 | let mut data: Vec<(f64, f64)> = x.into_iter().zip(y.into_iter()).collect(); 15 | data.shuffle(&mut rng); 16 | 17 | let mut chunks = Vec::new(); 18 | let mut remaining_data = data; 19 | 20 | while !remaining_data.is_empty() { 21 | // Determine the size of the next chunk, bounded by the remaining data size 22 | let chunk_size = rng.gen_range(min_chunk_size..=max_chunk_size) 23 | .min(remaining_data.len()); 24 | 25 | // Split off a chunk of the data 26 | let chunk: Vec<(f64, f64)> = remaining_data.drain(0..chunk_size).collect(); 27 | 28 | // Separate the chunk into x and y again 29 | let (chunk_x, chunk_y): (Vec, Vec) = chunk.into_iter().unzip(); 30 | chunks.push((chunk_x, chunk_y)); 31 | } 32 | 33 | chunks 34 | } -------------------------------------------------------------------------------- /Rust-Backend/src/main.rs: -------------------------------------------------------------------------------- 1 | use std::error::Error; 2 | pub mod traning_example; 3 | pub mod data_preprocess; 4 | // use std::env; 5 | pub mod sol_connect; 6 | // use std::iter::repeat_with; 7 | #[tokio::main] 8 | async fn main() -> Result<(), Box>{ 9 | // let current_dir = env::current_dir()?; 10 | // println!("Current working directory: {:?}", current_dir); 11 | let (mut x_value, mut y_value): (Vec, Vec) = (Vec::new(), Vec::new()); 12 | match traning_example::read_csv("src/study.csv") { 13 | Ok((x, y)) => { 14 | // println!("{:?}", (x, y)); 15 | x_value = x; 16 | y_value = y 17 | }, 18 | Err(e) => { 19 | eprintln!("Error reading CSV: {}", e); 20 | 21 | } 22 | } 23 | let min_chunk_size = 2; 24 | let max_chunk_size = 10; 25 | 26 | let chunks = data_preprocess::split_data_randomly(x_value, y_value, min_chunk_size, max_chunk_size); 27 | 28 | for (i, (chunk_x, chunk_y)) in chunks.iter().enumerate() { 29 | println!("Chunk {}: x = {:?}, y = {:?}", i + 1, chunk_x, chunk_y); 30 | let mut model = traning_example::LinearRegression::new(); 31 | 32 | // Ensure chunks are of sufficient size 33 | if chunk_x.len() < 2 { 34 | eprintln!("Chunk {} has too few data points for linear regression", i + 1); 35 | continue; 36 | } 37 | 38 | // Train the model 39 | model.fit(chunk_x, chunk_y); 40 | // Print the model parameters 41 | println!("Chunk {}: Slope = {:.4}, Intercept = {:.4}", i + 1, model.slope, model.intercept); 42 | 43 | sol_connect::save_data_to_solana(model.slope, model.intercept); 44 | } 45 | Ok(()) 46 | 47 | } -------------------------------------------------------------------------------- /Rust-Backend/src/sol_connect.rs: -------------------------------------------------------------------------------- 1 | use anchor_client; 2 | #[allow(unused_imports)] 3 | pub use borsh::{BorshDeserialize, BorshSerialize}; 4 | pub use solana_client::rpc_client::RpcClient; 5 | #[allow(unused_imports)] 6 | pub use solana_sdk::{ 7 | commitment_config::CommitmentConfig, 8 | instruction::{AccountMeta, Instruction}, 9 | message::Message, 10 | pubkey::Pubkey, 11 | signature::Signature, 12 | signature::{Keypair, Signer}, 13 | signer::EncodableKey, 14 | system_program, 15 | transaction::Transaction, 16 | }; 17 | use std::str::FromStr; 18 | 19 | /// Sign and submit a legacy transaction. 20 | /// 21 | /// This method fully signs a transaction with all required signers, which 22 | /// must be present in the `keypairs` slice. 23 | /// 24 | /// # Panics 25 | /// 26 | /// Panics when signing or signature verification fails. 27 | /// 28 | /// # Examples 29 | /// 30 | /// This example uses the [`solana_program_client`] crate. 31 | /// 32 | /// ``` 33 | 34 | #[derive(BorshSerialize, BorshDeserialize)] 35 | #[borsh(crate = "borsh")] 36 | pub struct NewAccount { 37 | slope: f64, 38 | intercept: f64 39 | } 40 | 41 | pub fn save_data_to_solana(slope: f64, intercept: f64) { 42 | // create a Rpc client connection 43 | let url = "https://api.devnet.solana.com".to_string(); 44 | let timeout = std::time::Duration::from_secs(50); 45 | let connection = RpcClient::new_with_timeout(url, timeout); 46 | let program_id = Pubkey::from_str("GsX4b44N2vkDjnZPLucGV7ou5qxADN2N6BZ7zU8vnJ1X").unwrap(); 47 | // let account_new = Keypair::new().pubkey(); 48 | let payer = Keypair::read_from_file("src/wallet-keypair.json").unwrap(); 49 | // let mut seed_text = if transaction_num == 0 { 50 | // b"new_init_seed"[..12].to_vec() 51 | // } else { 52 | // b"save_added_seed"[..15].to_vec() 53 | // }; 54 | let seed_text = b"final_seed"; 55 | // Convert string to &[u8] 56 | let seed_text_slice: &[u8] = seed_text; 57 | let (account_new, _) = Pubkey::find_program_address(&[&seed_text_slice,&payer.pubkey().to_bytes()], &program_id); 58 | // let instruction_name = "initialize"; 59 | // Check if the PDA account exists 60 | let mut instruction_name = "initialize"; 61 | match connection.get_account(&account_new) { 62 | Ok(account) => { 63 | println!("PDA account exists!"); 64 | 65 | // Deserialize the data if needed 66 | // Assuming you have a struct for the account data 67 | if account.data.len() > 0 { 68 | println!("PDA account is initialized!"); 69 | // You can deserialize the account data here to check its state 70 | instruction_name = "save_data" 71 | } else { 72 | println!("PDA account exists but is not initialized."); 73 | } 74 | } 75 | Err(_) => { 76 | println!("PDA account does not exist or is not initialized."); 77 | } 78 | } 79 | println!("instruction_name:{}", instruction_name); 80 | // construct instruction data 81 | let instruction_data = NewAccount { 82 | slope, 83 | intercept , 84 | }; 85 | 86 | // setup signers 87 | let signers = &[&payer]; 88 | // set up accounts 89 | let accounts = vec![ 90 | AccountMeta::new(account_new, false), 91 | AccountMeta::new_readonly(payer.pubkey(), true), 92 | AccountMeta::new_readonly(system_program::ID, false), 93 | ]; 94 | 95 | println!("{:?}", accounts); 96 | // call signed call 97 | let _tx_signature = signed_call( 98 | &connection, 99 | &program_id, 100 | &payer, 101 | signers, 102 | instruction_name, 103 | instruction_data, 104 | accounts, 105 | ) 106 | .unwrap(); 107 | } 108 | 109 | pub fn signed_call( 110 | connection: &RpcClient, 111 | program_id: &Pubkey, 112 | payer: &Keypair, 113 | signers: &[&Keypair], 114 | instruction_name: &str, 115 | instruction_data: NewAccount, 116 | accounts: Vec, 117 | ) -> Result> 118 | 119 | { 120 | // get discriminant 121 | let instruction_discriminant = get_discriminant("global", instruction_name); 122 | 123 | // construct instruction 124 | let ix = Instruction::new_with_borsh( 125 | program_id.clone(), 126 | &(instruction_discriminant, instruction_data), 127 | accounts.clone(), 128 | ); 129 | 130 | // get latest block hash 131 | let blockhash = connection.get_latest_blockhash().unwrap(); 132 | 133 | // construct message 134 | let msg = Message::new_with_blockhash(&[ix], Some(&payer.pubkey()), &blockhash); 135 | 136 | //construct transaction 137 | let mut tx = Transaction::new_unsigned(msg); 138 | 139 | // sign transaction 140 | tx.sign(signers, tx.message.recent_blockhash); 141 | 142 | // send and confirm transaction 143 | let tx_signature = connection 144 | .send_and_confirm_transaction_with_spinner(&tx) 145 | .map_err(|err| { 146 | println!("{:?}", err); 147 | }).unwrap(); 148 | println!("Program uploaded successfully. Transaction ID: {}", tx_signature); 149 | 150 | Ok(tx_signature) 151 | } 152 | 153 | /// returns function signature 154 | /// 155 | /// accepts name space and name function 156 | pub fn get_discriminant(namespace: &str, name: &str) -> [u8; 8] { 157 | let preimage = format!("{}:{}", namespace, name); 158 | 159 | let mut sighash = [0u8; 8]; 160 | sighash.copy_from_slice( 161 | &anchor_client::anchor_lang::solana_program::hash::hash(preimage.as_bytes()).to_bytes() 162 | [..8], 163 | ); 164 | 165 | // println!("signature-hash:{:?}", sighash); 166 | sighash 167 | } -------------------------------------------------------------------------------- /Rust-Backend/src/study.csv: -------------------------------------------------------------------------------- 1 | SAT,GPA 2 | 1714,2.4 3 | 1664,2.52 4 | 1760,2.54 5 | 1685,2.74 6 | 1693,2.83 7 | 1670,2.91 8 | 1764,3 9 | 1764,3 10 | 1792,3.01 11 | 1850,3.01 12 | 1735,3.02 13 | 1775,3.07 14 | 1735,3.08 15 | 1712,3.08 16 | 1773,3.12 17 | 1872,3.17 18 | 1755,3.17 19 | 1674,3.17 20 | 1842,3.17 21 | 1786,3.19 22 | 1761,3.19 23 | 1722,3.19 24 | 1663,3.2 25 | 1687,3.21 26 | 1974,3.24 27 | 1826,3.28 28 | 1787,3.28 29 | 1821,3.28 30 | 2020,3.28 31 | 1794,3.28 32 | 1769,3.28 33 | 1934,3.28 34 | 1775,3.29 35 | 1855,3.29 36 | 1880,3.29 37 | 1849,3.31 38 | 1808,3.32 39 | 1954,3.34 40 | 1777,3.37 41 | 1831,3.37 42 | 1865,3.37 43 | 1850,3.38 44 | 1966,3.38 45 | 1702,3.39 46 | 1990,3.39 47 | 1925,3.4 48 | 1824,3.4 49 | 1956,3.4 50 | 1857,3.41 51 | 1979,3.41 52 | 1802,3.41 53 | 1855,3.42 54 | 1907,3.42 55 | 1634,3.42 56 | 1879,3.44 57 | 1887,3.47 58 | 1730,3.47 59 | 1953,3.47 60 | 1781,3.47 61 | 1891,3.48 62 | 1964,3.49 63 | 1808,3.49 64 | 1893,3.5 65 | 2041,3.51 66 | 1893,3.51 67 | 1832,3.52 68 | 1850,3.52 69 | 1934,3.54 70 | 1861,3.58 71 | 1931,3.58 72 | 1933,3.59 73 | 1778,3.59 74 | 1975,3.6 75 | 1934,3.6 76 | 2021,3.61 77 | 2015,3.62 78 | 1997,3.64 79 | 2020,3.65 80 | 1843,3.71 81 | 1936,3.71 82 | 1810,3.71 83 | 1987,3.73 84 | 1962,3.76 85 | 2050,3.81 86 | 1730,3.47 87 | 1953,3.47 88 | 1781,3.47 89 | 1891,3.48 90 | 1964,3.49 91 | 1808,3.49 92 | 1893,3.5 93 | 2041,3.51 94 | 1893,3.51 95 | 1832,3.52 96 | 1850,3.52 97 | 1934,3.54 98 | 1861,3.58 99 | 1931,3.58 100 | 1933,3.59 101 | 1778,3.59 102 | -------------------------------------------------------------------------------- /Rust-Backend/src/traning_example.rs: -------------------------------------------------------------------------------- 1 | use csv::ReaderBuilder; 2 | use std::error::Error; 3 | 4 | 5 | pub fn read_csv(file_path: &str) -> Result<(Vec, Vec), Box> { 6 | let mut reader = ReaderBuilder::new() 7 | .has_headers(true) 8 | .from_path(file_path)?; 9 | 10 | let mut x_values = Vec::new(); 11 | let mut y_values = Vec::new(); 12 | 13 | for (i, result) in reader.records().enumerate() { 14 | match result { 15 | Ok(record) => { 16 | // println!("Record {}: {:?}", i + 1, record); 17 | let x: f64 = match record[0].parse() { 18 | Ok(val) => val, 19 | Err(e) => { 20 | eprintln!("Error parsing 'x' at record {}: {}", i + 1, e); 21 | continue; // Skip this record 22 | } 23 | }; 24 | let y: f64 = match record[1].parse() { 25 | Ok(val) => val, 26 | Err(e) => { 27 | eprintln!("Error parsing 'y' at record {}: {}", i + 1, e); 28 | continue; // Skip this record 29 | } 30 | }; 31 | x_values.push(x); 32 | y_values.push(y); 33 | } 34 | Err(e) => { 35 | eprintln!("Error reading record {}: {}", i + 1, e); 36 | } 37 | } 38 | } 39 | 40 | // println!("Parsed x values: {:?}", x_values); 41 | // println!("Parsed y values: {:?}", y_values); 42 | 43 | Ok((x_values, y_values)) 44 | } 45 | 46 | pub struct LinearRegression { 47 | pub slope: f64, 48 | pub intercept: f64, 49 | } 50 | 51 | impl LinearRegression { 52 | pub fn new() -> Self { 53 | LinearRegression { 54 | slope: 0.0, 55 | intercept: 0.0, 56 | } 57 | } 58 | 59 | pub fn fit(&mut self, x: &[f64], y: &[f64]) { 60 | let n = x.len() as f64; 61 | 62 | let x_mean = x.iter().sum::() / n; 63 | let y_mean = y.iter().sum::() / n; 64 | 65 | let numerator = x.iter().zip(y.iter()).map(|(xi, yi)| (xi - x_mean) * (yi - y_mean)).sum::(); 66 | let denominator = x.iter().map(|xi| (xi - x_mean).powi(2)).sum::(); 67 | 68 | self.slope = numerator / denominator; 69 | self.intercept = y_mean - self.slope * x_mean; 70 | } 71 | 72 | // fn predict(&self, x: &[f64]) -> Vec { 73 | // x.iter().map(|&xi| self.slope * xi + self.intercept).collect() 74 | // } 75 | } -------------------------------------------------------------------------------- /Rust-Backend/src/wallet-keypair.json: -------------------------------------------------------------------------------- 1 | [104,201,169,144,65,249,177,140,198,219,127,125,153,246,20,166,2,78,48,187,29,191,103,234,238,116,95,37,6,182,246,24,5,117,180,95,98,7,221,198,218,43,225,196,216,6,35,245,127,243,225,216,40,6,94,46,191,100,214,95,121,238,250,212] -------------------------------------------------------------------------------- /data_save_program/.gitignore: -------------------------------------------------------------------------------- 1 | .anchor 2 | .DS_Store 3 | target 4 | **/*.rs.bk 5 | node_modules 6 | test-ledger 7 | .yarn 8 | -------------------------------------------------------------------------------- /data_save_program/.prettierignore: -------------------------------------------------------------------------------- 1 | .anchor 2 | .DS_Store 3 | target 4 | node_modules 5 | dist 6 | build 7 | test-ledger 8 | -------------------------------------------------------------------------------- /data_save_program/Anchor.toml: -------------------------------------------------------------------------------- 1 | [features] 2 | seeds = false 3 | skip-lint = false 4 | 5 | [programs.localnet] 6 | hello_anchor = "GsX4b44N2vkDjnZPLucGV7ou5qxADN2N6BZ7zU8vnJ1X" 7 | 8 | [registry] 9 | url = "https://api.apr.dev" 10 | 11 | [provider] 12 | cluster = "Localnet" 13 | wallet = "~/.config/solana/id.json" 14 | 15 | [scripts] 16 | test = "yarn run ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts" 17 | client = "yarn run ts-node client/*.ts" 18 | -------------------------------------------------------------------------------- /data_save_program/Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "ahash" 7 | version = "0.7.8" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" 10 | dependencies = [ 11 | "getrandom 0.2.15", 12 | "once_cell", 13 | "version_check", 14 | ] 15 | 16 | [[package]] 17 | name = "ahash" 18 | version = "0.8.11" 19 | source = "registry+https://github.com/rust-lang/crates.io-index" 20 | checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" 21 | dependencies = [ 22 | "cfg-if", 23 | "once_cell", 24 | "version_check", 25 | "zerocopy", 26 | ] 27 | 28 | [[package]] 29 | name = "anchor-attribute-access-control" 30 | version = "0.29.0" 31 | source = "registry+https://github.com/rust-lang/crates.io-index" 32 | checksum = "e5f619f1d04f53621925ba8a2e633ba5a6081f2ae14758cbb67f38fd823e0a3e" 33 | dependencies = [ 34 | "anchor-syn", 35 | "proc-macro2", 36 | "quote", 37 | "syn 1.0.109", 38 | ] 39 | 40 | [[package]] 41 | name = "anchor-attribute-account" 42 | version = "0.29.0" 43 | source = "registry+https://github.com/rust-lang/crates.io-index" 44 | checksum = "e7f2a3e1df4685f18d12a943a9f2a7456305401af21a07c9fe076ef9ecd6e400" 45 | dependencies = [ 46 | "anchor-syn", 47 | "bs58 0.5.1", 48 | "proc-macro2", 49 | "quote", 50 | "syn 1.0.109", 51 | ] 52 | 53 | [[package]] 54 | name = "anchor-attribute-constant" 55 | version = "0.29.0" 56 | source = "registry+https://github.com/rust-lang/crates.io-index" 57 | checksum = "9423945cb55627f0b30903288e78baf6f62c6c8ab28fb344b6b25f1ffee3dca7" 58 | dependencies = [ 59 | "anchor-syn", 60 | "quote", 61 | "syn 1.0.109", 62 | ] 63 | 64 | [[package]] 65 | name = "anchor-attribute-error" 66 | version = "0.29.0" 67 | source = "registry+https://github.com/rust-lang/crates.io-index" 68 | checksum = "93ed12720033cc3c3bf3cfa293349c2275cd5ab99936e33dd4bf283aaad3e241" 69 | dependencies = [ 70 | "anchor-syn", 71 | "quote", 72 | "syn 1.0.109", 73 | ] 74 | 75 | [[package]] 76 | name = "anchor-attribute-event" 77 | version = "0.29.0" 78 | source = "registry+https://github.com/rust-lang/crates.io-index" 79 | checksum = "eef4dc0371eba2d8c8b54794b0b0eb786a234a559b77593d6f80825b6d2c77a2" 80 | dependencies = [ 81 | "anchor-syn", 82 | "proc-macro2", 83 | "quote", 84 | "syn 1.0.109", 85 | ] 86 | 87 | [[package]] 88 | name = "anchor-attribute-program" 89 | version = "0.29.0" 90 | source = "registry+https://github.com/rust-lang/crates.io-index" 91 | checksum = "b18c4f191331e078d4a6a080954d1576241c29c56638783322a18d308ab27e4f" 92 | dependencies = [ 93 | "anchor-syn", 94 | "quote", 95 | "syn 1.0.109", 96 | ] 97 | 98 | [[package]] 99 | name = "anchor-derive-accounts" 100 | version = "0.29.0" 101 | source = "registry+https://github.com/rust-lang/crates.io-index" 102 | checksum = "5de10d6e9620d3bcea56c56151cad83c5992f50d5960b3a9bebc4a50390ddc3c" 103 | dependencies = [ 104 | "anchor-syn", 105 | "quote", 106 | "syn 1.0.109", 107 | ] 108 | 109 | [[package]] 110 | name = "anchor-derive-serde" 111 | version = "0.29.0" 112 | source = "registry+https://github.com/rust-lang/crates.io-index" 113 | checksum = "f4e2e5be518ec6053d90a2a7f26843dbee607583c779e6c8395951b9739bdfbe" 114 | dependencies = [ 115 | "anchor-syn", 116 | "borsh-derive-internal 0.10.3", 117 | "proc-macro2", 118 | "quote", 119 | "syn 1.0.109", 120 | ] 121 | 122 | [[package]] 123 | name = "anchor-derive-space" 124 | version = "0.29.0" 125 | source = "registry+https://github.com/rust-lang/crates.io-index" 126 | checksum = "1ecc31d19fa54840e74b7a979d44bcea49d70459de846088a1d71e87ba53c419" 127 | dependencies = [ 128 | "proc-macro2", 129 | "quote", 130 | "syn 1.0.109", 131 | ] 132 | 133 | [[package]] 134 | name = "anchor-lang" 135 | version = "0.29.0" 136 | source = "registry+https://github.com/rust-lang/crates.io-index" 137 | checksum = "35da4785497388af0553586d55ebdc08054a8b1724720ef2749d313494f2b8ad" 138 | dependencies = [ 139 | "anchor-attribute-access-control", 140 | "anchor-attribute-account", 141 | "anchor-attribute-constant", 142 | "anchor-attribute-error", 143 | "anchor-attribute-event", 144 | "anchor-attribute-program", 145 | "anchor-derive-accounts", 146 | "anchor-derive-serde", 147 | "anchor-derive-space", 148 | "arrayref", 149 | "base64 0.13.1", 150 | "bincode", 151 | "borsh 0.10.3", 152 | "bytemuck", 153 | "getrandom 0.2.15", 154 | "solana-program", 155 | "thiserror", 156 | ] 157 | 158 | [[package]] 159 | name = "anchor-syn" 160 | version = "0.29.0" 161 | source = "registry+https://github.com/rust-lang/crates.io-index" 162 | checksum = "d9101b84702fed2ea57bd22992f75065da5648017135b844283a2f6d74f27825" 163 | dependencies = [ 164 | "anyhow", 165 | "bs58 0.5.1", 166 | "heck", 167 | "proc-macro2", 168 | "quote", 169 | "serde", 170 | "serde_json", 171 | "sha2 0.10.8", 172 | "syn 1.0.109", 173 | "thiserror", 174 | ] 175 | 176 | [[package]] 177 | name = "anyhow" 178 | version = "1.0.88" 179 | source = "registry+https://github.com/rust-lang/crates.io-index" 180 | checksum = "4e1496f8fb1fbf272686b8d37f523dab3e4a7443300055e74cdaa449f3114356" 181 | 182 | [[package]] 183 | name = "ark-bn254" 184 | version = "0.4.0" 185 | source = "registry+https://github.com/rust-lang/crates.io-index" 186 | checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" 187 | dependencies = [ 188 | "ark-ec", 189 | "ark-ff", 190 | "ark-std", 191 | ] 192 | 193 | [[package]] 194 | name = "ark-ec" 195 | version = "0.4.2" 196 | source = "registry+https://github.com/rust-lang/crates.io-index" 197 | checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" 198 | dependencies = [ 199 | "ark-ff", 200 | "ark-poly", 201 | "ark-serialize", 202 | "ark-std", 203 | "derivative", 204 | "hashbrown 0.13.2", 205 | "itertools", 206 | "num-traits", 207 | "zeroize", 208 | ] 209 | 210 | [[package]] 211 | name = "ark-ff" 212 | version = "0.4.2" 213 | source = "registry+https://github.com/rust-lang/crates.io-index" 214 | checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" 215 | dependencies = [ 216 | "ark-ff-asm", 217 | "ark-ff-macros", 218 | "ark-serialize", 219 | "ark-std", 220 | "derivative", 221 | "digest 0.10.7", 222 | "itertools", 223 | "num-bigint", 224 | "num-traits", 225 | "paste", 226 | "rustc_version", 227 | "zeroize", 228 | ] 229 | 230 | [[package]] 231 | name = "ark-ff-asm" 232 | version = "0.4.2" 233 | source = "registry+https://github.com/rust-lang/crates.io-index" 234 | checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" 235 | dependencies = [ 236 | "quote", 237 | "syn 1.0.109", 238 | ] 239 | 240 | [[package]] 241 | name = "ark-ff-macros" 242 | version = "0.4.2" 243 | source = "registry+https://github.com/rust-lang/crates.io-index" 244 | checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" 245 | dependencies = [ 246 | "num-bigint", 247 | "num-traits", 248 | "proc-macro2", 249 | "quote", 250 | "syn 1.0.109", 251 | ] 252 | 253 | [[package]] 254 | name = "ark-poly" 255 | version = "0.4.2" 256 | source = "registry+https://github.com/rust-lang/crates.io-index" 257 | checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" 258 | dependencies = [ 259 | "ark-ff", 260 | "ark-serialize", 261 | "ark-std", 262 | "derivative", 263 | "hashbrown 0.13.2", 264 | ] 265 | 266 | [[package]] 267 | name = "ark-serialize" 268 | version = "0.4.2" 269 | source = "registry+https://github.com/rust-lang/crates.io-index" 270 | checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" 271 | dependencies = [ 272 | "ark-serialize-derive", 273 | "ark-std", 274 | "digest 0.10.7", 275 | "num-bigint", 276 | ] 277 | 278 | [[package]] 279 | name = "ark-serialize-derive" 280 | version = "0.4.2" 281 | source = "registry+https://github.com/rust-lang/crates.io-index" 282 | checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" 283 | dependencies = [ 284 | "proc-macro2", 285 | "quote", 286 | "syn 1.0.109", 287 | ] 288 | 289 | [[package]] 290 | name = "ark-std" 291 | version = "0.4.0" 292 | source = "registry+https://github.com/rust-lang/crates.io-index" 293 | checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" 294 | dependencies = [ 295 | "num-traits", 296 | "rand 0.8.5", 297 | ] 298 | 299 | [[package]] 300 | name = "arrayref" 301 | version = "0.3.8" 302 | source = "registry+https://github.com/rust-lang/crates.io-index" 303 | checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a" 304 | 305 | [[package]] 306 | name = "arrayvec" 307 | version = "0.7.6" 308 | source = "registry+https://github.com/rust-lang/crates.io-index" 309 | checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" 310 | 311 | [[package]] 312 | name = "autocfg" 313 | version = "1.3.0" 314 | source = "registry+https://github.com/rust-lang/crates.io-index" 315 | checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" 316 | 317 | [[package]] 318 | name = "base64" 319 | version = "0.12.3" 320 | source = "registry+https://github.com/rust-lang/crates.io-index" 321 | checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" 322 | 323 | [[package]] 324 | name = "base64" 325 | version = "0.13.1" 326 | source = "registry+https://github.com/rust-lang/crates.io-index" 327 | checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" 328 | 329 | [[package]] 330 | name = "base64" 331 | version = "0.21.7" 332 | source = "registry+https://github.com/rust-lang/crates.io-index" 333 | checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" 334 | 335 | [[package]] 336 | name = "bincode" 337 | version = "1.3.3" 338 | source = "registry+https://github.com/rust-lang/crates.io-index" 339 | checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" 340 | dependencies = [ 341 | "serde", 342 | ] 343 | 344 | [[package]] 345 | name = "bitflags" 346 | version = "2.6.0" 347 | source = "registry+https://github.com/rust-lang/crates.io-index" 348 | checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" 349 | dependencies = [ 350 | "serde", 351 | ] 352 | 353 | [[package]] 354 | name = "bitmaps" 355 | version = "2.1.0" 356 | source = "registry+https://github.com/rust-lang/crates.io-index" 357 | checksum = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2" 358 | dependencies = [ 359 | "typenum", 360 | ] 361 | 362 | [[package]] 363 | name = "blake3" 364 | version = "1.5.1" 365 | source = "registry+https://github.com/rust-lang/crates.io-index" 366 | checksum = "30cca6d3674597c30ddf2c587bf8d9d65c9a84d2326d941cc79c9842dfe0ef52" 367 | dependencies = [ 368 | "arrayref", 369 | "arrayvec", 370 | "cc", 371 | "cfg-if", 372 | "constant_time_eq", 373 | "digest 0.10.7", 374 | ] 375 | 376 | [[package]] 377 | name = "block-buffer" 378 | version = "0.9.0" 379 | source = "registry+https://github.com/rust-lang/crates.io-index" 380 | checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" 381 | dependencies = [ 382 | "generic-array", 383 | ] 384 | 385 | [[package]] 386 | name = "block-buffer" 387 | version = "0.10.4" 388 | source = "registry+https://github.com/rust-lang/crates.io-index" 389 | checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 390 | dependencies = [ 391 | "generic-array", 392 | ] 393 | 394 | [[package]] 395 | name = "borsh" 396 | version = "0.9.3" 397 | source = "registry+https://github.com/rust-lang/crates.io-index" 398 | checksum = "15bf3650200d8bffa99015595e10f1fbd17de07abbc25bb067da79e769939bfa" 399 | dependencies = [ 400 | "borsh-derive 0.9.3", 401 | "hashbrown 0.11.2", 402 | ] 403 | 404 | [[package]] 405 | name = "borsh" 406 | version = "0.10.3" 407 | source = "registry+https://github.com/rust-lang/crates.io-index" 408 | checksum = "4114279215a005bc675e386011e594e1d9b800918cea18fcadadcce864a2046b" 409 | dependencies = [ 410 | "borsh-derive 0.10.3", 411 | "hashbrown 0.13.2", 412 | ] 413 | 414 | [[package]] 415 | name = "borsh" 416 | version = "1.5.1" 417 | source = "registry+https://github.com/rust-lang/crates.io-index" 418 | checksum = "a6362ed55def622cddc70a4746a68554d7b687713770de539e59a739b249f8ed" 419 | dependencies = [ 420 | "borsh-derive 1.5.1", 421 | "cfg_aliases", 422 | ] 423 | 424 | [[package]] 425 | name = "borsh-derive" 426 | version = "0.9.3" 427 | source = "registry+https://github.com/rust-lang/crates.io-index" 428 | checksum = "6441c552f230375d18e3cc377677914d2ca2b0d36e52129fe15450a2dce46775" 429 | dependencies = [ 430 | "borsh-derive-internal 0.9.3", 431 | "borsh-schema-derive-internal 0.9.3", 432 | "proc-macro-crate 0.1.5", 433 | "proc-macro2", 434 | "syn 1.0.109", 435 | ] 436 | 437 | [[package]] 438 | name = "borsh-derive" 439 | version = "0.10.3" 440 | source = "registry+https://github.com/rust-lang/crates.io-index" 441 | checksum = "0754613691538d51f329cce9af41d7b7ca150bc973056f1156611489475f54f7" 442 | dependencies = [ 443 | "borsh-derive-internal 0.10.3", 444 | "borsh-schema-derive-internal 0.10.3", 445 | "proc-macro-crate 0.1.5", 446 | "proc-macro2", 447 | "syn 1.0.109", 448 | ] 449 | 450 | [[package]] 451 | name = "borsh-derive" 452 | version = "1.5.1" 453 | source = "registry+https://github.com/rust-lang/crates.io-index" 454 | checksum = "c3ef8005764f53cd4dca619f5bf64cafd4664dada50ece25e4d81de54c80cc0b" 455 | dependencies = [ 456 | "once_cell", 457 | "proc-macro-crate 3.2.0", 458 | "proc-macro2", 459 | "quote", 460 | "syn 2.0.77", 461 | "syn_derive", 462 | ] 463 | 464 | [[package]] 465 | name = "borsh-derive-internal" 466 | version = "0.9.3" 467 | source = "registry+https://github.com/rust-lang/crates.io-index" 468 | checksum = "5449c28a7b352f2d1e592a8a28bf139bc71afb0764a14f3c02500935d8c44065" 469 | dependencies = [ 470 | "proc-macro2", 471 | "quote", 472 | "syn 1.0.109", 473 | ] 474 | 475 | [[package]] 476 | name = "borsh-derive-internal" 477 | version = "0.10.3" 478 | source = "registry+https://github.com/rust-lang/crates.io-index" 479 | checksum = "afb438156919598d2c7bad7e1c0adf3d26ed3840dbc010db1a882a65583ca2fb" 480 | dependencies = [ 481 | "proc-macro2", 482 | "quote", 483 | "syn 1.0.109", 484 | ] 485 | 486 | [[package]] 487 | name = "borsh-schema-derive-internal" 488 | version = "0.9.3" 489 | source = "registry+https://github.com/rust-lang/crates.io-index" 490 | checksum = "cdbd5696d8bfa21d53d9fe39a714a18538bad11492a42d066dbbc395fb1951c0" 491 | dependencies = [ 492 | "proc-macro2", 493 | "quote", 494 | "syn 1.0.109", 495 | ] 496 | 497 | [[package]] 498 | name = "borsh-schema-derive-internal" 499 | version = "0.10.3" 500 | source = "registry+https://github.com/rust-lang/crates.io-index" 501 | checksum = "634205cc43f74a1b9046ef87c4540ebda95696ec0f315024860cad7c5b0f5ccd" 502 | dependencies = [ 503 | "proc-macro2", 504 | "quote", 505 | "syn 1.0.109", 506 | ] 507 | 508 | [[package]] 509 | name = "bs58" 510 | version = "0.4.0" 511 | source = "registry+https://github.com/rust-lang/crates.io-index" 512 | checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" 513 | 514 | [[package]] 515 | name = "bs58" 516 | version = "0.5.1" 517 | source = "registry+https://github.com/rust-lang/crates.io-index" 518 | checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" 519 | dependencies = [ 520 | "tinyvec", 521 | ] 522 | 523 | [[package]] 524 | name = "bumpalo" 525 | version = "3.16.0" 526 | source = "registry+https://github.com/rust-lang/crates.io-index" 527 | checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" 528 | 529 | [[package]] 530 | name = "bv" 531 | version = "0.11.1" 532 | source = "registry+https://github.com/rust-lang/crates.io-index" 533 | checksum = "8834bb1d8ee5dc048ee3124f2c7c1afcc6bc9aed03f11e9dfd8c69470a5db340" 534 | dependencies = [ 535 | "feature-probe", 536 | "serde", 537 | ] 538 | 539 | [[package]] 540 | name = "bytemuck" 541 | version = "1.18.0" 542 | source = "registry+https://github.com/rust-lang/crates.io-index" 543 | checksum = "94bbb0ad554ad961ddc5da507a12a29b14e4ae5bda06b19f575a3e6079d2e2ae" 544 | dependencies = [ 545 | "bytemuck_derive", 546 | ] 547 | 548 | [[package]] 549 | name = "bytemuck_derive" 550 | version = "1.7.1" 551 | source = "registry+https://github.com/rust-lang/crates.io-index" 552 | checksum = "0cc8b54b395f2fcfbb3d90c47b01c7f444d94d05bdeb775811dec868ac3bbc26" 553 | dependencies = [ 554 | "proc-macro2", 555 | "quote", 556 | "syn 2.0.77", 557 | ] 558 | 559 | [[package]] 560 | name = "byteorder" 561 | version = "1.5.0" 562 | source = "registry+https://github.com/rust-lang/crates.io-index" 563 | checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 564 | 565 | [[package]] 566 | name = "cc" 567 | version = "1.1.18" 568 | source = "registry+https://github.com/rust-lang/crates.io-index" 569 | checksum = "b62ac837cdb5cb22e10a256099b4fc502b1dfe560cb282963a974d7abd80e476" 570 | dependencies = [ 571 | "jobserver", 572 | "libc", 573 | "shlex", 574 | ] 575 | 576 | [[package]] 577 | name = "cfg-if" 578 | version = "1.0.0" 579 | source = "registry+https://github.com/rust-lang/crates.io-index" 580 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 581 | 582 | [[package]] 583 | name = "cfg_aliases" 584 | version = "0.2.1" 585 | source = "registry+https://github.com/rust-lang/crates.io-index" 586 | checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" 587 | 588 | [[package]] 589 | name = "console_error_panic_hook" 590 | version = "0.1.7" 591 | source = "registry+https://github.com/rust-lang/crates.io-index" 592 | checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" 593 | dependencies = [ 594 | "cfg-if", 595 | "wasm-bindgen", 596 | ] 597 | 598 | [[package]] 599 | name = "console_log" 600 | version = "0.2.2" 601 | source = "registry+https://github.com/rust-lang/crates.io-index" 602 | checksum = "e89f72f65e8501878b8a004d5a1afb780987e2ce2b4532c562e367a72c57499f" 603 | dependencies = [ 604 | "log", 605 | "web-sys", 606 | ] 607 | 608 | [[package]] 609 | name = "constant_time_eq" 610 | version = "0.3.1" 611 | source = "registry+https://github.com/rust-lang/crates.io-index" 612 | checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" 613 | 614 | [[package]] 615 | name = "cpufeatures" 616 | version = "0.2.14" 617 | source = "registry+https://github.com/rust-lang/crates.io-index" 618 | checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" 619 | dependencies = [ 620 | "libc", 621 | ] 622 | 623 | [[package]] 624 | name = "crossbeam-deque" 625 | version = "0.8.5" 626 | source = "registry+https://github.com/rust-lang/crates.io-index" 627 | checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" 628 | dependencies = [ 629 | "crossbeam-epoch", 630 | "crossbeam-utils", 631 | ] 632 | 633 | [[package]] 634 | name = "crossbeam-epoch" 635 | version = "0.9.18" 636 | source = "registry+https://github.com/rust-lang/crates.io-index" 637 | checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" 638 | dependencies = [ 639 | "crossbeam-utils", 640 | ] 641 | 642 | [[package]] 643 | name = "crossbeam-utils" 644 | version = "0.8.20" 645 | source = "registry+https://github.com/rust-lang/crates.io-index" 646 | checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" 647 | 648 | [[package]] 649 | name = "crunchy" 650 | version = "0.2.2" 651 | source = "registry+https://github.com/rust-lang/crates.io-index" 652 | checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" 653 | 654 | [[package]] 655 | name = "crypto-common" 656 | version = "0.1.6" 657 | source = "registry+https://github.com/rust-lang/crates.io-index" 658 | checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 659 | dependencies = [ 660 | "generic-array", 661 | "typenum", 662 | ] 663 | 664 | [[package]] 665 | name = "crypto-mac" 666 | version = "0.8.0" 667 | source = "registry+https://github.com/rust-lang/crates.io-index" 668 | checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" 669 | dependencies = [ 670 | "generic-array", 671 | "subtle", 672 | ] 673 | 674 | [[package]] 675 | name = "curve25519-dalek" 676 | version = "3.2.1" 677 | source = "registry+https://github.com/rust-lang/crates.io-index" 678 | checksum = "90f9d052967f590a76e62eb387bd0bbb1b000182c3cefe5364db6b7211651bc0" 679 | dependencies = [ 680 | "byteorder", 681 | "digest 0.9.0", 682 | "rand_core 0.5.1", 683 | "serde", 684 | "subtle", 685 | "zeroize", 686 | ] 687 | 688 | [[package]] 689 | name = "derivative" 690 | version = "2.2.0" 691 | source = "registry+https://github.com/rust-lang/crates.io-index" 692 | checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" 693 | dependencies = [ 694 | "proc-macro2", 695 | "quote", 696 | "syn 1.0.109", 697 | ] 698 | 699 | [[package]] 700 | name = "digest" 701 | version = "0.9.0" 702 | source = "registry+https://github.com/rust-lang/crates.io-index" 703 | checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" 704 | dependencies = [ 705 | "generic-array", 706 | ] 707 | 708 | [[package]] 709 | name = "digest" 710 | version = "0.10.7" 711 | source = "registry+https://github.com/rust-lang/crates.io-index" 712 | checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 713 | dependencies = [ 714 | "block-buffer 0.10.4", 715 | "crypto-common", 716 | "subtle", 717 | ] 718 | 719 | [[package]] 720 | name = "either" 721 | version = "1.13.0" 722 | source = "registry+https://github.com/rust-lang/crates.io-index" 723 | checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" 724 | 725 | [[package]] 726 | name = "equivalent" 727 | version = "1.0.1" 728 | source = "registry+https://github.com/rust-lang/crates.io-index" 729 | checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" 730 | 731 | [[package]] 732 | name = "feature-probe" 733 | version = "0.1.1" 734 | source = "registry+https://github.com/rust-lang/crates.io-index" 735 | checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da" 736 | 737 | [[package]] 738 | name = "generic-array" 739 | version = "0.14.7" 740 | source = "registry+https://github.com/rust-lang/crates.io-index" 741 | checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 742 | dependencies = [ 743 | "serde", 744 | "typenum", 745 | "version_check", 746 | ] 747 | 748 | [[package]] 749 | name = "getrandom" 750 | version = "0.1.16" 751 | source = "registry+https://github.com/rust-lang/crates.io-index" 752 | checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" 753 | dependencies = [ 754 | "cfg-if", 755 | "js-sys", 756 | "libc", 757 | "wasi 0.9.0+wasi-snapshot-preview1", 758 | "wasm-bindgen", 759 | ] 760 | 761 | [[package]] 762 | name = "getrandom" 763 | version = "0.2.15" 764 | source = "registry+https://github.com/rust-lang/crates.io-index" 765 | checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" 766 | dependencies = [ 767 | "cfg-if", 768 | "js-sys", 769 | "libc", 770 | "wasi 0.11.0+wasi-snapshot-preview1", 771 | "wasm-bindgen", 772 | ] 773 | 774 | [[package]] 775 | name = "hashbrown" 776 | version = "0.11.2" 777 | source = "registry+https://github.com/rust-lang/crates.io-index" 778 | checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" 779 | dependencies = [ 780 | "ahash 0.7.8", 781 | ] 782 | 783 | [[package]] 784 | name = "hashbrown" 785 | version = "0.13.2" 786 | source = "registry+https://github.com/rust-lang/crates.io-index" 787 | checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" 788 | dependencies = [ 789 | "ahash 0.8.11", 790 | ] 791 | 792 | [[package]] 793 | name = "hashbrown" 794 | version = "0.14.5" 795 | source = "registry+https://github.com/rust-lang/crates.io-index" 796 | checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" 797 | 798 | [[package]] 799 | name = "heck" 800 | version = "0.3.3" 801 | source = "registry+https://github.com/rust-lang/crates.io-index" 802 | checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" 803 | dependencies = [ 804 | "unicode-segmentation", 805 | ] 806 | 807 | [[package]] 808 | name = "hello-anchor" 809 | version = "0.1.0" 810 | dependencies = [ 811 | "anchor-lang", 812 | ] 813 | 814 | [[package]] 815 | name = "hmac" 816 | version = "0.8.1" 817 | source = "registry+https://github.com/rust-lang/crates.io-index" 818 | checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840" 819 | dependencies = [ 820 | "crypto-mac", 821 | "digest 0.9.0", 822 | ] 823 | 824 | [[package]] 825 | name = "hmac-drbg" 826 | version = "0.3.0" 827 | source = "registry+https://github.com/rust-lang/crates.io-index" 828 | checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" 829 | dependencies = [ 830 | "digest 0.9.0", 831 | "generic-array", 832 | "hmac", 833 | ] 834 | 835 | [[package]] 836 | name = "im" 837 | version = "15.1.0" 838 | source = "registry+https://github.com/rust-lang/crates.io-index" 839 | checksum = "d0acd33ff0285af998aaf9b57342af478078f53492322fafc47450e09397e0e9" 840 | dependencies = [ 841 | "bitmaps", 842 | "rand_core 0.6.4", 843 | "rand_xoshiro", 844 | "rayon", 845 | "serde", 846 | "sized-chunks", 847 | "typenum", 848 | "version_check", 849 | ] 850 | 851 | [[package]] 852 | name = "indexmap" 853 | version = "2.5.0" 854 | source = "registry+https://github.com/rust-lang/crates.io-index" 855 | checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" 856 | dependencies = [ 857 | "equivalent", 858 | "hashbrown 0.14.5", 859 | ] 860 | 861 | [[package]] 862 | name = "itertools" 863 | version = "0.10.5" 864 | source = "registry+https://github.com/rust-lang/crates.io-index" 865 | checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" 866 | dependencies = [ 867 | "either", 868 | ] 869 | 870 | [[package]] 871 | name = "itoa" 872 | version = "1.0.11" 873 | source = "registry+https://github.com/rust-lang/crates.io-index" 874 | checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" 875 | 876 | [[package]] 877 | name = "jobserver" 878 | version = "0.1.32" 879 | source = "registry+https://github.com/rust-lang/crates.io-index" 880 | checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" 881 | dependencies = [ 882 | "libc", 883 | ] 884 | 885 | [[package]] 886 | name = "js-sys" 887 | version = "0.3.70" 888 | source = "registry+https://github.com/rust-lang/crates.io-index" 889 | checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" 890 | dependencies = [ 891 | "wasm-bindgen", 892 | ] 893 | 894 | [[package]] 895 | name = "keccak" 896 | version = "0.1.5" 897 | source = "registry+https://github.com/rust-lang/crates.io-index" 898 | checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" 899 | dependencies = [ 900 | "cpufeatures", 901 | ] 902 | 903 | [[package]] 904 | name = "lazy_static" 905 | version = "1.5.0" 906 | source = "registry+https://github.com/rust-lang/crates.io-index" 907 | checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 908 | 909 | [[package]] 910 | name = "libc" 911 | version = "0.2.158" 912 | source = "registry+https://github.com/rust-lang/crates.io-index" 913 | checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" 914 | 915 | [[package]] 916 | name = "libsecp256k1" 917 | version = "0.6.0" 918 | source = "registry+https://github.com/rust-lang/crates.io-index" 919 | checksum = "c9d220bc1feda2ac231cb78c3d26f27676b8cf82c96971f7aeef3d0cf2797c73" 920 | dependencies = [ 921 | "arrayref", 922 | "base64 0.12.3", 923 | "digest 0.9.0", 924 | "hmac-drbg", 925 | "libsecp256k1-core", 926 | "libsecp256k1-gen-ecmult", 927 | "libsecp256k1-gen-genmult", 928 | "rand 0.7.3", 929 | "serde", 930 | "sha2 0.9.9", 931 | "typenum", 932 | ] 933 | 934 | [[package]] 935 | name = "libsecp256k1-core" 936 | version = "0.2.2" 937 | source = "registry+https://github.com/rust-lang/crates.io-index" 938 | checksum = "d0f6ab710cec28cef759c5f18671a27dae2a5f952cdaaee1d8e2908cb2478a80" 939 | dependencies = [ 940 | "crunchy", 941 | "digest 0.9.0", 942 | "subtle", 943 | ] 944 | 945 | [[package]] 946 | name = "libsecp256k1-gen-ecmult" 947 | version = "0.2.1" 948 | source = "registry+https://github.com/rust-lang/crates.io-index" 949 | checksum = "ccab96b584d38fac86a83f07e659f0deafd0253dc096dab5a36d53efe653c5c3" 950 | dependencies = [ 951 | "libsecp256k1-core", 952 | ] 953 | 954 | [[package]] 955 | name = "libsecp256k1-gen-genmult" 956 | version = "0.2.1" 957 | source = "registry+https://github.com/rust-lang/crates.io-index" 958 | checksum = "67abfe149395e3aa1c48a2beb32b068e2334402df8181f818d3aee2b304c4f5d" 959 | dependencies = [ 960 | "libsecp256k1-core", 961 | ] 962 | 963 | [[package]] 964 | name = "light-poseidon" 965 | version = "0.2.0" 966 | source = "registry+https://github.com/rust-lang/crates.io-index" 967 | checksum = "3c9a85a9752c549ceb7578064b4ed891179d20acd85f27318573b64d2d7ee7ee" 968 | dependencies = [ 969 | "ark-bn254", 970 | "ark-ff", 971 | "num-bigint", 972 | "thiserror", 973 | ] 974 | 975 | [[package]] 976 | name = "lock_api" 977 | version = "0.4.12" 978 | source = "registry+https://github.com/rust-lang/crates.io-index" 979 | checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" 980 | dependencies = [ 981 | "autocfg", 982 | "scopeguard", 983 | ] 984 | 985 | [[package]] 986 | name = "log" 987 | version = "0.4.22" 988 | source = "registry+https://github.com/rust-lang/crates.io-index" 989 | checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" 990 | 991 | [[package]] 992 | name = "memchr" 993 | version = "2.7.4" 994 | source = "registry+https://github.com/rust-lang/crates.io-index" 995 | checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" 996 | 997 | [[package]] 998 | name = "memmap2" 999 | version = "0.5.10" 1000 | source = "registry+https://github.com/rust-lang/crates.io-index" 1001 | checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" 1002 | dependencies = [ 1003 | "libc", 1004 | ] 1005 | 1006 | [[package]] 1007 | name = "memoffset" 1008 | version = "0.9.1" 1009 | source = "registry+https://github.com/rust-lang/crates.io-index" 1010 | checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" 1011 | dependencies = [ 1012 | "autocfg", 1013 | ] 1014 | 1015 | [[package]] 1016 | name = "num-bigint" 1017 | version = "0.4.6" 1018 | source = "registry+https://github.com/rust-lang/crates.io-index" 1019 | checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" 1020 | dependencies = [ 1021 | "num-integer", 1022 | "num-traits", 1023 | ] 1024 | 1025 | [[package]] 1026 | name = "num-derive" 1027 | version = "0.4.2" 1028 | source = "registry+https://github.com/rust-lang/crates.io-index" 1029 | checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" 1030 | dependencies = [ 1031 | "proc-macro2", 1032 | "quote", 1033 | "syn 2.0.77", 1034 | ] 1035 | 1036 | [[package]] 1037 | name = "num-integer" 1038 | version = "0.1.46" 1039 | source = "registry+https://github.com/rust-lang/crates.io-index" 1040 | checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" 1041 | dependencies = [ 1042 | "num-traits", 1043 | ] 1044 | 1045 | [[package]] 1046 | name = "num-traits" 1047 | version = "0.2.19" 1048 | source = "registry+https://github.com/rust-lang/crates.io-index" 1049 | checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 1050 | dependencies = [ 1051 | "autocfg", 1052 | ] 1053 | 1054 | [[package]] 1055 | name = "once_cell" 1056 | version = "1.19.0" 1057 | source = "registry+https://github.com/rust-lang/crates.io-index" 1058 | checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" 1059 | 1060 | [[package]] 1061 | name = "opaque-debug" 1062 | version = "0.3.1" 1063 | source = "registry+https://github.com/rust-lang/crates.io-index" 1064 | checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" 1065 | 1066 | [[package]] 1067 | name = "parking_lot" 1068 | version = "0.12.3" 1069 | source = "registry+https://github.com/rust-lang/crates.io-index" 1070 | checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" 1071 | dependencies = [ 1072 | "lock_api", 1073 | "parking_lot_core", 1074 | ] 1075 | 1076 | [[package]] 1077 | name = "parking_lot_core" 1078 | version = "0.9.10" 1079 | source = "registry+https://github.com/rust-lang/crates.io-index" 1080 | checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" 1081 | dependencies = [ 1082 | "cfg-if", 1083 | "libc", 1084 | "redox_syscall", 1085 | "smallvec", 1086 | "windows-targets", 1087 | ] 1088 | 1089 | [[package]] 1090 | name = "paste" 1091 | version = "1.0.15" 1092 | source = "registry+https://github.com/rust-lang/crates.io-index" 1093 | checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" 1094 | 1095 | [[package]] 1096 | name = "pbkdf2" 1097 | version = "0.4.0" 1098 | source = "registry+https://github.com/rust-lang/crates.io-index" 1099 | checksum = "216eaa586a190f0a738f2f918511eecfa90f13295abec0e457cdebcceda80cbd" 1100 | dependencies = [ 1101 | "crypto-mac", 1102 | ] 1103 | 1104 | [[package]] 1105 | name = "ppv-lite86" 1106 | version = "0.2.20" 1107 | source = "registry+https://github.com/rust-lang/crates.io-index" 1108 | checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" 1109 | dependencies = [ 1110 | "zerocopy", 1111 | ] 1112 | 1113 | [[package]] 1114 | name = "proc-macro-crate" 1115 | version = "0.1.5" 1116 | source = "registry+https://github.com/rust-lang/crates.io-index" 1117 | checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" 1118 | dependencies = [ 1119 | "toml", 1120 | ] 1121 | 1122 | [[package]] 1123 | name = "proc-macro-crate" 1124 | version = "3.2.0" 1125 | source = "registry+https://github.com/rust-lang/crates.io-index" 1126 | checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" 1127 | dependencies = [ 1128 | "toml_edit", 1129 | ] 1130 | 1131 | [[package]] 1132 | name = "proc-macro-error" 1133 | version = "1.0.4" 1134 | source = "registry+https://github.com/rust-lang/crates.io-index" 1135 | checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" 1136 | dependencies = [ 1137 | "proc-macro-error-attr", 1138 | "proc-macro2", 1139 | "quote", 1140 | "version_check", 1141 | ] 1142 | 1143 | [[package]] 1144 | name = "proc-macro-error-attr" 1145 | version = "1.0.4" 1146 | source = "registry+https://github.com/rust-lang/crates.io-index" 1147 | checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" 1148 | dependencies = [ 1149 | "proc-macro2", 1150 | "quote", 1151 | "version_check", 1152 | ] 1153 | 1154 | [[package]] 1155 | name = "proc-macro2" 1156 | version = "1.0.86" 1157 | source = "registry+https://github.com/rust-lang/crates.io-index" 1158 | checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" 1159 | dependencies = [ 1160 | "unicode-ident", 1161 | ] 1162 | 1163 | [[package]] 1164 | name = "quote" 1165 | version = "1.0.37" 1166 | source = "registry+https://github.com/rust-lang/crates.io-index" 1167 | checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" 1168 | dependencies = [ 1169 | "proc-macro2", 1170 | ] 1171 | 1172 | [[package]] 1173 | name = "rand" 1174 | version = "0.7.3" 1175 | source = "registry+https://github.com/rust-lang/crates.io-index" 1176 | checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" 1177 | dependencies = [ 1178 | "getrandom 0.1.16", 1179 | "libc", 1180 | "rand_chacha 0.2.2", 1181 | "rand_core 0.5.1", 1182 | "rand_hc", 1183 | ] 1184 | 1185 | [[package]] 1186 | name = "rand" 1187 | version = "0.8.5" 1188 | source = "registry+https://github.com/rust-lang/crates.io-index" 1189 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 1190 | dependencies = [ 1191 | "libc", 1192 | "rand_chacha 0.3.1", 1193 | "rand_core 0.6.4", 1194 | ] 1195 | 1196 | [[package]] 1197 | name = "rand_chacha" 1198 | version = "0.2.2" 1199 | source = "registry+https://github.com/rust-lang/crates.io-index" 1200 | checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" 1201 | dependencies = [ 1202 | "ppv-lite86", 1203 | "rand_core 0.5.1", 1204 | ] 1205 | 1206 | [[package]] 1207 | name = "rand_chacha" 1208 | version = "0.3.1" 1209 | source = "registry+https://github.com/rust-lang/crates.io-index" 1210 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 1211 | dependencies = [ 1212 | "ppv-lite86", 1213 | "rand_core 0.6.4", 1214 | ] 1215 | 1216 | [[package]] 1217 | name = "rand_core" 1218 | version = "0.5.1" 1219 | source = "registry+https://github.com/rust-lang/crates.io-index" 1220 | checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" 1221 | dependencies = [ 1222 | "getrandom 0.1.16", 1223 | ] 1224 | 1225 | [[package]] 1226 | name = "rand_core" 1227 | version = "0.6.4" 1228 | source = "registry+https://github.com/rust-lang/crates.io-index" 1229 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 1230 | dependencies = [ 1231 | "getrandom 0.2.15", 1232 | ] 1233 | 1234 | [[package]] 1235 | name = "rand_hc" 1236 | version = "0.2.0" 1237 | source = "registry+https://github.com/rust-lang/crates.io-index" 1238 | checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" 1239 | dependencies = [ 1240 | "rand_core 0.5.1", 1241 | ] 1242 | 1243 | [[package]] 1244 | name = "rand_xoshiro" 1245 | version = "0.6.0" 1246 | source = "registry+https://github.com/rust-lang/crates.io-index" 1247 | checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" 1248 | dependencies = [ 1249 | "rand_core 0.6.4", 1250 | ] 1251 | 1252 | [[package]] 1253 | name = "rayon" 1254 | version = "1.10.0" 1255 | source = "registry+https://github.com/rust-lang/crates.io-index" 1256 | checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" 1257 | dependencies = [ 1258 | "either", 1259 | "rayon-core", 1260 | ] 1261 | 1262 | [[package]] 1263 | name = "rayon-core" 1264 | version = "1.12.1" 1265 | source = "registry+https://github.com/rust-lang/crates.io-index" 1266 | checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" 1267 | dependencies = [ 1268 | "crossbeam-deque", 1269 | "crossbeam-utils", 1270 | ] 1271 | 1272 | [[package]] 1273 | name = "redox_syscall" 1274 | version = "0.5.4" 1275 | source = "registry+https://github.com/rust-lang/crates.io-index" 1276 | checksum = "0884ad60e090bf1345b93da0a5de8923c93884cd03f40dfcfddd3b4bee661853" 1277 | dependencies = [ 1278 | "bitflags", 1279 | ] 1280 | 1281 | [[package]] 1282 | name = "rustc-hash" 1283 | version = "1.1.0" 1284 | source = "registry+https://github.com/rust-lang/crates.io-index" 1285 | checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" 1286 | 1287 | [[package]] 1288 | name = "rustc_version" 1289 | version = "0.4.1" 1290 | source = "registry+https://github.com/rust-lang/crates.io-index" 1291 | checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" 1292 | dependencies = [ 1293 | "semver", 1294 | ] 1295 | 1296 | [[package]] 1297 | name = "rustversion" 1298 | version = "1.0.17" 1299 | source = "registry+https://github.com/rust-lang/crates.io-index" 1300 | checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" 1301 | 1302 | [[package]] 1303 | name = "ryu" 1304 | version = "1.0.18" 1305 | source = "registry+https://github.com/rust-lang/crates.io-index" 1306 | checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" 1307 | 1308 | [[package]] 1309 | name = "scopeguard" 1310 | version = "1.2.0" 1311 | source = "registry+https://github.com/rust-lang/crates.io-index" 1312 | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 1313 | 1314 | [[package]] 1315 | name = "semver" 1316 | version = "1.0.23" 1317 | source = "registry+https://github.com/rust-lang/crates.io-index" 1318 | checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" 1319 | 1320 | [[package]] 1321 | name = "serde" 1322 | version = "1.0.210" 1323 | source = "registry+https://github.com/rust-lang/crates.io-index" 1324 | checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" 1325 | dependencies = [ 1326 | "serde_derive", 1327 | ] 1328 | 1329 | [[package]] 1330 | name = "serde_bytes" 1331 | version = "0.11.15" 1332 | source = "registry+https://github.com/rust-lang/crates.io-index" 1333 | checksum = "387cc504cb06bb40a96c8e04e951fe01854cf6bc921053c954e4a606d9675c6a" 1334 | dependencies = [ 1335 | "serde", 1336 | ] 1337 | 1338 | [[package]] 1339 | name = "serde_derive" 1340 | version = "1.0.210" 1341 | source = "registry+https://github.com/rust-lang/crates.io-index" 1342 | checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" 1343 | dependencies = [ 1344 | "proc-macro2", 1345 | "quote", 1346 | "syn 2.0.77", 1347 | ] 1348 | 1349 | [[package]] 1350 | name = "serde_json" 1351 | version = "1.0.128" 1352 | source = "registry+https://github.com/rust-lang/crates.io-index" 1353 | checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" 1354 | dependencies = [ 1355 | "itoa", 1356 | "memchr", 1357 | "ryu", 1358 | "serde", 1359 | ] 1360 | 1361 | [[package]] 1362 | name = "sha2" 1363 | version = "0.9.9" 1364 | source = "registry+https://github.com/rust-lang/crates.io-index" 1365 | checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" 1366 | dependencies = [ 1367 | "block-buffer 0.9.0", 1368 | "cfg-if", 1369 | "cpufeatures", 1370 | "digest 0.9.0", 1371 | "opaque-debug", 1372 | ] 1373 | 1374 | [[package]] 1375 | name = "sha2" 1376 | version = "0.10.8" 1377 | source = "registry+https://github.com/rust-lang/crates.io-index" 1378 | checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" 1379 | dependencies = [ 1380 | "cfg-if", 1381 | "cpufeatures", 1382 | "digest 0.10.7", 1383 | ] 1384 | 1385 | [[package]] 1386 | name = "sha3" 1387 | version = "0.10.8" 1388 | source = "registry+https://github.com/rust-lang/crates.io-index" 1389 | checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" 1390 | dependencies = [ 1391 | "digest 0.10.7", 1392 | "keccak", 1393 | ] 1394 | 1395 | [[package]] 1396 | name = "shlex" 1397 | version = "1.3.0" 1398 | source = "registry+https://github.com/rust-lang/crates.io-index" 1399 | checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 1400 | 1401 | [[package]] 1402 | name = "sized-chunks" 1403 | version = "0.6.5" 1404 | source = "registry+https://github.com/rust-lang/crates.io-index" 1405 | checksum = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e" 1406 | dependencies = [ 1407 | "bitmaps", 1408 | "typenum", 1409 | ] 1410 | 1411 | [[package]] 1412 | name = "smallvec" 1413 | version = "1.13.2" 1414 | source = "registry+https://github.com/rust-lang/crates.io-index" 1415 | checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" 1416 | 1417 | [[package]] 1418 | name = "solana-frozen-abi" 1419 | version = "1.18.23" 1420 | source = "registry+https://github.com/rust-lang/crates.io-index" 1421 | checksum = "4bfcde2fc6946c99c7e3400fadd04d1628d675bfd66cb34d461c0f3224bd27d1" 1422 | dependencies = [ 1423 | "block-buffer 0.10.4", 1424 | "bs58 0.4.0", 1425 | "bv", 1426 | "either", 1427 | "generic-array", 1428 | "im", 1429 | "lazy_static", 1430 | "log", 1431 | "memmap2", 1432 | "rustc_version", 1433 | "serde", 1434 | "serde_bytes", 1435 | "serde_derive", 1436 | "sha2 0.10.8", 1437 | "solana-frozen-abi-macro", 1438 | "subtle", 1439 | "thiserror", 1440 | ] 1441 | 1442 | [[package]] 1443 | name = "solana-frozen-abi-macro" 1444 | version = "1.18.23" 1445 | source = "registry+https://github.com/rust-lang/crates.io-index" 1446 | checksum = "d5024d241425f4e99f112ee03bfa89e526c86c7ca9bd7e13448a7f2dffb7e060" 1447 | dependencies = [ 1448 | "proc-macro2", 1449 | "quote", 1450 | "rustc_version", 1451 | "syn 2.0.77", 1452 | ] 1453 | 1454 | [[package]] 1455 | name = "solana-program" 1456 | version = "1.18.23" 1457 | source = "registry+https://github.com/rust-lang/crates.io-index" 1458 | checksum = "76056fecde0fe0ece8b457b719729c17173333471c72ad41969982975a10d6e0" 1459 | dependencies = [ 1460 | "ark-bn254", 1461 | "ark-ec", 1462 | "ark-ff", 1463 | "ark-serialize", 1464 | "base64 0.21.7", 1465 | "bincode", 1466 | "bitflags", 1467 | "blake3", 1468 | "borsh 0.10.3", 1469 | "borsh 0.9.3", 1470 | "borsh 1.5.1", 1471 | "bs58 0.4.0", 1472 | "bv", 1473 | "bytemuck", 1474 | "cc", 1475 | "console_error_panic_hook", 1476 | "console_log", 1477 | "curve25519-dalek", 1478 | "getrandom 0.2.15", 1479 | "itertools", 1480 | "js-sys", 1481 | "lazy_static", 1482 | "libc", 1483 | "libsecp256k1", 1484 | "light-poseidon", 1485 | "log", 1486 | "memoffset", 1487 | "num-bigint", 1488 | "num-derive", 1489 | "num-traits", 1490 | "parking_lot", 1491 | "rand 0.8.5", 1492 | "rustc_version", 1493 | "rustversion", 1494 | "serde", 1495 | "serde_bytes", 1496 | "serde_derive", 1497 | "serde_json", 1498 | "sha2 0.10.8", 1499 | "sha3", 1500 | "solana-frozen-abi", 1501 | "solana-frozen-abi-macro", 1502 | "solana-sdk-macro", 1503 | "thiserror", 1504 | "tiny-bip39", 1505 | "wasm-bindgen", 1506 | "zeroize", 1507 | ] 1508 | 1509 | [[package]] 1510 | name = "solana-sdk-macro" 1511 | version = "1.18.23" 1512 | source = "registry+https://github.com/rust-lang/crates.io-index" 1513 | checksum = "2a8613ca80150f7e277e773620ba65d2c5fcc3a08eb8026627d601421ab43aef" 1514 | dependencies = [ 1515 | "bs58 0.4.0", 1516 | "proc-macro2", 1517 | "quote", 1518 | "rustversion", 1519 | "syn 2.0.77", 1520 | ] 1521 | 1522 | [[package]] 1523 | name = "subtle" 1524 | version = "2.6.1" 1525 | source = "registry+https://github.com/rust-lang/crates.io-index" 1526 | checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" 1527 | 1528 | [[package]] 1529 | name = "syn" 1530 | version = "1.0.109" 1531 | source = "registry+https://github.com/rust-lang/crates.io-index" 1532 | checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 1533 | dependencies = [ 1534 | "proc-macro2", 1535 | "quote", 1536 | "unicode-ident", 1537 | ] 1538 | 1539 | [[package]] 1540 | name = "syn" 1541 | version = "2.0.77" 1542 | source = "registry+https://github.com/rust-lang/crates.io-index" 1543 | checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" 1544 | dependencies = [ 1545 | "proc-macro2", 1546 | "quote", 1547 | "unicode-ident", 1548 | ] 1549 | 1550 | [[package]] 1551 | name = "syn_derive" 1552 | version = "0.1.8" 1553 | source = "registry+https://github.com/rust-lang/crates.io-index" 1554 | checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" 1555 | dependencies = [ 1556 | "proc-macro-error", 1557 | "proc-macro2", 1558 | "quote", 1559 | "syn 2.0.77", 1560 | ] 1561 | 1562 | [[package]] 1563 | name = "thiserror" 1564 | version = "1.0.63" 1565 | source = "registry+https://github.com/rust-lang/crates.io-index" 1566 | checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" 1567 | dependencies = [ 1568 | "thiserror-impl", 1569 | ] 1570 | 1571 | [[package]] 1572 | name = "thiserror-impl" 1573 | version = "1.0.63" 1574 | source = "registry+https://github.com/rust-lang/crates.io-index" 1575 | checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" 1576 | dependencies = [ 1577 | "proc-macro2", 1578 | "quote", 1579 | "syn 2.0.77", 1580 | ] 1581 | 1582 | [[package]] 1583 | name = "tiny-bip39" 1584 | version = "0.8.2" 1585 | source = "registry+https://github.com/rust-lang/crates.io-index" 1586 | checksum = "ffc59cb9dfc85bb312c3a78fd6aa8a8582e310b0fa885d5bb877f6dcc601839d" 1587 | dependencies = [ 1588 | "anyhow", 1589 | "hmac", 1590 | "once_cell", 1591 | "pbkdf2", 1592 | "rand 0.7.3", 1593 | "rustc-hash", 1594 | "sha2 0.9.9", 1595 | "thiserror", 1596 | "unicode-normalization", 1597 | "wasm-bindgen", 1598 | "zeroize", 1599 | ] 1600 | 1601 | [[package]] 1602 | name = "tinyvec" 1603 | version = "1.8.0" 1604 | source = "registry+https://github.com/rust-lang/crates.io-index" 1605 | checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" 1606 | dependencies = [ 1607 | "tinyvec_macros", 1608 | ] 1609 | 1610 | [[package]] 1611 | name = "tinyvec_macros" 1612 | version = "0.1.1" 1613 | source = "registry+https://github.com/rust-lang/crates.io-index" 1614 | checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 1615 | 1616 | [[package]] 1617 | name = "toml" 1618 | version = "0.5.11" 1619 | source = "registry+https://github.com/rust-lang/crates.io-index" 1620 | checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" 1621 | dependencies = [ 1622 | "serde", 1623 | ] 1624 | 1625 | [[package]] 1626 | name = "toml_datetime" 1627 | version = "0.6.8" 1628 | source = "registry+https://github.com/rust-lang/crates.io-index" 1629 | checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" 1630 | 1631 | [[package]] 1632 | name = "toml_edit" 1633 | version = "0.22.20" 1634 | source = "registry+https://github.com/rust-lang/crates.io-index" 1635 | checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" 1636 | dependencies = [ 1637 | "indexmap", 1638 | "toml_datetime", 1639 | "winnow", 1640 | ] 1641 | 1642 | [[package]] 1643 | name = "typenum" 1644 | version = "1.17.0" 1645 | source = "registry+https://github.com/rust-lang/crates.io-index" 1646 | checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" 1647 | 1648 | [[package]] 1649 | name = "unicode-ident" 1650 | version = "1.0.13" 1651 | source = "registry+https://github.com/rust-lang/crates.io-index" 1652 | checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" 1653 | 1654 | [[package]] 1655 | name = "unicode-normalization" 1656 | version = "0.1.23" 1657 | source = "registry+https://github.com/rust-lang/crates.io-index" 1658 | checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" 1659 | dependencies = [ 1660 | "tinyvec", 1661 | ] 1662 | 1663 | [[package]] 1664 | name = "unicode-segmentation" 1665 | version = "1.11.0" 1666 | source = "registry+https://github.com/rust-lang/crates.io-index" 1667 | checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" 1668 | 1669 | [[package]] 1670 | name = "version_check" 1671 | version = "0.9.5" 1672 | source = "registry+https://github.com/rust-lang/crates.io-index" 1673 | checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 1674 | 1675 | [[package]] 1676 | name = "wasi" 1677 | version = "0.9.0+wasi-snapshot-preview1" 1678 | source = "registry+https://github.com/rust-lang/crates.io-index" 1679 | checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" 1680 | 1681 | [[package]] 1682 | name = "wasi" 1683 | version = "0.11.0+wasi-snapshot-preview1" 1684 | source = "registry+https://github.com/rust-lang/crates.io-index" 1685 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 1686 | 1687 | [[package]] 1688 | name = "wasm-bindgen" 1689 | version = "0.2.93" 1690 | source = "registry+https://github.com/rust-lang/crates.io-index" 1691 | checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" 1692 | dependencies = [ 1693 | "cfg-if", 1694 | "once_cell", 1695 | "wasm-bindgen-macro", 1696 | ] 1697 | 1698 | [[package]] 1699 | name = "wasm-bindgen-backend" 1700 | version = "0.2.93" 1701 | source = "registry+https://github.com/rust-lang/crates.io-index" 1702 | checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" 1703 | dependencies = [ 1704 | "bumpalo", 1705 | "log", 1706 | "once_cell", 1707 | "proc-macro2", 1708 | "quote", 1709 | "syn 2.0.77", 1710 | "wasm-bindgen-shared", 1711 | ] 1712 | 1713 | [[package]] 1714 | name = "wasm-bindgen-macro" 1715 | version = "0.2.93" 1716 | source = "registry+https://github.com/rust-lang/crates.io-index" 1717 | checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" 1718 | dependencies = [ 1719 | "quote", 1720 | "wasm-bindgen-macro-support", 1721 | ] 1722 | 1723 | [[package]] 1724 | name = "wasm-bindgen-macro-support" 1725 | version = "0.2.93" 1726 | source = "registry+https://github.com/rust-lang/crates.io-index" 1727 | checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" 1728 | dependencies = [ 1729 | "proc-macro2", 1730 | "quote", 1731 | "syn 2.0.77", 1732 | "wasm-bindgen-backend", 1733 | "wasm-bindgen-shared", 1734 | ] 1735 | 1736 | [[package]] 1737 | name = "wasm-bindgen-shared" 1738 | version = "0.2.93" 1739 | source = "registry+https://github.com/rust-lang/crates.io-index" 1740 | checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" 1741 | 1742 | [[package]] 1743 | name = "web-sys" 1744 | version = "0.3.70" 1745 | source = "registry+https://github.com/rust-lang/crates.io-index" 1746 | checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" 1747 | dependencies = [ 1748 | "js-sys", 1749 | "wasm-bindgen", 1750 | ] 1751 | 1752 | [[package]] 1753 | name = "windows-targets" 1754 | version = "0.52.6" 1755 | source = "registry+https://github.com/rust-lang/crates.io-index" 1756 | checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 1757 | dependencies = [ 1758 | "windows_aarch64_gnullvm", 1759 | "windows_aarch64_msvc", 1760 | "windows_i686_gnu", 1761 | "windows_i686_gnullvm", 1762 | "windows_i686_msvc", 1763 | "windows_x86_64_gnu", 1764 | "windows_x86_64_gnullvm", 1765 | "windows_x86_64_msvc", 1766 | ] 1767 | 1768 | [[package]] 1769 | name = "windows_aarch64_gnullvm" 1770 | version = "0.52.6" 1771 | source = "registry+https://github.com/rust-lang/crates.io-index" 1772 | checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 1773 | 1774 | [[package]] 1775 | name = "windows_aarch64_msvc" 1776 | version = "0.52.6" 1777 | source = "registry+https://github.com/rust-lang/crates.io-index" 1778 | checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 1779 | 1780 | [[package]] 1781 | name = "windows_i686_gnu" 1782 | version = "0.52.6" 1783 | source = "registry+https://github.com/rust-lang/crates.io-index" 1784 | checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 1785 | 1786 | [[package]] 1787 | name = "windows_i686_gnullvm" 1788 | version = "0.52.6" 1789 | source = "registry+https://github.com/rust-lang/crates.io-index" 1790 | checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 1791 | 1792 | [[package]] 1793 | name = "windows_i686_msvc" 1794 | version = "0.52.6" 1795 | source = "registry+https://github.com/rust-lang/crates.io-index" 1796 | checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 1797 | 1798 | [[package]] 1799 | name = "windows_x86_64_gnu" 1800 | version = "0.52.6" 1801 | source = "registry+https://github.com/rust-lang/crates.io-index" 1802 | checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 1803 | 1804 | [[package]] 1805 | name = "windows_x86_64_gnullvm" 1806 | version = "0.52.6" 1807 | source = "registry+https://github.com/rust-lang/crates.io-index" 1808 | checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 1809 | 1810 | [[package]] 1811 | name = "windows_x86_64_msvc" 1812 | version = "0.52.6" 1813 | source = "registry+https://github.com/rust-lang/crates.io-index" 1814 | checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 1815 | 1816 | [[package]] 1817 | name = "winnow" 1818 | version = "0.6.18" 1819 | source = "registry+https://github.com/rust-lang/crates.io-index" 1820 | checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" 1821 | dependencies = [ 1822 | "memchr", 1823 | ] 1824 | 1825 | [[package]] 1826 | name = "zerocopy" 1827 | version = "0.7.35" 1828 | source = "registry+https://github.com/rust-lang/crates.io-index" 1829 | checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" 1830 | dependencies = [ 1831 | "byteorder", 1832 | "zerocopy-derive", 1833 | ] 1834 | 1835 | [[package]] 1836 | name = "zerocopy-derive" 1837 | version = "0.7.35" 1838 | source = "registry+https://github.com/rust-lang/crates.io-index" 1839 | checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" 1840 | dependencies = [ 1841 | "proc-macro2", 1842 | "quote", 1843 | "syn 2.0.77", 1844 | ] 1845 | 1846 | [[package]] 1847 | name = "zeroize" 1848 | version = "1.3.0" 1849 | source = "registry+https://github.com/rust-lang/crates.io-index" 1850 | checksum = "4756f7db3f7b5574938c3eb1c117038b8e07f95ee6718c0efad4ac21508f1efd" 1851 | dependencies = [ 1852 | "zeroize_derive", 1853 | ] 1854 | 1855 | [[package]] 1856 | name = "zeroize_derive" 1857 | version = "1.4.2" 1858 | source = "registry+https://github.com/rust-lang/crates.io-index" 1859 | checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" 1860 | dependencies = [ 1861 | "proc-macro2", 1862 | "quote", 1863 | "syn 2.0.77", 1864 | ] 1865 | -------------------------------------------------------------------------------- /data_save_program/Cargo.toml: -------------------------------------------------------------------------------- 1 | [workspace] 2 | members = [ 3 | "programs/*" 4 | ] 5 | 6 | [profile.release] 7 | overflow-checks = true 8 | lto = "fat" 9 | codegen-units = 1 10 | [profile.release.build-override] 11 | opt-level = 3 12 | incremental = false 13 | codegen-units = 1 14 | -------------------------------------------------------------------------------- /data_save_program/client/client.ts: -------------------------------------------------------------------------------- 1 | import * as anchor from "@coral-xyz/anchor"; 2 | import * as web3 from "@solana/web3.js"; 3 | import type { HelloAnchor } from "../target/types/hello_anchor"; 4 | 5 | // Configure the client to use the local cluster 6 | anchor.setProvider(anchor.AnchorProvider.env()); 7 | 8 | const program = anchor.workspace.HelloAnchor as anchor.Program; 9 | 10 | // Client 11 | console.log("My address:", program.provider.publicKey.toString()); 12 | const balance = await program.provider.connection.getBalance(program.provider.publicKey); 13 | console.log(`My balance: ${balance / web3.LAMPORTS_PER_SOL} SOL`); 14 | -------------------------------------------------------------------------------- /data_save_program/migrations/deploy.ts: -------------------------------------------------------------------------------- 1 | // Migrations are an early feature. Currently, they're nothing more than this 2 | // single deploy script that's invoked from the CLI, injecting a provider 3 | // configured from the workspace's Anchor.toml. 4 | 5 | const anchor = require("@coral-xyz/anchor"); 6 | 7 | module.exports = async function (provider) { 8 | // Configure client to use the provider. 9 | anchor.setProvider(provider); 10 | 11 | // Add your deploy script here. 12 | }; 13 | -------------------------------------------------------------------------------- /data_save_program/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "data_save_program", 3 | "lockfileVersion": 3, 4 | "requires": true, 5 | "packages": { 6 | "": { 7 | "dependencies": { 8 | "@coral-xyz/anchor": "0.29.0", 9 | "@solana/web3.js": "1.78.4", 10 | "assert": "*", 11 | "bn.js": "*" 12 | }, 13 | "devDependencies": { 14 | "@types/bn.js": "^5.1.1", 15 | "@types/chai": "^4.3.5", 16 | "@types/mocha": "^10.0.1", 17 | "@types/node": "^22.6.1", 18 | "chai": "^4.3.8", 19 | "mocha": "^10.2.0", 20 | "prettier": "^3.0.2", 21 | "ts-mocha": "^10.0.0", 22 | "typescript": "^5.2.2" 23 | } 24 | }, 25 | "node_modules/@babel/runtime": { 26 | "version": "7.25.6", 27 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.6.tgz", 28 | "integrity": "sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==", 29 | "license": "MIT", 30 | "dependencies": { 31 | "regenerator-runtime": "^0.14.0" 32 | }, 33 | "engines": { 34 | "node": ">=6.9.0" 35 | } 36 | }, 37 | "node_modules/@coral-xyz/anchor": { 38 | "version": "0.29.0", 39 | "resolved": "https://registry.npmjs.org/@coral-xyz/anchor/-/anchor-0.29.0.tgz", 40 | "integrity": "sha512-eny6QNG0WOwqV0zQ7cs/b1tIuzZGmP7U7EcH+ogt4Gdbl8HDmIYVMh/9aTmYZPaFWjtUaI8qSn73uYEXWfATdA==", 41 | "license": "(MIT OR Apache-2.0)", 42 | "dependencies": { 43 | "@coral-xyz/borsh": "^0.29.0", 44 | "@noble/hashes": "^1.3.1", 45 | "@solana/web3.js": "^1.68.0", 46 | "bn.js": "^5.1.2", 47 | "bs58": "^4.0.1", 48 | "buffer-layout": "^1.2.2", 49 | "camelcase": "^6.3.0", 50 | "cross-fetch": "^3.1.5", 51 | "crypto-hash": "^1.3.0", 52 | "eventemitter3": "^4.0.7", 53 | "pako": "^2.0.3", 54 | "snake-case": "^3.0.4", 55 | "superstruct": "^0.15.4", 56 | "toml": "^3.0.0" 57 | }, 58 | "engines": { 59 | "node": ">=11" 60 | } 61 | }, 62 | "node_modules/@coral-xyz/borsh": { 63 | "version": "0.29.0", 64 | "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.29.0.tgz", 65 | "integrity": "sha512-s7VFVa3a0oqpkuRloWVPdCK7hMbAMY270geZOGfCnaqexrP5dTIpbEHL33req6IYPPJ0hYa71cdvJ1h6V55/oQ==", 66 | "license": "Apache-2.0", 67 | "dependencies": { 68 | "bn.js": "^5.1.2", 69 | "buffer-layout": "^1.2.0" 70 | }, 71 | "engines": { 72 | "node": ">=10" 73 | }, 74 | "peerDependencies": { 75 | "@solana/web3.js": "^1.68.0" 76 | } 77 | }, 78 | "node_modules/@noble/curves": { 79 | "version": "1.6.0", 80 | "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.6.0.tgz", 81 | "integrity": "sha512-TlaHRXDehJuRNR9TfZDNQ45mMEd5dwUwmicsafcIX4SsNiqnCHKjE/1alYPd/lDRVhxdhUAlv8uEhMCI5zjIJQ==", 82 | "license": "MIT", 83 | "dependencies": { 84 | "@noble/hashes": "1.5.0" 85 | }, 86 | "engines": { 87 | "node": "^14.21.3 || >=16" 88 | }, 89 | "funding": { 90 | "url": "https://paulmillr.com/funding/" 91 | } 92 | }, 93 | "node_modules/@noble/hashes": { 94 | "version": "1.5.0", 95 | "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.5.0.tgz", 96 | "integrity": "sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==", 97 | "license": "MIT", 98 | "engines": { 99 | "node": "^14.21.3 || >=16" 100 | }, 101 | "funding": { 102 | "url": "https://paulmillr.com/funding/" 103 | } 104 | }, 105 | "node_modules/@solana/buffer-layout": { 106 | "version": "4.0.1", 107 | "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz", 108 | "integrity": "sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==", 109 | "license": "MIT", 110 | "dependencies": { 111 | "buffer": "~6.0.3" 112 | }, 113 | "engines": { 114 | "node": ">=5.10" 115 | } 116 | }, 117 | "node_modules/@solana/web3.js": { 118 | "version": "1.78.4", 119 | "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.78.4.tgz", 120 | "integrity": "sha512-up5VG1dK+GPhykmuMIozJZBbVqpm77vbOG6/r5dS7NBGZonwHfTLdBbsYc3rjmaQ4DpCXUa3tUc4RZHRORvZrw==", 121 | "license": "MIT", 122 | "dependencies": { 123 | "@babel/runtime": "^7.22.6", 124 | "@noble/curves": "^1.0.0", 125 | "@noble/hashes": "^1.3.1", 126 | "@solana/buffer-layout": "^4.0.0", 127 | "agentkeepalive": "^4.3.0", 128 | "bigint-buffer": "^1.1.5", 129 | "bn.js": "^5.2.1", 130 | "borsh": "^0.7.0", 131 | "bs58": "^4.0.1", 132 | "buffer": "6.0.3", 133 | "fast-stable-stringify": "^1.0.0", 134 | "jayson": "^4.1.0", 135 | "node-fetch": "^2.6.12", 136 | "rpc-websockets": "^7.5.1", 137 | "superstruct": "^0.14.2" 138 | } 139 | }, 140 | "node_modules/@solana/web3.js/node_modules/superstruct": { 141 | "version": "0.14.2", 142 | "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.14.2.tgz", 143 | "integrity": "sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==", 144 | "license": "MIT" 145 | }, 146 | "node_modules/@types/bn.js": { 147 | "version": "5.1.6", 148 | "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.6.tgz", 149 | "integrity": "sha512-Xh8vSwUeMKeYYrj3cX4lGQgFSF/N03r+tv4AiLl1SucqV+uTQpxRcnM8AkXKHwYP9ZPXOYXRr2KPXpVlIvqh9w==", 150 | "dev": true, 151 | "license": "MIT", 152 | "dependencies": { 153 | "@types/node": "*" 154 | } 155 | }, 156 | "node_modules/@types/chai": { 157 | "version": "4.3.19", 158 | "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.19.tgz", 159 | "integrity": "sha512-2hHHvQBVE2FiSK4eN0Br6snX9MtolHaTo/batnLjlGRhoQzlCL61iVpxoqO7SfFyOw+P/pwv+0zNHzKoGWz9Cw==", 160 | "dev": true, 161 | "license": "MIT" 162 | }, 163 | "node_modules/@types/connect": { 164 | "version": "3.4.38", 165 | "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", 166 | "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", 167 | "license": "MIT", 168 | "dependencies": { 169 | "@types/node": "*" 170 | } 171 | }, 172 | "node_modules/@types/json5": { 173 | "version": "0.0.29", 174 | "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", 175 | "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", 176 | "dev": true, 177 | "license": "MIT", 178 | "optional": true 179 | }, 180 | "node_modules/@types/mocha": { 181 | "version": "10.0.8", 182 | "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.8.tgz", 183 | "integrity": "sha512-HfMcUmy9hTMJh66VNcmeC9iVErIZJli2bszuXc6julh5YGuRb/W5OnkHjwLNYdFlMis0sY3If5SEAp+PktdJjw==", 184 | "dev": true, 185 | "license": "MIT" 186 | }, 187 | "node_modules/@types/node": { 188 | "version": "22.6.1", 189 | "resolved": "https://registry.npmjs.org/@types/node/-/node-22.6.1.tgz", 190 | "integrity": "sha512-V48tCfcKb/e6cVUigLAaJDAILdMP0fUW6BidkPK4GpGjXcfbnoHasCZDwz3N3yVt5we2RHm4XTQCpv0KJz9zqw==", 191 | "license": "MIT", 192 | "dependencies": { 193 | "undici-types": "~6.19.2" 194 | } 195 | }, 196 | "node_modules/@types/ws": { 197 | "version": "7.4.7", 198 | "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", 199 | "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", 200 | "license": "MIT", 201 | "dependencies": { 202 | "@types/node": "*" 203 | } 204 | }, 205 | "node_modules/agentkeepalive": { 206 | "version": "4.5.0", 207 | "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", 208 | "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", 209 | "license": "MIT", 210 | "dependencies": { 211 | "humanize-ms": "^1.2.1" 212 | }, 213 | "engines": { 214 | "node": ">= 8.0.0" 215 | } 216 | }, 217 | "node_modules/ansi-colors": { 218 | "version": "4.1.3", 219 | "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", 220 | "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", 221 | "dev": true, 222 | "license": "MIT", 223 | "engines": { 224 | "node": ">=6" 225 | } 226 | }, 227 | "node_modules/ansi-regex": { 228 | "version": "5.0.1", 229 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 230 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 231 | "dev": true, 232 | "license": "MIT", 233 | "engines": { 234 | "node": ">=8" 235 | } 236 | }, 237 | "node_modules/ansi-styles": { 238 | "version": "4.3.0", 239 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 240 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 241 | "dev": true, 242 | "license": "MIT", 243 | "dependencies": { 244 | "color-convert": "^2.0.1" 245 | }, 246 | "engines": { 247 | "node": ">=8" 248 | }, 249 | "funding": { 250 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 251 | } 252 | }, 253 | "node_modules/anymatch": { 254 | "version": "3.1.3", 255 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", 256 | "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", 257 | "dev": true, 258 | "license": "ISC", 259 | "dependencies": { 260 | "normalize-path": "^3.0.0", 261 | "picomatch": "^2.0.4" 262 | }, 263 | "engines": { 264 | "node": ">= 8" 265 | } 266 | }, 267 | "node_modules/argparse": { 268 | "version": "2.0.1", 269 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 270 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", 271 | "dev": true, 272 | "license": "Python-2.0" 273 | }, 274 | "node_modules/arrify": { 275 | "version": "1.0.1", 276 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", 277 | "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", 278 | "dev": true, 279 | "license": "MIT", 280 | "engines": { 281 | "node": ">=0.10.0" 282 | } 283 | }, 284 | "node_modules/assert": { 285 | "version": "2.1.0", 286 | "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz", 287 | "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==", 288 | "license": "MIT", 289 | "dependencies": { 290 | "call-bind": "^1.0.2", 291 | "is-nan": "^1.3.2", 292 | "object-is": "^1.1.5", 293 | "object.assign": "^4.1.4", 294 | "util": "^0.12.5" 295 | } 296 | }, 297 | "node_modules/assertion-error": { 298 | "version": "1.1.0", 299 | "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", 300 | "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", 301 | "dev": true, 302 | "license": "MIT", 303 | "engines": { 304 | "node": "*" 305 | } 306 | }, 307 | "node_modules/available-typed-arrays": { 308 | "version": "1.0.7", 309 | "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", 310 | "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", 311 | "license": "MIT", 312 | "dependencies": { 313 | "possible-typed-array-names": "^1.0.0" 314 | }, 315 | "engines": { 316 | "node": ">= 0.4" 317 | }, 318 | "funding": { 319 | "url": "https://github.com/sponsors/ljharb" 320 | } 321 | }, 322 | "node_modules/balanced-match": { 323 | "version": "1.0.2", 324 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 325 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 326 | "dev": true, 327 | "license": "MIT" 328 | }, 329 | "node_modules/base-x": { 330 | "version": "3.0.10", 331 | "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.10.tgz", 332 | "integrity": "sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==", 333 | "license": "MIT", 334 | "dependencies": { 335 | "safe-buffer": "^5.0.1" 336 | } 337 | }, 338 | "node_modules/base64-js": { 339 | "version": "1.5.1", 340 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 341 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", 342 | "funding": [ 343 | { 344 | "type": "github", 345 | "url": "https://github.com/sponsors/feross" 346 | }, 347 | { 348 | "type": "patreon", 349 | "url": "https://www.patreon.com/feross" 350 | }, 351 | { 352 | "type": "consulting", 353 | "url": "https://feross.org/support" 354 | } 355 | ], 356 | "license": "MIT" 357 | }, 358 | "node_modules/bigint-buffer": { 359 | "version": "1.1.5", 360 | "resolved": "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz", 361 | "integrity": "sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==", 362 | "hasInstallScript": true, 363 | "license": "Apache-2.0", 364 | "dependencies": { 365 | "bindings": "^1.3.0" 366 | }, 367 | "engines": { 368 | "node": ">= 10.0.0" 369 | } 370 | }, 371 | "node_modules/binary-extensions": { 372 | "version": "2.3.0", 373 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", 374 | "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", 375 | "dev": true, 376 | "license": "MIT", 377 | "engines": { 378 | "node": ">=8" 379 | }, 380 | "funding": { 381 | "url": "https://github.com/sponsors/sindresorhus" 382 | } 383 | }, 384 | "node_modules/bindings": { 385 | "version": "1.5.0", 386 | "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", 387 | "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", 388 | "license": "MIT", 389 | "dependencies": { 390 | "file-uri-to-path": "1.0.0" 391 | } 392 | }, 393 | "node_modules/bn.js": { 394 | "version": "5.2.1", 395 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", 396 | "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", 397 | "license": "MIT" 398 | }, 399 | "node_modules/borsh": { 400 | "version": "0.7.0", 401 | "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", 402 | "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", 403 | "license": "Apache-2.0", 404 | "dependencies": { 405 | "bn.js": "^5.2.0", 406 | "bs58": "^4.0.0", 407 | "text-encoding-utf-8": "^1.0.2" 408 | } 409 | }, 410 | "node_modules/brace-expansion": { 411 | "version": "2.0.1", 412 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", 413 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", 414 | "dev": true, 415 | "license": "MIT", 416 | "dependencies": { 417 | "balanced-match": "^1.0.0" 418 | } 419 | }, 420 | "node_modules/braces": { 421 | "version": "3.0.3", 422 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", 423 | "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", 424 | "dev": true, 425 | "license": "MIT", 426 | "dependencies": { 427 | "fill-range": "^7.1.1" 428 | }, 429 | "engines": { 430 | "node": ">=8" 431 | } 432 | }, 433 | "node_modules/browser-stdout": { 434 | "version": "1.3.1", 435 | "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", 436 | "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", 437 | "dev": true, 438 | "license": "ISC" 439 | }, 440 | "node_modules/bs58": { 441 | "version": "4.0.1", 442 | "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", 443 | "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", 444 | "license": "MIT", 445 | "dependencies": { 446 | "base-x": "^3.0.2" 447 | } 448 | }, 449 | "node_modules/buffer": { 450 | "version": "6.0.3", 451 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", 452 | "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", 453 | "funding": [ 454 | { 455 | "type": "github", 456 | "url": "https://github.com/sponsors/feross" 457 | }, 458 | { 459 | "type": "patreon", 460 | "url": "https://www.patreon.com/feross" 461 | }, 462 | { 463 | "type": "consulting", 464 | "url": "https://feross.org/support" 465 | } 466 | ], 467 | "license": "MIT", 468 | "dependencies": { 469 | "base64-js": "^1.3.1", 470 | "ieee754": "^1.2.1" 471 | } 472 | }, 473 | "node_modules/buffer-from": { 474 | "version": "1.1.2", 475 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", 476 | "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", 477 | "dev": true, 478 | "license": "MIT" 479 | }, 480 | "node_modules/buffer-layout": { 481 | "version": "1.2.2", 482 | "resolved": "https://registry.npmjs.org/buffer-layout/-/buffer-layout-1.2.2.tgz", 483 | "integrity": "sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==", 484 | "license": "MIT", 485 | "engines": { 486 | "node": ">=4.5" 487 | } 488 | }, 489 | "node_modules/bufferutil": { 490 | "version": "4.0.8", 491 | "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.8.tgz", 492 | "integrity": "sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==", 493 | "hasInstallScript": true, 494 | "license": "MIT", 495 | "optional": true, 496 | "dependencies": { 497 | "node-gyp-build": "^4.3.0" 498 | }, 499 | "engines": { 500 | "node": ">=6.14.2" 501 | } 502 | }, 503 | "node_modules/call-bind": { 504 | "version": "1.0.7", 505 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", 506 | "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", 507 | "license": "MIT", 508 | "dependencies": { 509 | "es-define-property": "^1.0.0", 510 | "es-errors": "^1.3.0", 511 | "function-bind": "^1.1.2", 512 | "get-intrinsic": "^1.2.4", 513 | "set-function-length": "^1.2.1" 514 | }, 515 | "engines": { 516 | "node": ">= 0.4" 517 | }, 518 | "funding": { 519 | "url": "https://github.com/sponsors/ljharb" 520 | } 521 | }, 522 | "node_modules/camelcase": { 523 | "version": "6.3.0", 524 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", 525 | "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", 526 | "license": "MIT", 527 | "engines": { 528 | "node": ">=10" 529 | }, 530 | "funding": { 531 | "url": "https://github.com/sponsors/sindresorhus" 532 | } 533 | }, 534 | "node_modules/chai": { 535 | "version": "4.5.0", 536 | "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", 537 | "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", 538 | "dev": true, 539 | "license": "MIT", 540 | "dependencies": { 541 | "assertion-error": "^1.1.0", 542 | "check-error": "^1.0.3", 543 | "deep-eql": "^4.1.3", 544 | "get-func-name": "^2.0.2", 545 | "loupe": "^2.3.6", 546 | "pathval": "^1.1.1", 547 | "type-detect": "^4.1.0" 548 | }, 549 | "engines": { 550 | "node": ">=4" 551 | } 552 | }, 553 | "node_modules/chalk": { 554 | "version": "4.1.2", 555 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 556 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 557 | "dev": true, 558 | "license": "MIT", 559 | "dependencies": { 560 | "ansi-styles": "^4.1.0", 561 | "supports-color": "^7.1.0" 562 | }, 563 | "engines": { 564 | "node": ">=10" 565 | }, 566 | "funding": { 567 | "url": "https://github.com/chalk/chalk?sponsor=1" 568 | } 569 | }, 570 | "node_modules/chalk/node_modules/supports-color": { 571 | "version": "7.2.0", 572 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 573 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 574 | "dev": true, 575 | "license": "MIT", 576 | "dependencies": { 577 | "has-flag": "^4.0.0" 578 | }, 579 | "engines": { 580 | "node": ">=8" 581 | } 582 | }, 583 | "node_modules/check-error": { 584 | "version": "1.0.3", 585 | "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", 586 | "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", 587 | "dev": true, 588 | "license": "MIT", 589 | "dependencies": { 590 | "get-func-name": "^2.0.2" 591 | }, 592 | "engines": { 593 | "node": "*" 594 | } 595 | }, 596 | "node_modules/chokidar": { 597 | "version": "3.6.0", 598 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", 599 | "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", 600 | "dev": true, 601 | "license": "MIT", 602 | "dependencies": { 603 | "anymatch": "~3.1.2", 604 | "braces": "~3.0.2", 605 | "glob-parent": "~5.1.2", 606 | "is-binary-path": "~2.1.0", 607 | "is-glob": "~4.0.1", 608 | "normalize-path": "~3.0.0", 609 | "readdirp": "~3.6.0" 610 | }, 611 | "engines": { 612 | "node": ">= 8.10.0" 613 | }, 614 | "funding": { 615 | "url": "https://paulmillr.com/funding/" 616 | }, 617 | "optionalDependencies": { 618 | "fsevents": "~2.3.2" 619 | } 620 | }, 621 | "node_modules/cliui": { 622 | "version": "7.0.4", 623 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", 624 | "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", 625 | "dev": true, 626 | "license": "ISC", 627 | "dependencies": { 628 | "string-width": "^4.2.0", 629 | "strip-ansi": "^6.0.0", 630 | "wrap-ansi": "^7.0.0" 631 | } 632 | }, 633 | "node_modules/color-convert": { 634 | "version": "2.0.1", 635 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 636 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 637 | "dev": true, 638 | "license": "MIT", 639 | "dependencies": { 640 | "color-name": "~1.1.4" 641 | }, 642 | "engines": { 643 | "node": ">=7.0.0" 644 | } 645 | }, 646 | "node_modules/color-name": { 647 | "version": "1.1.4", 648 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 649 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 650 | "dev": true, 651 | "license": "MIT" 652 | }, 653 | "node_modules/commander": { 654 | "version": "2.20.3", 655 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", 656 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", 657 | "license": "MIT" 658 | }, 659 | "node_modules/cross-fetch": { 660 | "version": "3.1.8", 661 | "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", 662 | "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", 663 | "license": "MIT", 664 | "dependencies": { 665 | "node-fetch": "^2.6.12" 666 | } 667 | }, 668 | "node_modules/crypto-hash": { 669 | "version": "1.3.0", 670 | "resolved": "https://registry.npmjs.org/crypto-hash/-/crypto-hash-1.3.0.tgz", 671 | "integrity": "sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg==", 672 | "license": "MIT", 673 | "engines": { 674 | "node": ">=8" 675 | }, 676 | "funding": { 677 | "url": "https://github.com/sponsors/sindresorhus" 678 | } 679 | }, 680 | "node_modules/debug": { 681 | "version": "4.3.7", 682 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", 683 | "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", 684 | "dev": true, 685 | "license": "MIT", 686 | "dependencies": { 687 | "ms": "^2.1.3" 688 | }, 689 | "engines": { 690 | "node": ">=6.0" 691 | }, 692 | "peerDependenciesMeta": { 693 | "supports-color": { 694 | "optional": true 695 | } 696 | } 697 | }, 698 | "node_modules/decamelize": { 699 | "version": "4.0.0", 700 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", 701 | "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", 702 | "dev": true, 703 | "license": "MIT", 704 | "engines": { 705 | "node": ">=10" 706 | }, 707 | "funding": { 708 | "url": "https://github.com/sponsors/sindresorhus" 709 | } 710 | }, 711 | "node_modules/deep-eql": { 712 | "version": "4.1.4", 713 | "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", 714 | "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", 715 | "dev": true, 716 | "license": "MIT", 717 | "dependencies": { 718 | "type-detect": "^4.0.0" 719 | }, 720 | "engines": { 721 | "node": ">=6" 722 | } 723 | }, 724 | "node_modules/define-data-property": { 725 | "version": "1.1.4", 726 | "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", 727 | "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", 728 | "license": "MIT", 729 | "dependencies": { 730 | "es-define-property": "^1.0.0", 731 | "es-errors": "^1.3.0", 732 | "gopd": "^1.0.1" 733 | }, 734 | "engines": { 735 | "node": ">= 0.4" 736 | }, 737 | "funding": { 738 | "url": "https://github.com/sponsors/ljharb" 739 | } 740 | }, 741 | "node_modules/define-properties": { 742 | "version": "1.2.1", 743 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", 744 | "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", 745 | "license": "MIT", 746 | "dependencies": { 747 | "define-data-property": "^1.0.1", 748 | "has-property-descriptors": "^1.0.0", 749 | "object-keys": "^1.1.1" 750 | }, 751 | "engines": { 752 | "node": ">= 0.4" 753 | }, 754 | "funding": { 755 | "url": "https://github.com/sponsors/ljharb" 756 | } 757 | }, 758 | "node_modules/delay": { 759 | "version": "5.0.0", 760 | "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", 761 | "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", 762 | "license": "MIT", 763 | "engines": { 764 | "node": ">=10" 765 | }, 766 | "funding": { 767 | "url": "https://github.com/sponsors/sindresorhus" 768 | } 769 | }, 770 | "node_modules/diff": { 771 | "version": "5.2.0", 772 | "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", 773 | "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", 774 | "dev": true, 775 | "license": "BSD-3-Clause", 776 | "engines": { 777 | "node": ">=0.3.1" 778 | } 779 | }, 780 | "node_modules/dot-case": { 781 | "version": "3.0.4", 782 | "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", 783 | "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", 784 | "license": "MIT", 785 | "dependencies": { 786 | "no-case": "^3.0.4", 787 | "tslib": "^2.0.3" 788 | } 789 | }, 790 | "node_modules/emoji-regex": { 791 | "version": "8.0.0", 792 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 793 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 794 | "dev": true, 795 | "license": "MIT" 796 | }, 797 | "node_modules/es-define-property": { 798 | "version": "1.0.0", 799 | "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", 800 | "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", 801 | "license": "MIT", 802 | "dependencies": { 803 | "get-intrinsic": "^1.2.4" 804 | }, 805 | "engines": { 806 | "node": ">= 0.4" 807 | } 808 | }, 809 | "node_modules/es-errors": { 810 | "version": "1.3.0", 811 | "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", 812 | "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", 813 | "license": "MIT", 814 | "engines": { 815 | "node": ">= 0.4" 816 | } 817 | }, 818 | "node_modules/es6-promise": { 819 | "version": "4.2.8", 820 | "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", 821 | "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", 822 | "license": "MIT" 823 | }, 824 | "node_modules/es6-promisify": { 825 | "version": "5.0.0", 826 | "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", 827 | "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", 828 | "license": "MIT", 829 | "dependencies": { 830 | "es6-promise": "^4.0.3" 831 | } 832 | }, 833 | "node_modules/escalade": { 834 | "version": "3.2.0", 835 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", 836 | "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", 837 | "dev": true, 838 | "license": "MIT", 839 | "engines": { 840 | "node": ">=6" 841 | } 842 | }, 843 | "node_modules/escape-string-regexp": { 844 | "version": "4.0.0", 845 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 846 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 847 | "dev": true, 848 | "license": "MIT", 849 | "engines": { 850 | "node": ">=10" 851 | }, 852 | "funding": { 853 | "url": "https://github.com/sponsors/sindresorhus" 854 | } 855 | }, 856 | "node_modules/eventemitter3": { 857 | "version": "4.0.7", 858 | "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", 859 | "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", 860 | "license": "MIT" 861 | }, 862 | "node_modules/eyes": { 863 | "version": "0.1.8", 864 | "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", 865 | "integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==", 866 | "engines": { 867 | "node": "> 0.1.90" 868 | } 869 | }, 870 | "node_modules/fast-stable-stringify": { 871 | "version": "1.0.0", 872 | "resolved": "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz", 873 | "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==", 874 | "license": "MIT" 875 | }, 876 | "node_modules/file-uri-to-path": { 877 | "version": "1.0.0", 878 | "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", 879 | "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", 880 | "license": "MIT" 881 | }, 882 | "node_modules/fill-range": { 883 | "version": "7.1.1", 884 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", 885 | "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", 886 | "dev": true, 887 | "license": "MIT", 888 | "dependencies": { 889 | "to-regex-range": "^5.0.1" 890 | }, 891 | "engines": { 892 | "node": ">=8" 893 | } 894 | }, 895 | "node_modules/find-up": { 896 | "version": "5.0.0", 897 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", 898 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", 899 | "dev": true, 900 | "license": "MIT", 901 | "dependencies": { 902 | "locate-path": "^6.0.0", 903 | "path-exists": "^4.0.0" 904 | }, 905 | "engines": { 906 | "node": ">=10" 907 | }, 908 | "funding": { 909 | "url": "https://github.com/sponsors/sindresorhus" 910 | } 911 | }, 912 | "node_modules/flat": { 913 | "version": "5.0.2", 914 | "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", 915 | "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", 916 | "dev": true, 917 | "license": "BSD-3-Clause", 918 | "bin": { 919 | "flat": "cli.js" 920 | } 921 | }, 922 | "node_modules/for-each": { 923 | "version": "0.3.3", 924 | "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", 925 | "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", 926 | "license": "MIT", 927 | "dependencies": { 928 | "is-callable": "^1.1.3" 929 | } 930 | }, 931 | "node_modules/fs.realpath": { 932 | "version": "1.0.0", 933 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 934 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", 935 | "dev": true, 936 | "license": "ISC" 937 | }, 938 | "node_modules/fsevents": { 939 | "version": "2.3.3", 940 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", 941 | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", 942 | "dev": true, 943 | "hasInstallScript": true, 944 | "license": "MIT", 945 | "optional": true, 946 | "os": [ 947 | "darwin" 948 | ], 949 | "engines": { 950 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 951 | } 952 | }, 953 | "node_modules/function-bind": { 954 | "version": "1.1.2", 955 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", 956 | "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", 957 | "license": "MIT", 958 | "funding": { 959 | "url": "https://github.com/sponsors/ljharb" 960 | } 961 | }, 962 | "node_modules/get-caller-file": { 963 | "version": "2.0.5", 964 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", 965 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", 966 | "dev": true, 967 | "license": "ISC", 968 | "engines": { 969 | "node": "6.* || 8.* || >= 10.*" 970 | } 971 | }, 972 | "node_modules/get-func-name": { 973 | "version": "2.0.2", 974 | "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", 975 | "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", 976 | "dev": true, 977 | "license": "MIT", 978 | "engines": { 979 | "node": "*" 980 | } 981 | }, 982 | "node_modules/get-intrinsic": { 983 | "version": "1.2.4", 984 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", 985 | "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", 986 | "license": "MIT", 987 | "dependencies": { 988 | "es-errors": "^1.3.0", 989 | "function-bind": "^1.1.2", 990 | "has-proto": "^1.0.1", 991 | "has-symbols": "^1.0.3", 992 | "hasown": "^2.0.0" 993 | }, 994 | "engines": { 995 | "node": ">= 0.4" 996 | }, 997 | "funding": { 998 | "url": "https://github.com/sponsors/ljharb" 999 | } 1000 | }, 1001 | "node_modules/glob": { 1002 | "version": "8.1.0", 1003 | "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", 1004 | "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", 1005 | "deprecated": "Glob versions prior to v9 are no longer supported", 1006 | "dev": true, 1007 | "license": "ISC", 1008 | "dependencies": { 1009 | "fs.realpath": "^1.0.0", 1010 | "inflight": "^1.0.4", 1011 | "inherits": "2", 1012 | "minimatch": "^5.0.1", 1013 | "once": "^1.3.0" 1014 | }, 1015 | "engines": { 1016 | "node": ">=12" 1017 | }, 1018 | "funding": { 1019 | "url": "https://github.com/sponsors/isaacs" 1020 | } 1021 | }, 1022 | "node_modules/glob-parent": { 1023 | "version": "5.1.2", 1024 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 1025 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 1026 | "dev": true, 1027 | "license": "ISC", 1028 | "dependencies": { 1029 | "is-glob": "^4.0.1" 1030 | }, 1031 | "engines": { 1032 | "node": ">= 6" 1033 | } 1034 | }, 1035 | "node_modules/gopd": { 1036 | "version": "1.0.1", 1037 | "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", 1038 | "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", 1039 | "license": "MIT", 1040 | "dependencies": { 1041 | "get-intrinsic": "^1.1.3" 1042 | }, 1043 | "funding": { 1044 | "url": "https://github.com/sponsors/ljharb" 1045 | } 1046 | }, 1047 | "node_modules/has-flag": { 1048 | "version": "4.0.0", 1049 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 1050 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 1051 | "dev": true, 1052 | "license": "MIT", 1053 | "engines": { 1054 | "node": ">=8" 1055 | } 1056 | }, 1057 | "node_modules/has-property-descriptors": { 1058 | "version": "1.0.2", 1059 | "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", 1060 | "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", 1061 | "license": "MIT", 1062 | "dependencies": { 1063 | "es-define-property": "^1.0.0" 1064 | }, 1065 | "funding": { 1066 | "url": "https://github.com/sponsors/ljharb" 1067 | } 1068 | }, 1069 | "node_modules/has-proto": { 1070 | "version": "1.0.3", 1071 | "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", 1072 | "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", 1073 | "license": "MIT", 1074 | "engines": { 1075 | "node": ">= 0.4" 1076 | }, 1077 | "funding": { 1078 | "url": "https://github.com/sponsors/ljharb" 1079 | } 1080 | }, 1081 | "node_modules/has-symbols": { 1082 | "version": "1.0.3", 1083 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", 1084 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", 1085 | "license": "MIT", 1086 | "engines": { 1087 | "node": ">= 0.4" 1088 | }, 1089 | "funding": { 1090 | "url": "https://github.com/sponsors/ljharb" 1091 | } 1092 | }, 1093 | "node_modules/has-tostringtag": { 1094 | "version": "1.0.2", 1095 | "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", 1096 | "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", 1097 | "license": "MIT", 1098 | "dependencies": { 1099 | "has-symbols": "^1.0.3" 1100 | }, 1101 | "engines": { 1102 | "node": ">= 0.4" 1103 | }, 1104 | "funding": { 1105 | "url": "https://github.com/sponsors/ljharb" 1106 | } 1107 | }, 1108 | "node_modules/hasown": { 1109 | "version": "2.0.2", 1110 | "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", 1111 | "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", 1112 | "license": "MIT", 1113 | "dependencies": { 1114 | "function-bind": "^1.1.2" 1115 | }, 1116 | "engines": { 1117 | "node": ">= 0.4" 1118 | } 1119 | }, 1120 | "node_modules/he": { 1121 | "version": "1.2.0", 1122 | "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", 1123 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", 1124 | "dev": true, 1125 | "license": "MIT", 1126 | "bin": { 1127 | "he": "bin/he" 1128 | } 1129 | }, 1130 | "node_modules/humanize-ms": { 1131 | "version": "1.2.1", 1132 | "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", 1133 | "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", 1134 | "license": "MIT", 1135 | "dependencies": { 1136 | "ms": "^2.0.0" 1137 | } 1138 | }, 1139 | "node_modules/ieee754": { 1140 | "version": "1.2.1", 1141 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", 1142 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", 1143 | "funding": [ 1144 | { 1145 | "type": "github", 1146 | "url": "https://github.com/sponsors/feross" 1147 | }, 1148 | { 1149 | "type": "patreon", 1150 | "url": "https://www.patreon.com/feross" 1151 | }, 1152 | { 1153 | "type": "consulting", 1154 | "url": "https://feross.org/support" 1155 | } 1156 | ], 1157 | "license": "BSD-3-Clause" 1158 | }, 1159 | "node_modules/inflight": { 1160 | "version": "1.0.6", 1161 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1162 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", 1163 | "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", 1164 | "dev": true, 1165 | "license": "ISC", 1166 | "dependencies": { 1167 | "once": "^1.3.0", 1168 | "wrappy": "1" 1169 | } 1170 | }, 1171 | "node_modules/inherits": { 1172 | "version": "2.0.4", 1173 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1174 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 1175 | "license": "ISC" 1176 | }, 1177 | "node_modules/is-arguments": { 1178 | "version": "1.1.1", 1179 | "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", 1180 | "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", 1181 | "license": "MIT", 1182 | "dependencies": { 1183 | "call-bind": "^1.0.2", 1184 | "has-tostringtag": "^1.0.0" 1185 | }, 1186 | "engines": { 1187 | "node": ">= 0.4" 1188 | }, 1189 | "funding": { 1190 | "url": "https://github.com/sponsors/ljharb" 1191 | } 1192 | }, 1193 | "node_modules/is-binary-path": { 1194 | "version": "2.1.0", 1195 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 1196 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 1197 | "dev": true, 1198 | "license": "MIT", 1199 | "dependencies": { 1200 | "binary-extensions": "^2.0.0" 1201 | }, 1202 | "engines": { 1203 | "node": ">=8" 1204 | } 1205 | }, 1206 | "node_modules/is-callable": { 1207 | "version": "1.2.7", 1208 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", 1209 | "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", 1210 | "license": "MIT", 1211 | "engines": { 1212 | "node": ">= 0.4" 1213 | }, 1214 | "funding": { 1215 | "url": "https://github.com/sponsors/ljharb" 1216 | } 1217 | }, 1218 | "node_modules/is-extglob": { 1219 | "version": "2.1.1", 1220 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 1221 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 1222 | "dev": true, 1223 | "license": "MIT", 1224 | "engines": { 1225 | "node": ">=0.10.0" 1226 | } 1227 | }, 1228 | "node_modules/is-fullwidth-code-point": { 1229 | "version": "3.0.0", 1230 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 1231 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 1232 | "dev": true, 1233 | "license": "MIT", 1234 | "engines": { 1235 | "node": ">=8" 1236 | } 1237 | }, 1238 | "node_modules/is-generator-function": { 1239 | "version": "1.0.10", 1240 | "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", 1241 | "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", 1242 | "license": "MIT", 1243 | "dependencies": { 1244 | "has-tostringtag": "^1.0.0" 1245 | }, 1246 | "engines": { 1247 | "node": ">= 0.4" 1248 | }, 1249 | "funding": { 1250 | "url": "https://github.com/sponsors/ljharb" 1251 | } 1252 | }, 1253 | "node_modules/is-glob": { 1254 | "version": "4.0.3", 1255 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 1256 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 1257 | "dev": true, 1258 | "license": "MIT", 1259 | "dependencies": { 1260 | "is-extglob": "^2.1.1" 1261 | }, 1262 | "engines": { 1263 | "node": ">=0.10.0" 1264 | } 1265 | }, 1266 | "node_modules/is-nan": { 1267 | "version": "1.3.2", 1268 | "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", 1269 | "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", 1270 | "license": "MIT", 1271 | "dependencies": { 1272 | "call-bind": "^1.0.0", 1273 | "define-properties": "^1.1.3" 1274 | }, 1275 | "engines": { 1276 | "node": ">= 0.4" 1277 | }, 1278 | "funding": { 1279 | "url": "https://github.com/sponsors/ljharb" 1280 | } 1281 | }, 1282 | "node_modules/is-number": { 1283 | "version": "7.0.0", 1284 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 1285 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 1286 | "dev": true, 1287 | "license": "MIT", 1288 | "engines": { 1289 | "node": ">=0.12.0" 1290 | } 1291 | }, 1292 | "node_modules/is-plain-obj": { 1293 | "version": "2.1.0", 1294 | "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", 1295 | "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", 1296 | "dev": true, 1297 | "license": "MIT", 1298 | "engines": { 1299 | "node": ">=8" 1300 | } 1301 | }, 1302 | "node_modules/is-typed-array": { 1303 | "version": "1.1.13", 1304 | "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", 1305 | "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", 1306 | "license": "MIT", 1307 | "dependencies": { 1308 | "which-typed-array": "^1.1.14" 1309 | }, 1310 | "engines": { 1311 | "node": ">= 0.4" 1312 | }, 1313 | "funding": { 1314 | "url": "https://github.com/sponsors/ljharb" 1315 | } 1316 | }, 1317 | "node_modules/is-unicode-supported": { 1318 | "version": "0.1.0", 1319 | "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", 1320 | "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", 1321 | "dev": true, 1322 | "license": "MIT", 1323 | "engines": { 1324 | "node": ">=10" 1325 | }, 1326 | "funding": { 1327 | "url": "https://github.com/sponsors/sindresorhus" 1328 | } 1329 | }, 1330 | "node_modules/isomorphic-ws": { 1331 | "version": "4.0.1", 1332 | "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", 1333 | "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", 1334 | "license": "MIT", 1335 | "peerDependencies": { 1336 | "ws": "*" 1337 | } 1338 | }, 1339 | "node_modules/jayson": { 1340 | "version": "4.1.2", 1341 | "resolved": "https://registry.npmjs.org/jayson/-/jayson-4.1.2.tgz", 1342 | "integrity": "sha512-5nzMWDHy6f+koZOuYsArh2AXs73NfWYVlFyJJuCedr93GpY+Ku8qq10ropSXVfHK+H0T6paA88ww+/dV+1fBNA==", 1343 | "license": "MIT", 1344 | "dependencies": { 1345 | "@types/connect": "^3.4.33", 1346 | "@types/node": "^12.12.54", 1347 | "@types/ws": "^7.4.4", 1348 | "commander": "^2.20.3", 1349 | "delay": "^5.0.0", 1350 | "es6-promisify": "^5.0.0", 1351 | "eyes": "^0.1.8", 1352 | "isomorphic-ws": "^4.0.1", 1353 | "json-stringify-safe": "^5.0.1", 1354 | "JSONStream": "^1.3.5", 1355 | "uuid": "^8.3.2", 1356 | "ws": "^7.5.10" 1357 | }, 1358 | "bin": { 1359 | "jayson": "bin/jayson.js" 1360 | }, 1361 | "engines": { 1362 | "node": ">=8" 1363 | } 1364 | }, 1365 | "node_modules/jayson/node_modules/@types/node": { 1366 | "version": "12.20.55", 1367 | "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", 1368 | "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", 1369 | "license": "MIT" 1370 | }, 1371 | "node_modules/js-yaml": { 1372 | "version": "4.1.0", 1373 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", 1374 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", 1375 | "dev": true, 1376 | "license": "MIT", 1377 | "dependencies": { 1378 | "argparse": "^2.0.1" 1379 | }, 1380 | "bin": { 1381 | "js-yaml": "bin/js-yaml.js" 1382 | } 1383 | }, 1384 | "node_modules/json-stringify-safe": { 1385 | "version": "5.0.1", 1386 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 1387 | "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", 1388 | "license": "ISC" 1389 | }, 1390 | "node_modules/json5": { 1391 | "version": "1.0.2", 1392 | "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", 1393 | "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", 1394 | "dev": true, 1395 | "license": "MIT", 1396 | "optional": true, 1397 | "dependencies": { 1398 | "minimist": "^1.2.0" 1399 | }, 1400 | "bin": { 1401 | "json5": "lib/cli.js" 1402 | } 1403 | }, 1404 | "node_modules/jsonparse": { 1405 | "version": "1.3.1", 1406 | "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", 1407 | "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", 1408 | "engines": [ 1409 | "node >= 0.2.0" 1410 | ], 1411 | "license": "MIT" 1412 | }, 1413 | "node_modules/JSONStream": { 1414 | "version": "1.3.5", 1415 | "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", 1416 | "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", 1417 | "license": "(MIT OR Apache-2.0)", 1418 | "dependencies": { 1419 | "jsonparse": "^1.2.0", 1420 | "through": ">=2.2.7 <3" 1421 | }, 1422 | "bin": { 1423 | "JSONStream": "bin.js" 1424 | }, 1425 | "engines": { 1426 | "node": "*" 1427 | } 1428 | }, 1429 | "node_modules/locate-path": { 1430 | "version": "6.0.0", 1431 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", 1432 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", 1433 | "dev": true, 1434 | "license": "MIT", 1435 | "dependencies": { 1436 | "p-locate": "^5.0.0" 1437 | }, 1438 | "engines": { 1439 | "node": ">=10" 1440 | }, 1441 | "funding": { 1442 | "url": "https://github.com/sponsors/sindresorhus" 1443 | } 1444 | }, 1445 | "node_modules/log-symbols": { 1446 | "version": "4.1.0", 1447 | "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", 1448 | "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", 1449 | "dev": true, 1450 | "license": "MIT", 1451 | "dependencies": { 1452 | "chalk": "^4.1.0", 1453 | "is-unicode-supported": "^0.1.0" 1454 | }, 1455 | "engines": { 1456 | "node": ">=10" 1457 | }, 1458 | "funding": { 1459 | "url": "https://github.com/sponsors/sindresorhus" 1460 | } 1461 | }, 1462 | "node_modules/loupe": { 1463 | "version": "2.3.7", 1464 | "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", 1465 | "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", 1466 | "dev": true, 1467 | "license": "MIT", 1468 | "dependencies": { 1469 | "get-func-name": "^2.0.1" 1470 | } 1471 | }, 1472 | "node_modules/lower-case": { 1473 | "version": "2.0.2", 1474 | "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", 1475 | "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", 1476 | "license": "MIT", 1477 | "dependencies": { 1478 | "tslib": "^2.0.3" 1479 | } 1480 | }, 1481 | "node_modules/make-error": { 1482 | "version": "1.3.6", 1483 | "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", 1484 | "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", 1485 | "dev": true, 1486 | "license": "ISC" 1487 | }, 1488 | "node_modules/minimatch": { 1489 | "version": "5.1.6", 1490 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", 1491 | "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", 1492 | "dev": true, 1493 | "license": "ISC", 1494 | "dependencies": { 1495 | "brace-expansion": "^2.0.1" 1496 | }, 1497 | "engines": { 1498 | "node": ">=10" 1499 | } 1500 | }, 1501 | "node_modules/minimist": { 1502 | "version": "1.2.8", 1503 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", 1504 | "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", 1505 | "dev": true, 1506 | "license": "MIT", 1507 | "funding": { 1508 | "url": "https://github.com/sponsors/ljharb" 1509 | } 1510 | }, 1511 | "node_modules/mkdirp": { 1512 | "version": "0.5.6", 1513 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", 1514 | "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", 1515 | "dev": true, 1516 | "license": "MIT", 1517 | "dependencies": { 1518 | "minimist": "^1.2.6" 1519 | }, 1520 | "bin": { 1521 | "mkdirp": "bin/cmd.js" 1522 | } 1523 | }, 1524 | "node_modules/mocha": { 1525 | "version": "10.7.3", 1526 | "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.7.3.tgz", 1527 | "integrity": "sha512-uQWxAu44wwiACGqjbPYmjo7Lg8sFrS3dQe7PP2FQI+woptP4vZXSMcfMyFL/e1yFEeEpV4RtyTpZROOKmxis+A==", 1528 | "dev": true, 1529 | "license": "MIT", 1530 | "dependencies": { 1531 | "ansi-colors": "^4.1.3", 1532 | "browser-stdout": "^1.3.1", 1533 | "chokidar": "^3.5.3", 1534 | "debug": "^4.3.5", 1535 | "diff": "^5.2.0", 1536 | "escape-string-regexp": "^4.0.0", 1537 | "find-up": "^5.0.0", 1538 | "glob": "^8.1.0", 1539 | "he": "^1.2.0", 1540 | "js-yaml": "^4.1.0", 1541 | "log-symbols": "^4.1.0", 1542 | "minimatch": "^5.1.6", 1543 | "ms": "^2.1.3", 1544 | "serialize-javascript": "^6.0.2", 1545 | "strip-json-comments": "^3.1.1", 1546 | "supports-color": "^8.1.1", 1547 | "workerpool": "^6.5.1", 1548 | "yargs": "^16.2.0", 1549 | "yargs-parser": "^20.2.9", 1550 | "yargs-unparser": "^2.0.0" 1551 | }, 1552 | "bin": { 1553 | "_mocha": "bin/_mocha", 1554 | "mocha": "bin/mocha.js" 1555 | }, 1556 | "engines": { 1557 | "node": ">= 14.0.0" 1558 | } 1559 | }, 1560 | "node_modules/ms": { 1561 | "version": "2.1.3", 1562 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 1563 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 1564 | "license": "MIT" 1565 | }, 1566 | "node_modules/no-case": { 1567 | "version": "3.0.4", 1568 | "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", 1569 | "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", 1570 | "license": "MIT", 1571 | "dependencies": { 1572 | "lower-case": "^2.0.2", 1573 | "tslib": "^2.0.3" 1574 | } 1575 | }, 1576 | "node_modules/node-fetch": { 1577 | "version": "2.7.0", 1578 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", 1579 | "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", 1580 | "license": "MIT", 1581 | "dependencies": { 1582 | "whatwg-url": "^5.0.0" 1583 | }, 1584 | "engines": { 1585 | "node": "4.x || >=6.0.0" 1586 | }, 1587 | "peerDependencies": { 1588 | "encoding": "^0.1.0" 1589 | }, 1590 | "peerDependenciesMeta": { 1591 | "encoding": { 1592 | "optional": true 1593 | } 1594 | } 1595 | }, 1596 | "node_modules/node-gyp-build": { 1597 | "version": "4.8.2", 1598 | "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.2.tgz", 1599 | "integrity": "sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==", 1600 | "license": "MIT", 1601 | "optional": true, 1602 | "bin": { 1603 | "node-gyp-build": "bin.js", 1604 | "node-gyp-build-optional": "optional.js", 1605 | "node-gyp-build-test": "build-test.js" 1606 | } 1607 | }, 1608 | "node_modules/normalize-path": { 1609 | "version": "3.0.0", 1610 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 1611 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 1612 | "dev": true, 1613 | "license": "MIT", 1614 | "engines": { 1615 | "node": ">=0.10.0" 1616 | } 1617 | }, 1618 | "node_modules/object-is": { 1619 | "version": "1.1.6", 1620 | "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", 1621 | "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", 1622 | "license": "MIT", 1623 | "dependencies": { 1624 | "call-bind": "^1.0.7", 1625 | "define-properties": "^1.2.1" 1626 | }, 1627 | "engines": { 1628 | "node": ">= 0.4" 1629 | }, 1630 | "funding": { 1631 | "url": "https://github.com/sponsors/ljharb" 1632 | } 1633 | }, 1634 | "node_modules/object-keys": { 1635 | "version": "1.1.1", 1636 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", 1637 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", 1638 | "license": "MIT", 1639 | "engines": { 1640 | "node": ">= 0.4" 1641 | } 1642 | }, 1643 | "node_modules/object.assign": { 1644 | "version": "4.1.5", 1645 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", 1646 | "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", 1647 | "license": "MIT", 1648 | "dependencies": { 1649 | "call-bind": "^1.0.5", 1650 | "define-properties": "^1.2.1", 1651 | "has-symbols": "^1.0.3", 1652 | "object-keys": "^1.1.1" 1653 | }, 1654 | "engines": { 1655 | "node": ">= 0.4" 1656 | }, 1657 | "funding": { 1658 | "url": "https://github.com/sponsors/ljharb" 1659 | } 1660 | }, 1661 | "node_modules/once": { 1662 | "version": "1.4.0", 1663 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1664 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 1665 | "dev": true, 1666 | "license": "ISC", 1667 | "dependencies": { 1668 | "wrappy": "1" 1669 | } 1670 | }, 1671 | "node_modules/p-limit": { 1672 | "version": "3.1.0", 1673 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", 1674 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", 1675 | "dev": true, 1676 | "license": "MIT", 1677 | "dependencies": { 1678 | "yocto-queue": "^0.1.0" 1679 | }, 1680 | "engines": { 1681 | "node": ">=10" 1682 | }, 1683 | "funding": { 1684 | "url": "https://github.com/sponsors/sindresorhus" 1685 | } 1686 | }, 1687 | "node_modules/p-locate": { 1688 | "version": "5.0.0", 1689 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", 1690 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", 1691 | "dev": true, 1692 | "license": "MIT", 1693 | "dependencies": { 1694 | "p-limit": "^3.0.2" 1695 | }, 1696 | "engines": { 1697 | "node": ">=10" 1698 | }, 1699 | "funding": { 1700 | "url": "https://github.com/sponsors/sindresorhus" 1701 | } 1702 | }, 1703 | "node_modules/pako": { 1704 | "version": "2.1.0", 1705 | "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", 1706 | "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==", 1707 | "license": "(MIT AND Zlib)" 1708 | }, 1709 | "node_modules/path-exists": { 1710 | "version": "4.0.0", 1711 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 1712 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 1713 | "dev": true, 1714 | "license": "MIT", 1715 | "engines": { 1716 | "node": ">=8" 1717 | } 1718 | }, 1719 | "node_modules/pathval": { 1720 | "version": "1.1.1", 1721 | "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", 1722 | "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", 1723 | "dev": true, 1724 | "license": "MIT", 1725 | "engines": { 1726 | "node": "*" 1727 | } 1728 | }, 1729 | "node_modules/picomatch": { 1730 | "version": "2.3.1", 1731 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 1732 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 1733 | "dev": true, 1734 | "license": "MIT", 1735 | "engines": { 1736 | "node": ">=8.6" 1737 | }, 1738 | "funding": { 1739 | "url": "https://github.com/sponsors/jonschlinkert" 1740 | } 1741 | }, 1742 | "node_modules/possible-typed-array-names": { 1743 | "version": "1.0.0", 1744 | "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", 1745 | "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", 1746 | "license": "MIT", 1747 | "engines": { 1748 | "node": ">= 0.4" 1749 | } 1750 | }, 1751 | "node_modules/prettier": { 1752 | "version": "3.3.3", 1753 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", 1754 | "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", 1755 | "dev": true, 1756 | "license": "MIT", 1757 | "bin": { 1758 | "prettier": "bin/prettier.cjs" 1759 | }, 1760 | "engines": { 1761 | "node": ">=14" 1762 | }, 1763 | "funding": { 1764 | "url": "https://github.com/prettier/prettier?sponsor=1" 1765 | } 1766 | }, 1767 | "node_modules/randombytes": { 1768 | "version": "2.1.0", 1769 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", 1770 | "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", 1771 | "dev": true, 1772 | "license": "MIT", 1773 | "dependencies": { 1774 | "safe-buffer": "^5.1.0" 1775 | } 1776 | }, 1777 | "node_modules/readdirp": { 1778 | "version": "3.6.0", 1779 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", 1780 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 1781 | "dev": true, 1782 | "license": "MIT", 1783 | "dependencies": { 1784 | "picomatch": "^2.2.1" 1785 | }, 1786 | "engines": { 1787 | "node": ">=8.10.0" 1788 | } 1789 | }, 1790 | "node_modules/regenerator-runtime": { 1791 | "version": "0.14.1", 1792 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", 1793 | "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", 1794 | "license": "MIT" 1795 | }, 1796 | "node_modules/require-directory": { 1797 | "version": "2.1.1", 1798 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 1799 | "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", 1800 | "dev": true, 1801 | "license": "MIT", 1802 | "engines": { 1803 | "node": ">=0.10.0" 1804 | } 1805 | }, 1806 | "node_modules/rpc-websockets": { 1807 | "version": "7.11.2", 1808 | "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.11.2.tgz", 1809 | "integrity": "sha512-pL9r5N6AVHlMN/vT98+fcO+5+/UcPLf/4tq+WUaid/PPUGS/ttJ3y8e9IqmaWKtShNAysMSjkczuEA49NuV7UQ==", 1810 | "license": "LGPL-3.0-only", 1811 | "dependencies": { 1812 | "eventemitter3": "^4.0.7", 1813 | "uuid": "^8.3.2", 1814 | "ws": "^8.5.0" 1815 | }, 1816 | "funding": { 1817 | "type": "paypal", 1818 | "url": "https://paypal.me/kozjak" 1819 | }, 1820 | "optionalDependencies": { 1821 | "bufferutil": "^4.0.1", 1822 | "utf-8-validate": "^5.0.2" 1823 | } 1824 | }, 1825 | "node_modules/rpc-websockets/node_modules/ws": { 1826 | "version": "8.18.0", 1827 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", 1828 | "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", 1829 | "license": "MIT", 1830 | "engines": { 1831 | "node": ">=10.0.0" 1832 | }, 1833 | "peerDependencies": { 1834 | "bufferutil": "^4.0.1", 1835 | "utf-8-validate": ">=5.0.2" 1836 | }, 1837 | "peerDependenciesMeta": { 1838 | "bufferutil": { 1839 | "optional": true 1840 | }, 1841 | "utf-8-validate": { 1842 | "optional": true 1843 | } 1844 | } 1845 | }, 1846 | "node_modules/safe-buffer": { 1847 | "version": "5.2.1", 1848 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 1849 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 1850 | "funding": [ 1851 | { 1852 | "type": "github", 1853 | "url": "https://github.com/sponsors/feross" 1854 | }, 1855 | { 1856 | "type": "patreon", 1857 | "url": "https://www.patreon.com/feross" 1858 | }, 1859 | { 1860 | "type": "consulting", 1861 | "url": "https://feross.org/support" 1862 | } 1863 | ], 1864 | "license": "MIT" 1865 | }, 1866 | "node_modules/serialize-javascript": { 1867 | "version": "6.0.2", 1868 | "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", 1869 | "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", 1870 | "dev": true, 1871 | "license": "BSD-3-Clause", 1872 | "dependencies": { 1873 | "randombytes": "^2.1.0" 1874 | } 1875 | }, 1876 | "node_modules/set-function-length": { 1877 | "version": "1.2.2", 1878 | "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", 1879 | "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", 1880 | "license": "MIT", 1881 | "dependencies": { 1882 | "define-data-property": "^1.1.4", 1883 | "es-errors": "^1.3.0", 1884 | "function-bind": "^1.1.2", 1885 | "get-intrinsic": "^1.2.4", 1886 | "gopd": "^1.0.1", 1887 | "has-property-descriptors": "^1.0.2" 1888 | }, 1889 | "engines": { 1890 | "node": ">= 0.4" 1891 | } 1892 | }, 1893 | "node_modules/snake-case": { 1894 | "version": "3.0.4", 1895 | "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", 1896 | "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", 1897 | "license": "MIT", 1898 | "dependencies": { 1899 | "dot-case": "^3.0.4", 1900 | "tslib": "^2.0.3" 1901 | } 1902 | }, 1903 | "node_modules/source-map": { 1904 | "version": "0.6.1", 1905 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 1906 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 1907 | "dev": true, 1908 | "license": "BSD-3-Clause", 1909 | "engines": { 1910 | "node": ">=0.10.0" 1911 | } 1912 | }, 1913 | "node_modules/source-map-support": { 1914 | "version": "0.5.21", 1915 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", 1916 | "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", 1917 | "dev": true, 1918 | "license": "MIT", 1919 | "dependencies": { 1920 | "buffer-from": "^1.0.0", 1921 | "source-map": "^0.6.0" 1922 | } 1923 | }, 1924 | "node_modules/string-width": { 1925 | "version": "4.2.3", 1926 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 1927 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 1928 | "dev": true, 1929 | "license": "MIT", 1930 | "dependencies": { 1931 | "emoji-regex": "^8.0.0", 1932 | "is-fullwidth-code-point": "^3.0.0", 1933 | "strip-ansi": "^6.0.1" 1934 | }, 1935 | "engines": { 1936 | "node": ">=8" 1937 | } 1938 | }, 1939 | "node_modules/strip-ansi": { 1940 | "version": "6.0.1", 1941 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 1942 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 1943 | "dev": true, 1944 | "license": "MIT", 1945 | "dependencies": { 1946 | "ansi-regex": "^5.0.1" 1947 | }, 1948 | "engines": { 1949 | "node": ">=8" 1950 | } 1951 | }, 1952 | "node_modules/strip-bom": { 1953 | "version": "3.0.0", 1954 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", 1955 | "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", 1956 | "dev": true, 1957 | "license": "MIT", 1958 | "optional": true, 1959 | "engines": { 1960 | "node": ">=4" 1961 | } 1962 | }, 1963 | "node_modules/strip-json-comments": { 1964 | "version": "3.1.1", 1965 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 1966 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", 1967 | "dev": true, 1968 | "license": "MIT", 1969 | "engines": { 1970 | "node": ">=8" 1971 | }, 1972 | "funding": { 1973 | "url": "https://github.com/sponsors/sindresorhus" 1974 | } 1975 | }, 1976 | "node_modules/superstruct": { 1977 | "version": "0.15.5", 1978 | "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", 1979 | "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==", 1980 | "license": "MIT" 1981 | }, 1982 | "node_modules/supports-color": { 1983 | "version": "8.1.1", 1984 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", 1985 | "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", 1986 | "dev": true, 1987 | "license": "MIT", 1988 | "dependencies": { 1989 | "has-flag": "^4.0.0" 1990 | }, 1991 | "engines": { 1992 | "node": ">=10" 1993 | }, 1994 | "funding": { 1995 | "url": "https://github.com/chalk/supports-color?sponsor=1" 1996 | } 1997 | }, 1998 | "node_modules/text-encoding-utf-8": { 1999 | "version": "1.0.2", 2000 | "resolved": "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz", 2001 | "integrity": "sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==" 2002 | }, 2003 | "node_modules/through": { 2004 | "version": "2.3.8", 2005 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 2006 | "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", 2007 | "license": "MIT" 2008 | }, 2009 | "node_modules/to-regex-range": { 2010 | "version": "5.0.1", 2011 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 2012 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 2013 | "dev": true, 2014 | "license": "MIT", 2015 | "dependencies": { 2016 | "is-number": "^7.0.0" 2017 | }, 2018 | "engines": { 2019 | "node": ">=8.0" 2020 | } 2021 | }, 2022 | "node_modules/toml": { 2023 | "version": "3.0.0", 2024 | "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", 2025 | "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==", 2026 | "license": "MIT" 2027 | }, 2028 | "node_modules/tr46": { 2029 | "version": "0.0.3", 2030 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", 2031 | "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", 2032 | "license": "MIT" 2033 | }, 2034 | "node_modules/ts-mocha": { 2035 | "version": "10.0.0", 2036 | "resolved": "https://registry.npmjs.org/ts-mocha/-/ts-mocha-10.0.0.tgz", 2037 | "integrity": "sha512-VRfgDO+iiuJFlNB18tzOfypJ21xn2xbuZyDvJvqpTbWgkAgD17ONGr8t+Tl8rcBtOBdjXp5e/Rk+d39f7XBHRw==", 2038 | "dev": true, 2039 | "license": "MIT", 2040 | "dependencies": { 2041 | "ts-node": "7.0.1" 2042 | }, 2043 | "bin": { 2044 | "ts-mocha": "bin/ts-mocha" 2045 | }, 2046 | "engines": { 2047 | "node": ">= 6.X.X" 2048 | }, 2049 | "optionalDependencies": { 2050 | "tsconfig-paths": "^3.5.0" 2051 | }, 2052 | "peerDependencies": { 2053 | "mocha": "^3.X.X || ^4.X.X || ^5.X.X || ^6.X.X || ^7.X.X || ^8.X.X || ^9.X.X || ^10.X.X" 2054 | } 2055 | }, 2056 | "node_modules/ts-node": { 2057 | "version": "7.0.1", 2058 | "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz", 2059 | "integrity": "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==", 2060 | "dev": true, 2061 | "license": "MIT", 2062 | "dependencies": { 2063 | "arrify": "^1.0.0", 2064 | "buffer-from": "^1.1.0", 2065 | "diff": "^3.1.0", 2066 | "make-error": "^1.1.1", 2067 | "minimist": "^1.2.0", 2068 | "mkdirp": "^0.5.1", 2069 | "source-map-support": "^0.5.6", 2070 | "yn": "^2.0.0" 2071 | }, 2072 | "bin": { 2073 | "ts-node": "dist/bin.js" 2074 | }, 2075 | "engines": { 2076 | "node": ">=4.2.0" 2077 | } 2078 | }, 2079 | "node_modules/ts-node/node_modules/diff": { 2080 | "version": "3.5.0", 2081 | "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", 2082 | "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", 2083 | "dev": true, 2084 | "license": "BSD-3-Clause", 2085 | "engines": { 2086 | "node": ">=0.3.1" 2087 | } 2088 | }, 2089 | "node_modules/tsconfig-paths": { 2090 | "version": "3.15.0", 2091 | "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", 2092 | "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", 2093 | "dev": true, 2094 | "license": "MIT", 2095 | "optional": true, 2096 | "dependencies": { 2097 | "@types/json5": "^0.0.29", 2098 | "json5": "^1.0.2", 2099 | "minimist": "^1.2.6", 2100 | "strip-bom": "^3.0.0" 2101 | } 2102 | }, 2103 | "node_modules/tslib": { 2104 | "version": "2.7.0", 2105 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", 2106 | "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", 2107 | "license": "0BSD" 2108 | }, 2109 | "node_modules/type-detect": { 2110 | "version": "4.1.0", 2111 | "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", 2112 | "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", 2113 | "dev": true, 2114 | "license": "MIT", 2115 | "engines": { 2116 | "node": ">=4" 2117 | } 2118 | }, 2119 | "node_modules/typescript": { 2120 | "version": "5.6.2", 2121 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", 2122 | "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", 2123 | "dev": true, 2124 | "license": "Apache-2.0", 2125 | "bin": { 2126 | "tsc": "bin/tsc", 2127 | "tsserver": "bin/tsserver" 2128 | }, 2129 | "engines": { 2130 | "node": ">=14.17" 2131 | } 2132 | }, 2133 | "node_modules/undici-types": { 2134 | "version": "6.19.8", 2135 | "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", 2136 | "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", 2137 | "license": "MIT" 2138 | }, 2139 | "node_modules/utf-8-validate": { 2140 | "version": "5.0.10", 2141 | "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", 2142 | "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", 2143 | "hasInstallScript": true, 2144 | "license": "MIT", 2145 | "optional": true, 2146 | "dependencies": { 2147 | "node-gyp-build": "^4.3.0" 2148 | }, 2149 | "engines": { 2150 | "node": ">=6.14.2" 2151 | } 2152 | }, 2153 | "node_modules/util": { 2154 | "version": "0.12.5", 2155 | "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", 2156 | "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", 2157 | "license": "MIT", 2158 | "dependencies": { 2159 | "inherits": "^2.0.3", 2160 | "is-arguments": "^1.0.4", 2161 | "is-generator-function": "^1.0.7", 2162 | "is-typed-array": "^1.1.3", 2163 | "which-typed-array": "^1.1.2" 2164 | } 2165 | }, 2166 | "node_modules/uuid": { 2167 | "version": "8.3.2", 2168 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", 2169 | "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", 2170 | "license": "MIT", 2171 | "bin": { 2172 | "uuid": "dist/bin/uuid" 2173 | } 2174 | }, 2175 | "node_modules/webidl-conversions": { 2176 | "version": "3.0.1", 2177 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", 2178 | "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", 2179 | "license": "BSD-2-Clause" 2180 | }, 2181 | "node_modules/whatwg-url": { 2182 | "version": "5.0.0", 2183 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", 2184 | "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", 2185 | "license": "MIT", 2186 | "dependencies": { 2187 | "tr46": "~0.0.3", 2188 | "webidl-conversions": "^3.0.0" 2189 | } 2190 | }, 2191 | "node_modules/which-typed-array": { 2192 | "version": "1.1.15", 2193 | "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", 2194 | "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", 2195 | "license": "MIT", 2196 | "dependencies": { 2197 | "available-typed-arrays": "^1.0.7", 2198 | "call-bind": "^1.0.7", 2199 | "for-each": "^0.3.3", 2200 | "gopd": "^1.0.1", 2201 | "has-tostringtag": "^1.0.2" 2202 | }, 2203 | "engines": { 2204 | "node": ">= 0.4" 2205 | }, 2206 | "funding": { 2207 | "url": "https://github.com/sponsors/ljharb" 2208 | } 2209 | }, 2210 | "node_modules/workerpool": { 2211 | "version": "6.5.1", 2212 | "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz", 2213 | "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==", 2214 | "dev": true, 2215 | "license": "Apache-2.0" 2216 | }, 2217 | "node_modules/wrap-ansi": { 2218 | "version": "7.0.0", 2219 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", 2220 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", 2221 | "dev": true, 2222 | "license": "MIT", 2223 | "dependencies": { 2224 | "ansi-styles": "^4.0.0", 2225 | "string-width": "^4.1.0", 2226 | "strip-ansi": "^6.0.0" 2227 | }, 2228 | "engines": { 2229 | "node": ">=10" 2230 | }, 2231 | "funding": { 2232 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 2233 | } 2234 | }, 2235 | "node_modules/wrappy": { 2236 | "version": "1.0.2", 2237 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2238 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", 2239 | "dev": true, 2240 | "license": "ISC" 2241 | }, 2242 | "node_modules/ws": { 2243 | "version": "7.5.10", 2244 | "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", 2245 | "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", 2246 | "license": "MIT", 2247 | "engines": { 2248 | "node": ">=8.3.0" 2249 | }, 2250 | "peerDependencies": { 2251 | "bufferutil": "^4.0.1", 2252 | "utf-8-validate": "^5.0.2" 2253 | }, 2254 | "peerDependenciesMeta": { 2255 | "bufferutil": { 2256 | "optional": true 2257 | }, 2258 | "utf-8-validate": { 2259 | "optional": true 2260 | } 2261 | } 2262 | }, 2263 | "node_modules/y18n": { 2264 | "version": "5.0.8", 2265 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", 2266 | "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", 2267 | "dev": true, 2268 | "license": "ISC", 2269 | "engines": { 2270 | "node": ">=10" 2271 | } 2272 | }, 2273 | "node_modules/yargs": { 2274 | "version": "16.2.0", 2275 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", 2276 | "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", 2277 | "dev": true, 2278 | "license": "MIT", 2279 | "dependencies": { 2280 | "cliui": "^7.0.2", 2281 | "escalade": "^3.1.1", 2282 | "get-caller-file": "^2.0.5", 2283 | "require-directory": "^2.1.1", 2284 | "string-width": "^4.2.0", 2285 | "y18n": "^5.0.5", 2286 | "yargs-parser": "^20.2.2" 2287 | }, 2288 | "engines": { 2289 | "node": ">=10" 2290 | } 2291 | }, 2292 | "node_modules/yargs-parser": { 2293 | "version": "20.2.9", 2294 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", 2295 | "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", 2296 | "dev": true, 2297 | "license": "ISC", 2298 | "engines": { 2299 | "node": ">=10" 2300 | } 2301 | }, 2302 | "node_modules/yargs-unparser": { 2303 | "version": "2.0.0", 2304 | "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", 2305 | "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", 2306 | "dev": true, 2307 | "license": "MIT", 2308 | "dependencies": { 2309 | "camelcase": "^6.0.0", 2310 | "decamelize": "^4.0.0", 2311 | "flat": "^5.0.2", 2312 | "is-plain-obj": "^2.1.0" 2313 | }, 2314 | "engines": { 2315 | "node": ">=10" 2316 | } 2317 | }, 2318 | "node_modules/yn": { 2319 | "version": "2.0.0", 2320 | "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", 2321 | "integrity": "sha512-uTv8J/wiWTgUTg+9vLTi//leUl5vDQS6uii/emeTb2ssY7vl6QWf2fFbIIGjnhjvbdKlU0ed7QPgY1htTC86jQ==", 2322 | "dev": true, 2323 | "license": "MIT", 2324 | "engines": { 2325 | "node": ">=4" 2326 | } 2327 | }, 2328 | "node_modules/yocto-queue": { 2329 | "version": "0.1.0", 2330 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", 2331 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", 2332 | "dev": true, 2333 | "license": "MIT", 2334 | "engines": { 2335 | "node": ">=10" 2336 | }, 2337 | "funding": { 2338 | "url": "https://github.com/sponsors/sindresorhus" 2339 | } 2340 | } 2341 | } 2342 | } 2343 | -------------------------------------------------------------------------------- /data_save_program/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "scripts": { 3 | "lint:fix": "prettier */*.js \"*/**/*{.js,.ts}\" -w", 4 | "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check" 5 | }, 6 | "dependencies": { 7 | "@coral-xyz/anchor": "0.29.0", 8 | "@solana/web3.js": "1.78.4", 9 | "assert": "*", 10 | "bn.js": "*" 11 | }, 12 | "devDependencies": { 13 | "@types/bn.js": "^5.1.1", 14 | "@types/chai": "^4.3.5", 15 | "@types/mocha": "^10.0.1", 16 | "@types/node": "^22.6.1", 17 | "chai": "^4.3.8", 18 | "mocha": "^10.2.0", 19 | "prettier": "^3.0.2", 20 | "ts-mocha": "^10.0.0", 21 | "typescript": "^5.2.2" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /data_save_program/programs/hello-anchor/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "hello-anchor" 3 | version = "0.1.0" 4 | description = "Created with Anchor" 5 | edition = "2021" 6 | 7 | [lib] 8 | crate-type = ["cdylib", "lib"] 9 | name = "hello_anchor" 10 | 11 | [features] 12 | no-entrypoint = [] 13 | no-idl = [] 14 | no-log-ix-name = [] 15 | cpi = ["no-entrypoint"] 16 | default = [] 17 | 18 | [dependencies] 19 | anchor-lang = "0.29.0" 20 | -------------------------------------------------------------------------------- /data_save_program/programs/hello-anchor/Xargo.toml: -------------------------------------------------------------------------------- 1 | [target.bpfel-unknown-unknown.dependencies.std] 2 | features = [] 3 | -------------------------------------------------------------------------------- /data_save_program/programs/hello-anchor/src/lib.rs: -------------------------------------------------------------------------------- 1 | use anchor_lang::prelude::*; 2 | 3 | // This is your program's public key and it will update 4 | // automatically when you build the project. 5 | declare_id!("GsX4b44N2vkDjnZPLucGV7ou5qxADN2N6BZ7zU8vnJ1X"); 6 | 7 | #[program] 8 | mod hello_anchor { 9 | use super::*; 10 | 11 | pub fn initialize(ctx: Context, slope : f64, intercept : f64) -> Result<()> { 12 | let new_account = &mut ctx.accounts.new_account; 13 | // Ensure the array is not full 14 | require!(new_account.array_length < MAX_ARRAY_SIZE as u64, CustomError::ArrayFull); 15 | 16 | // Append the new slope and intercept 17 | let index = new_account.array_length as usize; 18 | new_account.slopes[index] = slope; 19 | new_account.intercepts[index] = intercept; 20 | 21 | // Increment the array length 22 | new_account.array_length += 1; 23 | 24 | 25 | 26 | msg!("Added new slope and intercept at index {}!", index); 27 | Ok(()) 28 | } 29 | pub fn save_data(ctx: Context, slope : f64, intercept : f64) -> Result<()> { 30 | let new_account = &mut ctx.accounts.new_account; 31 | // Ensure the array is not full 32 | require!(new_account.array_length < MAX_ARRAY_SIZE as u64, CustomError::ArrayFull); 33 | 34 | // Append the new slope and intercept 35 | let index = new_account.array_length as usize; 36 | new_account.slopes[index] = slope; 37 | new_account.intercepts[index] = intercept; 38 | 39 | // Increment the array length 40 | new_account.array_length += 1; 41 | 42 | msg!("Added new slope and intercept at index {}!", index); 43 | Ok(()) 44 | } 45 | } 46 | 47 | #[derive(Accounts)] 48 | pub struct Initialize<'info> { 49 | // We must specify the space in order to initialize an account. 50 | #[account(init, payer = signer, space = 8 + (8 * MAX_ARRAY_SIZE as usize * 2) + 8, seeds = [b"final_seed".as_ref(), signer.key().as_ref()], bump)] 51 | pub new_account: Account<'info, NewAccount>, 52 | #[account(mut)] 53 | pub signer: Signer<'info>, 54 | pub system_program: Program<'info, System>, 55 | } 56 | 57 | #[derive(Accounts)] 58 | pub struct SaveData<'info> { 59 | #[account(mut, seeds = [b"final_seed".as_ref(), signer.key().as_ref()], bump)] 60 | pub new_account: Account<'info, NewAccount>, 61 | #[account(mut)] 62 | pub signer: Signer<'info>, 63 | } 64 | #[account] 65 | pub struct NewAccount { 66 | pub slopes: [f64; MAX_ARRAY_SIZE], 67 | pub intercepts: [f64; MAX_ARRAY_SIZE], 68 | pub array_length: u64, // To keep track of how many elements are stored 69 | } 70 | 71 | // Define a constant for the maximum array size 72 | const MAX_ARRAY_SIZE: usize = 80; 73 | 74 | // Custom errors for the program 75 | #[error_code] 76 | pub enum CustomError { 77 | #[msg("Array is full. Cannot add more slopes and intercepts.")] 78 | ArrayFull, 79 | } -------------------------------------------------------------------------------- /data_save_program/tests/anchor.ts: -------------------------------------------------------------------------------- 1 | import * as anchor from "@coral-xyz/anchor"; 2 | import BN from "bn.js"; 3 | import assert from "assert"; 4 | import * as web3 from "@solana/web3.js"; 5 | import type { HelloAnchor } from "../target/types/hello_anchor"; 6 | 7 | describe("Test", () => { 8 | // Configure the client to use the local cluster 9 | anchor.setProvider(anchor.AnchorProvider.env()); 10 | 11 | const program = anchor.workspace.HelloAnchor as anchor.Program; 12 | 13 | it("initialize", async () => { 14 | // Generate keypair for the new account 15 | const newAccountKp = new web3.Keypair(); 16 | 17 | // Send transaction 18 | const data = new BN(42); 19 | const txHash = await program.methods 20 | .initialize(data) 21 | .accounts({ 22 | newAccount: newAccountKp.publicKey, 23 | signer: program.provider.publicKey, 24 | systemProgram: web3.SystemProgram.programId, 25 | }) 26 | .signers([newAccountKp]) 27 | .rpc(); 28 | console.log(`Use 'solana confirm -v ${txHash}' to see the logs`); 29 | 30 | // Confirm transaction 31 | await program.provider.connection.confirmTransaction(txHash); 32 | 33 | // Fetch the created account 34 | const newAccount = await program.account.newAccount.fetch( 35 | newAccountKp.publicKey 36 | ); 37 | 38 | console.log("On-chain data is:", newAccount.data.toString()); 39 | 40 | // Check whether the data on-chain is equal to local 'data' 41 | assert(data.eq(newAccount.data)); 42 | }); 43 | }); 44 | -------------------------------------------------------------------------------- /data_save_program/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "types": ["mocha", "chai"], 4 | "typeRoots": ["./node_modules/@types"], 5 | "lib": ["es2015"], 6 | "module": "commonjs", 7 | "target": "es6", 8 | "esModuleInterop": true 9 | } 10 | } 11 | --------------------------------------------------------------------------------