From 8f74c785d0cfc9217fd4720e97f223f812c99988 Mon Sep 17 00:00:00 2001 From: Lucas Oliveira Date: Mon, 13 Jun 2022 01:54:46 -0300 Subject: [PATCH] add: lunes sdk --- config-overrides.js | 25 + lunesweb/.gitignore | 2 + lunesweb/CONTRIBUTING.md | 51 + lunesweb/Cargo.toml | 25 + lunesweb/LICENSE | 201 +++ lunesweb/README.md | 36 + lunesweb/src/lib.rs | 35 + lunesweb/src/wallet/assembly.rs | 67 + lunesweb/src/wallet/constants.rs | 2052 ++++++++++++++++++++++++++++++ lunesweb/src/wallet/mod.rs | 18 + package.json | 7 +- src/pages/home/index.tsx | 5 +- src/services/lunes/wallet.ts | 14 + yarn.lock | 274 +++- 14 files changed, 2768 insertions(+), 44 deletions(-) create mode 100644 config-overrides.js create mode 100644 lunesweb/.gitignore create mode 100644 lunesweb/CONTRIBUTING.md create mode 100644 lunesweb/Cargo.toml create mode 100644 lunesweb/LICENSE create mode 100644 lunesweb/README.md create mode 100644 lunesweb/src/lib.rs create mode 100644 lunesweb/src/wallet/assembly.rs create mode 100644 lunesweb/src/wallet/constants.rs create mode 100644 lunesweb/src/wallet/mod.rs create mode 100644 src/services/lunes/wallet.ts diff --git a/config-overrides.js b/config-overrides.js new file mode 100644 index 0000000..9dba32c --- /dev/null +++ b/config-overrides.js @@ -0,0 +1,25 @@ +const path = require("path") + +module.exports = function override(config, env) { + const wasmExtensionRegExp = /\.wasm$/ + + config.resolve.extensions.push(".wasm") + + config.module.rules.forEach((rule) => { + ;(rule.oneOf || []).forEach((oneOf) => { + if (oneOf.loader && oneOf.loader.indexOf("file-loader") >= 0) { + // make file-loader ignore WASM files + oneOf.exclude.push(wasmExtensionRegExp) + } + }) + }) + + // add a dedicated loader for WASM + config.module.rules.push({ + test: wasmExtensionRegExp, + include: path.resolve(__dirname, "src"), + use: [{ loader: require.resolve("wasm-loader"), options: {} }], + }) + + return config +} \ No newline at end of file diff --git a/lunesweb/.gitignore b/lunesweb/.gitignore new file mode 100644 index 0000000..96ef6c0 --- /dev/null +++ b/lunesweb/.gitignore @@ -0,0 +1,2 @@ +/target +Cargo.lock diff --git a/lunesweb/CONTRIBUTING.md b/lunesweb/CONTRIBUTING.md new file mode 100644 index 0000000..519ab61 --- /dev/null +++ b/lunesweb/CONTRIBUTING.md @@ -0,0 +1,51 @@ +# Contributing + +## What is the workflow? + +1. Create and describe your proposal in an _issue_. +2. Create a new **branch** and **merge request** with the pattern `1-my-feature`. +3. Commit your code to the commit convention. + +--- + +## Convention of Commits and Semantic Version + +### **Commit Structure** + +``` +type(escope): short description + +What does the modification do? +why was it modified? + +#issue +``` +### **Types** + +- **fix** Fix a bug +- **add** Add a new feature +- **remove** Remove a peace of code +- **update** Update any thing. e.g. feature, piece, refact + +### **Semantic Version** + +- **deprecated** -> _Major_ +- **add** -> _Minor_ +- **fixed|update** -> _Patch_ + +--- + +## References + +- [Good Practices](https://bestpractices.coreinfrastructure.org/pt-BR) +- [Semantic Versioning](https://semver.org/lang/pt-BR/) +- [More about Versioning](http://www.modelcvs.org/versioning/) +- [Versioning Automate](https://bhuwanupadhyay.github.io/2020/04/applying-semantic-versioning-with-git-repository/) +- [Conventional Commit](https://www.conventionalcommits.org/en/v1.0.0-beta.2/#why-use-conventional-commits) +- [Default Angular Commit](https://github.com/angular/angular/blob/22b96b9/CONTRIBUTING.md#-commit-message-guidelines) +- [Global hook for repositories](https://docs.gitlab.com/ce/administration/server_hooks.html#set-a-global-server-hook-for-all-repositories) +- [More about Commits](https://chris.beams.io/posts/git-commit/) +- [Quick Actions for Commits](https://docs.gitlab.com/ee/user/project/quick_actions.html) +- [Commits examples](https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y/edit#) +- [Full Tutorial Add Convetional Commit as default](https://prahladyeri.com/blog/2019/06/how-to-enforce-conventional-commit-messages-using-git-hooks.html) +- [Create a global git commit hook](https://coderwall.com/p/jp7d5q/create-a-global-git-commit-hook) diff --git a/lunesweb/Cargo.toml b/lunesweb/Cargo.toml new file mode 100644 index 0000000..8218aa7 --- /dev/null +++ b/lunesweb/Cargo.toml @@ -0,0 +1,25 @@ +[package] +name = "lunesweb" +readme = "README.md" +edition = "2021" +version = "0.3.0" +license = "Apache-2.0" +authors = ["Lunes Platform "] +repository = "https://github.com/lunes-platform/lunesweb" +description = "Library for communication with nodes in mainnet or testnet of the lunes-blockchain network Allows the automation of sending assets, issue end reissue tokens, leasing, registry, and create new wallet." +keywords = ["ed25519-axolotl", "lunes", "cryptography", "cryptocurrencies", "wasm"] +categories = ["algorithms", "cryptography::cryptocurrencies", "cryptography", "wasm"] + +[dependencies] +wasm-bindgen = "0.2.78" +lunesrs = "1.9.3" + +[package.metadata.wasm-pack.profile.release] +wasm-opt = false + +[profile.release] +opt-level = "s" +lto = true + +[lib] +crate-type = ["cdylib", "rlib"] diff --git a/lunesweb/LICENSE b/lunesweb/LICENSE new file mode 100644 index 0000000..fdc3152 --- /dev/null +++ b/lunesweb/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2022 Lunes Platform + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/lunesweb/README.md b/lunesweb/README.md new file mode 100644 index 0000000..db4445b --- /dev/null +++ b/lunesweb/README.md @@ -0,0 +1,36 @@ +# LunesWeb + +📦 LunesWeb is intended to communicate with Lunes Blockchain nodes for Web via WebAssembly and IoT. Allows sending tokens, creating new wallet and more. + +[![Build](https://github.com/lunes-platform/lunesweb/actions/workflows/build.yml/badge.svg?branch=main)](https://github.com/lunes-platform/lunesweb/actions/workflows/build.yml) +[![Test](https://github.com/lunes-platform/lunesweb/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/lunes-platform/lunesweb/actions/workflows/test.yml) +![npm](https://img.shields.io/npm/v/lunesweb) + +![docs.rs](https://img.shields.io/docsrs/lunesweb/0.3.0) + +![npm](https://img.shields.io/npm/dm/lunesweb) +![GitHub last commit](https://img.shields.io/github/last-commit/lunes-platform/lunesweb) +![GitHub commit activity](https://img.shields.io/github/commit-activity/m/lunes-platform/lunesweb) + +![Crates.io](https://img.shields.io/crates/l/lunesweb) +![Discord](https://img.shields.io/discord/958424925453058158) + +## Documentation + +`lunesweb` documentations is hosted at [Telescope](https://lunes-platform.github.io/telescope/) + +## Contributing + +`lunesweb` is still under development. Contributions are always welcome! Please follow the [Developers Guide](CONTRIBUTING.md) if you want to help. + +Thanks to the following people who have contributed to this project: + +[![GitHub Contributors Image](https://contrib.rocks/image?repo=lunes-platform/lunesweb)](https://github.com/lunes-platform/lunesweb/graphs/contributors) + +## Contact + +If you want to contact me you can reach me at . + +## License + +[Apache License Version 2.0](LICENSE). diff --git a/lunesweb/src/lib.rs b/lunesweb/src/lib.rs new file mode 100644 index 0000000..3fbdadb --- /dev/null +++ b/lunesweb/src/lib.rs @@ -0,0 +1,35 @@ +// Copyright 2022 Developers of the Lunes Platform. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. +// +//! # 📦 Lunes Web +//! +//! This crate is implemetations for manage Lunes Wallet with WebAssembly. +//! LunesWeb is one of the libraries that make up the Lunes SDK. +//! +//! ## ⚠️ Caution +//! +//! This repository is full of cryptography functions with some abstraction, be sure what you are doing +//! +//! ## 🔭 Telescope +//! +//! For the user guide and further documentation, please read +//! [Telescope](https://lunes-platform.github.io/telescope/) +//! +//! ## 🏗 Archtecture +//! +//! - **Wallet** +//! - Wallet +//! + + +/// Struct Wallet - of Lunes Blockchain +pub mod wallet; + +#[cfg(feature = "wee_alloc")] +#[global_allocator] +static ALLOC: wee_alloc::WeeAlloc = wee_alloc::WeeAlloc::INIT; diff --git a/lunesweb/src/wallet/assembly.rs b/lunesweb/src/wallet/assembly.rs new file mode 100644 index 0000000..3fa8725 --- /dev/null +++ b/lunesweb/src/wallet/assembly.rs @@ -0,0 +1,67 @@ +use std::vec; + +use super::Wallet; +use crate::wallet::constants::word_list; +use wasm_bindgen::prelude::wasm_bindgen; +use lunesrs::wallet::assembly::{hidden_seed, to_private_key, to_public_key, to_address}; +use lunesrs::utils::base58::{b58_to_vec, vec_to_b58}; +use lunesrs::utils::random::random_triple_number; + +#[wasm_bindgen] +impl Wallet { + #[wasm_bindgen(js_name = "fromSeed")] + pub fn from_seed(seed: String, nonce: Option, chain: Option) -> Wallet { + let seed_len: u8 = seed.split(" ").collect::>().len() as u8; + let nonce = nonce.unwrap_or(0); + let chain = chain.unwrap_or(1); + let seed_vec = hidden_seed(nonce, seed.clone()); + let private_key = to_private_key(seed_vec.clone()); + let public_key = to_public_key(private_key.clone()); + let address = to_address(1, chain, public_key.clone()); + + Wallet { + seed, + seed_len, + nonce, + chain, + private_key: vec_to_b58(private_key), + public_key: vec_to_b58(public_key), + address: vec_to_b58(address), + } + } + + #[wasm_bindgen(js_name = "newSeed")] + pub fn new_seed(n_words: Option, nonce: Option, chain: Option) -> Wallet { + let nonce = nonce.unwrap_or(0); + let chain = chain.unwrap_or(1); + let n_words = match n_words { + Some(n) => n, + None => 4, + }; + let mut seed: Vec = vec![]; + + for _ in 0..=n_words { + for n in random_triple_number() { + seed.push(word_list()[n as usize].clone()) + } + } + + Wallet::from_seed(seed.join(" "), Some(nonce), Some(chain)) + } + + #[wasm_bindgen(js_name = "fromPrivateKey")] + pub fn from_private_key(private_key: String, chain: Option) -> Wallet { + let chain = chain.unwrap_or(1); + let public_key = to_public_key(b58_to_vec(private_key.clone())); + let address = to_address(1, chain, public_key.clone()); + Wallet { + seed: "".to_string(), + seed_len: 0, + nonce: 0, + chain: chain, + private_key: private_key, + public_key: vec_to_b58(public_key), + address: vec_to_b58(address), + } + } +} diff --git a/lunesweb/src/wallet/constants.rs b/lunesweb/src/wallet/constants.rs new file mode 100644 index 0000000..0610b88 --- /dev/null +++ b/lunesweb/src/wallet/constants.rs @@ -0,0 +1,2052 @@ +pub fn word_list() -> Vec { + vec![ + "abandon".to_string(), + "ability".to_string(), + "able".to_string(), + "about".to_string(), + "above".to_string(), + "absent".to_string(), + "absorb".to_string(), + "abstract".to_string(), + "absurd".to_string(), + "abuse".to_string(), + "access".to_string(), + "accident".to_string(), + "account".to_string(), + "accuse".to_string(), + "achieve".to_string(), + "acid".to_string(), + "acoustic".to_string(), + "acquire".to_string(), + "across".to_string(), + "act".to_string(), + "action".to_string(), + "actor".to_string(), + "actress".to_string(), + "actual".to_string(), + "adapt".to_string(), + "add".to_string(), + "addict".to_string(), + "address".to_string(), + "adjust".to_string(), + "admit".to_string(), + "adult".to_string(), + "advance".to_string(), + "advice".to_string(), + "aerobic".to_string(), + "affair".to_string(), + "afford".to_string(), + "afraid".to_string(), + "again".to_string(), + "age".to_string(), + "agent".to_string(), + "agree".to_string(), + "ahead".to_string(), + "aim".to_string(), + "air".to_string(), + "airport".to_string(), + "aisle".to_string(), + "alarm".to_string(), + "album".to_string(), + "alcohol".to_string(), + "alert".to_string(), + "alien".to_string(), + "all".to_string(), + "alley".to_string(), + "allow".to_string(), + "almost".to_string(), + "alone".to_string(), + "alpha".to_string(), + "already".to_string(), + "also".to_string(), + "alter".to_string(), + "always".to_string(), + "amateur".to_string(), + "amazing".to_string(), + "among".to_string(), + "amount".to_string(), + "amused".to_string(), + "analyst".to_string(), + "anchor".to_string(), + "ancient".to_string(), + "anger".to_string(), + "angle".to_string(), + "angry".to_string(), + "animal".to_string(), + "ankle".to_string(), + "announce".to_string(), + "annual".to_string(), + "another".to_string(), + "answer".to_string(), + "antenna".to_string(), + "antique".to_string(), + "anxiety".to_string(), + "any".to_string(), + "apart".to_string(), + "apology".to_string(), + "appear".to_string(), + "apple".to_string(), + "approve".to_string(), + "april".to_string(), + "arch".to_string(), + "arctic".to_string(), + "area".to_string(), + "arena".to_string(), + "argue".to_string(), + "arm".to_string(), + "armed".to_string(), + "armor".to_string(), + "army".to_string(), + "around".to_string(), + "arrange".to_string(), + "arrest".to_string(), + "arrive".to_string(), + "arrow".to_string(), + "art".to_string(), + "artefact".to_string(), + "artist".to_string(), + "artwork".to_string(), + "ask".to_string(), + "aspect".to_string(), + "assault".to_string(), + "asset".to_string(), + "assist".to_string(), + "assume".to_string(), + "asthma".to_string(), + "athlete".to_string(), + "atom".to_string(), + "attack".to_string(), + "attend".to_string(), + "attitude".to_string(), + "attract".to_string(), + "auction".to_string(), + "audit".to_string(), + "august".to_string(), + "aunt".to_string(), + "author".to_string(), + "auto".to_string(), + "autumn".to_string(), + "average".to_string(), + "avocado".to_string(), + "avoid".to_string(), + "awake".to_string(), + "aware".to_string(), + "away".to_string(), + "awesome".to_string(), + "awful".to_string(), + "awkward".to_string(), + "axis".to_string(), + "baby".to_string(), + "bachelor".to_string(), + "bacon".to_string(), + "badge".to_string(), + "bag".to_string(), + "balance".to_string(), + "balcony".to_string(), + "ball".to_string(), + "bamboo".to_string(), + "banana".to_string(), + "banner".to_string(), + "bar".to_string(), + "barely".to_string(), + "bargain".to_string(), + "barrel".to_string(), + "base".to_string(), + "basic".to_string(), + "basket".to_string(), + "battle".to_string(), + "beach".to_string(), + "bean".to_string(), + "beauty".to_string(), + "because".to_string(), + "become".to_string(), + "beef".to_string(), + "before".to_string(), + "begin".to_string(), + "behave".to_string(), + "behind".to_string(), + "believe".to_string(), + "below".to_string(), + "belt".to_string(), + "bench".to_string(), + "benefit".to_string(), + "best".to_string(), + "betray".to_string(), + "better".to_string(), + "between".to_string(), + "beyond".to_string(), + "bicycle".to_string(), + "bid".to_string(), + "bike".to_string(), + "bind".to_string(), + "biology".to_string(), + "bird".to_string(), + "birth".to_string(), + "bitter".to_string(), + "black".to_string(), + "blade".to_string(), + "blame".to_string(), + "blanket".to_string(), + "blast".to_string(), + "bleak".to_string(), + "bless".to_string(), + "blind".to_string(), + "blood".to_string(), + "blossom".to_string(), + "blouse".to_string(), + "blue".to_string(), + "blur".to_string(), + "blush".to_string(), + "board".to_string(), + "boat".to_string(), + "body".to_string(), + "boil".to_string(), + "bomb".to_string(), + "bone".to_string(), + "bonus".to_string(), + "book".to_string(), + "boost".to_string(), + "border".to_string(), + "boring".to_string(), + "borrow".to_string(), + "boss".to_string(), + "bottom".to_string(), + "bounce".to_string(), + "box".to_string(), + "boy".to_string(), + "bracket".to_string(), + "brain".to_string(), + "brand".to_string(), + "brass".to_string(), + "brave".to_string(), + "bread".to_string(), + "breeze".to_string(), + "brick".to_string(), + "bridge".to_string(), + "brief".to_string(), + "bright".to_string(), + "bring".to_string(), + "brisk".to_string(), + "broccoli".to_string(), + "broken".to_string(), + "bronze".to_string(), + "broom".to_string(), + "brother".to_string(), + "brown".to_string(), + "brush".to_string(), + "bubble".to_string(), + "buddy".to_string(), + "budget".to_string(), + "buffalo".to_string(), + "build".to_string(), + "bulb".to_string(), + "bulk".to_string(), + "bullet".to_string(), + "bundle".to_string(), + "bunker".to_string(), + "burden".to_string(), + "burger".to_string(), + "burst".to_string(), + "bus".to_string(), + "business".to_string(), + "busy".to_string(), + "butter".to_string(), + "buyer".to_string(), + "buzz".to_string(), + "cabbage".to_string(), + "cabin".to_string(), + "cable".to_string(), + "cactus".to_string(), + "cage".to_string(), + "cake".to_string(), + "call".to_string(), + "calm".to_string(), + "camera".to_string(), + "camp".to_string(), + "can".to_string(), + "canal".to_string(), + "cancel".to_string(), + "candy".to_string(), + "cannon".to_string(), + "canoe".to_string(), + "canvas".to_string(), + "canyon".to_string(), + "capable".to_string(), + "capital".to_string(), + "captain".to_string(), + "car".to_string(), + "carbon".to_string(), + "card".to_string(), + "cargo".to_string(), + "carpet".to_string(), + "carry".to_string(), + "cart".to_string(), + "case".to_string(), + "cash".to_string(), + "casino".to_string(), + "castle".to_string(), + "casual".to_string(), + "cat".to_string(), + "catalog".to_string(), + "catch".to_string(), + "category".to_string(), + "cattle".to_string(), + "caught".to_string(), + "cause".to_string(), + "caution".to_string(), + "cave".to_string(), + "ceiling".to_string(), + "celery".to_string(), + "cement".to_string(), + "census".to_string(), + "century".to_string(), + "cereal".to_string(), + "certain".to_string(), + "chair".to_string(), + "chalk".to_string(), + "champion".to_string(), + "change".to_string(), + "chaos".to_string(), + "chapter".to_string(), + "charge".to_string(), + "chase".to_string(), + "chat".to_string(), + "cheap".to_string(), + "check".to_string(), + "cheese".to_string(), + "chef".to_string(), + "cherry".to_string(), + "chest".to_string(), + "chicken".to_string(), + "chief".to_string(), + "child".to_string(), + "chimney".to_string(), + "choice".to_string(), + "choose".to_string(), + "chronic".to_string(), + "chuckle".to_string(), + "chunk".to_string(), + "churn".to_string(), + "cigar".to_string(), + "cinnamon".to_string(), + "circle".to_string(), + "citizen".to_string(), + "city".to_string(), + "civil".to_string(), + "claim".to_string(), + "clap".to_string(), + "clarify".to_string(), + "claw".to_string(), + "clay".to_string(), + "clean".to_string(), + "clerk".to_string(), + "clever".to_string(), + "click".to_string(), + "client".to_string(), + "cliff".to_string(), + "climb".to_string(), + "clinic".to_string(), + "clip".to_string(), + "clock".to_string(), + "clog".to_string(), + "close".to_string(), + "cloth".to_string(), + "cloud".to_string(), + "clown".to_string(), + "club".to_string(), + "clump".to_string(), + "cluster".to_string(), + "clutch".to_string(), + "coach".to_string(), + "coast".to_string(), + "coconut".to_string(), + "code".to_string(), + "coffee".to_string(), + "coil".to_string(), + "coin".to_string(), + "collect".to_string(), + "color".to_string(), + "column".to_string(), + "combine".to_string(), + "come".to_string(), + "comfort".to_string(), + "comic".to_string(), + "common".to_string(), + "company".to_string(), + "concert".to_string(), + "conduct".to_string(), + "confirm".to_string(), + "congress".to_string(), + "connect".to_string(), + "consider".to_string(), + "control".to_string(), + "convince".to_string(), + "cook".to_string(), + "cool".to_string(), + "copper".to_string(), + "copy".to_string(), + "coral".to_string(), + "core".to_string(), + "corn".to_string(), + "correct".to_string(), + "cost".to_string(), + "cotton".to_string(), + "couch".to_string(), + "country".to_string(), + "couple".to_string(), + "course".to_string(), + "cousin".to_string(), + "cover".to_string(), + "coyote".to_string(), + "crack".to_string(), + "cradle".to_string(), + "craft".to_string(), + "cram".to_string(), + "crane".to_string(), + "crash".to_string(), + "crater".to_string(), + "crawl".to_string(), + "crazy".to_string(), + "cream".to_string(), + "credit".to_string(), + "creek".to_string(), + "crew".to_string(), + "cricket".to_string(), + "crime".to_string(), + "crisp".to_string(), + "critic".to_string(), + "crop".to_string(), + "cross".to_string(), + "crouch".to_string(), + "crowd".to_string(), + "crucial".to_string(), + "cruel".to_string(), + "cruise".to_string(), + "crumble".to_string(), + "crunch".to_string(), + "crush".to_string(), + "cry".to_string(), + "crystal".to_string(), + "cube".to_string(), + "culture".to_string(), + "cup".to_string(), + "cupboard".to_string(), + "curious".to_string(), + "current".to_string(), + "curtain".to_string(), + "curve".to_string(), + "cushion".to_string(), + "custom".to_string(), + "cute".to_string(), + "cycle".to_string(), + "dad".to_string(), + "damage".to_string(), + "damp".to_string(), + "dance".to_string(), + "danger".to_string(), + "daring".to_string(), + "dash".to_string(), + "daughter".to_string(), + "dawn".to_string(), + "day".to_string(), + "deal".to_string(), + "debate".to_string(), + "debris".to_string(), + "decade".to_string(), + "december".to_string(), + "decide".to_string(), + "decline".to_string(), + "decorate".to_string(), + "decrease".to_string(), + "deer".to_string(), + "defense".to_string(), + "define".to_string(), + "defy".to_string(), + "degree".to_string(), + "delay".to_string(), + "deliver".to_string(), + "demand".to_string(), + "demise".to_string(), + "denial".to_string(), + "dentist".to_string(), + "deny".to_string(), + "depart".to_string(), + "depend".to_string(), + "deposit".to_string(), + "depth".to_string(), + "deputy".to_string(), + "derive".to_string(), + "describe".to_string(), + "desert".to_string(), + "design".to_string(), + "desk".to_string(), + "despair".to_string(), + "destroy".to_string(), + "detail".to_string(), + "detect".to_string(), + "develop".to_string(), + "device".to_string(), + "devote".to_string(), + "diagram".to_string(), + "dial".to_string(), + "diamond".to_string(), + "diary".to_string(), + "dice".to_string(), + "diesel".to_string(), + "diet".to_string(), + "differ".to_string(), + "digital".to_string(), + "dignity".to_string(), + "dilemma".to_string(), + "dinner".to_string(), + "dinosaur".to_string(), + "direct".to_string(), + "dirt".to_string(), + "disagree".to_string(), + "discover".to_string(), + "disease".to_string(), + "dish".to_string(), + "dismiss".to_string(), + "disorder".to_string(), + "display".to_string(), + "distance".to_string(), + "divert".to_string(), + "divide".to_string(), + "divorce".to_string(), + "dizzy".to_string(), + "doctor".to_string(), + "document".to_string(), + "dog".to_string(), + "doll".to_string(), + "dolphin".to_string(), + "domain".to_string(), + "donate".to_string(), + "donkey".to_string(), + "donor".to_string(), + "door".to_string(), + "dose".to_string(), + "double".to_string(), + "dove".to_string(), + "draft".to_string(), + "dragon".to_string(), + "drama".to_string(), + "drastic".to_string(), + "draw".to_string(), + "dream".to_string(), + "dress".to_string(), + "drift".to_string(), + "drill".to_string(), + "drink".to_string(), + "drip".to_string(), + "drive".to_string(), + "drop".to_string(), + "drum".to_string(), + "dry".to_string(), + "duck".to_string(), + "dumb".to_string(), + "dune".to_string(), + "during".to_string(), + "dust".to_string(), + "dutch".to_string(), + "duty".to_string(), + "dwarf".to_string(), + "dynamic".to_string(), + "eager".to_string(), + "eagle".to_string(), + "early".to_string(), + "earn".to_string(), + "earth".to_string(), + "easily".to_string(), + "east".to_string(), + "easy".to_string(), + "echo".to_string(), + "ecology".to_string(), + "economy".to_string(), + "edge".to_string(), + "edit".to_string(), + "educate".to_string(), + "effort".to_string(), + "egg".to_string(), + "eight".to_string(), + "either".to_string(), + "elbow".to_string(), + "elder".to_string(), + "electric".to_string(), + "elegant".to_string(), + "element".to_string(), + "elephant".to_string(), + "elevator".to_string(), + "elite".to_string(), + "else".to_string(), + "embark".to_string(), + "embody".to_string(), + "embrace".to_string(), + "emerge".to_string(), + "emotion".to_string(), + "employ".to_string(), + "empower".to_string(), + "empty".to_string(), + "enable".to_string(), + "enact".to_string(), + "end".to_string(), + "endless".to_string(), + "endorse".to_string(), + "enemy".to_string(), + "energy".to_string(), + "enforce".to_string(), + "engage".to_string(), + "engine".to_string(), + "enhance".to_string(), + "enjoy".to_string(), + "enlist".to_string(), + "enough".to_string(), + "enrich".to_string(), + "enroll".to_string(), + "ensure".to_string(), + "enter".to_string(), + "entire".to_string(), + "entry".to_string(), + "envelope".to_string(), + "episode".to_string(), + "equal".to_string(), + "equip".to_string(), + "era".to_string(), + "erase".to_string(), + "erode".to_string(), + "erosion".to_string(), + "error".to_string(), + "erupt".to_string(), + "escape".to_string(), + "essay".to_string(), + "essence".to_string(), + "estate".to_string(), + "eternal".to_string(), + "ethics".to_string(), + "evidence".to_string(), + "evil".to_string(), + "evoke".to_string(), + "evolve".to_string(), + "exact".to_string(), + "example".to_string(), + "excess".to_string(), + "exchange".to_string(), + "excite".to_string(), + "exclude".to_string(), + "excuse".to_string(), + "execute".to_string(), + "exercise".to_string(), + "exhaust".to_string(), + "exhibit".to_string(), + "exile".to_string(), + "exist".to_string(), + "exit".to_string(), + "exotic".to_string(), + "expand".to_string(), + "expect".to_string(), + "expire".to_string(), + "explain".to_string(), + "expose".to_string(), + "express".to_string(), + "extend".to_string(), + "extra".to_string(), + "eye".to_string(), + "eyebrow".to_string(), + "fabric".to_string(), + "face".to_string(), + "faculty".to_string(), + "fade".to_string(), + "faint".to_string(), + "faith".to_string(), + "fall".to_string(), + "false".to_string(), + "fame".to_string(), + "family".to_string(), + "famous".to_string(), + "fan".to_string(), + "fancy".to_string(), + "fantasy".to_string(), + "farm".to_string(), + "fashion".to_string(), + "fat".to_string(), + "fatal".to_string(), + "father".to_string(), + "fatigue".to_string(), + "fault".to_string(), + "favorite".to_string(), + "feature".to_string(), + "february".to_string(), + "federal".to_string(), + "fee".to_string(), + "feed".to_string(), + "feel".to_string(), + "female".to_string(), + "fence".to_string(), + "festival".to_string(), + "fetch".to_string(), + "fever".to_string(), + "few".to_string(), + "fiber".to_string(), + "fiction".to_string(), + "field".to_string(), + "figure".to_string(), + "file".to_string(), + "film".to_string(), + "filter".to_string(), + "final".to_string(), + "find".to_string(), + "fine".to_string(), + "finger".to_string(), + "finish".to_string(), + "fire".to_string(), + "firm".to_string(), + "first".to_string(), + "fiscal".to_string(), + "fish".to_string(), + "fit".to_string(), + "fitness".to_string(), + "fix".to_string(), + "flag".to_string(), + "flame".to_string(), + "flash".to_string(), + "flat".to_string(), + "flavor".to_string(), + "flee".to_string(), + "flight".to_string(), + "flip".to_string(), + "float".to_string(), + "flock".to_string(), + "floor".to_string(), + "flower".to_string(), + "fluid".to_string(), + "flush".to_string(), + "fly".to_string(), + "foam".to_string(), + "focus".to_string(), + "fog".to_string(), + "foil".to_string(), + "fold".to_string(), + "follow".to_string(), + "food".to_string(), + "foot".to_string(), + "force".to_string(), + "forest".to_string(), + "forget".to_string(), + "fork".to_string(), + "fortune".to_string(), + "forum".to_string(), + "forward".to_string(), + "fossil".to_string(), + "foster".to_string(), + "found".to_string(), + "fox".to_string(), + "fragile".to_string(), + "frame".to_string(), + "frequent".to_string(), + "fresh".to_string(), + "friend".to_string(), + "fringe".to_string(), + "frog".to_string(), + "front".to_string(), + "frost".to_string(), + "frown".to_string(), + "frozen".to_string(), + "fruit".to_string(), + "fuel".to_string(), + "fun".to_string(), + "funny".to_string(), + "furnace".to_string(), + "fury".to_string(), + "future".to_string(), + "gadget".to_string(), + "gain".to_string(), + "galaxy".to_string(), + "gallery".to_string(), + "game".to_string(), + "gap".to_string(), + "garage".to_string(), + "garbage".to_string(), + "garden".to_string(), + "garlic".to_string(), + "garment".to_string(), + "gas".to_string(), + "gasp".to_string(), + "gate".to_string(), + "gather".to_string(), + "gauge".to_string(), + "gaze".to_string(), + "general".to_string(), + "genius".to_string(), + "genre".to_string(), + "gentle".to_string(), + "genuine".to_string(), + "gesture".to_string(), + "ghost".to_string(), + "giant".to_string(), + "gift".to_string(), + "giggle".to_string(), + "ginger".to_string(), + "giraffe".to_string(), + "girl".to_string(), + "give".to_string(), + "glad".to_string(), + "glance".to_string(), + "glare".to_string(), + "glass".to_string(), + "glide".to_string(), + "glimpse".to_string(), + "globe".to_string(), + "gloom".to_string(), + "glory".to_string(), + "glove".to_string(), + "glow".to_string(), + "glue".to_string(), + "goat".to_string(), + "goddess".to_string(), + "gold".to_string(), + "good".to_string(), + "goose".to_string(), + "gorilla".to_string(), + "gospel".to_string(), + "gossip".to_string(), + "govern".to_string(), + "gown".to_string(), + "grab".to_string(), + "grace".to_string(), + "grain".to_string(), + "grant".to_string(), + "grape".to_string(), + "grass".to_string(), + "gravity".to_string(), + "great".to_string(), + "green".to_string(), + "grid".to_string(), + "grief".to_string(), + "grit".to_string(), + "grocery".to_string(), + "group".to_string(), + "grow".to_string(), + "grunt".to_string(), + "guard".to_string(), + "guess".to_string(), + "guide".to_string(), + "guilt".to_string(), + "guitar".to_string(), + "gun".to_string(), + "gym".to_string(), + "habit".to_string(), + "hair".to_string(), + "half".to_string(), + "hammer".to_string(), + "hamster".to_string(), + "hand".to_string(), + "happy".to_string(), + "harbor".to_string(), + "hard".to_string(), + "harsh".to_string(), + "harvest".to_string(), + "hat".to_string(), + "have".to_string(), + "hawk".to_string(), + "hazard".to_string(), + "head".to_string(), + "health".to_string(), + "heart".to_string(), + "heavy".to_string(), + "hedgehog".to_string(), + "height".to_string(), + "hello".to_string(), + "helmet".to_string(), + "help".to_string(), + "hen".to_string(), + "hero".to_string(), + "hidden".to_string(), + "high".to_string(), + "hill".to_string(), + "hint".to_string(), + "hip".to_string(), + "hire".to_string(), + "history".to_string(), + "hobby".to_string(), + "hockey".to_string(), + "hold".to_string(), + "hole".to_string(), + "holiday".to_string(), + "hollow".to_string(), + "home".to_string(), + "honey".to_string(), + "hood".to_string(), + "hope".to_string(), + "horn".to_string(), + "horror".to_string(), + "horse".to_string(), + "hospital".to_string(), + "host".to_string(), + "hotel".to_string(), + "hour".to_string(), + "hover".to_string(), + "hub".to_string(), + "huge".to_string(), + "human".to_string(), + "humble".to_string(), + "humor".to_string(), + "hundred".to_string(), + "hungry".to_string(), + "hunt".to_string(), + "hurdle".to_string(), + "hurry".to_string(), + "hurt".to_string(), + "husband".to_string(), + "hybrid".to_string(), + "ice".to_string(), + "icon".to_string(), + "idea".to_string(), + "identify".to_string(), + "idle".to_string(), + "ignore".to_string(), + "ill".to_string(), + "illegal".to_string(), + "illness".to_string(), + "image".to_string(), + "imitate".to_string(), + "immense".to_string(), + "immune".to_string(), + "impact".to_string(), + "impose".to_string(), + "improve".to_string(), + "impulse".to_string(), + "inch".to_string(), + "include".to_string(), + "income".to_string(), + "increase".to_string(), + "index".to_string(), + "indicate".to_string(), + "indoor".to_string(), + "industry".to_string(), + "infant".to_string(), + "inflict".to_string(), + "inform".to_string(), + "inhale".to_string(), + "inherit".to_string(), + "initial".to_string(), + "inject".to_string(), + "injury".to_string(), + "inmate".to_string(), + "inner".to_string(), + "innocent".to_string(), + "input".to_string(), + "inquiry".to_string(), + "insane".to_string(), + "insect".to_string(), + "inside".to_string(), + "inspire".to_string(), + "install".to_string(), + "intact".to_string(), + "interest".to_string(), + "into".to_string(), + "invest".to_string(), + "invite".to_string(), + "involve".to_string(), + "iron".to_string(), + "island".to_string(), + "isolate".to_string(), + "issue".to_string(), + "item".to_string(), + "ivory".to_string(), + "jacket".to_string(), + "jaguar".to_string(), + "jar".to_string(), + "jazz".to_string(), + "jealous".to_string(), + "jeans".to_string(), + "jelly".to_string(), + "jewel".to_string(), + "job".to_string(), + "join".to_string(), + "joke".to_string(), + "journey".to_string(), + "joy".to_string(), + "judge".to_string(), + "juice".to_string(), + "jump".to_string(), + "jungle".to_string(), + "junior".to_string(), + "junk".to_string(), + "just".to_string(), + "kangaroo".to_string(), + "keen".to_string(), + "keep".to_string(), + "ketchup".to_string(), + "key".to_string(), + "kick".to_string(), + "kid".to_string(), + "kidney".to_string(), + "kind".to_string(), + "kingdom".to_string(), + "kiss".to_string(), + "kit".to_string(), + "kitchen".to_string(), + "kite".to_string(), + "kitten".to_string(), + "kiwi".to_string(), + "knee".to_string(), + "knife".to_string(), + "knock".to_string(), + "know".to_string(), + "lab".to_string(), + "label".to_string(), + "labor".to_string(), + "ladder".to_string(), + "lady".to_string(), + "lake".to_string(), + "lamp".to_string(), + "language".to_string(), + "laptop".to_string(), + "large".to_string(), + "later".to_string(), + "latin".to_string(), + "laugh".to_string(), + "laundry".to_string(), + "lava".to_string(), + "law".to_string(), + "lawn".to_string(), + "lawsuit".to_string(), + "layer".to_string(), + "lazy".to_string(), + "leader".to_string(), + "leaf".to_string(), + "learn".to_string(), + "leave".to_string(), + "lecture".to_string(), + "left".to_string(), + "leg".to_string(), + "legal".to_string(), + "legend".to_string(), + "leisure".to_string(), + "lemon".to_string(), + "lend".to_string(), + "length".to_string(), + "lens".to_string(), + "leopard".to_string(), + "lesson".to_string(), + "letter".to_string(), + "level".to_string(), + "liar".to_string(), + "liberty".to_string(), + "library".to_string(), + "license".to_string(), + "life".to_string(), + "lift".to_string(), + "light".to_string(), + "like".to_string(), + "limb".to_string(), + "limit".to_string(), + "link".to_string(), + "lion".to_string(), + "liquid".to_string(), + "list".to_string(), + "little".to_string(), + "live".to_string(), + "lizard".to_string(), + "load".to_string(), + "loan".to_string(), + "lobster".to_string(), + "local".to_string(), + "lock".to_string(), + "logic".to_string(), + "lonely".to_string(), + "long".to_string(), + "loop".to_string(), + "lottery".to_string(), + "loud".to_string(), + "lounge".to_string(), + "love".to_string(), + "loyal".to_string(), + "lucky".to_string(), + "luggage".to_string(), + "lumber".to_string(), + "lunar".to_string(), + "lunch".to_string(), + "luxury".to_string(), + "lyrics".to_string(), + "machine".to_string(), + "mad".to_string(), + "magic".to_string(), + "magnet".to_string(), + "maid".to_string(), + "mail".to_string(), + "main".to_string(), + "major".to_string(), + "make".to_string(), + "mammal".to_string(), + "man".to_string(), + "manage".to_string(), + "mandate".to_string(), + "mango".to_string(), + "mansion".to_string(), + "manual".to_string(), + "maple".to_string(), + "marble".to_string(), + "march".to_string(), + "margin".to_string(), + "marine".to_string(), + "market".to_string(), + "marriage".to_string(), + "mask".to_string(), + "mass".to_string(), + "master".to_string(), + "match".to_string(), + "material".to_string(), + "math".to_string(), + "matrix".to_string(), + "matter".to_string(), + "maximum".to_string(), + "maze".to_string(), + "meadow".to_string(), + "mean".to_string(), + "measure".to_string(), + "meat".to_string(), + "mechanic".to_string(), + "medal".to_string(), + "media".to_string(), + "melody".to_string(), + "melt".to_string(), + "member".to_string(), + "memory".to_string(), + "mention".to_string(), + "menu".to_string(), + "mercy".to_string(), + "merge".to_string(), + "merit".to_string(), + "merry".to_string(), + "mesh".to_string(), + "message".to_string(), + "metal".to_string(), + "method".to_string(), + "middle".to_string(), + "midnight".to_string(), + "milk".to_string(), + "million".to_string(), + "mimic".to_string(), + "mind".to_string(), + "minimum".to_string(), + "minor".to_string(), + "minute".to_string(), + "miracle".to_string(), + "mirror".to_string(), + "misery".to_string(), + "miss".to_string(), + "mistake".to_string(), + "mix".to_string(), + "mixed".to_string(), + "mixture".to_string(), + "mobile".to_string(), + "model".to_string(), + "modify".to_string(), + "mom".to_string(), + "moment".to_string(), + "monitor".to_string(), + "monkey".to_string(), + "monster".to_string(), + "month".to_string(), + "moon".to_string(), + "moral".to_string(), + "more".to_string(), + "morning".to_string(), + "mosquito".to_string(), + "mother".to_string(), + "motion".to_string(), + "motor".to_string(), + "mountain".to_string(), + "mouse".to_string(), + "move".to_string(), + "movie".to_string(), + "much".to_string(), + "muffin".to_string(), + "mule".to_string(), + "multiply".to_string(), + "muscle".to_string(), + "museum".to_string(), + "mushroom".to_string(), + "music".to_string(), + "must".to_string(), + "mutual".to_string(), + "myself".to_string(), + "mystery".to_string(), + "myth".to_string(), + "naive".to_string(), + "name".to_string(), + "napkin".to_string(), + "narrow".to_string(), + "nasty".to_string(), + "nation".to_string(), + "nature".to_string(), + "near".to_string(), + "neck".to_string(), + "need".to_string(), + "negative".to_string(), + "neglect".to_string(), + "neither".to_string(), + "nephew".to_string(), + "nerve".to_string(), + "nest".to_string(), + "net".to_string(), + "chain".to_string(), + "neutral".to_string(), + "never".to_string(), + "news".to_string(), + "next".to_string(), + "nice".to_string(), + "night".to_string(), + "noble".to_string(), + "noise".to_string(), + "nominee".to_string(), + "noodle".to_string(), + "normal".to_string(), + "north".to_string(), + "nose".to_string(), + "notable".to_string(), + "note".to_string(), + "nothing".to_string(), + "notice".to_string(), + "novel".to_string(), + "now".to_string(), + "nuclear".to_string(), + "number".to_string(), + "nurse".to_string(), + "nut".to_string(), + "oak".to_string(), + "obey".to_string(), + "object".to_string(), + "oblige".to_string(), + "obscure".to_string(), + "observe".to_string(), + "obtain".to_string(), + "obvious".to_string(), + "occur".to_string(), + "ocean".to_string(), + "october".to_string(), + "odor".to_string(), + "off".to_string(), + "offer".to_string(), + "office".to_string(), + "often".to_string(), + "oil".to_string(), + "okay".to_string(), + "old".to_string(), + "olive".to_string(), + "olympic".to_string(), + "omit".to_string(), + "once".to_string(), + "one".to_string(), + "onion".to_string(), + "online".to_string(), + "only".to_string(), + "open".to_string(), + "opera".to_string(), + "opinion".to_string(), + "oppose".to_string(), + "option".to_string(), + "orange".to_string(), + "orbit".to_string(), + "orchard".to_string(), + "order".to_string(), + "ordinary".to_string(), + "organ".to_string(), + "orient".to_string(), + "original".to_string(), + "orphan".to_string(), + "ostrich".to_string(), + "other".to_string(), + "outdoor".to_string(), + "outer".to_string(), + "output".to_string(), + "outside".to_string(), + "oval".to_string(), + "oven".to_string(), + "over".to_string(), + "own".to_string(), + "owner".to_string(), + "oxygen".to_string(), + "oyster".to_string(), + "ozone".to_string(), + "pact".to_string(), + "paddle".to_string(), + "page".to_string(), + "pair".to_string(), + "palace".to_string(), + "palm".to_string(), + "panda".to_string(), + "panel".to_string(), + "panic".to_string(), + "panther".to_string(), + "paper".to_string(), + "parade".to_string(), + "parent".to_string(), + "park".to_string(), + "parrot".to_string(), + "party".to_string(), + "pass".to_string(), + "patch".to_string(), + "path".to_string(), + "patient".to_string(), + "patrol".to_string(), + "pattern".to_string(), + "pause".to_string(), + "pave".to_string(), + "payment".to_string(), + "peace".to_string(), + "peanut".to_string(), + "pear".to_string(), + "peasant".to_string(), + "pelican".to_string(), + "pen".to_string(), + "penalty".to_string(), + "pencil".to_string(), + "people".to_string(), + "pepper".to_string(), + "perfect".to_string(), + "permit".to_string(), + "person".to_string(), + "pet".to_string(), + "phone".to_string(), + "photo".to_string(), + "phrase".to_string(), + "physical".to_string(), + "piano".to_string(), + "picnic".to_string(), + "picture".to_string(), + "piece".to_string(), + "pig".to_string(), + "pigeon".to_string(), + "pill".to_string(), + "pilot".to_string(), + "pink".to_string(), + "pioneer".to_string(), + "pipe".to_string(), + "pistol".to_string(), + "pitch".to_string(), + "pizza".to_string(), + "place".to_string(), + "planet".to_string(), + "plastic".to_string(), + "plate".to_string(), + "play".to_string(), + "please".to_string(), + "pledge".to_string(), + "pluck".to_string(), + "plug".to_string(), + "plunge".to_string(), + "poem".to_string(), + "poet".to_string(), + "point".to_string(), + "polar".to_string(), + "pole".to_string(), + "police".to_string(), + "pond".to_string(), + "pony".to_string(), + "pool".to_string(), + "popular".to_string(), + "portion".to_string(), + "position".to_string(), + "possible".to_string(), + "post".to_string(), + "potato".to_string(), + "pottery".to_string(), + "poverty".to_string(), + "powder".to_string(), + "power".to_string(), + "practice".to_string(), + "praise".to_string(), + "predict".to_string(), + "prefer".to_string(), + "prepare".to_string(), + "present".to_string(), + "pretty".to_string(), + "prevent".to_string(), + "price".to_string(), + "pride".to_string(), + "primary".to_string(), + "print".to_string(), + "priority".to_string(), + "prison".to_string(), + "private".to_string(), + "prize".to_string(), + "problem".to_string(), + "process".to_string(), + "produce".to_string(), + "profit".to_string(), + "program".to_string(), + "project".to_string(), + "promote".to_string(), + "proof".to_string(), + "property".to_string(), + "prosper".to_string(), + "protect".to_string(), + "proud".to_string(), + "provide".to_string(), + "public".to_string(), + "pudding".to_string(), + "pull".to_string(), + "pulp".to_string(), + "pulse".to_string(), + "pumpkin".to_string(), + "punch".to_string(), + "pupil".to_string(), + "puppy".to_string(), + "purchase".to_string(), + "purity".to_string(), + "purpose".to_string(), + "purse".to_string(), + "push".to_string(), + "put".to_string(), + "puzzle".to_string(), + "pyramid".to_string(), + "quality".to_string(), + "quantum".to_string(), + "quarter".to_string(), + "question".to_string(), + "quick".to_string(), + "quit".to_string(), + "quiz".to_string(), + "quote".to_string(), + "rabbit".to_string(), + "raccoon".to_string(), + "race".to_string(), + "rack".to_string(), + "radar".to_string(), + "radio".to_string(), + "rail".to_string(), + "rain".to_string(), + "raise".to_string(), + "rally".to_string(), + "ramp".to_string(), + "ranch".to_string(), + "random".to_string(), + "range".to_string(), + "rapid".to_string(), + "rare".to_string(), + "rate".to_string(), + "rather".to_string(), + "raven".to_string(), + "raw".to_string(), + "razor".to_string(), + "ready".to_string(), + "real".to_string(), + "reason".to_string(), + "rebel".to_string(), + "rebuild".to_string(), + "recall".to_string(), + "receive".to_string(), + "recipe".to_string(), + "record".to_string(), + "recycle".to_string(), + "reduce".to_string(), + "reflect".to_string(), + "reform".to_string(), + "refuse".to_string(), + "region".to_string(), + "regret".to_string(), + "regular".to_string(), + "reject".to_string(), + "relax".to_string(), + "release".to_string(), + "relief".to_string(), + "rely".to_string(), + "remain".to_string(), + "remember".to_string(), + "remind".to_string(), + "remove".to_string(), + "render".to_string(), + "renew".to_string(), + "rent".to_string(), + "reopen".to_string(), + "repair".to_string(), + "repeat".to_string(), + "replace".to_string(), + "report".to_string(), + "require".to_string(), + "rescue".to_string(), + "resemble".to_string(), + "resist".to_string(), + "resource".to_string(), + "response".to_string(), + "result".to_string(), + "retire".to_string(), + "retreat".to_string(), + "return".to_string(), + "reunion".to_string(), + "reveal".to_string(), + "review".to_string(), + "reward".to_string(), + "rhythm".to_string(), + "rib".to_string(), + "ribbon".to_string(), + "rice".to_string(), + "rich".to_string(), + "ride".to_string(), + "ridge".to_string(), + "rifle".to_string(), + "right".to_string(), + "rigid".to_string(), + "ring".to_string(), + "riot".to_string(), + "ripple".to_string(), + "risk".to_string(), + "ritual".to_string(), + "rival".to_string(), + "river".to_string(), + "road".to_string(), + "roast".to_string(), + "robot".to_string(), + "robust".to_string(), + "rocket".to_string(), + "romance".to_string(), + "roof".to_string(), + "rookie".to_string(), + "room".to_string(), + "rose".to_string(), + "rotate".to_string(), + "rough".to_string(), + "round".to_string(), + "route".to_string(), + "royal".to_string(), + "rubber".to_string(), + "rude".to_string(), + "rug".to_string(), + "rule".to_string(), + "run".to_string(), + "runway".to_string(), + "rural".to_string(), + "sad".to_string(), + "saddle".to_string(), + "sadness".to_string(), + "safe".to_string(), + "sail".to_string(), + "salad".to_string(), + "salmon".to_string(), + "salon".to_string(), + "salt".to_string(), + "salute".to_string(), + "same".to_string(), + "sample".to_string(), + "sand".to_string(), + "satisfy".to_string(), + "satoshi".to_string(), + "sauce".to_string(), + "sausage".to_string(), + "save".to_string(), + "say".to_string(), + "scale".to_string(), + "scan".to_string(), + "scare".to_string(), + "scatter".to_string(), + "scene".to_string(), + "scheme".to_string(), + "school".to_string(), + "science".to_string(), + "scissors".to_string(), + "scorpion".to_string(), + "scout".to_string(), + "scrap".to_string(), + "screen".to_string(), + "script".to_string(), + "scrub".to_string(), + "sea".to_string(), + "search".to_string(), + "season".to_string(), + "seat".to_string(), + "second".to_string(), + "secret".to_string(), + "section".to_string(), + "security".to_string(), + "seed".to_string(), + "seek".to_string(), + "segment".to_string(), + "select".to_string(), + "sell".to_string(), + "seminar".to_string(), + "senior".to_string(), + "sense".to_string(), + "sentence".to_string(), + "series".to_string(), + "service".to_string(), + "session".to_string(), + "settle".to_string(), + "setup".to_string(), + "seven".to_string(), + "shadow".to_string(), + "shaft".to_string(), + "shallow".to_string(), + "share".to_string(), + "shed".to_string(), + "shell".to_string(), + "sheriff".to_string(), + "shield".to_string(), + "shift".to_string(), + "shine".to_string(), + "ship".to_string(), + "shiver".to_string(), + "shock".to_string(), + "shoe".to_string(), + "shoot".to_string(), + "shop".to_string(), + "short".to_string(), + "shoulder".to_string(), + "shove".to_string(), + "shrimp".to_string(), + "shrug".to_string(), + "shuffle".to_string(), + "shy".to_string(), + "sibling".to_string(), + "sick".to_string(), + "side".to_string(), + "siege".to_string(), + "sight".to_string(), + "sign".to_string(), + "silent".to_string(), + "silk".to_string(), + "silly".to_string(), + "silver".to_string(), + "similar".to_string(), + "simple".to_string(), + "since".to_string(), + "sing".to_string(), + "siren".to_string(), + "sister".to_string(), + "situate".to_string(), + "six".to_string(), + "size".to_string(), + "skate".to_string(), + "sketch".to_string(), + "ski".to_string(), + "skill".to_string(), + "skin".to_string(), + "skirt".to_string(), + "skull".to_string(), + "slab".to_string(), + "slam".to_string(), + "sleep".to_string(), + "slender".to_string(), + "slice".to_string(), + "slide".to_string(), + "slight".to_string(), + "slim".to_string(), + "slogan".to_string(), + "slot".to_string(), + "slow".to_string(), + "slush".to_string(), + "small".to_string(), + "smart".to_string(), + "smile".to_string(), + "smoke".to_string(), + "smooth".to_string(), + "snack".to_string(), + "snake".to_string(), + "snap".to_string(), + "sniff".to_string(), + "snow".to_string(), + "soap".to_string(), + "soccer".to_string(), + "social".to_string(), + "sock".to_string(), + "soda".to_string(), + "soft".to_string(), + "solar".to_string(), + "soldier".to_string(), + "solid".to_string(), + "solution".to_string(), + "solve".to_string(), + "someone".to_string(), + "song".to_string(), + "soon".to_string(), + "sorry".to_string(), + "sort".to_string(), + "soul".to_string(), + "sound".to_string(), + "soup".to_string(), + "source".to_string(), + "south".to_string(), + "space".to_string(), + "spare".to_string(), + "spatial".to_string(), + "spawn".to_string(), + "speak".to_string(), + "special".to_string(), + "speed".to_string(), + "spell".to_string(), + "spend".to_string(), + "sphere".to_string(), + "spice".to_string(), + "spider".to_string(), + "spike".to_string(), + "spin".to_string(), + "spirit".to_string(), + "split".to_string(), + "spoil".to_string(), + "sponsor".to_string(), + "spoon".to_string(), + "sport".to_string(), + "spot".to_string(), + "spray".to_string(), + "spread".to_string(), + "spring".to_string(), + "spy".to_string(), + "square".to_string(), + "squeeze".to_string(), + "squirrel".to_string(), + "stable".to_string(), + "stadium".to_string(), + "staff".to_string(), + "stage".to_string(), + "stairs".to_string(), + "stamp".to_string(), + "stand".to_string(), + "start".to_string(), + "state".to_string(), + "stay".to_string(), + "steak".to_string(), + "steel".to_string(), + "stem".to_string(), + "step".to_string(), + "stereo".to_string(), + "stick".to_string(), + "still".to_string(), + "sting".to_string(), + "stock".to_string(), + "stomach".to_string(), + "stone".to_string(), + "stool".to_string(), + "story".to_string(), + "stove".to_string(), + "strategy".to_string(), + "street".to_string(), + "strike".to_string(), + "strong".to_string(), + "struggle".to_string(), + "student".to_string(), + "stuff".to_string(), + "stumble".to_string(), + "style".to_string(), + "subject".to_string(), + "submit".to_string(), + "subway".to_string(), + "success".to_string(), + "such".to_string(), + "sudden".to_string(), + "suffer".to_string(), + "sugar".to_string(), + "suggest".to_string(), + "suit".to_string(), + "summer".to_string(), + "sun".to_string(), + "sunny".to_string(), + "sunset".to_string(), + "super".to_string(), + "supply".to_string(), + "supreme".to_string(), + "sure".to_string(), + "surface".to_string(), + "surge".to_string(), + "surprise".to_string(), + "surround".to_string(), + "survey".to_string(), + "suspect".to_string(), + "sustain".to_string(), + "swallow".to_string(), + "swamp".to_string(), + "swap".to_string(), + "swarm".to_string(), + "swear".to_string(), + "sweet".to_string(), + "swift".to_string(), + "swim".to_string(), + "swing".to_string(), + "switch".to_string(), + "sword".to_string(), + "symbol".to_string(), + "symptom".to_string(), + "syrup".to_string(), + "system".to_string(), + "table".to_string(), + "tackle".to_string(), + "tag".to_string(), + "tail".to_string(), + "talent".to_string(), + "talk".to_string(), + "tank".to_string(), + "tape".to_string(), + "target".to_string(), + "task".to_string(), + "taste".to_string(), + "tattoo".to_string(), + "taxi".to_string(), + "teach".to_string(), + "team".to_string(), + "tell".to_string(), + "ten".to_string(), + "tenant".to_string(), + "tennis".to_string(), + "tent".to_string(), + "term".to_string(), + "test".to_string(), + "text".to_string(), + "thank".to_string(), + "that".to_string(), + "theme".to_string(), + "then".to_string(), + "theory".to_string(), + "there".to_string(), + "they".to_string(), + "thing".to_string(), + "this".to_string(), + "thought".to_string(), + "three".to_string(), + "thrive".to_string(), + "throw".to_string(), + "thumb".to_string(), + "thunder".to_string(), + "ticket".to_string(), + "tide".to_string(), + "tiger".to_string(), + "tilt".to_string(), + "timber".to_string(), + "time".to_string(), + "tiny".to_string(), + "tip".to_string(), + "tired".to_string(), + "tissue".to_string(), + "title".to_string(), + "toast".to_string(), + "tobacco".to_string(), + "today".to_string(), + "toddler".to_string(), + "toe".to_string(), + "together".to_string(), + "toilet".to_string(), + "token".to_string(), + "tomato".to_string(), + "tomorrow".to_string(), + "tone".to_string(), + "tongue".to_string(), + "tonight".to_string(), + "tool".to_string(), + "tooth".to_string(), + "top".to_string(), + "topic".to_string(), + "topple".to_string(), + "torch".to_string(), + "tornado".to_string(), + "tortoise".to_string(), + "toss".to_string(), + "total".to_string(), + "tourist".to_string(), + "toward".to_string(), + "tower".to_string(), + "town".to_string(), + "toy".to_string(), + "track".to_string(), + "trade".to_string(), + "traffic".to_string(), + "tragic".to_string(), + "train".to_string(), + "transfer".to_string(), + "trap".to_string(), + "trash".to_string(), + "travel".to_string(), + "tray".to_string(), + "treat".to_string(), + "tree".to_string(), + "trend".to_string(), + "trial".to_string(), + "tribe".to_string(), + "trick".to_string(), + "trigger".to_string(), + "trim".to_string(), + "trip".to_string(), + "trophy".to_string(), + "trouble".to_string(), + "truck".to_string(), + "true".to_string(), + "truly".to_string(), + "trumpet".to_string(), + "trust".to_string(), + "truth".to_string(), + "try".to_string(), + "tube".to_string(), + "tuition".to_string(), + "tumble".to_string(), + "tuna".to_string(), + "tunnel".to_string(), + "turkey".to_string(), + "turn".to_string(), + "turtle".to_string(), + "twelve".to_string(), + "twenty".to_string(), + "twice".to_string(), + "twin".to_string(), + "twist".to_string(), + "two".to_string(), + "type".to_string(), + "typical".to_string(), + "ugly".to_string(), + "umbrella".to_string(), + "unable".to_string(), + "unaware".to_string(), + "uncle".to_string(), + "uncover".to_string(), + "under".to_string(), + "undo".to_string(), + "unfair".to_string(), + "unfold".to_string(), + "unhappy".to_string(), + "uniform".to_string(), + "unique".to_string(), + "unit".to_string(), + "universe".to_string(), + "unknown".to_string(), + "unlock".to_string(), + "until".to_string(), + "unusual".to_string(), + "unveil".to_string(), + "update".to_string(), + "upgrade".to_string(), + "uphold".to_string(), + "upon".to_string(), + "upper".to_string(), + "upset".to_string(), + "urban".to_string(), + "urge".to_string(), + "usage".to_string(), + "use".to_string(), + "used".to_string(), + "useful".to_string(), + "useless".to_string(), + "usual".to_string(), + "utility".to_string(), + "vacant".to_string(), + "vacuum".to_string(), + "vague".to_string(), + "valid".to_string(), + "valley".to_string(), + "valve".to_string(), + "van".to_string(), + "vanish".to_string(), + "vapor".to_string(), + "various".to_string(), + "vast".to_string(), + "vault".to_string(), + "vehicle".to_string(), + "velvet".to_string(), + "vendor".to_string(), + "venture".to_string(), + "venue".to_string(), + "verb".to_string(), + "verify".to_string(), + "version".to_string(), + "very".to_string(), + "vessel".to_string(), + "veteran".to_string(), + "viable".to_string(), + "vibrant".to_string(), + "vicious".to_string(), + "victory".to_string(), + "video".to_string(), + "view".to_string(), + "village".to_string(), + "vintage".to_string(), + "violin".to_string(), + "virtual".to_string(), + "virus".to_string(), + "visa".to_string(), + "visit".to_string(), + "visual".to_string(), + "vital".to_string(), + "vivid".to_string(), + "vocal".to_string(), + "voice".to_string(), + "void".to_string(), + "volcano".to_string(), + "volume".to_string(), + "vote".to_string(), + "voyage".to_string(), + "wage".to_string(), + "wagon".to_string(), + "wait".to_string(), + "walk".to_string(), + "wall".to_string(), + "walnut".to_string(), + "want".to_string(), + "warfare".to_string(), + "warm".to_string(), + "warrior".to_string(), + "wash".to_string(), + "wasp".to_string(), + "waste".to_string(), + "water".to_string(), + "wave".to_string(), + "way".to_string(), + "wealth".to_string(), + "weapon".to_string(), + "wear".to_string(), + "weasel".to_string(), + "weather".to_string(), + "web".to_string(), + "wedding".to_string(), + "weekend".to_string(), + "weird".to_string(), + "welcome".to_string(), + "west".to_string(), + "wet".to_string(), + "whale".to_string(), + "what".to_string(), + "wheat".to_string(), + "wheel".to_string(), + "when".to_string(), + "where".to_string(), + "whip".to_string(), + "whisper".to_string(), + "wide".to_string(), + "width".to_string(), + "wife".to_string(), + "wild".to_string(), + "will".to_string(), + "win".to_string(), + "window".to_string(), + "wine".to_string(), + "wing".to_string(), + "wink".to_string(), + "winner".to_string(), + "winter".to_string(), + "wire".to_string(), + "wisdom".to_string(), + "wise".to_string(), + "wish".to_string(), + "witness".to_string(), + "wolf".to_string(), + "woman".to_string(), + "wonder".to_string(), + "wood".to_string(), + "wool".to_string(), + "word".to_string(), + "work".to_string(), + "world".to_string(), + "worry".to_string(), + "worth".to_string(), + "wrap".to_string(), + "wreck".to_string(), + "wrestle".to_string(), + "wrist".to_string(), + "write".to_string(), + "wrong".to_string(), + "yard".to_string(), + "year".to_string(), + "yellow".to_string(), + "you".to_string(), + "young".to_string(), + "youth".to_string(), + "zebra".to_string(), + "zero".to_string(), + "zone".to_string(), + "zoo".to_string(), + ] +} diff --git a/lunesweb/src/wallet/mod.rs b/lunesweb/src/wallet/mod.rs new file mode 100644 index 0000000..c6f1720 --- /dev/null +++ b/lunesweb/src/wallet/mod.rs @@ -0,0 +1,18 @@ +use wasm_bindgen::prelude::wasm_bindgen; + +pub mod assembly; + +pub mod constants; + +/// # Wallet Model +#[derive(Debug)] +#[wasm_bindgen(getter_with_clone)] +pub struct Wallet { + pub seed: String, + pub seed_len: u8, + pub nonce: u32, + pub chain: u8, + pub private_key: String, + pub public_key: String, + pub address: String, +} diff --git a/package.json b/package.json index 8ac6bff..6b37a55 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "easyqrcodejs": "^4.4.10", "lunes-js-api": "0.31.8", "lunesui": "0.0.4", - "lunesweb": "^0.3.0-bundler", + "lunesweb": "file:./lunesweb/pkg", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", @@ -25,10 +25,12 @@ "react-toastify": "^8.2.0", "stream": "0.0.2", "styled-components": "^5.3.3", - "typescript": "^4.6.2", + "typescript": "^4.5.0", + "wasm-loader": "^1.3.0", "web-vitals": "^2.1.4" }, "scripts": { + "nstart": "yarn react-app-rewired start", "start": "react-scripts start", "build": "export INLINE_RUNTIME_CHUNK=false; react-scripts build", "prebuild": "git log --pretty > CHANGELOG.md", @@ -56,6 +58,7 @@ "devDependencies": { "@types/crypto-js": "^4.1.1", "@types/styled-components": "^5.1.24", + "react-app-rewired": "^2.2.1", "react-error-overlay": "6.0.9" }, "sass": { diff --git a/src/pages/home/index.tsx b/src/pages/home/index.tsx index 6bb783d..6724186 100644 --- a/src/pages/home/index.tsx +++ b/src/pages/home/index.tsx @@ -1,6 +1,8 @@ import React, { useEffect, useState } from "react" import { useNavigate } from "react-router-dom" +import wallet from "../../services/lunes/wallet" + import Balance from "../../components/header/balance" import ButtonsContainer from "./components/buttonsContainer" import Header from "../../components/header" @@ -46,7 +48,8 @@ const Home = () => { }, [userAddress, lunesBalance, setSelectedToken]) - + wallet.newWallet() + wallet.fromSeed("foi mesmo") return (
} /> diff --git a/src/services/lunes/wallet.ts b/src/services/lunes/wallet.ts new file mode 100644 index 0000000..586d959 --- /dev/null +++ b/src/services/lunes/wallet.ts @@ -0,0 +1,14 @@ +const wasm = import("lunesweb") + +const wallet = { + newWallet: async () => { + const x = (await wasm).hiddenSeed(0, "foi") + console.warn("NOVA WALLET") + console.warn(x) + }, + fromSeed: (seed: string) => { + console.warn(seed.toUpperCase()) + } +} + +export default wallet \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 25d8a79..74a91b9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -23,7 +23,7 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.5.5": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.0.0-beta.36", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.5.5": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== @@ -35,6 +35,11 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.7.tgz#078d8b833fbbcc95286613be8c716cef2b519fa2" integrity sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ== +"@babel/compat-data@^7.17.10": + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.10.tgz#711dc726a492dfc8be8220028b1b92482362baab" + integrity sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw== + "@babel/core@7.12.3": version "7.12.3" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.3.tgz#1b436884e1e3bff6fb1328dc02b208759de92ad8" @@ -57,6 +62,27 @@ semver "^5.4.1" source-map "^0.5.0" +"@babel/core@^7.0.0-beta.39": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.2.tgz#87b2fcd7cce9becaa7f5acebdc4f09f3dd19d876" + integrity sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ== + dependencies: + "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.18.2" + "@babel/helper-compilation-targets" "^7.18.2" + "@babel/helper-module-transforms" "^7.18.0" + "@babel/helpers" "^7.18.2" + "@babel/parser" "^7.18.0" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.18.2" + "@babel/types" "^7.18.2" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.1" + semver "^6.3.0" + "@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.16.0", "@babel/core@^7.7.5", "@babel/core@^7.8.4": version "7.17.8" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.8.tgz#3dac27c190ebc3a4381110d46c80e77efe172e1a" @@ -87,6 +113,15 @@ jsesc "^2.5.1" source-map "^0.5.0" +"@babel/generator@^7.18.2": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.2.tgz#33873d6f89b21efe2da63fe554460f3df1c5880d" + integrity sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw== + dependencies: + "@babel/types" "^7.18.2" + "@jridgewell/gen-mapping" "^0.3.0" + jsesc "^2.5.1" + "@babel/helper-annotate-as-pure@^7.16.0", "@babel/helper-annotate-as-pure@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862" @@ -112,6 +147,16 @@ browserslist "^4.17.5" semver "^6.3.0" +"@babel/helper-compilation-targets@^7.18.2": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz#67a85a10cbd5fc7f1457fec2e7f45441dc6c754b" + integrity sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ== + dependencies: + "@babel/compat-data" "^7.17.10" + "@babel/helper-validator-option" "^7.16.7" + browserslist "^4.20.2" + semver "^6.3.0" + "@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7", "@babel/helper-create-class-features-plugin@^7.17.6": version "7.17.6" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz#3778c1ed09a7f3e65e6d6e0f6fbfcc53809d92c9" @@ -154,6 +199,11 @@ dependencies: "@babel/types" "^7.16.7" +"@babel/helper-environment-visitor@^7.18.2": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz#8a6d2dedb53f6bf248e31b4baf38739ee4a637bd" + integrity sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ== + "@babel/helper-explode-assignable-expression@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz#12a6d8522fdd834f194e868af6354e8650242b7a" @@ -170,6 +220,14 @@ "@babel/template" "^7.16.7" "@babel/types" "^7.16.7" +"@babel/helper-function-name@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz#136fcd54bc1da82fcb47565cf16fd8e444b1ff12" + integrity sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg== + dependencies: + "@babel/template" "^7.16.7" + "@babel/types" "^7.17.0" + "@babel/helper-get-function-arity@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419" @@ -212,6 +270,20 @@ "@babel/traverse" "^7.17.3" "@babel/types" "^7.17.0" +"@babel/helper-module-transforms@^7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz#baf05dec7a5875fb9235bd34ca18bad4e21221cd" + integrity sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA== + dependencies: + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-simple-access" "^7.17.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/helper-validator-identifier" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.18.0" + "@babel/types" "^7.18.0" + "@babel/helper-optimise-call-expression@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz#a34e3560605abbd31a18546bd2aad3e6d9a174f2" @@ -294,6 +366,15 @@ "@babel/traverse" "^7.17.3" "@babel/types" "^7.17.0" +"@babel/helpers@^7.18.2": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.2.tgz#970d74f0deadc3f5a938bfa250738eb4ac889384" + integrity sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg== + dependencies: + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.18.2" + "@babel/types" "^7.18.2" + "@babel/highlight@^7.10.4", "@babel/highlight@^7.16.7": version "7.16.10" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88" @@ -308,6 +389,11 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.8.tgz#2817fb9d885dd8132ea0f8eb615a6388cca1c240" integrity sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ== +"@babel/parser@^7.18.0": + version "7.18.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.4.tgz#6774231779dd700e0af29f6ad8d479582d7ce5ef" + integrity sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow== + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz#4eda6d6c2a0aa79c70fa7b6da67763dfe2141050" @@ -1058,6 +1144,22 @@ "@babel/parser" "^7.16.7" "@babel/types" "^7.16.7" +"@babel/traverse@^7.0.0-beta.39", "@babel/traverse@^7.18.0", "@babel/traverse@^7.18.2": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.2.tgz#b77a52604b5cc836a9e1e08dca01cba67a12d2e8" + integrity sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.18.2" + "@babel/helper-environment-visitor" "^7.18.2" + "@babel/helper-function-name" "^7.17.9" + "@babel/helper-hoist-variables" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/parser" "^7.18.0" + "@babel/types" "^7.18.2" + debug "^4.1.0" + globals "^11.1.0" + "@babel/traverse@^7.1.0", "@babel/traverse@^7.12.1", "@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.3", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.0": version "7.17.3" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.3.tgz#0ae0f15b27d9a92ba1f2263358ea7c4e7db47b57" @@ -1082,6 +1184,14 @@ "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0" +"@babel/types@^7.0.0-beta.39", "@babel/types@^7.18.0", "@babel/types@^7.18.2": + version "7.18.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.4.tgz#27eae9b9fd18e9dccc3f9d6ad051336f307be354" + integrity sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + to-fast-properties "^2.0.0" + "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -1380,11 +1490,25 @@ "@types/yargs" "^15.0.0" chalk "^4.0.0" +"@jridgewell/gen-mapping@^0.3.0": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz#cf92a983c83466b8c0ce9124fadeaf09f7c66ea9" + integrity sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg== + dependencies: + "@jridgewell/set-array" "^1.0.0" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + "@jridgewell/resolve-uri@^3.0.3": version "3.0.5" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz#68eb521368db76d040a6315cdb24bf2483037b9c" integrity sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew== +"@jridgewell/set-array@^1.0.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.1.tgz#36a6acc93987adcf0ba50c66908bd0b70de8afea" + integrity sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ== + "@jridgewell/sourcemap-codec@^1.4.10": version "1.4.11" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec" @@ -1398,6 +1522,14 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" +"@jridgewell/trace-mapping@^0.3.9": + version "0.3.13" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz#dcfe3e95f224c8fe97a87a5235defec999aa92ea" + integrity sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -2779,6 +2911,11 @@ babylon@^6.18.0: resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== +babylon@^7.0.0-beta.39: + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.47.tgz#6d1fa44f0abec41ab7c780481e62fd9aafbdea80" + integrity sha512-+rq2cr4GDhtToEzKFD6KZZMDBXhjFAr9JjPw9pAppZACeEWqNM294j+NdBzkSHYXwzzBmVjZ3nEVJlOhbR2gOQ== + balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" @@ -3025,6 +3162,17 @@ browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.17.5, browserslist@^4 node-releases "^2.0.2" picocolors "^1.0.0" +browserslist@^4.20.2: + version "4.20.4" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.4.tgz#98096c9042af689ee1e0271333dbc564b8ce4477" + integrity sha512-ok1d+1WpnU24XYN7oC3QWgTyMhY/avPJ/r9T00xxvUOIparA/gc+UPUMaod3i+G6s+nI2nUb9xZ5k794uIwShw== + dependencies: + caniuse-lite "^1.0.30001349" + electron-to-chromium "^1.4.147" + escalade "^3.1.1" + node-releases "^2.0.5" + picocolors "^1.0.0" + bser@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" @@ -3074,11 +3222,6 @@ builtin-status-codes@^3.0.0: resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= -bulma@^0.9.3: - version "0.9.3" - resolved "https://registry.yarnpkg.com/bulma/-/bulma-0.9.3.tgz#ddccb7436ebe3e21bf47afe01d3c43a296b70243" - integrity sha512-0d7GNW1PY4ud8TWxdNcP6Cc8Bu7MxcntD/RRLGWuiw/s0a9P+XlH/6QoOIrmbj6o8WWJzJYhytiu9nFjTszk1g== - bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" @@ -3219,6 +3362,11 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, can resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001319.tgz#eb4da4eb3ecdd409f7ba1907820061d56096e88f" integrity sha512-xjlIAFHucBRSMUo1kb5D4LYgcN1M45qdKP++lhqowDpwJwGkpIRTt5qQqnhxjj1vHcI7nrJxWhCC1ATrCEBTcw== +caniuse-lite@^1.0.30001349: + version "1.0.30001352" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001352.tgz#cc6f5da3f983979ad1e2cdbae0505dccaa7c6a12" + integrity sha512-GUgH8w6YergqPQDGWhJGt8GDRnY0L/iJVQcU3eJ46GYf52R8tk0Wxp0PymuFVZboJYXGiCqwozAYZNRjVj6IcA== + capture-exit@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" @@ -3271,21 +3419,6 @@ check-types@^11.1.1: resolved "https://registry.yarnpkg.com/check-types/-/check-types-11.1.2.tgz#86a7c12bf5539f6324eb0e70ca8896c0e38f3e2f" integrity sha512-tzWzvgePgLORb9/3a0YenggReLKAIb2owL03H2Xdoe5pKcUyWRSEQ8xfCar8t2SIAuEDwtmx2da1YB52YuHQMQ== -"chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.1: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - chokidar@^2.1.8: version "2.1.8" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" @@ -3305,6 +3438,21 @@ chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" +chokidar@^3.4.1: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + chownr@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" @@ -4365,6 +4513,11 @@ electron-to-chromium@^1.3.564, electron-to-chromium@^1.4.84: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.89.tgz#33c06592812a17a7131873f4596579084ce33ff8" integrity sha512-z1Axg0Fu54fse8wN4fd+GAINdU5mJmLtcl6bqIcYyzNVGONcfHAeeJi88KYMQVKalhXlYuVPzKkFIU5VD0raUw== +electron-to-chromium@^1.4.147: + version "1.4.152" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.152.tgz#7dedbe8f3dc1c597088982a203f392e60f7ee90a" + integrity sha512-jk4Ju5SGZAQQJ1iI4Rgru7dDlvkQPLpNPWH9gIZmwCD4YteA5Bbk1xPcPDUf5jUYs3e1e80RXdi8XgKQZaigeg== + elliptic@^6.5.3: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" @@ -5802,11 +5955,6 @@ immer@8.0.1: resolved "https://registry.yarnpkg.com/immer/-/immer-8.0.1.tgz#9c73db683e2b3975c424fb0572af5889877ae656" integrity sha512-aqXhGP7//Gui2+UrEtvxZxSquQVXTpZ7KDxfCcKAF3Vysvw0CViVaW9RZ1j1xlIYqaaaipBoqdqeibkc18PNvA== -immutable@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.0.0.tgz#b86f78de6adef3608395efb269a91462797e2c23" - integrity sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw== - import-cwd@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" @@ -6922,7 +7070,7 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" -json5@^2.1.2: +json5@^2.1.2, json5@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== @@ -7155,6 +7303,11 @@ loglevel@^1.6.8: resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.8.0.tgz#e7ec73a57e1e7b419cb6c6ac06bf050b67356114" integrity sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA== +long@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/long/-/long-3.2.0.tgz#d821b7138ca1cb581c172990ef14db200b5c474b" + integrity sha512-ZYvPPOMqUwPoDsbJaR10iQJYnMuZhRTvHYl62ErLIEX7RgFlziSBUUvrt3OVfc47QlHHpzPZYP17g3Fv7oeJkg== + loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" @@ -7200,6 +7353,9 @@ lunesui@0.0.4: resolved "https://registry.yarnpkg.com/lunesui/-/lunesui-0.0.4.tgz#a11d82e1d34d9dc2c9aa6b063ad0edb71d54e35e" integrity sha512-AnLJInfgJW6CVa5kOgRwtHFzLlMavV9td7TWUGj2QWuqPNnEnJS8Bu0lZcVzwYGGslq1m4iIXsoeswYai0H7Wg== +"lunesweb@file:./lunesweb/pkg": + version "0.3.0" + lz-string@^1.4.4: version "1.4.4" resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26" @@ -7665,6 +7821,11 @@ node-releases@^2.0.2: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.2.tgz#7139fe71e2f4f11b47d4d2986aaf8c48699e0c01" integrity sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg== +node-releases@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.5.tgz#280ed5bc3eba0d96ce44897d8aee478bfb3d9666" + integrity sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q== + normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -9184,6 +9345,13 @@ react-app-polyfill@^2.0.0: regenerator-runtime "^0.13.7" whatwg-fetch "^3.4.1" +react-app-rewired@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/react-app-rewired/-/react-app-rewired-2.2.1.tgz#84901ee1e3f26add0377ebec0b41bcdfce9fc211" + integrity sha512-uFQWTErXeLDrMzOJHKp0h8P1z0LV9HzPGsJ6adOtGlA/B9WfT6Shh4j2tLTTGlXOfiVx6w6iWpp7SOC5pvk+gA== + dependencies: + semver "^5.6.0" + react-dev-utils@^11.0.3: version "11.0.4" resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-11.0.4.tgz#a7ccb60257a1ca2e0efe7a83e38e6700d17aa37a" @@ -9788,15 +9956,6 @@ sass-loader@^10.0.5: schema-utils "^3.0.0" semver "^7.3.2" -sass@^1.50.1: - version "1.50.1" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.50.1.tgz#e9b078a1748863013c4712d2466ce8ca4e4ed292" - integrity sha512-noTnY41KnlW2A9P8sdwESpDmo+KBNkukI1i8+hOK3footBUcohNHtdOJbckp46XO95nuvcHDDZ+4tmOnpK3hjw== - dependencies: - chokidar ">=3.0.0 <4.0.0" - immutable "^4.0.0" - source-map-js ">=0.6.2 <2.0.0" - sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" @@ -10118,7 +10277,7 @@ source-list-map@^2.0.0: resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== -"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2: +source-map-js@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== @@ -10923,10 +11082,10 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.2.tgz#fe12d2727b708f4eef40f51598b3398baa9611d4" - integrity sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg== +typescript@^4.5.0: + version "4.7.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.3.tgz#8364b502d5257b540f9de4c40be84c98e23a129d" + integrity sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA== unbox-primitive@^1.0.1: version "1.0.1" @@ -11192,6 +11351,25 @@ walker@^1.0.7, walker@~1.0.5: dependencies: makeerror "1.0.12" +wasm-dce@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wasm-dce/-/wasm-dce-1.0.2.tgz#7e21e566fa17c61e8e257742a377a5bdb8f2e4f5" + integrity sha512-Fq1+nu43ybsjSnBquLrW/cULmKs61qbv9k8ep13QUe0nABBezMoNAA+j6QY66MW0/eoDVDp1rjXDqQ2VKyS/Xg== + dependencies: + "@babel/core" "^7.0.0-beta.39" + "@babel/traverse" "^7.0.0-beta.39" + "@babel/types" "^7.0.0-beta.39" + babylon "^7.0.0-beta.39" + webassembly-interpreter "0.0.30" + +wasm-loader@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/wasm-loader/-/wasm-loader-1.3.0.tgz#a123a6b6c9a9dac60de38449703be3537742e155" + integrity sha512-R4s75XH+o8qM+WaRrAU9S2rbAMDzob18/S3V8R9ZoFpZkPWLAohWWlzWAp1ybeTkOuuku/X1zJtxiV0pBYxZww== + dependencies: + loader-utils "^1.1.0" + wasm-dce "^1.0.0" + watchpack-chokidar2@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" @@ -11222,6 +11400,20 @@ web-vitals@^2.1.4: resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-2.1.4.tgz#76563175a475a5e835264d373704f9dde718290c" integrity sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg== +webassembly-floating-point-hex-parser@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/webassembly-floating-point-hex-parser/-/webassembly-floating-point-hex-parser-0.1.2.tgz#85bb01f54e68690c2645ea0cfad26c1110fdf988" + integrity sha512-TUf1H++8U10+stJbFydnvrpG5Sznz5Rilez/oZlV5zI0C/e4cSxd8rALAJ8VpTvjVWxLmL3SVSJUK6Ap9AoiNg== + +webassembly-interpreter@0.0.30: + version "0.0.30" + resolved "https://registry.yarnpkg.com/webassembly-interpreter/-/webassembly-interpreter-0.0.30.tgz#f35aaec0fff2e6fd9ca7277eb1a9059dccedcb7f" + integrity sha512-+Jdy2piEvz9T5j751mOE8+rBO12p+nNW6Fg4kJZ+zP1oUfsm+151sbAbM8AFxWTURmWCGP+r8Lxwfv3pzN1bCQ== + dependencies: + "@babel/code-frame" "^7.0.0-beta.36" + long "^3.2.0" + webassembly-floating-point-hex-parser "0.1.2" + webidl-conversions@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff"