diff --git a/.env.sample b/.env.sample deleted file mode 100644 index a05b1b5c..00000000 --- a/.env.sample +++ /dev/null @@ -1 +0,0 @@ -VITE_GRAPHQL_URL=http://localhost:7878/graphql/ diff --git a/.eslintrc.cjs b/.eslintrc.cjs deleted file mode 100644 index e12b2066..00000000 --- a/.eslintrc.cjs +++ /dev/null @@ -1,24 +0,0 @@ -module.exports = { - root: true, - parser: '@typescript-eslint/parser', - extends: [ - 'eslint:recommended', - 'plugin:@typescript-eslint/recommended', - 'prettier', - ], - plugins: ['svelte3', '@typescript-eslint'], - ignorePatterns: ['*.cjs'], - overrides: [{ files: ['*.svelte'], processor: 'svelte3/svelte3' }], - settings: { - 'svelte3/typescript': () => require('typescript'), - }, - parserOptions: { - sourceType: 'module', - ecmaVersion: 2020, - }, - env: { - browser: true, - es2017: true, - node: true, - }, -}; diff --git a/.github/workflows/deploy-staging.yml b/.github/workflows/deploy-staging.yml index c9d66f44..07d5d4bd 100644 --- a/.github/workflows/deploy-staging.yml +++ b/.github/workflows/deploy-staging.yml @@ -1,4 +1,5 @@ name: Deploy Staging + on: push: branches: @@ -6,35 +7,37 @@ on: jobs: publish: + name: Publish runs-on: ubuntu-latest permissions: contents: read deployments: write - name: Publish steps: - - name: Checkout - uses: actions/checkout@v3.0.2 - with: - ref: 'main' + - name: Checkout Source Code + uses: actions/checkout@v4 - - name: Setup Bun - uses: oven-sh/setup-bun@v1 - with: - bun-version: latest + - name: Setup Rust + uses: dtolnay/rust-toolchain@stable + + - name: Setup Rust Cache + uses: Swatinem/rust-cache@v2 + + - name: Setup Cargo Binstall + uses: cargo-bins/cargo-binstall@main - - name: Install Dependencies - run: bun i + - name: Install Rust Binaries + run: | + cargo binstall -y --force trunk - - name: Build Check - env: - NODE_ENV: production - run: bun run build + - name: Build + working-directory: ./crates/www + run: trunk build --release - - name: Publish to Cloudflare Pages - uses: cloudflare/pages-action@1.0.0 + - name: Deploy Client + uses: cloudflare/wrangler-action@v3 with: apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} accountId: ${{ secrets.CF_ACCOUNT_ID }} - projectName: 'estebanborai-staging-dotcom' - directory: ./.svelte-kit/cloudflare + command: pages deploy ./dist --project-name=${{ secrets.CLOUDFLARE_PAGES_STAGING_PROJECT_NAME }} + workingDirectory: ./crates/www gitHubToken: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index 8a4433ae..50d645d7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,8 @@ -.DS_Store -node_modules -/build -/.svelte-kit -/package -.env -.env.* -!.env.sample -.pnpm-debug.log +# Directories +build dist +node_modules target + +# Files +.DS_Store diff --git a/.npmrc b/.npmrc deleted file mode 100644 index b6f27f13..00000000 --- a/.npmrc +++ /dev/null @@ -1 +0,0 @@ -engine-strict=true diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index d3bd52bf..00000000 --- a/.prettierrc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "useTabs": false, - "singleQuote": true, - "trailingComma": "all", - "printWidth": 80 -} diff --git a/.typesafe-i18n.json b/.typesafe-i18n.json deleted file mode 100644 index 0567c49d..00000000 --- a/.typesafe-i18n.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "$schema": "https://unpkg.com/typesafe-i18n@5.24.3/schema/typesafe-i18n.json", - "adapter": "svelte" -} diff --git a/Cargo.lock b/Cargo.lock index de8c5b9d..7d1018d5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,34 +1,21 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "addr2line" -version = "0.21.0" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" dependencies = [ "gimli", ] [[package]] -name = "adler" -version = "1.0.2" +name = "adler2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - -[[package]] -name = "ahash" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" -dependencies = [ - "cfg-if", - "getrandom 0.2.15", - "once_cell", - "version_check", - "zerocopy", -] +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" [[package]] name = "aho-corasick" @@ -40,138 +27,116 @@ dependencies = [ ] [[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - -[[package]] -name = "android_system_properties" -version = "0.1.5" +name = "anyhow" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] +checksum = "c1fd03a028ef38ba2276dce7e33fcd6369c158a1bca17946c4b1b701891c1ff7" [[package]] -name = "anstream" -version = "0.5.0" +name = "async-recursion" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f58811cfac344940f1a400b6e6231ce35171f614f26439e80f8c1465c5cc0c" +checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "utf8parse", + "proc-macro2", + "quote", + "syn", ] [[package]] -name = "anstyle" -version = "1.0.2" +name = "atomic-waker" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15c4c2c83f81532e5845a733998b6971faca23490340a418e9b72a3ec9de12ea" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] -name = "anstyle-parse" -version = "0.2.1" +name = "attribute-derive" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333" +checksum = "1f1ee502851995027b06f99f5ffbeffa1406b38d0b318a1ebfa469332c6cbafd" dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" -dependencies = [ - "windows-sys 0.48.0", + "attribute-derive-macro", + "derive-where", + "manyhow", + "proc-macro2", + "quote", + "syn", ] [[package]] -name = "anstyle-wincon" -version = "2.1.0" +name = "attribute-derive-macro" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58f54d10c6dfa51283a066ceab3ec1ab78d13fae00aa49243a45e4571fb79dfd" +checksum = "3601467f634cfe36c4780ca9c75dea9a5b34529c1f2810676a337e7e0997f954" dependencies = [ - "anstyle", - "windows-sys 0.48.0", + "collection_literals", + "interpolator", + "manyhow", + "proc-macro-utils 0.8.0", + "proc-macro2", + "quote", + "quote-use", + "syn", ] -[[package]] -name = "anyhow" -version = "1.0.75" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" - [[package]] name = "autocfg" -version = "1.1.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "backtrace" -version = "0.3.69" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" dependencies = [ "addr2line", - "cc", "cfg-if", "libc", "miniz_oxide", "object", "rustc-demangle", + "windows-targets", ] [[package]] name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "bitflags" -version = "1.3.2" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "bitflags" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" [[package]] name = "bumpalo" -version = "3.14.0" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] -name = "byteorder" -version = "1.5.0" +name = "bytes" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" +checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" [[package]] -name = "bytes" -version = "1.6.0" +name = "camino" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" +checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" [[package]] name = "cc" -version = "1.0.83" +version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +checksum = "27f657647bcff5394bf56c7317665bbf790a137a50eaaa5c6bfbb9e27a518f2d" dependencies = [ - "libc", + "shlex", ] [[package]] @@ -181,94 +146,85 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] -name = "chrono" -version = "0.4.31" +name = "ciborium" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" +checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" dependencies = [ - "android-tzdata", - "iana-time-zone", - "js-sys", - "num-traits", + "ciborium-io", + "ciborium-ll", "serde", - "wasm-bindgen", - "windows-targets 0.48.5", ] [[package]] -name = "clap" -version = "4.4.2" +name = "ciborium-io" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a13b88d2c62ff462f88e4a121f17a82c1af05693a2f192b5c38d14de73c19f6" -dependencies = [ - "clap_builder", - "clap_derive", -] +checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" [[package]] -name = "clap_builder" -version = "4.4.2" +name = "ciborium-ll" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bb9faaa7c2ef94b2743a21f5a29e6f0010dff4caa69ac8e9d6cf8b6fa74da08" +checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" dependencies = [ - "anstream", - "anstyle", - "clap_lex", - "strsim", + "ciborium-io", + "half", ] [[package]] -name = "clap_derive" -version = "4.4.2" +name = "collection_literals" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0862016ff20d69b84ef8247369fabf5c008a7417002411897d40ee1f4532b873" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn 2.0.31", -] +checksum = "186dce98367766de751c42c4f03970fc60fc012296e706ccbb9d5df9b6c1e271" [[package]] -name = "clap_lex" -version = "0.5.1" +name = "config" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961" +checksum = "68578f196d2a33ff61b27fae256c3164f65e36382648e30666dde05b8cc9dfdf" +dependencies = [ + "convert_case", + "nom", + "pathdiff", + "serde", + "toml", +] [[package]] -name = "cli" -version = "0.1.0" +name = "const_format" +version = "0.2.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "126f97965c8ad46d6d9163268ff28432e8f6a1196a55578867832e3049df63dd" dependencies = [ - "anyhow", - "chrono", - "clap", - "dotenv", - "link-preview", - "notes", - "serde", - "serde_json", - "tokio", - "tracing", - "tracing-subscriber", + "const_format_proc_macros", ] [[package]] -name = "colorchoice" -version = "1.0.0" +name = "const_format_proc_macros" +version = "0.2.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" +checksum = "1d57c2eccfb16dbac1f4e61e206105db5820c9d26c3c472bc17c774259ef7744" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] [[package]] name = "convert_case" -version = "0.4.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" +checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" +dependencies = [ + "unicode-segmentation", +] [[package]] name = "core-foundation" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" dependencies = [ "core-foundation-sys", "libc", @@ -276,93 +232,68 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.4" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] -name = "cssparser" -version = "0.29.6" +name = "crunchy" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93d03419cb5950ccfd3daf3ff1c7a36ace64609a1a8746d493df1ca0afde0fa" -dependencies = [ - "cssparser-macros", - "dtoa-short", - "itoa", - "matches", - "phf 0.10.1", - "proc-macro2", - "quote", - "smallvec", - "syn 1.0.109", -] +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" [[package]] -name = "cssparser-macros" -version = "0.6.1" +name = "dashmap" +version = "5.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" dependencies = [ - "quote", - "syn 2.0.31", + "cfg-if", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core", ] [[package]] -name = "derive_more" -version = "0.99.18" +name = "derive-where" +version = "1.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" +checksum = "62d671cc41a825ebabc75757b62d3d168c577f9149b2d49ece1dad1f72119d25" dependencies = [ - "convert_case", "proc-macro2", "quote", - "rustc_version", - "syn 2.0.31", + "syn", ] [[package]] name = "displaydoc" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.31", + "syn", ] [[package]] -name = "dotenv" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" - -[[package]] -name = "dtoa" -version = "1.0.9" +name = "drain_filter_polyfill" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653" +checksum = "669a445ee724c5c69b1b06fe0b63e70a1c84bc9bb7d9696cd4f4e3ec45050408" [[package]] -name = "dtoa-short" -version = "0.3.5" +name = "either" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87" -dependencies = [ - "dtoa", -] - -[[package]] -name = "ego-tree" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a68a4904193147e0a8dec3314640e6db742afd5f6e634f428a6af230d9b3591" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] name = "encoding_rs" -version = "0.8.34" +version = "0.8.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" dependencies = [ "cfg-if", ] @@ -375,19 +306,37 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", +] + +[[package]] +name = "estebanborai-dotcom" +version = "0.0.0" +dependencies = [ + "anyhow", + "leptos", + "leptos_meta", + "leptos_router", + "markdown", + "reqwest", + "serde", + "serde_json", + "wasm-bindgen", + "wasm-bindgen-test", + "web-sys", + "yaml-front-matter", ] [[package]] name = "fastrand" -version = "2.1.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "fnv" @@ -420,81 +369,92 @@ dependencies = [ ] [[package]] -name = "futf" -version = "0.1.5" +name = "futures" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ - "mac", - "new_debug_unreachable", + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", ] [[package]] name = "futures-channel" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", + "futures-sink", ] [[package]] name = "futures-core" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] -name = "futures-sink" -version = "0.3.30" +name = "futures-executor" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] [[package]] -name = "futures-task" -version = "0.3.30" +name = "futures-io" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] -name = "futures-util" -version = "0.3.30" +name = "futures-macro" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ - "futures-core", - "futures-task", - "pin-project-lite", - "pin-utils", + "proc-macro2", + "quote", + "syn", ] [[package]] -name = "fxhash" -version = "0.2.1" +name = "futures-sink" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] -name = "getopts" -version = "0.2.21" +name = "futures-task" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5" -dependencies = [ - "unicode-width", -] +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] -name = "getrandom" -version = "0.1.16" +name = "futures-util" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ - "cfg-if", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", ] [[package]] @@ -504,35 +464,81 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", + "js-sys", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", + "wasm-bindgen", ] [[package]] name = "gimli" -version = "0.28.0" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + +[[package]] +name = "gloo-net" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06f627b1a58ca3d42b45d6104bf1e1a03799df472df00988b6ba21accc10580" +dependencies = [ + "futures-channel", + "futures-core", + "futures-sink", + "gloo-utils", + "http", + "js-sys", + "pin-project", + "serde", + "serde_json", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "gloo-utils" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" +checksum = "0b5555354113b18c547c1d3a98fbf7fb32a9ff4f6fa112ce823a21641a0ba3aa" +dependencies = [ + "js-sys", + "serde", + "serde_json", + "wasm-bindgen", + "web-sys", +] [[package]] name = "h2" -version = "0.3.26" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e" dependencies = [ + "atomic-waker", "bytes", "fnv", "futures-core", "futures-sink", - "futures-util", "http", - "indexmap 2.2.6", + "indexmap 2.7.0", "slab", "tokio", "tokio-util", "tracing", ] +[[package]] +name = "half" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" +dependencies = [ + "cfg-if", + "crunchy", +] + [[package]] name = "hashbrown" version = "0.12.3" @@ -546,36 +552,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" [[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - -[[package]] -name = "hermit-abi" -version = "0.3.2" +name = "hashbrown" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" [[package]] -name = "html5ever" -version = "0.26.0" +name = "html-escape" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7" +checksum = "6d1ad449764d627e22bfd7cd5e8868264fc9236e07c752972b4080cd351cb476" dependencies = [ - "log", - "mac", - "markup5ever", - "proc-macro2", - "quote", - "syn 1.0.109", + "utf8-width", ] [[package]] name = "http" -version = "0.2.12" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" dependencies = [ "bytes", "fnv", @@ -584,85 +579,103 @@ dependencies = [ [[package]] name = "http-body" -version = "0.4.6" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", "http", - "pin-project-lite", ] [[package]] -name = "httparse" -version = "1.9.3" +name = "http-body-util" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0e7a4dd27b9476dc40cb050d3632d3bba3a70ddbff012285f7f8559a1e7e545" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +dependencies = [ + "bytes", + "futures-util", + "http", + "http-body", + "pin-project-lite", +] [[package]] -name = "httpdate" -version = "1.0.3" +name = "httparse" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" +checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" [[package]] name = "hyper" -version = "0.14.29" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f361cde2f109281a220d4307746cdfd5ee3f410da58a70377762396775634b33" +checksum = "97818827ef4f364230e16705d4706e2897df2bb60617d6ca15d598025a3c481f" dependencies = [ "bytes", "futures-channel", - "futures-core", "futures-util", "h2", "http", "http-body", "httparse", - "httpdate", "itoa", "pin-project-lite", - "socket2", + "smallvec", "tokio", - "tower-service", - "tracing", "want", ] [[package]] -name = "hyper-tls" -version = "0.5.0" +name = "hyper-rustls" +version = "0.27.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" dependencies = [ - "bytes", + "futures-util", + "http", "hyper", - "native-tls", + "hyper-util", + "rustls", + "rustls-pki-types", "tokio", - "tokio-native-tls", + "tokio-rustls", + "tower-service", ] [[package]] -name = "iana-time-zone" -version = "0.1.57" +name = "hyper-tls" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "windows", + "bytes", + "http-body-util", + "hyper", + "hyper-util", + "native-tls", + "tokio", + "tokio-native-tls", + "tower-service", ] [[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" +name = "hyper-util" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" dependencies = [ - "cc", + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "hyper", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", ] [[package]] @@ -736,9 +749,9 @@ checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" [[package]] name = "icu_properties" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f8ac670d7422d7f76b32e17a5db556510825b29ec9154f235977c9caba61036" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" dependencies = [ "displaydoc", "icu_collections", @@ -780,21 +793,30 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.31", + "syn", ] [[package]] name = "idna" -version = "1.0.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4716a3a0933a1d01c2f72450e89596eb51dd34ef3c211ccd875acdf1f8fe47ed" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ - "icu_normalizer", - "icu_properties", + "idna_adapter", "smallvec", "utf8_iter", ] +[[package]] +name = "idna_adapter" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + [[package]] name = "indexmap" version = "1.9.3" @@ -807,58 +829,264 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.6" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" dependencies = [ "equivalent", - "hashbrown 0.14.5", + "hashbrown 0.15.2", ] +[[package]] +name = "interpolator" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71dd52191aae121e8611f1e8dc3e324dd0dd1dee1e6dd91d10ee07a3cfb4d9d8" + +[[package]] +name = "inventory" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f958d3d68f4167080a18141e10381e7634563984a537f2a49a30fd8e53ac5767" + [[package]] name = "ipnet" -version = "2.9.0" +version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" + +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] [[package]] name = "itoa" -version = "1.0.9" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "js-sys" -version = "0.3.64" +version = "0.3.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" +checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" dependencies = [ + "once_cell", "wasm-bindgen", ] [[package]] name = "lazy_static" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] -name = "libc" -version = "0.2.155" +name = "leptos" +version = "0.6.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" +checksum = "0cbb3237c274dadf00dcc27db96c52601b40375117178fb24a991cda073624f0" +dependencies = [ + "cfg-if", + "leptos_config", + "leptos_dom", + "leptos_macro", + "leptos_reactive", + "leptos_server", + "server_fn", + "tracing", + "typed-builder", + "typed-builder-macro", + "wasm-bindgen", + "web-sys", +] [[package]] -name = "link-preview" -version = "0.1.1" +name = "leptos_config" +version = "0.6.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8774170c94af3eb551c2ffabde8786995dd07389a08aabcc4b6376b39ff5e9ec" +checksum = "62ed778611380ddea47568ac6ad6ec5158d39b5bd59e6c4dcd24efc15dc3dc0d" dependencies = [ + "config", "regex", - "reqwest", - "scraper", + "serde", "thiserror", - "url", + "typed-builder", +] + +[[package]] +name = "leptos_dom" +version = "0.6.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8401c46c86c1f4c16dcb7881ed319fcdca9cda9b9e78a6088955cb423afcf119" +dependencies = [ + "async-recursion", + "cfg-if", + "drain_filter_polyfill", + "futures", + "getrandom", + "html-escape", + "indexmap 2.7.0", + "itertools", + "js-sys", + "leptos_reactive", + "once_cell", + "pad-adapter", + "paste", + "rustc-hash", + "serde", + "serde_json", + "server_fn", + "smallvec", + "tracing", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "leptos_hot_reload" +version = "0.6.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6cb53d4794240b684a2f4be224b84bee9e62d2abc498cf2bcd643cd565e01d96" +dependencies = [ + "anyhow", + "camino", + "indexmap 2.7.0", + "parking_lot", + "proc-macro2", + "quote", + "rstml", + "serde", + "syn", + "walkdir", +] + +[[package]] +name = "leptos_macro" +version = "0.6.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b13bc3db70715cd8218c4535a5af3ae3c0e5fea6f018531fc339377b36bc0e0" +dependencies = [ + "attribute-derive", + "cfg-if", + "convert_case", + "html-escape", + "itertools", + "leptos_hot_reload", + "prettyplease", + "proc-macro-error2", + "proc-macro2", + "quote", + "rstml", + "server_fn_macro", + "syn", + "tracing", + "uuid", +] + +[[package]] +name = "leptos_meta" +version = "0.6.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25acc2f63cf91932013e400a95bf6e35e5d3dbb44a7b7e25a8e3057d12005b3b" +dependencies = [ + "cfg-if", + "indexmap 2.7.0", + "leptos", + "tracing", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "leptos_reactive" +version = "0.6.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4161acbf80f59219d8d14182371f57302bc7ff81ee41aba8ba1ff7295727f23" +dependencies = [ + "base64", + "cfg-if", + "futures", + "indexmap 2.7.0", + "js-sys", + "oco_ref", + "paste", + "pin-project", + "rustc-hash", + "self_cell", + "serde", + "serde-wasm-bindgen", + "serde_json", + "slotmap", + "thiserror", + "tracing", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "leptos_router" +version = "0.6.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d71dea7d42c0d29c40842750232d3425ed1cf10e313a1f898076d20871dad32" +dependencies = [ + "cfg-if", + "gloo-net", + "itertools", + "js-sys", + "lazy_static", + "leptos", + "linear-map", + "once_cell", + "percent-encoding", + "send_wrapper", + "serde", + "serde_json", + "serde_qs 0.13.0", + "thiserror", + "tracing", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "leptos_server" +version = "0.6.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a97eb90a13f71500b831c7119ddd3bdd0d7ae0a6b0487cade4fddeed3b8c03f" +dependencies = [ + "inventory", + "lazy_static", + "leptos_macro", + "leptos_reactive", + "serde", + "server_fn", + "thiserror", + "tracing", +] + +[[package]] +name = "libc" +version = "0.2.168" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aaeb2981e0606ca11d79718f8bb01164f1d6ed75080182d3abf017e6d244b6d" + +[[package]] +name = "linear-map" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfae20f6b19ad527b550c223fddc3077a547fc70cda94b9b566575423fd303ee" +dependencies = [ + "serde", + "serde_test", ] [[package]] @@ -875,9 +1103,9 @@ checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" [[package]] name = "litemap" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" [[package]] name = "lock_api" @@ -891,41 +1119,47 @@ dependencies = [ [[package]] name = "log" -version = "0.4.20" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" [[package]] -name = "mac" -version = "0.1.1" +name = "manyhow" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" +checksum = "f91ea592d76c0b6471965708ccff7e6a5d277f676b90ab31f4d3f3fc77fade64" +dependencies = [ + "manyhow-macros", + "proc-macro2", + "quote", + "syn", +] [[package]] -name = "markup5ever" -version = "0.11.0" +name = "manyhow-macros" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016" +checksum = "c64621e2c08f2576e4194ea8be11daf24ac01249a4f53cd8befcbb7077120ead" dependencies = [ - "log", - "phf 0.10.1", - "phf_codegen 0.10.0", - "string_cache", - "string_cache_codegen", - "tendril", + "proc-macro-utils 0.8.0", + "proc-macro2", + "quote", ] [[package]] -name = "matches" -version = "0.1.10" +name = "markdown" +version = "1.0.0-alpha.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" +checksum = "a6491e6c702bf7e3b24e769d800746d5f2c06a6c6a2db7992612e0f429029e81" +dependencies = [ + "unicode-id", +] [[package]] name = "memchr" -version = "2.6.3" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "mime" @@ -933,24 +1167,40 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" +[[package]] +name = "minicov" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f27fe9f1cc3c22e1687f9446c2083c4c5fc7f0bcf1c7a86bdbded14985895b4b" +dependencies = [ + "cc", + "walkdir", +] + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + [[package]] name = "miniz_oxide" -version = "0.7.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" dependencies = [ - "adler", + "adler2", ] [[package]] name = "mio" -version = "0.8.11" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.48.0", + "wasi", + "windows-sys 0.52.0", ] [[package]] @@ -971,79 +1221,47 @@ dependencies = [ ] [[package]] -name = "new_debug_unreachable" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" - -[[package]] -name = "nodrop" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" - -[[package]] -name = "notes" -version = "0.1.0" -dependencies = [ - "chrono", - "serde", - "serde_json", - "thiserror", - "yaml-front-matter", -] - -[[package]] -name = "nu-ansi-term" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" -dependencies = [ - "overload", - "winapi", -] - -[[package]] -name = "num-traits" -version = "0.2.16" +name = "nom" +version = "7.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" dependencies = [ - "autocfg", + "memchr", + "minimal-lexical", ] [[package]] -name = "num_cpus" -version = "1.16.0" +name = "object" +version = "0.36.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" dependencies = [ - "hermit-abi", - "libc", + "memchr", ] [[package]] -name = "object" -version = "0.32.1" +name = "oco_ref" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +checksum = "c51ebcefb2f0b9a5e0bea115532c8ae4215d1b01eff176d0f4ba4192895c2708" dependencies = [ - "memchr", + "serde", + "thiserror", ] [[package]] name = "once_cell" -version = "1.18.0" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "openssl" -version = "0.10.64" +version = "0.10.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" +checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" dependencies = [ - "bitflags 2.5.0", + "bitflags", "cfg-if", "foreign-types", "libc", @@ -1060,7 +1278,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.31", + "syn", ] [[package]] @@ -1071,9 +1289,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.102" +version = "0.9.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" +checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" dependencies = [ "cc", "libc", @@ -1082,10 +1300,10 @@ dependencies = [ ] [[package]] -name = "overload" +name = "pad-adapter" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" +checksum = "56d80efc4b6721e8be2a10a5df21a30fa0b470f1539e53d8b4e6e75faf938b63" [[package]] name = "parking_lot" @@ -1107,112 +1325,52 @@ dependencies = [ "libc", "redox_syscall", "smallvec", - "windows-targets 0.52.5", -] - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "phf" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" -dependencies = [ - "phf_shared 0.8.0", -] - -[[package]] -name = "phf" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" -dependencies = [ - "phf_macros", - "phf_shared 0.10.0", - "proc-macro-hack", + "windows-targets", ] [[package]] -name = "phf_codegen" -version = "0.8.0" +name = "paste" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" -dependencies = [ - "phf_generator 0.8.0", - "phf_shared 0.8.0", -] +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] -name = "phf_codegen" -version = "0.10.0" +name = "pathdiff" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd" -dependencies = [ - "phf_generator 0.10.0", - "phf_shared 0.10.0", -] +checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" [[package]] -name = "phf_generator" -version = "0.8.0" +name = "percent-encoding" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" -dependencies = [ - "phf_shared 0.8.0", - "rand 0.7.3", -] +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] -name = "phf_generator" -version = "0.10.0" +name = "pin-project" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" +checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95" dependencies = [ - "phf_shared 0.10.0", - "rand 0.8.5", + "pin-project-internal", ] [[package]] -name = "phf_macros" -version = "0.10.0" +name = "pin-project-internal" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0" +checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ - "phf_generator 0.10.0", - "phf_shared 0.10.0", - "proc-macro-hack", "proc-macro2", "quote", - "syn 1.0.109", -] - -[[package]] -name = "phf_shared" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" -dependencies = [ - "siphasher", -] - -[[package]] -name = "phf_shared" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" -dependencies = [ - "siphasher", + "syn", ] [[package]] name = "pin-project-lite" -version = "0.2.13" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" [[package]] name = "pin-utils" @@ -1222,141 +1380,153 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" - -[[package]] -name = "ppv-lite86" -version = "0.2.17" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] -name = "precomputed-hash" -version = "0.1.1" +name = "prettyplease" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" +checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" +dependencies = [ + "proc-macro2", + "syn", +] [[package]] -name = "proc-macro-hack" -version = "0.5.20+deprecated" +name = "proc-macro-error" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "version_check", +] [[package]] -name = "proc-macro2" -version = "1.0.66" +name = "proc-macro-error-attr" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "unicode-ident", + "proc-macro2", + "quote", + "version_check", ] [[package]] -name = "quote" -version = "1.0.33" +name = "proc-macro-error-attr2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" dependencies = [ "proc-macro2", + "quote", ] [[package]] -name = "rand" -version = "0.7.3" +name = "proc-macro-error2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc", - "rand_pcg", + "proc-macro-error-attr2", + "proc-macro2", + "quote", ] [[package]] -name = "rand" -version = "0.8.5" +name = "proc-macro-utils" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +checksum = "3f59e109e2f795a5070e69578c4dc101068139f74616778025ae1011d4cd41a8" dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", + "proc-macro2", + "quote", + "smallvec", ] [[package]] -name = "rand_chacha" -version = "0.2.2" +name = "proc-macro-utils" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +checksum = "eeaf08a13de400bc215877b5bdc088f241b12eb42f0a548d3390dc1c56bb7071" dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", + "proc-macro2", + "quote", + "smallvec", ] [[package]] -name = "rand_chacha" -version = "0.3.1" +name = "proc-macro2" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", + "unicode-ident", ] [[package]] -name = "rand_core" -version = "0.5.1" +name = "proc-macro2-diagnostics" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ - "getrandom 0.1.16", + "proc-macro2", + "quote", + "syn", + "version_check", + "yansi", ] [[package]] -name = "rand_core" -version = "0.6.4" +name = "quote" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ - "getrandom 0.2.15", + "proc-macro2", ] [[package]] -name = "rand_hc" -version = "0.2.0" +name = "quote-use" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +checksum = "9619db1197b497a36178cfc736dc96b271fe918875fbf1344c436a7e93d0321e" dependencies = [ - "rand_core 0.5.1", + "quote", + "quote-use-macros", ] [[package]] -name = "rand_pcg" -version = "0.2.1" +name = "quote-use-macros" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" +checksum = "82ebfb7faafadc06a7ab141a6f67bcfb24cb8beb158c6fe933f2f035afa99f35" dependencies = [ - "rand_core 0.5.1", + "proc-macro-utils 0.10.0", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "redox_syscall" -version = "0.5.2" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c82cf8cff14456045f55ec4241383baeff27af886adb72ffb2162f99911de0fd" +checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" dependencies = [ - "bitflags 2.5.0", + "bitflags", ] [[package]] name = "regex" -version = "1.10.5" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", @@ -1366,9 +1536,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", @@ -1377,15 +1547,15 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "reqwest" -version = "0.11.27" +version = "0.12.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" +checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" dependencies = [ "base64", "bytes", @@ -1395,8 +1565,11 @@ dependencies = [ "h2", "http", "http-body", + "http-body-util", "hyper", + "hyper-rustls", "hyper-tls", + "hyper-util", "ipnet", "js-sys", "log", @@ -1418,91 +1591,145 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "winreg", + "windows-registry", ] [[package]] -name = "rustc-demangle" -version = "0.1.23" +name = "ring" +version = "0.17.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +dependencies = [ + "cc", + "cfg-if", + "getrandom", + "libc", + "spin", + "untrusted", + "windows-sys 0.52.0", +] [[package]] -name = "rustc_version" -version = "0.4.0" +name = "rstml" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "fe542870b8f59dd45ad11d382e5339c9a1047cde059be136a7016095bbdefa77" dependencies = [ - "semver", + "proc-macro2", + "proc-macro2-diagnostics", + "quote", + "syn", + "syn_derive", + "thiserror", ] +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + [[package]] name = "rustix" -version = "0.38.34" +version = "0.38.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" dependencies = [ - "bitflags 2.5.0", + "bitflags", "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys 0.59.0", +] + +[[package]] +name = "rustls" +version = "0.23.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5065c3f250cbd332cd894be57c40fa52387247659b14a2d6041d121547903b1b" +dependencies = [ + "once_cell", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", ] [[package]] name = "rustls-pemfile" -version = "1.0.4" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" dependencies = [ - "base64", + "rustls-pki-types", ] [[package]] -name = "ryu" -version = "1.0.15" +name = "rustls-pki-types" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" +checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" [[package]] -name = "schannel" -version = "0.1.23" +name = "rustls-webpki" +version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" dependencies = [ - "windows-sys 0.52.0", + "ring", + "rustls-pki-types", + "untrusted", ] [[package]] -name = "scopeguard" -version = "1.2.0" +name = "ryu" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] -name = "scraper" -version = "0.16.0" +name = "same-file" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59e25654b5e9fd557a67dbaab5a5d36b8c448d0561beb4c041b6dbb902eddfa6" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" dependencies = [ - "ahash", - "cssparser", - "ego-tree", - "getopts", - "html5ever", - "once_cell", - "selectors", - "smallvec", - "tendril", + "winapi-util", +] + +[[package]] +name = "schannel" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" +dependencies = [ + "windows-sys 0.59.0", ] +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + [[package]] name = "security-framework" -version = "2.10.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "770452e37cad93e0a50d5abc3990d2bc351c36d0328f86cefec2f2fb206eaef6" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 1.3.2", + "bitflags", "core-foundation", "core-foundation-sys", "libc", @@ -1511,66 +1738,109 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.11.0" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" +checksum = "fa39c7303dc58b5543c94d22c1766b0d31f2ee58306363ea622b10bbc075eaa2" dependencies = [ "core-foundation-sys", "libc", ] [[package]] -name = "selectors" -version = "0.24.0" +name = "self_cell" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2fdfc24bc566f839a2da4c4295b82db7d25a24253867d5c64355abb5799bdbe" + +[[package]] +name = "send_wrapper" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c37578180969d00692904465fb7f6b3d50b9a2b952b87c23d0e2e5cb5013416" +checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" dependencies = [ - "bitflags 1.3.2", - "cssparser", - "derive_more", - "fxhash", - "log", - "phf 0.8.0", - "phf_codegen 0.8.0", - "precomputed-hash", - "servo_arc", - "smallvec", + "futures-core", ] [[package]] -name = "semver" -version = "1.0.23" +name = "serde" +version = "1.0.216" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" +dependencies = [ + "serde_derive", +] [[package]] -name = "serde" -version = "1.0.188" +name = "serde-wasm-bindgen" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e" +checksum = "8302e169f0eddcc139c70f139d19d6467353af16f9fce27e8c30158036a1e16b" dependencies = [ - "serde_derive", + "js-sys", + "serde", + "wasm-bindgen", +] + +[[package]] +name = "serde_derive" +version = "1.0.216" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.133" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "serde_qs" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0431a35568651e363364210c91983c1da5eb29404d9f0928b67d4ebcfa7d330c" +dependencies = [ + "percent-encoding", + "serde", + "thiserror", +] + +[[package]] +name = "serde_qs" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd34f36fe4c5ba9654417139a9b3a20d2e1de6012ee678ad14d240c22c78d8d6" +dependencies = [ + "percent-encoding", + "serde", + "thiserror", ] [[package]] -name = "serde_derive" -version = "1.0.188" +name = "serde_spanned" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.31", + "serde", ] [[package]] -name = "serde_json" -version = "1.0.105" +name = "serde_test" +version = "1.0.177" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360" +checksum = "7f901ee573cab6b3060453d2d5f0bae4e6d628c23c0a962ff9b5f1d7c8d4f1ed" dependencies = [ - "itoa", - "ryu", "serde", ] @@ -1599,29 +1869,63 @@ dependencies = [ ] [[package]] -name = "servo_arc" -version = "0.2.0" +name = "server_fn" +version = "0.6.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52aa42f8fdf0fed91e5ce7f23d8138441002fa31dca008acf47e6fd4721f741" +checksum = "4fae7a3038a32e5a34ba32c6c45eb4852f8affaf8b794ebfcd4b1099e2d62ebe" dependencies = [ - "nodrop", - "stable_deref_trait", + "bytes", + "ciborium", + "const_format", + "dashmap", + "futures", + "gloo-net", + "http", + "js-sys", + "once_cell", + "send_wrapper", + "serde", + "serde_json", + "serde_qs 0.12.0", + "server_fn_macro_default", + "thiserror", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", + "xxhash-rust", ] [[package]] -name = "sharded-slab" -version = "0.1.4" +name = "server_fn_macro" +version = "0.6.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +checksum = "faaaf648c6967aef78177c0610478abb5a3455811f401f3c62d10ae9bd3901a1" dependencies = [ - "lazy_static", + "const_format", + "convert_case", + "proc-macro2", + "quote", + "syn", + "xxhash-rust", +] + +[[package]] +name = "server_fn_macro_default" +version = "0.6.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f2aa8119b558a17992e0ac1fd07f080099564f24532858811ce04f742542440" +dependencies = [ + "server_fn_macro", + "syn", ] [[package]] -name = "siphasher" -version = "0.3.11" +name = "shlex" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "slab" @@ -1632,6 +1936,16 @@ dependencies = [ "autocfg", ] +[[package]] +name = "slotmap" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" +dependencies = [ + "serde", + "version_check", +] + [[package]] name = "smallvec" version = "1.13.2" @@ -1640,57 +1954,37 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "socket2" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" dependencies = [ "libc", "windows-sys 0.52.0", ] [[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "string_cache" -version = "0.8.7" +name = "spin" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" -dependencies = [ - "new_debug_unreachable", - "once_cell", - "parking_lot", - "phf_shared 0.10.0", - "precomputed-hash", - "serde", -] +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" [[package]] -name = "string_cache_codegen" -version = "0.5.2" +name = "stable_deref_trait" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" -dependencies = [ - "phf_generator 0.10.0", - "phf_shared 0.10.0", - "proc-macro2", - "quote", -] +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] -name = "strsim" -version = "0.10.0" +name = "subtle" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "1.0.109" +version = "2.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" dependencies = [ "proc-macro2", "quote", @@ -1698,21 +1992,25 @@ dependencies = [ ] [[package]] -name = "syn" -version = "2.0.31" +name = "syn_derive" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "718fa2415bcb8d8bd775917a1bf12a7931b6dfa890753378538118181e0cb398" +checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" dependencies = [ + "proc-macro-error", "proc-macro2", "quote", - "unicode-ident", + "syn", ] [[package]] name = "sync_wrapper" -version = "0.1.2" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] [[package]] name = "synstructure" @@ -1722,25 +2020,25 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.31", + "syn", ] [[package]] name = "system-configuration" -version = "0.5.1" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 1.3.2", + "bitflags", "core-foundation", "system-configuration-sys", ] [[package]] name = "system-configuration-sys" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" dependencies = [ "core-foundation-sys", "libc", @@ -1748,55 +2046,35 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.10.1" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" dependencies = [ "cfg-if", "fastrand", + "once_cell", "rustix", - "windows-sys 0.52.0", -] - -[[package]] -name = "tendril" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" -dependencies = [ - "futf", - "mac", - "utf-8", + "windows-sys 0.59.0", ] [[package]] name = "thiserror" -version = "1.0.48" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.48" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.31", -] - -[[package]] -name = "thread_local" -version = "1.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" -dependencies = [ - "cfg-if", - "once_cell", + "syn", ] [[package]] @@ -1811,47 +2089,44 @@ dependencies = [ [[package]] name = "tokio" -version = "1.32.0" +version = "1.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9" +checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" dependencies = [ "backtrace", "bytes", "libc", "mio", - "num_cpus", "pin-project-lite", "socket2", - "tokio-macros", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] -name = "tokio-macros" -version = "2.1.0" +name = "tokio-native-tls" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.31", + "native-tls", + "tokio", ] [[package]] -name = "tokio-native-tls" -version = "0.3.1" +name = "tokio-rustls" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +checksum = "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37" dependencies = [ - "native-tls", + "rustls", "tokio", ] [[package]] name = "tokio-util" -version = "0.7.11" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" dependencies = [ "bytes", "futures-core", @@ -1860,19 +2135,52 @@ dependencies = [ "tokio", ] +[[package]] +name = "toml" +version = "0.8.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + +[[package]] +name = "toml_datetime" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.22.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" +dependencies = [ + "indexmap 2.7.0", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", +] + [[package]] name = "tower-service" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.37" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ - "cfg-if", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -1880,85 +2188,91 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.26" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.31", + "syn", ] [[package]] name = "tracing-core" -version = "0.1.31" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", - "valuable", ] [[package]] -name = "tracing-log" -version = "0.1.3" +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "typed-builder" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" +checksum = "77739c880e00693faef3d65ea3aad725f196da38b22fdc7ea6ded6e1ce4d3add" dependencies = [ - "lazy_static", - "log", - "tracing-core", + "typed-builder-macro", ] [[package]] -name = "tracing-subscriber" -version = "0.3.17" +name = "typed-builder-macro" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" +checksum = "1f718dfaf347dcb5b983bfc87608144b0bad87970aebcbea5ce44d2a30c08e63" dependencies = [ - "nu-ansi-term", - "sharded-slab", - "smallvec", - "thread_local", - "tracing-core", - "tracing-log", + "proc-macro2", + "quote", + "syn", ] [[package]] -name = "try-lock" -version = "0.2.5" +name = "unicode-id" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" +checksum = "10103c57044730945224467c09f71a4db0071c123a0648cc3e818913bde6b561" [[package]] name = "unicode-ident" -version = "1.0.11" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" + +[[package]] +name = "unicode-segmentation" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" + +[[package]] +name = "unicode-xid" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] -name = "unicode-width" -version = "0.1.13" +name = "untrusted" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.1" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7c25da092f0a868cdf09e8674cd3b7ef3a7d92a24253e663a2fb85e2496de56" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna", "percent-encoding", ] -[[package]] -name = "utf-8" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" - [[package]] name = "utf16_iter" version = "1.0.5" @@ -1966,22 +2280,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" [[package]] -name = "utf8_iter" -version = "1.0.4" +name = "utf8-width" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" +checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3" [[package]] -name = "utf8parse" -version = "0.2.1" +name = "utf8_iter" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] -name = "valuable" -version = "0.1.0" +name = "uuid" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" +dependencies = [ + "getrandom", +] [[package]] name = "vcpkg" @@ -1991,9 +2308,19 @@ checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "walkdir" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] [[package]] name = "want" @@ -2004,12 +2331,6 @@ dependencies = [ "try-lock", ] -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -2018,46 +2339,47 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.87" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" +checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" dependencies = [ "cfg-if", + "once_cell", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.87" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" +checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", - "syn 2.0.31", + "syn", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.37" +version = "0.4.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" +checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" dependencies = [ "cfg-if", "js-sys", + "once_cell", "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.87" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" +checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2065,211 +2387,199 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.87" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" +checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.31", + "syn", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.87" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" +checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" [[package]] -name = "web-sys" -version = "0.3.64" +name = "wasm-bindgen-test" +version = "0.3.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" +checksum = "c61d44563646eb934577f2772656c7ad5e9c90fac78aa8013d776fcdaf24625d" dependencies = [ "js-sys", + "minicov", + "scoped-tls", "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-bindgen-test-macro", ] [[package]] -name = "winapi" -version = "0.3.9" +name = "wasm-bindgen-test-macro" +version = "0.3.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +checksum = "54171416ce73aa0b9c377b51cc3cb542becee1cd678204812e8392e5b0e4a031" dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", + "proc-macro2", + "quote", + "syn", ] [[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" +name = "wasm-streams" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] [[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" +name = "web-sys" +version = "0.3.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" +dependencies = [ + "js-sys", + "wasm-bindgen", +] [[package]] -name = "windows" -version = "0.48.0" +name = "winapi-util" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-targets 0.48.5", + "windows-sys 0.59.0", ] [[package]] -name = "windows-sys" -version = "0.48.0" +name = "windows-registry" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" dependencies = [ - "windows-targets 0.48.5", + "windows-result", + "windows-strings", + "windows-targets", ] [[package]] -name = "windows-sys" -version = "0.52.0" +name = "windows-result" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" dependencies = [ - "windows-targets 0.52.5", + "windows-targets", ] [[package]] -name = "windows-targets" -version = "0.48.5" +name = "windows-strings" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", + "windows-result", + "windows-targets", ] [[package]] -name = "windows-targets" -version = "0.52.5" +name = "windows-sys" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows_aarch64_gnullvm 0.52.5", - "windows_aarch64_msvc 0.52.5", - "windows_i686_gnu 0.52.5", - "windows_i686_gnullvm", - "windows_i686_msvc 0.52.5", - "windows_x86_64_gnu 0.52.5", - "windows_x86_64_gnullvm 0.52.5", - "windows_x86_64_msvc 0.52.5", + "windows-targets", ] [[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" +name = "windows-sys" +version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets", +] [[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.5" +name = "windows-targets" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] [[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" +name = "windows_aarch64_gnullvm" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnullvm" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] -name = "windows_x86_64_msvc" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" - -[[package]] -name = "winreg" -version = "0.50.0" +name = "winnow" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" dependencies = [ - "cfg-if", - "windows-sys 0.48.0", + "memchr", ] [[package]] @@ -2284,6 +2594,12 @@ version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" +[[package]] +name = "xxhash-rust" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a5cbf750400958819fb6178eaa83bee5cd9c29a26a40cc241df8c70fdd46984" + [[package]] name = "yaml-front-matter" version = "0.1.0" @@ -2303,11 +2619,17 @@ dependencies = [ "linked-hash-map", ] +[[package]] +name = "yansi" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" + [[package]] name = "yoke" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" dependencies = [ "serde", "stable_deref_trait", @@ -2317,62 +2639,48 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.31", + "syn", "synstructure", ] -[[package]] -name = "zerocopy" -version = "0.7.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087" -dependencies = [ - "zerocopy-derive", -] - -[[package]] -name = "zerocopy-derive" -version = "0.7.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.31", -] - [[package]] name = "zerofrom" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", - "syn 2.0.31", + "syn", "synstructure", ] +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" + [[package]] name = "zerovec" -version = "0.10.2" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2cc8827d6c0994478a15c53f374f46fbd41bea663d809b14744bc42e6b109c" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" dependencies = [ "yoke", "zerofrom", @@ -2381,11 +2689,11 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.10.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97cf56601ee5052b4417d90c8755c6683473c926039908196cf35d99f893ebe7" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.31", + "syn", ] diff --git a/Cargo.toml b/Cargo.toml index 07149a99..0c80d200 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,16 +1,17 @@ [workspace] -default-members = ["crates/cli"] members = [ - "crates/cli", - "crates/notes", + "crates/www", ] +resolver = "2" [workspace.dependencies] -chrono = "0.4.31" -dotenv = "0.15.0" -serde = { version = "1.0.188", features = ["derive"] } -serde_json = { version = "1.0.104" } -thiserror = "1.0.38" -tokio = { version = "1.29.1", features = ["rt-multi-thread", "macros"] } -tracing = "0.1.37" -tracing-subscriber = "0.3.15" +anyhow = "1.0.86" +leptos = { version = "0.6", features = ["csr"] } +leptos_meta = { version = "0.6", features = ["csr"] } +leptos_router = { version = "0.6", features = ["csr"] } +markdown = "=1.0.0-alpha.21" +reqwest = { version = "0.12.9", features = ["json"] } +serde = "1.0" +serde_json = "1.0" +yaml-front-matter = "0.1.0" +wasm-bindgen = "0.2" diff --git a/Justfile b/Justfile index 5cde36e6..b264961b 100644 --- a/Justfile +++ b/Justfile @@ -1,7 +1,9 @@ default: - just --list + just --list -# Updates notes index -index: - cargo run -- index +dev: + cd ./crates/www && trunk serve --config ./Trunk.toml +fmt: + cargo clippy --workspace --fix --allow-dirty --allow-staged && cargo fmt + leptosfmt crates/www/**/*.rs diff --git a/README.md b/README.md deleted file mode 100644 index 82510ca0..00000000 --- a/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# create-svelte - -Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte); - -## Creating a project - -If you're seeing this, you've probably already done this step. Congrats! - -```bash -# create a new project in the current directory -npm init svelte@next - -# create a new project in my-app -npm init svelte@next my-app -``` - -> Note: the `@next` is temporary - -## Developing - -Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: - -```bash -npm run dev - -# or start the server and open the app in a new browser tab -npm run dev -- --open -``` - -## Building - -Before creating a production version of your app, install an [adapter](https://kit.svelte.dev/docs#adapters) for your target environment. Then: - -```bash -npm run build -``` - -> You can preview the built app with `npm run preview`, regardless of whether you installed an adapter. This should _not_ be used to serve your app in production. diff --git a/bun.lockb b/bun.lockb deleted file mode 100755 index 822135c2..00000000 Binary files a/bun.lockb and /dev/null differ diff --git a/crates/cli/Cargo.toml b/crates/cli/Cargo.toml deleted file mode 100644 index b61a478e..00000000 --- a/crates/cli/Cargo.toml +++ /dev/null @@ -1,30 +0,0 @@ -[package] -name = "cli" -version = "0.1.0" -edition = "2021" -authors = ["Esteban Borai "] - -[lib] -name = "libcli" -path = "src/lib.rs" - -[[bin]] -name = "cli" -path = "src/bin/main.rs" - -[dependencies] -anyhow = "1.0.75" -clap = { version = "4.3.11", features = ["std", "derive", "env"] } -link-preview = { version = "0.1.1", features = ["fetch"] } - -# Workspace Dependencies -chrono = { workspace = true } -dotenv = { workspace = true } -serde = { workspace = true } -serde_json = { workspace = true } -tokio = { workspace = true } -tracing = { workspace = true } -tracing-subscriber = { workspace = true } - -# Local -notes = { path = "../notes" } diff --git a/crates/cli/src/bin/main.rs b/crates/cli/src/bin/main.rs deleted file mode 100644 index 4625ee0b..00000000 --- a/crates/cli/src/bin/main.rs +++ /dev/null @@ -1,55 +0,0 @@ -use std::env::current_dir; - -use anyhow::Result; -use clap::Parser; -use dotenv::dotenv; - -use libcli::{bookmarks, notes_index::NotesIndex}; - -#[derive(Debug, Parser)] -#[command(next_line_help = true)] -#[command(name = "website", author, version, about)] -pub enum Cli { - /// Creates the Notes Entry Index - Notes, - /// Creates the Bookmarks Index - Bookmarks { - /// URL to bookmark - url: Option, - }, -} - -impl Cli { - pub async fn exec(self) -> Result<()> { - match self { - Self::Notes => { - let index_path = current_dir()?.join("static").join("db"); - let index = NotesIndex::new()?; - - index.save_to_file(index_path)?; - } - Self::Bookmarks { url } => { - let bookmarks = bookmarks::BookmarksIndex::new()?; - - if let Some(url) = url { - let mut bookmarks = bookmarks; - return bookmarks.append(url).await; - } - - bookmarks.list(); - } - } - - Ok(()) - } -} - -#[tokio::main] -async fn main() { - dotenv().ok(); - tracing_subscriber::fmt::init(); - - let cli_opts = Cli::parse(); - - cli_opts.exec().await.expect("Command Failed"); -} diff --git a/crates/cli/src/bookmarks.rs b/crates/cli/src/bookmarks.rs deleted file mode 100644 index 015a53cf..00000000 --- a/crates/cli/src/bookmarks.rs +++ /dev/null @@ -1,99 +0,0 @@ -use std::collections::HashSet; -use std::env::current_dir; -use std::fs::read_to_string; -use std::hash::{Hash, Hasher}; - -use anyhow::Result; -use chrono::{DateTime, Utc}; -use link_preview::LinkPreview; -use serde::{Deserialize, Serialize}; - -const BOOKMARKS_INDEX_FILE: &str = "bookmarks.json"; - -#[derive(Clone, Debug, Serialize, Deserialize, Eq)] -#[serde(rename_all = "camelCase")] -pub struct BookmarkEntry { - pub title: String, - pub url: String, - pub tags: Vec, - pub description: Option, - pub preview_image_url: Option, - pub created_at: DateTime, -} - -impl Hash for BookmarkEntry { - fn hash(&self, state: &mut H) - where - H: Hasher, - { - let _ = &self.url.hash(state); - } -} - -impl PartialEq for BookmarkEntry { - fn eq(&self, other: &Self) -> bool { - &self.url == &other.url - } -} - -#[derive(Debug, Serialize, Deserialize)] -pub struct BookmarksIndex(HashSet); - -impl BookmarksIndex { - /// Opens the BookmarksIndex from the `bookmarks.json` file. - pub fn new() -> Result { - let path = current_dir()? - .join("static") - .join("db") - .join(BOOKMARKS_INDEX_FILE); - let index = read_to_string(path)?; - - Ok(serde_json::from_str(&index)?) - } - - /// Lists entries - pub fn list(&self) { - self.0.iter().for_each(|entry| { - println!("{}: {}", entry.title, entry.url); - }); - } - - fn save(&self) -> Result<()> { - let path = current_dir()? - .join("static") - .join("db") - .join(BOOKMARKS_INDEX_FILE); - let mut items = self.0 - .iter() - .cloned() - .collect::>(); - - items.sort_by(|a, b| b.created_at.cmp(&a.created_at)); - - let index = serde_json::to_string_pretty(&items)?; - - std::fs::write(path, index)?; - - Ok(()) - } - - pub async fn append(&mut self, url: String) -> Result<()> { - let html = link_preview::fetch::fetch_partially(&url).await?; - let preview = LinkPreview::from(html); - let entry = BookmarkEntry { - title: preview.title.unwrap_or(url.to_owned()), - url, - tags: Vec::new(), - description: preview.description, - preview_image_url: preview.image_url.map(|url| url.to_string()), - created_at: Utc::now(), - }; - - self.0.insert(entry.to_owned()); - self.save()?; - - println!("Added Bookmark Entry: {:#?}", entry); - - Ok(()) - } -} diff --git a/crates/cli/src/lib.rs b/crates/cli/src/lib.rs deleted file mode 100644 index befc3ca2..00000000 --- a/crates/cli/src/lib.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub mod bookmarks; -pub mod notes_index; diff --git a/crates/cli/src/notes_index.rs b/crates/cli/src/notes_index.rs deleted file mode 100644 index ccfa6b60..00000000 --- a/crates/cli/src/notes_index.rs +++ /dev/null @@ -1,103 +0,0 @@ -use std::cmp::Ordering; -use std::fs::{read_dir, read_to_string}; -use std::path::PathBuf; -use std::str::FromStr; - -use anyhow::Result; -use serde::{Deserialize, Serialize}; - -use notes::NoteMetadata; - -/// `Cargo.toml` relative path to the directory containing notes -const MDSVEX_DIR: &str = "src/mdsvex"; - -/// Supported languages -const LANGUAGES: [&str; 3] = ["en", "es", "hu"]; - -#[derive(Debug, Serialize, Deserialize)] -pub struct NotesIndex(Vec); - -#[derive(Debug, Serialize, Deserialize)] -pub struct RichNoteMetadata { - pub meta: NoteMetadata, - pub slug: String, -} - -impl NotesIndex { - /// Creates a new `RichNoteMetadata` index (`NotesIndex`) sorted by creation - /// date (from YAML Front Matter's Date). - pub fn new() -> Result { - let mut index: Vec = Vec::new(); - let entries = Self::list_entries()?; - - tracing::info!("Found {} entries", entries.len()); - - for entry in entries { - if let Some(meta) = Self::find_note(&entry)? { - if !meta.published { - continue; - } - - let Some(os_str_filename) = entry.file_stem() else { - tracing::error!("Failed to get filename for {:?}", entry); - continue; - }; - - let Some(filename) = os_str_filename.to_str() else { - tracing::error!("OsString is not a valid UTF-8 string"); - continue; - }; - - index.push(RichNoteMetadata { - slug: filename.to_string(), - meta, - }); - } else { - tracing::error!("Failed to find note in {:?}", entry); - } - } - - index.sort_by(|a, b| { - if a.meta.date > b.meta.date { - Ordering::Less - } else { - Ordering::Greater - } - }); - - Ok(Self(index)) - } - - pub fn save_to_file(&self, path: PathBuf) -> Result<()> { - let index = serde_json::to_string_pretty(&self)?; - let path = path.join("notes_index.json"); - - std::fs::write(&path, index)?; - tracing::info!("Saved index to file at {}", path.display()); - - Ok(()) - } - - /// Lists entries for notes localted at [`MDSVEX_DIR`] - fn list_entries() -> Result> { - let dir = read_dir(MDSVEX_DIR)?; - - Ok(dir.into_iter().map(|entry| entry.unwrap().path()).collect()) - } - - /// Attempts to find a note in the given entry - fn find_note(entry: &PathBuf) -> Result> { - for lang in LANGUAGES { - let path = entry.join(format!("{}.svx", lang)); - - if path.exists() { - let file = read_to_string(path)?; - let note = NoteMetadata::from_str(&file)?; - - return Ok(Some(note)); - } - } - - Ok(None) - } -} diff --git a/crates/notes/Cargo.toml b/crates/notes/Cargo.toml deleted file mode 100644 index f6fc9495..00000000 --- a/crates/notes/Cargo.toml +++ /dev/null @@ -1,18 +0,0 @@ -[package] -name = "notes" -version = "0.1.0" -edition = "2021" -authors = ["Esteban Borai "] - -[lib] -name = "notes" -path = "src/lib.rs" - -[dependencies] -thiserror = "1.0.48" -yaml-front-matter = "0.1.0" - -# Workspace Dependencies -chrono = { workspace = true, features = ["serde"] } -serde = { workspace = true } -serde_json = { workspace = true } diff --git a/crates/notes/src/lib.rs b/crates/notes/src/lib.rs deleted file mode 100644 index 1e95ba1c..00000000 --- a/crates/notes/src/lib.rs +++ /dev/null @@ -1,53 +0,0 @@ -//! Notes types and utility functions - -use std::str::FromStr; - -use chrono::NaiveDate; -use serde::{Deserialize, Serialize}; -use thiserror::Error; -use yaml_front_matter::YamlFrontMatter; - -/// The format of the date string in the YAML front matter -pub const DATE_STR_FORMAT: &str = "%Y-%m-%d"; - -#[derive(Debug, Error)] -pub enum Error { - #[error("Failed to parse YAML front matter. {0}")] - ParseError(String), -} - -#[derive(Debug, Serialize, Deserialize)] -#[serde(rename_all = "lowercase")] -pub enum Icon { - Docker, - Git, - Rust, - Python, - Svelte, - Gcp, - TypeScript, - Dev, -} - -#[derive(Debug, Serialize, Deserialize)] -pub struct NoteMetadata { - pub title: String, - pub description: String, - pub icon: Icon, - pub date: NaiveDate, - pub preview_image_url: String, - pub published: bool, - pub categories: Vec, -} - -impl FromStr for NoteMetadata { - type Err = Error; - - fn from_str(s: &str) -> Result { - let front_matter = YamlFrontMatter::parse::(s) - .map_err(|err| Error::ParseError(err.to_string()))?; - let note = front_matter.metadata; - - Ok(note) - } -} diff --git a/crates/www/Cargo.toml b/crates/www/Cargo.toml new file mode 100644 index 00000000..d2b41210 --- /dev/null +++ b/crates/www/Cargo.toml @@ -0,0 +1,29 @@ +[package] +name = "estebanborai-dotcom" +version = "0.0.0" +edition = "2021" +publish = false + +[lib] +name = "app" +path = "src/lib.rs" + +[[bin]] +name = "www" +path = "src/bin/main.rs" + +[dependencies] +anyhow = { workspace = true } +leptos = { workspace = true, features = ["csr"] } +leptos_meta = { workspace = true, features = ["csr"] } +leptos_router = { workspace = true, features = ["csr"] } +markdown = { workspace = true } +reqwest = { workspace = true } +serde = { workspace = true } +serde_json = { workspace = true } +yaml-front-matter = { workspace = true } +wasm-bindgen = { workspace = true } + +[dev-dependencies] +wasm-bindgen-test = "0.3" +web-sys = "0.3" diff --git a/crates/www/Trunk.toml b/crates/www/Trunk.toml new file mode 100644 index 00000000..76d17931 --- /dev/null +++ b/crates/www/Trunk.toml @@ -0,0 +1,52 @@ +[build] +# The index HTML file to drive the bundling process. +target = "./public/index.html" + +# Build in release mode. +release = false + +# The output dir for all final assets. +dist = "dist" + +# The public URL from which assets are to be served. +public_url = "/" + +# Whether to include hash values in the output file names. +filehash = true + +# Whether to inject scripts (and module preloads) into the finalized output. +inject_scripts = true + +# Run without network access +offline = false + +# Require Cargo.lock and cache are up to date +frozen = false + +# Require Cargo.lock is up to date +locked = false + +# Allow disabling minification +no_minification = false + +# Allow disabling sub-resource integrity (SRI) +no_sri = false + +[watch] +# Paths to watch. The `build.target`'s parent folder is watched by default. +watch = ["./src", "./public"] +# Paths to ignore. +ignore = [] + +[serve] +# The address to serve on. +address = "127.0.0.1" + +# The port to serve on. +port = 8080 + +# Open a browser tab once the initial build is complete. +open = false + +# Protocol used for autoreload WebSockets connection. +ws_protocol = "ws" diff --git a/crates/www/assets/.gitkeep b/crates/www/assets/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/static/fonts/ibm-plex-mono-v19-latin-600.woff2 b/crates/www/assets/fonts/ibm-plex-mono-v19-latin-600.woff2 similarity index 100% rename from static/fonts/ibm-plex-mono-v19-latin-600.woff2 rename to crates/www/assets/fonts/ibm-plex-mono-v19-latin-600.woff2 diff --git a/static/fonts/ibm-plex-mono-v19-latin-600italic.woff2 b/crates/www/assets/fonts/ibm-plex-mono-v19-latin-600italic.woff2 similarity index 100% rename from static/fonts/ibm-plex-mono-v19-latin-600italic.woff2 rename to crates/www/assets/fonts/ibm-plex-mono-v19-latin-600italic.woff2 diff --git a/static/fonts/ibm-plex-mono-v19-latin-italic.woff2 b/crates/www/assets/fonts/ibm-plex-mono-v19-latin-italic.woff2 similarity index 100% rename from static/fonts/ibm-plex-mono-v19-latin-italic.woff2 rename to crates/www/assets/fonts/ibm-plex-mono-v19-latin-italic.woff2 diff --git a/static/fonts/ibm-plex-mono-v19-latin-regular.woff2 b/crates/www/assets/fonts/ibm-plex-mono-v19-latin-regular.woff2 similarity index 100% rename from static/fonts/ibm-plex-mono-v19-latin-regular.woff2 rename to crates/www/assets/fonts/ibm-plex-mono-v19-latin-regular.woff2 diff --git a/static/fonts/literata-v35-latin-200.woff2 b/crates/www/assets/fonts/literata-v35-latin-200.woff2 similarity index 100% rename from static/fonts/literata-v35-latin-200.woff2 rename to crates/www/assets/fonts/literata-v35-latin-200.woff2 diff --git a/static/fonts/literata-v35-latin-600.woff2 b/crates/www/assets/fonts/literata-v35-latin-600.woff2 similarity index 100% rename from static/fonts/literata-v35-latin-600.woff2 rename to crates/www/assets/fonts/literata-v35-latin-600.woff2 diff --git a/static/fonts/literata-v35-latin-800.woff2 b/crates/www/assets/fonts/literata-v35-latin-800.woff2 similarity index 100% rename from static/fonts/literata-v35-latin-800.woff2 rename to crates/www/assets/fonts/literata-v35-latin-800.woff2 diff --git a/static/fonts/literata-v35-latin-regular.woff2 b/crates/www/assets/fonts/literata-v35-latin-regular.woff2 similarity index 100% rename from static/fonts/literata-v35-latin-regular.woff2 rename to crates/www/assets/fonts/literata-v35-latin-regular.woff2 diff --git a/static/images/whoami.jpg b/crates/www/assets/images/whoami.jpg similarity index 100% rename from static/images/whoami.jpg rename to crates/www/assets/images/whoami.jpg diff --git a/src/mdsvex/deploy-rust-to-fly-io/en.svx b/crates/www/assets/notes/deploy-rust-to-fly-io.md similarity index 100% rename from src/mdsvex/deploy-rust-to-fly-io/en.svx rename to crates/www/assets/notes/deploy-rust-to-fly-io.md diff --git a/src/mdsvex/docker-postgresql-restore-database/en.svx b/crates/www/assets/notes/docker-postgresql-restore-database.md similarity index 98% rename from src/mdsvex/docker-postgresql-restore-database/en.svx rename to crates/www/assets/notes/docker-postgresql-restore-database.md index dfb10c62..63f9c7a1 100644 --- a/src/mdsvex/docker-postgresql-restore-database/en.svx +++ b/crates/www/assets/notes/docker-postgresql-restore-database.md @@ -31,7 +31,7 @@ If you are not sure on what does _sensitive data_ means, here's some examples: Open your terminal and paste the following docker command: ```bash -docker run --name my_fav_pg_instance \ +docker run --name my_fav_pg_instance \ -e POSTGRES_PASSWORD=secret \ -d postgres ``` @@ -83,4 +83,4 @@ using the Dockerized environment, make sure your dump files are safe and sensitive data free. If you find any issues with this note, please don't hesitate to open a PR or -issue in my [GitHub](https://github.com/EstebanBorai/EstebanBorai)! \ No newline at end of file +issue in my [GitHub](https://github.com/EstebanBorai/EstebanBorai)! diff --git a/src/mdsvex/http-server-with-rust/es.svx b/crates/www/assets/notes/http-server-with-rust.md similarity index 100% rename from src/mdsvex/http-server-with-rust/es.svx rename to crates/www/assets/notes/http-server-with-rust.md diff --git a/src/mdsvex/installing-the-rust-programming-language-on-windows/en.svx b/crates/www/assets/notes/installing-the-rust-programming-language-on-windows.md similarity index 100% rename from src/mdsvex/installing-the-rust-programming-language-on-windows/en.svx rename to crates/www/assets/notes/installing-the-rust-programming-language-on-windows.md diff --git a/src/mdsvex/introduction-to-git/en.svx b/crates/www/assets/notes/introduction-to-git.md similarity index 99% rename from src/mdsvex/introduction-to-git/en.svx rename to crates/www/assets/notes/introduction-to-git.md index ae59d2e8..0a233949 100644 --- a/src/mdsvex/introduction-to-git/en.svx +++ b/crates/www/assets/notes/introduction-to-git.md @@ -381,10 +381,10 @@ we have to "step" on `main` and then execute `git merge fix/throw-on-divide-by-0 ```bash # change the branch to `main` -git checkout main +git checkout main # merge branch against "fix/throw-on-divide-by-0" -git merge fix/throw-on-divide-by-0 +git merge fix/throw-on-divide-by-0 Updating de154de..5925cf6 Fast-forward lib.js | 4 ++++ @@ -442,4 +442,4 @@ Deleted branch fix/throw-on-divide-by-0 (was 5925cf6). That's everything for this note! I hope you really liked it and learned something new. If you find any typo or want to contribute please don't hesitate -on opening a Pull Request on GitHub! \ No newline at end of file +on opening a Pull Request on GitHub! diff --git a/src/mdsvex/moving-into-orbstack/en.svx b/crates/www/assets/notes/moving-into-orbstack.md similarity index 100% rename from src/mdsvex/moving-into-orbstack/en.svx rename to crates/www/assets/notes/moving-into-orbstack.md diff --git a/src/mdsvex/one-way-to-build-your-graphql-server-with-typescript/en.svx b/crates/www/assets/notes/one-way-to-build-your-graphql-server-with-typescript.md similarity index 100% rename from src/mdsvex/one-way-to-build-your-graphql-server-with-typescript/en.svx rename to crates/www/assets/notes/one-way-to-build-your-graphql-server-with-typescript.md diff --git a/src/mdsvex/pxid-developer-friendly-ids/en.svx b/crates/www/assets/notes/pxid-developer-friendy-ids.md similarity index 96% rename from src/mdsvex/pxid-developer-friendly-ids/en.svx rename to crates/www/assets/notes/pxid-developer-friendy-ids.md index 006d358e..4eaa0317 100644 --- a/src/mdsvex/pxid-developer-friendly-ids/en.svx +++ b/crates/www/assets/notes/pxid-developer-friendy-ids.md @@ -75,12 +75,12 @@ are: So I started to investigate and found some ID designs out there, including: -Name | Bytes | Length | Configuration Free | Sortable | Dependency Free (*) ---- | --- | --- | --- | --- | --- -`ObjectID` | 12 | 24 | ✅ | ✅ | ✅ -`UUID` | 16 | 36 | ✅ | ❎ | ✅ -`Snowflaxe` | 8 | ≈20 | ❎ | ✅ | ❎ -`xid` | 12 | 20 | ✅ | ✅ | ✅ +| Name | Bytes | Length | Configuration Free | Sortable | Dependency Free (*) | +| --- | --- | --- | --- | --- | --- | +| ObjectID | 12 | 24 | ✅ | ✅ | ✅ | +| UUID | 16 | 36 | ✅ | ❎ | ✅ | +| Snowflaxe | 8 | ≈20 | ❎ | ✅ | ❎ | +| xid | 12 | 20 | ✅ | ✅ | ✅ | > (*) System Time is not being considered dependency in this table diff --git a/src/mdsvex/rust-and-its-general-purpose-nature/en.svx b/crates/www/assets/notes/rust-and-its-general-purpose-nature.md similarity index 99% rename from src/mdsvex/rust-and-its-general-purpose-nature/en.svx rename to crates/www/assets/notes/rust-and-its-general-purpose-nature.md index f9b7f54a..794e276a 100644 --- a/src/mdsvex/rust-and-its-general-purpose-nature/en.svx +++ b/crates/www/assets/notes/rust-and-its-general-purpose-nature.md @@ -52,7 +52,7 @@ If you are looking for a ORM you will also find [Diesel.rs](https://diesel.rs/) Given that Rust [has a very small runtime](https://github.com/rust-lang/rust/blob/master/library/std/src/rt.rs) and thanks to the wide list of [supported compile targets](https://doc.rust-lang.org/rustc/platform-support.html), companies such as [Embark Studios](https://www.embark-studios.com/) embrace Rust for Game Development, their most popular project (at the moment of this writing) is [The Finals](https://www.reachthefinals.com/), Embark Studios is a big Rust supporter, you can read their background and what they think about Rust [here](https://github.com/EmbarkStudios/rust-ecosystem/tree/0916b1e271e708286b1aba5758aa15b45467a2b3#background). > When we started Embark, we chose Rust as our primary language for the long term future we are building. We love the safety and robustness of the language, the ability to write high performance, safe, and (mostly) bug free code and then fearlessly refactor and change it without common lifetime/ownership, memory safety or race condition problems. -> +> > — Johan Andersson ([`@repi`](http://twitter.com/repi)), CTO, Embark Rust is considered a low-level programming language with high-level ergonomics due to its resource management model, this encourages Game Development companies because it allows them to deliver resource efficient solutions. @@ -87,6 +87,6 @@ Check out more about the progress of Rust in this area on [arewelearningyet.rs]( ## Conclusion -Thank to Rust versatility and continuously evolving community, Rust is turning into an option for different Software Development industry categories. Learning Rust today will allow you to participate in different projects as you learn the fundamentals and key concepts of different categories. +Thank to Rust versatility and continuously evolving community, Rust is turning into an option for different Software Development industry categories. Learning Rust today will allow you to participate in different projects as you learn the fundamentals and key concepts of different categories. It worth mentioning that I have skipped some of these categories in this note, Rust counts with crates for GUI Development, Mobile Development and Embedded Systems as well but it would take a longer note. diff --git a/src/mdsvex/rust-github-actions-release-workflow/en.svx b/crates/www/assets/notes/rust-github-actions-release-workflow.md similarity index 99% rename from src/mdsvex/rust-github-actions-release-workflow/en.svx rename to crates/www/assets/notes/rust-github-actions-release-workflow.md index 7ddd1a5b..3a9204da 100644 --- a/src/mdsvex/rust-github-actions-release-workflow/en.svx +++ b/crates/www/assets/notes/rust-github-actions-release-workflow.md @@ -206,7 +206,7 @@ Then `release` job would look like this: - name: Install `cargo-edit` run: cargo install cargo-edit - + - id: cargo-set-version name: Set Version run: cargo set-version --bump ${{ inputs.version }} diff --git a/src/mdsvex/setup-google-cloud-sql-proxy-on-macos/en.svx b/crates/www/assets/notes/setup-google-cloud-sql-proxy-on-macos.md similarity index 99% rename from src/mdsvex/setup-google-cloud-sql-proxy-on-macos/en.svx rename to crates/www/assets/notes/setup-google-cloud-sql-proxy-on-macos.md index 5e6ce3f1..3a31c06f 100644 --- a/src/mdsvex/setup-google-cloud-sql-proxy-on-macos/en.svx +++ b/crates/www/assets/notes/setup-google-cloud-sql-proxy-on-macos.md @@ -334,4 +334,4 @@ Output: ``` Cloud SQL Auth proxy: 1.27.0+darwin.amd64 -``` \ No newline at end of file +``` diff --git a/src/mdsvex/setup-poetry-development-environment-osx/en.svx b/crates/www/assets/notes/setup-poetry-development-environment-osx.md similarity index 100% rename from src/mdsvex/setup-poetry-development-environment-osx/en.svx rename to crates/www/assets/notes/setup-poetry-development-environment-osx.md diff --git a/src/mdsvex/sveltekit-pwa/en.svx b/crates/www/assets/notes/sveltekit-pwa.md similarity index 100% rename from src/mdsvex/sveltekit-pwa/en.svx rename to crates/www/assets/notes/sveltekit-pwa.md diff --git a/src/mdsvex/uploading-files-to-graphql-server-with-urql/en.svx b/crates/www/assets/notes/uploading-files-to-graphql-server-with-urql.md similarity index 99% rename from src/mdsvex/uploading-files-to-graphql-server-with-urql/en.svx rename to crates/www/assets/notes/uploading-files-to-graphql-server-with-urql.md index d3a3cf7c..e742d75c 100644 --- a/src/mdsvex/uploading-files-to-graphql-server-with-urql/en.svx +++ b/crates/www/assets/notes/uploading-files-to-graphql-server-with-urql.md @@ -165,7 +165,7 @@ primitives such as stores. type="file" on:change={(event) => { const files: FileList = event.target.files; - + setFieldValue('logo', files[0]); }} /> diff --git a/src/mdsvex/use-chrome-incognito-as-default/en.svx b/crates/www/assets/notes/use-chrome-incognito-as-default.md similarity index 100% rename from src/mdsvex/use-chrome-incognito-as-default/en.svx rename to crates/www/assets/notes/use-chrome-incognito-as-default.md diff --git a/src/mdsvex/writing-e2e-tests-for-axum-and-graphql/en.svx b/crates/www/assets/notes/writing-e2e-tests-for-axum-and-graphql.md similarity index 99% rename from src/mdsvex/writing-e2e-tests-for-axum-and-graphql/en.svx rename to crates/www/assets/notes/writing-e2e-tests-for-axum-and-graphql.md index ca264737..3c683ca7 100644 --- a/src/mdsvex/writing-e2e-tests-for-axum-and-graphql/en.svx +++ b/crates/www/assets/notes/writing-e2e-tests-for-axum-and-graphql.md @@ -394,4 +394,4 @@ Happy Hacking! [1]: https://github.com/whizzes/gabble [2]: https://domaincentric.net/blog/ddd-building-blocks-in-php-value-object -[3]: https://github.com/whizzes/gabble/blob/e7b5a2f14aece65bc03c348b720e161e0e240340/src/test/src/lib.rs \ No newline at end of file +[3]: https://github.com/whizzes/gabble/blob/e7b5a2f14aece65bc03c348b720e161e0e240340/src/test/src/lib.rs diff --git a/crates/www/public/index.html b/crates/www/public/index.html new file mode 100644 index 00000000..ff16b65e --- /dev/null +++ b/crates/www/public/index.html @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + diff --git a/src/app.css b/crates/www/public/styles.css similarity index 58% rename from src/app.css rename to crates/www/public/styles.css index b569b316..048b9456 100644 --- a/src/app.css +++ b/crates/www/public/styles.css @@ -2,13 +2,14 @@ @tailwind components; @tailwind utilities; + /* ibm-plex-mono-regular - latin */ @font-face { font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */ font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 400; - src: url('/fonts/ibm-plex-mono-v19-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */ + src: url('/assets/fonts/ibm-plex-mono-v19-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */ } /* ibm-plex-mono-italic - latin */ @@ -17,7 +18,7 @@ font-family: 'IBM Plex Mono'; font-style: italic; font-weight: 400; - src: url('/fonts/ibm-plex-mono-v19-latin-italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */ + src: url('/assets/fonts/ibm-plex-mono-v19-latin-italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */ } /* ibm-plex-mono-600 - latin */ @@ -26,7 +27,7 @@ font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 600; - src: url('/fonts/ibm-plex-mono-v19-latin-600.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */ + src: url('/assets/fonts/ibm-plex-mono-v19-latin-600.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */ } /* ibm-plex-mono-600italic - latin */ @@ -35,7 +36,7 @@ font-family: 'IBM Plex Mono'; font-style: italic; font-weight: 600; - src: url('/fonts/ibm-plex-mono-v19-latin-600italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */ + src: url('/assets/fonts/ibm-plex-mono-v19-latin-600italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */ } /* literata-200 - latin */ @@ -44,7 +45,7 @@ font-family: 'Literata'; font-style: normal; font-weight: 200; - src: url('/fonts/literata-v35-latin-200.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */ + src: url('/assets/fonts/literata-v35-latin-200.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */ } /* literata-regular - latin */ @@ -53,7 +54,7 @@ font-family: 'Literata'; font-style: normal; font-weight: 400; - src: url('/fonts/literata-v35-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */ + src: url('/assets/fonts/literata-v35-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */ } /* literata-600 - latin */ @@ -62,7 +63,7 @@ font-family: 'Literata'; font-style: normal; font-weight: 600; - src: url('/fonts/literata-v35-latin-600.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */ + src: url('/assets/fonts/literata-v35-latin-600.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */ } /* literata-800 - latin */ @@ -71,11 +72,11 @@ font-family: 'Literata'; font-style: normal; font-weight: 800; - src: url('/fonts/literata-v35-latin-800.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */ + src: url('/assets/fonts/literata-v35-latin-800.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */ } body { - @apply font-body text-zinc-900; + @apply font-body; } code * { @@ -91,9 +92,41 @@ h3 code { h1, h2, h3 { - @apply font-body font-semibold text-lt-title dark:text-dk-title; + @apply font-body; +} + +#note-container { + @apply w-11/12 md:w-[1100px] mx-auto; +} + +#note-content h1, +#note-content h2, +#note-content h3 { + @apply font-semibold py-4; +} + +#note-content h1 { + @apply text-3xl; +} + +#note-content h2 { + @apply text-2xl; +} + +#note-content h3 { + @apply text-xl; +} + +#note-content code { + @apply my-2 p-1 text-sm bg-slate-800 text-white; + @apply border rounded-md text-sm; +} + +#note-content p, span { + @apply py-2; } -.max-width { - @apply w-full md:max-w-[1100px]; +#note-content .hljs { + @apply p-4; + @apply border rounded-md; } diff --git a/crates/www/src/bin/main.rs b/crates/www/src/bin/main.rs new file mode 100644 index 00000000..d51e9bfa --- /dev/null +++ b/crates/www/src/bin/main.rs @@ -0,0 +1,11 @@ +use leptos::{mount_to_body, view}; + +use app::App; + +fn main() { + mount_to_body(|| { + view! { + + } + }) +} diff --git a/crates/www/src/lib.rs b/crates/www/src/lib.rs new file mode 100644 index 00000000..46d4308b --- /dev/null +++ b/crates/www/src/lib.rs @@ -0,0 +1,26 @@ +mod routes; + +use leptos::{component, view, IntoView}; +use leptos_meta::provide_meta_context; +use leptos_router::{Route, Router, Routes}; + +use self::routes::home::Home; +use self::routes::notes::slug::Note; +use self::routes::notes::Notes; + +// const POST: &str = include_str!("../assets/notes/deploy-rust-to-fly-io.md"); + +#[component] +pub fn App() -> impl IntoView { + provide_meta_context(); + + view! { + + + + + + + + } +} diff --git a/crates/www/src/routes/home.rs b/crates/www/src/routes/home.rs new file mode 100644 index 00000000..a2e15133 --- /dev/null +++ b/crates/www/src/routes/home.rs @@ -0,0 +1,8 @@ +use leptos::{component, view, IntoView}; + +#[component] +pub fn Home() -> impl IntoView { + view! { +

"Hello World"

+ } +} diff --git a/crates/www/src/routes/mod.rs b/crates/www/src/routes/mod.rs new file mode 100644 index 00000000..5b90cc98 --- /dev/null +++ b/crates/www/src/routes/mod.rs @@ -0,0 +1,2 @@ +pub mod home; +pub mod notes; diff --git a/crates/www/src/routes/notes/mod.rs b/crates/www/src/routes/notes/mod.rs new file mode 100644 index 00000000..446b3f69 --- /dev/null +++ b/crates/www/src/routes/notes/mod.rs @@ -0,0 +1,10 @@ +pub mod slug; + +use leptos::{component, view, IntoView}; + +#[component] +pub fn Notes() -> impl IntoView { + view! { +

"Notes"

+ } +} diff --git a/crates/www/src/routes/notes/slug.rs b/crates/www/src/routes/notes/slug.rs new file mode 100644 index 00000000..3f342e2d --- /dev/null +++ b/crates/www/src/routes/notes/slug.rs @@ -0,0 +1,115 @@ +use leptos::{ + component, create_render_effect, create_rw_signal, spawn_local, view, IntoView, SignalGet, + SignalGetUntracked, SignalSet, +}; +use leptos_meta::Title; +use leptos_router::use_route; +use markdown::{Constructs, Options, ParseOptions}; +use reqwest::get; +use serde::Deserialize; +use wasm_bindgen::prelude::wasm_bindgen; +use yaml_front_matter::YamlFrontMatter; + +#[derive(Clone, Deserialize)] +struct Metadata { + title: String, + description: String, + date: String, + preview_image_url: String, +} + +#[wasm_bindgen] +extern "C" { + #[wasm_bindgen(js_name = highlightAll, js_namespace = hljs)] + fn highlight_all(); +} + +#[component] +pub fn Note() -> impl IntoView { + let metadata = create_rw_signal::>(None); + let note_md = create_rw_signal::>(None); + + create_render_effect(move |_| { + let route = use_route(); + + spawn_local(async move { + // FIXME: Check slugs against list of notes + if let Some(slug) = route.params().get_untracked().get("slug") { + if slug.is_empty() { + return; + } + + let url = format!("http://127.0.0.1:8080/assets/notes/{slug}.md"); + + match get(url).await { + Ok(response) => { + if let Ok(text) = response.text().await { + if let Ok(document) = YamlFrontMatter::parse::(&text) { + metadata.set(Some(document.metadata)); + } + + if let Ok(md) = markdown::to_html_with_options( + &text, + &Options { + parse: ParseOptions { + constructs: Constructs { + frontmatter: true, + gfm_table: true, + ..Default::default() + }, + ..Default::default() + }, + ..Default::default() + }, + ) { + note_md.set(Some(md)); + } + + highlight_all(); + } else { + note_md.set(None); + } + } + Err(error) => { + note_md.set(Some(format!("Error: {}", error))); + } + } + } + }); + }); + + view! { + + <section id="note-container" class="pb-10"> + <article id="note-header"> + <figure class="py-4"> + <img src={move || metadata.get().map(|meta| meta.preview_image_url).unwrap_or_default()} /> + </figure> + <h1 class="text-3xl font-semibold pb-2">{move || metadata.get().map(|meta| meta.title).unwrap_or_default()}</h1> + <p>{{move || metadata.get().map(|meta| meta.description).unwrap_or_default()}}</p> + <time>{move || metadata.get().map(|meta| meta.date).unwrap_or_default()}</time> + </article> + <div id="note-content" inner_html={move || note_md.get().unwrap_or_default()}></div> + <div class="group grid grid-cols-[100px,auto] gap-4 border-t border-gray-400 pt-4"> + <figure class="grayscale group-hover:grayscale-0 rounded-full overflow-hidden flex justify-center items-center h-[100px] w-[100px]"> + <img src="/assets/images/whoami.jpg" alt="whoami" height="100" width="100" /> + </figure> + <article> + <h1 class="text-lg">"Esteban Borai"</h1> + <div class="text-sm space-y-2"> + <p> + "Hi there! I'm a "<u>"Rust Software Engineer"</u>" with 8 years of experience in Systems and Web Programming using Rust & TypeScript." + </p> + <p> + "I'm passionate about Open-Source and enjoy reading books, working out & playing videogames." + </p> + <p>"I've had the opportunity to work with companies like InfinyOn, GOintegro & Teleperformance."</p> + </div> + </article> + </div> + </section> + } +} diff --git a/crates/www/tailwind.config.js b/crates/www/tailwind.config.js new file mode 100644 index 00000000..9f3fb025 --- /dev/null +++ b/crates/www/tailwind.config.js @@ -0,0 +1,13 @@ +/** @type {import('tailwindcss').Config} */ +export default { + content: ['./src/**/*.rs'], + theme: { + extend: { + fontFamily: { + body: ['Literata', 'serif'], + mono: ['IBM Plex Mono', 'monospace'], + }, + } + }, + plugins: [] +}; diff --git a/package.json b/package.json deleted file mode 100644 index 319fcb0c..00000000 --- a/package.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "estebanborai.com", - "version": "0.4.10", - "scripts": { - "dev": "vite dev", - "build": "vite build", - "check": "svelte-check --tsconfig ./tsconfig.json", - "check:watch": "svelte-check --tsconfig ./tsconfig.json --watch", - "format": "prettier --ignore-path .gitignore --write --plugin-search-dir=. .", - "i18n": "typesafe-i18n --no-watch", - "i18n:watch": "typesafe-i18n", - "lint": "prettier --ignore-path .gitignore --check --plugin-search-dir=. . && eslint --ignore-path .gitignore .", - "package": "vite package", - "preview": "vite preview" - }, - "type": "module", - "devDependencies": { - "@sentry/browser": "^7.56.0", - "@sentry/tracing": "^7.56.0", - "@sveltejs/adapter-cloudflare": "^2.3.0", - "@sveltejs/kit": "^1.20.4", - "@tailwindcss/forms": "^0.5.3", - "@tailwindcss/line-clamp": "^0.4.4", - "@tailwindcss/typography": "^0.5.9", - "@types/remarkable": "^2.0.3", - "@typescript-eslint/eslint-plugin": "^5.60.0", - "@typescript-eslint/parser": "^5.60.0", - "autoprefixer": "^10.4.14", - "eslint": "^8.43.0", - "eslint-config-prettier": "^8.8.0", - "eslint-plugin-svelte3": "^4.0.0", - "highlight.js": "^11.8.0", - "mdsvex": "^0.10.6", - "postcss": "^8.4.24", - "prettier": "^2.8.8", - "prettier-plugin-svelte": "^2.10.1", - "remarkable": "^2.0.1", - "svelte": "^3.59.2", - "svelte-check": "^3.4.4", - "svelte-preprocess": "^5.0.4", - "tailwindcss": "^3.3.2", - "tslib": "^2.5.3", - "typesafe-i18n": "^5.24.3", - "typescript": "^5.1.3", - "unplugin-icons": "^0.17.0", - "vite": "^4.3.9" - }, - "dependencies": { - "@fontsource/inter": "^5.0.8" - } -} diff --git a/postcss.config.cjs b/postcss.config.cjs deleted file mode 100644 index 12a703d9..00000000 --- a/postcss.config.cjs +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - plugins: { - tailwindcss: {}, - autoprefixer: {}, - }, -}; diff --git a/src/app.d.ts b/src/app.d.ts deleted file mode 100644 index 7ba42914..00000000 --- a/src/app.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -/// <reference types="@sveltejs/kit" /> - -/** - * Timestamp Generated during building date - */ -declare const __BUILD_DATE__: string; - -/** - * Current Commit SHA - */ -declare const __COMMIT_SHA__: string; - -/** - * Current Git Tag Version - */ -declare const __VERSION__: string; diff --git a/src/app.html b/src/app.html deleted file mode 100644 index cf7b42d6..00000000 --- a/src/app.html +++ /dev/null @@ -1,14 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> - <head> - <meta charset="utf-8" /> - <meta name="description" content="" /> - <link rel="icon" href="/favicon.png" /> - <link rel="manifest" crossorigin="use-credentials" href="/manifest.json" /> - <meta name="viewport" content="width=device-width, initial-scale=1" /> - %sveltekit.head% - </head> - <body class="bg-lt-base text-lt-text dark:bg-dk-base dark:text-dk-text"> - <div id="svelte">%sveltekit.body%</div> - </body> -</html> diff --git a/src/hooks.server.ts b/src/hooks.server.ts deleted file mode 100644 index fa82c498..00000000 --- a/src/hooks.server.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { detectLocale, i18n, isLocale } from '$i18n/i18n-util'; -import { loadAllLocales } from '$i18n/i18n-util.sync'; -import type { Handle, RequestEvent } from '@sveltejs/kit'; -import { sequence } from '@sveltejs/kit/hooks'; -import { initAcceptLanguageHeaderDetector } from 'typesafe-i18n/detectors'; - -loadAllLocales(); -const L = i18n(); - -export const i18nHandle: Handle = async ({ event, resolve }) => { - // read language slug - const [, lang] = event.url.pathname.split('/'); - - // redirect to base locale if no locale slug was found - if (!lang) { - const locale = getPreferredLocale(event); - - return new Response(null, { - status: 302, - headers: { Location: `/${locale}` }, - }); - } - - // if slug is not a locale, use base locale (e.g. api endpoints) - const locale = isLocale(lang) ? (lang as Locales) : getPreferredLocale(event); - const LL = L[locale]; - - // bind locale and translation functions to current request - event.locals.locale = locale; - event.locals.LL = LL; - - // replace html lang attribute with correct language - return resolve(event, { - transformPageChunk: ({ html }) => html.replace('%lang%', locale), - }); -}; - -const getPreferredLocale = ({ request }: RequestEvent) => { - // detect the preferred language the user has configured in his browser - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language - const acceptLanguageDetector = initAcceptLanguageHeaderDetector(request); - - return detectLocale(acceptLanguageDetector); -}; - -export const metaHandle: Handle = async ({ event, resolve }) => { - const lang = 'es-419'; - const defaultTheme = 'dark'; - - return await resolve(event, { - transformPageChunk({ done, html }) { - //Only do it at the very end of the rendering process - if (done) { - return html.replace('%lang%', lang).replace('%theme%', defaultTheme); - } - }, - }); -}; - -export const handle = sequence(metaHandle, i18nHandle); diff --git a/src/i18n/en/index.ts b/src/i18n/en/index.ts deleted file mode 100644 index 17a61bab..00000000 --- a/src/i18n/en/index.ts +++ /dev/null @@ -1,23 +0,0 @@ -import type { BaseTranslation } from '../i18n-types'; - -const en = { - LAYOUT: { - NAV: { - HOME: 'Home', - NOTES: 'Notes', - BOOKMARKS: 'Bookmarks', - }, - FOOTER: { - COPYRGHT: `Made with 🧉 and ❤️ by Esteban Borai © {start:number} - {end:number}`, - SOURCE_CODE: 'Source Code', - }, - }, - HOMEPAGE: { - HI: `Hey, I'm <span class="font-semibold">{name:string} {surname:string}</span>,`, - ABOUT: `Software Developer with Web & Systems Experience`, - SOCIAL_LINKS: 'Social Networks', - LATEST_NOTES: 'Latest Note', - }, -} satisfies BaseTranslation; - -export default en; diff --git a/src/i18n/es/index.ts b/src/i18n/es/index.ts deleted file mode 100644 index 5c6adcdd..00000000 --- a/src/i18n/es/index.ts +++ /dev/null @@ -1,23 +0,0 @@ -import type { BaseTranslation } from '../i18n-types'; - -const es = { - LAYOUT: { - NAV: { - HOME: 'Inicio', - NOTES: 'Notas', - BOOKMARKS: 'Marcadores', - }, - FOOTER: { - COPYRGHT: `Hecho con 🧉 y ❤️ por Esteban Borai © {start:number} - {end:number}`, - SOURCE_CODE: 'Código Fuente', - }, - }, - HOMEPAGE: { - HI: `Hola soy {name:string} {surname:string},`, - ABOUT: `Desarrollador de Software con experiencia en Web y Desarrollo de Sistemas`, - SOCIAL_LINKS: 'Redes Sociales', - LATEST_NOTES: 'Nota más reciente', - }, -} satisfies BaseTranslation; - -export default es; diff --git a/src/i18n/formatters.ts b/src/i18n/formatters.ts deleted file mode 100644 index ab4d42fd..00000000 --- a/src/i18n/formatters.ts +++ /dev/null @@ -1,12 +0,0 @@ -import type { FormattersInitializer } from 'typesafe-i18n'; -import type { Locales, Formatters } from './i18n-types'; - -export const initFormatters: FormattersInitializer<Locales, Formatters> = ( - locale: Locales, -) => { - const formatters: Formatters = { - // add your formatter functions here - }; - - return formatters; -}; diff --git a/src/i18n/hu/index.ts b/src/i18n/hu/index.ts deleted file mode 100644 index b13a498c..00000000 --- a/src/i18n/hu/index.ts +++ /dev/null @@ -1,23 +0,0 @@ -import type { BaseTranslation } from '../i18n-types'; - -const hu = { - LAYOUT: { - NAV: { - HOME: 'Főoldal', - NOTES: 'Jegyzet', - BOOKMARKS: 'Könyvjelző', - }, - FOOTER: { - COPYRGHT: `Készült 🧉 és ❤️ írta Esteban Borai © {start:number} - {end:number}`, - SOURCE_CODE: 'Forráskód', - }, - }, - HOMEPAGE: { - HI: 'Jó napot kívánok {surname:string} {name:string} vagyok,', - ABOUT: `Szoftvermérnök webes és rendszertapasztalattal`, - SOCIAL_LINKS: 'Közösségi hálók', - LATEST_NOTES: 'Legújabb jegyzet', - }, -} satisfies BaseTranslation; - -export default hu; diff --git a/src/i18n/i18n-svelte.ts b/src/i18n/i18n-svelte.ts deleted file mode 100644 index bbc52ae5..00000000 --- a/src/i18n/i18n-svelte.ts +++ /dev/null @@ -1,22 +0,0 @@ -// This file was auto-generated by 'typesafe-i18n'. Any manual changes will be overwritten. -/* eslint-disable */ - -import { initI18nSvelte } from 'typesafe-i18n/svelte'; -import type { - Formatters, - Locales, - TranslationFunctions, - Translations, -} from './i18n-types'; -import { loadedFormatters, loadedLocales } from './i18n-util'; - -const { locale, LL, setLocale } = initI18nSvelte< - Locales, - Translations, - TranslationFunctions, - Formatters ->(loadedLocales, loadedFormatters); - -export { locale, LL, setLocale }; - -export default LL; diff --git a/src/i18n/i18n-types.ts b/src/i18n/i18n-types.ts deleted file mode 100644 index ff96a184..00000000 --- a/src/i18n/i18n-types.ts +++ /dev/null @@ -1,116 +0,0 @@ -// This file was auto-generated by 'typesafe-i18n'. Any manual changes will be overwritten. -/* eslint-disable */ -import type { - BaseTranslation as BaseTranslationType, - LocalizedString, - RequiredParams, -} from 'typesafe-i18n'; - -export type BaseTranslation = BaseTranslationType; -export type BaseLocale = 'en'; - -export type Locales = 'en' | 'es' | 'hu'; - -export type Translation = RootTranslation; - -export type Translations = RootTranslation; - -type RootTranslation = { - LAYOUT: { - NAV: { - /** - * H​o​m​e - */ - HOME: string; - /** - * N​o​t​e​s - */ - NOTES: string; - /** - * B​o​o​k​m​a​r​k​s - */ - BOOKMARKS: string; - }; - FOOTER: { - /** - * M​a​d​e​ ​w​i​t​h​ ​�​�​ ​a​n​d​ ​❤​️​ ​b​y​ ​E​s​t​e​b​a​n​ ​B​o​r​a​i​ ​©​ ​{​s​t​a​r​t​}​ ​-​ ​{​e​n​d​} - * @param {number} end - * @param {number} start - */ - COPYRGHT: RequiredParams<'end' | 'start'>; - /** - * S​o​u​r​c​e​ ​C​o​d​e - */ - SOURCE_CODE: string; - }; - }; - HOMEPAGE: { - /** - * H​e​y​,​ ​I​'​m​ ​<​s​p​a​n​ ​c​l​a​s​s​=​"​f​o​n​t​-​s​e​m​i​b​o​l​d​"​>​{​n​a​m​e​}​ ​{​s​u​r​n​a​m​e​}​<​/​s​p​a​n​>​, - * @param {string} name - * @param {string} surname - */ - HI: RequiredParams<'name' | 'surname'>; - /** - * S​o​f​t​w​a​r​e​ ​D​e​v​e​l​o​p​e​r​ ​w​i​t​h​ ​W​e​b​ ​&​ ​S​y​s​t​e​m​s​ ​E​x​p​e​r​i​e​n​c​e - */ - ABOUT: string; - /** - * S​o​c​i​a​l​ ​N​e​t​w​o​r​k​s - */ - SOCIAL_LINKS: string; - /** - * L​a​t​e​s​t​ ​N​o​t​e - */ - LATEST_NOTES: string; - }; -}; - -export type TranslationFunctions = { - LAYOUT: { - NAV: { - /** - * Home - */ - HOME: () => LocalizedString; - /** - * Notes - */ - NOTES: () => LocalizedString; - /** - * Bookmarks - */ - BOOKMARKS: () => LocalizedString; - }; - FOOTER: { - /** - * Made with 🧉 and ❤️ by Esteban Borai © {start} - {end} - */ - COPYRGHT: (arg: { end: number; start: number }) => LocalizedString; - /** - * Source Code - */ - SOURCE_CODE: () => LocalizedString; - }; - }; - HOMEPAGE: { - /** - * Hey, I'm <span class="font-semibold">{name} {surname}</span>, - */ - HI: (arg: { name: string; surname: string }) => LocalizedString; - /** - * Software Developer with Web & Systems Experience - */ - ABOUT: () => LocalizedString; - /** - * Social Networks - */ - SOCIAL_LINKS: () => LocalizedString; - /** - * Latest Note - */ - LATEST_NOTES: () => LocalizedString; - }; -}; - -export type Formatters = {}; diff --git a/src/i18n/i18n-util.async.ts b/src/i18n/i18n-util.async.ts deleted file mode 100644 index 6a9fb94d..00000000 --- a/src/i18n/i18n-util.async.ts +++ /dev/null @@ -1,34 +0,0 @@ -// This file was auto-generated by 'typesafe-i18n'. Any manual changes will be overwritten. -/* eslint-disable */ - -import { initFormatters } from './formatters'; -import type { Locales, Translations } from './i18n-types'; -import { loadedFormatters, loadedLocales, locales } from './i18n-util'; - -const localeTranslationLoaders = { - en: () => import('./en'), - es: () => import('./es'), - hu: () => import('./hu'), -}; - -const updateDictionary = ( - locale: Locales, - dictionary: Partial<Translations>, -): Translations => - (loadedLocales[locale] = { ...loadedLocales[locale], ...dictionary }); - -export const importLocaleAsync = async ( - locale: Locales, -): Promise<Translations> => - (await localeTranslationLoaders[locale]()).default as unknown as Translations; - -export const loadLocaleAsync = async (locale: Locales): Promise<void> => { - updateDictionary(locale, await importLocaleAsync(locale)); - loadFormatters(locale); -}; - -export const loadAllLocalesAsync = (): Promise<void[]> => - Promise.all(locales.map(loadLocaleAsync)); - -export const loadFormatters = (locale: Locales): void => - void (loadedFormatters[locale] = initFormatters(locale)); diff --git a/src/i18n/i18n-util.sync.ts b/src/i18n/i18n-util.sync.ts deleted file mode 100644 index 2be6db97..00000000 --- a/src/i18n/i18n-util.sync.ts +++ /dev/null @@ -1,28 +0,0 @@ -// This file was auto-generated by 'typesafe-i18n'. Any manual changes will be overwritten. -/* eslint-disable */ - -import { initFormatters } from './formatters'; -import type { Locales, Translations } from './i18n-types'; -import { loadedFormatters, loadedLocales, locales } from './i18n-util'; - -import en from './en'; -import es from './es'; -import hu from './hu'; - -const localeTranslations = { - en, - es, - hu, -}; - -export const loadLocale = (locale: Locales): void => { - if (loadedLocales[locale]) return; - - loadedLocales[locale] = localeTranslations[locale] as unknown as Translations; - loadFormatters(locale); -}; - -export const loadAllLocales = (): void => locales.forEach(loadLocale); - -export const loadFormatters = (locale: Locales): void => - void (loadedFormatters[locale] = initFormatters(locale)); diff --git a/src/i18n/i18n-util.ts b/src/i18n/i18n-util.ts deleted file mode 100644 index a302a501..00000000 --- a/src/i18n/i18n-util.ts +++ /dev/null @@ -1,63 +0,0 @@ -// This file was auto-generated by 'typesafe-i18n'. Any manual changes will be overwritten. -/* eslint-disable */ - -import { - i18n as initI18n, - i18nObject as initI18nObject, - i18nString as initI18nString, -} from 'typesafe-i18n'; -import type { LocaleDetector } from 'typesafe-i18n/detectors'; -import type { - LocaleTranslationFunctions, - TranslateByString, -} from 'typesafe-i18n'; -import { detectLocale as detectLocaleFn } from 'typesafe-i18n/detectors'; -import { initExtendDictionary } from 'typesafe-i18n/utils'; -import type { - Formatters, - Locales, - Translations, - TranslationFunctions, -} from './i18n-types'; - -export const baseLocale: Locales = 'en'; - -export const locales: Locales[] = ['en', 'es', 'hu']; - -export const isLocale = (locale: string): locale is Locales => - locales.includes(locale as Locales); - -export const loadedLocales: Record<Locales, Translations> = {} as Record< - Locales, - Translations ->; - -export const loadedFormatters: Record<Locales, Formatters> = {} as Record< - Locales, - Formatters ->; - -export const extendDictionary = initExtendDictionary<Translations>(); - -export const i18nString = (locale: Locales): TranslateByString => - initI18nString<Locales, Formatters>(locale, loadedFormatters[locale]); - -export const i18nObject = (locale: Locales): TranslationFunctions => - initI18nObject<Locales, Translations, TranslationFunctions, Formatters>( - locale, - loadedLocales[locale], - loadedFormatters[locale], - ); - -export const i18n = (): LocaleTranslationFunctions< - Locales, - Translations, - TranslationFunctions -> => - initI18n<Locales, Translations, TranslationFunctions, Formatters>( - loadedLocales, - loadedFormatters, - ); - -export const detectLocale = (...detectors: LocaleDetector[]): Locales => - detectLocaleFn<Locales>(baseLocale, locales, ...detectors); diff --git a/src/lib/components/Button.svelte b/src/lib/components/Button.svelte deleted file mode 100644 index 1f0c32d3..00000000 --- a/src/lib/components/Button.svelte +++ /dev/null @@ -1,13 +0,0 @@ -<script lang="ts"> - export let title: string; - export let disabled: boolean; -</script> - -<button - class="cursor-pointer inline-block text-center bg-blue-600 rounded-full text-sm py-1 px-4" - type="button" - {disabled} - on:click -> - <span class="text-white">{title}</span> -</button> diff --git a/src/lib/components/Footer.svelte b/src/lib/components/Footer.svelte deleted file mode 100644 index c1f2bad4..00000000 --- a/src/lib/components/Footer.svelte +++ /dev/null @@ -1,158 +0,0 @@ -<script lang="ts"> - import { onMount } from 'svelte'; - - import LL, { setLocale, locale } from '$i18n/i18n-svelte'; - import Home from '~icons/custom/home'; - import Repo from '~icons/custom/repo'; - import { page } from '$app/stores'; - import GitHub from '$lib/components/icons/GitHub.svelte'; - import LinkedIn from '$lib/components/icons/LinkedIn.svelte'; - import StackOverflow from '$lib/components/icons/StackOverflow.svelte'; - import Mastodon from '$lib/components/icons/Mastodon.svelte'; - import Reddit from '$lib/components/icons/Reddit.svelte'; - import { replaceLocaleInUrl } from '$lib/utils/locale'; - - import type { Locales } from '$i18n/i18n-types'; - - const LINKS = [ - { - icon: Repo, - href: `/${$page.params.lang}/notes`, - text: $LL.LAYOUT.NAV.NOTES(), - }, - { - icon: Repo, - href: `/${$page.params.lang}/bookmarks`, - text: $LL.LAYOUT.NAV.BOOKMARKS(), - }, - ]; - - const LANGS: { - text: string; - locale: Locales; - }[] = [ - { - text: 'Español', - locale: 'es', - }, - { - text: 'English', - locale: 'en', - }, - { - text: 'Magyar', - locale: 'hu', - }, - ]; - - let currentTheme: 'dark' | 'light' = 'light'; - - onMount(() => { - currentTheme = - localStorage.theme === 'dark' || - (!('theme' in localStorage) && - window.matchMedia('(prefers-color-scheme: dark)').matches) - ? 'dark' - : 'light'; - - if (currentTheme === 'dark') { - document.documentElement.classList.add('dark'); - localStorage.theme = 'dark'; - } else { - document.documentElement.classList.remove('dark'); - localStorage.theme = 'light'; - } - }); - - function changeTheme(theme: 'light' | 'dark'): void { - const removeClass = theme === 'light' ? 'dark' : 'light'; - - document.documentElement.classList.remove(removeClass); - document.documentElement.classList.add(theme); - localStorage.theme = theme; - } - - function changeLanguage(locale: Locales): void { - const lang = $page.params.lang; - - if (lang === locale) { - return; - } - - const next = replaceLocaleInUrl($page.url, locale); - setLocale(locale); - window.location.href = next; - } - - const handleLanguageChange = (ev: Event) => { - const lang = (ev.target as unknown as { value: string }).value as Locales; - changeLanguage(lang); - }; - - const handleThemeChange = (ev: Event) => { - const theme = (ev.target as unknown as { value: string }).value as - | 'dark' - | 'light'; - changeTheme(theme); - }; -</script> - -<footer - class="text-sm flex flex-col border-t py-6 px-4 border-lt-alte dark:border-dk-alte" -> - <div class="flex flex-col md:grid md:grid-cols-12"> - <article class="md:col-start-2 md:col-span-3"> - <h4 class="uppercase text-xs">{$LL.HOMEPAGE.SOCIAL_LINKS()}</h4> - <ul class="flex flex-col justify-evenly py-4 space-y-2 text-xs"> - <li class="hover:text-zinc-900 text-zinc-600"> - <a - class="flex items-center" - rel="noopener noreferrer" - href="https://www.github.com/estebanborai" - target="_blank" - > - <GitHub class="w-6 h-6" /> - <span class="pl-2"> GitHub </span> - </a> - </li> - <li class="hover:text-zinc-900 text-zinc-600"> - <a - class="flex items-center" - rel="noopener noreferrer" - href="https://www.reddit.com/user/estebanborai" - target="_blank" - > - <Reddit class="w-6 h-6" /> - <span class="pl-2"> Reddit </span> - </a> - </li> - </ul> - </article> - <article class="md:col-start-6 md:col-span-3"> - <h4 class="uppercase text-xs">SiteMap</h4> - <ul class="flex flex-col justify-evenly py-4 text-xs"> - <li class="mr-4"> - <a href="/{$page.params.lang}/notes"> - {$LL.LAYOUT.NAV.NOTES()} - </a> - </li> - <li class="mr-4"> - <a href="/{$page.params.lang}/bookmarks"> - {$LL.LAYOUT.NAV.BOOKMARKS()} - </a> - </li> - </ul> - </article> - </div> - <small class="block text-center text-xs" - >{$LL.LAYOUT.FOOTER.COPYRGHT({ - start: 2017, - end: new Date().getFullYear(), - })}</small - > - <a - class="block text-center text-xs pt-2" - href="https://github.com/EstebanBorai/estebanborai.com" - target="_blank">{$LL.LAYOUT.FOOTER.SOURCE_CODE()}</a - > -</footer> diff --git a/src/lib/components/Header.svelte b/src/lib/components/Header.svelte deleted file mode 100644 index 50779283..00000000 --- a/src/lib/components/Header.svelte +++ /dev/null @@ -1,114 +0,0 @@ -<script lang="ts"> - import { onMount } from 'svelte'; - - import { page } from '$app/stores'; - import LL, { setLocale, locale } from '$i18n/i18n-svelte'; - import { replaceLocaleInUrl } from '$lib/utils/locale'; - - import type { Locales } from '$i18n/i18n-types'; - - const LANGS: { - text: string; - locale: Locales; - }[] = [ - { - text: 'Español', - locale: 'es', - }, - { - text: 'English', - locale: 'en', - }, - { - text: 'Magyar', - locale: 'hu', - }, - ]; - - let currentTheme: 'dark' | 'light' = 'light'; - - onMount(() => { - currentTheme = - localStorage.theme === 'dark' || - (!('theme' in localStorage) && - window.matchMedia('(prefers-color-scheme: dark)').matches) - ? 'dark' - : 'light'; - - if (currentTheme === 'dark') { - document.documentElement.classList.add('dark'); - localStorage.theme = 'dark'; - } else { - document.documentElement.classList.remove('dark'); - localStorage.theme = 'light'; - } - }); - - function changeTheme(theme: 'light' | 'dark'): void { - const removeClass = theme === 'light' ? 'dark' : 'light'; - - document.documentElement.classList.remove(removeClass); - document.documentElement.classList.add(theme); - localStorage.theme = theme; - } - - function changeLanguage(locale: Locales): void { - const lang = $page.params.lang; - - if (lang === locale) { - return; - } - - const next = replaceLocaleInUrl($page.url, locale); - setLocale(locale); - window.location.href = next; - } - - const handleLanguageChange = (ev: Event) => { - const lang = (ev.target as unknown as { value: string }).value as Locales; - changeLanguage(lang); - }; - - const handleThemeChange = (ev: Event) => { - const theme = (ev.target as unknown as { value: string }).value as - | 'dark' - | 'light'; - changeTheme(theme); - }; -</script> - -<header class="border-b border-lt-alte dark:border-dk-alte"> - <div - class="mx-auto text-sm flex justify-between items-center py-2 px-4 max-width" - > - <div class="flex justify-between items-center"> - <a href="/{$page.params.lang}"> - <h1 class="m-0 p-0">Esteban Borai</h1> - </a> - <nav class="hidden md:flex justify-center items-center px-4 md:space-x-2"> - <a href="/{$page.params.lang}/notes"> - {$LL.LAYOUT.NAV.NOTES()} - </a> - <a href="/{$page.params.lang}/bookmarks"> - {$LL.LAYOUT.NAV.BOOKMARKS()} - </a> - </nav> - </div> - <div class="hidden md:flex items-center justify-center"> - <select class="text-sm" value={$locale} on:change={handleLanguageChange}> - {#each LANGS as { text, locale }} - <option value={locale}>{text}</option> - {/each} - </select> - <select - class="text-sm" - value={currentTheme} - on:change={handleThemeChange} - > - <option value="dark">Dark</option> - <option value="light">Light</option> - </select> - </div> - <button class="flex md:hidden"> M </button> - </div> -</header> diff --git a/src/lib/components/Sidebar.svelte b/src/lib/components/Sidebar.svelte deleted file mode 100644 index d85a9f6e..00000000 --- a/src/lib/components/Sidebar.svelte +++ /dev/null @@ -1,135 +0,0 @@ -<script lang="ts"> - import { onMount } from 'svelte'; - - import LL, { setLocale, locale } from '$i18n/i18n-svelte'; - import Home from '~icons/custom/home'; - import Repo from '~icons/custom/repo'; - import { page } from '$app/stores'; - import GitHub from '$lib/components/icons/GitHub.svelte'; - import LinkedIn from '$lib/components/icons/LinkedIn.svelte'; - import StackOverflow from '$lib/components/icons/StackOverflow.svelte'; - import Mastodon from '$lib/components/icons/Mastodon.svelte'; - import Reddit from '$lib/components/icons/Reddit.svelte'; - import { replaceLocaleInUrl } from '$lib/utils/locale'; - - import type { Locales } from '$i18n/i18n-types'; - - const LINKS = [ - { - icon: Repo, - href: `/${$page.params.lang}/notes`, - text: $LL.LAYOUT.NAV.NOTES(), - }, - { - icon: Repo, - href: `/${$page.params.lang}/bookmarks`, - text: $LL.LAYOUT.NAV.BOOKMARKS(), - }, - ]; - - const LANGS: { - text: string; - locale: Locales; - }[] = [ - { - text: 'Español', - locale: 'es', - }, - { - text: 'English', - locale: 'en', - }, - { - text: 'Magyar', - locale: 'hu', - }, - ]; - - let currentTheme: 'dark' | 'light' = 'light'; - - onMount(() => { - currentTheme = - localStorage.theme === 'dark' || - (!('theme' in localStorage) && - window.matchMedia('(prefers-color-scheme: dark)').matches) - ? 'dark' - : 'light'; - - if (currentTheme === 'dark') { - document.documentElement.classList.add('dark'); - localStorage.theme = 'dark'; - } else { - document.documentElement.classList.remove('dark'); - localStorage.theme = 'light'; - } - }); - - function changeTheme(theme: 'light' | 'dark'): void { - const removeClass = theme === 'light' ? 'dark' : 'light'; - - document.documentElement.classList.remove(removeClass); - document.documentElement.classList.add(theme); - localStorage.theme = theme; - } - - function changeLanguage(locale: Locales): void { - const lang = $page.params.lang; - - if (lang === locale) { - return; - } - - const next = replaceLocaleInUrl($page.url, locale); - setLocale(locale); - window.location.href = next; - } - - const handleLanguageChange = (ev: Event) => { - const lang = (ev.target as unknown as { value: string }).value as Locales; - changeLanguage(lang); - }; - - const handleThemeChange = (ev: Event) => { - const theme = (ev.target as unknown as { value: string }).value as - | 'dark' - | 'light'; - changeTheme(theme); - }; -</script> - -<aside - class="hidden md:flex bg-lt-base-alt dark:bg-dk-base-alt px-4 pt-8 flex-col justify-between" -> - <div> - <header class="flex flex-col justify-center items-center"> - <figure class="overflow-hidden h-[190px] w-[190px] rounded-full"> - <img - src="https://avatars.githubusercontent.com/u/34756077?v=4" - alt="Esteban Borai Profile" - height="190" - width="190" - /> - </figure> - <article class="flex flex-col justify-center items-center py-6"> - <h1 class="text-3xl font-semibold">Esteban Borai</h1> - <p class="text-gray-800 dark:text-gray-400 text-center py-2"> - {@html $LL.HOMEPAGE.ABOUT()} - </p> - </article> - </header> - <nav> - <ul class="flex flex-col space-y-2"> - {#each LINKS as { href, text, icon }} - <li class="py-2 px-4 bg-zinc-800 rounded-md"> - <a class="flex items-center justify-start" {href}> - <figure class="mr-2"> - <svelte:component this={icon} class="w-4 h-4" /> - </figure> - {text} - </a> - </li> - {/each} - </ul> - </nav> - </div> -</aside> diff --git a/src/lib/components/Tag.svelte b/src/lib/components/Tag.svelte deleted file mode 100644 index 0f731313..00000000 --- a/src/lib/components/Tag.svelte +++ /dev/null @@ -1,9 +0,0 @@ -<script lang="ts"> - export let title: string; -</script> - -<span - class="uppercase inline-block bg-lt-alte dark:bg-dk-alte rounded-md px-2 py-0.25 text-center" -> - <span class="text-xs">{title}</span> -</span> diff --git a/src/lib/components/icons/Calendar.svelte b/src/lib/components/icons/Calendar.svelte deleted file mode 100644 index d88d836a..00000000 --- a/src/lib/components/icons/Calendar.svelte +++ /dev/null @@ -1,15 +0,0 @@ -<script lang="ts"> - export let className: string | undefined; - export { className as class }; -</script> - -<svg - class={className} - fill="currentColor" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 16 16" -> - <path - d="M3.5 0a.5.5 0 0 1 .5.5V1h8V.5a.5.5 0 0 1 1 0V1h1a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2h1V.5a.5.5 0 0 1 .5-.5zM1 4v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V4H1z" - /> -</svg> diff --git a/src/lib/components/icons/GitHub.svelte b/src/lib/components/icons/GitHub.svelte deleted file mode 100644 index 892dc5a1..00000000 --- a/src/lib/components/icons/GitHub.svelte +++ /dev/null @@ -1,15 +0,0 @@ -<script lang="ts"> - export let className: string | undefined; - export { className as class }; -</script> - -<svg - class={className} - fill="currentColor" - viewBox="0 0 438.549 438.549" - xmlns="http://www.w3.org/2000/svg" - ><path - fill="currentColor" - d="M409.13 114.57c-19.608-33.596-46.205-60.194-79.798-79.8-33.598-19.607-70.277-29.408-110.06-29.408-39.781 0-76.472 9.804-110.06 29.408-33.596 19.605-60.192 46.204-79.8 79.8C9.807 148.165.004 184.851.004 224.63c0 47.78 13.94 90.745 41.827 128.91 27.884 38.164 63.906 64.572 108.06 79.227 5.14.954 8.945.283 11.419-1.996 2.475-2.282 3.711-5.14 3.711-8.562 0-.571-.049-5.708-.144-15.417a2549.81 2549.81 0 01-.144-25.406l-6.567 1.136c-4.187.767-9.469 1.092-15.846 1-6.374-.089-12.991-.757-19.842-1.999-6.854-1.231-13.229-4.086-19.13-8.559-5.898-4.473-10.085-10.328-12.56-17.556l-2.855-6.57c-1.903-4.374-4.899-9.233-8.992-14.559-4.093-5.331-8.232-8.945-12.419-10.848L64.523 322c-1.332-.951-2.568-2.098-3.711-3.429-1.142-1.331-1.997-2.663-2.568-3.997-.572-1.335-.098-2.43 1.427-3.289s4.281-1.276 8.28-1.276l5.708.853c3.807.763 8.516 3.042 14.133 6.851 5.614 3.806 10.229 8.754 13.846 14.842 4.38 7.806 9.657 13.754 15.846 17.847 6.184 4.093 12.419 6.136 18.699 6.136s11.704-.476 16.274-1.423c4.565-.952 8.848-2.383 12.847-4.285 1.713-12.758 6.377-22.559 13.988-29.41-10.848-1.14-20.601-2.857-29.264-5.14-8.658-2.286-17.605-5.996-26.835-11.14-9.235-5.137-16.896-11.516-22.985-19.126-6.09-7.614-11.088-17.61-14.987-29.979-3.901-12.374-5.852-26.648-5.852-42.826 0-23.035 7.52-42.637 22.557-58.817-7.044-17.318-6.379-36.732 1.997-58.24 5.52-1.715 13.706-.428 24.554 3.853 10.85 4.283 18.794 7.952 23.84 10.994 5.046 3.041 9.089 5.618 12.135 7.708 17.705-4.947 35.976-7.421 54.818-7.421s37.117 2.474 54.823 7.421l10.849-6.849c7.419-4.57 16.18-8.758 26.262-12.565 10.088-3.805 17.802-4.853 23.134-3.138 8.562 21.509 9.325 40.922 2.279 58.24 15.036 16.18 22.559 35.787 22.559 58.817 0 16.178-1.958 30.497-5.853 42.966-3.9 12.471-8.941 22.457-15.125 29.979-6.191 7.521-13.901 13.85-23.131 18.986-9.232 5.14-18.182 8.85-26.84 11.136-8.662 2.286-18.415 4.004-29.263 5.146 9.894 8.562 14.842 22.077 14.842 40.539v60.237c0 3.422 1.19 6.279 3.572 8.562 2.379 2.279 6.136 2.95 11.276 1.995 44.163-14.653 80.185-41.062 108.07-79.226 27.88-38.161 41.825-81.126 41.825-128.91-.01-39.771-9.818-76.454-29.414-110.05z" - /></svg -> diff --git a/src/lib/components/icons/Hourglass.svelte b/src/lib/components/icons/Hourglass.svelte deleted file mode 100644 index 5ab29873..00000000 --- a/src/lib/components/icons/Hourglass.svelte +++ /dev/null @@ -1,15 +0,0 @@ -<script lang="ts"> - export let className: string | undefined; - export { className as class }; -</script> - -<svg - class={className} - xmlns="http://www.w3.org/2000/svg" - fill="currentColor" - viewBox="0 0 16 16" -> - <path - d="M2.5 15a.5.5 0 1 1 0-1h1v-1a4.5 4.5 0 0 1 2.557-4.06c.29-.139.443-.377.443-.59v-.7c0-.213-.154-.451-.443-.59A4.5 4.5 0 0 1 3.5 3V2h-1a.5.5 0 0 1 0-1h11a.5.5 0 0 1 0 1h-1v1a4.5 4.5 0 0 1-2.557 4.06c-.29.139-.443.377-.443.59v.7c0 .213.154.451.443.59A4.5 4.5 0 0 1 12.5 13v1h1a.5.5 0 0 1 0 1h-11zm2-13v1c0 .537.12 1.045.337 1.5h6.326c.216-.455.337-.963.337-1.5V2h-7zm3 6.35c0 .701-.478 1.236-1.011 1.492A3.5 3.5 0 0 0 4.5 13s.866-1.299 3-1.48V8.35zm1 0v3.17c2.134.181 3 1.48 3 1.48a3.5 3.5 0 0 0-1.989-3.158C8.978 9.586 8.5 9.052 8.5 8.351z" - /> -</svg> diff --git a/src/lib/components/icons/Itchio.svelte b/src/lib/components/icons/Itchio.svelte deleted file mode 100644 index 3dcb23b2..00000000 --- a/src/lib/components/icons/Itchio.svelte +++ /dev/null @@ -1,14 +0,0 @@ -<script lang="ts"> - export let className: string | undefined; - export { className as class }; -</script> - -<svg - class={className} - fill="currentColor" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 245.371 220.736" - ><path - d="M31.99 1.365C21.287 7.72.2 31.945 0 38.298v10.516C0 62.144 12.46 73.86 23.773 73.86c13.584 0 24.902-11.258 24.903-24.62 0 13.362 10.93 24.62 24.515 24.62 13.586 0 24.165-11.258 24.165-24.62 0 13.362 11.622 24.62 25.207 24.62h.246c13.586 0 25.208-11.258 25.208-24.62 0 13.362 10.58 24.62 24.164 24.62 13.585 0 24.515-11.258 24.515-24.62 0 13.362 11.32 24.62 24.903 24.62 11.313 0 23.773-11.714 23.773-25.046V38.298c-.2-6.354-21.287-30.58-31.988-36.933C180.118.197 157.056-.005 122.685 0c-34.37.003-81.228.54-90.697 1.365zm65.194 66.217a28.025 28.025 0 0 1-4.78 6.155c-5.128 5.014-12.157 8.122-19.906 8.122a28.482 28.482 0 0 1-19.948-8.126c-1.858-1.82-3.27-3.766-4.563-6.032l-.006.004c-1.292 2.27-3.092 4.215-4.954 6.037a28.5 28.5 0 0 1-19.948 8.12c-.934 0-1.906-.258-2.692-.528-1.092 11.372-1.553 22.24-1.716 30.164l-.002.045c-.02 4.024-.04 7.333-.06 11.93.21 23.86-2.363 77.334 10.52 90.473 19.964 4.655 56.7 6.775 93.555 6.788h.006c36.854-.013 73.59-2.133 93.554-6.788 12.883-13.14 10.31-66.614 10.52-90.474-.022-4.596-.04-7.905-.06-11.93l-.003-.045c-.162-7.926-.623-18.793-1.715-30.165-.786.27-1.757.528-2.692.528a28.5 28.5 0 0 1-19.948-8.12c-1.862-1.822-3.662-3.766-4.955-6.037l-.006-.004c-1.294 2.266-2.705 4.213-4.563 6.032a28.48 28.48 0 0 1-19.947 8.125c-7.748 0-14.778-3.11-19.906-8.123a28.025 28.025 0 0 1-4.78-6.155 27.99 27.99 0 0 1-4.736 6.155 28.49 28.49 0 0 1-19.95 8.124c-.27 0-.54-.012-.81-.02h-.007c-.27.008-.54.02-.813.02a28.49 28.49 0 0 1-19.95-8.123 27.992 27.992 0 0 1-4.736-6.155zm-20.486 26.49l-.002.01h.015c8.113.017 15.32 0 24.25 9.746 7.028-.737 14.372-1.105 21.722-1.094h.006c7.35-.01 14.694.357 21.723 1.094 8.93-9.747 16.137-9.73 24.25-9.746h.014l-.002-.01c3.833 0 19.166 0 29.85 30.007L210 165.244c8.504 30.624-2.723 31.373-16.727 31.4-20.768-.773-32.267-15.855-32.267-30.935-11.496 1.884-24.907 2.826-38.318 2.827h-.006c-13.412 0-26.823-.943-38.318-2.827 0 15.08-11.5 30.162-32.267 30.935-14.004-.027-25.23-.775-16.726-31.4L46.85 124.08C57.534 94.073 72.867 94.073 76.7 94.073zm45.985 23.582v.006c-.02.02-21.863 20.08-25.79 27.215l14.304-.573v12.474c0 .584 5.74.346 11.486.08h.006c5.744.266 11.485.504 11.485-.08v-12.474l14.304.573c-3.928-7.135-25.79-27.215-25.79-27.215v-.006l-.003.002z" - /></svg -> diff --git a/src/lib/components/icons/LinkedIn.svelte b/src/lib/components/icons/LinkedIn.svelte deleted file mode 100644 index b79d5135..00000000 --- a/src/lib/components/icons/LinkedIn.svelte +++ /dev/null @@ -1,11 +0,0 @@ -<script lang="ts"> - export let className: string | undefined; - export { className as class }; -</script> - -<svg class={className} viewBox="0 0 510 510" xmlns="http://www.w3.org/2000/svg" - ><path - fill="currentColor" - d="M459 0H51C22.95 0 0 22.95 0 51v408c0 28.05 22.95 51 51 51h408c28.05 0 51-22.95 51-51V51c0-28.05-22.95-51-51-51zM153 433.5H76.5V204H153v229.5zm-38.25-272.85c-25.5 0-45.9-20.4-45.9-45.9s20.4-45.9 45.9-45.9 45.9 20.4 45.9 45.9-20.4 45.9-45.9 45.9zM433.5 433.5H357V298.35c0-20.399-17.85-38.25-38.25-38.25s-38.25 17.851-38.25 38.25V433.5H204V204h76.5v30.6c12.75-20.4 40.8-35.7 63.75-35.7 48.45 0 89.25 40.8 89.25 89.25V433.5z" - /></svg -> diff --git a/src/lib/components/icons/Mastodon.svelte b/src/lib/components/icons/Mastodon.svelte deleted file mode 100644 index 822c3a9f..00000000 --- a/src/lib/components/icons/Mastodon.svelte +++ /dev/null @@ -1,14 +0,0 @@ -<script lang="ts"> - export let className: string | undefined; - export { className as class }; -</script> - -<svg - class={className} - fill="currentColor" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 16 16" - ><path - d="M11.19 12.195c2.016-.24 3.77-1.475 3.99-2.603.348-1.778.32-4.339.32-4.339 0-3.47-2.286-4.488-2.286-4.488C12.062.238 10.083.017 8.027 0h-.05C5.92.017 3.942.238 2.79.765c0 0-2.285 1.017-2.285 4.488l-.002.662c-.004.64-.007 1.35.011 2.091.083 3.394.626 6.74 3.78 7.57 1.454.383 2.703.463 3.709.408 1.823-.1 2.847-.647 2.847-.647l-.06-1.317s-1.303.41-2.767.36c-1.45-.05-2.98-.156-3.215-1.928a3.614 3.614 0 0 1-.033-.496s1.424.346 3.228.428c1.103.05 2.137-.064 3.188-.189zm1.613-2.47H11.13v-4.08c0-.859-.364-1.295-1.091-1.295-.804 0-1.207.517-1.207 1.541v2.233H7.168V5.89c0-1.024-.403-1.541-1.207-1.541-.727 0-1.091.436-1.091 1.296v4.079H3.197V5.522c0-.859.22-1.541.66-2.046.456-.505 1.052-.764 1.793-.764.856 0 1.504.328 1.933.983L8 4.39l.417-.695c.429-.655 1.077-.983 1.934-.983.74 0 1.336.259 1.791.764.442.505.661 1.187.661 2.046v4.203z" - /></svg -> diff --git a/src/lib/components/icons/Moon.svelte b/src/lib/components/icons/Moon.svelte deleted file mode 100644 index ae79c92d..00000000 --- a/src/lib/components/icons/Moon.svelte +++ /dev/null @@ -1,18 +0,0 @@ -<script lang="ts"> - export let className: string | undefined; - export { className as class }; -</script> - -<svg - class={className} - xmlns="http://www.w3.org/2000/svg" - fill="currentColor" - viewBox="0 0 16 16" -> - <path - d="M6 .278a.768.768 0 0 1 .08.858 7.208 7.208 0 0 0-.878 3.46c0 4.021 3.278 7.277 7.318 7.277.527 0 1.04-.055 1.533-.16a.787.787 0 0 1 .81.316.733.733 0 0 1-.031.893A8.349 8.349 0 0 1 8.344 16C3.734 16 0 12.286 0 7.71 0 4.266 2.114 1.312 5.124.06A.752.752 0 0 1 6 .278zM4.858 1.311A7.269 7.269 0 0 0 1.025 7.71c0 4.02 3.279 7.276 7.319 7.276a7.316 7.316 0 0 0 5.205-2.162c-.337.042-.68.063-1.029.063-4.61 0-8.343-3.714-8.343-8.29 0-1.167.242-2.278.681-3.286z" - /> - <path - d="M10.794 3.148a.217.217 0 0 1 .412 0l.387 1.162c.173.518.579.924 1.097 1.097l1.162.387a.217.217 0 0 1 0 .412l-1.162.387a1.734 1.734 0 0 0-1.097 1.097l-.387 1.162a.217.217 0 0 1-.412 0l-.387-1.162A1.734 1.734 0 0 0 9.31 6.593l-1.162-.387a.217.217 0 0 1 0-.412l1.162-.387a1.734 1.734 0 0 0 1.097-1.097l.387-1.162zM13.863.099a.145.145 0 0 1 .274 0l.258.774c.115.346.386.617.732.732l.774.258a.145.145 0 0 1 0 .274l-.774.258a1.156 1.156 0 0 0-.732.732l-.258.774a.145.145 0 0 1-.274 0l-.258-.774a1.156 1.156 0 0 0-.732-.732l-.774-.258a.145.145 0 0 1 0-.274l.774-.258c.346-.115.617-.386.732-.732L13.863.1z" - /> -</svg> diff --git a/src/lib/components/icons/Reddit.svelte b/src/lib/components/icons/Reddit.svelte deleted file mode 100644 index f309f099..00000000 --- a/src/lib/components/icons/Reddit.svelte +++ /dev/null @@ -1,16 +0,0 @@ -<script lang="ts"> - export let className: string | undefined; - export { className as class }; -</script> - -<svg - class={className} - fill="currentColor" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 16 16" - ><path - d="M6.167 8a.831.831 0 0 0-.83.83c0 .459.372.84.83.831a.831.831 0 0 0 0-1.661zm1.843 3.647c.315 0 1.403-.038 1.976-.611a.232.232 0 0 0 0-.306.213.213 0 0 0-.306 0c-.353.363-1.126.487-1.67.487-.545 0-1.308-.124-1.671-.487a.213.213 0 0 0-.306 0 .213.213 0 0 0 0 .306c.564.563 1.652.61 1.977.61zm.992-2.807c0 .458.373.83.831.83.458 0 .83-.381.83-.83a.831.831 0 0 0-1.66 0z" - /><path - d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zm-3.828-1.165c-.315 0-.602.124-.812.325-.801-.573-1.9-.945-3.121-.993l.534-2.501 1.738.372a.83.83 0 1 0 .83-.869.83.83 0 0 0-.744.468l-1.938-.41a.203.203 0 0 0-.153.028.186.186 0 0 0-.086.134l-.592 2.788c-1.24.038-2.358.41-3.17.992-.21-.2-.496-.324-.81-.324a1.163 1.163 0 0 0-.478 2.224c-.02.115-.029.23-.029.353 0 1.795 2.091 3.256 4.669 3.256 2.577 0 4.668-1.451 4.668-3.256 0-.114-.01-.238-.029-.353.401-.181.688-.592.688-1.069 0-.65-.525-1.165-1.165-1.165z" - /></svg -> diff --git a/src/lib/components/icons/StackOverflow.svelte b/src/lib/components/icons/StackOverflow.svelte deleted file mode 100644 index 5246572f..00000000 --- a/src/lib/components/icons/StackOverflow.svelte +++ /dev/null @@ -1,17 +0,0 @@ -<script lang="ts"> - export let className: string | undefined; - export { className as class }; -</script> - -<svg - class={className} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 104.32 123.81" - ><polygon - fill="currentColor" - points="88 79.81 99 79.81 99 123.81 0 123.81 0 79.81 11 79.81 11 112.81 88 112.81 88 79.81" - /><path - fill="currentColor" - d="M23,76.63,77,88l2.27-10.8-54-11.36Zm7.15-25.86,50,23.3,4.66-10-50-23.3ZM44,26.21,86.41,61.54l7.07-8.48L51.05,17.73ZM71.37.1,62.51,6.69,95.46,51l8.86-6.59ZM22,101.9H77v-11H22Z" - /></svg -> diff --git a/src/lib/components/icons/Sun.svelte b/src/lib/components/icons/Sun.svelte deleted file mode 100644 index 4e63345c..00000000 --- a/src/lib/components/icons/Sun.svelte +++ /dev/null @@ -1,15 +0,0 @@ -<script lang="ts"> - export let className: string | undefined; - export { className as class }; -</script> - -<svg - xmlns="http://www.w3.org/2000/svg" - fill="currentColor" - class={className} - viewBox="0 0 16 16" -> - <path - d="M8 11a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm0 1a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM8 0a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 0zm0 13a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 13zm8-5a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2a.5.5 0 0 1 .5.5zM3 8a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2A.5.5 0 0 1 3 8zm10.657-5.657a.5.5 0 0 1 0 .707l-1.414 1.415a.5.5 0 1 1-.707-.708l1.414-1.414a.5.5 0 0 1 .707 0zm-9.193 9.193a.5.5 0 0 1 0 .707L3.05 13.657a.5.5 0 0 1-.707-.707l1.414-1.414a.5.5 0 0 1 .707 0zm9.193 2.121a.5.5 0 0 1-.707 0l-1.414-1.414a.5.5 0 0 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .707zM4.464 4.465a.5.5 0 0 1-.707 0L2.343 3.05a.5.5 0 1 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .708z" - /> -</svg> diff --git a/src/lib/components/icons/Translate.svelte b/src/lib/components/icons/Translate.svelte deleted file mode 100644 index 6898b314..00000000 --- a/src/lib/components/icons/Translate.svelte +++ /dev/null @@ -1,15 +0,0 @@ -<script lang="ts"> - export let className: string | undefined; - export { className as class }; -</script> - -<svg - class={className} - fill="currentColor" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 256 256" -> - <path - d="m239.15 212.42-56-112a8 8 0 0 0-14.31 0l-21.71 43.43A88 88 0 0 1 100 126.93 103.65 103.65 0 0 0 127.69 64H152a8 8 0 0 0 0-16H96V32a8 8 0 0 0-16 0v16H24a8 8 0 0 0 0 16h87.63A87.76 87.76 0 0 1 88 116.35a87.74 87.74 0 0 1-19-31 8 8 0 1 0-15.08 5.34A103.63 103.63 0 0 0 76 127a87.55 87.55 0 0 1-52 17 8 8 0 0 0 0 16 103.46 103.46 0 0 0 64-22.08 104.18 104.18 0 0 0 51.44 21.31l-26.6 53.19a8 8 0 0 0 14.31 7.16L140.94 192h70.11l13.79 27.58A8 8 0 0 0 232 224a8 8 0 0 0 7.15-11.58ZM148.94 176 176 121.89 203.05 176Z" - /> -</svg> diff --git a/src/lib/components/icons/Twitter.svelte b/src/lib/components/icons/Twitter.svelte deleted file mode 100644 index 9bb0146f..00000000 --- a/src/lib/components/icons/Twitter.svelte +++ /dev/null @@ -1,11 +0,0 @@ -<script lang="ts"> - export let className: string | undefined; - export { className as class }; -</script> - -<svg class={className} viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" - ><path - fill="currentColor" - d="m512 97.248c-19.04 8.352-39.328 13.888-60.48 16.576 21.76-12.992 38.368-33.408 46.176-58.016-20.288 12.096-42.688 20.64-66.56 25.408-19.264-20.512-46.72-33.216-76.672-33.216-58.112 0-104.9 47.168-104.9 104.99 0 8.32 0.704 16.32 2.432 23.936-87.264-4.256-164.48-46.08-216.35-109.79-9.056 15.712-14.368 33.696-14.368 53.056 0 36.352 18.72 68.576 46.624 87.232-16.864-0.32-33.408-5.216-47.424-12.928v1.152c0 51.008 36.384 93.376 84.096 103.14-8.544 2.336-17.856 3.456-27.52 3.456-6.72 0-13.504-0.384-19.872-1.792 13.6 41.568 52.192 72.128 98.08 73.12-35.712 27.936-81.056 44.768-130.14 44.768-8.608 0-16.864-0.384-25.12-1.44 46.496 29.984 101.6 47.104 161.02 47.104 193.15 0 298.75-160 298.75-298.69 0-4.64-0.16-9.12-0.384-13.568 20.832-14.784 38.336-33.248 52.608-54.496z" - /></svg -> diff --git a/src/lib/components/notes/Layout.svelte b/src/lib/components/notes/Layout.svelte deleted file mode 100644 index 7aeddd55..00000000 --- a/src/lib/components/notes/Layout.svelte +++ /dev/null @@ -1,76 +0,0 @@ -<script lang="ts" context="module"> - import a from './custom/a.svelte'; - import blockquote from './custom/blockquote.svelte'; - import h2 from './custom/h2.svelte'; - import h3 from './custom/h3.svelte'; - import img from './custom/img.svelte'; - import table from './custom/table.svelte'; - import td from './custom/td.svelte'; - import th from './custom/th.svelte'; - - export { a, blockquote, h2, h3, img, table, th, td }; -</script> - -<script lang="ts"> - import { locale } from '$i18n/i18n-svelte'; - import { humanDate } from '$lib/utils/date'; - - import './styles/note.css'; - import './styles/prism-one-dark.css'; - - export let title; - export let description; - export let date; - export let preview_image_url; - - const publishedTime = new Date(date); - const formattedDate = humanDate($locale, publishedTime); -</script> - -<svelte:head> - <title>{title} | Esteban Borai - - - - - - - - - - - - - - - - - - - - - - - -
-
- {title} -
-
-

{title}

-
- - - -
-
-
- -
-
diff --git a/src/lib/components/notes/components/Quote.svelte b/src/lib/components/notes/components/Quote.svelte deleted file mode 100644 index 96698d36..00000000 --- a/src/lib/components/notes/components/Quote.svelte +++ /dev/null @@ -1,12 +0,0 @@ -
-
- 💭 -
-

- -

-
diff --git a/src/lib/components/notes/custom/a.svelte b/src/lib/components/notes/custom/a.svelte deleted file mode 100644 index f54b5be6..00000000 --- a/src/lib/components/notes/custom/a.svelte +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/src/lib/components/notes/custom/blockquote.svelte b/src/lib/components/notes/custom/blockquote.svelte deleted file mode 100644 index d0cab2a0..00000000 --- a/src/lib/components/notes/custom/blockquote.svelte +++ /dev/null @@ -1,5 +0,0 @@ -
- -
diff --git a/src/lib/components/notes/custom/h2.svelte b/src/lib/components/notes/custom/h2.svelte deleted file mode 100644 index 2fc2371f..00000000 --- a/src/lib/components/notes/custom/h2.svelte +++ /dev/null @@ -1,28 +0,0 @@ - - -

- - - - - - -

diff --git a/src/lib/components/notes/custom/h3.svelte b/src/lib/components/notes/custom/h3.svelte deleted file mode 100644 index db68e302..00000000 --- a/src/lib/components/notes/custom/h3.svelte +++ /dev/null @@ -1,28 +0,0 @@ - - -

- - - - - - -

diff --git a/src/lib/components/notes/custom/img.svelte b/src/lib/components/notes/custom/img.svelte deleted file mode 100644 index 7f8c3515..00000000 --- a/src/lib/components/notes/custom/img.svelte +++ /dev/null @@ -1,8 +0,0 @@ - - -
- -
diff --git a/src/lib/components/notes/custom/table.svelte b/src/lib/components/notes/custom/table.svelte deleted file mode 100644 index b83b9605..00000000 --- a/src/lib/components/notes/custom/table.svelte +++ /dev/null @@ -1,5 +0,0 @@ -
- - -
-
diff --git a/src/lib/components/notes/custom/td.svelte b/src/lib/components/notes/custom/td.svelte deleted file mode 100644 index 0561ee46..00000000 --- a/src/lib/components/notes/custom/td.svelte +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/lib/components/notes/custom/th.svelte b/src/lib/components/notes/custom/th.svelte deleted file mode 100644 index ebe20c24..00000000 --- a/src/lib/components/notes/custom/th.svelte +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/lib/components/notes/static/writing-e2e-tests-for-axum-and-graphql/GabbleArhitecture.svelte b/src/lib/components/notes/static/writing-e2e-tests-for-axum-and-graphql/GabbleArhitecture.svelte deleted file mode 100644 index ac7380d4..00000000 --- a/src/lib/components/notes/static/writing-e2e-tests-for-axum-and-graphql/GabbleArhitecture.svelte +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - diff --git a/src/lib/components/notes/styles/note.css b/src/lib/components/notes/styles/note.css deleted file mode 100644 index 80ce9aa9..00000000 --- a/src/lib/components/notes/styles/note.css +++ /dev/null @@ -1,43 +0,0 @@ -.note-container p code, -.note-container ul li code { - @apply bg-lt-base dark:bg-dk-base rounded; - - color: #f04f4f !important; - padding: 0.2rem; -} - -.note-container h2 code { - @apply bg-lt-base dark:bg-dk-base rounded; - - color: #f04f4f !important; - padding: 0.2rem; -} - -.note-container a code { - @apply underline; -} - -.note-container ul, -.note-container ol { - @apply pl-4 my-4; -} - -.note-container ul { - list-style-type: disc; -} - -.note-container ol { - list-style-type: decimal; -} - -.note-container p { - @apply pb-2; -} - -.note-container pre code { - @apply text-base; -} - -.note-container .note-quote-content a { - @apply text-green-400 underline; -} diff --git a/src/lib/components/notes/styles/prism-one-dark.css b/src/lib/components/notes/styles/prism-one-dark.css deleted file mode 100644 index 11f9ce4a..00000000 --- a/src/lib/components/notes/styles/prism-one-dark.css +++ /dev/null @@ -1,448 +0,0 @@ -/** - * One Dark theme for prism.js - * Based on Atom's One Dark theme: https://github.com/atom/atom/tree/master/packages/one-dark-syntax - */ - -/** - * One Dark colours (accurate as of commit 8ae45ca on 6 Sep 2018) - * From colors.less - * --mono-1: hsl(220, 14%, 71%); - * --mono-2: hsl(220, 9%, 55%); - * --mono-3: hsl(220, 10%, 40%); - * --hue-1: hsl(187, 47%, 55%); - * --hue-2: hsl(207, 82%, 66%); - * --hue-3: hsl(286, 60%, 67%); - * --hue-4: hsl(95, 38%, 62%); - * --hue-5: hsl(355, 65%, 65%); - * --hue-5-2: hsl(5, 48%, 51%); - * --hue-6: hsl(29, 54%, 61%); - * --hue-6-2: hsl(39, 67%, 69%); - * --syntax-fg: hsl(220, 14%, 71%); - * --syntax-bg: hsl(220, 13%, 18%); - * --syntax-gutter: hsl(220, 14%, 45%); - * --syntax-guide: hsla(220, 14%, 71%, 0.15); - * --syntax-accent: hsl(220, 100%, 66%); - * From syntax-variables.less - * --syntax-selection-color: hsl(220, 13%, 28%); - * --syntax-gutter-background-color-selected: hsl(220, 13%, 26%); - * --syntax-cursor-line: hsla(220, 100%, 80%, 0.04); - */ - -code[class*='language-'], -pre[class*='language-'] { - @apply font-mono; - - background: hsl(220, 13%, 18%); - color: hsl(220, 14%, 71%); - text-shadow: 0 1px rgba(0, 0, 0, 0.3); - font-family: 'Fira Code', monospace; - direction: ltr; - text-align: left; - text-shadow: none; - white-space: pre; - word-spacing: normal; - word-break: normal; - line-height: 1.5; - -moz-tab-size: 2; - -o-tab-size: 2; - tab-size: 2; - -webkit-hyphens: none; - -moz-hyphens: none; - -ms-hyphens: none; - hyphens: none; -} - -/* Selection */ -code[class*='language-']::-moz-selection, -code[class*='language-'] *::-moz-selection, -pre[class*='language-'] *::-moz-selection { - background: hsl(220, 13%, 28%); - color: inherit; - text-shadow: none; -} - -code[class*='language-']::selection, -code[class*='language-'] *::selection, -pre[class*='language-'] *::selection { - background: hsl(220, 13%, 28%); - color: inherit; - text-shadow: none; -} - -/* Code blocks */ -pre[class*='language-'] { - padding: 1em; - margin: 0.5em 0; - overflow: auto; - border-radius: 0.3em; -} - -/* Inline code */ -:not(pre) > code[class*='language-'] { - padding: 0.2em 0.3em; - border-radius: 0.3em; - white-space: normal; -} - -/* Print */ -@media print { - code[class*='language-'], - pre[class*='language-'] { - text-shadow: none; - } -} - -.token.comment, -.token.prolog, -.token.cdata { - color: hsl(220, 10%, 40%); -} - -.token.doctype, -.token.punctuation, -.token.entity { - color: hsl(220, 14%, 71%); -} - -.token.attr-name, -.token.class-name, -.token.boolean, -.token.constant, -.token.number, -.token.atrule { - color: hsl(29, 54%, 61%); -} - -.token.keyword { - color: hsl(286, 60%, 67%); -} - -.token.property, -.token.tag, -.token.symbol, -.token.deleted, -.token.important { - color: hsl(355, 65%, 65%); -} - -.token.selector, -.token.string, -.token.char, -.token.builtin, -.token.inserted, -.token.regex, -.token.attr-value, -.token.attr-value > .token.punctuation { - color: hsl(95, 38%, 62%); -} - -.token.variable, -.token.operator, -.token.function { - color: hsl(207, 82%, 66%); -} - -.token.url { - color: hsl(187, 47%, 55%); -} - -/* HTML overrides */ -.token.attr-value > .token.punctuation.attr-equals, -.token.special-attr > .token.attr-value > .token.value.css { - color: hsl(220, 14%, 71%); -} - -/* CSS overrides */ -.language-css .token.selector { - color: hsl(355, 65%, 65%); -} - -.language-css .token.property { - color: hsl(220, 14%, 71%); -} - -.language-css .token.function, -.language-css .token.url > .token.function { - color: hsl(187, 47%, 55%); -} - -.language-css .token.url > .token.string.url { - color: hsl(95, 38%, 62%); -} - -.language-css .token.important, -.language-css .token.atrule .token.rule { - color: hsl(286, 60%, 67%); -} - -/* JS overrides */ -.language-javascript .token.operator { - color: hsl(286, 60%, 67%); -} - -.language-javascript - .token.template-string - > .token.interpolation - > .token.interpolation-punctuation.punctuation { - color: hsl(5, 48%, 51%); -} - -/* JSON overrides */ -.language-json .token.operator { - color: hsl(220, 14%, 71%); -} - -.language-json .token.null.keyword { - color: hsl(29, 54%, 61%); -} - -/* MD overrides */ -.language-markdown .token.url, -.language-markdown .token.url > .token.operator, -.language-markdown .token.url-reference.url > .token.string { - color: hsl(220, 14%, 71%); -} - -.language-markdown .token.url > .token.content { - color: hsl(207, 82%, 66%); -} - -.language-markdown .token.url > .token.url, -.language-markdown .token.url-reference.url { - color: hsl(187, 47%, 55%); -} - -.language-markdown .token.blockquote.punctuation, -.language-markdown .token.hr.punctuation { - color: hsl(220, 10%, 40%); - font-style: italic; -} - -.language-markdown .token.code-snippet { - color: hsl(95, 38%, 62%); -} - -.language-markdown .token.bold .token.content { - color: hsl(29, 54%, 61%); -} - -.language-markdown .token.italic .token.content { - color: hsl(286, 60%, 67%); -} - -.language-markdown .token.strike .token.content, -.language-markdown .token.strike .token.punctuation, -.language-markdown .token.list.punctuation, -.language-markdown .token.title.important > .token.punctuation { - color: hsl(355, 65%, 65%); -} - -/* General */ -.token.bold { - font-weight: bold; -} - -.token.comment, -.token.italic { - font-style: italic; -} - -.token.entity { - cursor: help; -} - -.token.namespace { - opacity: 0.8; -} - -/* Plugin overrides */ -/* Selectors should have higher specificity than those in the plugins' default stylesheets */ - -/* Show Invisibles plugin overrides */ -.token.token.tab:not(:empty):before, -.token.token.cr:before, -.token.token.lf:before, -.token.token.space:before { - color: hsla(220, 14%, 71%, 0.15); - text-shadow: none; -} - -/* Toolbar plugin overrides */ -/* Space out all buttons and move them away from the right edge of the code block */ -div.code-toolbar > .toolbar.toolbar > .toolbar-item { - margin-right: 0.4em; -} - -/* Styling the buttons */ -div.code-toolbar > .toolbar.toolbar > .toolbar-item > button, -div.code-toolbar > .toolbar.toolbar > .toolbar-item > a, -div.code-toolbar > .toolbar.toolbar > .toolbar-item > span { - background: hsl(220, 13%, 26%); - color: hsl(220, 9%, 55%); - padding: 0.1em 0.4em; - border-radius: 0.3em; -} - -div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:hover, -div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:focus, -div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:hover, -div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:focus, -div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:hover, -div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:focus { - background: hsl(220, 13%, 28%); - color: hsl(220, 14%, 71%); -} - -/* Line Highlight plugin overrides */ -/* The highlighted line itself */ -.line-highlight.line-highlight { - background: hsla(220, 100%, 80%, 0.04); -} - -/* Default line numbers in Line Highlight plugin */ -.line-highlight.line-highlight:before, -.line-highlight.line-highlight[data-end]:after { - background: hsl(220, 13%, 26%); - color: hsl(220, 14%, 71%); - padding: 0.1em 0.6em; - border-radius: 0.3em; - box-shadow: 0 2px 0 0 rgba(0, 0, 0, 0.2); /* same as Toolbar plugin default */ -} - -/* Hovering over a linkable line number (in the gutter area) */ -/* Requires Line Numbers plugin as well */ -pre[id].linkable-line-numbers.linkable-line-numbers - span.line-numbers-rows - > span:hover:before { - background-color: hsla(220, 100%, 80%, 0.04); -} - -/* Line Numbers and Command Line plugins overrides */ -/* Line separating gutter from coding area */ -.line-numbers.line-numbers .line-numbers-rows, -.command-line .command-line-prompt { - border-right-color: hsla(220, 14%, 71%, 0.15); -} - -/* Stuff in the gutter */ -.line-numbers .line-numbers-rows > span:before, -.command-line .command-line-prompt > span:before { - color: hsl(220, 14%, 45%); -} - -/* Match Braces plugin overrides */ -/* Note: Outline colour is inherited from the braces */ -.rainbow-braces .token.token.punctuation.brace-level-1, -.rainbow-braces .token.token.punctuation.brace-level-5, -.rainbow-braces .token.token.punctuation.brace-level-9 { - color: hsl(355, 65%, 65%); -} - -.rainbow-braces .token.token.punctuation.brace-level-2, -.rainbow-braces .token.token.punctuation.brace-level-6, -.rainbow-braces .token.token.punctuation.brace-level-10 { - color: hsl(95, 38%, 62%); -} - -.rainbow-braces .token.token.punctuation.brace-level-3, -.rainbow-braces .token.token.punctuation.brace-level-7, -.rainbow-braces .token.token.punctuation.brace-level-11 { - color: hsl(207, 82%, 66%); -} - -.rainbow-braces .token.token.punctuation.brace-level-4, -.rainbow-braces .token.token.punctuation.brace-level-8, -.rainbow-braces .token.token.punctuation.brace-level-12 { - color: hsl(286, 60%, 67%); -} - -/* Diff Highlight plugin overrides */ -/* Taken from https://github.com/atom/github/blob/master/styles/variables.less */ -pre.diff-highlight > code .token.token.deleted:not(.prefix), -pre > code.diff-highlight .token.token.deleted:not(.prefix) { - background-color: hsla(353, 100%, 66%, 0.15); -} - -pre.diff-highlight > code .token.token.deleted:not(.prefix)::-moz-selection, -pre.diff-highlight > code .token.token.deleted:not(.prefix) *::-moz-selection, -pre > code.diff-highlight .token.token.deleted:not(.prefix)::-moz-selection, -pre > code.diff-highlight .token.token.deleted:not(.prefix) *::-moz-selection { - background-color: hsla(353, 95%, 66%, 0.25); -} - -pre.diff-highlight > code .token.token.deleted:not(.prefix)::selection, -pre.diff-highlight > code .token.token.deleted:not(.prefix) *::selection, -pre > code.diff-highlight .token.token.deleted:not(.prefix)::selection, -pre > code.diff-highlight .token.token.deleted:not(.prefix) *::selection { - background-color: hsla(353, 95%, 66%, 0.25); -} - -pre.diff-highlight > code .token.token.inserted:not(.prefix), -pre > code.diff-highlight .token.token.inserted:not(.prefix) { - background-color: hsla(137, 100%, 55%, 0.15); -} - -pre.diff-highlight > code .token.token.inserted:not(.prefix)::-moz-selection, -pre.diff-highlight > code .token.token.inserted:not(.prefix) *::-moz-selection, -pre > code.diff-highlight .token.token.inserted:not(.prefix)::-moz-selection, -pre > code.diff-highlight .token.token.inserted:not(.prefix) *::-moz-selection { - background-color: hsla(135, 73%, 55%, 0.25); -} - -pre.diff-highlight > code .token.token.inserted:not(.prefix)::selection, -pre.diff-highlight > code .token.token.inserted:not(.prefix) *::selection, -pre > code.diff-highlight .token.token.inserted:not(.prefix)::selection, -pre > code.diff-highlight .token.token.inserted:not(.prefix) *::selection { - background-color: hsla(135, 73%, 55%, 0.25); -} - -/* Previewers plugin overrides */ -/* Based on https://github.com/atom-community/atom-ide-datatip/blob/master/styles/atom-ide-datatips.less and https://github.com/atom/atom/blob/master/packages/one-dark-ui */ -/* Border around popup */ -.prism-previewer.prism-previewer:before, -.prism-previewer-gradient.prism-previewer-gradient div { - border-color: hsl(224, 13%, 17%); -} - -/* Angle and time should remain as circles and are hence not included */ -.prism-previewer-color.prism-previewer-color:before, -.prism-previewer-gradient.prism-previewer-gradient div, -.prism-previewer-easing.prism-previewer-easing:before { - border-radius: 0.3em; -} - -/* Triangles pointing to the code */ -.prism-previewer.prism-previewer:after { - border-top-color: hsl(224, 13%, 17%); -} - -.prism-previewer-flipped.prism-previewer-flipped.after { - border-bottom-color: hsl(224, 13%, 17%); -} - -/* Background colour within the popup */ -.prism-previewer-angle.prism-previewer-angle:before, -.prism-previewer-time.prism-previewer-time:before, -.prism-previewer-easing.prism-previewer-easing { - background: hsl(219, 13%, 22%); -} - -/* For angle, this is the positive area (eg. 90deg will display one quadrant in this colour) */ -/* For time, this is the alternate colour */ -.prism-previewer-angle.prism-previewer-angle circle, -.prism-previewer-time.prism-previewer-time circle { - stroke: hsl(220, 14%, 71%); - stroke-opacity: 1; -} - -/* Stroke colours of the handle, direction point, and vector itself */ -.prism-previewer-easing.prism-previewer-easing circle, -.prism-previewer-easing.prism-previewer-easing path, -.prism-previewer-easing.prism-previewer-easing line { - stroke: hsl(220, 14%, 71%); -} - -/* Fill colour of the handle */ -.prism-previewer-easing.prism-previewer-easing circle { - fill: transparent; -} diff --git a/src/lib/utils/date.ts b/src/lib/utils/date.ts deleted file mode 100644 index e1c003d3..00000000 --- a/src/lib/utils/date.ts +++ /dev/null @@ -1,140 +0,0 @@ -import type { Locales } from '$i18n/i18n-types'; - -const MONTHS = [ - { - en: 'January', - es: 'Enero', - hu: 'Január', - }, - { - en: 'February', - es: 'Febrero', - hu: 'Február', - }, - { - en: 'March', - es: 'Marzo', - hu: 'Március', - }, - { - en: 'April', - es: 'Abril', - hu: 'Április', - }, - { - en: 'May', - es: 'Mayo', - hu: 'Május', - }, - { - en: 'June', - es: 'Junio', - hu: 'Június', - }, - { - en: 'July', - es: 'Julio', - hu: 'Július', - }, - { - en: 'August', - es: 'Agosto', - hu: 'Augusztus', - }, - { - en: 'September', - es: 'Septiembre', - hu: 'Szeptember', - }, - { - en: 'October', - es: 'Octubre', - hu: 'Október', - }, - { - en: 'November', - es: 'Noviembre', - hu: 'November', - }, - { - en: 'December', - es: 'Diciembre', - hu: 'December', - }, -]; - -export function humanDate(locale: Locales, date: Date): string { - const month = MONTHS[date.getMonth()]; - const year = date.getFullYear(); - - let day: string | number = date.getDate() + 1; - - // Two digits padding - if (day < 10) { - day = '0' + day; - } - - switch (day) { - case 1: - if (locale === 'hu') { - day = '1'; - break; - } - - if (locale === 'es') { - day = '1ro'; - break; - } - - day = '1st'; - break; - - case 2: - if (locale === 'hu') { - day = '2'; - break; - } - - if (locale === 'es') { - day = '2do'; - break; - } - - day = '2nd'; - break; - - case 3: - if (locale === 'hu') { - day = '3'; - break; - } - - if (locale === 'es') { - day = '3ro'; - break; - } - - day = '3rd'; - break; - - default: - if (locale != 'en') { - break; - } - - day = day + 'th'; - break; - } - - const localeMonth = month[locale]; - - if (locale === 'hu') { - return `${year}. ${localeMonth} ${day}`; - } - - if (locale === 'es') { - return `${day} de ${localeMonth} de ${year}`; - } - - return `${localeMonth} ${day}, ${year}`; -} diff --git a/src/lib/utils/locale.ts b/src/lib/utils/locale.ts deleted file mode 100644 index 4a10ffff..00000000 --- a/src/lib/utils/locale.ts +++ /dev/null @@ -1,21 +0,0 @@ -// Replaces the locale slug in a URL. -// -// If the `full` argument is set to `true`, the full URL is returned as a string. -// e.g. https://mywebsite.com/en/blog/article-1 => https://mywebsite.com/de/blog/article-1 -// -// Otherwise (default) the URL relative to the base is returned. -// e.g. https://mywebsite.com/en/blog/article-1 => /de/blog/article-1 -export const replaceLocaleInUrl = ( - url: URL, - locale: string, - full = false, -): string => { - const [, , ...rest] = url.pathname.split('/'); - const new_pathname = `/${[locale, ...rest].join('/')}`; - if (!full) { - return `${new_pathname}${url.search}`; - } - const newUrl = new URL(url.toString()); - newUrl.pathname = new_pathname; - return newUrl.toString(); -}; diff --git a/src/params/lang.ts b/src/params/lang.ts deleted file mode 100644 index ed900d3b..00000000 --- a/src/params/lang.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { isLocale } from '$i18n/i18n-util'; - -import type { ParamMatcher } from '@sveltejs/kit'; - -// Validate the param to accept only valid locales -export const match: ParamMatcher = (param) => { - return isLocale(param); -}; diff --git a/src/routes/+error.svelte b/src/routes/+error.svelte deleted file mode 100644 index e673011a..00000000 --- a/src/routes/+error.svelte +++ /dev/null @@ -1,5 +0,0 @@ - - -

{$page.status}: {$page.error.message}

diff --git a/src/routes/+layout.server.ts b/src/routes/+layout.server.ts deleted file mode 100644 index 85368d47..00000000 --- a/src/routes/+layout.server.ts +++ /dev/null @@ -1,6 +0,0 @@ -import type { LayoutServerLoad } from './$types'; - -export const load: LayoutServerLoad = ({ locals: { locale } }) => { - // pass locale information from "server-context" to "shared server + client context" - return { locale }; -}; diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte deleted file mode 100644 index 683f8daa..00000000 --- a/src/routes/+layout.svelte +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - -
-
- -
-