From 0cce0ad9f944a99862741071c0db5c7f7d4d855c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Apr 2020 22:39:15 +0000 Subject: [PATCH 1/3] Bump minimist from 1.2.0 to 1.2.3 Bumps [minimist](https://github.com/substack/minimist) from 1.2.0 to 1.2.3. - [Release notes](https://github.com/substack/minimist/releases) - [Commits](https://github.com/substack/minimist/compare/1.2.0...1.2.3) Signed-off-by: dependabot[bot] --- package-lock.json | 12 ++++++------ package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index a2b258f..55dc963 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4549,9 +4549,9 @@ } }, "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "version": "1.2.3", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.3.tgz", + "integrity": "sha512-+bMdgqjMN/Z77a6NlY/I3U5LlRDbnmaAk6lDveAPKwSpcPM4tKAuYsvYF8xjhOPXhOYGe/73vVLVez5PW+jqhw==", "dev": true }, "mixin-deep": { @@ -5988,9 +5988,9 @@ "dev": true }, "sass": { - "version": "1.26.3", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.26.3.tgz", - "integrity": "sha512-5NMHI1+YFYw4sN3yfKjpLuV9B5l7MqQ6FlkTcC4FT+oHbBRUZoSjHrrt/mE0nFXJyY2kQtU9ou9HxvFVjLFuuw==", + "version": "1.26.5", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.26.5.tgz", + "integrity": "sha512-FG2swzaZUiX53YzZSjSakzvGtlds0lcbF+URuU9mxOv7WBh7NhXEVDa4kPKN4hN6fC2TkOTOKqiqp6d53N9X5Q==", "dev": true, "requires": { "chokidar": ">=2.0.0 <4.0.0" diff --git a/package.json b/package.json index b5166a5..42fd773 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "prismjs": "^1.20.0", "sass": "^1.26.5", "typescript": "^3.8.3", - "minimist": "1.2.5", + "minimist": "1.2.3", "kind-of": "6.0.3" }, "dependencies": {} From 620f065532be5b17d7567221a5b7cee4e833e9d2 Mon Sep 17 00:00:00 2001 From: spieljs Date: Sat, 16 May 2020 03:23:54 +0200 Subject: [PATCH 2/3] update to the new versions of yew 0.16, yew-router 0.13 and adapt the tests to the new version --- README.md | 2 +- app/index.ts | 4 +- crate/Cargo.lock | 51 +- crate/Cargo.toml | 8 +- crate/assets/spielrs_logo.png | Bin 0 -> 63801 bytes crate/main.js | 6 + crate/src/page/navbar_page.rs | 2 +- crate/yew_styles/.gitignore | 1 + crate/yew_styles/Cargo.lock | 66 +- crate/yew_styles/Cargo.toml | 8 +- crate/yew_styles/README.md | 2 +- crate/yew_styles/src/components/button.rs | 56 +- .../src/components/layouts/container.rs | 24 +- .../yew_styles/src/components/layouts/item.rs | 22 +- .../src/components/navbar/navbar_item.rs | 26 +- crate/yew_styles/src/lib.rs | 2 +- index.html | 9 + package-lock.json | 858 +++++------------- package.json | 30 +- wasm-builder.js | 41 + wasm_pack_cmd | 1 + 21 files changed, 432 insertions(+), 787 deletions(-) create mode 100644 crate/assets/spielrs_logo.png create mode 100644 crate/main.js create mode 100644 crate/yew_styles/.gitignore create mode 100644 wasm-builder.js create mode 100755 wasm_pack_cmd diff --git a/README.md b/README.md index 1373cc9..848aa8c 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ Each component is splited in two parts, the logical yew component and its sass m however, it is not necessary to worry about the sass module only it needs to be include in the project ### How install it 1. Install the sass module: `npm install yew-styles` -2. Add the yew_style crate in Cargo.toml file: `yew_styles = "0.3.0"` +2. Add the yew_style crate in Cargo.toml file: `yew_styles = "0.3.1"` 3. Import the main.css file in you main javascript/typescript file project: ```typescript import 'node_modules/yew-styles/main.css'; diff --git a/app/index.ts b/app/index.ts index 5cc719b..01c2b8e 100644 --- a/app/index.ts +++ b/app/index.ts @@ -1,7 +1,5 @@ import './yew-styles/main.sass'; import './page-styles/main.sass'; +import 'prismjs'; import 'prismjs/themes/prism.css'; import 'prismjs/components/prism-rust'; - -import module from '../crate/Cargo.toml'; -module.run(); diff --git a/crate/Cargo.lock b/crate/Cargo.lock index 497a597..f6dc717 100644 --- a/crate/Cargo.lock +++ b/crate/Cargo.lock @@ -761,7 +761,7 @@ dependencies = [ [[package]] name = "yew" -version = "0.15.0" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "anyhow 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)", @@ -790,12 +790,12 @@ dependencies = [ "wasm-bindgen 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", "wasm-bindgen-futures 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)", "web-sys 0.3.36 (registry+https://github.com/rust-lang/crates.io-index)", - "yew-macro 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "yew-macro 0.16.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "yew-macro" -version = "0.15.0" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "boolinator 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -808,7 +808,7 @@ dependencies = [ [[package]] name = "yew-router" -version = "0.12.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", @@ -821,25 +821,25 @@ dependencies = [ "serde_json 1.0.48 (registry+https://github.com/rust-lang/crates.io-index)", "wasm-bindgen 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", "web-sys 0.3.36 (registry+https://github.com/rust-lang/crates.io-index)", - "yew 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "yew-router-macro 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "yew-router-route-parser 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", + "yew 0.16.2 (registry+https://github.com/rust-lang/crates.io-index)", + "yew-router-macro 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", + "yew-router-route-parser 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "yew-router-macro" -version = "0.12.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", - "yew-router-route-parser 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", + "yew-router-route-parser 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "yew-router-route-parser" -version = "0.12.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "nom 5.1.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -847,18 +847,17 @@ dependencies = [ [[package]] name = "yew_prism" -version = "0.2.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "wasm-bindgen 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen-test 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "web-sys 0.3.36 (registry+https://github.com/rust-lang/crates.io-index)", - "yew 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "yew 0.16.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "yew_style_page" -version = "0.3.0" +version = "0.3.1" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", "console_error_panic_hook 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -869,22 +868,22 @@ dependencies = [ "wasm-bindgen 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", "web-sys 0.3.36 (registry+https://github.com/rust-lang/crates.io-index)", "wee_alloc 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "yew 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "yew-router 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", - "yew_prism 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "yew_styles 0.3.0", + "yew 0.16.2 (registry+https://github.com/rust-lang/crates.io-index)", + "yew-router 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", + "yew_prism 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "yew_styles 0.3.1", ] [[package]] name = "yew_styles" -version = "0.3.0" +version = "0.3.1" dependencies = [ "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", "wasm-bindgen 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", "wasm-bindgen-test 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "web-sys 0.3.36 (registry+https://github.com/rust-lang/crates.io-index)", - "yew 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "yew 0.16.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [metadata] @@ -985,9 +984,9 @@ dependencies = [ "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" "checksum yaml-rust 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "65923dd1784f44da1d2c3dbbc5e822045628c590ba72123e1c73d3c230c4434d" -"checksum yew 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7532a83ec6c2173cd72888bb3ac0e3656d0dd152476f71631f4b465481855391" -"checksum yew-macro 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)" = "28cf0535e956932124a66721a0f91a1f65a1654ab509c43c3b5d71eb10f20089" -"checksum yew-router 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = "30c14c320554af8f6c9412606daca46e9fdac686b6be6f3563e7f4073c628f8e" -"checksum yew-router-macro 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "88820ce667e8b1b17750c2294e69dc93932bdcfd76a7fec5b7b573131f3421c1" -"checksum yew-router-route-parser 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b3c4708315d2325182b9c3d8c9805e4f5293baf6e6103f9cd4f989ddedca192a" -"checksum yew_prism 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "18729acde7cdb3dea9acb4ef2e3610035f69c2795d0172f8def81718a85199de" +"checksum yew 0.16.2 (registry+https://github.com/rust-lang/crates.io-index)" = "fc1e1b60b090bf29758c6c42da2d2d6d54aa97dc73e3ccd1cd99d664b4c754cf" +"checksum yew-macro 0.16.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f1d2fe46d7922ecd99af4e5b4eddcab58c70ec741e31de6e1b910d5873a3095f" +"checksum yew-router 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c2d29986e07f8aab66507dd659f826062fb5ca434387cc44d4574a116ac52712" +"checksum yew-router-macro 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2a8b72c6e6b40c5180e5b0fff9f5a9e67937f662c595cad87301fc480e50e347" +"checksum yew-router-route-parser 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9662dbe5f703fa5458cba3a7a000faf232dc124214f9c33e06d05d50805fd9ca" +"checksum yew_prism 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "aefe5d5eadbcbbbbb1dce3eaf80549f0aced3285107e8ec56804f5eec160a6c5" diff --git a/crate/Cargo.toml b/crate/Cargo.toml index afd438e..267a1bb 100644 --- a/crate/Cargo.toml +++ b/crate/Cargo.toml @@ -6,7 +6,7 @@ license = "MIT" name = "yew_style_page" readme = "./README.md" repository = "https://github.com/spielrs/yew-styles-page.git" -version = "0.3.0" +version = "0.3.1" [lib] crate-type = ["cdylib"] @@ -20,8 +20,8 @@ serde = "1.0" serde_derive = "1.0" dotenv = "0.15" failure = "0.1" -yew = { version="0.15", features = ["toml", "yaml", "msgpack", "cbor", "web_sys"]} -yew-router = {version="0.12", features = ["web_sys"] } +yew = { version="0.16", features = ["toml", "yaml", "msgpack", "cbor", "web_sys"]} +yew-router = {version="0.13", features = ["web_sys"] } web-sys = "0.3" -yew_prism = {version="0.2"} +yew_prism = {version="0.3"} yew_styles= {path= "./yew_styles"} diff --git a/crate/assets/spielrs_logo.png b/crate/assets/spielrs_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..c097952d05e874b9f25a3631fc14c0f6d3c3e9b5 GIT binary patch literal 63801 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�z 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%0Die%!x+*LhY4imw>!dssz=TsUOsUg})U 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 SZzBva(2)|87p)T3|MP#<80>KX literal 0 HcmV?d00001 diff --git a/crate/main.js b/crate/main.js new file mode 100644 index 0000000..0213be8 --- /dev/null +++ b/crate/main.js @@ -0,0 +1,6 @@ +import init, { run_app } from './pkg/yewstyle_page.js'; +async function main() { + await init('/pkg/yewstyle_page_bg.wasm'); + run_app(); +} +main() \ No newline at end of file diff --git a/crate/src/page/navbar_page.rs b/crate/src/page/navbar_page.rs index f942589..0ea58ae 100644 --- a/crate/src/page/navbar_page.rs +++ b/crate/src/page/navbar_page.rs @@ -194,7 +194,7 @@ fn get_navbar_type( fixed=Fixed::None navbar_style=style.style.clone() navbar_type=navbar_type.navbar_type - branch=html!{} + branch=html!{} > {get_menus(link.clone(), navbar_type_rendered)} diff --git a/crate/yew_styles/.gitignore b/crate/yew_styles/.gitignore new file mode 100644 index 0000000..1de5659 --- /dev/null +++ b/crate/yew_styles/.gitignore @@ -0,0 +1 @@ +target \ No newline at end of file diff --git a/crate/yew_styles/Cargo.lock b/crate/yew_styles/Cargo.lock index c8b0c70..e8ebb50 100644 --- a/crate/yew_styles/Cargo.lock +++ b/crate/yew_styles/Cargo.lock @@ -60,7 +60,7 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -163,7 +163,7 @@ dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", "wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -190,7 +190,7 @@ name = "gloo-events" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "wasm-bindgen 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", "web-sys 0.3.37 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -201,7 +201,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "gloo-events 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "js-sys 0.3.37 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", "web-sys 0.3.37 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -211,7 +211,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "js-sys 0.3.37 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", "web-sys 0.3.37 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -248,7 +248,7 @@ name = "js-sys" version = "0.3.37" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "wasm-bindgen 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -490,16 +490,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "wasm-bindgen" -version = "0.2.60" +version = "0.2.62" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen-macro 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-macro 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.60" +version = "0.2.62" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bumpalo 3.2.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -508,7 +508,7 @@ dependencies = [ "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "syn 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen-shared 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-shared 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -518,34 +518,34 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", "js-sys 0.3.37 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", "web-sys 0.3.37 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.60" +version = "0.2.62" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen-macro-support 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-macro-support 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.60" +version = "0.2.62" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "syn 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen-backend 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen-shared 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-backend 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-shared 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.60" +version = "0.2.62" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -556,7 +556,7 @@ dependencies = [ "console_error_panic_hook 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "js-sys 0.3.37 (registry+https://github.com/rust-lang/crates.io-index)", "scoped-tls 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", "wasm-bindgen-futures 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", "wasm-bindgen-test-macro 0.3.10 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -576,7 +576,7 @@ version = "0.3.37" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "js-sys 0.3.37 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -589,7 +589,7 @@ dependencies = [ [[package]] name = "yew" -version = "0.15.0" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "anyhow 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)", @@ -615,15 +615,15 @@ dependencies = [ "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "thiserror 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", "toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", "wasm-bindgen-futures 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", "web-sys 0.3.37 (registry+https://github.com/rust-lang/crates.io-index)", - "yew-macro 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "yew-macro 0.16.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "yew-macro" -version = "0.15.0" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "boolinator 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -636,14 +636,14 @@ dependencies = [ [[package]] name = "yew_styles" -version = "0.3.0" +version = "0.3.1" dependencies = [ "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", "wasm-bindgen-test 0.3.10 (registry+https://github.com/rust-lang/crates.io-index)", "web-sys 0.3.37 (registry+https://github.com/rust-lang/crates.io-index)", - "yew 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "yew 0.16.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [metadata] @@ -712,15 +712,15 @@ dependencies = [ "checksum toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a" "checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c" "checksum wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" -"checksum wasm-bindgen 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)" = "2cc57ce05287f8376e998cbddfb4c8cb43b84a7ec55cf4551d7c00eef317a47f" -"checksum wasm-bindgen-backend 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)" = "d967d37bf6c16cca2973ca3af071d0a2523392e4a594548155d89a678f4237cd" +"checksum wasm-bindgen 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)" = "e3c7d40d09cdbf0f4895ae58cf57d92e1e57a9dd8ed2e8390514b54a47cc5551" +"checksum wasm-bindgen-backend 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)" = "c3972e137ebf830900db522d6c8fd74d1900dcfc733462e9a12e942b00b4ac94" "checksum wasm-bindgen-futures 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "7add542ea1ac7fdaa9dc25e031a6af33b7d63376292bd24140c637d00d1c312a" -"checksum wasm-bindgen-macro 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)" = "8bd151b63e1ea881bb742cd20e1d6127cef28399558f3b5d415289bc41eee3a4" -"checksum wasm-bindgen-macro-support 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)" = "d68a5b36eef1be7868f668632863292e37739656a80fc4b9acec7b0bd35a4931" -"checksum wasm-bindgen-shared 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)" = "daf76fe7d25ac79748a37538b7daeed1c7a6867c92d3245c12c6222e4a20d639" +"checksum wasm-bindgen-macro 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)" = "2cd85aa2c579e8892442954685f0d801f9129de24fa2136b2c6a539c76b65776" +"checksum wasm-bindgen-macro-support 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)" = "8eb197bd3a47553334907ffd2f16507b4f4f01bbec3ac921a7719e0decdfe72a" +"checksum wasm-bindgen-shared 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)" = "a91c2916119c17a8e316507afaaa2dd94b47646048014bbdf6bef098c1bb58ad" "checksum wasm-bindgen-test 0.3.10 (registry+https://github.com/rust-lang/crates.io-index)" = "648da3460c6d2aa04b715a936329e2e311180efe650b2127d6267f4193ccac14" "checksum wasm-bindgen-test-macro 0.3.10 (registry+https://github.com/rust-lang/crates.io-index)" = "cf2f86cd78a2aa7b1fb4bb6ed854eccb7f9263089c79542dca1576a1518a8467" "checksum web-sys 0.3.37 (registry+https://github.com/rust-lang/crates.io-index)" = "2d6f51648d8c56c366144378a33290049eafdd784071077f6fe37dae64c1c4cb" "checksum yaml-rust 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "65923dd1784f44da1d2c3dbbc5e822045628c590ba72123e1c73d3c230c4434d" -"checksum yew 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7532a83ec6c2173cd72888bb3ac0e3656d0dd152476f71631f4b465481855391" -"checksum yew-macro 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)" = "28cf0535e956932124a66721a0f91a1f65a1654ab509c43c3b5d71eb10f20089" +"checksum yew 0.16.2 (registry+https://github.com/rust-lang/crates.io-index)" = "fc1e1b60b090bf29758c6c42da2d2d6d54aa97dc73e3ccd1cd99d664b4c754cf" +"checksum yew-macro 0.16.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f1d2fe46d7922ecd99af4e5b4eddcab58c70ec741e31de6e1b910d5873a3095f" diff --git a/crate/yew_styles/Cargo.toml b/crate/yew_styles/Cargo.toml index 488c432..9d856a9 100644 --- a/crate/yew_styles/Cargo.toml +++ b/crate/yew_styles/Cargo.toml @@ -1,8 +1,8 @@ [package] name = "yew_styles" -version = "0.3.0" +version = "0.3.1" description = "Framework styles for yew" -documentation = "https://docs.rs/crate/yew_styles/0.3.0" +documentation = "https://docs.rs/crate/yew_styles/0.3.1" authors = ["Francisco Jesus Navarro Cortes "] edition = "2018" license = "MIT" @@ -15,8 +15,8 @@ readme = "README.md" crate-type = ["cdylib", "rlib"] [dependencies] -wasm-bindgen = "0.2.60" -yew = { version="0.15", features = ["toml", "yaml", "msgpack", "cbor", "web_sys"] } +wasm-bindgen = "0.2" +yew = { version="0.16", features = ["toml", "yaml", "msgpack", "cbor", "web_sys"] } web-sys = {version = "0.3.36", features = ["HtmlDocument", "HtmlCollection", "CssStyleDeclaration", "HtmlElement", "Node"]} rand = {version="0.7", features = ["getrandom"]} getrandom = {version = "0.1", features= ["wasm-bindgen"]} diff --git a/crate/yew_styles/README.md b/crate/yew_styles/README.md index f52007b..38f636c 100644 --- a/crate/yew_styles/README.md +++ b/crate/yew_styles/README.md @@ -14,7 +14,7 @@ however, it is not necessary to worry about the sass module only it needs to be ### How install it 1. Install the sass module: `npm install yew-styles` -2. Add the yew_style crate in Cargo.toml file: `yew_styles = "0.3.0"` +2. Add the yew_style crate in Cargo.toml file: `yew_styles = "0.3.1"` 3. Import the main.css file in you main javascript/typescript file project: ```typescript import 'node_modules/yew-styles/main.css'; diff --git a/crate/yew_styles/src/components/button.rs b/crate/yew_styles/src/components/button.rs index 6e75030..c395b7d 100644 --- a/crate/yew_styles/src/components/button.rs +++ b/crate/yew_styles/src/components/button.rs @@ -2,6 +2,7 @@ use crate::styles::{get_pallete, get_style, Palette, Style}; use wasm_bindgen_test::*; use web_sys::window; use yew::prelude::*; +use yew::{utils, App}; /// The standard sizes for button #[derive(Clone)] @@ -206,14 +207,8 @@ fn should_trigger_action_when_button_clicked() { children: Children::new(vec![html! {}]), }; - let link = ComponentLink::new(); - - let mut button = Button::create(props.clone(), link); - props.onsignal.emit(()); - button.change(props); - let updated_content = window() .unwrap() .document() @@ -228,49 +223,28 @@ fn should_trigger_action_when_button_clicked() { #[wasm_bindgen_test] fn should_create_button_component() { - let on_add_child = Callback::from(|_| { - let body = window().unwrap().document().unwrap().body().unwrap(); - - let child_element = window() - .unwrap() - .document() - .unwrap() - .create_element("div") - .unwrap(); - - child_element.set_text_content(Some("child")); - child_element.set_id("child"); - body.append_child(&child_element).unwrap(); - }); - let props = Props { class_name: String::from("test-button"), size: Size::Medium, button_style: Style::Regular, - onsignal: on_add_child, + onsignal: Callback::noop(), button_type: Palette::Standard, - children: Children::new(vec![html! {
{"parent"}
}]), + children: Children::new(vec![html! {
{"result"}
}]), }; - let link = ComponentLink::new(); - - let mut button = Button::create(props.clone(), link.clone()); - - props.onsignal.emit(()); - - button.change(props); + let button: App - }; + let child = button_element.first_element_child().unwrap(); - assert_eq!(button_vnode, vnode_expected); + assert_eq!(button_element.tag_name(), "BUTTON"); + assert_eq!(child.id(), "result"); } diff --git a/crate/yew_styles/src/components/layouts/container.rs b/crate/yew_styles/src/components/layouts/container.rs index 5a17d68..41103e2 100644 --- a/crate/yew_styles/src/components/layouts/container.rs +++ b/crate/yew_styles/src/components/layouts/container.rs @@ -1,6 +1,7 @@ use crate::utils::{create_style, get_random_string}; use wasm_bindgen_test::*; use yew::prelude::*; +use yew::{utils, App}; /// # Container component /// @@ -319,19 +320,16 @@ fn should_create_a_container() { }]), }; - let link = ComponentLink::new(); + let container: App = App::new(); + container.mount_with_props( + utils::document().get_element_by_id("output").unwrap(), + props_container, + ); - let container = Container::create(props_container, link); + let container_element = utils::document().get_element_by_id("container").unwrap(); - let container_vnode = container.render(); - - let vnode_expected = html! { -
- <> -
{"Container"}
- -
- }; - - assert_eq!(container_vnode, vnode_expected); + assert_eq!( + container_element.text_content().unwrap(), + "Container".to_string() + ); } diff --git a/crate/yew_styles/src/components/layouts/item.rs b/crate/yew_styles/src/components/layouts/item.rs index dd5536f..d2df9bc 100644 --- a/crate/yew_styles/src/components/layouts/item.rs +++ b/crate/yew_styles/src/components/layouts/item.rs @@ -2,6 +2,7 @@ use crate::utils::{create_style, get_random_string}; use wasm_bindgen_test::*; use web_sys::window; use yew::prelude::*; +use yew::{utils, App}; /// Percent of the layout that will take the item. #[derive(Clone)] @@ -224,23 +225,16 @@ fn should_create_item() { }]), }; - let link = ComponentLink::new(); + let item: App = App::new(); - let item = Item::create(props_item, link); + item.mount_with_props( + utils::document().get_element_by_id("output").unwrap(), + props_item, + ); - let item_vnode = item.render(); + let item_element = utils::document().get_element_by_id("item").unwrap(); - let vnode_expected = html! { -
- <> -
{"Item"}
- -
- }; - - assert_eq!(item_vnode, vnode_expected); + assert_eq!(item_element.text_content().unwrap(), "Item".to_string()); } #[wasm_bindgen_test] diff --git a/crate/yew_styles/src/components/navbar/navbar_item.rs b/crate/yew_styles/src/components/navbar/navbar_item.rs index f17d077..5caa8a1 100644 --- a/crate/yew_styles/src/components/navbar/navbar_item.rs +++ b/crate/yew_styles/src/components/navbar/navbar_item.rs @@ -1,6 +1,7 @@ use wasm_bindgen_test::*; use web_sys::window; use yew::prelude::*; +use yew::{utils, App}; pub enum Msg { Clicked, @@ -157,23 +158,16 @@ fn should_create_navbar_item() { }]), }; - let link = ComponentLink::new(); - let navbar_item = NavbarItem::create(navbar_item_props, link); - let navbar_item_vnode = navbar_item.render(); - - let vnode_expected = html! { - - }; + let navbar_item: App = App::new(); + + navbar_item.mount_with_props( + utils::document().get_element_by_id("output").unwrap(), + navbar_item_props, + ); + + let item_element = utils::document().get_element_by_id("item").unwrap(); - assert_eq!(navbar_item_vnode, vnode_expected); + assert_eq!(item_element.text_content().unwrap(), "Item".to_string()); } #[wasm_bindgen_test] diff --git a/crate/yew_styles/src/lib.rs b/crate/yew_styles/src/lib.rs index cc90152..8a6d8d5 100644 --- a/crate/yew_styles/src/lib.rs +++ b/crate/yew_styles/src/lib.rs @@ -18,7 +18,7 @@ //! ### How install it //! //! 1. Install the sass module: `npm install yew-styles` -//! 2. Add the yew_style crate in Cargo.toml file: `yew_styles = "0.3.0"` +//! 2. Add the yew_style crate in Cargo.toml file: `yew_styles = "0.3.1"` //! 3. Import the main.css file in you main javascript/typescript file project: //! ```typescript //! import 'node_modules/yew-styles/main.css'; diff --git a/index.html b/index.html index 5eb4999..9f0df2d 100644 --- a/index.html +++ b/index.html @@ -6,6 +6,15 @@ Yew Styles Page + diff --git a/package-lock.json b/package-lock.json index 55dc963..a0d47c0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { - "name": "yewstyle-page", - "version": "0.2.0", + "name": "create-yew-parcel", + "version": "0.15.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -922,6 +922,82 @@ "requires": { "@parcel/utils": "^1.11.0", "chokidar": "^2.1.5" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + } } }, "@parcel/workers": { @@ -1019,24 +1095,13 @@ } }, "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", "dev": true, "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" } }, "argparse": { @@ -1308,9 +1373,9 @@ } }, "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", + "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", "dev": true }, "bindings": { @@ -1602,23 +1667,63 @@ } }, "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.0.tgz", + "integrity": "sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.4.0" + }, + "dependencies": { + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } } }, "cipher-base": { @@ -1673,7 +1778,6 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.6.tgz", "integrity": "sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg==", - "dev": true, "optional": true, "requires": { "good-listener": "^1.2.2", @@ -2393,7 +2497,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==", - "dev": true, "optional": true }, "depd": { @@ -2503,9 +2606,9 @@ } }, "dotenv": { - "version": "5.0.1", - "resolved": "http://registry.npmjs.org/dotenv/-/dotenv-5.0.1.tgz", - "integrity": "sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", + "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==", "dev": true }, "dotenv-expand": { @@ -2895,6 +2998,25 @@ "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", "dev": true }, + "file-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/file-match/-/file-match-1.0.2.tgz", + "integrity": "sha1-ycrSZdLIrfOoFHWw30dYWQafrvc=", + "dev": true, + "requires": { + "utils-extend": "^1.0.6" + } + }, + "file-system": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/file-system/-/file-system-2.2.2.tgz", + "integrity": "sha1-fWWDPjojR9zZVqgTxncVPtPt2Yc=", + "dev": true, + "requires": { + "file-match": "^1.0.1", + "utils-extend": "^1.0.4" + } + }, "filesize": { "version": "3.6.1", "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", @@ -2975,552 +3097,11 @@ "dev": true }, "fsevents": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", - "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", "dev": true, - "optional": true, - "requires": { - "nan": "^2.12.1", - "node-pre-gyp": "^0.12.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "debug": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true, - "optional": true - }, - "minipass": { - "version": "2.3.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.3.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "^4.1.0", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.12.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.6.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "dev": true, - "optional": true - }, - "semver": { - "version": "5.7.0", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "yallist": { - "version": "3.0.3", - "bundled": true, - "dev": true, - "optional": true - } - } + "optional": true }, "function-bind": { "version": "1.1.1", @@ -3600,16 +3181,15 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", - "dev": true, "optional": true, "requires": { "delegate": "^3.1.2" } }, "graceful-fs": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz", - "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true }, "grapheme-breaker": { @@ -3959,12 +3539,12 @@ "dev": true }, "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "requires": { - "binary-extensions": "^1.0.0" + "binary-extensions": "^2.0.0" } }, "is-buffer": { @@ -4598,13 +4178,6 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", - "dev": true, - "optional": true - }, "nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", @@ -4979,16 +4552,25 @@ "terser": "^3.7.3", "v8-compile-cache": "^2.0.0", "ws": "^5.1.1" + }, + "dependencies": { + "dotenv": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-5.0.1.tgz", + "integrity": "sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow==", + "dev": true + } } }, - "parcel-plugin-wasm.rs": { - "version": "1.2.15", - "resolved": "https://registry.npmjs.org/parcel-plugin-wasm.rs/-/parcel-plugin-wasm.rs-1.2.15.tgz", - "integrity": "sha512-fbkOlsy2gkLAUjJ6mlRzJoULrCNoJXrDFnwuGzPw6g0edr4jm+cRvkj0UB9neDOGar/FA0fOx7a6K4iUg6qpRA==", + "parcel-plugin-static-files-copy": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/parcel-plugin-static-files-copy/-/parcel-plugin-static-files-copy-2.3.1.tgz", + "integrity": "sha512-yqB1bhSK+hbfxSjc1y/gBc+Fm6bedNrofx75wgnI0sP+6oEBqjyN51tlJVLu6pZhBLi11ZFwAM2XubCUh2G0+A==", "dev": true, "requires": { - "@iarna/toml": "^2.2.0", - "command-exists": "^1.2.7" + "file-system": "2.2.2", + "minimatch": "3.0.4", + "path": "0.12.7" } }, "parse-asn1": { @@ -5033,6 +4615,33 @@ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", "dev": true }, + "path": { + "version": "0.12.7", + "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", + "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=", + "dev": true, + "requires": { + "process": "^0.11.1", + "util": "^0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + } + } + }, "path-browserify": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", @@ -5088,6 +4697,12 @@ "integrity": "sha1-GN4vl+S/epVRrXURlCtUlverpmA=", "dev": true }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true + }, "pn": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", @@ -5602,7 +5217,6 @@ "version": "1.20.0", "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.20.0.tgz", "integrity": "sha512-AEDjSrVNkynnw6A+B1DsFkd6AVdTnp+/WoUixFRULlCLZVRZlVQMVWio/16jv7G1FscUxQxOQhWwApgbnxr6kQ==", - "dev": true, "requires": { "clipboard": "^2.0.0" } @@ -5727,14 +5341,12 @@ } }, "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", + "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" + "picomatch": "^2.2.1" } }, "regenerate": { @@ -6015,7 +5627,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=", - "dev": true, "optional": true }, "semver": { @@ -6603,7 +6214,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==", - "dev": true, "optional": true }, "tiny-inflate": { @@ -6961,6 +6571,12 @@ "object.getownpropertydescriptors": "^2.0.3" } }, + "utils-extend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/utils-extend/-/utils-extend-1.0.8.tgz", + "integrity": "sha1-zP17ZFQPjpDuIe7Fd2nQZRyril8=", + "dev": true + }, "uuid": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", @@ -7110,6 +6726,12 @@ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "dev": true + }, + "yew-styles": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/yew-styles/-/yew-styles-0.2.0.tgz", + "integrity": "sha512-xnQQlT07upGF+H3ypSpWegfPaQTHdSBQ3Zpm8xVCR3vvHIb/QMHHhPCArVTEEaZcTPWiPMfZt7j+/NG/Vo1ehQ==", + "dev": true } } } diff --git a/package.json b/package.json index 42fd773..6077048 100644 --- a/package.json +++ b/package.json @@ -1,26 +1,34 @@ { "author": "Francisco Jesus Navarro Cortes", "repository": { - "url": "https://github.com/spielrs/yew-styles-page.git" + "url": "https://github.com/spielrs/yew-parcel-template" }, - "name": "yewstyle-page", - "version": "0.2.0", - "license": "Apache-2.0/MIT", + "name": "create-yew-parcel", + "version": "0.16.0", + "license": "MIT", "scripts": { - "start": "parcel index.html", - "build": "parcel build index.html" + "start": "node wasm-builder.js", + "build": "node wasm-builder.js production", + "debug": "NODE_ENV=dev node --nolazy --inspect-brk=9229 wasm-builder.js" }, "bin": { "create-yew-parcel": ".bin/create-yew-parcel.js" }, "devDependencies": { + "chokidar": "^3.4.0", + "dotenv": "^8.2.0", "parcel-bundler": "^1.12.4", - "parcel-plugin-wasm.rs": "^1.2.15", - "prismjs": "^1.20.0", + "parcel-plugin-static-files-copy": "^2.3.1", "sass": "^1.26.5", "typescript": "^3.8.3", - "minimist": "1.2.3", - "kind-of": "6.0.3" + "yew-styles": "0.2.0", + "prismjs": "^1.20.0" }, - "dependencies": {} + "dependencies": { + "prismjs": "^1.20.0" + }, + "staticFiles": { + "staticPath": ["./crate/pkg", "./crate/assets"], + "watcherGlob": false + } } diff --git a/wasm-builder.js b/wasm-builder.js new file mode 100644 index 0000000..55daa40 --- /dev/null +++ b/wasm-builder.js @@ -0,0 +1,41 @@ +const { execSync } = require('child_process'); +const Bundler = require('parcel-bundler'); +const Path = require('path'); +const chokidar = require('chokidar'); +const dotenv = require('dotenv'); +dotenv.config(); + +const entryFiles = Path.join(__dirname, 'index.html'); + +const buildType = process.argv[2]; + +const options = { + outDir: './dist', + outFile: 'index.html', + publicUrl: '/', + watch: true, + minify: buildType === 'production', + }; + +(async () => { + const bundler = new Bundler(entryFiles, options); + + chokidar.watch(['./crate/src', './crate/Cargo.toml']).on('change', async (event, path) => { + console.log(`there are new changes in '${path}'. Start to rebuild rustwasm sources`); + + bundler.bundle(); + + bundler.hmr.broadcast({ + type: 'reload' + }); + }); + + bundler.on('buildStart', () => { + const prevtBuildFile = Path.join(__dirname, './wasm_pack_cmd'); + console.log(`running: ${prevtBuildFile}`); + execSync(`${prevtBuildFile} ${buildType === 'production' ? '' : '--dev'}`, {stdio: 'inherit'}); + }); + + await bundler.serve(process.env.SERVER_ADDRESS || 1234); +})(); + diff --git a/wasm_pack_cmd b/wasm_pack_cmd new file mode 100755 index 0000000..aea00ee --- /dev/null +++ b/wasm_pack_cmd @@ -0,0 +1 @@ +exec wasm-pack build $1 --target web crate \ No newline at end of file From 7bdba6c96662e9a3b12ce20c7a75d5f473f118e8 Mon Sep 17 00:00:00 2001 From: spieljs Date: Sat, 16 May 2020 11:01:06 +0200 Subject: [PATCH 3/3] remove main.js file --- crate/Cargo.toml | 2 +- crate/main.js | 6 ------ 2 files changed, 1 insertion(+), 7 deletions(-) delete mode 100644 crate/main.js diff --git a/crate/Cargo.toml b/crate/Cargo.toml index 267a1bb..bf81dbb 100644 --- a/crate/Cargo.toml +++ b/crate/Cargo.toml @@ -1,5 +1,5 @@ [package] -authors = ["The RustWasm Developers"] +authors = ["Francisco Jesus Navarro Cortes"] categories = ["wasm"] description = "My awesome Yew with Yew-Router and Parcel application!" license = "MIT" diff --git a/crate/main.js b/crate/main.js deleted file mode 100644 index 0213be8..0000000 --- a/crate/main.js +++ /dev/null @@ -1,6 +0,0 @@ -import init, { run_app } from './pkg/yewstyle_page.js'; -async function main() { - await init('/pkg/yewstyle_page_bg.wasm'); - run_app(); -} -main() \ No newline at end of file